@font-face {
  font-family: 'Magento-Icons';
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/Magento-Icons/Magento-Icons.svg#Magento-Icons') format('svg');
  font-weight: normal;
  font-style: normal;
}
.spinner {
  display: inline-block;
  font-size: 4rem;
  height: 1em;
  margin-right: 1.5rem;
  position: relative;
  width: 1em;
}
.spinner > span {
  -webkit-transform: scale(0.4);
  -moz-transform: scale(0.4);
  -ms-transform: scale(0.4);
  transform: scale(0.4);
  -webkit-animation-name: fade;
  -moz-animation-name: fade;
  -ms-animation-name: fade;
  animation-name: fade;
  -webkit-animation-duration: .72s;
  -moz-animation-duration: .72s;
  -ms-animation-duration: .72s;
  animation-duration: .72s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  -ms-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-direction: normal;
  -moz-animation-direction: normal;
  -ms-animation-direction: normal;
  animation-direction: normal;
  background-color: #fff;
  border-radius: 6px;
  clip: rect(0 0.28571429em 0.1em 0);
  height: .1em;
  margin-top: .5em;
  position: absolute;
  width: 1em;
}
.spinner > span:nth-child(1) {
  -webkit-animation-delay: 0.27s;
  -moz-animation-delay: 0.27s;
  -ms-animation-delay: 0.27s;
  animation-delay: 0.27s;
  -webkit-transform: rotate(-315deg);
  -moz-transform: rotate(-315deg);
  -ms-transform: rotate(-315deg);
  transform: rotate(-315deg);
}
.spinner > span:nth-child(2) {
  -webkit-animation-delay: 0.36s;
  -moz-animation-delay: 0.36s;
  -ms-animation-delay: 0.36s;
  animation-delay: 0.36s;
  -webkit-transform: rotate(-270deg);
  -moz-transform: rotate(-270deg);
  -ms-transform: rotate(-270deg);
  transform: rotate(-270deg);
}
.spinner > span:nth-child(3) {
  -webkit-animation-delay: 0.45s;
  -moz-animation-delay: 0.45s;
  -ms-animation-delay: 0.45s;
  animation-delay: 0.45s;
  -webkit-transform: rotate(-225deg);
  -moz-transform: rotate(-225deg);
  -ms-transform: rotate(-225deg);
  transform: rotate(-225deg);
}
.spinner > span:nth-child(4) {
  -webkit-animation-delay: 0.54s;
  -moz-animation-delay: 0.54s;
  -ms-animation-delay: 0.54s;
  animation-delay: 0.54s;
  -webkit-transform: rotate(-180deg);
  -moz-transform: rotate(-180deg);
  -ms-transform: rotate(-180deg);
  transform: rotate(-180deg);
}
.spinner > span:nth-child(5) {
  -webkit-animation-delay: 0.63s;
  -moz-animation-delay: 0.63s;
  -ms-animation-delay: 0.63s;
  animation-delay: 0.63s;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -ms-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
.spinner > span:nth-child(6) {
  -webkit-animation-delay: 0.72s;
  -moz-animation-delay: 0.72s;
  -ms-animation-delay: 0.72s;
  animation-delay: 0.72s;
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
}
.spinner > span:nth-child(7) {
  -webkit-animation-delay: 0.81s;
  -moz-animation-delay: 0.81s;
  -ms-animation-delay: 0.81s;
  animation-delay: 0.81s;
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.spinner > span:nth-child(8) {
  -webkit-animation-delay: 0.9;
  -moz-animation-delay: 0.9;
  -ms-animation-delay: 0.9;
  animation-delay: 0.9;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  transform: rotate(0deg);
}
@-moz-keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
@-webkit-keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
@-ms-keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
@keyframes fade {
  0% {
    background-color: #514943;
  }
  100% {
    background-color: #fff;
  }
}
form.loading .mgz__spinner {
  display: block;
}
.mgz__spinner {
  display: none;
  position: relative;
  width: 186px;
  height: 20px;
  margin: auto;
  position: absolute;
  left: 45%;
  top: 15px;
}
.mgz__spinner .spinner-item {
  position: absolute;
  top: 0;
  background-color: #d8d8d8;
  width: 20px;
  height: 20px;
  animation-name: bounce_fountainG;
  -o-animation-name: bounce_fountainG;
  -ms-animation-name: bounce_fountainG;
  -webkit-animation-name: bounce_fountainG;
  -moz-animation-name: bounce_fountainG;
  animation-duration: 0.645s;
  -o-animation-duration: 0.645s;
  -ms-animation-duration: 0.645s;
  -webkit-animation-duration: 0.645s;
  -moz-animation-duration: 0.645s;
  animation-iteration-count: infinite;
  -o-animation-iteration-count: infinite;
  -ms-animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-direction: normal;
  -o-animation-direction: normal;
  -ms-animation-direction: normal;
  -webkit-animation-direction: normal;
  -moz-animation-direction: normal;
  transform: scale(0.3);
  -o-transform: scale(0.3);
  -ms-transform: scale(0.3);
  -webkit-transform: scale(0.3);
  -moz-transform: scale(0.3);
  border-radius: 15px;
  -o-border-radius: 15px;
  -ms-border-radius: 15px;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
}
.mgz__spinner .spinner-item.spinner-item-1 {
  left: 0;
  animation-delay: 0.256s;
  -o-animation-delay: 0.256s;
  -ms-animation-delay: 0.256s;
  -webkit-animation-delay: 0.256s;
  -moz-animation-delay: 0.256s;
}
.mgz__spinner .spinner-item.spinner-item-2 {
  left: 20px;
  animation-delay: 0.3225s;
  -o-animation-delay: 0.3225s;
  -ms-animation-delay: 0.3225s;
  -webkit-animation-delay: 0.3225s;
  -moz-animation-delay: 0.3225s;
}
.mgz__spinner .spinner-item.spinner-item-3 {
  left: 40px;
  animation-delay: 0.389s;
  -o-animation-delay: 0.389s;
  -ms-animation-delay: 0.389s;
  -webkit-animation-delay: 0.389s;
  -moz-animation-delay: 0.389s;
}
.mgz__spinner .spinner-item.spinner-item-4 {
  left: 60px;
  animation-delay: 0.4555s;
  -o-animation-delay: 0.4555s;
  -ms-animation-delay: 0.4555s;
  -webkit-animation-delay: 0.4555s;
  -moz-animation-delay: 0.4555s;
}
.mgz__spinner .spinner-item.spinner-item-5 {
  left: 80px;
  animation-delay: 0.522s;
  -o-animation-delay: 0.522s;
  -ms-animation-delay: 0.522s;
  -webkit-animation-delay: 0.522s;
  -moz-animation-delay: 0.522s;
}
.mgz__spinner .spinner-item.spinner-item-6 {
  left: 100px;
  animation-delay: 0.5885s;
  -o-animation-delay: 0.5885s;
  -ms-animation-delay: 0.5885s;
  -webkit-animation-delay: 0.5885s;
  -moz-animation-delay: 0.5885s;
}
.mgz__spinner .spinner-item.spinner-item-7 {
  left: 120px;
  animation-delay: 0.645s;
  -o-animation-delay: 0.645s;
  -ms-animation-delay: 0.645s;
  -webkit-animation-delay: 0.645s;
  -moz-animation-delay: 0.645s;
}
.mgz__spinner .spinner-item.spinner-item-8 {
  left: 140px;
  animation-delay: 0.7115s;
  -o-animation-delay: 0.7115s;
  -ms-animation-delay: 0.7115s;
  -webkit-animation-delay: 0.7115s;
  -moz-animation-delay: 0.7115s;
}
@keyframes bounce_fountainG {
  0% {
    transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-o-keyframes bounce_fountainG {
  0% {
    -o-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -o-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-ms-keyframes bounce_fountainG {
  0% {
    -ms-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -ms-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-webkit-keyframes bounce_fountainG {
  0% {
    -webkit-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -webkit-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
@-moz-keyframes bounce_fountainG {
  0% {
    -moz-transform: scale(1);
    background-color: #d8d8d8;
  }
  100% {
    -moz-transform: scale(0.3);
    background-color: #d8d8d8;
  }
}
.mgz__page-actions.page-main-actions {
  margin: 0 0 3rem;
  background: #f8f8f8;
  border-bottom: 1px solid #e3e3e3;
  border-top: 1px solid #e3e3e3;
  padding: 1.5rem;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons {
  float: right;
  justify-content: flex-end;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button {
  background-color: transparent;
  text-shadow: none;
  color: #41362f;
  font-size: 1.6rem;
  letter-spacing: .025em;
  padding-bottom: .8875em;
  padding-top: .8875em;
  border-color: transparent;
  box-shadow: none;
  margin-left: 1.3rem;
  font-weight: 600;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.primary {
  -ms-flex-order: 2;
  -webkit-order: 2;
  order: 2;
  background-color: #eb5202;
  border-color: #eb5202;
  color: #fff;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.primary:hover {
  background-color: #ba4000;
  border-color: #b84002;
  box-shadow: 0 0 0 1px #007bdb;
  color: #fff;
  text-decoration: none;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.action-secondary {
  background-color: #514943;
  border-color: #514943;
  color: #fff;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.action-secondary:hover {
  background-color: #35302c;
  border-color: #35302c;
  box-shadow: 0 0 0 1px #007bdb;
}
.mgz__page-actions.page-main-actions .page-actions .page-actions-buttons > button.back {
  float: left;
  -ms-flex-order: -1;
  -webkit-order: -1;
  order: -1;
  margin-left: 1.3rem;
}
@media (max-width: 480px) {
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons {
    display: block;
  }
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button.back {
    margin: 0;
  }
}
.mgz__page-actions.page-main-actions .page-actions:before,
.mgz__page-actions.page-main-actions .page-actions:after {
  content: '';
  display: table;
  clear: both;
}
.mgz__page-actions.page-main-actions .page-actions #back:before {
  content: '\e626';
  margin-right: .5em;
  position: relative;
  top: 1px;
  font-family: 'Magento-Icons';
}
@media (max-width: 480px) {
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons {
    text-align: center;
  }
  .mgz__page-actions.page-main-actions .page-actions .page-actions-buttons button {
    margin-left: 0;
  }
}
.sidebar {
  max-width: 100%;
}
.payu-block {
    width: 100%;
    text-align: center;
}
.payu-block__wrapper {
    display: inline-block;
    width: 100%;
    box-sizing: border-box;
    max-width: 452px;
}
.block-payu-cards .card .col {
    vertical-align: middle;
}
.block-payu-cards .card__logo img {
    max-height: 30px;
}
.block-payu-cards .card__action button[type="submit"] {
    padding: 0;
    box-shadow: none;
    border-radius: 0;
    background: transparent;
    border: 0;
    font-weight: 400;
    color: #1979c3;
    font-size: 1.4rem;
}
.block-payu-cards .card__action button[type="submit"]:hover {
    text-decoration: underline;
}
.payu-repay {
    margin-bottom: 20px;
}
.payu-repay .repay__method:last-child {
    border-bottom: 1px solid #cccccc;
}
.payu-repay .repay__method .payment-method-title {
    padding: 20px 0;
    border-top: 1px solid #cccccc;
}
.payu-repay .repay__method .payment-method-title label {
    cursor: pointer;
}
.payu-repay .repay__method .payment-method-content {
    padding: 0 0 20px;
}
.payu-repay .msg__repay {
    margin-top: 10px;
}
.payu-payment._active .payment-method-content {
    display: block;
}
.payu-payment__logo {
    max-height: 25px;
    margin-bottom: -5px;
}
.payu-payment .payment-method-content {
    display: none;
}
.payu-payment .payment__method {
    padding: 0 0 20px 0;
    border-bottom: 1px solid #dcdcdc;
}
.payu-payment .payment__method .method__single {
    position: relative;
    display: inline-block;
    box-sizing: border-box;
    padding: 2px;
    width: 100%;
    height: 60px;
    float: left;
}
.payu-payment .payment__method .method__single--content {
    width: 100%;
    height: 100%;
}
.payu-payment .payment__method .method__single--content label {
    display: block;
}
.payu-payment .payment__method .method__single--content img {
    max-height: calc(100% - 18px);
    max-width: calc(100% - 18px);
    position: absolute;
    top: 50%;
    left: 50%;
    margin-right: -50%;
    transform: translate(-50%, -50%);
}
.payu-payment .payment__method .method__single--content__image {
    display: block;
    position: relative;
    width: 100%;
    height: 100%;
}
.payu-payment .payment__method .method__single:nth-child(5n + 1) {
    padding-left: 0;
}
.payu-payment .payment__method .method__single--clear {
    clear: both;
}
.payu-payment .payment__method .payu-card {
    margin-bottom: 10px;
    cursor: pointer;
}
.payu-payment .payment__method .payu-card__img-wrapper {
    text-align: center;
    min-width: 100px;
    font-size: 0;
}
.payu-payment .payment__method .payu-card__img-wrapper > * {
    font-size: 1em;
}
.payu-payment .payment__method .payu-card__info {
    list-style: none;
    position: relative;
    display: table;
    box-sizing: border-box;
}
.payu-payment .payment__method .payu-card__info > * {
    display: table-cell;
    vertical-align: middle;
}
.payu-payment .payment__method .payu-card__info span {
    padding-left: 20px;
}
.payu-payment .payment__method .payu-card__info img {
    max-height: 30px;
}
.payu-payment .payment__method .method__single--content,
.payu-payment .payment__method .payu-card {
    box-sizing: border-box;
    padding: 7px;
    border: 1px solid #dcdcdc;
    border-radius: 3px;
}

.payu-payment .payment__method .method__single--content:not(._disabled),
.payu-payment .payment__method .payu-card:not(._disabled) {
    cursor: pointer;
}

.payu-payment .payment__method .method__single--content:not(._disabled):hover,
.payu-payment .payment__method .payu-card:not(._disabled):hover {
    background: rgba(220, 220, 220, 0.5);
    border-color: grey;
}
.payu-payment .payment__method .method__single--content:not(._disabled):focus,
.payu-payment .payment__method .payu-card:not(._disabled):focus {
    border-color: darkgreen;
}
.payu-payment .payment__method .method__single--content:not(._disabled)._active,
.payu-payment .payment__method .payu-card:not(._disabled)._active {
    background: rgba(220, 220, 220, 0.5);
    border-color: darkgreen;
}
.payu-payment .payment__method .method__single--content._disabled,
.payu-payment .payment__method .payu-card._disabled {
    -webkit-filter: grayscale(1);
    filter: grayscale(1);
    opacity: 0.5;
    cursor: default;
}
.payu-payment .payment__payu-agreement .payu-agreement__wrapper {
    margin-top: 20px;
}
.payu-payment .payment__payu-agreement .payu-agreement__wrapper > * {
    margin-bottom: 10px;
}
.payu-payment .payu-text {
    font-size: 10px;
}
.checkout-index-index .actions-toolbar .action.primary,
.sales-order-repayview .actions-toolbar .action.primary {
    margin-top: 20px;
}
.payu-msg .msg__error {
    color: red;
}

.payu-card-form-container {
    width: 380px;
    margin: 25px auto 15px;
}


.payu-card-cvv-form-container {
    width: 200px;
    margin: 25px auto 15px;
}

.payu-card-form-container .payu-card-container,
.payu-card-cvv-form-container .payu-card-cvv-container {
    margin: 0 auto;
    color: #ffffff;
    border-radius: 6px;
    padding: 15px 10px;
    border: 1px solid #428f29;
    background: rgba(66, 143, 41, 1);
    background: linear-gradient(135deg, rgba(53, 112, 33, 1) 0%, rgba(66, 143, 41, 1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#357021', endColorstr='#428f29', GradientType=1);
}

.payu-card-form-container .payu-card-container div.aside {
    font-size: 14px;
    margin-bottom: 6px;
}

.payu-card-form-container .payu-card-form,
.payu-card-cvv-form-container .payu-card-form {
    margin: 0 auto 0 auto;
    background-color: #ffffff;
    padding: 5px;
    border-radius: 4px;
}

.payu-card-form-container .card-details .expiration {
    width: 50%;
    float: left;
}
.payu-card-form-container .card-details .cvv {
    width: 45%;
    float: right;
}
.payu-card-form-container .clearfix:before, .clearfix:after {
    content: "";
    display: table;
}

.payu-card-form-container .clearfix:after { clear: both; }

.payu-card-form-container .clearfix {
    margin-top: 10px;
}

.payu-card-form-container .payu-card-legend-container {
    color: #ffffff;
    font-size: 12px;
    font-weight: bold;
    overflow: auto
}
.payu-card-form-container .payu-card-legend-container > div {
    float: left;
}
.payu-card-form-container .payu-card-legend-container > .payu-card-legend-number {
    width: 220px;
    margin-left: 45px
}
.payu-card-form-container .payu-card-legend-container > .payu-card-legend-valid {
    width: 85px
}
.payu-store-card {
    margin: 15px 0;
}
.payu-read-more {
    cursor: pointer;
    text-decoration: underline;
}

@media all and (min-width: 768px), print {
    .payu-payment .payment__method .method__single {
        width: 16.66666667%;
    }
}

@media only screen and (max-width: 500px) {
    .payu-card-form-container {
        width: 100%;
    }
}
/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */@font-face{font-family:'FontAwesome';src:url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../../frontend/Creativestyle/theme-kma/pl_PL/Magenest_Popup/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
@charset "UTF-8"; /*!
 * animate.css - https://animate.style/
 * Version - 4.1.0
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2020 Animate.css
 */
:root {
  --animate-duration:1s;--animate-delay:1s;--animate-repeat:1}

.animate__animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-duration: var(--animate-duration);
  animation-duration: var(--animate-duration);
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both
}

.animate__animated.animate__infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite
}

.animate__animated.animate__repeat-1 {
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-iteration-count: var(--animate-repeat);
  animation-iteration-count: var(--animate-repeat)
}

.animate__animated.animate__repeat-2 {
  -webkit-animation-iteration-count: 2;
  animation-iteration-count: 2;
  -webkit-animation-iteration-count: calc(var(--animate-repeat)*2);
  animation-iteration-count: calc(var(--animate-repeat)*2)
}

.animate__animated.animate__repeat-3 {
  -webkit-animation-iteration-count: 3;
  animation-iteration-count: 3;
  -webkit-animation-iteration-count: calc(var(--animate-repeat)*3);
  animation-iteration-count: calc(var(--animate-repeat)*3)
}

.animate__animated.animate__delay-1s {
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
  -webkit-animation-delay: var(--animate-delay);
  animation-delay: var(--animate-delay)
}

.animate__animated.animate__delay-2s {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
  -webkit-animation-delay: calc(var(--animate-delay)*2);
  animation-delay: calc(var(--animate-delay)*2)
}

.animate__animated.animate__delay-3s {
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
  -webkit-animation-delay: calc(var(--animate-delay)*3);
  animation-delay: calc(var(--animate-delay)*3)
}

.animate__animated.animate__delay-4s {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
  -webkit-animation-delay: calc(var(--animate-delay)*4);
  animation-delay: calc(var(--animate-delay)*4)
}

.animate__animated.animate__delay-5s {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
  -webkit-animation-delay: calc(var(--animate-delay)*5);
  animation-delay: calc(var(--animate-delay)*5)
}

.animate__animated.animate__faster {
  -webkit-animation-duration: .5s;
  animation-duration: .5s;
  -webkit-animation-duration: calc(var(--animate-duration)/2);
  animation-duration: calc(var(--animate-duration)/2)
}

.animate__animated.animate__fast {
  -webkit-animation-duration: .8s;
  animation-duration: .8s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.8);
  animation-duration: calc(var(--animate-duration)*0.8)
}

.animate__animated.animate__slow {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-duration: calc(var(--animate-duration)*2);
  animation-duration: calc(var(--animate-duration)*2)
}

.animate__animated.animate__slower {
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-animation-duration: calc(var(--animate-duration)*3);
  animation-duration: calc(var(--animate-duration)*3)
}

@media (prefers-reduced-motion:reduce),print {
  .animate__animated {
    -webkit-animation-duration: 1ms!important;
    animation-duration: 1ms!important;
    -webkit-transition-duration: 1ms!important;
    transition-duration: 1ms!important;
    -webkit-animation-iteration-count: 1!important;
    animation-iteration-count: 1!important
  }
  
  .animate__animated[class*=Out] {
    opacity: 0
  }
}

@-webkit-keyframes bounce {
  0%,20%,53%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  40%,43% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-30px,0) scaleY(1.1);
    transform: translate3d(0,-30px,0) scaleY(1.1)
  }
  
  70% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-15px,0) scaleY(1.05);
    transform: translate3d(0,-15px,0) scaleY(1.05)
  }
  
  80% {
    -webkit-transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0) scaleY(.95);
    transform: translateZ(0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-4px,0) scaleY(1.02);
    transform: translate3d(0,-4px,0) scaleY(1.02)
  }
}

@keyframes bounce {
  0%,20%,53%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  40%,43% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-30px,0) scaleY(1.1);
    transform: translate3d(0,-30px,0) scaleY(1.1)
  }
  
  70% {
    -webkit-animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    animation-timing-function: cubic-bezier(.755,.05,.855,.06);
    -webkit-transform: translate3d(0,-15px,0) scaleY(1.05);
    transform: translate3d(0,-15px,0) scaleY(1.05)
  }
  
  80% {
    -webkit-transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    -webkit-transform: translateZ(0) scaleY(.95);
    transform: translateZ(0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-4px,0) scaleY(1.02);
    transform: translate3d(0,-4px,0) scaleY(1.02)
  }
}

.animate__bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom
}

@-webkit-keyframes flash {
  0%,50%,to {
    opacity: 1
  }
  
  25%,75% {
    opacity: 0
  }
}

@keyframes flash {
  0%,50%,to {
    opacity: 1
  }
  
  25%,75% {
    opacity: 0
  }
}

.animate__flash {
  -webkit-animation-name: flash;
  animation-name: flash
}

@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  50% {
    -webkit-transform: scale3d(1.05,1.05,1.05);
    transform: scale3d(1.05,1.05,1.05)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

@keyframes pulse {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  50% {
    -webkit-transform: scale3d(1.05,1.05,1.05);
    transform: scale3d(1.05,1.05,1.05)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

.animate__pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out
}

@-webkit-keyframes rubberBand {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  30% {
    -webkit-transform: scale3d(1.25,.75,1);
    transform: scale3d(1.25,.75,1)
  }
  
  40% {
    -webkit-transform: scale3d(.75,1.25,1);
    transform: scale3d(.75,1.25,1)
  }
  
  50% {
    -webkit-transform: scale3d(1.15,.85,1);
    transform: scale3d(1.15,.85,1)
  }
  
  65% {
    -webkit-transform: scale3d(.95,1.05,1);
    transform: scale3d(.95,1.05,1)
  }
  
  75% {
    -webkit-transform: scale3d(1.05,.95,1);
    transform: scale3d(1.05,.95,1)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

@keyframes rubberBand {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  30% {
    -webkit-transform: scale3d(1.25,.75,1);
    transform: scale3d(1.25,.75,1)
  }
  
  40% {
    -webkit-transform: scale3d(.75,1.25,1);
    transform: scale3d(.75,1.25,1)
  }
  
  50% {
    -webkit-transform: scale3d(1.15,.85,1);
    transform: scale3d(1.15,.85,1)
  }
  
  65% {
    -webkit-transform: scale3d(.95,1.05,1);
    transform: scale3d(.95,1.05,1)
  }
  
  75% {
    -webkit-transform: scale3d(1.05,.95,1);
    transform: scale3d(1.05,.95,1)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

.animate__rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand
}

@-webkit-keyframes shakeX {
  0%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  10%,30%,50%,70%,90% {
    -webkit-transform: translate3d(-10px,0,0);
    transform: translate3d(-10px,0,0)
  }
  
  20%,40%,60%,80% {
    -webkit-transform: translate3d(10px,0,0);
    transform: translate3d(10px,0,0)
  }
}

@keyframes shakeX {
  0%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  10%,30%,50%,70%,90% {
    -webkit-transform: translate3d(-10px,0,0);
    transform: translate3d(-10px,0,0)
  }
  
  20%,40%,60%,80% {
    -webkit-transform: translate3d(10px,0,0);
    transform: translate3d(10px,0,0)
  }
}

.animate__shakeX {
  -webkit-animation-name: shakeX;
  animation-name: shakeX
}

@-webkit-keyframes shakeY {
  0%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  10%,30%,50%,70%,90% {
    -webkit-transform: translate3d(0,-10px,0);
    transform: translate3d(0,-10px,0)
  }
  
  20%,40%,60%,80% {
    -webkit-transform: translate3d(0,10px,0);
    transform: translate3d(0,10px,0)
  }
}

@keyframes shakeY {
  0%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  10%,30%,50%,70%,90% {
    -webkit-transform: translate3d(0,-10px,0);
    transform: translate3d(0,-10px,0)
  }
  
  20%,40%,60%,80% {
    -webkit-transform: translate3d(0,10px,0);
    transform: translate3d(0,10px,0)
  }
}

.animate__shakeY {
  -webkit-animation-name: shakeY;
  animation-name: shakeY
}

@-webkit-keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0)
  }
  
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg)
  }
  
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg)
  }
  
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg)
  }
  
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg)
  }
  
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0)
  }
}

@keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0)
  }
  
  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg)
  }
  
  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg)
  }
  
  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg)
  }
  
  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg)
  }
  
  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0)
  }
}

.animate__headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake
}

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate(15deg);
    transform: rotate(15deg)
  }
  
  40% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
  }
  
  60% {
    -webkit-transform: rotate(5deg);
    transform: rotate(5deg)
  }
  
  80% {
    -webkit-transform: rotate(-5deg);
    transform: rotate(-5deg)
  }
  
  to {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg)
  }
}

@keyframes swing {
  20% {
    -webkit-transform: rotate(15deg);
    transform: rotate(15deg)
  }
  
  40% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
  }
  
  60% {
    -webkit-transform: rotate(5deg);
    transform: rotate(5deg)
  }
  
  80% {
    -webkit-transform: rotate(-5deg);
    transform: rotate(-5deg)
  }
  
  to {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg)
  }
}

.animate__swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing
}

@-webkit-keyframes tada {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  10%,20% {
    -webkit-transform: scale3d(.9,.9,.9) rotate(-3deg);
    transform: scale3d(.9,.9,.9) rotate(-3deg)
  }
  
  30%,50%,70%,90% {
    -webkit-transform: scale3d(1.1,1.1,1.1) rotate(3deg);
    transform: scale3d(1.1,1.1,1.1) rotate(3deg)
  }
  
  40%,60%,80% {
    -webkit-transform: scale3d(1.1,1.1,1.1) rotate(-3deg);
    transform: scale3d(1.1,1.1,1.1) rotate(-3deg)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

@keyframes tada {
  0% {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
  
  10%,20% {
    -webkit-transform: scale3d(.9,.9,.9) rotate(-3deg);
    transform: scale3d(.9,.9,.9) rotate(-3deg)
  }
  
  30%,50%,70%,90% {
    -webkit-transform: scale3d(1.1,1.1,1.1) rotate(3deg);
    transform: scale3d(1.1,1.1,1.1) rotate(3deg)
  }
  
  40%,60%,80% {
    -webkit-transform: scale3d(1.1,1.1,1.1) rotate(-3deg);
    transform: scale3d(1.1,1.1,1.1) rotate(-3deg)
  }
  
  to {
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

.animate__tada {
  -webkit-animation-name: tada;
  animation-name: tada
}

@-webkit-keyframes wobble {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  15% {
    -webkit-transform: translate3d(-25%,0,0) rotate(-5deg);
    transform: translate3d(-25%,0,0) rotate(-5deg)
  }
  
  30% {
    -webkit-transform: translate3d(20%,0,0) rotate(3deg);
    transform: translate3d(20%,0,0) rotate(3deg)
  }
  
  45% {
    -webkit-transform: translate3d(-15%,0,0) rotate(-3deg);
    transform: translate3d(-15%,0,0) rotate(-3deg)
  }
  
  60% {
    -webkit-transform: translate3d(10%,0,0) rotate(2deg);
    transform: translate3d(10%,0,0) rotate(2deg)
  }
  
  75% {
    -webkit-transform: translate3d(-5%,0,0) rotate(-1deg);
    transform: translate3d(-5%,0,0) rotate(-1deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes wobble {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  15% {
    -webkit-transform: translate3d(-25%,0,0) rotate(-5deg);
    transform: translate3d(-25%,0,0) rotate(-5deg)
  }
  
  30% {
    -webkit-transform: translate3d(20%,0,0) rotate(3deg);
    transform: translate3d(20%,0,0) rotate(3deg)
  }
  
  45% {
    -webkit-transform: translate3d(-15%,0,0) rotate(-3deg);
    transform: translate3d(-15%,0,0) rotate(-3deg)
  }
  
  60% {
    -webkit-transform: translate3d(10%,0,0) rotate(2deg);
    transform: translate3d(10%,0,0) rotate(2deg)
  }
  
  75% {
    -webkit-transform: translate3d(-5%,0,0) rotate(-1deg);
    transform: translate3d(-5%,0,0) rotate(-1deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble
}

@-webkit-keyframes jello {
  0%,11.1%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg)
  }
  
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg)
  }
  
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg)
  }
  
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg)
  }
  
  66.6% {
    -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
    transform: skewX(-.78125deg) skewY(-.78125deg)
  }
  
  77.7% {
    -webkit-transform: skewX(.390625deg) skewY(.390625deg);
    transform: skewX(.390625deg) skewY(.390625deg)
  }
  
  88.8% {
    -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
    transform: skewX(-.1953125deg) skewY(-.1953125deg)
  }
}

@keyframes jello {
  0%,11.1%,to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg)
  }
  
  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg)
  }
  
  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg)
  }
  
  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg)
  }
  
  66.6% {
    -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);
    transform: skewX(-.78125deg) skewY(-.78125deg)
  }
  
  77.7% {
    -webkit-transform: skewX(.390625deg) skewY(.390625deg);
    transform: skewX(.390625deg) skewY(.390625deg)
  }
  
  88.8% {
    -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);
    transform: skewX(-.1953125deg) skewY(-.1953125deg)
  }
}

.animate__jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center
}

@-webkit-keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  28% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  70% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

@keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  28% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
  
  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3)
  }
  
  70% {
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

.animate__heartBeat {
  -webkit-animation-name: heartBeat;
  animation-name: heartBeat;
  -webkit-animation-duration: 1.3s;
  animation-duration: 1.3s;
  -webkit-animation-duration: calc(var(--animate-duration)*1.3);
  animation-duration: calc(var(--animate-duration)*1.3);
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out
}

@-webkit-keyframes backInDown {
  0% {
    -webkit-transform: translateY(-1200px) scale(.7);
    transform: translateY(-1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInDown {
  0% {
    -webkit-transform: translateY(-1200px) scale(.7);
    transform: translateY(-1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInDown {
  -webkit-animation-name: backInDown;
  animation-name: backInDown
}

@-webkit-keyframes backInLeft {
  0% {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInLeft {
  0% {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInLeft {
  -webkit-animation-name: backInLeft;
  animation-name: backInLeft
}

@-webkit-keyframes backInRight {
  0% {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInRight {
  0% {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInRight {
  -webkit-animation-name: backInRight;
  animation-name: backInRight
}

@-webkit-keyframes backInUp {
  0% {
    -webkit-transform: translateY(1200px) scale(.7);
    transform: translateY(1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

@keyframes backInUp {
  0% {
    -webkit-transform: translateY(1200px) scale(.7);
    transform: translateY(1200px) scale(.7);
    opacity: .7
  }
  
  80% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
}

.animate__backInUp {
  -webkit-animation-name: backInUp;
  animation-name: backInUp
}

@-webkit-keyframes backOutDown {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(700px) scale(.7);
    transform: translateY(700px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutDown {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(700px) scale(.7);
    transform: translateY(700px) scale(.7);
    opacity: .7
  }
}

.animate__backOutDown {
  -webkit-animation-name: backOutDown;
  animation-name: backOutDown
}

@-webkit-keyframes backOutLeft {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutLeft {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(-2000px) scale(.7);
    transform: translateX(-2000px) scale(.7);
    opacity: .7
  }
}

.animate__backOutLeft {
  -webkit-animation-name: backOutLeft;
  animation-name: backOutLeft
}

@-webkit-keyframes backOutRight {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutRight {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateX(0) scale(.7);
    transform: translateX(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateX(2000px) scale(.7);
    transform: translateX(2000px) scale(.7);
    opacity: .7
  }
}

.animate__backOutRight {
  -webkit-animation-name: backOutRight;
  animation-name: backOutRight
}

@-webkit-keyframes backOutUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(-700px) scale(.7);
    transform: translateY(-700px) scale(.7);
    opacity: .7
  }
}

@keyframes backOutUp {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
    opacity: 1
  }
  
  20% {
    -webkit-transform: translateY(0) scale(.7);
    transform: translateY(0) scale(.7);
    opacity: .7
  }
  
  to {
    -webkit-transform: translateY(-700px) scale(.7);
    transform: translateY(-700px) scale(.7);
    opacity: .7
  }
}

.animate__backOutUp {
  -webkit-animation-name: backOutUp;
  animation-name: backOutUp
}

@-webkit-keyframes bounceIn {
  0%,20%,40%,60%,80%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  20% {
    -webkit-transform: scale3d(1.1,1.1,1.1);
    transform: scale3d(1.1,1.1,1.1)
  }
  
  40% {
    -webkit-transform: scale3d(.9,.9,.9);
    transform: scale3d(.9,.9,.9)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03,1.03,1.03);
    transform: scale3d(1.03,1.03,1.03)
  }
  
  80% {
    -webkit-transform: scale3d(.97,.97,.97);
    transform: scale3d(.97,.97,.97)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

@keyframes bounceIn {
  0%,20%,40%,60%,80%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  20% {
    -webkit-transform: scale3d(1.1,1.1,1.1);
    transform: scale3d(1.1,1.1,1.1)
  }
  
  40% {
    -webkit-transform: scale3d(.9,.9,.9);
    transform: scale3d(.9,.9,.9)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03,1.03,1.03);
    transform: scale3d(1.03,1.03,1.03)
  }
  
  80% {
    -webkit-transform: scale3d(.97,.97,.97);
    transform: scale3d(.97,.97,.97)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scaleX(1);
    transform: scaleX(1)
  }
}

.animate__bounceIn {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn
}

@-webkit-keyframes bounceInDown {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-3000px,0) scaleY(3);
    transform: translate3d(0,-3000px,0) scaleY(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,25px,0) scaleY(.9);
    transform: translate3d(0,25px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,-10px,0) scaleY(.95);
    transform: translate3d(0,-10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,5px,0) scaleY(.985);
    transform: translate3d(0,5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInDown {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-3000px,0) scaleY(3);
    transform: translate3d(0,-3000px,0) scaleY(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,25px,0) scaleY(.9);
    transform: translate3d(0,25px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,-10px,0) scaleY(.95);
    transform: translate3d(0,-10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,5px,0) scaleY(.985);
    transform: translate3d(0,5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown
}

@-webkit-keyframes bounceInLeft {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px,0,0) scaleX(3);
    transform: translate3d(-3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px,0,0) scaleX(1);
    transform: translate3d(25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(-10px,0,0) scaleX(.98);
    transform: translate3d(-10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(5px,0,0) scaleX(.995);
    transform: translate3d(5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInLeft {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px,0,0) scaleX(3);
    transform: translate3d(-3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px,0,0) scaleX(1);
    transform: translate3d(25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(-10px,0,0) scaleX(.98);
    transform: translate3d(-10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(5px,0,0) scaleX(.995);
    transform: translate3d(5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft
}

@-webkit-keyframes bounceInRight {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px,0,0) scaleX(3);
    transform: translate3d(3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px,0,0) scaleX(1);
    transform: translate3d(-25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(10px,0,0) scaleX(.98);
    transform: translate3d(10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(-5px,0,0) scaleX(.995);
    transform: translate3d(-5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInRight {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(3000px,0,0) scaleX(3);
    transform: translate3d(3000px,0,0) scaleX(3)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px,0,0) scaleX(1);
    transform: translate3d(-25px,0,0) scaleX(1)
  }
  
  75% {
    -webkit-transform: translate3d(10px,0,0) scaleX(.98);
    transform: translate3d(10px,0,0) scaleX(.98)
  }
  
  90% {
    -webkit-transform: translate3d(-5px,0,0) scaleX(.995);
    transform: translate3d(-5px,0,0) scaleX(.995)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight
}

@-webkit-keyframes bounceInUp {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,3000px,0) scaleY(5);
    transform: translate3d(0,3000px,0) scaleY(5)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,-20px,0) scaleY(.9);
    transform: translate3d(0,-20px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,10px,0) scaleY(.95);
    transform: translate3d(0,10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-5px,0) scaleY(.985);
    transform: translate3d(0,-5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes bounceInUp {
  0%,60%,75%,90%,to {
    -webkit-animation-timing-function: cubic-bezier(.215,.61,.355,1);
    animation-timing-function: cubic-bezier(.215,.61,.355,1)
  }
  
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,3000px,0) scaleY(5);
    transform: translate3d(0,3000px,0) scaleY(5)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: translate3d(0,-20px,0) scaleY(.9);
    transform: translate3d(0,-20px,0) scaleY(.9)
  }
  
  75% {
    -webkit-transform: translate3d(0,10px,0) scaleY(.95);
    transform: translate3d(0,10px,0) scaleY(.95)
  }
  
  90% {
    -webkit-transform: translate3d(0,-5px,0) scaleY(.985);
    transform: translate3d(0,-5px,0) scaleY(.985)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp
}

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(.9,.9,.9);
    transform: scale3d(.9,.9,.9)
  }
  
  50%,55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1,1.1,1.1);
    transform: scale3d(1.1,1.1,1.1)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
}

@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(.9,.9,.9);
    transform: scale3d(.9,.9,.9)
  }
  
  50%,55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1,1.1,1.1);
    transform: scale3d(1.1,1.1,1.1)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
}

.animate__bounceOut {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut
}

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0,10px,0) scaleY(.985);
    transform: translate3d(0,10px,0) scaleY(.985)
  }
  
  40%,45% {
    opacity: 1;
    -webkit-transform: translate3d(0,-20px,0) scaleY(.9);
    transform: translate3d(0,-20px,0) scaleY(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,2000px,0) scaleY(3);
    transform: translate3d(0,2000px,0) scaleY(3)
  }
}

@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0,10px,0) scaleY(.985);
    transform: translate3d(0,10px,0) scaleY(.985)
  }
  
  40%,45% {
    opacity: 1;
    -webkit-transform: translate3d(0,-20px,0) scaleY(.9);
    transform: translate3d(0,-20px,0) scaleY(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,2000px,0) scaleY(3);
    transform: translate3d(0,2000px,0) scaleY(3)
  }
}

.animate__bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown
}

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px,0,0) scaleX(.9);
    transform: translate3d(20px,0,0) scaleX(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px,0,0) scaleX(2);
    transform: translate3d(-2000px,0,0) scaleX(2)
  }
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px,0,0) scaleX(.9);
    transform: translate3d(20px,0,0) scaleX(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px,0,0) scaleX(2);
    transform: translate3d(-2000px,0,0) scaleX(2)
  }
}

.animate__bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft
}

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px,0,0) scaleX(.9);
    transform: translate3d(-20px,0,0) scaleX(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px,0,0) scaleX(2);
    transform: translate3d(2000px,0,0) scaleX(2)
  }
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px,0,0) scaleX(.9);
    transform: translate3d(-20px,0,0) scaleX(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px,0,0) scaleX(2);
    transform: translate3d(2000px,0,0) scaleX(2)
  }
}

.animate__bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight
}

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0,-10px,0) scaleY(.985);
    transform: translate3d(0,-10px,0) scaleY(.985)
  }
  
  40%,45% {
    opacity: 1;
    -webkit-transform: translate3d(0,20px,0) scaleY(.9);
    transform: translate3d(0,20px,0) scaleY(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,-2000px,0) scaleY(3);
    transform: translate3d(0,-2000px,0) scaleY(3)
  }
}

@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0,-10px,0) scaleY(.985);
    transform: translate3d(0,-10px,0) scaleY(.985)
  }
  
  40%,45% {
    opacity: 1;
    -webkit-transform: translate3d(0,20px,0) scaleY(.9);
    transform: translate3d(0,20px,0) scaleY(.9)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,-2000px,0) scaleY(3);
    transform: translate3d(0,-2000px,0) scaleY(3)
  }
}

.animate__bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp
}

@-webkit-keyframes fadeIn {
  0% {
    opacity: 0
  }
  
  to {
    opacity: 1
  }
}

@keyframes fadeIn {
  0% {
    opacity: 0
  }
  
  to {
    opacity: 1
  }
}

.animate__fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn
}

@-webkit-keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInDown {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown
}

@-webkit-keyframes fadeInDownBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-2000px,0);
    transform: translate3d(0,-2000px,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInDownBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,-2000px,0);
    transform: translate3d(0,-2000px,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig
}

@-webkit-keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft
}

@-webkit-keyframes fadeInLeftBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px,0,0);
    transform: translate3d(-2000px,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInLeftBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-2000px,0,0);
    transform: translate3d(-2000px,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig
}

@-webkit-keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight
}

@-webkit-keyframes fadeInRightBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(2000px,0,0);
    transform: translate3d(2000px,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInRightBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(2000px,0,0);
    transform: translate3d(2000px,0,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig
}

@-webkit-keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp
}

@-webkit-keyframes fadeInUpBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,2000px,0);
    transform: translate3d(0,2000px,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInUpBig {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0,2000px,0);
    transform: translate3d(0,2000px,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig
}

@-webkit-keyframes fadeInTopLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,-100%,0);
    transform: translate3d(-100%,-100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInTopLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,-100%,0);
    transform: translate3d(-100%,-100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInTopLeft {
  -webkit-animation-name: fadeInTopLeft;
  animation-name: fadeInTopLeft
}

@-webkit-keyframes fadeInTopRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%,-100%,0);
    transform: translate3d(100%,-100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInTopRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%,-100%,0);
    transform: translate3d(100%,-100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInTopRight {
  -webkit-animation-name: fadeInTopRight;
  animation-name: fadeInTopRight
}

@-webkit-keyframes fadeInBottomLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,100%,0);
    transform: translate3d(-100%,100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInBottomLeft {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,100%,0);
    transform: translate3d(-100%,100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInBottomLeft {
  -webkit-animation-name: fadeInBottomLeft;
  animation-name: fadeInBottomLeft
}

@-webkit-keyframes fadeInBottomRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%,100%,0);
    transform: translate3d(100%,100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes fadeInBottomRight {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(100%,100%,0);
    transform: translate3d(100%,100%,0)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__fadeInBottomRight {
  -webkit-animation-name: fadeInBottomRight;
  animation-name: fadeInBottomRight
}

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0
  }
}

@keyframes fadeOut {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0
  }
}

.animate__fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut
}

@-webkit-keyframes fadeOutDown {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0)
  }
}

@keyframes fadeOutDown {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0)
  }
}

.animate__fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown
}

@-webkit-keyframes fadeOutDownBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,2000px,0);
    transform: translate3d(0,2000px,0)
  }
}

@keyframes fadeOutDownBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,2000px,0);
    transform: translate3d(0,2000px,0)
  }
}

.animate__fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig
}

@-webkit-keyframes fadeOutLeft {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0)
  }
}

@keyframes fadeOutLeft {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0)
  }
}

.animate__fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft
}

@-webkit-keyframes fadeOutLeftBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px,0,0);
    transform: translate3d(-2000px,0,0)
  }
}

@keyframes fadeOutLeftBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px,0,0);
    transform: translate3d(-2000px,0,0)
  }
}

.animate__fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig
}

@-webkit-keyframes fadeOutRight {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0)
  }
}

@keyframes fadeOutRight {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0)
  }
}

.animate__fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight
}

@-webkit-keyframes fadeOutRightBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px,0,0);
    transform: translate3d(2000px,0,0)
  }
}

@keyframes fadeOutRightBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px,0,0);
    transform: translate3d(2000px,0,0)
  }
}

.animate__fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig
}

@-webkit-keyframes fadeOutUp {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0)
  }
}

@keyframes fadeOutUp {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0)
  }
}

.animate__fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp
}

@-webkit-keyframes fadeOutUpBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,-2000px,0);
    transform: translate3d(0,-2000px,0)
  }
}

@keyframes fadeOutUpBig {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(0,-2000px,0);
    transform: translate3d(0,-2000px,0)
  }
}

.animate__fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig
}

@-webkit-keyframes fadeOutTopLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%,-100%,0);
    transform: translate3d(-100%,-100%,0)
  }
}

@keyframes fadeOutTopLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%,-100%,0);
    transform: translate3d(-100%,-100%,0)
  }
}

.animate__fadeOutTopLeft {
  -webkit-animation-name: fadeOutTopLeft;
  animation-name: fadeOutTopLeft
}

@-webkit-keyframes fadeOutTopRight {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,-100%,0);
    transform: translate3d(100%,-100%,0)
  }
}

@keyframes fadeOutTopRight {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,-100%,0);
    transform: translate3d(100%,-100%,0)
  }
}

.animate__fadeOutTopRight {
  -webkit-animation-name: fadeOutTopRight;
  animation-name: fadeOutTopRight
}

@-webkit-keyframes fadeOutBottomRight {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,100%,0);
    transform: translate3d(100%,100%,0)
  }
}

@keyframes fadeOutBottomRight {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,100%,0);
    transform: translate3d(100%,100%,0)
  }
}

.animate__fadeOutBottomRight {
  -webkit-animation-name: fadeOutBottomRight;
  animation-name: fadeOutBottomRight
}

@-webkit-keyframes fadeOutBottomLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%,100%,0);
    transform: translate3d(-100%,100%,0)
  }
}

@keyframes fadeOutBottomLeft {
  0% {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%,100%,0);
    transform: translate3d(-100%,100%,0)
  }
}

.animate__fadeOutBottomLeft {
  -webkit-animation-name: fadeOutBottomLeft;
  animation-name: fadeOutBottomLeft
}

@-webkit-keyframes flip {
  0% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  40% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  50% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  80% {
    -webkit-transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  to {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
}

@keyframes flip {
  0% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  40% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out
  }
  
  50% {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  80% {
    -webkit-transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  to {
    -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
}

.animate__animated.animate__flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip
}

@-webkit-keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0
  }
  
  40% {
    -webkit-transform: perspective(400px) rotateX(-20deg);
    transform: perspective(400px) rotateX(-20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  60% {
    -webkit-transform: perspective(400px) rotateX(10deg);
    transform: perspective(400px) rotateX(10deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: perspective(400px) rotateX(-5deg);
    transform: perspective(400px) rotateX(-5deg)
  }
  
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
}

@keyframes flipInX {
  0% {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0
  }
  
  40% {
    -webkit-transform: perspective(400px) rotateX(-20deg);
    transform: perspective(400px) rotateX(-20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  60% {
    -webkit-transform: perspective(400px) rotateX(10deg);
    transform: perspective(400px) rotateX(10deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: perspective(400px) rotateX(-5deg);
    transform: perspective(400px) rotateX(-5deg)
  }
  
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
}

.animate__flipInX {
  -webkit-backface-visibility: visible!important;
  backface-visibility: visible!important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX
}

@-webkit-keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0
  }
  
  40% {
    -webkit-transform: perspective(400px) rotateY(-20deg);
    transform: perspective(400px) rotateY(-20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  60% {
    -webkit-transform: perspective(400px) rotateY(10deg);
    transform: perspective(400px) rotateY(10deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: perspective(400px) rotateY(-5deg);
    transform: perspective(400px) rotateY(-5deg)
  }
  
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
}

@keyframes flipInY {
  0% {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0
  }
  
  40% {
    -webkit-transform: perspective(400px) rotateY(-20deg);
    transform: perspective(400px) rotateY(-20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in
  }
  
  60% {
    -webkit-transform: perspective(400px) rotateY(10deg);
    transform: perspective(400px) rotateY(10deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: perspective(400px) rotateY(-5deg);
    transform: perspective(400px) rotateY(-5deg)
  }
  
  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
}

.animate__flipInY {
  -webkit-backface-visibility: visible!important;
  backface-visibility: visible!important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY
}

@-webkit-keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
  
  30% {
    -webkit-transform: perspective(400px) rotateX(-20deg);
    transform: perspective(400px) rotateX(-20deg);
    opacity: 1
  }
  
  to {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0
  }
}

@keyframes flipOutX {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
  
  30% {
    -webkit-transform: perspective(400px) rotateX(-20deg);
    transform: perspective(400px) rotateX(-20deg);
    opacity: 1
  }
  
  to {
    -webkit-transform: perspective(400px) rotateX(90deg);
    transform: perspective(400px) rotateX(90deg);
    opacity: 0
  }
}

.animate__flipOutX {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible!important;
  backface-visibility: visible!important
}

@-webkit-keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
  
  30% {
    -webkit-transform: perspective(400px) rotateY(-15deg);
    transform: perspective(400px) rotateY(-15deg);
    opacity: 1
  }
  
  to {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0
  }
}

@keyframes flipOutY {
  0% {
    -webkit-transform: perspective(400px);
    transform: perspective(400px)
  }
  
  30% {
    -webkit-transform: perspective(400px) rotateY(-15deg);
    transform: perspective(400px) rotateY(-15deg);
    opacity: 1
  }
  
  to {
    -webkit-transform: perspective(400px) rotateY(90deg);
    transform: perspective(400px) rotateY(90deg);
    opacity: 0
  }
}

.animate__flipOutY {
  -webkit-animation-duration: .75s;
  animation-duration: .75s;
  -webkit-animation-duration: calc(var(--animate-duration)*0.75);
  animation-duration: calc(var(--animate-duration)*0.75);
  -webkit-backface-visibility: visible!important;
  backface-visibility: visible!important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY
}

@-webkit-keyframes lightSpeedInRight {
  0% {
    -webkit-transform: translate3d(100%,0,0) skewX(-30deg);
    transform: translate3d(100%,0,0) skewX(-30deg);
    opacity: 0
  }
  
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes lightSpeedInRight {
  0% {
    -webkit-transform: translate3d(100%,0,0) skewX(-30deg);
    transform: translate3d(100%,0,0) skewX(-30deg);
    opacity: 0
  }
  
  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__lightSpeedInRight {
  -webkit-animation-name: lightSpeedInRight;
  animation-name: lightSpeedInRight;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out
}

@-webkit-keyframes lightSpeedInLeft {
  0% {
    -webkit-transform: translate3d(-100%,0,0) skewX(30deg);
    transform: translate3d(-100%,0,0) skewX(30deg);
    opacity: 0
  }
  
  60% {
    -webkit-transform: skewX(-20deg);
    transform: skewX(-20deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: skewX(5deg);
    transform: skewX(5deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes lightSpeedInLeft {
  0% {
    -webkit-transform: translate3d(-100%,0,0) skewX(30deg);
    transform: translate3d(-100%,0,0) skewX(30deg);
    opacity: 0
  }
  
  60% {
    -webkit-transform: skewX(-20deg);
    transform: skewX(-20deg);
    opacity: 1
  }
  
  80% {
    -webkit-transform: skewX(5deg);
    transform: skewX(5deg)
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__lightSpeedInLeft {
  -webkit-animation-name: lightSpeedInLeft;
  animation-name: lightSpeedInLeft;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out
}

@-webkit-keyframes lightSpeedOutRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: translate3d(100%,0,0) skewX(30deg);
    transform: translate3d(100%,0,0) skewX(30deg);
    opacity: 0
  }
}

@keyframes lightSpeedOutRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: translate3d(100%,0,0) skewX(30deg);
    transform: translate3d(100%,0,0) skewX(30deg);
    opacity: 0
  }
}

.animate__lightSpeedOutRight {
  -webkit-animation-name: lightSpeedOutRight;
  animation-name: lightSpeedOutRight;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in
}

@-webkit-keyframes lightSpeedOutLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: translate3d(-100%,0,0) skewX(-30deg);
    transform: translate3d(-100%,0,0) skewX(-30deg);
    opacity: 0
  }
}

@keyframes lightSpeedOutLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: translate3d(-100%,0,0) skewX(-30deg);
    transform: translate3d(-100%,0,0) skewX(-30deg);
    opacity: 0
  }
}

.animate__lightSpeedOutLeft {
  -webkit-animation-name: lightSpeedOutLeft;
  animation-name: lightSpeedOutLeft;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in
}

@-webkit-keyframes rotateIn {
  0% {
    -webkit-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateIn {
  0% {
    -webkit-transform: rotate(-200deg);
    transform: rotate(-200deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn;
  -webkit-transform-origin: center;
  transform-origin: center
}

@-webkit-keyframes rotateInDownLeft {
  0% {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInDownLeft {
  0% {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateInDownRight {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInDownRight {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

@-webkit-keyframes rotateInUpLeft {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInUpLeft {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateInUpRight {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

@keyframes rotateInUpRight {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 0
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    opacity: 1
  }
}

.animate__rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

@-webkit-keyframes rotateOut {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0
  }
}

@keyframes rotateOut {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(200deg);
    transform: rotate(200deg);
    opacity: 0
  }
}

.animate__rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut;
  -webkit-transform-origin: center;
  transform-origin: center
}

@-webkit-keyframes rotateOutDownLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
}

@keyframes rotateOutDownLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    opacity: 0
  }
}

.animate__rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateOutDownRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

@keyframes rotateOutDownRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

.animate__rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

@-webkit-keyframes rotateOutUpLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

@keyframes rotateOutUpLeft {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    opacity: 0
  }
}

.animate__rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft;
  -webkit-transform-origin: left bottom;
  transform-origin: left bottom
}

@-webkit-keyframes rotateOutUpRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0
  }
}

@keyframes rotateOutUpRight {
  0% {
    opacity: 1
  }
  
  to {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0
  }
}

.animate__rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight;
  -webkit-transform-origin: right bottom;
  transform-origin: right bottom
}

@-webkit-keyframes hinge {
  0% {
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out
  }
  
  20%,60% {
    -webkit-transform: rotate(80deg);
    transform: rotate(80deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out
  }
  
  40%,80% {
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1
  }
  
  to {
    -webkit-transform: translate3d(0,700px,0);
    transform: translate3d(0,700px,0);
    opacity: 0
  }
}

@keyframes hinge {
  0% {
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out
  }
  
  20%,60% {
    -webkit-transform: rotate(80deg);
    transform: rotate(80deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out
  }
  
  40%,80% {
    -webkit-transform: rotate(60deg);
    transform: rotate(60deg);
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1
  }
  
  to {
    -webkit-transform: translate3d(0,700px,0);
    transform: translate3d(0,700px,0);
    opacity: 0
  }
}

.animate__hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-duration: calc(var(--animate-duration)*2);
  animation-duration: calc(var(--animate-duration)*2);
  -webkit-animation-name: hinge;
  animation-name: hinge;
  -webkit-transform-origin: top left;
  transform-origin: top left
}

@-webkit-keyframes jackInTheBox {
  0% {
    opacity: 0;
    -webkit-transform: scale(.1) rotate(30deg);
    transform: scale(.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom
  }
  
  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
  }
  
  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

@keyframes jackInTheBox {
  0% {
    opacity: 0;
    -webkit-transform: scale(.1) rotate(30deg);
    transform: scale(.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom
  }
  
  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg)
  }
  
  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg)
  }
  
  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1)
  }
}

.animate__jackInTheBox {
  -webkit-animation-name: jackInTheBox;
  animation-name: jackInTheBox
}

@-webkit-keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,0,0) rotate(-120deg);
    transform: translate3d(-100%,0,0) rotate(-120deg)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes rollIn {
  0% {
    opacity: 0;
    -webkit-transform: translate3d(-100%,0,0) rotate(-120deg);
    transform: translate3d(-100%,0,0) rotate(-120deg)
  }
  
  to {
    opacity: 1;
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn
}

@-webkit-keyframes rollOut {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0) rotate(120deg);
    transform: translate3d(100%,0,0) rotate(120deg)
  }
}

@keyframes rollOut {
  0% {
    opacity: 1
  }
  
  to {
    opacity: 0;
    -webkit-transform: translate3d(100%,0,0) rotate(120deg);
    transform: translate3d(100%,0,0) rotate(120deg)
  }
}

.animate__rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut
}

@-webkit-keyframes zoomIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  50% {
    opacity: 1
  }
}

@keyframes zoomIn {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  50% {
    opacity: 1
  }
}

.animate__zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn
}

@-webkit-keyframes zoomInDown {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInDown {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

.animate__zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown
}

@-webkit-keyframes zoomInLeft {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInLeft {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(-1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

.animate__zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft
}

@-webkit-keyframes zoomInRight {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInRight {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    transform: scale3d(.1,.1,.1) translate3d(1000px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(-10px,0,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

.animate__zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight
}

@-webkit-keyframes zoomInUp {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomInUp {
  0% {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,1000px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  60% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

.animate__zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp
}

@-webkit-keyframes zoomOut {
  0% {
    opacity: 1
  }
  
  50% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  to {
    opacity: 0
  }
}

@keyframes zoomOut {
  0% {
    opacity: 1
  }
  
  50% {
    opacity: 0;
    -webkit-transform: scale3d(.3,.3,.3);
    transform: scale3d(.3,.3,.3)
  }
  
  to {
    opacity: 0
  }
}

.animate__zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut
}

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,-60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

.animate__zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom
}

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(42px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(42px,0,0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(-2000px,0,0);
    transform: scale(.1) translate3d(-2000px,0,0)
  }
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(42px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(42px,0,0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(-2000px,0,0);
    transform: scale(.1) translate3d(-2000px,0,0)
  }
}

.animate__zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft;
  -webkit-transform-origin: left center;
  transform-origin: left center
}

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(-42px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(-42px,0,0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(2000px,0,0);
    transform: scale(.1) translate3d(2000px,0,0)
  }
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(-42px,0,0);
    transform: scale3d(.475,.475,.475) translate3d(-42px,0,0)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale(.1) translate3d(2000px,0,0);
    transform: scale(.1) translate3d(2000px,0,0)
  }
}

.animate__zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight;
  -webkit-transform-origin: right center;
  transform-origin: right center
}

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    transform: scale3d(.475,.475,.475) translate3d(0,60px,0);
    -webkit-animation-timing-function: cubic-bezier(.55,.055,.675,.19);
    animation-timing-function: cubic-bezier(.55,.055,.675,.19)
  }
  
  to {
    opacity: 0;
    -webkit-transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    transform: scale3d(.1,.1,.1) translate3d(0,-2000px,0);
    -webkit-animation-timing-function: cubic-bezier(.175,.885,.32,1);
    animation-timing-function: cubic-bezier(.175,.885,.32,1)
  }
}

.animate__zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom
}

@-webkit-keyframes slideInDown {
  0% {
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes slideInDown {
  0% {
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown
}

@-webkit-keyframes slideInLeft {
  0% {
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes slideInLeft {
  0% {
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft
}

@-webkit-keyframes slideInRight {
  0% {
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes slideInRight {
  0% {
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight
}

@-webkit-keyframes slideInUp {
  0% {
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

@keyframes slideInUp {
  0% {
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0);
    visibility: visible
  }
  
  to {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
}

.animate__slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp
}

@-webkit-keyframes slideOutDown {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0)
  }
}

@keyframes slideOutDown {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0,100%,0);
    transform: translate3d(0,100%,0)
  }
}

.animate__slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown
}

@-webkit-keyframes slideOutLeft {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0)
  }
}

@keyframes slideOutLeft {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%,0,0);
    transform: translate3d(-100%,0,0)
  }
}

.animate__slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft
}

@-webkit-keyframes slideOutRight {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0)
  }
}

@keyframes slideOutRight {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%,0,0);
    transform: translate3d(100%,0,0)
  }
}

.animate__slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight
}

@-webkit-keyframes slideOutUp {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0)
  }
}

@keyframes slideOutUp {
  0% {
    -webkit-transform: translateZ(0);
    transform: translateZ(0)
  }
  
  to {
    visibility: hidden;
    -webkit-transform: translate3d(0,-100%,0);
    transform: translate3d(0,-100%,0)
  }
}

.animate__slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp
}
/**
 * Owl Carousel v2.3.4
 * Copyright 2013-2018 David Deutsch
 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
 */
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit;box-shadow: none;}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/css/owlcarousel/owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}
.owl-carousel .owl-dots,.owl-carousel .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-carousel .owl-nav{margin-top:10px}.owl-carousel .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-carousel .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-carousel .owl-nav .disabled{opacity:.5;cursor:default}.owl-carousel .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-carousel .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-carousel .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-carousel .owl-dots .owl-dot.active span,.owl-carousel .owl-dots .owl-dot:hover span{background:#869791}@charset "UTF-8";

/*!
 * animate.css -https://daneden.github.io/animate.css/
 * Version - 3.7.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2019 Daniel Eden
 */

@-webkit-keyframes bounce {
  from,
  20%,
  53%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  40%,
  43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0);
  }
}

@keyframes bounce {
  from,
  20%,
  53%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  40%,
  43% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -30px, 0);
    transform: translate3d(0, -30px, 0);
  }

  70% {
    -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -webkit-transform: translate3d(0, -15px, 0);
    transform: translate3d(0, -15px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -4px, 0);
    transform: translate3d(0, -4px, 0);
  }
}

.bounce {
  -webkit-animation-name: bounce;
  animation-name: bounce;
  -webkit-transform-origin: center bottom;
  transform-origin: center bottom;
}

@-webkit-keyframes flash {
  from,
  50%,
  to {
    opacity: 1;
  }

  25%,
  75% {
    opacity: 0;
  }
}

@keyframes flash {
  from,
  50%,
  to {
    opacity: 1;
  }

  25%,
  75% {
    opacity: 0;
  }
}

.flash {
  -webkit-animation-name: flash;
  animation-name: flash;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes pulse {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  50% {
    -webkit-transform: scale3d(1.05, 1.05, 1.05);
    transform: scale3d(1.05, 1.05, 1.05);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.pulse {
  -webkit-animation-name: pulse;
  animation-name: pulse;
}

@-webkit-keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1);
  }

  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes rubberBand {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  30% {
    -webkit-transform: scale3d(1.25, 0.75, 1);
    transform: scale3d(1.25, 0.75, 1);
  }

  40% {
    -webkit-transform: scale3d(0.75, 1.25, 1);
    transform: scale3d(0.75, 1.25, 1);
  }

  50% {
    -webkit-transform: scale3d(1.15, 0.85, 1);
    transform: scale3d(1.15, 0.85, 1);
  }

  65% {
    -webkit-transform: scale3d(0.95, 1.05, 1);
    transform: scale3d(0.95, 1.05, 1);
  }

  75% {
    -webkit-transform: scale3d(1.05, 0.95, 1);
    transform: scale3d(1.05, 0.95, 1);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.rubberBand {
  -webkit-animation-name: rubberBand;
  animation-name: rubberBand;
}

@-webkit-keyframes shake {
  from,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

@keyframes shake {
  from,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  10%,
  30%,
  50%,
  70%,
  90% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  20%,
  40%,
  60%,
  80% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }
}

.shake {
  -webkit-animation-name: shake;
  animation-name: shake;
}

@-webkit-keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

@keyframes headShake {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }

  6.5% {
    -webkit-transform: translateX(-6px) rotateY(-9deg);
    transform: translateX(-6px) rotateY(-9deg);
  }

  18.5% {
    -webkit-transform: translateX(5px) rotateY(7deg);
    transform: translateX(5px) rotateY(7deg);
  }

  31.5% {
    -webkit-transform: translateX(-3px) rotateY(-5deg);
    transform: translateX(-3px) rotateY(-5deg);
  }

  43.5% {
    -webkit-transform: translateX(2px) rotateY(3deg);
    transform: translateX(2px) rotateY(3deg);
  }

  50% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}

.headShake {
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
  -webkit-animation-name: headShake;
  animation-name: headShake;
}

@-webkit-keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

@keyframes swing {
  20% {
    -webkit-transform: rotate3d(0, 0, 1, 15deg);
    transform: rotate3d(0, 0, 1, 15deg);
  }

  40% {
    -webkit-transform: rotate3d(0, 0, 1, -10deg);
    transform: rotate3d(0, 0, 1, -10deg);
  }

  60% {
    -webkit-transform: rotate3d(0, 0, 1, 5deg);
    transform: rotate3d(0, 0, 1, 5deg);
  }

  80% {
    -webkit-transform: rotate3d(0, 0, 1, -5deg);
    transform: rotate3d(0, 0, 1, -5deg);
  }

  to {
    -webkit-transform: rotate3d(0, 0, 1, 0deg);
    transform: rotate3d(0, 0, 1, 0deg);
  }
}

.swing {
  -webkit-transform-origin: top center;
  transform-origin: top center;
  -webkit-animation-name: swing;
  animation-name: swing;
}

@-webkit-keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  10%,
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }

  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%,
  60%,
  80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes tada {
  from {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }

  10%,
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
  }

  30%,
  50%,
  70%,
  90% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
  }

  40%,
  60%,
  80% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
    transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
  }

  to {
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.tada {
  -webkit-animation-name: tada;
  animation-name: tada;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes wobble {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes wobble {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  15% {
    -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
    transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
  }

  30% {
    -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
    transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
  }

  45% {
    -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
    transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
  }

  60% {
    -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
    transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
  }

  75% {
    -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
    transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.wobble {
  -webkit-animation-name: wobble;
  animation-name: wobble;
}

@-webkit-keyframes jello {
  from,
  11.1%,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

@keyframes jello {
  from,
  11.1%,
  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  22.2% {
    -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
    transform: skewX(-12.5deg) skewY(-12.5deg);
  }

  33.3% {
    -webkit-transform: skewX(6.25deg) skewY(6.25deg);
    transform: skewX(6.25deg) skewY(6.25deg);
  }

  44.4% {
    -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
    transform: skewX(-3.125deg) skewY(-3.125deg);
  }

  55.5% {
    -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
    transform: skewX(1.5625deg) skewY(1.5625deg);
  }

  66.6% {
    -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
    transform: skewX(-0.78125deg) skewY(-0.78125deg);
  }

  77.7% {
    -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
    transform: skewX(0.390625deg) skewY(0.390625deg);
  }

  88.8% {
    -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
  }
}

.jello {
  -webkit-animation-name: jello;
  animation-name: jello;
  -webkit-transform-origin: center;
  transform-origin: center;
}

@-webkit-keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  28% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  70% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes heartBeat {
  0% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  14% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  28% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  42% {
    -webkit-transform: scale(1.3);
    transform: scale(1.3);
  }

  70% {
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

.heartBeat {
  -webkit-animation-name: heartBeat;
  animation-name: heartBeat;
  -webkit-animation-duration: 1.3s;
  animation-duration: 1.3s;
  -webkit-animation-timing-function: ease-in-out;
  animation-timing-function: ease-in-out;
}

@-webkit-keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97);
  }

  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

@keyframes bounceIn {
  from,
  20%,
  40%,
  60%,
  80%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  20% {
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  40% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(1.03, 1.03, 1.03);
    transform: scale3d(1.03, 1.03, 1.03);
  }

  80% {
    -webkit-transform: scale3d(0.97, 0.97, 0.97);
    transform: scale3d(0.97, 0.97, 0.97);
  }

  to {
    opacity: 1;
    -webkit-transform: scale3d(1, 1, 1);
    transform: scale3d(1, 1, 1);
  }
}

.bounceIn {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: bounceIn;
  animation-name: bounceIn;
}

@-webkit-keyframes bounceInDown {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInDown {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(0, -3000px, 0);
    transform: translate3d(0, -3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, 25px, 0);
    transform: translate3d(0, 25px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, 5px, 0);
    transform: translate3d(0, 5px, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.bounceInDown {
  -webkit-animation-name: bounceInDown;
  animation-name: bounceInDown;
}

@-webkit-keyframes bounceInLeft {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInLeft {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  0% {
    opacity: 0;
    -webkit-transform: translate3d(-3000px, 0, 0);
    transform: translate3d(-3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(25px, 0, 0);
    transform: translate3d(25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(-10px, 0, 0);
    transform: translate3d(-10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(5px, 0, 0);
    transform: translate3d(5px, 0, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.bounceInLeft {
  -webkit-animation-name: bounceInLeft;
  animation-name: bounceInLeft;
}

@-webkit-keyframes bounceInRight {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInRight {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(3000px, 0, 0);
    transform: translate3d(3000px, 0, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(-25px, 0, 0);
    transform: translate3d(-25px, 0, 0);
  }

  75% {
    -webkit-transform: translate3d(10px, 0, 0);
    transform: translate3d(10px, 0, 0);
  }

  90% {
    -webkit-transform: translate3d(-5px, 0, 0);
    transform: translate3d(-5px, 0, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.bounceInRight {
  -webkit-animation-name: bounceInRight;
  animation-name: bounceInRight;
}

@-webkit-keyframes bounceInUp {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bounceInUp {
  from,
  60%,
  75%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 3000px, 0);
    transform: translate3d(0, 3000px, 0);
  }

  60% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  75% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  90% {
    -webkit-transform: translate3d(0, -5px, 0);
    transform: translate3d(0, -5px, 0);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.bounceInUp {
  -webkit-animation-name: bounceInUp;
  animation-name: bounceInUp;
}

@-webkit-keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }

  50%,
  55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
}

@keyframes bounceOut {
  20% {
    -webkit-transform: scale3d(0.9, 0.9, 0.9);
    transform: scale3d(0.9, 0.9, 0.9);
  }

  50%,
  55% {
    opacity: 1;
    -webkit-transform: scale3d(1.1, 1.1, 1.1);
    transform: scale3d(1.1, 1.1, 1.1);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }
}

.bounceOut {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: bounceOut;
  animation-name: bounceOut;
}

@-webkit-keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes bounceOutDown {
  20% {
    -webkit-transform: translate3d(0, 10px, 0);
    transform: translate3d(0, 10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, -20px, 0);
    transform: translate3d(0, -20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

.bounceOutDown {
  -webkit-animation-name: bounceOutDown;
  animation-name: bounceOutDown;
}

@-webkit-keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes bounceOutLeft {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(20px, 0, 0);
    transform: translate3d(20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

.bounceOutLeft {
  -webkit-animation-name: bounceOutLeft;
  animation-name: bounceOutLeft;
}

@-webkit-keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    -webkit-transform: translate3d(-20px, 0, 0);
    transform: translate3d(-20px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

.bounceOutRight {
  -webkit-animation-name: bounceOutRight;
  animation-name: bounceOutRight;
}

@-webkit-keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes bounceOutUp {
  20% {
    -webkit-transform: translate3d(0, -10px, 0);
    transform: translate3d(0, -10px, 0);
  }

  40%,
  45% {
    opacity: 1;
    -webkit-transform: translate3d(0, 20px, 0);
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

.bounceOutUp {
  -webkit-animation-name: bounceOutUp;
  animation-name: bounceOutUp;
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fadeIn {
  -webkit-animation-name: fadeIn;
  animation-name: fadeIn;
}

@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInDown {
  -webkit-animation-name: fadeInDown;
  animation-name: fadeInDown;
}

@-webkit-keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInDownBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInDownBig {
  -webkit-animation-name: fadeInDownBig;
  animation-name: fadeInDownBig;
}

@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInLeft {
  -webkit-animation-name: fadeInLeft;
  animation-name: fadeInLeft;
}

@-webkit-keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInLeftBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInLeftBig {
  -webkit-animation-name: fadeInLeftBig;
  animation-name: fadeInLeftBig;
}

@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

@-webkit-keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInRightBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInRightBig {
  -webkit-animation-name: fadeInRightBig;
  animation-name: fadeInRightBig;
}

@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInUp {
  -webkit-animation-name: fadeInUp;
  animation-name: fadeInUp;
}

@-webkit-keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes fadeInUpBig {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.fadeInUpBig {
  -webkit-animation-name: fadeInUpBig;
  animation-name: fadeInUpBig;
}

@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.fadeOut {
  -webkit-animation-name: fadeOut;
  animation-name: fadeOut;
}

@-webkit-keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

.fadeOutDown {
  -webkit-animation-name: fadeOutDown;
  animation-name: fadeOutDown;
}

@-webkit-keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

@keyframes fadeOutDownBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, 2000px, 0);
    transform: translate3d(0, 2000px, 0);
  }
}

.fadeOutDownBig {
  -webkit-animation-name: fadeOutDownBig;
  animation-name: fadeOutDownBig;
}

@-webkit-keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes fadeOutLeft {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

.fadeOutLeft {
  -webkit-animation-name: fadeOutLeft;
  animation-name: fadeOutLeft;
}

@-webkit-keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

@keyframes fadeOutLeftBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(-2000px, 0, 0);
    transform: translate3d(-2000px, 0, 0);
  }
}

.fadeOutLeftBig {
  -webkit-animation-name: fadeOutLeftBig;
  animation-name: fadeOutLeftBig;
}

@-webkit-keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes fadeOutRight {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

.fadeOutRight {
  -webkit-animation-name: fadeOutRight;
  animation-name: fadeOutRight;
}

@-webkit-keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

@keyframes fadeOutRightBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(2000px, 0, 0);
    transform: translate3d(2000px, 0, 0);
  }
}

.fadeOutRightBig {
  -webkit-animation-name: fadeOutRightBig;
  animation-name: fadeOutRightBig;
}

@-webkit-keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes fadeOutUp {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

.fadeOutUp {
  -webkit-animation-name: fadeOutUp;
  animation-name: fadeOutUp;
}

@-webkit-keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

@keyframes fadeOutUpBig {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(0, -2000px, 0);
    transform: translate3d(0, -2000px, 0);
  }
}

.fadeOutUpBig {
  -webkit-animation-name: fadeOutUpBig;
  animation-name: fadeOutUpBig;
}

@-webkit-keyframes flip {
  from {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  40% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  50% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  to {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

@keyframes flip {
  from {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, -360deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  40% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -190deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -190deg);
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }

  50% {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -170deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
      rotate3d(0, 1, 0, -170deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  80% {
    -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  to {
    -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
      rotate3d(0, 1, 0, 0deg);
    transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
}

.animated.flip {
  -webkit-backface-visibility: visible;
  backface-visibility: visible;
  -webkit-animation-name: flip;
  animation-name: flip;
}

@-webkit-keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

@keyframes flipInX {
  from {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

.flipInX {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInX;
  animation-name: flipInX;
}

@-webkit-keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

@keyframes flipInY {
  from {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    opacity: 0;
  }

  40% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }

  60% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
  }

  to {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }
}

.flipInY {
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipInY;
  animation-name: flipInY;
}

@-webkit-keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutX {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}

.flipOutX {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-name: flipOutX;
  animation-name: flipOutX;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
}

@-webkit-keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

@keyframes flipOutY {
  from {
    -webkit-transform: perspective(400px);
    transform: perspective(400px);
  }

  30% {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
    opacity: 1;
  }

  to {
    -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
    opacity: 0;
  }
}

.flipOutY {
  -webkit-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-backface-visibility: visible !important;
  backface-visibility: visible !important;
  -webkit-animation-name: flipOutY;
  animation-name: flipOutY;
}

@-webkit-keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }

  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes lightSpeedIn {
  from {
    -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
    transform: translate3d(100%, 0, 0) skewX(-30deg);
    opacity: 0;
  }

  60% {
    -webkit-transform: skewX(20deg);
    transform: skewX(20deg);
    opacity: 1;
  }

  80% {
    -webkit-transform: skewX(-5deg);
    transform: skewX(-5deg);
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.lightSpeedIn {
  -webkit-animation-name: lightSpeedIn;
  animation-name: lightSpeedIn;
  -webkit-animation-timing-function: ease-out;
  animation-timing-function: ease-out;
}

@-webkit-keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

@keyframes lightSpeedOut {
  from {
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
    transform: translate3d(100%, 0, 0) skewX(30deg);
    opacity: 0;
  }
}

.lightSpeedOut {
  -webkit-animation-name: lightSpeedOut;
  animation-name: lightSpeedOut;
  -webkit-animation-timing-function: ease-in;
  animation-timing-function: ease-in;
}

@-webkit-keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateIn {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, -200deg);
    transform: rotate3d(0, 0, 1, -200deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateIn {
  -webkit-animation-name: rotateIn;
  animation-name: rotateIn;
}

@-webkit-keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInDownLeft {
  -webkit-animation-name: rotateInDownLeft;
  animation-name: rotateInDownLeft;
}

@-webkit-keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInDownRight {
  -webkit-animation-name: rotateInDownRight;
  animation-name: rotateInDownRight;
}

@-webkit-keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInUpLeft {
  -webkit-animation-name: rotateInUpLeft;
  animation-name: rotateInUpLeft;
}

@-webkit-keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

@keyframes rotateInUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
    transform: rotate3d(0, 0, 1, -90deg);
    opacity: 0;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    opacity: 1;
  }
}

.rotateInUpRight {
  -webkit-animation-name: rotateInUpRight;
  animation-name: rotateInUpRight;
}

@-webkit-keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

@keyframes rotateOut {
  from {
    -webkit-transform-origin: center;
    transform-origin: center;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: center;
    transform-origin: center;
    -webkit-transform: rotate3d(0, 0, 1, 200deg);
    transform: rotate3d(0, 0, 1, 200deg);
    opacity: 0;
  }
}

.rotateOut {
  -webkit-animation-name: rotateOut;
  animation-name: rotateOut;
}

@-webkit-keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, 45deg);
    transform: rotate3d(0, 0, 1, 45deg);
    opacity: 0;
  }
}

.rotateOutDownLeft {
  -webkit-animation-name: rotateOutDownLeft;
  animation-name: rotateOutDownLeft;
}

@-webkit-keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutDownRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutDownRight {
  -webkit-animation-name: rotateOutDownRight;
  animation-name: rotateOutDownRight;
}

@-webkit-keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpLeft {
  from {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: left bottom;
    transform-origin: left bottom;
    -webkit-transform: rotate3d(0, 0, 1, -45deg);
    transform: rotate3d(0, 0, 1, -45deg);
    opacity: 0;
  }
}

.rotateOutUpLeft {
  -webkit-animation-name: rotateOutUpLeft;
  animation-name: rotateOutUpLeft;
}

@-webkit-keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

@keyframes rotateOutUpRight {
  from {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    opacity: 1;
  }

  to {
    -webkit-transform-origin: right bottom;
    transform-origin: right bottom;
    -webkit-transform: rotate3d(0, 0, 1, 90deg);
    transform: rotate3d(0, 0, 1, 90deg);
    opacity: 0;
  }
}

.rotateOutUpRight {
  -webkit-animation-name: rotateOutUpRight;
  animation-name: rotateOutUpRight;
}

@-webkit-keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  20%,
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  40%,
  80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

@keyframes hinge {
  0% {
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  20%,
  60% {
    -webkit-transform: rotate3d(0, 0, 1, 80deg);
    transform: rotate3d(0, 0, 1, 80deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
  }

  40%,
  80% {
    -webkit-transform: rotate3d(0, 0, 1, 60deg);
    transform: rotate3d(0, 0, 1, 60deg);
    -webkit-transform-origin: top left;
    transform-origin: top left;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    opacity: 1;
  }

  to {
    -webkit-transform: translate3d(0, 700px, 0);
    transform: translate3d(0, 700px, 0);
    opacity: 0;
  }
}

.hinge {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
  -webkit-animation-name: hinge;
  animation-name: hinge;
}

@-webkit-keyframes jackInTheBox {
  from {
    opacity: 0;
    -webkit-transform: scale(0.1) rotate(30deg);
    transform: scale(0.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
  }

  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg);
  }

  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
  }

  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes jackInTheBox {
  from {
    opacity: 0;
    -webkit-transform: scale(0.1) rotate(30deg);
    transform: scale(0.1) rotate(30deg);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
  }

  50% {
    -webkit-transform: rotate(-10deg);
    transform: rotate(-10deg);
  }

  70% {
    -webkit-transform: rotate(3deg);
    transform: rotate(3deg);
  }

  to {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
}

.jackInTheBox {
  -webkit-animation-name: jackInTheBox;
  animation-name: jackInTheBox;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes rollIn {
  from {
    opacity: 0;
    -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
    transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
  }

  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.rollIn {
  -webkit-animation-name: rollIn;
  animation-name: rollIn;
}

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

@keyframes rollOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
    -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
    transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
  }
}

.rollOut {
  -webkit-animation-name: rollOut;
  animation-name: rollOut;
}

@-webkit-keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  50% {
    opacity: 1;
  }
}

@keyframes zoomIn {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  50% {
    opacity: 1;
  }
}

.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}

@-webkit-keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInDown {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInDown {
  -webkit-animation-name: zoomInDown;
  animation-name: zoomInDown;
}

@-webkit-keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInLeft {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInLeft {
  -webkit-animation-name: zoomInLeft;
  animation-name: zoomInLeft;
}

@-webkit-keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInRight {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInRight {
  -webkit-animation-name: zoomInRight;
  animation-name: zoomInRight;
}

@-webkit-keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomInUp {
  from {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  60% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomInUp {
  -webkit-animation-name: zoomInUp;
  animation-name: zoomInUp;
}

@-webkit-keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  to {
    opacity: 0;
  }
}

@keyframes zoomOut {
  from {
    opacity: 1;
  }

  50% {
    opacity: 0;
    -webkit-transform: scale3d(0.3, 0.3, 0.3);
    transform: scale3d(0.3, 0.3, 0.3);
  }

  to {
    opacity: 0;
  }
}

.zoomOut {
  -webkit-animation-name: zoomOut;
  animation-name: zoomOut;
}

@-webkit-keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomOutDown {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomOutDown {
  -webkit-animation-name: zoomOutDown;
  animation-name: zoomOutDown;
}

@-webkit-keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center;
  }
}

@keyframes zoomOutLeft {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
    transform: scale(0.1) translate3d(-2000px, 0, 0);
    -webkit-transform-origin: left center;
    transform-origin: left center;
  }
}

.zoomOutLeft {
  -webkit-animation-name: zoomOutLeft;
  animation-name: zoomOutLeft;
}

@-webkit-keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center;
  }
}

@keyframes zoomOutRight {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
  }

  to {
    opacity: 0;
    -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
    transform: scale(0.1) translate3d(2000px, 0, 0);
    -webkit-transform-origin: right center;
    transform-origin: right center;
  }
}

.zoomOutRight {
  -webkit-animation-name: zoomOutRight;
  animation-name: zoomOutRight;
}

@-webkit-keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

@keyframes zoomOutUp {
  40% {
    opacity: 1;
    -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
    -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  }

  to {
    opacity: 0;
    -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom;
    -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
  }
}

.zoomOutUp {
  -webkit-animation-name: zoomOutUp;
  animation-name: zoomOutUp;
}

@-webkit-keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInDown {
  from {
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInDown {
  -webkit-animation-name: slideInDown;
  animation-name: slideInDown;
}

@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInLeft {
  -webkit-animation-name: slideInLeft;
  animation-name: slideInLeft;
}

@-webkit-keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInRight {
  from {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInRight {
  -webkit-animation-name: slideInRight;
  animation-name: slideInRight;
}

@-webkit-keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInUp {
  from {
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

.slideInUp {
  -webkit-animation-name: slideInUp;
  animation-name: slideInUp;
}

@-webkit-keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes slideOutDown {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, 100%, 0);
    transform: translate3d(0, 100%, 0);
  }
}

.slideOutDown {
  -webkit-animation-name: slideOutDown;
  animation-name: slideOutDown;
}

@-webkit-keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes slideOutLeft {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
  }
}

.slideOutLeft {
  -webkit-animation-name: slideOutLeft;
  animation-name: slideOutLeft;
}

@-webkit-keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes slideOutRight {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }
}

.slideOutRight {
  -webkit-animation-name: slideOutRight;
  animation-name: slideOutRight;
}

@-webkit-keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes slideOutUp {
  from {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }

  to {
    visibility: hidden;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
  }
}

.slideOutUp {
  -webkit-animation-name: slideOutUp;
  animation-name: slideOutUp;
}

.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

.animated.infinite {
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
}

.animated.delay-1s {
  -webkit-animation-delay: 1s;
  animation-delay: 1s;
}

.animated.delay-2s {
  -webkit-animation-delay: 2s;
  animation-delay: 2s;
}

.animated.delay-3s {
  -webkit-animation-delay: 3s;
  animation-delay: 3s;
}

.animated.delay-4s {
  -webkit-animation-delay: 4s;
  animation-delay: 4s;
}

.animated.delay-5s {
  -webkit-animation-delay: 5s;
  animation-delay: 5s;
}

.animated.fast {
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
}

.animated.faster {
  -webkit-animation-duration: 500ms;
  animation-duration: 500ms;
}

.animated.slow {
  -webkit-animation-duration: 2s;
  animation-duration: 2s;
}

.animated.slower {
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
}

@media (print), (prefers-reduced-motion: reduce) {
  .animated {
    -webkit-animation-duration: 1ms !important;
    animation-duration: 1ms !important;
    -webkit-transition-duration: 1ms !important;
    transition-duration: 1ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
  }
}/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
.mgz-fa,
.fas,
.far,
.fal,
.fab {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}
/* makes the font 33% larger relative to the icon container */
.mgz-fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -0.0667em;
}
.mgz-fa-xs {
  font-size: 0.75em;
}
.mgz-fa-sm {
  font-size: 0.875em;
}
.mgz-fa-1x {
  font-size: 1em;
}
.mgz-fa-2x {
  font-size: 2em;
}
.mgz-fa-3x {
  font-size: 3em;
}
.mgz-fa-4x {
  font-size: 4em;
}
.mgz-fa-5x {
  font-size: 5em;
}
.mgz-fa-6x {
  font-size: 6em;
}
.mgz-fa-7x {
  font-size: 7em;
}
.mgz-fa-8x {
  font-size: 8em;
}
.mgz-fa-9x {
  font-size: 9em;
}
.mgz-fa-10x {
  font-size: 10em;
}
.mgz-fa-fw {
  text-align: center;
  width: 1.25em;
}
.mgz-fa-ul {
  list-style-type: none;
  margin-left: 2.5em;
  padding-left: 0;
}
.mgz-fa-ul > li {
  position: relative;
}
.mgz-fa-li {
  left: -2em;
  position: absolute;
  text-align: center;
  width: 2em;
  line-height: inherit;
}
.mgz-fa-border {
  border-radius: 0.1em;
  border: solid 0.08em #eee;
  padding: 0.2em 0.25em 0.15em;
}
.mgz-fa-pull-left {
  float: left;
}
.mgz-fa-pull-right {
  float: right;
}
.mgz-fa.mgz-fa-pull-left,
.fas.mgz-fa-pull-left,
.far.mgz-fa-pull-left,
.fal.mgz-fa-pull-left,
.fab.mgz-fa-pull-left {
  margin-right: 0.3em;
}
.mgz-fa.mgz-fa-pull-right,
.fas.mgz-fa-pull-right,
.far.mgz-fa-pull-right,
.fal.mgz-fa-pull-right,
.fab.mgz-fa-pull-right {
  margin-left: 0.3em;
}
.mgz-fa-spin {
  animation: fa-spin 2s infinite linear;
}
.mgz-fa-pulse {
  animation: fa-spin 1s infinite steps(8);
}
@keyframes fa-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
.mgz-fa-rotate-90 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
  transform: rotate(90deg);
}
.mgz-fa-rotate-180 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
  transform: rotate(180deg);
}
.mgz-fa-rotate-270 {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
  transform: rotate(270deg);
}
.mgz-fa-flip-horizontal {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
  transform: scale(-1, 1);
}
.mgz-fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  transform: scale(1, -1);
}
.mgz-fa-flip-both,
.mgz-fa-flip-horizontal.mgz-fa-flip-vertical {
  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
  transform: scale(-1, -1);
}
:root .mgz-fa-rotate-90,
:root .mgz-fa-rotate-180,
:root .mgz-fa-rotate-270,
:root .mgz-fa-flip-horizontal,
:root .mgz-fa-flip-vertical,
:root .mgz-fa-flip-both {
  filter: none;
}
.mgz-fa-stack {
  display: inline-block;
  height: 2em;
  line-height: 2em;
  position: relative;
  vertical-align: middle;
  width: 2em;
}
.mgz-fa-stack-1x,
.mgz-fa-stack-2x {
  left: 0;
  position: absolute;
  text-align: center;
  width: 100%;
}
.mgz-fa-stack-1x {
  line-height: inherit;
}
.mgz-fa-stack-2x {
  font-size: 2em;
}
.mgz-fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.mgz-fa-500px:before {
  content: "\f26e";
}
.mgz-fa-accessible-icon:before {
  content: "\f368";
}
.mgz-fa-accusoft:before {
  content: "\f369";
}
.mgz-fa-acquisitions-incorporated:before {
  content: "\f6af";
}
.mgz-fa-ad:before {
  content: "\f641";
}
.mgz-fa-address-book:before {
  content: "\f2b9";
}
.mgz-fa-address-card:before {
  content: "\f2bb";
}
.mgz-fa-adjust:before {
  content: "\f042";
}
.mgz-fa-adn:before {
  content: "\f170";
}
.mgz-fa-adobe:before {
  content: "\f778";
}
.mgz-fa-adversal:before {
  content: "\f36a";
}
.mgz-fa-affiliatetheme:before {
  content: "\f36b";
}
.mgz-fa-air-freshener:before {
  content: "\f5d0";
}
.mgz-fa-airbnb:before {
  content: "\f834";
}
.mgz-fa-algolia:before {
  content: "\f36c";
}
.mgz-fa-align-center:before {
  content: "\f037";
}
.mgz-fa-align-justify:before {
  content: "\f039";
}
.mgz-fa-align-left:before {
  content: "\f036";
}
.mgz-fa-align-right:before {
  content: "\f038";
}
.mgz-fa-alipay:before {
  content: "\f642";
}
.mgz-fa-allergies:before {
  content: "\f461";
}
.mgz-fa-amazon:before {
  content: "\f270";
}
.mgz-fa-amazon-pay:before {
  content: "\f42c";
}
.mgz-fa-ambulance:before {
  content: "\f0f9";
}
.mgz-fa-american-sign-language-interpreting:before {
  content: "\f2a3";
}
.mgz-fa-amilia:before {
  content: "\f36d";
}
.mgz-fa-anchor:before {
  content: "\f13d";
}
.mgz-fa-android:before {
  content: "\f17b";
}
.mgz-fa-angellist:before {
  content: "\f209";
}
.mgz-fa-angle-double-down:before {
  content: "\f103";
}
.mgz-fa-angle-double-left:before {
  content: "\f100";
}
.mgz-fa-angle-double-right:before {
  content: "\f101";
}
.mgz-fa-angle-double-up:before {
  content: "\f102";
}
.mgz-fa-angle-down:before {
  content: "\f107";
}
.mgz-fa-angle-left:before {
  content: "\f104";
}
.mgz-fa-angle-right:before {
  content: "\f105";
}
.mgz-fa-angle-up:before {
  content: "\f106";
}
.mgz-fa-angry:before {
  content: "\f556";
}
.mgz-fa-angrycreative:before {
  content: "\f36e";
}
.mgz-fa-angular:before {
  content: "\f420";
}
.mgz-fa-ankh:before {
  content: "\f644";
}
.mgz-fa-app-store:before {
  content: "\f36f";
}
.mgz-fa-app-store-ios:before {
  content: "\f370";
}
.mgz-fa-apper:before {
  content: "\f371";
}
.mgz-fa-apple:before {
  content: "\f179";
}
.mgz-fa-apple-alt:before {
  content: "\f5d1";
}
.mgz-fa-apple-pay:before {
  content: "\f415";
}
.mgz-fa-archive:before {
  content: "\f187";
}
.mgz-fa-archway:before {
  content: "\f557";
}
.mgz-fa-arrow-alt-circle-down:before {
  content: "\f358";
}
.mgz-fa-arrow-alt-circle-left:before {
  content: "\f359";
}
.mgz-fa-arrow-alt-circle-right:before {
  content: "\f35a";
}
.mgz-fa-arrow-alt-circle-up:before {
  content: "\f35b";
}
.mgz-fa-arrow-circle-down:before {
  content: "\f0ab";
}
.mgz-fa-arrow-circle-left:before {
  content: "\f0a8";
}
.mgz-fa-arrow-circle-right:before {
  content: "\f0a9";
}
.mgz-fa-arrow-circle-up:before {
  content: "\f0aa";
}
.mgz-fa-arrow-down:before {
  content: "\f063";
}
.mgz-fa-arrow-left:before {
  content: "\f060";
}
.mgz-fa-arrow-right:before {
  content: "\f061";
}
.mgz-fa-arrow-up:before {
  content: "\f062";
}
.mgz-fa-arrows-alt:before {
  content: "\f0b2";
}
.mgz-fa-arrows-alt-h:before {
  content: "\f337";
}
.mgz-fa-arrows-alt-v:before {
  content: "\f338";
}
.mgz-fa-artstation:before {
  content: "\f77a";
}
.mgz-fa-assistive-listening-systems:before {
  content: "\f2a2";
}
.mgz-fa-asterisk:before {
  content: "\f069";
}
.mgz-fa-asymmetrik:before {
  content: "\f372";
}
.mgz-fa-at:before {
  content: "\f1fa";
}
.mgz-fa-atlas:before {
  content: "\f558";
}
.mgz-fa-atlassian:before {
  content: "\f77b";
}
.mgz-fa-atom:before {
  content: "\f5d2";
}
.mgz-fa-audible:before {
  content: "\f373";
}
.mgz-fa-audio-description:before {
  content: "\f29e";
}
.mgz-fa-autoprefixer:before {
  content: "\f41c";
}
.mgz-fa-avianex:before {
  content: "\f374";
}
.mgz-fa-aviato:before {
  content: "\f421";
}
.mgz-fa-award:before {
  content: "\f559";
}
.mgz-fa-aws:before {
  content: "\f375";
}
.mgz-fa-baby:before {
  content: "\f77c";
}
.mgz-fa-baby-carriage:before {
  content: "\f77d";
}
.mgz-fa-backspace:before {
  content: "\f55a";
}
.mgz-fa-backward:before {
  content: "\f04a";
}
.mgz-fa-bacon:before {
  content: "\f7e5";
}
.mgz-fa-balance-scale:before {
  content: "\f24e";
}
.mgz-fa-ban:before {
  content: "\f05e";
}
.mgz-fa-band-aid:before {
  content: "\f462";
}
.mgz-fa-bandcamp:before {
  content: "\f2d5";
}
.mgz-fa-barcode:before {
  content: "\f02a";
}
.mgz-fa-bars:before {
  content: "\f0c9";
}
.mgz-fa-baseball-ball:before {
  content: "\f433";
}
.mgz-fa-basketball-ball:before {
  content: "\f434";
}
.mgz-fa-bath:before {
  content: "\f2cd";
}
.mgz-fa-battery-empty:before {
  content: "\f244";
}
.mgz-fa-battery-full:before {
  content: "\f240";
}
.mgz-fa-battery-half:before {
  content: "\f242";
}
.mgz-fa-battery-quarter:before {
  content: "\f243";
}
.mgz-fa-battery-three-quarters:before {
  content: "\f241";
}
.mgz-fa-battle-net:before {
  content: "\f835";
}
.mgz-fa-bed:before {
  content: "\f236";
}
.mgz-fa-beer:before {
  content: "\f0fc";
}
.mgz-fa-behance:before {
  content: "\f1b4";
}
.mgz-fa-behance-square:before {
  content: "\f1b5";
}
.mgz-fa-bell:before {
  content: "\f0f3";
}
.mgz-fa-bell-slash:before {
  content: "\f1f6";
}
.mgz-fa-bezier-curve:before {
  content: "\f55b";
}
.mgz-fa-bible:before {
  content: "\f647";
}
.mgz-fa-bicycle:before {
  content: "\f206";
}
.mgz-fa-bimobject:before {
  content: "\f378";
}
.mgz-fa-binoculars:before {
  content: "\f1e5";
}
.mgz-fa-biohazard:before {
  content: "\f780";
}
.mgz-fa-birthday-cake:before {
  content: "\f1fd";
}
.mgz-fa-bitbucket:before {
  content: "\f171";
}
.mgz-fa-bitcoin:before {
  content: "\f379";
}
.mgz-fa-bity:before {
  content: "\f37a";
}
.mgz-fa-black-tie:before {
  content: "\f27e";
}
.mgz-fa-blackberry:before {
  content: "\f37b";
}
.mgz-fa-blender:before {
  content: "\f517";
}
.mgz-fa-blender-phone:before {
  content: "\f6b6";
}
.mgz-fa-blind:before {
  content: "\f29d";
}
.mgz-fa-blog:before {
  content: "\f781";
}
.mgz-fa-blogger:before {
  content: "\f37c";
}
.mgz-fa-blogger-b:before {
  content: "\f37d";
}
.mgz-fa-bluetooth:before {
  content: "\f293";
}
.mgz-fa-bluetooth-b:before {
  content: "\f294";
}
.mgz-fa-bold:before {
  content: "\f032";
}
.mgz-fa-bolt:before {
  content: "\f0e7";
}
.mgz-fa-bomb:before {
  content: "\f1e2";
}
.mgz-fa-bone:before {
  content: "\f5d7";
}
.mgz-fa-bong:before {
  content: "\f55c";
}
.mgz-fa-book:before {
  content: "\f02d";
}
.mgz-fa-book-dead:before {
  content: "\f6b7";
}
.mgz-fa-book-medical:before {
  content: "\f7e6";
}
.mgz-fa-book-open:before {
  content: "\f518";
}
.mgz-fa-book-reader:before {
  content: "\f5da";
}
.mgz-fa-bookmark:before {
  content: "\f02e";
}
.mgz-fa-bootstrap:before {
  content: "\f836";
}
.mgz-fa-bowling-ball:before {
  content: "\f436";
}
.mgz-fa-box:before {
  content: "\f466";
}
.mgz-fa-box-open:before {
  content: "\f49e";
}
.mgz-fa-boxes:before {
  content: "\f468";
}
.mgz-fa-braille:before {
  content: "\f2a1";
}
.mgz-fa-brain:before {
  content: "\f5dc";
}
.mgz-fa-bread-slice:before {
  content: "\f7ec";
}
.mgz-fa-briefcase:before {
  content: "\f0b1";
}
.mgz-fa-briefcase-medical:before {
  content: "\f469";
}
.mgz-fa-broadcast-tower:before {
  content: "\f519";
}
.mgz-fa-broom:before {
  content: "\f51a";
}
.mgz-fa-brush:before {
  content: "\f55d";
}
.mgz-fa-btc:before {
  content: "\f15a";
}
.mgz-fa-buffer:before {
  content: "\f837";
}
.mgz-fa-bug:before {
  content: "\f188";
}
.mgz-fa-building:before {
  content: "\f1ad";
}
.mgz-fa-bullhorn:before {
  content: "\f0a1";
}
.mgz-fa-bullseye:before {
  content: "\f140";
}
.mgz-fa-burn:before {
  content: "\f46a";
}
.mgz-fa-buromobelexperte:before {
  content: "\f37f";
}
.mgz-fa-bus:before {
  content: "\f207";
}
.mgz-fa-bus-alt:before {
  content: "\f55e";
}
.mgz-fa-business-time:before {
  content: "\f64a";
}
.mgz-fa-buysellads:before {
  content: "\f20d";
}
.mgz-fa-calculator:before {
  content: "\f1ec";
}
.mgz-fa-calendar:before {
  content: "\f133";
}
.mgz-fa-calendar-alt:before {
  content: "\f073";
}
.mgz-fa-calendar-check:before {
  content: "\f274";
}
.mgz-fa-calendar-day:before {
  content: "\f783";
}
.mgz-fa-calendar-minus:before {
  content: "\f272";
}
.mgz-fa-calendar-plus:before {
  content: "\f271";
}
.mgz-fa-calendar-times:before {
  content: "\f273";
}
.mgz-fa-calendar-week:before {
  content: "\f784";
}
.mgz-fa-camera:before {
  content: "\f030";
}
.mgz-fa-camera-retro:before {
  content: "\f083";
}
.mgz-fa-campground:before {
  content: "\f6bb";
}
.mgz-fa-canadian-maple-leaf:before {
  content: "\f785";
}
.mgz-fa-candy-cane:before {
  content: "\f786";
}
.mgz-fa-cannabis:before {
  content: "\f55f";
}
.mgz-fa-capsules:before {
  content: "\f46b";
}
.mgz-fa-car:before {
  content: "\f1b9";
}
.mgz-fa-car-alt:before {
  content: "\f5de";
}
.mgz-fa-car-battery:before {
  content: "\f5df";
}
.mgz-fa-car-crash:before {
  content: "\f5e1";
}
.mgz-fa-car-side:before {
  content: "\f5e4";
}
.mgz-fa-caret-down:before {
  content: "\f0d7";
}
.mgz-fa-caret-left:before {
  content: "\f0d9";
}
.mgz-fa-caret-right:before {
  content: "\f0da";
}
.mgz-fa-caret-square-down:before {
  content: "\f150";
}
.mgz-fa-caret-square-left:before {
  content: "\f191";
}
.mgz-fa-caret-square-right:before {
  content: "\f152";
}
.mgz-fa-caret-square-up:before {
  content: "\f151";
}
.mgz-fa-caret-up:before {
  content: "\f0d8";
}
.mgz-fa-carrot:before {
  content: "\f787";
}
.mgz-fa-cart-arrow-down:before {
  content: "\f218";
}
.mgz-fa-cart-plus:before {
  content: "\f217";
}
.mgz-fa-cash-register:before {
  content: "\f788";
}
.mgz-fa-cat:before {
  content: "\f6be";
}
.mgz-fa-cc-amazon-pay:before {
  content: "\f42d";
}
.mgz-fa-cc-amex:before {
  content: "\f1f3";
}
.mgz-fa-cc-apple-pay:before {
  content: "\f416";
}
.mgz-fa-cc-diners-club:before {
  content: "\f24c";
}
.mgz-fa-cc-discover:before {
  content: "\f1f2";
}
.mgz-fa-cc-jcb:before {
  content: "\f24b";
}
.mgz-fa-cc-mastercard:before {
  content: "\f1f1";
}
.mgz-fa-cc-paypal:before {
  content: "\f1f4";
}
.mgz-fa-cc-stripe:before {
  content: "\f1f5";
}
.mgz-fa-cc-visa:before {
  content: "\f1f0";
}
.mgz-fa-centercode:before {
  content: "\f380";
}
.mgz-fa-centos:before {
  content: "\f789";
}
.mgz-fa-certificate:before {
  content: "\f0a3";
}
.mgz-fa-chair:before {
  content: "\f6c0";
}
.mgz-fa-chalkboard:before {
  content: "\f51b";
}
.mgz-fa-chalkboard-teacher:before {
  content: "\f51c";
}
.mgz-fa-charging-station:before {
  content: "\f5e7";
}
.mgz-fa-chart-area:before {
  content: "\f1fe";
}
.mgz-fa-chart-bar:before {
  content: "\f080";
}
.mgz-fa-chart-line:before {
  content: "\f201";
}
.mgz-fa-chart-pie:before {
  content: "\f200";
}
.mgz-fa-check:before {
  content: "\f00c";
}
.mgz-fa-check-circle:before {
  content: "\f058";
}
.mgz-fa-check-double:before {
  content: "\f560";
}
.mgz-fa-check-square:before {
  content: "\f14a";
}
.mgz-fa-cheese:before {
  content: "\f7ef";
}
.mgz-fa-chess:before {
  content: "\f439";
}
.mgz-fa-chess-bishop:before {
  content: "\f43a";
}
.mgz-fa-chess-board:before {
  content: "\f43c";
}
.mgz-fa-chess-king:before {
  content: "\f43f";
}
.mgz-fa-chess-knight:before {
  content: "\f441";
}
.mgz-fa-chess-pawn:before {
  content: "\f443";
}
.mgz-fa-chess-queen:before {
  content: "\f445";
}
.mgz-fa-chess-rook:before {
  content: "\f447";
}
.mgz-fa-chevron-circle-down:before {
  content: "\f13a";
}
.mgz-fa-chevron-circle-left:before {
  content: "\f137";
}
.mgz-fa-chevron-circle-right:before {
  content: "\f138";
}
.mgz-fa-chevron-circle-up:before {
  content: "\f139";
}
.mgz-fa-chevron-down:before {
  content: "\f078";
}
.mgz-fa-chevron-left:before {
  content: "\f053";
}
.mgz-fa-chevron-right:before {
  content: "\f054";
}
.mgz-fa-chevron-up:before {
  content: "\f077";
}
.mgz-fa-child:before {
  content: "\f1ae";
}
.mgz-fa-chrome:before {
  content: "\f268";
}
.mgz-fa-chromecast:before {
  content: "\f838";
}
.mgz-fa-church:before {
  content: "\f51d";
}
.mgz-fa-circle:before {
  content: "\f111";
}
.mgz-fa-circle-notch:before {
  content: "\f1ce";
}
.mgz-fa-city:before {
  content: "\f64f";
}
.mgz-fa-clinic-medical:before {
  content: "\f7f2";
}
.mgz-fa-clipboard:before {
  content: "\f328";
}
.mgz-fa-clipboard-check:before {
  content: "\f46c";
}
.mgz-fa-clipboard-list:before {
  content: "\f46d";
}
.mgz-fa-clock:before {
  content: "\f017";
}
.mgz-fa-clone:before {
  content: "\f24d";
}
.mgz-fa-closed-captioning:before {
  content: "\f20a";
}
.mgz-fa-cloud:before {
  content: "\f0c2";
}
.mgz-fa-cloud-download-alt:before {
  content: "\f381";
}
.mgz-fa-cloud-meatball:before {
  content: "\f73b";
}
.mgz-fa-cloud-moon:before {
  content: "\f6c3";
}
.mgz-fa-cloud-moon-rain:before {
  content: "\f73c";
}
.mgz-fa-cloud-rain:before {
  content: "\f73d";
}
.mgz-fa-cloud-showers-heavy:before {
  content: "\f740";
}
.mgz-fa-cloud-sun:before {
  content: "\f6c4";
}
.mgz-fa-cloud-sun-rain:before {
  content: "\f743";
}
.mgz-fa-cloud-upload-alt:before {
  content: "\f382";
}
.mgz-fa-cloudscale:before {
  content: "\f383";
}
.mgz-fa-cloudsmith:before {
  content: "\f384";
}
.mgz-fa-cloudversify:before {
  content: "\f385";
}
.mgz-fa-cocktail:before {
  content: "\f561";
}
.mgz-fa-code:before {
  content: "\f121";
}
.mgz-fa-code-branch:before {
  content: "\f126";
}
.mgz-fa-codepen:before {
  content: "\f1cb";
}
.mgz-fa-codiepie:before {
  content: "\f284";
}
.mgz-fa-coffee:before {
  content: "\f0f4";
}
.mgz-fa-cog:before {
  content: "\f013";
}
.mgz-fa-cogs:before {
  content: "\f085";
}
.mgz-fa-coins:before {
  content: "\f51e";
}
.mgz-fa-columns:before {
  content: "\f0db";
}
.mgz-fa-comment:before {
  content: "\f075";
}
.mgz-fa-comment-alt:before {
  content: "\f27a";
}
.mgz-fa-comment-dollar:before {
  content: "\f651";
}
.mgz-fa-comment-dots:before {
  content: "\f4ad";
}
.mgz-fa-comment-medical:before {
  content: "\f7f5";
}
.mgz-fa-comment-slash:before {
  content: "\f4b3";
}
.mgz-fa-comments:before {
  content: "\f086";
}
.mgz-fa-comments-dollar:before {
  content: "\f653";
}
.mgz-fa-compact-disc:before {
  content: "\f51f";
}
.mgz-fa-compass:before {
  content: "\f14e";
}
.mgz-fa-compress:before {
  content: "\f066";
}
.mgz-fa-compress-arrows-alt:before {
  content: "\f78c";
}
.mgz-fa-concierge-bell:before {
  content: "\f562";
}
.mgz-fa-confluence:before {
  content: "\f78d";
}
.mgz-fa-connectdevelop:before {
  content: "\f20e";
}
.mgz-fa-contao:before {
  content: "\f26d";
}
.mgz-fa-cookie:before {
  content: "\f563";
}
.mgz-fa-cookie-bite:before {
  content: "\f564";
}
.mgz-fa-copy:before {
  content: "\f0c5";
}
.mgz-fa-copyright:before {
  content: "\f1f9";
}
.mgz-fa-couch:before {
  content: "\f4b8";
}
.mgz-fa-cpanel:before {
  content: "\f388";
}
.mgz-fa-creative-commons:before {
  content: "\f25e";
}
.mgz-fa-creative-commons-by:before {
  content: "\f4e7";
}
.mgz-fa-creative-commons-nc:before {
  content: "\f4e8";
}
.mgz-fa-creative-commons-nc-eu:before {
  content: "\f4e9";
}
.mgz-fa-creative-commons-nc-jp:before {
  content: "\f4ea";
}
.mgz-fa-creative-commons-nd:before {
  content: "\f4eb";
}
.mgz-fa-creative-commons-pd:before {
  content: "\f4ec";
}
.mgz-fa-creative-commons-pd-alt:before {
  content: "\f4ed";
}
.mgz-fa-creative-commons-remix:before {
  content: "\f4ee";
}
.mgz-fa-creative-commons-sa:before {
  content: "\f4ef";
}
.mgz-fa-creative-commons-sampling:before {
  content: "\f4f0";
}
.mgz-fa-creative-commons-sampling-plus:before {
  content: "\f4f1";
}
.mgz-fa-creative-commons-share:before {
  content: "\f4f2";
}
.mgz-fa-creative-commons-zero:before {
  content: "\f4f3";
}
.mgz-fa-credit-card:before {
  content: "\f09d";
}
.mgz-fa-critical-role:before {
  content: "\f6c9";
}
.mgz-fa-crop:before {
  content: "\f125";
}
.mgz-fa-crop-alt:before {
  content: "\f565";
}
.mgz-fa-cross:before {
  content: "\f654";
}
.mgz-fa-crosshairs:before {
  content: "\f05b";
}
.mgz-fa-crow:before {
  content: "\f520";
}
.mgz-fa-crown:before {
  content: "\f521";
}
.mgz-fa-crutch:before {
  content: "\f7f7";
}
.mgz-fa-css3:before {
  content: "\f13c";
}
.mgz-fa-css3-alt:before {
  content: "\f38b";
}
.mgz-fa-cube:before {
  content: "\f1b2";
}
.mgz-fa-cubes:before {
  content: "\f1b3";
}
.mgz-fa-cut:before {
  content: "\f0c4";
}
.mgz-fa-cuttlefish:before {
  content: "\f38c";
}
.mgz-fa-d-and-d:before {
  content: "\f38d";
}
.mgz-fa-d-and-d-beyond:before {
  content: "\f6ca";
}
.mgz-fa-dashcube:before {
  content: "\f210";
}
.mgz-fa-database:before {
  content: "\f1c0";
}
.mgz-fa-deaf:before {
  content: "\f2a4";
}
.mgz-fa-delicious:before {
  content: "\f1a5";
}
.mgz-fa-democrat:before {
  content: "\f747";
}
.mgz-fa-deploydog:before {
  content: "\f38e";
}
.mgz-fa-deskpro:before {
  content: "\f38f";
}
.mgz-fa-desktop:before {
  content: "\f108";
}
.mgz-fa-dev:before {
  content: "\f6cc";
}
.mgz-fa-deviantart:before {
  content: "\f1bd";
}
.mgz-fa-dharmachakra:before {
  content: "\f655";
}
.mgz-fa-dhl:before {
  content: "\f790";
}
.mgz-fa-diagnoses:before {
  content: "\f470";
}
.mgz-fa-diaspora:before {
  content: "\f791";
}
.mgz-fa-dice:before {
  content: "\f522";
}
.mgz-fa-dice-d20:before {
  content: "\f6cf";
}
.mgz-fa-dice-d6:before {
  content: "\f6d1";
}
.mgz-fa-dice-five:before {
  content: "\f523";
}
.mgz-fa-dice-four:before {
  content: "\f524";
}
.mgz-fa-dice-one:before {
  content: "\f525";
}
.mgz-fa-dice-six:before {
  content: "\f526";
}
.mgz-fa-dice-three:before {
  content: "\f527";
}
.mgz-fa-dice-two:before {
  content: "\f528";
}
.mgz-fa-digg:before {
  content: "\f1a6";
}
.mgz-fa-digital-ocean:before {
  content: "\f391";
}
.mgz-fa-digital-tachograph:before {
  content: "\f566";
}
.mgz-fa-directions:before {
  content: "\f5eb";
}
.mgz-fa-discord:before {
  content: "\f392";
}
.mgz-fa-discourse:before {
  content: "\f393";
}
.mgz-fa-divide:before {
  content: "\f529";
}
.mgz-fa-dizzy:before {
  content: "\f567";
}
.mgz-fa-dna:before {
  content: "\f471";
}
.mgz-fa-dochub:before {
  content: "\f394";
}
.mgz-fa-docker:before {
  content: "\f395";
}
.mgz-fa-dog:before {
  content: "\f6d3";
}
.mgz-fa-dollar-sign:before {
  content: "\f155";
}
.mgz-fa-dolly:before {
  content: "\f472";
}
.mgz-fa-dolly-flatbed:before {
  content: "\f474";
}
.mgz-fa-donate:before {
  content: "\f4b9";
}
.mgz-fa-door-closed:before {
  content: "\f52a";
}
.mgz-fa-door-open:before {
  content: "\f52b";
}
.mgz-fa-dot-circle:before {
  content: "\f192";
}
.mgz-fa-dove:before {
  content: "\f4ba";
}
.mgz-fa-download:before {
  content: "\f019";
}
.mgz-fa-draft2digital:before {
  content: "\f396";
}
.mgz-fa-drafting-compass:before {
  content: "\f568";
}
.mgz-fa-dragon:before {
  content: "\f6d5";
}
.mgz-fa-draw-polygon:before {
  content: "\f5ee";
}
.mgz-fa-dribbble:before {
  content: "\f17d";
}
.mgz-fa-dribbble-square:before {
  content: "\f397";
}
.mgz-fa-dropbox:before {
  content: "\f16b";
}
.mgz-fa-drum:before {
  content: "\f569";
}
.mgz-fa-drum-steelpan:before {
  content: "\f56a";
}
.mgz-fa-drumstick-bite:before {
  content: "\f6d7";
}
.mgz-fa-drupal:before {
  content: "\f1a9";
}
.mgz-fa-dumbbell:before {
  content: "\f44b";
}
.mgz-fa-dumpster:before {
  content: "\f793";
}
.mgz-fa-dumpster-fire:before {
  content: "\f794";
}
.mgz-fa-dungeon:before {
  content: "\f6d9";
}
.mgz-fa-dyalog:before {
  content: "\f399";
}
.mgz-fa-earlybirds:before {
  content: "\f39a";
}
.mgz-fa-ebay:before {
  content: "\f4f4";
}
.mgz-fa-edge:before {
  content: "\f282";
}
.mgz-fa-edit:before {
  content: "\f044";
}
.mgz-fa-egg:before {
  content: "\f7fb";
}
.mgz-fa-eject:before {
  content: "\f052";
}
.mgz-fa-elementor:before {
  content: "\f430";
}
.mgz-fa-ellipsis-h:before {
  content: "\f141";
}
.mgz-fa-ellipsis-v:before {
  content: "\f142";
}
.mgz-fa-ello:before {
  content: "\f5f1";
}
.mgz-fa-ember:before {
  content: "\f423";
}
.mgz-fa-empire:before {
  content: "\f1d1";
}
.mgz-fa-envelope:before {
  content: "\f0e0";
}
.mgz-fa-envelope-open:before {
  content: "\f2b6";
}
.mgz-fa-envelope-open-text:before {
  content: "\f658";
}
.mgz-fa-envelope-square:before {
  content: "\f199";
}
.mgz-fa-envira:before {
  content: "\f299";
}
.mgz-fa-equals:before {
  content: "\f52c";
}
.mgz-fa-eraser:before {
  content: "\f12d";
}
.mgz-fa-erlang:before {
  content: "\f39d";
}
.mgz-fa-ethereum:before {
  content: "\f42e";
}
.mgz-fa-ethernet:before {
  content: "\f796";
}
.mgz-fa-etsy:before {
  content: "\f2d7";
}
.mgz-fa-euro-sign:before {
  content: "\f153";
}
.mgz-fa-evernote:before {
  content: "\f839";
}
.mgz-fa-exchange-alt:before {
  content: "\f362";
}
.mgz-fa-exclamation:before {
  content: "\f12a";
}
.mgz-fa-exclamation-circle:before {
  content: "\f06a";
}
.mgz-fa-exclamation-triangle:before {
  content: "\f071";
}
.mgz-fa-expand:before {
  content: "\f065";
}
.mgz-fa-expand-arrows-alt:before {
  content: "\f31e";
}
.mgz-fa-expeditedssl:before {
  content: "\f23e";
}
.mgz-fa-external-link-alt:before {
  content: "\f35d";
}
.mgz-fa-external-link-square-alt:before {
  content: "\f360";
}
.mgz-fa-eye:before {
  content: "\f06e";
}
.mgz-fa-eye-dropper:before {
  content: "\f1fb";
}
.mgz-fa-eye-slash:before {
  content: "\f070";
}
.mgz-fa-facebook:before {
  content: "\f09a";
}
.mgz-fa-facebook-f:before {
  content: "\f39e";
}
.mgz-fa-facebook-messenger:before {
  content: "\f39f";
}
.mgz-fa-facebook-square:before {
  content: "\f082";
}
.mgz-fa-fantasy-flight-games:before {
  content: "\f6dc";
}
.mgz-fa-fast-backward:before {
  content: "\f049";
}
.mgz-fa-fast-forward:before {
  content: "\f050";
}
.mgz-fa-fax:before {
  content: "\f1ac";
}
.mgz-fa-feather:before {
  content: "\f52d";
}
.mgz-fa-feather-alt:before {
  content: "\f56b";
}
.mgz-fa-fedex:before {
  content: "\f797";
}
.mgz-fa-fedora:before {
  content: "\f798";
}
.mgz-fa-female:before {
  content: "\f182";
}
.mgz-fa-fighter-jet:before {
  content: "\f0fb";
}
.mgz-fa-figma:before {
  content: "\f799";
}
.mgz-fa-file:before {
  content: "\f15b";
}
.mgz-fa-file-alt:before {
  content: "\f15c";
}
.mgz-fa-file-archive:before {
  content: "\f1c6";
}
.mgz-fa-file-audio:before {
  content: "\f1c7";
}
.mgz-fa-file-code:before {
  content: "\f1c9";
}
.mgz-fa-file-contract:before {
  content: "\f56c";
}
.mgz-fa-file-csv:before {
  content: "\f6dd";
}
.mgz-fa-file-download:before {
  content: "\f56d";
}
.mgz-fa-file-excel:before {
  content: "\f1c3";
}
.mgz-fa-file-export:before {
  content: "\f56e";
}
.mgz-fa-file-image:before {
  content: "\f1c5";
}
.mgz-fa-file-import:before {
  content: "\f56f";
}
.mgz-fa-file-invoice:before {
  content: "\f570";
}
.mgz-fa-file-invoice-dollar:before {
  content: "\f571";
}
.mgz-fa-file-medical:before {
  content: "\f477";
}
.mgz-fa-file-medical-alt:before {
  content: "\f478";
}
.mgz-fa-file-pdf:before {
  content: "\f1c1";
}
.mgz-fa-file-powerpoint:before {
  content: "\f1c4";
}
.mgz-fa-file-prescription:before {
  content: "\f572";
}
.mgz-fa-file-signature:before {
  content: "\f573";
}
.mgz-fa-file-upload:before {
  content: "\f574";
}
.mgz-fa-file-video:before {
  content: "\f1c8";
}
.mgz-fa-file-word:before {
  content: "\f1c2";
}
.mgz-fa-fill:before {
  content: "\f575";
}
.mgz-fa-fill-drip:before {
  content: "\f576";
}
.mgz-fa-film:before {
  content: "\f008";
}
.mgz-fa-filter:before {
  content: "\f0b0";
}
.mgz-fa-fingerprint:before {
  content: "\f577";
}
.mgz-fa-fire:before {
  content: "\f06d";
}
.mgz-fa-fire-alt:before {
  content: "\f7e4";
}
.mgz-fa-fire-extinguisher:before {
  content: "\f134";
}
.mgz-fa-firefox:before {
  content: "\f269";
}
.mgz-fa-first-aid:before {
  content: "\f479";
}
.mgz-fa-first-order:before {
  content: "\f2b0";
}
.mgz-fa-first-order-alt:before {
  content: "\f50a";
}
.mgz-fa-firstdraft:before {
  content: "\f3a1";
}
.mgz-fa-fish:before {
  content: "\f578";
}
.mgz-fa-fist-raised:before {
  content: "\f6de";
}
.mgz-fa-flag:before {
  content: "\f024";
}
.mgz-fa-flag-checkered:before {
  content: "\f11e";
}
.mgz-fa-flag-usa:before {
  content: "\f74d";
}
.mgz-fa-flask:before {
  content: "\f0c3";
}
.mgz-fa-flickr:before {
  content: "\f16e";
}
.mgz-fa-flipboard:before {
  content: "\f44d";
}
.mgz-fa-flushed:before {
  content: "\f579";
}
.mgz-fa-fly:before {
  content: "\f417";
}
.mgz-fa-folder:before {
  content: "\f07b";
}
.mgz-fa-folder-minus:before {
  content: "\f65d";
}
.mgz-fa-folder-open:before {
  content: "\f07c";
}
.mgz-fa-folder-plus:before {
  content: "\f65e";
}
.mgz-fa-font:before {
  content: "\f031";
}
.mgz-fa-font-awesome:before {
  content: "\f2b4";
}
.mgz-fa-font-awesome-alt:before {
  content: "\f35c";
}
.mgz-fa-font-awesome-flag:before {
  content: "\f425";
}
.mgz-fa-font-awesome-logo-full:before {
  content: "\f4e6";
}
.mgz-fa-fonticons:before {
  content: "\f280";
}
.mgz-fa-fonticons-fi:before {
  content: "\f3a2";
}
.mgz-fa-football-ball:before {
  content: "\f44e";
}
.mgz-fa-fort-awesome:before {
  content: "\f286";
}
.mgz-fa-fort-awesome-alt:before {
  content: "\f3a3";
}
.mgz-fa-forumbee:before {
  content: "\f211";
}
.mgz-fa-forward:before {
  content: "\f04e";
}
.mgz-fa-foursquare:before {
  content: "\f180";
}
.mgz-fa-free-code-camp:before {
  content: "\f2c5";
}
.mgz-fa-freebsd:before {
  content: "\f3a4";
}
.mgz-fa-frog:before {
  content: "\f52e";
}
.mgz-fa-frown:before {
  content: "\f119";
}
.mgz-fa-frown-open:before {
  content: "\f57a";
}
.mgz-fa-fulcrum:before {
  content: "\f50b";
}
.mgz-fa-funnel-dollar:before {
  content: "\f662";
}
.mgz-fa-futbol:before {
  content: "\f1e3";
}
.mgz-fa-galactic-republic:before {
  content: "\f50c";
}
.mgz-fa-galactic-senate:before {
  content: "\f50d";
}
.mgz-fa-gamepad:before {
  content: "\f11b";
}
.mgz-fa-gas-pump:before {
  content: "\f52f";
}
.mgz-fa-gavel:before {
  content: "\f0e3";
}
.mgz-fa-gem:before {
  content: "\f3a5";
}
.mgz-fa-genderless:before {
  content: "\f22d";
}
.mgz-fa-get-pocket:before {
  content: "\f265";
}
.mgz-fa-gg:before {
  content: "\f260";
}
.mgz-fa-gg-circle:before {
  content: "\f261";
}
.mgz-fa-ghost:before {
  content: "\f6e2";
}
.mgz-fa-gift:before {
  content: "\f06b";
}
.mgz-fa-gifts:before {
  content: "\f79c";
}
.mgz-fa-git:before {
  content: "\f1d3";
}
.mgz-fa-git-square:before {
  content: "\f1d2";
}
.mgz-fa-github:before {
  content: "\f09b";
}
.mgz-fa-github-alt:before {
  content: "\f113";
}
.mgz-fa-github-square:before {
  content: "\f092";
}
.mgz-fa-gitkraken:before {
  content: "\f3a6";
}
.mgz-fa-gitlab:before {
  content: "\f296";
}
.mgz-fa-gitter:before {
  content: "\f426";
}
.mgz-fa-glass-cheers:before {
  content: "\f79f";
}
.mgz-fa-glass-martini:before {
  content: "\f000";
}
.mgz-fa-glass-martini-alt:before {
  content: "\f57b";
}
.mgz-fa-glass-whiskey:before {
  content: "\f7a0";
}
.mgz-fa-glasses:before {
  content: "\f530";
}
.mgz-fa-glide:before {
  content: "\f2a5";
}
.mgz-fa-glide-g:before {
  content: "\f2a6";
}
.mgz-fa-globe:before {
  content: "\f0ac";
}
.mgz-fa-globe-africa:before {
  content: "\f57c";
}
.mgz-fa-globe-americas:before {
  content: "\f57d";
}
.mgz-fa-globe-asia:before {
  content: "\f57e";
}
.mgz-fa-globe-europe:before {
  content: "\f7a2";
}
.mgz-fa-gofore:before {
  content: "\f3a7";
}
.mgz-fa-golf-ball:before {
  content: "\f450";
}
.mgz-fa-goodreads:before {
  content: "\f3a8";
}
.mgz-fa-goodreads-g:before {
  content: "\f3a9";
}
.mgz-fa-google:before {
  content: "\f1a0";
}
.mgz-fa-google-drive:before {
  content: "\f3aa";
}
.mgz-fa-google-play:before {
  content: "\f3ab";
}
.mgz-fa-google-plus:before {
  content: "\f2b3";
}
.mgz-fa-google-plus-g:before {
  content: "\f0d5";
}
.mgz-fa-google-plus-square:before {
  content: "\f0d4";
}
.mgz-fa-google-wallet:before {
  content: "\f1ee";
}
.mgz-fa-gopuram:before {
  content: "\f664";
}
.mgz-fa-graduation-cap:before {
  content: "\f19d";
}
.mgz-fa-gratipay:before {
  content: "\f184";
}
.mgz-fa-grav:before {
  content: "\f2d6";
}
.mgz-fa-greater-than:before {
  content: "\f531";
}
.mgz-fa-greater-than-equal:before {
  content: "\f532";
}
.mgz-fa-grimace:before {
  content: "\f57f";
}
.mgz-fa-grin:before {
  content: "\f580";
}
.mgz-fa-grin-alt:before {
  content: "\f581";
}
.mgz-fa-grin-beam:before {
  content: "\f582";
}
.mgz-fa-grin-beam-sweat:before {
  content: "\f583";
}
.mgz-fa-grin-hearts:before {
  content: "\f584";
}
.mgz-fa-grin-squint:before {
  content: "\f585";
}
.mgz-fa-grin-squint-tears:before {
  content: "\f586";
}
.mgz-fa-grin-stars:before {
  content: "\f587";
}
.mgz-fa-grin-tears:before {
  content: "\f588";
}
.mgz-fa-grin-tongue:before {
  content: "\f589";
}
.mgz-fa-grin-tongue-squint:before {
  content: "\f58a";
}
.mgz-fa-grin-tongue-wink:before {
  content: "\f58b";
}
.mgz-fa-grin-wink:before {
  content: "\f58c";
}
.mgz-fa-grip-horizontal:before {
  content: "\f58d";
}
.mgz-fa-grip-lines:before {
  content: "\f7a4";
}
.mgz-fa-grip-lines-vertical:before {
  content: "\f7a5";
}
.mgz-fa-grip-vertical:before {
  content: "\f58e";
}
.mgz-fa-gripfire:before {
  content: "\f3ac";
}
.mgz-fa-grunt:before {
  content: "\f3ad";
}
.mgz-fa-guitar:before {
  content: "\f7a6";
}
.mgz-fa-gulp:before {
  content: "\f3ae";
}
.mgz-fa-h-square:before {
  content: "\f0fd";
}
.mgz-fa-hacker-news:before {
  content: "\f1d4";
}
.mgz-fa-hacker-news-square:before {
  content: "\f3af";
}
.mgz-fa-hackerrank:before {
  content: "\f5f7";
}
.mgz-fa-hamburger:before {
  content: "\f805";
}
.mgz-fa-hammer:before {
  content: "\f6e3";
}
.mgz-fa-hamsa:before {
  content: "\f665";
}
.mgz-fa-hand-holding:before {
  content: "\f4bd";
}
.mgz-fa-hand-holding-heart:before {
  content: "\f4be";
}
.mgz-fa-hand-holding-usd:before {
  content: "\f4c0";
}
.mgz-fa-hand-lizard:before {
  content: "\f258";
}
.mgz-fa-hand-middle-finger:before {
  content: "\f806";
}
.mgz-fa-hand-paper:before {
  content: "\f256";
}
.mgz-fa-hand-peace:before {
  content: "\f25b";
}
.mgz-fa-hand-point-down:before {
  content: "\f0a7";
}
.mgz-fa-hand-point-left:before {
  content: "\f0a5";
}
.mgz-fa-hand-point-right:before {
  content: "\f0a4";
}
.mgz-fa-hand-point-up:before {
  content: "\f0a6";
}
.mgz-fa-hand-pointer:before {
  content: "\f25a";
}
.mgz-fa-hand-rock:before {
  content: "\f255";
}
.mgz-fa-hand-scissors:before {
  content: "\f257";
}
.mgz-fa-hand-spock:before {
  content: "\f259";
}
.mgz-fa-hands:before {
  content: "\f4c2";
}
.mgz-fa-hands-helping:before {
  content: "\f4c4";
}
.mgz-fa-handshake:before {
  content: "\f2b5";
}
.mgz-fa-hanukiah:before {
  content: "\f6e6";
}
.mgz-fa-hard-hat:before {
  content: "\f807";
}
.mgz-fa-hashtag:before {
  content: "\f292";
}
.mgz-fa-hat-wizard:before {
  content: "\f6e8";
}
.mgz-fa-haykal:before {
  content: "\f666";
}
.mgz-fa-hdd:before {
  content: "\f0a0";
}
.mgz-fa-heading:before {
  content: "\f1dc";
}
.mgz-fa-headphones:before {
  content: "\f025";
}
.mgz-fa-headphones-alt:before {
  content: "\f58f";
}
.mgz-fa-headset:before {
  content: "\f590";
}
.mgz-fa-heart:before {
  content: "\f004";
}
.mgz-fa-heart-broken:before {
  content: "\f7a9";
}
.mgz-fa-heartbeat:before {
  content: "\f21e";
}
.mgz-fa-helicopter:before {
  content: "\f533";
}
.mgz-fa-highlighter:before {
  content: "\f591";
}
.mgz-fa-hiking:before {
  content: "\f6ec";
}
.mgz-fa-hippo:before {
  content: "\f6ed";
}
.mgz-fa-hips:before {
  content: "\f452";
}
.mgz-fa-hire-a-helper:before {
  content: "\f3b0";
}
.mgz-fa-history:before {
  content: "\f1da";
}
.mgz-fa-hockey-puck:before {
  content: "\f453";
}
.mgz-fa-holly-berry:before {
  content: "\f7aa";
}
.mgz-fa-home:before {
  content: "\f015";
}
.mgz-fa-hooli:before {
  content: "\f427";
}
.mgz-fa-hornbill:before {
  content: "\f592";
}
.mgz-fa-horse:before {
  content: "\f6f0";
}
.mgz-fa-horse-head:before {
  content: "\f7ab";
}
.mgz-fa-hospital:before {
  content: "\f0f8";
}
.mgz-fa-hospital-alt:before {
  content: "\f47d";
}
.mgz-fa-hospital-symbol:before {
  content: "\f47e";
}
.mgz-fa-hot-tub:before {
  content: "\f593";
}
.mgz-fa-hotdog:before {
  content: "\f80f";
}
.mgz-fa-hotel:before {
  content: "\f594";
}
.mgz-fa-hotjar:before {
  content: "\f3b1";
}
.mgz-fa-hourglass:before {
  content: "\f254";
}
.mgz-fa-hourglass-end:before {
  content: "\f253";
}
.mgz-fa-hourglass-half:before {
  content: "\f252";
}
.mgz-fa-hourglass-start:before {
  content: "\f251";
}
.mgz-fa-house-damage:before {
  content: "\f6f1";
}
.mgz-fa-houzz:before {
  content: "\f27c";
}
.mgz-fa-hryvnia:before {
  content: "\f6f2";
}
.mgz-fa-html5:before {
  content: "\f13b";
}
.mgz-fa-hubspot:before {
  content: "\f3b2";
}
.mgz-fa-i-cursor:before {
  content: "\f246";
}
.mgz-fa-ice-cream:before {
  content: "\f810";
}
.mgz-fa-icicles:before {
  content: "\f7ad";
}
.mgz-fa-id-badge:before {
  content: "\f2c1";
}
.mgz-fa-id-card:before {
  content: "\f2c2";
}
.mgz-fa-id-card-alt:before {
  content: "\f47f";
}
.mgz-fa-igloo:before {
  content: "\f7ae";
}
.mgz-fa-image:before {
  content: "\f03e";
}
.mgz-fa-images:before {
  content: "\f302";
}
.mgz-fa-imdb:before {
  content: "\f2d8";
}
.mgz-fa-inbox:before {
  content: "\f01c";
}
.mgz-fa-indent:before {
  content: "\f03c";
}
.mgz-fa-industry:before {
  content: "\f275";
}
.mgz-fa-infinity:before {
  content: "\f534";
}
.mgz-fa-info:before {
  content: "\f129";
}
.mgz-fa-info-circle:before {
  content: "\f05a";
}
.mgz-fa-instagram:before {
  content: "\f16d";
}
.mgz-fa-intercom:before {
  content: "\f7af";
}
.mgz-fa-internet-explorer:before {
  content: "\f26b";
}
.mgz-fa-invision:before {
  content: "\f7b0";
}
.mgz-fa-ioxhost:before {
  content: "\f208";
}
.mgz-fa-italic:before {
  content: "\f033";
}
.mgz-fa-itch-io:before {
  content: "\f83a";
}
.mgz-fa-itunes:before {
  content: "\f3b4";
}
.mgz-fa-itunes-note:before {
  content: "\f3b5";
}
.mgz-fa-java:before {
  content: "\f4e4";
}
.mgz-fa-jedi:before {
  content: "\f669";
}
.mgz-fa-jedi-order:before {
  content: "\f50e";
}
.mgz-fa-jenkins:before {
  content: "\f3b6";
}
.mgz-fa-jira:before {
  content: "\f7b1";
}
.mgz-fa-joget:before {
  content: "\f3b7";
}
.mgz-fa-joint:before {
  content: "\f595";
}
.mgz-fa-joomla:before {
  content: "\f1aa";
}
.mgz-fa-journal-whills:before {
  content: "\f66a";
}
.mgz-fa-js:before {
  content: "\f3b8";
}
.mgz-fa-js-square:before {
  content: "\f3b9";
}
.mgz-fa-jsfiddle:before {
  content: "\f1cc";
}
.mgz-fa-kaaba:before {
  content: "\f66b";
}
.mgz-fa-kaggle:before {
  content: "\f5fa";
}
.mgz-fa-key:before {
  content: "\f084";
}
.mgz-fa-keybase:before {
  content: "\f4f5";
}
.mgz-fa-keyboard:before {
  content: "\f11c";
}
.mgz-fa-keycdn:before {
  content: "\f3ba";
}
.mgz-fa-khanda:before {
  content: "\f66d";
}
.mgz-fa-kickstarter:before {
  content: "\f3bb";
}
.mgz-fa-kickstarter-k:before {
  content: "\f3bc";
}
.mgz-fa-kiss:before {
  content: "\f596";
}
.mgz-fa-kiss-beam:before {
  content: "\f597";
}
.mgz-fa-kiss-wink-heart:before {
  content: "\f598";
}
.mgz-fa-kiwi-bird:before {
  content: "\f535";
}
.mgz-fa-korvue:before {
  content: "\f42f";
}
.mgz-fa-landmark:before {
  content: "\f66f";
}
.mgz-fa-language:before {
  content: "\f1ab";
}
.mgz-fa-laptop:before {
  content: "\f109";
}
.mgz-fa-laptop-code:before {
  content: "\f5fc";
}
.mgz-fa-laptop-medical:before {
  content: "\f812";
}
.mgz-fa-laravel:before {
  content: "\f3bd";
}
.mgz-fa-lastfm:before {
  content: "\f202";
}
.mgz-fa-lastfm-square:before {
  content: "\f203";
}
.mgz-fa-laugh:before {
  content: "\f599";
}
.mgz-fa-laugh-beam:before {
  content: "\f59a";
}
.mgz-fa-laugh-squint:before {
  content: "\f59b";
}
.mgz-fa-laugh-wink:before {
  content: "\f59c";
}
.mgz-fa-layer-group:before {
  content: "\f5fd";
}
.mgz-fa-leaf:before {
  content: "\f06c";
}
.mgz-fa-leanpub:before {
  content: "\f212";
}
.mgz-fa-lemon:before {
  content: "\f094";
}
.mgz-fa-less:before {
  content: "\f41d";
}
.mgz-fa-less-than:before {
  content: "\f536";
}
.mgz-fa-less-than-equal:before {
  content: "\f537";
}
.mgz-fa-level-down-alt:before {
  content: "\f3be";
}
.mgz-fa-level-up-alt:before {
  content: "\f3bf";
}
.mgz-fa-life-ring:before {
  content: "\f1cd";
}
.mgz-fa-lightbulb:before {
  content: "\f0eb";
}
.mgz-fa-line:before {
  content: "\f3c0";
}
.mgz-fa-link:before {
  content: "\f0c1";
}
.mgz-fa-linkedin:before {
  content: "\f08c";
}
.mgz-fa-linkedin-in:before {
  content: "\f0e1";
}
.mgz-fa-linode:before {
  content: "\f2b8";
}
.mgz-fa-linux:before {
  content: "\f17c";
}
.mgz-fa-lira-sign:before {
  content: "\f195";
}
.mgz-fa-list:before {
  content: "\f03a";
}
.mgz-fa-list-alt:before {
  content: "\f022";
}
.mgz-fa-list-ol:before {
  content: "\f0cb";
}
.mgz-fa-list-ul:before {
  content: "\f0ca";
}
.mgz-fa-location-arrow:before {
  content: "\f124";
}
.mgz-fa-lock:before {
  content: "\f023";
}
.mgz-fa-lock-open:before {
  content: "\f3c1";
}
.mgz-fa-long-arrow-alt-down:before {
  content: "\f309";
}
.mgz-fa-long-arrow-alt-left:before {
  content: "\f30a";
}
.mgz-fa-long-arrow-alt-right:before {
  content: "\f30b";
}
.mgz-fa-long-arrow-alt-up:before {
  content: "\f30c";
}
.mgz-fa-low-vision:before {
  content: "\f2a8";
}
.mgz-fa-luggage-cart:before {
  content: "\f59d";
}
.mgz-fa-lyft:before {
  content: "\f3c3";
}
.mgz-fa-magento:before {
  content: "\f3c4";
}
.mgz-fa-magic:before {
  content: "\f0d0";
}
.mgz-fa-magnet:before {
  content: "\f076";
}
.mgz-fa-mail-bulk:before {
  content: "\f674";
}
.mgz-fa-mailchimp:before {
  content: "\f59e";
}
.mgz-fa-male:before {
  content: "\f183";
}
.mgz-fa-mandalorian:before {
  content: "\f50f";
}
.mgz-fa-map:before {
  content: "\f279";
}
.mgz-fa-map-marked:before {
  content: "\f59f";
}
.mgz-fa-map-marked-alt:before {
  content: "\f5a0";
}
.mgz-fa-map-marker:before {
  content: "\f041";
}
.mgz-fa-map-marker-alt:before {
  content: "\f3c5";
}
.mgz-fa-map-pin:before {
  content: "\f276";
}
.mgz-fa-map-signs:before {
  content: "\f277";
}
.mgz-fa-markdown:before {
  content: "\f60f";
}
.mgz-fa-marker:before {
  content: "\f5a1";
}
.mgz-fa-mars:before {
  content: "\f222";
}
.mgz-fa-mars-double:before {
  content: "\f227";
}
.mgz-fa-mars-stroke:before {
  content: "\f229";
}
.mgz-fa-mars-stroke-h:before {
  content: "\f22b";
}
.mgz-fa-mars-stroke-v:before {
  content: "\f22a";
}
.mgz-fa-mask:before {
  content: "\f6fa";
}
.mgz-fa-mastodon:before {
  content: "\f4f6";
}
.mgz-fa-maxcdn:before {
  content: "\f136";
}
.mgz-fa-medal:before {
  content: "\f5a2";
}
.mgz-fa-medapps:before {
  content: "\f3c6";
}
.mgz-fa-medium:before {
  content: "\f23a";
}
.mgz-fa-medium-m:before {
  content: "\f3c7";
}
.mgz-fa-medkit:before {
  content: "\f0fa";
}
.mgz-fa-medrt:before {
  content: "\f3c8";
}
.mgz-fa-meetup:before {
  content: "\f2e0";
}
.mgz-fa-megaport:before {
  content: "\f5a3";
}
.mgz-fa-meh:before {
  content: "\f11a";
}
.mgz-fa-meh-blank:before {
  content: "\f5a4";
}
.mgz-fa-meh-rolling-eyes:before {
  content: "\f5a5";
}
.mgz-fa-memory:before {
  content: "\f538";
}
.mgz-fa-mendeley:before {
  content: "\f7b3";
}
.mgz-fa-menorah:before {
  content: "\f676";
}
.mgz-fa-mercury:before {
  content: "\f223";
}
.mgz-fa-meteor:before {
  content: "\f753";
}
.mgz-fa-microchip:before {
  content: "\f2db";
}
.mgz-fa-microphone:before {
  content: "\f130";
}
.mgz-fa-microphone-alt:before {
  content: "\f3c9";
}
.mgz-fa-microphone-alt-slash:before {
  content: "\f539";
}
.mgz-fa-microphone-slash:before {
  content: "\f131";
}
.mgz-fa-microscope:before {
  content: "\f610";
}
.mgz-fa-microsoft:before {
  content: "\f3ca";
}
.mgz-fa-minus:before {
  content: "\f068";
}
.mgz-fa-minus-circle:before {
  content: "\f056";
}
.mgz-fa-minus-square:before {
  content: "\f146";
}
.mgz-fa-mitten:before {
  content: "\f7b5";
}
.mgz-fa-mix:before {
  content: "\f3cb";
}
.mgz-fa-mixcloud:before {
  content: "\f289";
}
.mgz-fa-mizuni:before {
  content: "\f3cc";
}
.mgz-fa-mobile:before {
  content: "\f10b";
}
.mgz-fa-mobile-alt:before {
  content: "\f3cd";
}
.mgz-fa-modx:before {
  content: "\f285";
}
.mgz-fa-monero:before {
  content: "\f3d0";
}
.mgz-fa-money-bill:before {
  content: "\f0d6";
}
.mgz-fa-money-bill-alt:before {
  content: "\f3d1";
}
.mgz-fa-money-bill-wave:before {
  content: "\f53a";
}
.mgz-fa-money-bill-wave-alt:before {
  content: "\f53b";
}
.mgz-fa-money-check:before {
  content: "\f53c";
}
.mgz-fa-money-check-alt:before {
  content: "\f53d";
}
.mgz-fa-monument:before {
  content: "\f5a6";
}
.mgz-fa-moon:before {
  content: "\f186";
}
.mgz-fa-mortar-pestle:before {
  content: "\f5a7";
}
.mgz-fa-mosque:before {
  content: "\f678";
}
.mgz-fa-motorcycle:before {
  content: "\f21c";
}
.mgz-fa-mountain:before {
  content: "\f6fc";
}
.mgz-fa-mouse-pointer:before {
  content: "\f245";
}
.mgz-fa-mug-hot:before {
  content: "\f7b6";
}
.mgz-fa-music:before {
  content: "\f001";
}
.mgz-fa-napster:before {
  content: "\f3d2";
}
.mgz-fa-neos:before {
  content: "\f612";
}
.mgz-fa-network-wired:before {
  content: "\f6ff";
}
.mgz-fa-neuter:before {
  content: "\f22c";
}
.mgz-fa-newspaper:before {
  content: "\f1ea";
}
.mgz-fa-nimblr:before {
  content: "\f5a8";
}
.mgz-fa-nintendo-switch:before {
  content: "\f418";
}
.mgz-fa-node:before {
  content: "\f419";
}
.mgz-fa-node-js:before {
  content: "\f3d3";
}
.mgz-fa-not-equal:before {
  content: "\f53e";
}
.mgz-fa-notes-medical:before {
  content: "\f481";
}
.mgz-fa-npm:before {
  content: "\f3d4";
}
.mgz-fa-ns8:before {
  content: "\f3d5";
}
.mgz-fa-nutritionix:before {
  content: "\f3d6";
}
.mgz-fa-object-group:before {
  content: "\f247";
}
.mgz-fa-object-ungroup:before {
  content: "\f248";
}
.mgz-fa-odnoklassniki:before {
  content: "\f263";
}
.mgz-fa-odnoklassniki-square:before {
  content: "\f264";
}
.mgz-fa-oil-can:before {
  content: "\f613";
}
.mgz-fa-old-republic:before {
  content: "\f510";
}
.mgz-fa-om:before {
  content: "\f679";
}
.mgz-fa-opencart:before {
  content: "\f23d";
}
.mgz-fa-openid:before {
  content: "\f19b";
}
.mgz-fa-opera:before {
  content: "\f26a";
}
.mgz-fa-optin-monster:before {
  content: "\f23c";
}
.mgz-fa-osi:before {
  content: "\f41a";
}
.mgz-fa-otter:before {
  content: "\f700";
}
.mgz-fa-outdent:before {
  content: "\f03b";
}
.mgz-fa-page4:before {
  content: "\f3d7";
}
.mgz-fa-pagelines:before {
  content: "\f18c";
}
.mgz-fa-pager:before {
  content: "\f815";
}
.mgz-fa-paint-brush:before {
  content: "\f1fc";
}
.mgz-fa-paint-roller:before {
  content: "\f5aa";
}
.mgz-fa-palette:before {
  content: "\f53f";
}
.mgz-fa-palfed:before {
  content: "\f3d8";
}
.mgz-fa-pallet:before {
  content: "\f482";
}
.mgz-fa-paper-plane:before {
  content: "\f1d8";
}
.mgz-fa-paperclip:before {
  content: "\f0c6";
}
.mgz-fa-parachute-box:before {
  content: "\f4cd";
}
.mgz-fa-paragraph:before {
  content: "\f1dd";
}
.mgz-fa-parking:before {
  content: "\f540";
}
.mgz-fa-passport:before {
  content: "\f5ab";
}
.mgz-fa-pastafarianism:before {
  content: "\f67b";
}
.mgz-fa-paste:before {
  content: "\f0ea";
}
.mgz-fa-patreon:before {
  content: "\f3d9";
}
.mgz-fa-pause:before {
  content: "\f04c";
}
.mgz-fa-pause-circle:before {
  content: "\f28b";
}
.mgz-fa-paw:before {
  content: "\f1b0";
}
.mgz-fa-paypal:before {
  content: "\f1ed";
}
.mgz-fa-peace:before {
  content: "\f67c";
}
.mgz-fa-pen:before {
  content: "\f304";
}
.mgz-fa-pen-alt:before {
  content: "\f305";
}
.mgz-fa-pen-fancy:before {
  content: "\f5ac";
}
.mgz-fa-pen-nib:before {
  content: "\f5ad";
}
.mgz-fa-pen-square:before {
  content: "\f14b";
}
.mgz-fa-pencil-alt:before {
  content: "\f303";
}
.mgz-fa-pencil-ruler:before {
  content: "\f5ae";
}
.mgz-fa-penny-arcade:before {
  content: "\f704";
}
.mgz-fa-people-carry:before {
  content: "\f4ce";
}
.mgz-fa-pepper-hot:before {
  content: "\f816";
}
.mgz-fa-percent:before {
  content: "\f295";
}
.mgz-fa-percentage:before {
  content: "\f541";
}
.mgz-fa-periscope:before {
  content: "\f3da";
}
.mgz-fa-person-booth:before {
  content: "\f756";
}
.mgz-fa-phabricator:before {
  content: "\f3db";
}
.mgz-fa-phoenix-framework:before {
  content: "\f3dc";
}
.mgz-fa-phoenix-squadron:before {
  content: "\f511";
}
.mgz-fa-phone:before {
  content: "\f095";
}
.mgz-fa-phone-slash:before {
  content: "\f3dd";
}
.mgz-fa-phone-square:before {
  content: "\f098";
}
.mgz-fa-phone-volume:before {
  content: "\f2a0";
}
.mgz-fa-php:before {
  content: "\f457";
}
.mgz-fa-pied-piper:before {
  content: "\f2ae";
}
.mgz-fa-pied-piper-alt:before {
  content: "\f1a8";
}
.mgz-fa-pied-piper-hat:before {
  content: "\f4e5";
}
.mgz-fa-pied-piper-pp:before {
  content: "\f1a7";
}
.mgz-fa-piggy-bank:before {
  content: "\f4d3";
}
.mgz-fa-pills:before {
  content: "\f484";
}
.mgz-fa-pinterest:before {
  content: "\f0d2";
}
.mgz-fa-pinterest-p:before {
  content: "\f231";
}
.mgz-fa-pinterest-square:before {
  content: "\f0d3";
}
.mgz-fa-pizza-slice:before {
  content: "\f818";
}
.mgz-fa-place-of-worship:before {
  content: "\f67f";
}
.mgz-fa-plane:before {
  content: "\f072";
}
.mgz-fa-plane-arrival:before {
  content: "\f5af";
}
.mgz-fa-plane-departure:before {
  content: "\f5b0";
}
.mgz-fa-play:before {
  content: "\f04b";
}
.mgz-fa-play-circle:before {
  content: "\f144";
}
.mgz-fa-playstation:before {
  content: "\f3df";
}
.mgz-fa-plug:before {
  content: "\f1e6";
}
.mgz-fa-plus:before {
  content: "\f067";
}
.mgz-fa-plus-circle:before {
  content: "\f055";
}
.mgz-fa-plus-square:before {
  content: "\f0fe";
}
.mgz-fa-podcast:before {
  content: "\f2ce";
}
.mgz-fa-poll:before {
  content: "\f681";
}
.mgz-fa-poll-h:before {
  content: "\f682";
}
.mgz-fa-poo:before {
  content: "\f2fe";
}
.mgz-fa-poo-storm:before {
  content: "\f75a";
}
.mgz-fa-poop:before {
  content: "\f619";
}
.mgz-fa-portrait:before {
  content: "\f3e0";
}
.mgz-fa-pound-sign:before {
  content: "\f154";
}
.mgz-fa-power-off:before {
  content: "\f011";
}
.mgz-fa-pray:before {
  content: "\f683";
}
.mgz-fa-praying-hands:before {
  content: "\f684";
}
.mgz-fa-prescription:before {
  content: "\f5b1";
}
.mgz-fa-prescription-bottle:before {
  content: "\f485";
}
.mgz-fa-prescription-bottle-alt:before {
  content: "\f486";
}
.mgz-fa-print:before {
  content: "\f02f";
}
.mgz-fa-procedures:before {
  content: "\f487";
}
.mgz-fa-product-hunt:before {
  content: "\f288";
}
.mgz-fa-project-diagram:before {
  content: "\f542";
}
.mgz-fa-pushed:before {
  content: "\f3e1";
}
.mgz-fa-puzzle-piece:before {
  content: "\f12e";
}
.mgz-fa-python:before {
  content: "\f3e2";
}
.mgz-fa-qq:before {
  content: "\f1d6";
}
.mgz-fa-qrcode:before {
  content: "\f029";
}
.mgz-fa-question:before {
  content: "\f128";
}
.mgz-fa-question-circle:before {
  content: "\f059";
}
.mgz-fa-quidditch:before {
  content: "\f458";
}
.mgz-fa-quinscape:before {
  content: "\f459";
}
.mgz-fa-quora:before {
  content: "\f2c4";
}
.mgz-fa-quote-left:before {
  content: "\f10d";
}
.mgz-fa-quote-right:before {
  content: "\f10e";
}
.mgz-fa-quran:before {
  content: "\f687";
}
.mgz-fa-r-project:before {
  content: "\f4f7";
}
.mgz-fa-radiation:before {
  content: "\f7b9";
}
.mgz-fa-radiation-alt:before {
  content: "\f7ba";
}
.mgz-fa-rainbow:before {
  content: "\f75b";
}
.mgz-fa-random:before {
  content: "\f074";
}
.mgz-fa-raspberry-pi:before {
  content: "\f7bb";
}
.mgz-fa-ravelry:before {
  content: "\f2d9";
}
.mgz-fa-react:before {
  content: "\f41b";
}
.mgz-fa-reacteurope:before {
  content: "\f75d";
}
.mgz-fa-readme:before {
  content: "\f4d5";
}
.mgz-fa-rebel:before {
  content: "\f1d0";
}
.mgz-fa-receipt:before {
  content: "\f543";
}
.mgz-fa-recycle:before {
  content: "\f1b8";
}
.mgz-fa-red-river:before {
  content: "\f3e3";
}
.mgz-fa-reddit:before {
  content: "\f1a1";
}
.mgz-fa-reddit-alien:before {
  content: "\f281";
}
.mgz-fa-reddit-square:before {
  content: "\f1a2";
}
.mgz-fa-redhat:before {
  content: "\f7bc";
}
.mgz-fa-redo:before {
  content: "\f01e";
}
.mgz-fa-redo-alt:before {
  content: "\f2f9";
}
.mgz-fa-registered:before {
  content: "\f25d";
}
.mgz-fa-renren:before {
  content: "\f18b";
}
.mgz-fa-reply:before {
  content: "\f3e5";
}
.mgz-fa-reply-all:before {
  content: "\f122";
}
.mgz-fa-replyd:before {
  content: "\f3e6";
}
.mgz-fa-republican:before {
  content: "\f75e";
}
.mgz-fa-researchgate:before {
  content: "\f4f8";
}
.mgz-fa-resolving:before {
  content: "\f3e7";
}
.mgz-fa-restroom:before {
  content: "\f7bd";
}
.mgz-fa-retweet:before {
  content: "\f079";
}
.mgz-fa-rev:before {
  content: "\f5b2";
}
.mgz-fa-ribbon:before {
  content: "\f4d6";
}
.mgz-fa-ring:before {
  content: "\f70b";
}
.mgz-fa-road:before {
  content: "\f018";
}
.mgz-fa-robot:before {
  content: "\f544";
}
.mgz-fa-rocket:before {
  content: "\f135";
}
.mgz-fa-rocketchat:before {
  content: "\f3e8";
}
.mgz-fa-rockrms:before {
  content: "\f3e9";
}
.mgz-fa-route:before {
  content: "\f4d7";
}
.mgz-fa-rss:before {
  content: "\f09e";
}
.mgz-fa-rss-square:before {
  content: "\f143";
}
.mgz-fa-ruble-sign:before {
  content: "\f158";
}
.mgz-fa-ruler:before {
  content: "\f545";
}
.mgz-fa-ruler-combined:before {
  content: "\f546";
}
.mgz-fa-ruler-horizontal:before {
  content: "\f547";
}
.mgz-fa-ruler-vertical:before {
  content: "\f548";
}
.mgz-fa-running:before {
  content: "\f70c";
}
.mgz-fa-rupee-sign:before {
  content: "\f156";
}
.mgz-fa-sad-cry:before {
  content: "\f5b3";
}
.mgz-fa-sad-tear:before {
  content: "\f5b4";
}
.mgz-fa-safari:before {
  content: "\f267";
}
.mgz-fa-salesforce:before {
  content: "\f83b";
}
.mgz-fa-sass:before {
  content: "\f41e";
}
.mgz-fa-satellite:before {
  content: "\f7bf";
}
.mgz-fa-satellite-dish:before {
  content: "\f7c0";
}
.mgz-fa-save:before {
  content: "\f0c7";
}
.mgz-fa-schlix:before {
  content: "\f3ea";
}
.mgz-fa-school:before {
  content: "\f549";
}
.mgz-fa-screwdriver:before {
  content: "\f54a";
}
.mgz-fa-scribd:before {
  content: "\f28a";
}
.mgz-fa-scroll:before {
  content: "\f70e";
}
.mgz-fa-sd-card:before {
  content: "\f7c2";
}
.mgz-fa-search:before {
  content: "\f002";
}
.mgz-fa-search-dollar:before {
  content: "\f688";
}
.mgz-fa-search-location:before {
  content: "\f689";
}
.mgz-fa-search-minus:before {
  content: "\f010";
}
.mgz-fa-search-plus:before {
  content: "\f00e";
}
.mgz-fa-searchengin:before {
  content: "\f3eb";
}
.mgz-fa-seedling:before {
  content: "\f4d8";
}
.mgz-fa-sellcast:before {
  content: "\f2da";
}
.mgz-fa-sellsy:before {
  content: "\f213";
}
.mgz-fa-server:before {
  content: "\f233";
}
.mgz-fa-servicestack:before {
  content: "\f3ec";
}
.mgz-fa-shapes:before {
  content: "\f61f";
}
.mgz-fa-share:before {
  content: "\f064";
}
.mgz-fa-share-alt:before {
  content: "\f1e0";
}
.mgz-fa-share-alt-square:before {
  content: "\f1e1";
}
.mgz-fa-share-square:before {
  content: "\f14d";
}
.mgz-fa-shekel-sign:before {
  content: "\f20b";
}
.mgz-fa-shield-alt:before {
  content: "\f3ed";
}
.mgz-fa-ship:before {
  content: "\f21a";
}
.mgz-fa-shipping-fast:before {
  content: "\f48b";
}
.mgz-fa-shirtsinbulk:before {
  content: "\f214";
}
.mgz-fa-shoe-prints:before {
  content: "\f54b";
}
.mgz-fa-shopping-bag:before {
  content: "\f290";
}
.mgz-fa-shopping-basket:before {
  content: "\f291";
}
.mgz-fa-shopping-cart:before {
  content: "\f07a";
}
.mgz-fa-shopware:before {
  content: "\f5b5";
}
.mgz-fa-shower:before {
  content: "\f2cc";
}
.mgz-fa-shuttle-van:before {
  content: "\f5b6";
}
.mgz-fa-sign:before {
  content: "\f4d9";
}
.mgz-fa-sign-in-alt:before {
  content: "\f2f6";
}
.mgz-fa-sign-language:before {
  content: "\f2a7";
}
.mgz-fa-sign-out-alt:before {
  content: "\f2f5";
}
.mgz-fa-signal:before {
  content: "\f012";
}
.mgz-fa-signature:before {
  content: "\f5b7";
}
.mgz-fa-sim-card:before {
  content: "\f7c4";
}
.mgz-fa-simplybuilt:before {
  content: "\f215";
}
.mgz-fa-sistrix:before {
  content: "\f3ee";
}
.mgz-fa-sitemap:before {
  content: "\f0e8";
}
.mgz-fa-sith:before {
  content: "\f512";
}
.mgz-fa-skating:before {
  content: "\f7c5";
}
.mgz-fa-sketch:before {
  content: "\f7c6";
}
.mgz-fa-skiing:before {
  content: "\f7c9";
}
.mgz-fa-skiing-nordic:before {
  content: "\f7ca";
}
.mgz-fa-skull:before {
  content: "\f54c";
}
.mgz-fa-skull-crossbones:before {
  content: "\f714";
}
.mgz-fa-skyatlas:before {
  content: "\f216";
}
.mgz-fa-skype:before {
  content: "\f17e";
}
.mgz-fa-slack:before {
  content: "\f198";
}
.mgz-fa-slack-hash:before {
  content: "\f3ef";
}
.mgz-fa-slash:before {
  content: "\f715";
}
.mgz-fa-sleigh:before {
  content: "\f7cc";
}
.mgz-fa-sliders-h:before {
  content: "\f1de";
}
.mgz-fa-slideshare:before {
  content: "\f1e7";
}
.mgz-fa-smile:before {
  content: "\f118";
}
.mgz-fa-smile-beam:before {
  content: "\f5b8";
}
.mgz-fa-smile-wink:before {
  content: "\f4da";
}
.mgz-fa-smog:before {
  content: "\f75f";
}
.mgz-fa-smoking:before {
  content: "\f48d";
}
.mgz-fa-smoking-ban:before {
  content: "\f54d";
}
.mgz-fa-sms:before {
  content: "\f7cd";
}
.mgz-fa-snapchat:before {
  content: "\f2ab";
}
.mgz-fa-snapchat-ghost:before {
  content: "\f2ac";
}
.mgz-fa-snapchat-square:before {
  content: "\f2ad";
}
.mgz-fa-snowboarding:before {
  content: "\f7ce";
}
.mgz-fa-snowflake:before {
  content: "\f2dc";
}
.mgz-fa-snowman:before {
  content: "\f7d0";
}
.mgz-fa-snowplow:before {
  content: "\f7d2";
}
.mgz-fa-socks:before {
  content: "\f696";
}
.mgz-fa-solar-panel:before {
  content: "\f5ba";
}
.mgz-fa-sort:before {
  content: "\f0dc";
}
.mgz-fa-sort-alpha-down:before {
  content: "\f15d";
}
.mgz-fa-sort-alpha-up:before {
  content: "\f15e";
}
.mgz-fa-sort-amount-down:before {
  content: "\f160";
}
.mgz-fa-sort-amount-up:before {
  content: "\f161";
}
.mgz-fa-sort-down:before {
  content: "\f0dd";
}
.mgz-fa-sort-numeric-down:before {
  content: "\f162";
}
.mgz-fa-sort-numeric-up:before {
  content: "\f163";
}
.mgz-fa-sort-up:before {
  content: "\f0de";
}
.mgz-fa-soundcloud:before {
  content: "\f1be";
}
.mgz-fa-sourcetree:before {
  content: "\f7d3";
}
.mgz-fa-spa:before {
  content: "\f5bb";
}
.mgz-fa-space-shuttle:before {
  content: "\f197";
}
.mgz-fa-speakap:before {
  content: "\f3f3";
}
.mgz-fa-speaker-deck:before {
  content: "\f83c";
}
.mgz-fa-spider:before {
  content: "\f717";
}
.mgz-fa-spinner:before {
  content: "\f110";
}
.mgz-fa-splotch:before {
  content: "\f5bc";
}
.mgz-fa-spotify:before {
  content: "\f1bc";
}
.mgz-fa-spray-can:before {
  content: "\f5bd";
}
.mgz-fa-square:before {
  content: "\f0c8";
}
.mgz-fa-square-full:before {
  content: "\f45c";
}
.mgz-fa-square-root-alt:before {
  content: "\f698";
}
.mgz-fa-squarespace:before {
  content: "\f5be";
}
.mgz-fa-stack-exchange:before {
  content: "\f18d";
}
.mgz-fa-stack-overflow:before {
  content: "\f16c";
}
.mgz-fa-stamp:before {
  content: "\f5bf";
}
.mgz-fa-star:before {
  content: "\f005";
}
.mgz-fa-star-and-crescent:before {
  content: "\f699";
}
.mgz-fa-star-half:before {
  content: "\f089";
}
.mgz-fa-star-half-alt:before {
  content: "\f5c0";
}
.mgz-fa-star-of-david:before {
  content: "\f69a";
}
.mgz-fa-star-of-life:before {
  content: "\f621";
}
.mgz-fa-staylinked:before {
  content: "\f3f5";
}
.mgz-fa-steam:before {
  content: "\f1b6";
}
.mgz-fa-steam-square:before {
  content: "\f1b7";
}
.mgz-fa-steam-symbol:before {
  content: "\f3f6";
}
.mgz-fa-step-backward:before {
  content: "\f048";
}
.mgz-fa-step-forward:before {
  content: "\f051";
}
.mgz-fa-stethoscope:before {
  content: "\f0f1";
}
.mgz-fa-sticker-mule:before {
  content: "\f3f7";
}
.mgz-fa-sticky-note:before {
  content: "\f249";
}
.mgz-fa-stop:before {
  content: "\f04d";
}
.mgz-fa-stop-circle:before {
  content: "\f28d";
}
.mgz-fa-stopwatch:before {
  content: "\f2f2";
}
.mgz-fa-store:before {
  content: "\f54e";
}
.mgz-fa-store-alt:before {
  content: "\f54f";
}
.mgz-fa-strava:before {
  content: "\f428";
}
.mgz-fa-stream:before {
  content: "\f550";
}
.mgz-fa-street-view:before {
  content: "\f21d";
}
.mgz-fa-strikethrough:before {
  content: "\f0cc";
}
.mgz-fa-stripe:before {
  content: "\f429";
}
.mgz-fa-stripe-s:before {
  content: "\f42a";
}
.mgz-fa-stroopwafel:before {
  content: "\f551";
}
.mgz-fa-studiovinari:before {
  content: "\f3f8";
}
.mgz-fa-stumbleupon:before {
  content: "\f1a4";
}
.mgz-fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.mgz-fa-subscript:before {
  content: "\f12c";
}
.mgz-fa-subway:before {
  content: "\f239";
}
.mgz-fa-suitcase:before {
  content: "\f0f2";
}
.mgz-fa-suitcase-rolling:before {
  content: "\f5c1";
}
.mgz-fa-sun:before {
  content: "\f185";
}
.mgz-fa-superpowers:before {
  content: "\f2dd";
}
.mgz-fa-superscript:before {
  content: "\f12b";
}
.mgz-fa-supple:before {
  content: "\f3f9";
}
.mgz-fa-surprise:before {
  content: "\f5c2";
}
.mgz-fa-suse:before {
  content: "\f7d6";
}
.mgz-fa-swatchbook:before {
  content: "\f5c3";
}
.mgz-fa-swimmer:before {
  content: "\f5c4";
}
.mgz-fa-swimming-pool:before {
  content: "\f5c5";
}
.mgz-fa-symfony:before {
  content: "\f83d";
}
.mgz-fa-synagogue:before {
  content: "\f69b";
}
.mgz-fa-sync:before {
  content: "\f021";
}
.mgz-fa-sync-alt:before {
  content: "\f2f1";
}
.mgz-fa-syringe:before {
  content: "\f48e";
}
.mgz-fa-table:before {
  content: "\f0ce";
}
.mgz-fa-table-tennis:before {
  content: "\f45d";
}
.mgz-fa-tablet:before {
  content: "\f10a";
}
.mgz-fa-tablet-alt:before {
  content: "\f3fa";
}
.mgz-fa-tablets:before {
  content: "\f490";
}
.mgz-fa-tachometer-alt:before {
  content: "\f3fd";
}
.mgz-fa-tag:before {
  content: "\f02b";
}
.mgz-fa-tags:before {
  content: "\f02c";
}
.mgz-fa-tape:before {
  content: "\f4db";
}
.mgz-fa-tasks:before {
  content: "\f0ae";
}
.mgz-fa-taxi:before {
  content: "\f1ba";
}
.mgz-fa-teamspeak:before {
  content: "\f4f9";
}
.mgz-fa-teeth:before {
  content: "\f62e";
}
.mgz-fa-teeth-open:before {
  content: "\f62f";
}
.mgz-fa-telegram:before {
  content: "\f2c6";
}
.mgz-fa-telegram-plane:before {
  content: "\f3fe";
}
.mgz-fa-temperature-high:before {
  content: "\f769";
}
.mgz-fa-temperature-low:before {
  content: "\f76b";
}
.mgz-fa-tencent-weibo:before {
  content: "\f1d5";
}
.mgz-fa-tenge:before {
  content: "\f7d7";
}
.mgz-fa-terminal:before {
  content: "\f120";
}
.mgz-fa-text-height:before {
  content: "\f034";
}
.mgz-fa-text-width:before {
  content: "\f035";
}
.mgz-fa-th:before {
  content: "\f00a";
}
.mgz-fa-th-large:before {
  content: "\f009";
}
.mgz-fa-th-list:before {
  content: "\f00b";
}
.mgz-fa-the-red-yeti:before {
  content: "\f69d";
}
.mgz-fa-theater-masks:before {
  content: "\f630";
}
.mgz-fa-themeco:before {
  content: "\f5c6";
}
.mgz-fa-themeisle:before {
  content: "\f2b2";
}
.mgz-fa-thermometer:before {
  content: "\f491";
}
.mgz-fa-thermometer-empty:before {
  content: "\f2cb";
}
.mgz-fa-thermometer-full:before {
  content: "\f2c7";
}
.mgz-fa-thermometer-half:before {
  content: "\f2c9";
}
.mgz-fa-thermometer-quarter:before {
  content: "\f2ca";
}
.mgz-fa-thermometer-three-quarters:before {
  content: "\f2c8";
}
.mgz-fa-think-peaks:before {
  content: "\f731";
}
.mgz-fa-thumbs-down:before {
  content: "\f165";
}
.mgz-fa-thumbs-up:before {
  content: "\f164";
}
.mgz-fa-thumbtack:before {
  content: "\f08d";
}
.mgz-fa-ticket-alt:before {
  content: "\f3ff";
}
.mgz-fa-times:before {
  content: "\f00d";
}
.mgz-fa-times-circle:before {
  content: "\f057";
}
.mgz-fa-tint:before {
  content: "\f043";
}
.mgz-fa-tint-slash:before {
  content: "\f5c7";
}
.mgz-fa-tired:before {
  content: "\f5c8";
}
.mgz-fa-toggle-off:before {
  content: "\f204";
}
.mgz-fa-toggle-on:before {
  content: "\f205";
}
.mgz-fa-toilet:before {
  content: "\f7d8";
}
.mgz-fa-toilet-paper:before {
  content: "\f71e";
}
.mgz-fa-toolbox:before {
  content: "\f552";
}
.mgz-fa-tools:before {
  content: "\f7d9";
}
.mgz-fa-tooth:before {
  content: "\f5c9";
}
.mgz-fa-torah:before {
  content: "\f6a0";
}
.mgz-fa-torii-gate:before {
  content: "\f6a1";
}
.mgz-fa-tractor:before {
  content: "\f722";
}
.mgz-fa-trade-federation:before {
  content: "\f513";
}
.mgz-fa-trademark:before {
  content: "\f25c";
}
.mgz-fa-traffic-light:before {
  content: "\f637";
}
.mgz-fa-train:before {
  content: "\f238";
}
.mgz-fa-tram:before {
  content: "\f7da";
}
.mgz-fa-transgender:before {
  content: "\f224";
}
.mgz-fa-transgender-alt:before {
  content: "\f225";
}
.mgz-fa-trash:before {
  content: "\f1f8";
}
.mgz-fa-trash-alt:before {
  content: "\f2ed";
}
.mgz-fa-trash-restore:before {
  content: "\f829";
}
.mgz-fa-trash-restore-alt:before {
  content: "\f82a";
}
.mgz-fa-tree:before {
  content: "\f1bb";
}
.mgz-fa-trello:before {
  content: "\f181";
}
.mgz-fa-tripadvisor:before {
  content: "\f262";
}
.mgz-fa-trophy:before {
  content: "\f091";
}
.mgz-fa-truck:before {
  content: "\f0d1";
}
.mgz-fa-truck-loading:before {
  content: "\f4de";
}
.mgz-fa-truck-monster:before {
  content: "\f63b";
}
.mgz-fa-truck-moving:before {
  content: "\f4df";
}
.mgz-fa-truck-pickup:before {
  content: "\f63c";
}
.mgz-fa-tshirt:before {
  content: "\f553";
}
.mgz-fa-tty:before {
  content: "\f1e4";
}
.mgz-fa-tumblr:before {
  content: "\f173";
}
.mgz-fa-tumblr-square:before {
  content: "\f174";
}
.mgz-fa-tv:before {
  content: "\f26c";
}
.mgz-fa-twitch:before {
  content: "\f1e8";
}
.mgz-fa-twitter:before {
  content: "\f099";
}
.mgz-fa-twitter-square:before {
  content: "\f081";
}
.mgz-fa-typo3:before {
  content: "\f42b";
}
.mgz-fa-uber:before {
  content: "\f402";
}
.mgz-fa-ubuntu:before {
  content: "\f7df";
}
.mgz-fa-uikit:before {
  content: "\f403";
}
.mgz-fa-umbrella:before {
  content: "\f0e9";
}
.mgz-fa-umbrella-beach:before {
  content: "\f5ca";
}
.mgz-fa-underline:before {
  content: "\f0cd";
}
.mgz-fa-undo:before {
  content: "\f0e2";
}
.mgz-fa-undo-alt:before {
  content: "\f2ea";
}
.mgz-fa-uniregistry:before {
  content: "\f404";
}
.mgz-fa-universal-access:before {
  content: "\f29a";
}
.mgz-fa-university:before {
  content: "\f19c";
}
.mgz-fa-unlink:before {
  content: "\f127";
}
.mgz-fa-unlock:before {
  content: "\f09c";
}
.mgz-fa-unlock-alt:before {
  content: "\f13e";
}
.mgz-fa-untappd:before {
  content: "\f405";
}
.mgz-fa-upload:before {
  content: "\f093";
}
.mgz-fa-ups:before {
  content: "\f7e0";
}
.mgz-fa-usb:before {
  content: "\f287";
}
.mgz-fa-user:before {
  content: "\f007";
}
.mgz-fa-user-alt:before {
  content: "\f406";
}
.mgz-fa-user-alt-slash:before {
  content: "\f4fa";
}
.mgz-fa-user-astronaut:before {
  content: "\f4fb";
}
.mgz-fa-user-check:before {
  content: "\f4fc";
}
.mgz-fa-user-circle:before {
  content: "\f2bd";
}
.mgz-fa-user-clock:before {
  content: "\f4fd";
}
.mgz-fa-user-cog:before {
  content: "\f4fe";
}
.mgz-fa-user-edit:before {
  content: "\f4ff";
}
.mgz-fa-user-friends:before {
  content: "\f500";
}
.mgz-fa-user-graduate:before {
  content: "\f501";
}
.mgz-fa-user-injured:before {
  content: "\f728";
}
.mgz-fa-user-lock:before {
  content: "\f502";
}
.mgz-fa-user-md:before {
  content: "\f0f0";
}
.mgz-fa-user-minus:before {
  content: "\f503";
}
.mgz-fa-user-ninja:before {
  content: "\f504";
}
.mgz-fa-user-nurse:before {
  content: "\f82f";
}
.mgz-fa-user-plus:before {
  content: "\f234";
}
.mgz-fa-user-secret:before {
  content: "\f21b";
}
.mgz-fa-user-shield:before {
  content: "\f505";
}
.mgz-fa-user-slash:before {
  content: "\f506";
}
.mgz-fa-user-tag:before {
  content: "\f507";
}
.mgz-fa-user-tie:before {
  content: "\f508";
}
.mgz-fa-user-times:before {
  content: "\f235";
}
.mgz-fa-users:before {
  content: "\f0c0";
}
.mgz-fa-users-cog:before {
  content: "\f509";
}
.mgz-fa-usps:before {
  content: "\f7e1";
}
.mgz-fa-ussunnah:before {
  content: "\f407";
}
.mgz-fa-utensil-spoon:before {
  content: "\f2e5";
}
.mgz-fa-utensils:before {
  content: "\f2e7";
}
.mgz-fa-vaadin:before {
  content: "\f408";
}
.mgz-fa-vector-square:before {
  content: "\f5cb";
}
.mgz-fa-venus:before {
  content: "\f221";
}
.mgz-fa-venus-double:before {
  content: "\f226";
}
.mgz-fa-venus-mars:before {
  content: "\f228";
}
.mgz-fa-viacoin:before {
  content: "\f237";
}
.mgz-fa-viadeo:before {
  content: "\f2a9";
}
.mgz-fa-viadeo-square:before {
  content: "\f2aa";
}
.mgz-fa-vial:before {
  content: "\f492";
}
.mgz-fa-vials:before {
  content: "\f493";
}
.mgz-fa-viber:before {
  content: "\f409";
}
.mgz-fa-video:before {
  content: "\f03d";
}
.mgz-fa-video-slash:before {
  content: "\f4e2";
}
.mgz-fa-vihara:before {
  content: "\f6a7";
}
.mgz-fa-vimeo:before {
  content: "\f40a";
}
.mgz-fa-vimeo-square:before {
  content: "\f194";
}
.mgz-fa-vimeo-v:before {
  content: "\f27d";
}
.mgz-fa-vine:before {
  content: "\f1ca";
}
.mgz-fa-vk:before {
  content: "\f189";
}
.mgz-fa-vnv:before {
  content: "\f40b";
}
.mgz-fa-volleyball-ball:before {
  content: "\f45f";
}
.mgz-fa-volume-down:before {
  content: "\f027";
}
.mgz-fa-volume-mute:before {
  content: "\f6a9";
}
.mgz-fa-volume-off:before {
  content: "\f026";
}
.mgz-fa-volume-up:before {
  content: "\f028";
}
.mgz-fa-vote-yea:before {
  content: "\f772";
}
.mgz-fa-vr-cardboard:before {
  content: "\f729";
}
.mgz-fa-vuejs:before {
  content: "\f41f";
}
.mgz-fa-walking:before {
  content: "\f554";
}
.mgz-fa-wallet:before {
  content: "\f555";
}
.mgz-fa-warehouse:before {
  content: "\f494";
}
.mgz-fa-water:before {
  content: "\f773";
}
.mgz-fa-wave-square:before {
  content: "\f83e";
}
.mgz-fa-waze:before {
  content: "\f83f";
}
.mgz-fa-weebly:before {
  content: "\f5cc";
}
.mgz-fa-weibo:before {
  content: "\f18a";
}
.mgz-fa-weight:before {
  content: "\f496";
}
.mgz-fa-weight-hanging:before {
  content: "\f5cd";
}
.mgz-fa-weixin:before {
  content: "\f1d7";
}
.mgz-fa-whatsapp:before {
  content: "\f232";
}
.mgz-fa-whatsapp-square:before {
  content: "\f40c";
}
.mgz-fa-wheelchair:before {
  content: "\f193";
}
.mgz-fa-whmcs:before {
  content: "\f40d";
}
.mgz-fa-wifi:before {
  content: "\f1eb";
}
.mgz-fa-wikipedia-w:before {
  content: "\f266";
}
.mgz-fa-wind:before {
  content: "\f72e";
}
.mgz-fa-window-close:before {
  content: "\f410";
}
.mgz-fa-window-maximize:before {
  content: "\f2d0";
}
.mgz-fa-window-minimize:before {
  content: "\f2d1";
}
.mgz-fa-window-restore:before {
  content: "\f2d2";
}
.mgz-fa-windows:before {
  content: "\f17a";
}
.mgz-fa-wine-bottle:before {
  content: "\f72f";
}
.mgz-fa-wine-glass:before {
  content: "\f4e3";
}
.mgz-fa-wine-glass-alt:before {
  content: "\f5ce";
}
.mgz-fa-wix:before {
  content: "\f5cf";
}
.mgz-fa-wizards-of-the-coast:before {
  content: "\f730";
}
.mgz-fa-wolf-pack-battalion:before {
  content: "\f514";
}
.mgz-fa-won-sign:before {
  content: "\f159";
}
.mgz-fa-wordpress:before {
  content: "\f19a";
}
.mgz-fa-wordpress-simple:before {
  content: "\f411";
}
.mgz-fa-wpbeginner:before {
  content: "\f297";
}
.mgz-fa-wpexplorer:before {
  content: "\f2de";
}
.mgz-fa-wpforms:before {
  content: "\f298";
}
.mgz-fa-wpressr:before {
  content: "\f3e4";
}
.mgz-fa-wrench:before {
  content: "\f0ad";
}
.mgz-fa-x-ray:before {
  content: "\f497";
}
.mgz-fa-xbox:before {
  content: "\f412";
}
.mgz-fa-xing:before {
  content: "\f168";
}
.mgz-fa-xing-square:before {
  content: "\f169";
}
.mgz-fa-y-combinator:before {
  content: "\f23b";
}
.mgz-fa-yahoo:before {
  content: "\f19e";
}
.mgz-fa-yammer:before {
  content: "\f840";
}
.mgz-fa-yandex:before {
  content: "\f413";
}
.mgz-fa-yandex-international:before {
  content: "\f414";
}
.mgz-fa-yarn:before {
  content: "\f7e3";
}
.mgz-fa-yelp:before {
  content: "\f1e9";
}
.mgz-fa-yen-sign:before {
  content: "\f157";
}
.mgz-fa-yin-yang:before {
  content: "\f6ad";
}
.mgz-fa-yoast:before {
  content: "\f2b1";
}
.mgz-fa-youtube:before {
  content: "\f167";
}
.mgz-fa-youtube-square:before {
  content: "\f431";
}
.mgz-fa-zhihu:before {
  content: "\f63f";
}
.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-solid-900.svg#fontawesome') format('svg');
}
.fas {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: 'Font Awesome 5 Free';
  font-style: normal;
  font-weight: 400;
  font-display: auto;
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-regular-400.svg#fontawesome') format('svg');
}
.far {
  font-family: 'Font Awesome 5 Free';
  font-weight: 400;
}
/*!
 * Font Awesome Free 5.8.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: 'Font Awesome 5 Brands';
  font-style: normal;
  font-weight: normal;
  font-display: auto;
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.eot');
  src: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.eot?#iefix') format('embedded-opentype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.woff2') format('woff2'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.woff') format('woff'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.ttf') format('truetype'), url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/webfonts/fa-brands-400.svg#fontawesome') format('svg');
}
.fab {
  font-family: 'Font Awesome 5 Brands';
}
@font-face {
  font-family: 'Magezon-Icons';
  src:  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.eot?lbpphw');
  src:  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/css/fonts/mgz_icons.eot?lbpphw#iefix') format('embedded-opentype'),
  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.ttf?lbpphw') format('truetype'),
  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.woff?lbpphw') format('woff'),
  url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Core/fonts/mgz_icons.svg?lbpphw#mgz_icons') format('svg');
  font-weight: normal;
  font-style: normal;
}

.mgz-icon {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  display: inline-block;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.mgz-icon:before {
    font-family: inherit;
}

.mgz-icon-search:before {
  content: "\e8b6";
}
.mgz-icon-close:before {
  content: "\e62f";
}
.mgz-icon-add:before {
  content: "\e90d";
}
.mgz-icon-fullscreen:before {
  content: "\e915";
}
.mgz-icon-dragndrop:before {
  content: "\e913";
}
.mgz-icon-edit:before {
  content: "\e91d";
}
.mgz-icon-delete:before {
  content: "\e912";
}
.mgz-icon-clone:before {
  content: "\e911";
}
.mgz-icon-arrow_drop_right:before {
  content: "\e916";
}
.mgz-icon-arrow_drop_down:before {
  content: "\e5c5";
}
.mgz-icon-arrow_drop_up:before {
  content: "\e5c7";
}
.mgz-icon-1-1:before {
  content: "\e900";
}
.mgz-icon-1-2_1-2:before {
  content: "\e901";
}
.mgz-icon-1-3_1-3_1-3:before {
  content: "\e902";
}
.mgz-icon-1-4_1-2_1-4:before {
  content: "\e904";
}
.mgz-icon-1-4_1-4_1-4_1-4:before {
  content: "\e905";
}
.mgz-icon-1-4_3-4:before {
  content: "\e906";
}
.mgz-icon-1-6_1-6_1-6_1-2:before {
  content: "\e907";
}
.mgz-icon-1-6_1-6_1-6_1-6_1-6_1-6:before {
  content: "\e908";
}
.mgz-icon-l_15_15_15_15_15:before {
  content: "\e909";
}
.mgz-icon-1-6_2-3_1-6:before {
  content: "\e90a";
}
.mgz-icon-2-3_1-3:before {
  content: "\e90b";
}
.mgz-icon-5-6_1-6:before {
  content: "\e90c";
}
.mgz-icon-1-6_4-6_1-6:before {
  content: "\e90e";
}
.mgz-icon-row:before {
  content: "\e91e";
}
.mgz-icon-fullscreen:before {
  content: "\e915";
}
.mgz-icon-fullscreen_exit:before {
  content: "\e914";
}
.mgz-icon-check-mage:before {
  content: "\e62d";
}
.mgz-icon-plus:before {
  content: "\e61c";
}
.mgz-icon-minus:before {
  content: "\e60f";
}
.mgz-icon-remove:before {
  content: "\e604";
}
.mgz-icon-up:before {
  content: "\e621";
}
.mgz-icon-down:before {
  content: "\e622";
}
.mgz-icon-product:before {
  content: "\e608";
}
.mgz-icon-tabs:before {
  content: "\e879";
}
.mgz-icon-divider:before {
  content: "\e822";
  font-weight: bold;
}
.mgz-icon-spacer:before {
  content: "\e877";
  font-weight: bold;
}
.mgz-settings-icon:before{
  content: "\e910";
}
.mgz-icon-play:before {
  content: "\e939";
}
.mgz-icon-cms:before {
  content: "\e602";
}
.mgz-icon-testimonial:before {
  content: "\e920";
}
.mgz-icon-social-icons:before {
  content: "\e876";
}
.mgz-icon-pricing-table:before {
  content: "\e859";
}
.mgz-icon-accordion:before {
  content: "\e806";
}
.mgz-icon-number-counter:before {
  content: "\e921";
}
.mgz-icon-favorite:before {
  content: "\e895";
}
.mgz-icon-toggle:before {
  content: "\e887";
}
.mgz-icon-slideshow:before {
  content: "\e875";
}
.mgz-icon-icon-list:before {
  content: "\e893";
}
.mgz-icon-flip-box:before {
  content: "\e903";
}
.mgz-icon-code:before {
  content: "\e894";
}
.mgz-icon-countdown:before {
  content: "\e818";
}
.mgz-icon-magezon-pagebuilder:before {
  content: "\e922";
}
.mgz-icon-checkbox:before {
  content: "\e816";
}
.mgz-icon-number-field:before {
  content: "\e846";
}
.mgz-icon-menu-toggle:before {
  content: "\e943";
}
.mgz-icon-button:before {
  content: "\e812";
}
.mgz-icon-text-field:before {
  content: "\e882";
}
.mgz-icon-delete2:before {
  content: "\e630";
}
.mgz-icon-check:before {
  content: "\e5ca";
}
.mgz-icon-tablet-landscape:before {
  content: "\1f4bb";
}
.mgz-icon-mobile-portrait:before {
  content: "\1f4f1";
}
.mgz-icon-mobile-landscape:before {
  content: "\1f4f2";
}
.mgz-icon-desktop:before {
  content: "\1f4fa";
}
.mgz-icon-tablet-portrait:before {
  content: "\1f5b3";
}
.mgz-icon-arrow_downward:before {
  content: "\e5dc";
}
.mgz-icon-stores:before {
  content: "\e60e";
}
.mgz-icon-sales:before {
  content: "\e60b";
}
.mgz-icon-layers:before {
  content: "\1f5d7";
}
.mgz-icon-column:before {
  content: "\23f8";
}
.mgz-icon-minimize:before {
  content: "\e91c";
}[class*='mgz-col-'] {
  width: 100%;
  float: left;
}
.mgz-col-xs-1, .mgz-col-sm-1, .mgz-col-md-1, .mgz-col-lg-1, .mgz-col-xs-2, .mgz-col-sm-2, .mgz-col-md-2, .mgz-col-lg-2, .mgz-col-xs-3, .mgz-col-sm-3, .mgz-col-md-3, .mgz-col-lg-3, .mgz-col-xs-4, .mgz-col-sm-4, .mgz-col-md-4, .mgz-col-lg-4, .mgz-col-xs-5, .mgz-col-sm-5, .mgz-col-md-5, .mgz-col-lg-5, .mgz-col-xs-6, .mgz-col-sm-6, .mgz-col-md-6, .mgz-col-lg-6, .mgz-col-xs-7, .mgz-col-sm-7, .mgz-col-md-7, .mgz-col-lg-7, .mgz-col-xs-8, .mgz-col-sm-8, .mgz-col-md-8, .mgz-col-lg-8, .mgz-col-xs-9, .mgz-col-sm-9, .mgz-col-md-9, .mgz-col-lg-9, .mgz-col-xs-10, .mgz-col-sm-10, .mgz-col-md-10, .mgz-col-lg-10, .mgz-col-xs-11, .mgz-col-sm-11, .mgz-col-md-11, .mgz-col-lg-11, .mgz-col-xs-12, .mgz-col-sm-12, .mgz-col-md-12, .mgz-col-lg-12, .mgz-col-xs-15, .mgz-col-sm-15, .mgz-col-md-15, .mgz-col-lg-15, .mgz-col-xs-25, .mgz-col-sm-25, .mgz-col-md-25, .mgz-col-lg-25, .mgz-col-xs-35, .mgz-col-sm-35, .mgz-col-md-35, .mgz-col-lg-35, .mgz-col-xs-45, .mgz-col-sm-45, .mgz-col-md-45, .mgz-col-lg-45 {
  position: relative;
  min-height: 1px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.mgz-col-xs-1, .mgz-col-xs-2, .mgz-col-xs-3, .mgz-col-xs-4, .mgz-col-xs-5, .mgz-col-xs-6, .mgz-col-xs-7, .mgz-col-xs-8, .mgz-col-xs-9, .mgz-col-xs-10, .mgz-col-xs-11, .mgz-col-xs-12, .mgz-col-xs-15, .mgz-col-xs-25, .mgz-col-xs-35, .mgz-col-xs-45 {
  float: left;
}
.mgz-col-xs-12 {
  width: 100%;
}
.mgz-col-xs-11 {
  width: 91.66666667%;
}
.mgz-col-xs-10 {
  width: 83.33333333%;
}
.mgz-col-xs-9 {
  width: 75%;
}
.mgz-col-xs-8 {
  width: 66.66666667%;
}
.mgz-col-xs-7 {
  width: 58.33333333%;
}
.mgz-col-xs-6 {
  width: 50%;
}
.mgz-col-xs-5 {
  width: 41.66666667%;
}
.mgz-col-xs-4 {
  width: 33.33333333%;
}
.mgz-col-xs-3 {
  width: 25%;
}
.mgz-col-xs-15 {
  width: 20%;
}
.mgz-col-xs-25 {
  width: 40%;
}
.mgz-col-xs-35 {
  width: 60%;
}
.mgz-col-xs-45 {
  width: 80%;
}
.mgz-col-xs-2 {
  width: 16.66666667%;
}
.mgz-col-xs-1 {
  width: 8.33333333%;
}
.mgz-col-xs-pull-12 {
  right: 100%;
}
.mgz-col-xs-pull-11 {
  right: 91.66666667%;
}
.mgz-col-xs-pull-10 {
  right: 83.33333333%;
}
.mgz-col-xs-pull-9 {
  right: 75%;
}
.mgz-col-xs-pull-8 {
  right: 66.66666667%;
}
.mgz-col-xs-pull-7 {
  right: 58.33333333%;
}
.mgz-col-xs-pull-6 {
  right: 50%;
}
.mgz-col-xs-pull-5 {
  right: 41.66666667%;
}
.mgz-col-xs-pull-4 {
  right: 33.33333333%;
}
.mgz-col-xs-pull-3 {
  right: 25%;
}
.mgz-col-xs-pull-15 {
  right: 20%;
}
.mgz-col-xs-pull-25 {
  right: 40%;
}
.mgz-col-xs-pull-35 {
  right: 60%;
}
.mgz-col-xs-pull-45 {
  right: 80%;
}
.mgz-col-xs-pull-2 {
  right: 16.66666667%;
}
.mgz-col-xs-pull-1 {
  right: 8.33333333%;
}
.mgz-col-xs-pull-0 {
  right: auto;
}
.mgz-col-xs-push-12 {
  left: 100%;
}
.mgz-col-xs-push-11 {
  left: 91.66666667%;
}
.mgz-col-xs-push-10 {
  left: 83.33333333%;
}
.mgz-col-xs-push-9 {
  left: 75%;
}
.mgz-col-xs-push-8 {
  left: 66.66666667%;
}
.mgz-col-xs-push-7 {
  left: 58.33333333%;
}
.mgz-col-xs-push-6 {
  left: 50%;
}
.mgz-col-xs-push-5 {
  left: 41.66666667%;
}
.mgz-col-xs-push-4 {
  left: 33.33333333%;
}
.mgz-col-xs-push-3 {
  left: 25%;
}
.mgz-col-xs-push-15 {
  left: 20%;
}
.mgz-col-xs-push-25 {
  left: 40%;
}
.mgz-col-xs-push-35 {
  left: 60%;
}
.mgz-col-xs-push-45 {
  left: 80%;
}
.mgz-col-xs-push-2 {
  left: 16.66666667%;
}
.mgz-col-xs-push-1 {
  left: 8.33333333%;
}
.mgz-col-xs-push-0 {
  left: auto;
}
.mgz-col-xs-offset-12 {
  margin-left: 100%;
}
.mgz-col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.mgz-col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.mgz-col-xs-offset-9 {
  margin-left: 75%;
}
.mgz-col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.mgz-col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.mgz-col-xs-offset-6 {
  margin-left: 50%;
}
.mgz-col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.mgz-col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.mgz-col-xs-offset-3 {
  margin-left: 25%;
}
.mgz-col-xs-offset-15 {
  margin-left: 20%;
}
.mgz-col-xs-offset-25 {
  margin-left: 40%;
}
.mgz-col-xs-offset-35 {
  margin-left: 60%;
}
.mgz-col-xs-offset-45 {
  margin-left: 80%;
}
.mgz-col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.mgz-col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.mgz-col-xs-offset-0 {
  margin-left: 0%;
}

.mgz-container {
  width: 1280px;
  max-width: 100%;
  margin: 0 auto;
}

.mgz-row:before,
.mgz-row:after {
  content: " ";
  display: table;
}
.mgz-row:after {
  clear: both;
}

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

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

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

.mgz-text-justify {
  text-align: justify
}

.f-right {
  float: right;
  width: auto;
}

.f-left {
  float: left;
  width: auto;
}

.f-none {
  float: none;
  width: auto;
}
@media (min-width: 576px) {
  .mgz-col-sm-1, .mgz-col-sm-2, .mgz-col-sm-3, .mgz-col-sm-4, .mgz-col-sm-5, .mgz-col-sm-6, .mgz-col-sm-7, .mgz-col-sm-8, .mgz-col-sm-9, .mgz-col-sm-10, .mgz-col-sm-11, .mgz-col-sm-12, .mgz-col-sm-15, .mgz-col-sm-25, .mgz-col-sm-35, .mgz-col-sm-45 {
    float: left;
  }
  .mgz-col-sm-12 {
    width: 100%;
  }
  .mgz-col-sm-11 {
    width: 91.66666667%;
  }
  .mgz-col-sm-10 {
    width: 83.33333333%;
  }
  .mgz-col-sm-9 {
    width: 75%;
  }
  .mgz-col-sm-8 {
    width: 66.66666667%;
  }
  .mgz-col-sm-7 {
    width: 58.33333333%;
  }
  .mgz-col-sm-6 {
    width: 50%;
  }
  .mgz-col-sm-5 {
    width: 41.66666667%;
  }
  .mgz-col-sm-4 {
    width: 33.33333333%;
  }
  .mgz-col-sm-3 {
    width: 25%;
  }
  .mgz-col-sm-15 {
    width: 20%;
  }
  .mgz-col-sm-25 {
    width: 40%;
  }
  .mgz-col-sm-35 {
    width: 60%;
  }
  .mgz-col-sm-45 {
    width: 80%;
  }
  .mgz-col-sm-2 {
    width: 16.66666667%;
  }
  .mgz-col-sm-1 {
    width: 8.33333333%;
  }
  .mgz-col-sm-pull-12 {
    right: 100%;
  }
  .mgz-col-sm-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-sm-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-sm-pull-9 {
    right: 75%;
  }
  .mgz-col-sm-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-sm-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-sm-pull-6 {
    right: 50%;
  }
  .mgz-col-sm-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-sm-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-sm-pull-3 {
    right: 25%;
  }
  .mgz-col-sm-pull-15 {
    right: 20%;
  }
  .mgz-col-sm-pull-25 {
    right: 40%;
  }
  .mgz-col-sm-pull-35 {
    right: 60%;
  }
  .mgz-col-sm-pull-45 {
    right: 80%;
  }
  .mgz-col-sm-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-sm-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-sm-pull-0 {
    right: auto;
  }
  .mgz-col-sm-push-12 {
    left: 100%;
  }
  .mgz-col-sm-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-sm-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-sm-push-9 {
    left: 75%;
  }
  .mgz-col-sm-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-sm-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-sm-push-6 {
    left: 50%;
  }
  .mgz-col-sm-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-sm-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-sm-push-3 {
    left: 25%;
  }
  .mgz-col-sm-push-15 {
    left: 20%;
  }
  .mgz-col-sm-push-25 {
    left: 40%;
  }
  .mgz-col-sm-push-35 {
    left: 60%;
  }
  .mgz-col-sm-push-45 {
    left: 80%;
  }
  .mgz-col-sm-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-sm-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-sm-push-0 {
    left: auto;
  }
  .mgz-col-sm-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-sm-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-sm-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-sm-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-sm-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-sm-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-sm-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-sm-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 768px) {
  .mgz-col-md-1, .mgz-col-md-2, .mgz-col-md-3, .mgz-col-md-4, .mgz-col-md-5, .mgz-col-md-6, .mgz-col-md-7, .mgz-col-md-8, .mgz-col-md-9, .mgz-col-md-10, .mgz-col-md-11, .mgz-col-md-12, .mgz-col-md-15, .mgz-col-md-25, .mgz-col-md-35, .mgz-col-md-45 {
    float: left;
  }
  .mgz-col-md-12 {
    width: 100%;
  }
  .mgz-col-md-11 {
    width: 91.66666667%;
  }
  .mgz-col-md-10 {
    width: 83.33333333%;
  }
  .mgz-col-md-9 {
    width: 75%;
  }
  .mgz-col-md-8 {
    width: 66.66666667%;
  }
  .mgz-col-md-7 {
    width: 58.33333333%;
  }
  .mgz-col-md-6 {
    width: 50%;
  }
  .mgz-col-md-5 {
    width: 41.66666667%;
  }
  .mgz-col-md-4 {
    width: 33.33333333%;
  }
  .mgz-col-md-3 {
    width: 25%;
  }
  .mgz-col-md-15 {
    width: 20%;
  }
  .mgz-col-md-25 {
    width: 40%;
  }
  .mgz-col-md-35 {
    width: 60%;
  }
  .mgz-col-md-45 {
    width: 80%;
  }
  .mgz-col-md-2 {
    width: 16.66666667%;
  }
  .mgz-col-md-1 {
    width: 8.33333333%;
  }
  .mgz-col-md-pull-12 {
    right: 100%;
  }
  .mgz-col-md-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-md-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-md-pull-9 {
    right: 75%;
  }
  .mgz-col-md-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-md-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-md-pull-6 {
    right: 50%;
  }
  .mgz-col-md-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-md-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-md-pull-3 {
    right: 25%;
  }
  .mgz-col-md-pull-15 {
    right: 20%;
  }
  .mgz-col-md-pull-25 {
    right: 40%;
  }
  .mgz-col-md-pull-35 {
    right: 60%;
  }
  .mgz-col-md-pull-45 {
    right: 80%;
  }
  .mgz-col-md-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-md-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-md-pull-0 {
    right: auto;
  }
  .mgz-col-md-push-12 {
    left: 100%;
  }
  .mgz-col-md-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-md-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-md-push-9 {
    left: 75%;
  }
  .mgz-col-md-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-md-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-md-push-6 {
    left: 50%;
  }
  .mgz-col-md-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-md-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-md-push-3 {
    left: 25%;
  }
  .mgz-col-md-push-15 {
    left: 20%;
  }
  .mgz-col-md-push-25 {
    left: 40%;
  }
  .mgz-col-md-push-35 {
    left: 60%;
  }
  .mgz-col-md-push-45 {
    left: 80%;
  }
  .mgz-col-md-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-md-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-md-push-0 {
    left: auto;
  }
  .mgz-col-md-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-md-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-md-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-md-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-md-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-md-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-md-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-md-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .mgz-col-lg-1, .mgz-col-lg-2, .mgz-col-lg-3, .mgz-col-lg-4, .mgz-col-lg-5, .mgz-col-lg-6, .mgz-col-lg-7, .mgz-col-lg-8, .mgz-col-lg-9, .mgz-col-lg-10, .mgz-col-lg-11, .mgz-col-lg-12, .mgz-col-lg-15, .mgz-col-lg-25, .mgz-col-lg-35, .mgz-col-lg-45 {
    float: left;
  }
  .mgz-col-lg-12 {
    width: 100%;
  }
  .mgz-col-lg-11 {
    width: 91.66666667%;
  }
  .mgz-col-lg-10 {
    width: 83.33333333%;
  }
  .mgz-col-lg-9 {
    width: 75%;
  }
  .mgz-col-lg-8 {
    width: 66.66666667%;
  }
  .mgz-col-lg-7 {
    width: 58.33333333%;
  }
  .mgz-col-lg-6 {
    width: 50%;
  }
  .mgz-col-lg-5 {
    width: 41.66666667%;
  }
  .mgz-col-lg-4 {
    width: 33.33333333%;
  }
  .mgz-col-lg-3 {
    width: 25%;
  }
  .mgz-col-lg-15 {
    width: 20%;
  }
  .mgz-col-lg-25 {
    width: 40%;
  }
  .mgz-col-lg-35 {
    width: 60%;
  }
  .mgz-col-lg-45 {
    width: 80%;
  }
  .mgz-col-lg-2 {
    width: 16.66666667%;
  }
  .mgz-col-lg-1 {
    width: 8.33333333%;
  }
  .mgz-col-lg-pull-12 {
    right: 100%;
  }
  .mgz-col-lg-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-lg-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-lg-pull-9 {
    right: 75%;
  }
  .mgz-col-lg-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-lg-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-lg-pull-6 {
    right: 50%;
  }
  .mgz-col-lg-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-lg-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-lg-pull-3 {
    right: 25%;
  }
  .mgz-col-lg-pull-15 {
    right: 20%;
  }
  .mgz-col-lg-pull-25 {
    right: 40%;
  }
  .mgz-col-lg-pull-35 {
    right: 60%;
  }
  .mgz-col-lg-pull-45 {
    right: 80%;
  }
  .mgz-col-lg-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-lg-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-lg-pull-0 {
    right: auto;
  }
  .mgz-col-lg-push-12 {
    left: 100%;
  }
  .mgz-col-lg-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-lg-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-lg-push-9 {
    left: 75%;
  }
  .mgz-col-lg-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-lg-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-lg-push-6 {
    left: 50%;
  }
  .mgz-col-lg-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-lg-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-lg-push-3 {
    left: 25%;
  }
  .mgz-col-lg-push-15 {
    left: 20%;
  }
  .mgz-col-lg-push-25 {
    left: 40%;
  }
  .mgz-col-lg-push-35 {
    left: 60%;
  }
  .mgz-col-lg-push-45 {
    left: 80%;
  }
  .mgz-col-lg-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-lg-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-lg-push-0 {
    left: auto;
  }
  .mgz-col-lg-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-lg-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-lg-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-lg-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-lg-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-lg-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-lg-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-lg-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-lg-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .mgz-col-xl-1, .mgz-col-xl-2, .mgz-col-xl-3, .mgz-col-xl-4, .mgz-col-xl-5, .mgz-col-xl-6, .mgz-col-xl-7, .mgz-col-xl-8, .mgz-col-xl-9, .mgz-col-xl-10, .mgz-col-xl-11, .mgz-col-xl-12, .mgz-col-xl-15, .mgz-col-xl-25, .mgz-col-xl-35, .mgz-col-xl-45 {
    float: left;
  }
  .mgz-col-xl-12 {
    width: 100%;
  }
  .mgz-col-xl-11 {
    width: 91.66666667%;
  }
  .mgz-col-xl-10 {
    width: 83.33333333%;
  }
  .mgz-col-xl-9 {
    width: 75%;
  }
  .mgz-col-xl-8 {
    width: 66.66666667%;
  }
  .mgz-col-xl-7 {
    width: 58.33333333%;
  }
  .mgz-col-xl-6 {
    width: 50%;
  }
  .mgz-col-xl-5 {
    width: 41.66666667%;
  }
  .mgz-col-xl-4 {
    width: 33.33333333%;
  }
  .mgz-col-xl-3 {
    width: 25%;
  }
  .mgz-col-xl-15 {
    width: 20%;
  }
  .mgz-col-xl-25 {
    width: 40%;
  }
  .mgz-col-xl-35 {
    width: 60%;
  }
  .mgz-col-xl-45 {
    width: 80%;
  }
  .mgz-col-xl-2 {
    width: 16.66666667%;
  }
  .mgz-col-xl-1 {
    width: 8.33333333%;
  }
  .mgz-col-xl-pull-12 {
    right: 100%;
  }
  .mgz-col-xl-pull-11 {
    right: 91.66666667%;
  }
  .mgz-col-xl-pull-10 {
    right: 83.33333333%;
  }
  .mgz-col-xl-pull-9 {
    right: 75%;
  }
  .mgz-col-xl-pull-8 {
    right: 66.66666667%;
  }
  .mgz-col-xl-pull-7 {
    right: 58.33333333%;
  }
  .mgz-col-xl-pull-6 {
    right: 50%;
  }
  .mgz-col-xl-pull-5 {
    right: 41.66666667%;
  }
  .mgz-col-xl-pull-4 {
    right: 33.33333333%;
  }
  .mgz-col-xl-pull-3 {
    right: 25%;
  }
  .mgz-col-xl-pull-15 {
    right: 20%;
  }
  .mgz-col-xl-pull-25 {
    right: 40%;
  }
  .mgz-col-xl-pull-35 {
    right: 60%;
  }
  .mgz-col-xl-pull-45 {
    right: 80%;
  }
  .mgz-col-xl-pull-2 {
    right: 16.66666667%;
  }
  .mgz-col-xl-pull-1 {
    right: 8.33333333%;
  }
  .mgz-col-xl-pull-0 {
    right: auto;
  }
  .mgz-col-xl-push-12 {
    left: 100%;
  }
  .mgz-col-xl-push-11 {
    left: 91.66666667%;
  }
  .mgz-col-xl-push-10 {
    left: 83.33333333%;
  }
  .mgz-col-xl-push-9 {
    left: 75%;
  }
  .mgz-col-xl-push-8 {
    left: 66.66666667%;
  }
  .mgz-col-xl-push-7 {
    left: 58.33333333%;
  }
  .mgz-col-xl-push-6 {
    left: 50%;
  }
  .mgz-col-xl-push-5 {
    left: 41.66666667%;
  }
  .mgz-col-xl-push-4 {
    left: 33.33333333%;
  }
  .mgz-col-xl-push-3 {
    left: 25%;
  }
  .mgz-col-xl-push-15 {
    left: 20%;
  }
  .mgz-col-xl-push-25 {
    left: 40%;
  }
  .mgz-col-xl-push-35 {
    left: 60%;
  }
  .mgz-col-xl-push-45 {
    left: 80%;
  }
  .mgz-col-xl-push-2 {
    left: 16.66666667%;
  }
  .mgz-col-xl-push-1 {
    left: 8.33333333%;
  }
  .mgz-col-xl-push-0 {
    left: auto;
  }
  .mgz-col-xl-offset-12 {
    margin-left: 100%;
  }
  .mgz-col-xl-offset-11 {
    margin-left: 91.66666667%;
  }
  .mgz-col-xl-offset-10 {
    margin-left: 83.33333333%;
  }
  .mgz-col-xl-offset-9 {
    margin-left: 75%;
  }
  .mgz-col-xl-offset-8 {
    margin-left: 66.66666667%;
  }
  .mgz-col-xl-offset-7 {
    margin-left: 58.33333333%;
  }
  .mgz-col-xl-offset-6 {
    margin-left: 50%;
  }
  .mgz-col-xl-offset-5 {
    margin-left: 41.66666667%;
  }
  .mgz-col-xl-offset-4 {
    margin-left: 33.33333333%;
  }
  .mgz-col-xl-offset-3 {
    margin-left: 25%;
  }
  .mgz-col-xl-offset-15 {
    margin-left: 20%;
  }
  .mgz-col-xl-offset-25 {
    margin-left: 40%;
  }
  .mgz-col-xl-offset-35 {
    margin-left: 60%;
  }
  .mgz-col-xl-offset-45 {
    margin-left: 80%;
  }
  .mgz-col-xl-offset-2 {
    margin-left: 16.66666667%;
  }
  .mgz-col-xl-offset-1 {
    margin-left: 8.33333333%;
  }
  .mgz-col-xl-offset-0 {
    margin-left: 0%;
  }
}
@media (max-width: 575px) {
  .mgz-grid-col-xs-6 > div:nth-child(6n+1),
  .mgz-grid-col-xs-3 > div:nth-child(3n+1),
  .mgz-grid-col-xs-4 > div:nth-child(4n+1),
  .mgz-grid-col-xs-15 > div:nth-child(5n+1),
  .mgz-grid-col-xs-2 > div:nth-child(2n+1) {
    clear: left;
  }
  .mgz-grid-col-xs-6> div,
  .mgz-grid-col-xs-3 > div,
  .mgz-grid-col-xs-4 > div,
  .mgz-grid-col-xs-15 > div,
  .mgz-grid-col-xs-2 > div {
    float: left;
  }
  .mgz-grid-col-xs-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-xs-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-xs-4 > div {
    width: 25%;
  }
  .mgz-grid-col-xs-15 > div {
    width: 20%;
  }
  .mgz-grid-col-xs-2 > div {
    width: 50%;
  }
  .mgz-hidden-xs {
    display: none !important;
  }
  .xs_left {
    text-align: left;
  }
  .xs_center {
    text-align: center;
  }
  .xs_right {
    text-align: right;
  }
  .xs_f-right {
    float: right;
  }
  .xs_f-left {
    float: left;
  }
  .xs_f-none {
    float: none;
  }
}
@media (min-width: 576px) and (max-width: 767px) {
  .mgz-grid-col-xs-12 > div:nth-child(12n+1),
  .mgz-grid-col-xs-6 > div:nth-child(6n+1),
  .mgz-grid-col-xs-5 > div:nth-child(5n+1),
  .mgz-grid-col-xs-4 > div:nth-child(4n+1),
  .mgz-grid-col-xs-3 > div:nth-child(3n+1),
  .mgz-grid-col-xs-2 > div:nth-child(2n+1),
  .mgz-grid-col-xs-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-xs-12 > div,
  .mgz-grid-col-xs-6 > div,
  .mgz-grid-col-xs-5 > div,
  .mgz-grid-col-xs-4 > div,
  .mgz-grid-col-xs-3 > div,
  .mgz-grid-col-xs-2 > div,
  .mgz-grid-col-xs-1 > div {
    float: left;
  }
  .mgz-grid-col-xs-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-xs-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-xs-5 > div {
    width: 20%;
  }
  .mgz-grid-col-xs-4 > div {
    width: 25%;
  }
  .mgz-grid-col-xs-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-xs-2 > div {
    width: 50%;
  }
  .mgz-grid-col-xs-1 > div {
    width: 100%;
  }
  .mgz-hidden-sm {
    display: none !important;
  }
  .sm_left {
    text-align: left;
  }
  .sm_center {
    text-align: center;
  }
  .sm_right {
    text-align: right;
  }
  .sm_f-right {
    float: right;
  }
  .sm_f-left {
    float: left;
  }
  .sm_f-none {
    float: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .mgz-grid-col-md-12 > div:nth-child(12n+1),
  .mgz-grid-col-md-6 > div:nth-child(6n+1),
  .mgz-grid-col-md-5 > div:nth-child(5n+1),
  .mgz-grid-col-md-4 > div:nth-child(4n+1),
  .mgz-grid-col-md-3 > div:nth-child(3n+1),
  .mgz-grid-col-md-2 > div:nth-child(2n+1),
  .mgz-grid-col-md-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-md-12 > div,
  .mgz-grid-col-md-6 > div,
  .mgz-grid-col-md-5 > div,
  .mgz-grid-col-md-4 > div,
  .mgz-grid-col-md-3 > div,
  .mgz-grid-col-md-2 > div,
  .mgz-grid-col-md-1 > div {
    float: left;
  }
  .mgz-grid-col-md-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-md-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-md-5 > div {
    width: 20%;
  }
  .mgz-grid-col-md-4 > div {
    width: 25%;
  }
  .mgz-grid-col-md-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-md-2 > div {
    width: 50%;
  }
  .mgz-grid-col-md-1 > div {
    width: 100%;
  }
  .mgz-hidden-md {
    display: none !important;
  }
  .md_left {
    text-align: left;
  }
  .md_center {
    text-align: center;
  }
  .md_right {
    text-align: right;
  }
  .md_f-right {
    float: right;
  }
  .md_f-left {
    float: left;
  }
  .md_f-none {
    float: none;
  }
}
@media (min-width: 992px) and (max-width: 1200px) {
  .mgz-grid-col-lg-12 > div:nth-child(12n+1),
  .mgz-grid-col-lg-6 > div:nth-child(6n+1),
  .mgz-grid-col-lg-5 > div:nth-child(5n+1),
  .mgz-grid-col-lg-4 > div:nth-child(4n+1),
  .mgz-grid-col-lg-3 > div:nth-child(3n+1),
  .mgz-grid-col-lg-2 > div:nth-child(2n+1),
  .mgz-grid-col-lg-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-lg-12 > div,
  .mgz-grid-col-lg-6 > div,
  .mgz-grid-col-lg-5 > div,
  .mgz-grid-col-lg-4 > div,
  .mgz-grid-col-lg-3 > div,
  .mgz-grid-col-lg-2 > div,
  .mgz-grid-col-lg-1 > div {
    float: left;
  }
  .mgz-grid-col-lg-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-lg-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-lg-5 > div {
    width: 20%;
  }
  .mgz-grid-col-lg-4 > div {
    width: 25%;
  }
  .mgz-grid-col-lg-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-lg-2 > div {
    width: 50%;
  }
  .mgz-grid-col-lg-1 > div {
    width: 100%;
  }
  .mgz-hidden-lg {
    display: none !important;
  }
  .lg_left {
    text-align: left;
  }
  .lg_center {
    text-align: center;
  }
  .lg_right {
    text-align: right;
  }
  .lg_f-right {
    float: right;
  }
  .lg_f-left {
    float: left;
  }
  .lg_f-none {
    float: none;
  }
}
@media (min-width: 1200px) {
  .mgz-grid-col-xl-12 > div:nth-child(12n+1),
  .mgz-grid-col-xl-6 > div:nth-child(6n+1),
  .mgz-grid-col-xl-5 > div:nth-child(5n+1),
  .mgz-grid-col-xl-4 > div:nth-child(4n+1),
  .mgz-grid-col-xl-3 > div:nth-child(3n+1),
  .mgz-grid-col-xl-2 > div:nth-child(2n+1),
  .mgz-grid-col-xl-1 > div:nth-child(1n+1) {
    clear: left;
  }
  .mgz-grid-col-xl-12 > div,
  .mgz-grid-col-xl-6 > div,
  .mgz-grid-col-xl-5 > div,
  .mgz-grid-col-xl-4 > div,
  .mgz-grid-col-xl-3 > div,
  .mgz-grid-col-xl-2 > div,
  .mgz-grid-col-xl-1 > div {
    float: left;
  }
  .mgz-grid-col-xl-12 > div {
    width: 8.33333333%;
  }
  .mgz-grid-col-xl-6 > div {
    width: 16.66666667%;
  }
  .mgz-grid-col-xl-5 > div {
    width: 20%;
  }
  .mgz-grid-col-xl-4 > div {
    width: 25%;
  }
  .mgz-grid-col-xl-3 > div {
    width: 33.33333333%;
  }
  .mgz-grid-col-xl-2 > div {
    width: 50%;
  }
  .mgz-grid-col-xl-1 > div {
    width: 100%;
  }
  .mgz-hidden-xl {
    display: none !important;
  }
  .xl_left {
    text-align: left;
  }
  .xl_center {
    text-align: center;
  }
  .xl_right {
    text-align: right;
  }
  .xl_f-right {
    float: right;
  }
  .xl_f-left {
    float: left;
  }
  .xl_f-none {
    float: none;
  }
}
.mgz-pull-right {
  float: right !important;
}
.mgz-pull-left {
  float: left !important;
}@font-face{font-family:mgz_openiconic;src:url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.eot?54101537);src:url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.eot?54101537#iefix) format('embedded-opentype'),url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.woff?54101537) format('woff'),url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.ttf?54101537) format('truetype'),url(../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/fonts/mgz_openiconic.svg?54101537#mgz_openiconic) format('svg');font-weight:400;font-style:normal}[class*=" mgz-oi-"]:before,[class^=mgz-oi-]:before{font-family:mgz_openiconic;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:0;text-align:center;font-variant:normal;text-transform:none;line-height:inherit;margin-left:0}.mgz-oi-dial:before{content:'\e800'}.mgz-oi-pilcrow:before{content:'\e801'}.mgz-oi-at:before{content:'\e802'}.mgz-oi-hash:before{content:'\e803'}.mgz-oi-key-inv:before{content:'\e804'}.mgz-oi-key:before{content:'\e805'}.mgz-oi-chart-pie-alt:before{content:'\e806'}.mgz-oi-chart-pie:before{content:'\e807'}.mgz-oi-chart-bar:before{content:'\e808'}.mgz-oi-umbrella:before{content:'\e809'}.mgz-oi-moon-inv:before{content:'\e80a'}.mgz-oi-mobile:before{content:'\e80b'}.mgz-oi-cd:before{content:'\e80c'}.mgz-oi-split:before{content:'\e80d'}.mgz-oi-exchange:before{content:'\e80e'}.mgz-oi-block:before{content:'\e80f'}.mgz-oi-resize-full:before{content:'\e810'}.mgz-oi-article-alt:before{content:'\e811'}.mgz-oi-article:before{content:'\e812'}.mgz-oi-pencil-alt:before{content:'\e813'}.mgz-oi-undo:before{content:'\e814'}.mgz-oi-attach:before{content:'\e815'}.mgz-oi-link:before{content:'\e816'}.mgz-oi-search:before{content:'\e817'}.mgz-oi-mail:before{content:'\e818'}.mgz-oi-heart:before{content:'\e819'}.mgz-oi-comment:before{content:'\e81a'}.mgz-oi-resize-full-alt:before{content:'\e81b'}.mgz-oi-lock:before{content:'\e81c'}.mgz-oi-book-open:before{content:'\e81d'}.mgz-oi-arrow-curved:before{content:'\e81e'}.mgz-oi-equalizer:before{content:'\e81f'}.mgz-oi-heart-empty:before{content:'\e820'}.mgz-oi-lock-empty:before{content:'\e821'}.mgz-oi-comment-inv:before{content:'\e822'}.mgz-oi-folder:before{content:'\e823'}.mgz-oi-resize-small:before{content:'\e824'}.mgz-oi-play:before{content:'\e825'}.mgz-oi-cursor:before{content:'\e826'}.mgz-oi-aperture:before{content:'\e827'}.mgz-oi-play-circle2:before{content:'\e828'}.mgz-oi-resize-small-alt:before{content:'\e829'}.mgz-oi-folder-empty:before{content:'\e82a'}.mgz-oi-comment-alt:before{content:'\e82b'}.mgz-oi-lock-open:before{content:'\e82c'}.mgz-oi-star:before{content:'\e82d'}.mgz-oi-user:before{content:'\e82e'}.mgz-oi-lock-open-empty:before{content:'\e82f'}.mgz-oi-box:before{content:'\e830'}.mgz-oi-resize-vertical:before{content:'\e831'}.mgz-oi-stop:before{content:'\e832'}.mgz-oi-aperture-alt:before{content:'\e833'}.mgz-oi-book:before{content:'\e834'}.mgz-oi-steering-wheel:before{content:'\e835'}.mgz-oi-pause:before{content:'\e836'}.mgz-oi-to-start:before{content:'\e837'}.mgz-oi-move:before{content:'\e838'}.mgz-oi-resize-horizontal:before{content:'\e839'}.mgz-oi-rss-alt:before{content:'\e83a'}.mgz-oi-comment-alt2:before{content:'\e83b'}.mgz-oi-rss:before{content:'\e83c'}.mgz-oi-comment-inv-alt:before{content:'\e83d'}.mgz-oi-comment-inv-alt2:before{content:'\e83e'}.mgz-oi-eye:before{content:'\e83f'}.mgz-oi-pin:before{content:'\e840'}.mgz-oi-video:before{content:'\e841'}.mgz-oi-picture:before{content:'\e842'}.mgz-oi-camera:before{content:'\e843'}.mgz-oi-tag:before{content:'\e844'}.mgz-oi-chat:before{content:'\e845'}.mgz-oi-cog:before{content:'\e846'}.mgz-oi-popup:before{content:'\e847'}.mgz-oi-to-end:before{content:'\e848'}.mgz-oi-book-alt:before{content:'\e849'}.mgz-oi-brush:before{content:'\e84a'}.mgz-oi-eject:before{content:'\e84b'}.mgz-oi-down:before{content:'\e84c'}.mgz-oi-wrench:before{content:'\e84d'}.mgz-oi-chat-inv:before{content:'\e84e'}.mgz-oi-tag-empty:before{content:'\e84f'}.mgz-oi-ok:before{content:'\e850'}.mgz-oi-ok-circle:before{content:'\e851'}.mgz-oi-download:before{content:'\e852'}.mgz-oi-location:before{content:'\e853'}.mgz-oi-share:before{content:'\e854'}.mgz-oi-left:before{content:'\e855'}.mgz-oi-target:before{content:'\e856'}.mgz-oi-brush-alt:before{content:'\e857'}.mgz-oi-cancel:before{content:'\e858'}.mgz-oi-upload:before{content:'\e859'}.mgz-oi-location-inv:before{content:'\e85a'}.mgz-oi-calendar:before{content:'\e85b'}.mgz-oi-right:before{content:'\e85c'}.mgz-oi-signal:before{content:'\e85d'}.mgz-oi-eyedropper:before{content:'\e85e'}.mgz-oi-layers:before{content:'\e85f'}.mgz-oi-award:before{content:'\e860'}.mgz-oi-up:before{content:'\e861'}.mgz-oi-calendar-inv:before{content:'\e862'}.mgz-oi-location-alt:before{content:'\e863'}.mgz-oi-download-cloud:before{content:'\e864'}.mgz-oi-cancel-circle:before{content:'\e865'}.mgz-oi-plus:before{content:'\e866'}.mgz-oi-upload-cloud:before{content:'\e867'}.mgz-oi-compass:before{content:'\e868'}.mgz-oi-calendar-alt:before{content:'\e869'}.mgz-oi-down-circle:before{content:'\e86a'}.mgz-oi-award-empty:before{content:'\e86b'}.mgz-oi-layers-alt:before{content:'\e86c'}.mgz-oi-sun:before{content:'\e86d'}.mgz-oi-list:before{content:'\e86e'}.mgz-oi-left-circle:before{content:'\e86f'}.mgz-oi-mic:before{content:'\e870'}.mgz-oi-trash:before{content:'\e871'}.mgz-oi-quote-left:before{content:'\e872'}.mgz-oi-plus-circle:before{content:'\e873'}.mgz-oi-minus:before{content:'\e874'}.mgz-oi-quote-right:before{content:'\e875'}.mgz-oi-trash-empty:before{content:'\e876'}.mgz-oi-volume-off:before{content:'\e877'}.mgz-oi-right-circle:before{content:'\e878'}.mgz-oi-list-nested:before{content:'\e879'}.mgz-oi-sun-inv:before{content:'\e87a'}.mgz-oi-bat-empty:before{content:'\e87b'}.mgz-oi-up-circle:before{content:'\e87c'}.mgz-oi-volume-up:before{content:'\e87d'}.mgz-oi-doc:before{content:'\e87e'}.mgz-oi-quote-left-alt:before{content:'\e87f'}.mgz-oi-minus-circle:before{content:'\e880'}.mgz-oi-cloud:before{content:'\e881'}.mgz-oi-rain:before{content:'\e882'}.mgz-oi-bat-half:before{content:'\e883'}.mgz-oi-cw:before{content:'\e884'}.mgz-oi-headphones:before{content:'\e885'}.mgz-oi-doc-inv:before{content:'\e886'}.mgz-oi-quote-right-alt:before{content:'\e887'}.mgz-oi-help:before{content:'\e888'}.mgz-oi-info:before{content:'\e889'}.mgz-oi-pencil:before{content:'\e88a'}.mgz-oi-doc-alt:before{content:'\e88b'}.mgz-oi-clock:before{content:'\e88c'}.mgz-oi-loop:before{content:'\e88d'}.mgz-oi-bat-full:before{content:'\e88e'}.mgz-oi-flash:before{content:'\e88f'}.mgz-oi-moon:before{content:'\e890'}.mgz-oi-bat-charge:before{content:'\e891'}.mgz-oi-loop-alt:before{content:'\e892'}.mgz-oi-lamp:before{content:'\e893'}.mgz-oi-doc-inv-alt:before{content:'\e894'}.mgz-oi-pencil-neg:before{content:'\e895'}.mgz-oi-home:before{content:'\e896'}@charset "UTF-8";
.mgz-flex,
.mgz-flex-position-top-left,
.mgz-flex-position-top-center,
.mgz-flex-position-top-right,
.mgz-flex-position-middle-left,
.mgz-flex-position-center-left,
.mgz-flex-position-middle-center,
.mgz-flex-position-center-center,
.mgz-flex-position-middle-right,
.mgz-flex-position-center-right,
.mgz-flex-position-bottom-left,
.mgz-flex-position-bottom-center,
.mgz-flex-position-bottom-right,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner,
.mgz-socialicons li,
.mgz-countdown {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.mgz-invisible {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
a.mgz-btn {
  color: #333;
}
.mgz-btn:not(.primary) {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
button.mgz-btn {
  border: 0;
}
.mgz-btn {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  margin: 0;
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  background-image: none;
  word-wrap: break-word;
  text-decoration: none;
  position: relative;
  line-height: normal;
  padding: 10px 20px;
  color: #333;
  background-color: #e3e3e3;
  font-size: 1.4rem;
  max-width: 100%;
  height: auto;
}
.mgz-btn:hover {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  color: #5e5e5e;
  background-color: #dcdcdc;
  text-decoration: none;
}
.mgz-btn:focus {
  outline: none;
}
.mgz-btn.mgz-btn-save,
.mgz-btn.mgz-btn-cancel,
.mgz-btn.mgz-btn-replace {
  padding: 15px 20px;
  font-size: 1.6rem;
  font-weight: 500;
  min-width: 140px;
}
.mgz-btn.mgz-btn-save {
  background: #007dbd;
  color: #FFF;
}
.mgz-btn.mgz-btn-save:hover {
  background: #0073ae;
}
.mgz-btn.mgz-btn-cancel {
  color: #fff;
  background-color: #afafaf;
}
.mgz-btn.mgz-btn-cancel:hover {
  background-color: #8c8c8c;
}
.mgz-btn.mgz-btn-replace {
  float: left;
  color: #fff;
  background-color: #afafaf;
}
.mgz-btn.mgz-btn-replace:hover {
  background-color: #8c8c8c;
}
.mgz-btn.mgz-btn-delete {
  color: #FFF;
  background-color: #e22626;
}
.mgz-btn.mgz-btn-delete:hover {
  background-color: #ca1c1c;
}
.mgz-icon,
.tabs-opener:before {
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.mgz-fa {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}
.mgz-fa-s {
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}
.mgz-fa-r {
  font-family: 'Font Awesome 5 Free';
  font-weight: 400;
}
.mgz-liststyle {
  margin: 0;
  padding: 0;
  list-style: none;
}
/*!
 * ImageHover.css - http://www.imagehover.io
 * Version 1.0
 * Author: Ciarán Walsh

 * Made available under a MIT License:
 * http://www.opensource.org/licenses/mit-license.php

 */
.mgz-hover {
  position: relative;
  overflow: hidden;
  display: block;
}
.mgz-hover-description {
  position: relative;
  display: inline-block;
  margin: 0;
  max-width: 100%;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -moz-osx-font-smoothing: grayscale;
  transform: translateZ(0);
}
.mgz-hover-main {
  overflow: hidden;
}
[class^='mgz-hover-'] > img,
[class*=' mgz-hover-'] > img {
  vertical-align: top;
  max-width: 100%;
}
[class^='mgz-hover-'] .mgz-hover-description,
[class*=' mgz-hover-'] .mgz-hover-description {
  background-color: rgba(255, 255, 255, 0.8);
  padding: 30px;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
[class^='mgz-hover-'],
[class*=' mgz-hover-'],
[class^='mgz-hover-']:before,
[class^='mgz-hover-']:after,
[class*=' mgz-hover-']:before,
[class*=' mgz-hover-']:after,
[class^='mgz-hover-'] *,
[class*=' mgz-hover-'] *,
[class^='mgz-hover-'] *:before,
[class^='mgz-hover-'] *:after,
[class*=' mgz-hover-'] *:before,
[class*=' mgz-hover-'] *:after {
  box-sizing: border-box;
  transition: all 0.35s ease;
}
/* mgz-hover-fade-*
----------------------------- */
[class^='mgz-hover-fade'] .mgz-hover-description,
[class*=' mgz-hover-fade'] .mgz-hover-description {
  opacity: 0;
}
[class^='mgz-hover-fade']:hover > .mgz-hover-main,
[class*=' mgz-hover-fade']:hover > .mgz-hover-main {
  opacity: 0;
}
[class^='mgz-hover-fade']:hover .mgz-hover-description,
[class*=' mgz-hover-fade']:hover .mgz-hover-description {
  opacity: 1;
}
[class^='mgz-hover-fade']:hover > .mgz-hover-main,
[class^='mgz-hover-fade']:hover .mgz-hover-description,
[class*=' mgz-hover-fade']:hover > .mgz-hover-main,
[class*=' mgz-hover-fade']:hover .mgz-hover-description {
  transform: translate(0, 0);
}
/* mgz-hover-fade
----------------------------- */
/* mgz-hover-fade-in-up
----------------------------- */
.mgz-hover-fade-in-up .mgz-hover-description {
  transform: translate(0, 15%);
}
/* mgz-hover-fade-in-down
----------------------------- */
.mgz-hover-fade-in-down .mgz-hover-description {
  transform: translate(0, -15%);
}
/* mgz-hover-fade-in-left
----------------------------- */
.mgz-hover-fade-in-left .mgz-hover-description {
  transform: translate(-15%, 0);
}
/* mgz-hover-fade-in-right
----------------------------- */
.mgz-hover-fade-in-right .mgz-hover-description {
  transform: translate(15%, 0);
}
/* mgz-hover-push-*
----------------------------- */
[class^='mgz-hover-push-']:hover .mgz-hover-description,
[class*=' mgz-hover-push-']:hover .mgz-hover-description {
  transform: translate(0, 0);
}
/* mgz-hover-push-up
----------------------------- */
.mgz-hover-push-up .mgz-hover-description {
  transform: translateY(100%);
}
.mgz-hover-push-up:hover > .mgz-hover-main {
  transform: translateY(-100%);
}
/* mgz-hover-push-down
----------------------------- */
.mgz-hover-push-down .mgz-hover-description {
  transform: translateY(-100%);
}
.mgz-hover-push-down:hover > .mgz-hover-main {
  transform: translateY(100%);
}
/* mgz-hover-push-left
----------------------------- */
.mgz-hover-push-left .mgz-hover-description {
  transform: translateX(100%);
}
.mgz-hover-push-left:hover > .mgz-hover-main {
  transform: translateX(-100%);
}
/* mgz-hover-push--right
----------------------------- */
.mgz-hover-push-right .mgz-hover-description {
  transform: translateX(-100%);
}
.mgz-hover-push-right:hover > .mgz-hover-main {
  transform: translateX(100%);
}
/* mgz-hover-slide-*
----------------------------- */
[class^='mgz-hover-slide-']:hover .mgz-hover-description,
[class*=' mgz-hover-slide-']:hover .mgz-hover-description {
  transform: translate(0, 0);
}
/* mgz-hover-slide-up
----------------------------- */
.mgz-hover-slide-up .mgz-hover-description {
  transform: translateY(100%);
}
/* mgz-hover-slide-down
----------------------------- */
.mgz-hover-slide-down .mgz-hover-description {
  transform: translateY(-100%);
}
/* mgz-hover-slide-left
----------------------------- */
.mgz-hover-slide-left .mgz-hover-description {
  transform: translateX(100%);
}
/* mgz-hover-slide-right
----------------------------- */
.mgz-hover-slide-right .mgz-hover-description {
  transform: translateX(-100%);
}
/* mgz-hover-slide-top-left
----------------------------- */
.mgz-hover-slide-top-left .mgz-hover-description {
  transform: translate(-100%, -100%);
}
/* mgz-hover-slide-top-right
----------------------------- */
.mgz-hover-slide-top-right .mgz-hover-description {
  transform: translate(100%, -100%);
}
/* mgz-hover-slide-bottom-left
----------------------------- */
.mgz-hover-slide-bottom-left .mgz-hover-description {
  transform: translate(-100%, 100%);
}
/* mgz-hover-slide-bottom-right
----------------------------- */
.mgz-hover-slide-bottom-right .mgz-hover-description {
  transform: translate(100%, 100%);
}
/* mgz-hover-reveal-*
----------------------------- */
[class^='mgz-hover-reveal-']:before,
[class*=' mgz-hover-reveal-']:before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  content: '';
  background-color: #007dbd;
}
[class^='mgz-hover-reveal-'] .mgz-hover-description,
[class*=' mgz-hover-reveal-'] .mgz-hover-description {
  opacity: 0;
}
[class^='mgz-hover-reveal-']:hover:before,
[class*=' mgz-hover-reveal-']:hover:before {
  transform: translate(0, 0);
}
[class^='mgz-hover-reveal-']:hover .mgz-hover-description,
[class*=' mgz-hover-reveal-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-reveal-up
----------------------------- */
.mgz-hover-reveal-up:before {
  transform: translateY(100%);
}
/* mgz-hover-reveal-down
----------------------------- */
.mgz-hover-reveal-down:before {
  transform: translateY(-100%);
}
/* mgz-hover-reveal-left
----------------------------- */
.mgz-hover-reveal-left:before {
  transform: translateX(100%);
}
/* mgz-hover-reveal-right
----------------------------- */
.mgz-hover-reveal-right:before {
  transform: translateX(-100%);
}
/* mgz-hover-reveal-top-left
----------------------------- */
.mgz-hover-reveal-top-left:before {
  transform: translate(-100%, -100%);
}
/* mgz-hover-reveal-top-right
----------------------------- */
.mgz-hover-reveal-top-right:before {
  transform: translate(100%, -100%);
}
/* mgz-hover-reveal-bottom-left
----------------------------- */
.mgz-hover-reveal-bottom-left:before {
  transform: translate(-100%, 100%);
}
/* mgz-hover-reveal-bottom-right
----------------------------- */
.mgz-hover-reveal-bottom-right:before {
  transform: translate(100%, 100%);
}
/* mgz-hover-hinge-*
----------------------------- */
[class^='mgz-hover-hinge-'],
[class*=' mgz-hover-hinge-'] {
  perspective: 50em;
}
[class^='mgz-hover-hinge-'] .mgz-hover-description,
[class*=' mgz-hover-hinge-'] .mgz-hover-description {
  opacity: 0;
  z-index: 1;
}
[class^='mgz-hover-hinge-']:hover img,
[class*=' mgz-hover-hinge-']:hover img {
  opacity: 0;
}
[class^='mgz-hover-hinge-']:hover .mgz-hover-description,
[class*=' mgz-hover-hinge-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-hinge-up
----------------------------- */
.mgz-hover-hinge-up img {
  transform-origin: 50% 0%;
}
.mgz-hover-hinge-up .mgz-hover-description {
  transform: rotateX(90deg);
  transform-origin: 50% 100%;
}
.mgz-hover-hinge-up:hover > .mgz-hover-main {
  transform: rotateX(-90deg);
}
.mgz-hover-hinge-up:hover .mgz-hover-description {
  transform: rotateX(0);
}
/* mgz-hover-hinge-down
----------------------------- */
.mgz-hover-hinge-down img {
  transform-origin: 50% 100%;
}
.mgz-hover-hinge-down .mgz-hover-description {
  transform: rotateX(-90deg);
  transform-origin: 50% -50%;
}
.mgz-hover-hinge-down:hover > .mgz-hover-main {
  transform: rotateX(90deg);
  opacity: 0;
}
.mgz-hover-hinge-down:hover .mgz-hover-description {
  transform: rotateX(0);
}
/* mgz-hover-hinge-left
----------------------------- */
.mgz-hover-hinge-left img {
  transform-origin: 0% 50%;
}
.mgz-hover-hinge-left .mgz-hover-description {
  transform: rotateY(-90deg);
  transform-origin: 100% 50%;
}
.mgz-hover-hinge-left:hover > .mgz-hover-main {
  transform: rotateY(90deg);
}
.mgz-hover-hinge-left:hover .mgz-hover-description {
  transform: rotateY(0);
}
/* mgz-hover-hinge-right
----------------------------- */
.mgz-hover-hinge-right img {
  transform-origin: 100% 50%;
}
.mgz-hover-hinge-right .mgz-hover-description {
  transform: rotateY(90deg);
  transform-origin: 0 50%;
}
.mgz-hover-hinge-right:hover > .mgz-hover-main {
  transform: rotateY(-90deg);
}
.mgz-hover-hinge-right:hover .mgz-hover-description {
  transform: rotateY(0);
}
/* mgz-hover-flip-*
----------------------------- */
[class^='mgz-hover-flip-'],
[class*=' mgz-hover-flip-'] {
  perspective: 50em;
}
[class^='mgz-hover-flip-'] img,
[class*=' mgz-hover-flip-'] img {
  backface-visibility: hidden;
}
[class^='mgz-hover-flip-'] .mgz-hover-description,
[class*=' mgz-hover-flip-'] .mgz-hover-description {
  opacity: 0;
}
[class^='mgz-hover-flip-']:hover > .mgz-hover-main,
[class*=' mgz-hover-flip-']:hover > .mgz-hover-main {
  opacity: 0;
}
[class^='mgz-hover-flip-']:hover .mgz-hover-description,
[class*=' mgz-hover-flip-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.14s;
}
/* mgz-hover-flip-horiz
----------------------------- */
.mgz-hover-flip-horiz .mgz-hover-description {
  transform: rotateX(90deg);
  transform-origin: 0% 50%;
}
.mgz-hover-flip-horiz:hover img {
  transform: rotateX(-180deg);
}
.mgz-hover-flip-horiz:hover .mgz-hover-description {
  transform: rotateX(0deg);
}
/* mgz-hover-flip-vert
----------------------------- */
.mgz-hover-flip-vert .mgz-hover-description {
  transform: rotateY(90deg);
  transform-origin: 50% 0%;
}
.mgz-hover-flip-vert:hover > .mgz-hover-main {
  transform: rotateY(-180deg);
}
.mgz-hover-flip-vert:hover .mgz-hover-description {
  transform: rotateY(0deg);
}
/* mgz-hover-flip-diag-1
----------------------------- */
.mgz-hover-flip-diag-1 .mgz-hover-description {
  transform: rotate3d(1, -1, 0, 100deg);
}
.mgz-hover-flip-diag-1:hover > .mgz-hover-main {
  transform: rotate3d(-1, 1, 0, 100deg);
}
.mgz-hover-flip-diag-1:hover .mgz-hover-description {
  transform: rotate3d(0, 0, 0, 0deg);
}
/* mgz-hover-flip-diag-2
----------------------------- */
.mgz-hover-flip-diag-2 .mgz-hover-description {
  transform: rotate3d(1, 1, 0, 100deg);
}
.mgz-hover-flip-diag-2:hover > .mgz-hover-main {
  transform: rotate3d(-1, -1, 0, 100deg);
}
.mgz-hover-flip-diag-2:hover .mgz-hover-description {
  transform: rotate3d(0, 0, 0, 0deg);
}
/* mgz-hover-shutter-out-*
----------------------------- */
[class^='mgz-hover-shutter-out-']:before,
[class*=' mgz-hover-shutter-out-']:before {
  background: #007dbd;
  position: absolute;
  content: '';
  transition-delay: 0.105s;
}
[class^='mgz-hover-shutter-out-'] .mgz-hover-description,
[class*=' mgz-hover-shutter-out-'] .mgz-hover-description {
  opacity: 0;
  transition-delay: 0s;
}
[class^='mgz-hover-shutter-out-']:hover:before,
[class*=' mgz-hover-shutter-out-']:hover:before {
  transition-delay: 0s;
}
[class^='mgz-hover-shutter-out-']:hover .mgz-hover-description,
[class*=' mgz-hover-shutter-out-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.105s;
}
/* mgz-hover-shutter-out-horiz
----------------------------- */
.mgz-hover-shutter-out-horiz:before {
  left: 50%;
  right: 50%;
  top: 0;
  bottom: 0;
}
.mgz-hover-shutter-out-horiz:hover:before {
  left: 0;
  right: 0;
}
/* mgz-hover-shutter-out-vert
----------------------------- */
.mgz-hover-shutter-out-vert:before {
  top: 50%;
  bottom: 50%;
  left: 0;
  right: 0;
}
.mgz-hover-shutter-out-vert:hover:before {
  top: 0;
  bottom: 0;
}
/* mgz-hover-shutter-out-diag-1
----------------------------- */
.mgz-hover-shutter-out-diag-1:before {
  top: 50%;
  bottom: 50%;
  left: -35%;
  right: -35%;
  transform: rotate(45deg);
}
.mgz-hover-shutter-out-diag-1:hover:before {
  top: -35%;
  bottom: -35%;
}
/* mgz-hover-shutter-out-diag-2
----------------------------- */
.mgz-hover-shutter-out-diag-2:before {
  top: 50%;
  bottom: 50%;
  left: -35%;
  right: -35%;
  transform: rotate(-45deg);
}
.mgz-hover-shutter-out-diag-2:hover:before {
  top: -35%;
  bottom: -35%;
}
/* mgz-hover-shutter-in-*
----------------------------- */
[class^='mgz-hover-shutter-in-']:after,
[class^='mgz-hover-shutter-in-']:before,
[class*=' mgz-hover-shutter-in-']:after,
[class*=' mgz-hover-shutter-in-']:before {
  background: #007dbd;
  position: absolute;
  content: '';
}
[class^='mgz-hover-shutter-in-']:after,
[class*=' mgz-hover-shutter-in-']:after {
  top: 0;
  left: 0;
}
[class^='mgz-hover-shutter-in-']:before,
[class*=' mgz-hover-shutter-in-']:before {
  right: 0;
  bottom: 0;
}
[class^='mgz-hover-shutter-in-'] .mgz-hover-description,
[class*=' mgz-hover-shutter-in-'] .mgz-hover-description {
  opacity: 0;
  z-index: 1;
}
[class^='mgz-hover-shutter-in-']:hover .mgz-hover-description,
[class*=' mgz-hover-shutter-in-']:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-shutter-in-horiz
----------------------------- */
.mgz-hover-shutter-in-horiz:after,
.mgz-hover-shutter-in-horiz:before {
  width: 0;
  height: 100%;
}
.mgz-hover-shutter-in-horiz:hover:after,
.mgz-hover-shutter-in-horiz:hover:before {
  width: 50%;
}
/* mgz-hover-shutter-in-vert
----------------------------- */
.mgz-hover-shutter-in-vert:after,
.mgz-hover-shutter-in-vert:before {
  height: 0;
  width: 100%;
}
.mgz-hover-shutter-in-vert:hover:after,
.mgz-hover-shutter-in-vert:hover:before {
  height: 50%;
}
/* mgz-hover-shutter-in-out-horiz
----------------------------- */
.mgz-hover-shutter-in-out-horiz:after,
.mgz-hover-shutter-in-out-horiz:before {
  width: 0;
  height: 100%;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-horiz:hover:after,
.mgz-hover-shutter-in-out-horiz:hover:before {
  width: 100%;
}
/* mgz-hover-shutter-in-out-vert
----------------------------- */
.mgz-hover-shutter-in-out-vert:after,
.mgz-hover-shutter-in-out-vert:before {
  height: 0;
  width: 100%;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-vert:hover:after,
.mgz-hover-shutter-in-out-vert:hover:before {
  height: 100%;
}
/* mgz-hover-shutter-in-out-diag-1
----------------------------- */
.mgz-hover-shutter-in-out-diag-1:after,
.mgz-hover-shutter-in-out-diag-1:before {
  width: 200%;
  height: 200%;
  transition: all 0.6s ease;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-diag-1:after {
  transform: skew(-45deg) translateX(-150%);
}
.mgz-hover-shutter-in-out-diag-1:before {
  transform: skew(-45deg) translateX(150%);
}
.mgz-hover-shutter-in-out-diag-1:hover:after {
  transform: skew(-45deg) translateX(-50%);
}
.mgz-hover-shutter-in-out-diag-1:hover:before {
  transform: skew(-45deg) translateX(50%);
}
/* mgz-hover-shutter-in-out-diag-2
----------------------------- */
.mgz-hover-shutter-in-out-diag-2:after,
.mgz-hover-shutter-in-out-diag-2:before {
  width: 200%;
  height: 200%;
  transition: all 0.6s ease;
  opacity: 0.75;
}
.mgz-hover-shutter-in-out-diag-2:after {
  transform: skew(45deg) translateX(-100%);
}
.mgz-hover-shutter-in-out-diag-2:before {
  transform: skew(45deg) translateX(100%);
}
.mgz-hover-shutter-in-out-diag-2:hover:after {
  transform: skew(45deg) translateX(0%);
}
.mgz-hover-shutter-in-out-diag-2:hover:before {
  transform: skew(45deg) translateX(0%);
}
/* mgz-hover-fold*
----------------------------- */
[class^='mgz-hover-fold'],
[class*=' mgz-hover-fold'] {
  perspective: 50em;
}
[class^='mgz-hover-fold'] img,
[class*=' mgz-hover-fold'] img {
  transform-origin: 50% 0%;
}
[class^='mgz-hover-fold'] .mgz-hover-description,
[class*=' mgz-hover-fold'] .mgz-hover-description {
  z-index: 1;
  opacity: 0;
}
[class^='mgz-hover-fold']:hover > .mgz-hover-main,
[class*=' mgz-hover-fold']:hover > .mgz-hover-main {
  opacity: 0;
  transition-delay: 0;
}
[class^='mgz-hover-fold']:hover .mgz-hover-description,
[class*=' mgz-hover-fold']:hover .mgz-hover-description {
  transform: rotateX(0) translate3d(0, 0%, 0) scale(1);
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-fold-up
----------------------------- */
.mgz-hover-fold-up > img {
  transform-origin: 50% 0%;
}
.mgz-hover-fold-up .mgz-hover-description {
  transform: rotateX(-90deg) translate3d(0%, -50%, 0) scale(0.6);
  transform-origin: 50% 100%;
}
.mgz-hover-fold-up:hover > .mgz-hover-main {
  transform: rotateX(90deg) scale(0.6) translateY(50%);
}
/* mgz-hover-fold-down
----------------------------- */
.mgz-hover-fold-down > img {
  transform-origin: 50% 100%;
}
.mgz-hover-fold-down .mgz-hover-description {
  transform: rotateX(90deg) translate3d(0%, 50%, 0) scale(0.6);
  transform-origin: 50% 0%;
}
.mgz-hover-fold-down:hover > .mgz-hover-main {
  transform: rotateX(-90deg) scale(0.6) translateY(-50%);
}
/* mgz-hover-fold-left
----------------------------- */
.mgz-hover-fold-left > img {
  transform-origin: 0% 50%;
}
.mgz-hover-fold-left .mgz-hover-description {
  transform: rotateY(90deg) translate3d(-50%, 0%, 0) scale(0.6);
  transform-origin: 100% 50%;
}
.mgz-hover-fold-left:hover > .mgz-hover-main {
  transform: rotateY(-90deg) scale(0.6) translateX(50%);
}
/* mgz-hover-fold-right
----------------------------- */
.mgz-hover-fold-right > img {
  transform-origin: 100% 50%;
}
.mgz-hover-fold-right .mgz-hover-description {
  transform: rotateY(-90deg) translate3d(50%, 0%, 0) scale(0.6);
  transform-origin: 0 50%;
}
.mgz-hover-fold-right:hover > .mgz-hover-main {
  transform: rotateY(90deg) scale(0.6) translateX(-50%);
}
/* mgz-hover-zoom-in
----------------------------- */
.mgz-hover-zoom-in .mgz-hover-description {
  opacity: 0;
  transform: scale(0.5);
}
.mgz-hover-zoom-in:hover .mgz-hover-description {
  transform: scale(1);
  opacity: 1;
}
/* mgz-hover-zoom-out*
----------------------------- */
[class^='mgz-hover-zoom-out'] .mgz-hover-description,
[class*=' mgz-hover-zoom-out'] .mgz-hover-description {
  transform: scale(0.5);
  transform-origin: 50% 50%;
  opacity: 0;
}
[class^='mgz-hover-zoom-out']:hover .mgz-hover-description,
[class^='mgz-hover-zoom-out'].hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out']:hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out'].hover .mgz-hover-description {
  transform: scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out
----------------------------- */
.mgz-hover-zoom-out:hover > .mgz-hover-main {
  transform: scale(0.5);
  opacity: 0;
}
/* mgz-hover-zoom-out-up
----------------------------- */
.mgz-hover-zoom-out-up:hover > .mgz-hover-main,
.mgz-hover-zoom-out-up.hover > img {
  animation: mgz-hover-zoom-out-up 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-up {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-up {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-down
----------------------------- */
.mgz-hover-zoom-out-down:hover > .mgz-hover-main,
.mgz-hover-zoom-out-down.hover > img {
  animation: mgz-hover-zoom-out-down 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-down {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-down {
  50% {
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-left
----------------------------- */
.mgz-hover-zoom-out-left:hover > .mgz-hover-main,
.mgz-hover-zoom-out-left.hover > img {
  animation: mgz-hover-zoom-out-left 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-left {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-left {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-right
----------------------------- */
.mgz-hover-zoom-out-right:hover > .mgz-hover-main,
.mgz-hover-zoom-out-right.hover > img {
  animation: mgz-hover-zoom-out-right 0.4025s linear;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-right {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-right {
  50% {
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-flip-horiz
----------------------------- */
.mgz-hover-zoom-out-flip-horiz {
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-horiz .mgz-hover-description {
  opacity: 0;
  transform: rotateX(90deg) translateY(-100%) scale(0.5);
}
.mgz-hover-zoom-out-flip-horiz:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-horiz.hover > img {
  transform: rotateX(-100deg) translateY(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-horiz:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-horiz.hover .mgz-hover-description {
  transform: rotateX(0) translateY(0%) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out-flip-vert
----------------------------- */
.mgz-hover-zoom-out-flip-vert {
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-vert .mgz-hover-description {
  opacity: 0;
  transform: rotateY(90deg) translate(50%, 0) scale(0.5);
}
.mgz-hover-zoom-out-flip-vert:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-vert.hover > img {
  transform: rotateY(-100deg) translateX(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-vert:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-vert.hover .mgz-hover-description {
  transform: rotateY(0) translate(0, 0) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-blur
----------------------------- */
.mgz-hover-blur .mgz-hover-description {
  opacity: 0;
}
.mgz-hover-blur:hover > .mgz-hover-main {
  filter: blur(30px);
  transform: scale(1.2);
  opacity: 0;
}
.mgz-hover-blur:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-zoom-in
----------------------------- */
.mgz-hover-zoom-in .mgz-hover-description {
  opacity: 0;
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
}
.mgz-hover-zoom-in:hover .mgz-hover-description {
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
/* mgz-hover-zoom-out*
----------------------------- */
[class^='mgz-hover-zoom-out'] .mgz-hover-description,
[class*=' mgz-hover-zoom-out'] .mgz-hover-description {
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
  -webkit-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  opacity: 0;
}
[class^='mgz-hover-zoom-out']:hover .mgz-hover-description,
[class^='mgz-hover-zoom-out'].hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out']:hover .mgz-hover-description,
[class*=' mgz-hover-zoom-out'].hover .mgz-hover-description {
  -webkit-transform: scale(1);
  transform: scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out
----------------------------- */
.mgz-hover-zoom-out:hover > .mgz-hover-main {
  -webkit-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0;
}
/* mgz-hover-zoom-out-up
----------------------------- */
.mgz-hover-zoom-out-up:hover > .mgz-hover-main,
.mgz-hover-zoom-out-up.hover > img {
  -webkit-animation: mgz-hover-zoom-out-up 0.4025s linear;
  animation: mgz-hover-zoom-out-up 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-up {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(-150%);
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-up {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(-150%);
    transform: scale(0.8) translateY(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-down
----------------------------- */
.mgz-hover-zoom-out-down:hover > .mgz-hover-main,
.mgz-hover-zoom-out-down.hover > img {
  -webkit-animation: mgz-hover-zoom-out-down 0.4025s linear;
  animation: mgz-hover-zoom-out-down 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-down {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(150%);
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-down {
  50% {
    -webkit-transform: scale(0.8) translateY(0%);
    transform: scale(0.8) translateY(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateY(150%);
    transform: scale(0.8) translateY(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-left
----------------------------- */
.mgz-hover-zoom-out-left:hover > .mgz-hover-main,
.mgz-hover-zoom-out-left.hover > img {
  -webkit-animation: mgz-hover-zoom-out-left 0.4025s linear;
  animation: mgz-hover-zoom-out-left 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-left {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(-150%);
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-left {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(-150%);
    transform: scale(0.8) translateX(-150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-right
----------------------------- */
.mgz-hover-zoom-out-right:hover > .mgz-hover-main,
.mgz-hover-zoom-out-right.hover > img {
  -webkit-animation: mgz-hover-zoom-out-right 0.4025s linear;
  animation: mgz-hover-zoom-out-right 0.4025s linear;
  -webkit-animation-iteration-count: 1;
  animation-iteration-count: 1;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
}
@-webkit-keyframes mgz-hover-zoom-out-right {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(150%);
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
@keyframes mgz-hover-zoom-out-right {
  50% {
    -webkit-transform: scale(0.8) translateX(0%);
    transform: scale(0.8) translateX(0%);
    opacity: 0.5;
  }
  100% {
    -webkit-transform: scale(0.8) translateX(150%);
    transform: scale(0.8) translateX(150%);
    opacity: 0.5;
  }
}
/* mgz-hover-zoom-out-flip-horiz
----------------------------- */
.mgz-hover-zoom-out-flip-horiz {
  -webkit-perspective: 50em;
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-horiz .mgz-hover-description {
  opacity: 0;
  -webkit-transform: rotateX(90deg) translateY(-100%) scale(0.5);
  transform: rotateX(90deg) translateY(-100%) scale(0.5);
}
.mgz-hover-zoom-out-flip-horiz:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-horiz.hover > img {
  -webkit-transform: rotateX(-100deg) translateY(50%) scale(0.5);
  transform: rotateX(-100deg) translateY(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-horiz:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-horiz.hover .mgz-hover-description {
  -webkit-transform: rotateX(0) translateY(0%) scale(1);
  transform: rotateX(0) translateY(0%) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-zoom-out-flip-vert
----------------------------- */
.mgz-hover-zoom-out-flip-vert {
  -webkit-perspective: 50em;
  perspective: 50em;
}
.mgz-hover-zoom-out-flip-vert .mgz-hover-description {
  opacity: 0;
  -webkit-transform: rotateY(90deg) translate(50%, 0) scale(0.5);
  transform: rotateY(90deg) translate(50%, 0) scale(0.5);
}
.mgz-hover-zoom-out-flip-vert:hover > .mgz-hover-main,
.mgz-hover-zoom-out-flip-vert.hover > img {
  -webkit-transform: rotateY(-100deg) translateX(50%) scale(0.5);
  transform: rotateY(-100deg) translateX(50%) scale(0.5);
  opacity: 0;
  transition-delay: 0;
}
.mgz-hover-zoom-out-flip-vert:hover .mgz-hover-description,
.mgz-hover-zoom-out-flip-vert.hover .mgz-hover-description {
  -webkit-transform: rotateY(0) translate(0, 0) scale(1);
  transform: rotateY(0) translate(0, 0) scale(1);
  opacity: 1;
  transition-delay: 0.35s;
}
/* mgz-hover-blur
----------------------------- */
.mgz-hover-blur .mgz-hover-description {
  opacity: 0;
}
.mgz-hover-blur:hover > .mgz-hover-main {
  -webkit-filter: blur(30px);
  filter: blur(30px);
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
  opacity: 0;
}
.mgz-hover-blur:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
/* mgz-hover-scale
----------------------------- */
.mgz-hover-zoom .mgz-hover-description {
  opacity: 0;
}
.mgz-hover-zoom:hover > img,
.mgz-hover-zoom:hover > .mgz-hover-main {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
}
.mgz-hover-zoom:hover .mgz-hover-description {
  opacity: 1;
  transition-delay: 0.21s;
}
.mgz-image-hovers.owl-carousel .owl-item {
  overflow: hidden;
}
.mgz-image-hovers.owl-carousel .owl-item .hover-type-zoomin {
  opacity: 1;
  -webkit-transition: all 0.4s !important;
  -moz-transition: all 0.4s !important;
  -ms-transition: all 0.4s !important;
  -o-transition: all 0.4s !important;
}
.mgz-image-hovers.owl-carousel .owl-item .hover-type-zoomout {
  opacity: 1;
  -webkit-transform: scale(1.12);
  -ms-transform: scale(1.12);
  transform: scale(1.12);
  -webkit-transition: opacity 1s, -webkit-transform 1s !important;
  transition: opacity 1s, -webkit-transform 1s !important;
  -o-transition: opacity 1s,transform 1s !important;
  transition: opacity 1s,transform 1s !important;
  transition: opacity 1s, transform 1s, -webkit-transform 1s !important;
}
.mgz-image-hovers.owl-carousel .owl-item .hover-type-liftup {
  -webkit-transform: perspective(1000px) scale(1);
  transform: perspective(1000px) scale(1);
  -webkit-transition: -webkit-transform 0.35s !important;
  transition: -webkit-transform 0.35s !important;
  -o-transition: transform 0.35s !important;
  transition: transform 0.35s !important;
  transition: transform 0.35s, -webkit-transform 0.35s !important;
  position: relative;
  z-index: 1;
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-zoomin {
  opacity: 0.9;
  -webkit-transform: scale3d(1.1, 1.1, 1);
  transform: scale3d(1.1, 1.1, 1);
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-zoomout {
  opacity: 0.9;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-liftup {
  -webkit-transform: perspective(1000px) scale(1.03);
  transform: perspective(1000px) scale(1.03);
}
.mgz-image-hovers.owl-carousel .owl-item:hover .hover-type-liftup:before {
  opacity: 1;
}
.mgz-image-hovers .hover-type-zoomin {
  overflow: hidden;
}
.mgz-image-hovers .hover-type-zoomin img {
  opacity: 1;
  -webkit-transition: all 0.4s !important;
  -moz-transition: all 0.4s !important;
  -ms-transition: all 0.4s !important;
  -o-transition: all 0.4s !important;
}
.mgz-image-hovers .hover-type-zoomin:hover img {
  opacity: 0.9;
  -webkit-transform: scale3d(1.1, 1.1, 1);
  transform: scale3d(1.1, 1.1, 1);
}
.mgz-image-hovers .hover-type-zoomout {
  overflow: hidden;
}
.mgz-image-hovers .hover-type-zoomout img {
  opacity: 1;
  -webkit-transform: scale(1.12);
  -ms-transform: scale(1.12);
  transform: scale(1.12);
  -webkit-transition: opacity 1s, -webkit-transform 1s !important;
  transition: opacity 1s, -webkit-transform 1s !important;
  -o-transition: opacity 1s,transform 1s !important;
  transition: opacity 1s,transform 1s !important;
  transition: opacity 1s, transform 1s, -webkit-transform 1s !important;
}
.mgz-image-hovers .hover-type-zoomout:hover img {
  opacity: 0.9;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-image-hovers .hover-type-liftup {
  position: relative;
}
.mgz-image-hovers .hover-type-liftup img {
  -webkit-transform: perspective(1000px) scale(1);
  transform: perspective(1000px) scale(1);
  -webkit-transition: -webkit-transform 0.35s !important;
  transition: -webkit-transform 0.35s !important;
  -o-transition: transform 0.35s !important;
  transition: transform 0.35s !important;
  transition: transform 0.35s, -webkit-transform 0.35s !important;
  position: relative;
  z-index: 1;
}
.mgz-image-hovers .hover-type-liftup:before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  content: '';
  -webkit-transition: opacity 0.35s !important;
  -o-transition: opacity 0.35s !important;
  transition: opacity 0.35s !important;
  -webkit-box-shadow: 0 3px 15px rgba(0, 0, 0, 0.4);
  box-shadow: 0 3px 15px rgba(0, 0, 0, 0.4);
  opacity: 0;
}
.mgz-image-hovers .hover-type-liftup:hover img {
  -webkit-transform: perspective(1000px) scale(1.03);
  transform: perspective(1000px) scale(1.03);
}
.mgz-image-hovers .hover-type-liftup:hover:before {
  opacity: 1;
}
.mgz-hover-image {
  float: right;
}
.mgz-hover.zoom .mgz-hover-image {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  -webkit-transition: all 0.3s ease-out 0s;
  -moz-transition: all 0.3s ease-out 0s;
  -ms-transition: all 0.3s ease-out 0s;
  -o-transition: all 0.3s ease-out 0s;
}
.mgz-hover.zoom:hover .mgz-hover-image {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
}
.mgz-hover.border:before {
  border: 2px solid #fff;
  top: -2px;
  bottom: -2px;
  right: -2px;
  left: -2px;
  content: '';
  display: block;
  position: absolute;
  -webkit-transition: all 0.5s ease-out 0s;
  -moz-transition: all 0.5s ease-out 0s;
  -ms-transition: all 0.5s ease-out 0s;
  -o-transition: all 0.5s ease-out 0s;
}
.mgz-hover.border:hover:before {
  top: 15px;
  bottom: 15px;
  right: 15px;
  left: 15px;
  z-index: 1;
}
.mgz-hover.flashed:after {
  -webkit-transition: transform 0.6s;
  -moz-transition: transform 0.6s;
  -ms-transition: transform 0.6s;
  -o-transition: transform 0.6s;
  -webkit-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  -moz-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  -ms-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  -o-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, -300%, 0);
  position: absolute;
  top: 0;
  left: 0;
  width: 1000px;
  height: 200px;
  background: rgba(255, 255, 255, 0.5);
  content: '';
}
.mgz-hover.flashed:hover:after {
  -webkit-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
  -moz-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
  -ms-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
  -o-transform: scale3d(1.9, 1.4, 1) rotate3d(0, 0, 1, 45deg) translate3d(0, 300%, 0);
}
.mgz-hover.shadow {
  -webkit-transition: all 0.2s ease 0s;
  -moz-transition: all 0.2s ease 0s;
  -ms-transition: all 0.2s ease 0s;
  -o-transition: all 0.2s ease 0s;
}
.mgz-hover.shadow:hover {
  -webkit-box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.2);
  box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.2);
}
.mgz-position-top-left {
  position: absolute;
  top: 0;
  left: 0;
}
.mgz-position-top-center {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
}
.mgz-position-top-right {
  position: absolute;
  top: 0;
  right: 0;
}
.mgz-position-middle-left,
.mgz-position-center-left {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}
.mgz-position-middle-center,
.mgz-position-center-center {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
}
.mgz-position-middle-right,
.mgz-position-center-right {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
}
.mgz-position-bottom-left {
  position: absolute;
  bottom: 0;
  left: 0;
}
.mgz-position-bottom-center {
  position: absolute;
  left: 50%;
  bottom: 0;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
}
.mgz-position-bottom-right {
  position: absolute;
  bottom: 0;
  right: 0;
}
.mgz-flex-position-top-left {
  -webkit-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-flex-position-top-center {
  -webkit-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-flex-position-top-right {
  -webkit-align-items: flex-start;
  -ms-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-flex-position-middle-left,
.mgz-flex-position-center-left {
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-flex-position-middle-center,
.mgz-flex-position-center-center {
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-flex-position-middle-right,
.mgz-flex-position-center-right {
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-flex-position-bottom-left {
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-flex-position-bottom-center {
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-flex-position-bottom-right {
  -webkit-align-items: flex-end;
  -ms-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-bg-transform-wrapper {
  overflow: hidden;
}
.mgz-bg-transform-zoom-in:hover .mgz-bg,
.mgz-bg-transform-zoom-out .mgz-bg {
  -webkit-transform: scale(1.2);
  -ms-transform: scale(1.2);
  transform: scale(1.2);
}
.mgz-bg-transform-zoom-out:hover .mgz-bg {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-bg-transform-move-left .mgz-bg {
  -webkit-transform: scale(1.2) translateX(8%);
  -ms-transform: scale(1.2) translateX(8%);
  transform: scale(1.2) translateX(8%);
}
.mgz-bg-transform-move-left:hover .mgz-bg,
.mgz-bg-transform-move-right .mgz-bg {
  -webkit-transform: scale(1.2) translateX(-8%);
  -ms-transform: scale(1.2) translateX(-8%);
  transform: scale(1.2) translateX(-8%);
}
.mgz-bg-transform-move-right:hover .mgz-bg {
  -webkit-transform: scale(1.2) translateX(8%);
  -ms-transform: scale(1.2) translateX(8%);
  transform: scale(1.2) translateX(8%);
}
.mgz-bg-transform-move-up .mgz-bg {
  -webkit-transform: scale(1.2) translateY(8%);
  -ms-transform: scale(1.2) translateY(8%);
  transform: scale(1.2) translateY(8%);
}
.mgz-bg-transform-move-down .mgz-bg,
.mgz-bg-transform-move-up:hover .mgz-bg {
  -webkit-transform: scale(1.2) translateY(-8%);
  -ms-transform: scale(1.2) translateY(-8%);
  transform: scale(1.2) translateY(-8%);
}
.mgz-bg-transform-move-down:hover .mgz-bg {
  -webkit-transform: scale(1.2) translateY(8%);
  -ms-transform: scale(1.2) translateY(8%);
  transform: scale(1.2) translateY(8%);
}
*[class*='mgz-animated-item--'] {
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  -ms-transition: 0.5s;
  -o-transition: 0.5s;
  width: 100%;
}
.mgz-animated-content:hover .mgz-animated-item--grow {
  -webkit-transform: scale(1.1);
  -ms-transform: scale(1.1);
  transform: scale(1.1);
}
.mgz-animated-content:hover .mgz-animated-item--shrink {
  -webkit-transform: scale(0.85);
  -ms-transform: scale(0.85);
  transform: scale(0.85);
}
.mgz-animated-content:hover .mgz-animated-item--enter-zoom-in,
.mgz-animated-content:hover .mgz-animated-item--enter-zoom-out,
.mgz-animated-content:hover .mgz-animated-item--fade-in {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-in,
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-out,
.mgz-animated-content:hover .mgz-animated-item--fade-out {
  opacity: 0;
}
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-out {
  -webkit-transform: scale(0.2);
  -ms-transform: scale(0.2);
  transform: scale(0.2);
}
.mgz-animated-content:hover .mgz-animated-item--exit-zoom-in {
  -webkit-transform: scale(2);
  -ms-transform: scale(2);
  transform: scale(2);
}
.mgz-animated-content:hover .mgz-animated-item--enter-from-bottom,
.mgz-animated-content:hover .mgz-animated-item--enter-from-left,
.mgz-animated-content:hover .mgz-animated-item--enter-from-right,
.mgz-animated-content:hover .mgz-animated-item--enter-from-top {
  opacity: 1;
  -webkit-transform: translateY(0) translateX(0);
  -ms-transform: translateY(0) translateX(0);
  transform: translateY(0) translateX(0);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-right {
  -webkit-transform: translateX(1000px);
  -ms-transform: translateX(1000px);
  transform: translateX(1000px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-left {
  -webkit-transform: translateX(-1000px);
  -ms-transform: translateX(-1000px);
  transform: translateX(-1000px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-top {
  -webkit-transform: translateY(-600px);
  -ms-transform: translateY(-600px);
  transform: translateY(-600px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-bottom {
  -webkit-transform: translateY(600px);
  -ms-transform: translateY(600px);
  transform: translateY(600px);
}
.mgz-animated-content:hover .mgz-animated-item--exit-to-bottom,
.mgz-animated-content:hover .mgz-animated-item--exit-to-left,
.mgz-animated-content:hover .mgz-animated-item--exit-to-right,
.mgz-animated-content:hover .mgz-animated-item--exit-to-top {
  opacity: 0;
}
.mgz-animated-content:hover .mgz-animated-item--move-right {
  -webkit-transform: translateX(30px);
  -ms-transform: translateX(30px);
  transform: translateX(30px);
}
.mgz-animated-content:hover .mgz-animated-item--move-left {
  -webkit-transform: translateX(-30px);
  -ms-transform: translateX(-30px);
  transform: translateX(-30px);
}
.mgz-animated-content:hover .mgz-animated-item--move-up {
  -webkit-transform: translateY(-30px);
  -ms-transform: translateY(-30px);
  transform: translateY(-30px);
}
.mgz-animated-content:hover .mgz-animated-item--move-down {
  -webkit-transform: translateY(30px);
  -ms-transform: translateY(30px);
  transform: translateY(30px);
}
.mgz-animated-content [class^=elementor-animated-item] {
  will-change: transform, opacity;
}
.mgz-animated-content .mgz-animated-item--enter-zoom-in {
  -webkit-transform: scale(0.2);
  -ms-transform: scale(0.2);
  transform: scale(0.2);
}
.mgz-animated-content .mgz-animated-item--enter-zoom-out {
  -webkit-transform: scale(2);
  -ms-transform: scale(2);
  transform: scale(2);
}
.mgz-animated-content .mgz-animated-item--enter-zoom-in,
.mgz-animated-content .mgz-animated-item--enter-zoom-out,
.mgz-animated-content .mgz-animated-item--fade-in {
  opacity: 0;
}
.mgz-animated-content .mgz-animated-item--exit-zoom-in,
.mgz-animated-content .mgz-animated-item--exit-zoom-out,
.mgz-animated-content .mgz-animated-item--fade-out {
  opacity: 1;
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  transform: scale(1);
}
.mgz-animated-content .mgz-animated-item--enter-from-right {
  -webkit-transform: translateX(1000px);
  -ms-transform: translateX(1000px);
  transform: translateX(1000px);
}
.mgz-animated-content .mgz-animated-item--enter-from-left {
  -webkit-transform: translateX(-1000px);
  -ms-transform: translateX(-1000px);
  transform: translateX(-1000px);
}
.mgz-animated-content .mgz-animated-item--enter-from-top {
  -webkit-transform: translateY(-600px);
  -ms-transform: translateY(-600px);
  transform: translateY(-600px);
}
.mgz-animated-content .mgz-animated-item--enter-from-bottom {
  -webkit-transform: translateY(500px);
  -ms-transform: translateY(500px);
  transform: translateY(500px);
}
.mgz-animated-content .mgz-animated-item--enter-from-bottom,
.mgz-animated-content .mgz-animated-item--enter-from-left,
.mgz-animated-content .mgz-animated-item--enter-from-right,
.mgz-animated-content .mgz-animated-item--enter-from-top {
  opacity: 0;
}
.mgz-animated-content .mgz-animated-item--exit-to-bottom,
.mgz-animated-content .mgz-animated-item--exit-to-left,
.mgz-animated-content .mgz-animated-item--exit-to-right,
.mgz-animated-content .mgz-animated-item--exit-to-top {
  opacity: 1;
  -webkit-transform: translateY(0) translateX(0);
  -ms-transform: translateY(0) translateX(0);
  transform: translateY(0) translateX(0);
}
.owl-nav .owl-prev,
.owl-nav .owl-next {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
}
.owl-dots {
  text-align: center;
}
.owl-dots .owl-dot {
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
  box-shadow: none !important;
}
@-webkit-keyframes backSlideOut {
  25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
  }
}
@-moz-keyframes backSlideOut {
  25% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px) translateX(-200%);
  }
}
@keyframes backSlideOut {
  25% {
    opacity: 0.5;
    transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    transform: translateZ(-500px) translateX(-200%);
  }
}
@-webkit-keyframes backSlideIn {
  0%,
  25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0) translateX(0);
  }
}
@-moz-keyframes backSlideIn {
  0%,
  25% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    -moz-transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    -moz-transform: translateZ(0) translateX(0);
  }
}
@keyframes backSlideIn {
  0%,
  25% {
    opacity: 0.5;
    transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    transform: translateZ(0) translateX(0);
  }
}
@-webkit-keyframes scaleToFade {
  to {
    opacity: 0;
    -webkit-transform: scale(0.8);
  }
}
@-moz-keyframes scaleToFade {
  to {
    opacity: 0;
    -moz-transform: scale(0.8);
  }
}
@keyframes scaleToFade {
  to {
    opacity: 0;
    transform: scale(0.8);
  }
}
@-webkit-keyframes goDown {
  from {
    -webkit-transform: translateY(-100%);
  }
}
@-moz-keyframes goDown {
  from {
    -moz-transform: translateY(-100%);
  }
}
@keyframes goDown {
  from {
    transform: translateY(-100%);
  }
}
@-webkit-keyframes scaleUpFrom {
  from {
    opacity: 0;
    -webkit-transform: scale(1.5);
  }
}
@-moz-keyframes scaleUpFrom {
  from {
    opacity: 0;
    -moz-transform: scale(1.5);
  }
}
@keyframes scaleUpFrom {
  from {
    opacity: 0;
    transform: scale(1.5);
  }
}
@-webkit-keyframes scaleUpTo {
  to {
    opacity: 0;
    -webkit-transform: scale(1.5);
  }
}
@-moz-keyframes scaleUpTo {
  to {
    opacity: 0;
    -moz-transform: scale(1.5);
  }
}
@keyframes scaleUpTo {
  to {
    opacity: 0;
    transform: scale(1.5);
  }
}
.owl-backSlide-out {
  -webkit-animation: backSlideOut 1s both ease;
  -moz-animation: backSlideOut 1s both ease;
  animation: backSlideOut 1s both ease;
}
.owl-backSlide-in {
  -webkit-animation: backSlideIn 1s both ease;
  -moz-animation: backSlideIn 1s both ease;
  animation: backSlideIn 1s both ease;
}
/* goDown */
.owl-goDown-out {
  -webkit-animation: scaleToFade 0.7s ease both;
  -moz-animation: scaleToFade 0.7s ease both;
  animation: scaleToFade 0.7s ease both;
}
.owl-goDown-in {
  -webkit-animation: goDown 0.6s ease both;
  -moz-animation: goDown 0.6s ease both;
  animation: goDown 0.6s ease both;
}
/* scaleUp */
.owl-fadeUp-in {
  -webkit-animation: scaleUpFrom 0.5s ease both;
  -moz-animation: scaleUpFrom 0.5s ease both;
  animation: scaleUpFrom 0.5s ease both;
}
.owl-fadeUp-out {
  -webkit-animation: scaleUpTo 0.5s ease both;
  -moz-animation: scaleUpTo 0.5s ease both;
  animation: scaleUpTo 0.5s ease both;
}
.mgz-element-inner {
  height: 100%;
  position: relative;
}
.mgz-element-inner:before,
.mgz-element-inner:after {
  content: " ";
  display: table;
  clear: both;
}
.inner-content {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}
.inner-content:before,
.inner-content:after {
  content: " ";
  display: table;
  clear: both;
}
.magezon-builder-preload .mgz-element {
  z-index: 0;
}
.mgz-child:not(:last-child) > .mgz-element-inner {
  margin-bottom: 15px;
}
.mgz-element {
  position: relative;
  text-align: left;
}
.mgz-element:before,
.mgz-element:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-element p:last-child {
  margin-bottom: 0;
}
.mgz-element .title {
  font-weight: 400;
}
.mgz-element-title-align-left .inner-content {
  margin-left: 0 !important;
}
.mgz-element-title-align-right .inner-content {
  margin-right: 0 !important;
}
.mgz-parallax,
.mgz-parallax-inner,
.mgz-parallax-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.mgz-parallax {
  -webkit-border-radius: inherit;
  -moz-border-radius: inherit;
  border-radius: inherit;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  overflow: hidden;
  pointer-events: none;
}
.mgz-parallax.mgz-parallax-mouse-parallax {
  -webkit-transform: translateX(0);
  transform: translateX(0);
}
.mgz-parallax .mgz-parallax-inner {
  background-repeat: no-repeat;
  background-position: 50% 50%;
}
.mgz-parallax .mgz-parallax-inner * {
  background-position: inherit !important;
  background-size: inherit !important;
  background-repeat: inherit !important;
}
.mgz-mfp .mfp-title {
  position: absolute;
  margin-top: 10px;
}
.mgz-mfp .mfp-counter {
  top: auto;
  bottom: -25px;
}
.mgz-animated {
  -webkit-opacity: 0;
  -moz-opacity: 0;
  opacity: 0;
}
.mgz-animated:not(.mgz_start_animation) {
  -webkit-animation: none;
  -o-animation: none;
  animation: none;
}
.mgz_start_animation {
  -webkit-opacity: 1;
  -moz-opacity: 1;
  opacity: 1;
}
.mgz-animated-infinite {
  animation-iteration-count: infinite;
  -webkit-animation-iteration-count: infinite;
}
@-webkit-keyframes mgz_ttb {
  0% {
    -webkit-transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_ttb {
  0% {
    -moz-transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_ttb {
  0% {
    -o-transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_ttb {
  0% {
    -webkit-transform: translate(0, -10%);
    -ms-transform: translate(0, -10%);
    -o-transform: translate(0, -10%);
    transform: translate(0, -10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_btt {
  0% {
    -webkit-transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_btt {
  0% {
    -moz-transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_btt {
  0% {
    -o-transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_btt {
  0% {
    -webkit-transform: translate(0, 10%);
    -ms-transform: translate(0, 10%);
    -o-transform: translate(0, 10%);
    transform: translate(0, 10%);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_ltr {
  0% {
    -webkit-transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_ltr {
  0% {
    -moz-transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_ltr {
  0% {
    -o-transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_ltr {
  0% {
    -webkit-transform: translate(-10%, 0);
    -ms-transform: translate(-10%, 0);
    -o-transform: translate(-10%, 0);
    transform: translate(-10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_rtl {
  0% {
    -webkit-transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    opacity: 1;
  }
}
@-moz-keyframes mgz_rtl {
  0% {
    -moz-transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -moz-transform: translate(0, 0);
    opacity: 1;
  }
}
@-o-keyframes mgz_rtl {
  0% {
    -o-transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -o-transform: translate(0, 0);
    opacity: 1;
  }
}
@keyframes mgz_rtl {
  0% {
    -webkit-transform: translate(10%, 0);
    -ms-transform: translate(10%, 0);
    -o-transform: translate(10%, 0);
    transform: translate(10%, 0);
    opacity: 0;
  }
  100% {
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
    opacity: 1;
  }
}
@-webkit-keyframes mgz_appear {
  0% {
    -webkit-transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -webkit-transform: scale(1);
    opacity: 1;
  }
}
@-moz-keyframes mgz_appear {
  0% {
    -moz-transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -moz-transform: scale(1);
    opacity: 1;
  }
}
@-o-keyframes mgz_appear {
  0% {
    -o-transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -o-transform: scale(1);
    opacity: 1;
  }
}
@keyframes mgz_appear {
  0% {
    -webkit-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform: scale(0.5);
    opacity: 0.1;
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
    opacity: 1;
  }
}
.mgz_top-to-bottom {
  -webkit-animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_ttb 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_bottom-to-top {
  -webkit-animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_btt 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_left-to-right {
  -webkit-animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_ltr 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_right-to-left {
  -webkit-animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_rtl 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mgz_appear {
  -webkit-animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -moz-animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -ms-animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: mgz_appear 0.7s 1 cubic-bezier(0.175, 0.885, 0.32, 1.275);
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
}
.mgz-row-full-height {
  min-height: 500px;
}
.mgz-row-full-height > .mgz-element-inner {
  min-height: 500px;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content:before,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content:before,
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content:after,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content:after {
  display: none;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element {
  -webkit-align-items: stretch;
  -ms-align-items: stretch;
  align-items: stretch;
}
.mgz-element-row.mgz-row-wrap-reverse > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner,
.mgz-element-row.mgz-row-equal-height > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-flex-grow: 1;
  -ms-flex-grow: 1;
  flex-grow: 1;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
}
.mgz-element-row.content-top > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-align-self: flex-start;
  -ms-align-self: flex-start;
  align-self: flex-start;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
}
.mgz-element-row.content-middle > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-align-self: center;
  -ms-align-self: center;
  align-self: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
}
.mgz-element-row.content-bottom > .mgz-element-inner > .inner-content > .mgz-element > .mgz-element-inner {
  -webkit-align-self: flex-end;
  -ms-align-self: flex-end;
  align-self: flex-end;
  -webkit-justify-content: flex-end;
  -ms-justify-content: flex-end;
  justify-content: flex-end;
}
.mgz-element-row.mgz-container {
  float: none;
  margin: 0 auto;
}
.page-layout-1column-fullwidth .column > .magezon-builder > .full_width_row > .mgz-element-inner,
.page-layout-1column-fullwidth .column > .magezon-builder > .full_width_row_content > .mgz-element-inner {
  padding-left: 10px;
  padding-right: 10px;
}
@media (max-width: 767px) {
  .mgz-row-wrap-reverse > .mgz-element-inner > .inner-content {
    -webkit-flex-direction: column-reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
  }
}
.mgz-element-column > .mgz-element-inner {
  padding: 10px;
}
.mgz-element-column.mgz-element-column-empty > .mgz-element-inner {
  padding: 0;
  margin: 0;
}
.mgz-row-gap-margin > .mgz-element-inner {
  margin: 10px;
  padding: 0;
}
.mgz-element-separator {
  position: relative;
}
.mgz-element-separator .title {
  background: #FFF;
  position: relative;
  z-index: 1;
  padding: 0 8px;
  display: inline-block;
  margin: 0;
}
.mgz-element-separator .title i + span,
.mgz-element-separator .title span + i {
  padding-left: 5px;
}
.mgz-element-separator .mgz-element-separator-line {
  -webkit-transform: translate(0%, -50%);
  -moz-transform: translate(0%, -50%);
  -ms-transform: translate(0%, -50%);
  -o-transform: translate(0%, -50%);
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  border-top: 1px solid transparent;
  margin: 0 auto;
}
.mgz-element-separator .mgz-text-left .title {
  padding-left: 0;
}
.mgz-element-separator .mgz-text-left .mgz-element-separator-line {
  left: 0;
}
.mgz-element-separator .mgz-text-right .title {
  padding-right: 0;
}
.mgz-element-separator-wrapper {
  position: relative;
}
.mgz-element-heading-text {
  margin: 0;
  color: inherit;
}
.mgz-element-heading-text > a {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  opacity: 1;
  font-weight: inherit;
}
.mgz-element-heading-text > a,
.mgz-element-heading-text > a:focus,
.mgz-element-heading-text > a:hover,
.mgz-element-heading-text > a:visited {
  border: none;
  text-decoration: inherit;
  color: inherit;
  font-weight: inherit;
}
.mgz-element-heading-text > a:hover {
  opacity: 0.85;
}
.mgz-tabs:before,
.mgz-tabs-nav:before,
.mgz-tabs-content:before,
.mgz-tabs:after,
.mgz-tabs-nav:after,
.mgz-tabs-content:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-tabs-nav > .mgz-tabs-tab-title > a,
.mgz-tabs-content > .mgz-tabs-tab-title > a {
  color: #666666;
}
.mgz-tabs-nav > .mgz-tabs-tab-title:not(.mgz-active) > a,
.mgz-tabs-content > .mgz-tabs-tab-title:not(.mgz-active) > a {
  background: #ebebeb;
}
.mgz-tabs-nav > .mgz-tabs-tab-title:not(.mgz-active) > a:hover,
.mgz-tabs-content > .mgz-tabs-tab-title:not(.mgz-active) > a:hover {
  background: #dcdcdc;
}
.mgz-tabs-nav > .mgz-tabs-tab-title:first-child > a,
.mgz-tabs-content > .mgz-tabs-tab-title:first-child > a {
  margin-top: 0 !important;
}
.mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a,
.mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
  background: #f8f8f8;
}
.mgz-tabs {
  color: #333;
}
.mgz-tabs .mgz-tabs-tab-title > a {
  -webkit-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -moz-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -ms-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -o-transition: background 0.2s ease-in-out, color 0.2s ease-in-out, border 0.2s ease-in-out;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  padding: 14px 20px;
  display: block;
  position: relative;
  z-index: 1;
  border: 1px solid #e3e3e3;
}
.mgz-tabs .mgz-tabs-tab-title > a:hover {
  text-decoration: none;
}
.mgz-tabs .mgz-tabs-tab-content {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  display: none;
}
.mgz-tabs .mgz-tabs-tab-content.mgz-active {
  display: block;
}
.mgz-tabs .mgz-tabs-tab-content > .mgz-element > .mgz-element-inner {
  margin-bottom: 0;
}
.mgz-tabs:not(.mgz-tabs-no-fill-content) .mgz-tabs-tab-content {
  border: 1px solid #e3e3e3;
  background: #f8f8f8;
  margin-top: -1px;
}
.mgz-element-tab-position-top.mgz-tabs,
.mgz-element-tab-position-bottom.mgz-tabs {
  flex-direction: column;
}
.mgz-element-tab-position-top.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
.mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
  margin-right: 5px;
}
.mgz-element-tab-position-top.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child,
.mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child {
  margin-right: 0;
}
@media (min-width: 768px) {
  .mgz-tabs {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .mgz-tabs .mgz-tabs-tab-title {
    text-align: left;
    display: inline-block;
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-title {
    display: none;
  }
  .mgz-element-tab-align-right.mgz-tabs > .mgz-tabs-nav {
    text-align: right;
  }
  .mgz-element-tab-align-center.mgz-tabs > .mgz-tabs-nav {
    text-align: center;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title > a {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child > a,
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title:last-child > a {
    margin-right: 0;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a,
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
    border-bottom-color: transparent;
  }
  .mgz-element-tab-position-top.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-left-radius: 0;
  }
  .mgz-element-tab-position-top.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-top.mgz-element-tab-align-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-left-radius: 5px;
    border-top-right-radius: 0;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title > a {
    border-top-right-radius: 0;
    border-top-left-radius: 0;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title:last-child > a,
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title:last-child > a {
    margin-right: 0;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a,
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
    border-top-color: transparent;
  }
  .mgz-element-tab-position-bottom.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-bottom-left-radius: 0;
    margin-bottom: -1px;
  }
  .mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav {
    order: 1;
  }
  .mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-bottom.mgz-tabs > .mgz-tabs-content > .mgz-tabs-tab-content {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title {
    margin-right: 0;
    display: block;
    width: 100%;
    margin-bottom: 5px;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    margin-right: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:first-child > a,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav > .mgz-tabs-tab-title:first-child > a {
    margin-top: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-content,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-content {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    min-width: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs > .mgz-tabs-content > .mgz-tabs-tab-content,
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-content > .mgz-tabs-tab-content {
    margin-top: 0;
    height: 100%;
  }
  .mgz-element-tab-position-left .mgz-tabs-tab-content,
  .mgz-element-tab-position-right .mgz-tabs-tab-content {
    margin-top: 0 !important;
  }
  .mgz-element-tab-position-left.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a {
    border-right-width: 0;
  }
  .mgz-element-tab-position-left.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-left-radius: 0;
    margin-left: -1px;
  }
  .mgz-element-tab-position-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title > a {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .mgz-element-tab-position-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-nav > .mgz-tabs-tab-title.mgz-active > a {
    border-left-width: 0;
  }
  .mgz-element-tab-position-right.mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content {
    border-top-right-radius: 0;
    margin-right: -1px;
  }
  .mgz-element-tab-position-right.mgz-tabs > .mgz-tabs-nav {
    order: 1;
  }
}
.tabs-opener {
  height: 50px;
  width: 50px;
  position: absolute;
  right: 0;
  top: 0;
  cursor: pointer;
  text-align: center;
  font-size: 20px;
  font-weight: 100;
  display: none;
}
.tabs-opener:before {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  content: '\e624';
}
.tabs-opener:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
@media (max-width: 767px) {
  .mgz-tabs-content .mgz-tabs-tab-title {
    display: none;
  }
  .mgz-tabs-nav .mgz-tabs-tab-title {
    display: inline-block;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content.mgz-active {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title {
    margin-top: 5px;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title:first-child {
    margin-top: 0;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-title.mgz-active > a {
    border-bottom-color: transparent;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }
  .mgz-tabs:not(.mgz-tabs-no-fill-content)[data-gap="0"] > .mgz-tabs-content > .mgz-tabs-tab-content.mgz-active {
    border-top-color: transparent;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-nav {
    display: none;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-content .mgz-tabs-tab-title {
    display: block;
    position: relative;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-content .mgz-tabs-tab-title .tabs-opener {
    display: block;
  }
  .mgz-tabs.tabs-mobile-accordion .mgz-tabs-content .mgz-tabs-tab-title.mgz-active .tabs-opener:before {
    content: '\e623';
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-title:first-child {
    margin-top: 0 !important;
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-title > a {
    margin-right: 0 !important;
  }
  .mgz-tabs .mgz-tabs-content > .mgz-tabs-tab-content {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}
.mgz-element-text p:first-child {
  margin-top: 0;
}
.mgz-element-text p:last-child {
  margin-bottom: 0;
}
.mgz-btn-style-modern .mgz-btn {
  background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
  background-image: -o-linear-gradient(top, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
  background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.01) 100%);
  background-repeat: repeat-x;
}
.mgz-btn-style-gradient .mgz-btn {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  -ms-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  background-size: 200% 100%;
}
.mgz-btn-style-gradient .mgz-btn:hover {
  background-position: 100% 0;
}
.mgz-btn-style-3d .mgz-btn:hover {
  top: 2px;
}
.mgz-btn-size-xs .mgz-btn {
  font-size: 11px;
  padding: 8px 12px;
}
.mgz-btn-size-sm .mgz-btn {
  font-size: 12px;
  padding: 11px 16px;
}
.mgz-btn-size-md .mgz-btn {
  font-size: 14px;
  padding: 14px 20px;
}
.mgz-btn-size-lg .mgz-btn {
  font-size: 18px;
  padding: 18px 30px;
}
.mgz-btn-size-xl .mgz-btn {
  font-size: 22px;
  padding: 22px 35px;
}
.mgz-element .swatch-option {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.mgz-element-single_image .mgz-element-inner {
  font-size: 0;
}
.mgz-single-image-wrapper {
  display: inline-block;
  line-height: 0;
  max-width: 100%;
  font-size: 1.4rem;
  position: relative;
}
.mgz-single-image-wrapper a {
  line-height: 0;
  font-size: 0;
  overflow: hidden;
  display: block;
}
.mgz-single-image-wrapper img {
  border-color: #ebebeb;
}
.mgz-single-image-wrapper.mgz-box-shadow-3d:before,
.mgz-single-image-wrapper.mgz-box-shadow-3d:after {
  -webkit-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.6);
  -moz-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.6);
  box-shadow: 0 15px 10px rgba(0, 0, 0, 0.6);
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  -webkit-transform: skewY(-6deg);
  -moz-transform: skewY(-6deg);
  -ms-transform: skewY(-6deg);
  -o-transform: skewY(-6deg);
  content: "";
  position: absolute;
  left: 5px;
  right: 50%;
  bottom: 8px;
  height: 30%;
  z-index: -1;
}
.mgz-single-image-wrapper.mgz-box-shadow-3d:after {
  left: 50%;
  right: 5px;
  -webkit-transform: skewY(6deg);
  -moz-transform: skewY(6deg);
  -ms-transform: skewY(6deg);
  -o-transform: skewY(6deg);
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}
.mgz-single-image-wrapper.mgz-box-outline {
  padding: 5px;
  border: 1px solid #ebebeb;
}
.mgz-single-image-wrapper.mgz-box-outline img {
  border: 1px solid #ebebeb;
}
.mgz-single-image-wrapper.mgz-box-shadow {
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
.mgz-single-image-wrapper.mgz-box-shadow img {
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
.mgz-single-image-wrapper.mgz-box-shadow2 {
  -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
}
.mgz-single-image-wrapper.mgz-box-shadow2 img {
  -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
}
.mgz-single-image-wrapper .image-title + .image-description {
  margin-top: 10px;
}
.mgz-single-image-wrapper .image-content {
  padding: 10px 20px;
  text-align: left;
  line-height: initial;
  clear: both;
  z-index: 1;
  position: absolute;
}
.mgz-single-image-wrapper .mgz-flex-position-below .image-content {
  padding: 10px 0;
  position: static;
}
.mgz-single-image-wrapper.item-content-hover .image-content {
  display: none;
}
.mgz-single-image-wrapper.item-content-hover:hover .image-content {
  display: block;
}
.mgz-single-image-wrapper .mgz-image-link {
  cursor: pointer;
}
.mgz-element-gmaps .gm-style-iw-d {
  overflow: visible !important;
  max-height: none !important;
  font-size: 13px;
}
.mgz-element-gmaps .gm-style-iw-c {
  max-height: none !important;
  padding: 10px !important;
}
.mgz-socialicons {
  margin: 0;
  padding: 0;
  list-style: none;
  display: inline-block;
}
.mgz-socialicons:before,
.mgz-socialicons:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-socialicons li {
  position: relative;
  margin-bottom: 8px;
  float: left;
}
.mgz-socialicons li a {
  float: left;
  margin-right: 8px;
}
.mgz-socialicons li i {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  -o-transition: all 0.3s;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-block;
  position: relative;
  text-align: center;
  text-decoration: none;
  line-height: 32px;
  color: #FFF;
}
.mgz-socialicons li i.mgz-fa-facebook-f {
  background: #3b5998;
}
.mgz-socialicons li i.mgz-fa-twitter {
  background: #00aced;
}
.mgz-socialicons li i.mgz-fa-pinterest-p {
  background: #cb2027;
}
.mgz-socialicons li i.mgz-fa-linkedin-in {
  background: #007bb6;
}
.mgz-socialicons li i.mgz-fa-tumblr {
  background: #32506d;
}
.mgz-socialicons li i.mgz-fa-instagram {
  background: #517fa4;
}
.mgz-socialicons li i.mgz-fa-skype {
  background: #12a5f4;
}
.mgz-socialicons li i.mgz-fa-dribbble {
  background: #ea4c8d;
}
.mgz-socialicons li i.mgz-fa-flickr {
  background: #ff0084;
}
.mgz-socialicons li i.mgz-fa-youtube {
  background: #a82400;
}
.mgz-socialicons li i.mgz-fa-vimeo-v {
  background: #45bbff;
}
.mgz-socialicons li i.mgz-fa-rss {
  background: #ff8a3c;
}
.mgz-socialicons li i.mgz-fa-behance {
  background: #191919;
}
.mgz-socialicons li .mgz-socialicons-follow-button {
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  -ms-transition: all 0.3s;
  -o-transition: all 0.3s;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-align-self: center;
  -ms-align-self: center;
  align-self: center;
  margin-right: 25px;
  padding: 0 12px;
  color: rgba(0, 0, 0, 0.5);
  background: rgba(0, 0, 0, 0.1);
  font-size: 14px;
  line-height: 1.6em;
}
.mgz-socialicons li .mgz-socialicons-follow-button:hover {
  text-decoration: none;
  color: rgba(0, 0, 0, 0.6);
  background: rgba(0, 0, 0, 0.2);
}
.mgz-socialicons .mgz-socialicons_network_name {
  display: none;
}
.mgz-element-newsletter_form .block.newsletter {
  display: inline-block;
  float: none;
  width: auto;
}
.mgz-element-newsletter_form .action.sr-only {
  position: static;
  width: auto;
  height: 100%;
  margin: 0;
  clip: unset;
  overflow: visible;
}
.mgz-element-newsletter_form .newsletter-title {
  margin: 0 0 20px;
  font-weight: 500;
}
.mgz-element-newsletter_form .newsletter-description {
  margin-bottom: 10px;
}
.magezon-builder .block-search {
  margin: 0;
  padding: 0;
  max-width: 100%;
  float: none;
  display: inline-block;
}
.mgz-element-search_form .block-search {
  margin: 0;
}
@media only screen and (max-width: 767px) {
  .mgz-element-search_form-wrapper {
    position: static;
  }
  .mgz-element-search_form-wrapper > .mgz-element-inner {
    position: static;
  }
  .mgz-element-search_form {
    position: static;
  }
  .mgz-element-search_form > .mgz-element-inner {
    position: static;
  }
  .mgz-element-search_form .minisearch.active .control {
    display: block;
  }
  .mgz-element-search_form .block-search .control {
    border: 0;
    width: 100%;
    left: 0;
    right: 0;
    margin: 0;
    bottom: -15px;
    position: absolute;
    background: #FFF;
  }
  .mgz-element-search_form .block-search .form.active .control input {
    position: static;
  }
}
.mgz-carousel-hidden {
  background: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/images/loader.gif') no-repeat center 25%;
}
.mgz-carousel:before,
.mgz-carousel:after {
  content: " ";
  display: table;
  clear: both;
}
.mgz-carousel.owl-carousel.owl-loaded .owl-stage-outer,
.mgz-carousel.owl-carousel.owl-loaded .owl-nav,
.mgz-carousel.owl-carousel.owl-loaded .owl-dots {
  opacity: 1;
}
.mgz-carousel.owl-carousel.owl-loaded.mgz-carousel-hidden .owl-stage-outer,
.mgz-carousel.owl-carousel.owl-loaded.mgz-carousel-hidden .owl-nav,
.mgz-carousel.owl-carousel.owl-loaded.mgz-carousel-hidden .owl-dots {
  opacity: 0;
}
.mgz-carousel .owl-item {
  position: relative;
  background-repeat: no-repeat;
  background-position: center top;
}
.mgz-carousel .owl-item img {
  max-width: 100%;
}
.mgz-carousel .mgz-carousel-item-inner {
  position: relative;
}
.mgz-carousel a + .item-content {
  cursor: pointer;
}
.mgz-carousel .item-content {
  position: absolute;
  text-align: center;
  color: #333;
  z-index: 1;
  font-size: 14px;
}
.mgz-carousel .item-title {
  font-size: 16px;
}
.mgz-carousel .owl-nav {
  margin: 0;
}
.mgz-carousel .owl-nav [class*=owl-] {
  -webkit-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -moz-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -ms-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -o-transition: opacity 300ms ease-in-out, background-color 300ms ease-in-out, color 300ms ease-in-out;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
  display: block;
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  cursor: pointer;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1;
  display: inline-block;
}
.mgz-carousel .owl-nav [class*=owl-]:hover {
  background: rgba(0, 0, 0, 0.8);
}
.mgz-carousel .owl-nav .owl-next {
  margin-left: 5px;
}
.mgz-carousel .owl-dots {
  margin-top: 10px;
  width: 100%;
  pointer-events: none;
}
.mgz-carousel .owl-dots .owl-dot {
  pointer-events: all;
}
.mgz-carousel .owl-dots .owl-dot span {
  -webkit-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -moz-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -ms-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -o-transition: width 300ms ease-in-out, height 300ms ease-in-out, margin 300ms ease-in-out, background-color 300ms ease-in-out;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
  display: block;
  width: 10px;
  height: 10px;
  margin: 8px;
  background: rgba(0, 0, 0, 0.6);
}
.mgz-carousel .owl-dots .owl-dot:hover span,
.mgz-carousel .owl-dots .owl-dot.active span {
  background: rgba(0, 0, 0, 0.8);
}
.mgz-carousel .mgz-carousel-magnific {
  cursor: pointer;
}
.mgz-carousel .mgz-carousel-multirow .product-item-info {
  margin-bottom: 15px;
}
.mgz-carousel .mgz-carousel-multirow .product-item-info:last-child {
  margin-bottom: 0;
}
.mgz-carousel .product-item {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 100%;
}
.mgz-carousel .product-item .product-item-info {
  width: 100%;
}
.mgz-carousel.mgz-carousel-equal-height .owl-stage {
  display: flex;
}
.mgz-carousel.mgz-carousel-equal-height .owl-item {
  display: flex;
  flex: 1 0 auto;
}
.mgz-carousel-dot-inside .owl-dots {
  position: absolute;
  bottom: 15px;
  margin: 0;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot {
  bottom: 15px;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot span {
  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
  background: #FFF;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot:hover span,
.mgz-carousel-dot-inside .owl-dots .owl-dot.active span {
  background: #FFF;
  width: 16px;
  height: 16px;
  margin: 5px;
}
.mgz-carousel-dot-inside .owl-dots .owl-dot:hover:not(.active) span {
  background: #FFF;
}
.mgz-carousel-nav-position-top_left .owl-nav,
.mgz-carousel-nav-position-top_right .owl-nav {
  position: absolute;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-mini .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-mini .owl-nav {
  top: -40px;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-small .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-small .owl-nav {
  top: -50px;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-normal .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-normal .owl-nav {
  top: -60px;
}
.mgz-carousel-nav-position-top_left.mgz-carousel-nav-size-large .owl-nav,
.mgz-carousel-nav-position-top_right.mgz-carousel-nav-size-large .owl-nav {
  top: -70px;
}
.mgz-carousel-nav-position-top_left .owl-nav {
  left: 0;
}
.mgz-carousel-nav-position-top_right .owl-nav {
  right: 0;
}
.mgz-carousel-nav-position-bottom_left .owl-nav {
  text-align: left;
  margin-top: 10px;
}
.mgz-carousel-nav-position-bottom_right .owl-nav {
  text-align: right;
  margin-top: 10px;
}
.mgz-carousel-nav-position-bottom_center .owl-nav {
  margin-top: 10px;
  text-align: center;
}
.mgz-carousel-nav-position-bottom_center .owl-nav .owl-prev {
  margin-right: 5px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-mini .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-mini .owl-next {
  top: -40px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-small .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-small .owl-next {
  top: -50px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-normal .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-normal .owl-next {
  top: -60px;
}
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-large .owl-prev,
.mgz-carousel-nav-position-top_split.mgz-carousel-nav-size-large .owl-next {
  top: -70px;
}
.mgz-carousel-nav-position-top_split .owl-nav [class*=owl-] {
  position: absolute;
}
.mgz-carousel-nav-position-top_split .owl-nav .owl-prev {
  left: 0;
}
.mgz-carousel-nav-position-top_split .owl-nav .owl-next {
  right: 0;
}
.mgz-carousel-nav-position-center_split .owl-nav [class*=owl-] {
  position: absolute;
  opacity: 0;
}
.mgz-carousel-nav-position-center_split .owl-nav .owl-prev {
  -webkit-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  position: absolute;
  top: 50%;
  left: 0;
}
.mgz-carousel-nav-position-center_split .owl-nav .owl-next {
  -webkit-transform: translate(0, -50%);
  -moz-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  -o-transform: translate(0, -50%);
  position: absolute;
  top: 50%;
  right: 0;
}
.mgz-carousel-nav-position-center_split:hover .owl-nav [class*=owl-] {
  opacity: 1;
  filter: alpha(opacity=100);
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-mini .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-mini .owl-next {
  bottom: -40px;
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-small .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-small .owl-next {
  bottom: -50px;
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-normal .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-normal .owl-next {
  bottom: -60px;
}
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-large .owl-prev,
.mgz-carousel-nav-position-bottom_split.mgz-carousel-nav-size-large .owl-next {
  bottom: -70px;
}
.mgz-carousel-nav-position-bottom_split .owl-nav [class*=owl-] {
  position: absolute;
}
.mgz-carousel-nav-position-bottom_split .owl-nav .owl-prev {
  left: 0;
}
.mgz-carousel-nav-position-bottom_split .owl-nav .owl-next {
  right: 0;
}
.mgz-carousel-nav-size-mini .owl-nav [class*=owl-] {
  width: 20px;
  height: 20px;
  line-height: 20px;
}
.mgz-carousel-nav-size-small .owl-nav [class*=owl-] {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.mgz-carousel-nav-size-normal .owl-nav [class*=owl-] {
  width: 40px;
  height: 40px;
  line-height: 40px;
}
.mgz-carousel-nav-size-large .owl-nav [class*=owl-] {
  width: 50px;
  height: 50px;
  line-height: 50px;
}
.mgz-product-listing .product-image-wrapper {
  height: auto;
  padding: 0 !important;
}
.mgz-product-listing .product-image-wrapper .product-image-photo {
  position: static;
}
.magezon-builder .mgz-element-sidebar .sidebar-main,
.magezon-builder .mgz-element-sidebar .sidebar-additional {
  width: 100%;
  padding: 0;
}
.magezon-builder .mgz-element-sidebar .filter-options-item {
  width: 100%;
  border-bottom: 1px solid #cccccc;
}
.magezon-builder .mgz-element-sidebar .filter-options-title {
  padding: 10px 40px 0 10px;
}
@media (min-width: 768px) {
  .magezon-builder .mgz-element-sidebar .filter-options-item:before,
  .magezon-builder .mgz-element-sidebar .filter-options-item:after {
    display: none !important;
    border: 0 !important;
  }
  .magezon-builder .mgz-element-sidebar .filter-options-content {
    position: static;
    border: 0;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    width: 100%;
  }
}
.mgz-countdown {
  -webkit-align-self: center;
  -ms-align-self: center;
  align-self: center;
  -webkit-justify-content: center;
  -ms-justify-content: center;
  justify-content: center;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  padding: 30px;
}
.mgz-countdown .mgz-countdown-heading-wrapper {
  text-align: left;
}
.mgz-countdown .mgz-countdown-subheading {
  font-size: 1.4rem;
}
.mgz-countdown .mgz-countdown-heading {
  font-size: 18px;
  font-weight: 700;
}
.mgz-countdown .mgz-countdown-number {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
  position: relative;
  display: inline-block;
}
.mgz-countdown .mgz-countdown-counter-wrapper {
  -webkit-flex-grow: 1;
  -ms-flex-grow: 1;
  flex-grow: 1;
}
.mgz-countdown .mgz-countdown-unit {
  position: relative;
  padding: 10px;
}
.mgz-countdown .mgz-countdown-unit-number {
  font-size: 24px;
  line-height: 1;
}
.mgz-countdown .mgz-countdown-unit-label {
  font-size: 1.4rem;
}
.mgz-countdown .mgz-countdown-unit-label {
  min-width: 80px;
}
.mgz-countdown .svg-container {
  display: inline-block;
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  padding-bottom: 100%;
}
.mgz-countdown .svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.mgz-countdown.mgz-countdown-text-inline .mgz-countdown-unit-label {
  min-width: auto;
  display: inline-block;
}
.mgz-countdown .mgz-countdown-link-wrapper {
  padding: 10px;
}
.mgz-countdown-separator-colon .mgz-countdown-number:after {
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  content: ":";
  font-size: 30px;
  position: absolute;
  right: 0px;
  top: 50%;
  z-index: 10;
  display: inline-block;
}
.mgz-countdown-separator-colon .mgz-countdown-number:last-child:after {
  display: none;
}
.mgz-countdown-separator-line .mgz-countdown-number:after {
  content: "";
  display: inline-block;
  top: 0px;
  bottom: 0px;
  z-index: 10;
  border-right: 1px solid #cccccc;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  left: auto;
}
.mgz-countdown-separator-line .mgz-countdown-number:last-child:after {
  display: none;
}
.mgz-countdown-circle .mgz-countdown-unit {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 11;
}
@media (max-width: 767px) {
  .mgz-countdown {
    display: block;
    padding: 10px;
  }
  .mgz-countdown .mgz-countdown-counter-wrapper {
    margin-top: 20px;
    margin-bottom: 10px;
  }
  .mgz-countdown .mgz-countdown-heading-wrapper,
  .mgz-countdown .mgz-countdown-link-wrapper {
    text-align: center;
  }
  .mgz-countdown.mgz-countdown-text-inline .mgz-countdown-unit-label {
    min-width: 80px;
    display: block;
  }
  .mgz-countdown.mgz-countdown-separator-colon .mgz-countdown-number:after {
    display: none;
  }
  .mgz-countdown .mgz-countdown-unit {
    padding: 10px !important;
  }
}
.page-layout-1column-fullwidth #maincontent {
  max-width: 100%;
  margin: 0;
  padding: 0;
}
.page-layout-1column,
.page-layout-2columns-left,
.page-layout-2columns-right,
.page-layout-1column-fullwidth {
  overflow-x: hidden;
}
.magezon-builder {
  position: relative;
  z-index: 2;
}
.magezon-builder:before,
.magezon-builder:after {
  content: " ";
  display: table;
  clear: both;
}
.magezon-builder * {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.magezon-builder iframe,
.magezon-builder video,
.magezon-builder img {
  max-width: 100%;
}
.magezon-builder p {
  margin-top: 0;
}
.mgz-block-heading {
  margin-bottom: 10px;
  padding-bottom: 10px;
  position: relative;
  text-align: center;
}
.mgz-block-heading.mgz-block-heading-line:before {
  content: '';
  display: block;
  height: 1px;
  width: 100%;
  background: #cecece;
  position: absolute;
  top: 40%;
  z-index: 0;
}
.mgz-block-heading.mgz-block-heading-line .title {
  display: inline-block;
  background: #FFF;
  padding: 0;
  position: relative;
}
.mgz-block-heading.mgz-block-heading-line h2 {
  font-weight: 500;
}
.mgz-block-heading.mgz-block-heading-line-position-bottom:before {
  bottom: 0;
  top: auto;
}
.mgz-block-heading.mgz-block-heading-align-center {
  text-align: center;
}
.mgz-block-heading.mgz-block-heading-align-center .title {
  padding: 0 10px;
}
.mgz-block-heading.mgz-block-heading-align-left {
  text-align: left;
}
.mgz-block-heading.mgz-block-heading-align-left .title {
  padding-right: 10px;
}
.mgz-block-heading.mgz-block-heading-align-right {
  text-align: right;
}
.mgz-block-heading.mgz-block-heading-align-right .title {
  padding-left: 10px;
}
.mgz-block-heading .title {
  margin: 0;
  font-weight: 400;
}
.mgz-block-heading .info {
  margin: 0;
}
.mgz_fit {
  width: 1%;
}
.magezon-builder-btn {
  background: #007dbd;
  border-color: #007dbd;
  color: #fff;
  position: relative;
  text-align: left;
  font-weight: 500;
  line-height: 1.4;
  padding: 0.6rem 1em 0.6rem 35px;
  display: inline-block;
  margin-bottom: 10px;
}
.magezon-builder-btn:hover {
  color: #FFF;
  text-decoration: none;
  background: #0073ae;
}
.magezon-builder-btn i {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  font-size: 25px;
  position: absolute;
  left: 15px;
}
table .magezon-builder .mgz-container {
  width: 100%;
}
.mgz-condition-html .rule-tree ul {
  padding-left: 16px;
}
.mgz-builder-single_image-icon {
  background-image: url('../../frontend/Creativestyle/theme-kma/pl_PL/Magezon_Builder/images/icons/element-icon-single-image.svg') !important;
}
.item.product .magezon-builder .mgz-container {
  width: 100%;
}
.mgz-builder-wrapper._disabled > .admin__field-control > button,
.mgz-builder-wrapper._disabled > .admin__field-control .mgz-builder {
  cursor: default;
  opacity: 0.5;
  pointer-events: none;
}
.mgz-overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
}
.mgz-absolute-link {
  position: absolute;
  z-index: 11;
  width: 100%;
  height: 100%;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
}
.admin__form-loading-mask[data-component="linkbuilder_form.linkbuilder_form"] {
  display: none;
}
.mgz-image-switch-after {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
}
.mgz-image-switch:hover .mgz-image-switch-before {
  opacity: 0;
}
.mgz-image-switch:hover .mgz-image-switch-after {
  opacity: 1;
}
@media all and (min-width: 768px) {
  html {
    height: auto !important;
  }
}.navigation {
  font-weight: normal !important;
}
.navigation > .ninjamenus.ninjamenus-desktop {
  margin: 0 20px;
}
.nav-item {
  position: relative;
  text-align: left;
}
.nav-item.active > a {
  color: #f55856;
}
.nav-item > a {
  -webkit-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -moz-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -ms-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -o-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  color: #333;
  font-weight: 400;
  line-height: 35px;
  text-decoration: none;
  display: block;
  position: relative;
  padding: 0 15px;
}
.nav-item > a:hover {
  color: #f55856;
}
.nav-item > a:hover .title-wrapper .label {
  background-color: #555;
}
.nav-item > a:hover .title-wrapper .label:before {
  border-top-color: #555;
}
.nav-item > a > .opener {
  width: 35px;
  height: 35px;
}
.nav-item > a .label {
  -webkit-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  -moz-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  -ms-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  -o-transition: color 0.45s ease-in-out, background-color 0.45s ease-in-out;
  padding: 2px 4px;
  font-size: 11px;
  font-weight: 400;
  line-height: 18px;
  background-color: #ed143d;
  color: #fff;
}
.nav-item > a .item-icon {
  line-height: inherit;
}
.nav-item > a .item-icon + span,
.nav-item > a span + .item-icon {
  margin-left: 2px;
}
.nav-item > a span.title {
  display: inline-block;
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
}
.nav-item > a > span {
  display: inline-block;
}
.nav-item .caret {
  line-height: inherit;
  border: 0;
  height: auto;
}
.nav-item .item-submenu {
  position: absolute;
  display: none;
  -webkit-animation-duration: 0.2s;
  animation-duration: 0.2s;
  z-index: 11;
  width: 100%;
  height: auto;
}
.nav-item.ninjamenus-hover > .item-submenu {
  display: block;
}
.magezon-builder > .nav-item > a {
  line-height: 50px;
  font-weight: 600;
}
.magezon-builder > .nav-item > .opener {
  height: 50px;
  width: 50px;
}
.subtitle {
  display: block !important;
  font-size: 11px;
  line-height: 13px;
  font-weight: 400;
  color: #999;
  white-space: normal;
  margin-top: -10px;
}
.label-top_left > a .label {
  position: absolute;
  top: -10px;
  left: 10px;
}
.label-top_left > a .label:before {
  -webkit-transition: border-color 450ms ease-in-out;
  -moz-transition: border-color 450ms ease-in-out;
  -ms-transition: border-color 450ms ease-in-out;
  -o-transition: border-color 450ms ease-in-out;
  position: absolute;
  left: 6px;
  top: 22px;
  width: 0;
  height: 0;
  content: "";
  border-style: solid;
  border-width: 4px;
  border-color: transparent;
  border-top-color: #ed143d;
}
.label-top_right > a .label {
  position: absolute;
  top: -10px;
  right: 10px;
}
.label-top_right > a .label:before {
  -webkit-transition: border-color 450ms ease-in-out;
  -moz-transition: border-color 450ms ease-in-out;
  -ms-transition: border-color 450ms ease-in-out;
  -o-transition: border-color 450ms ease-in-out;
  position: absolute;
  right: 6px;
  top: 22px;
  width: 0;
  height: 0;
  content: "";
  border-style: solid;
  border-width: 4px;
  border-color: transparent;
  border-top-color: #ed143d;
}
.label-left > a, .label-right > a  {
  justify-content: flex-start;
  display: flex;
  align-items: flex-end;
}
.ninjamenus-hamburger-trigger {
  line-height: 50px;
  background: #f2f2f2;
  display: none;
}
.ninjamenus-hamburger-trigger .trigger-icon {
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  margin-right: 5px;
}
.ninjamenus-hamburger-trigger .trigger-icon .menu-trigger-inner {
  -webkit-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -moz-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -ms-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
  -o-transition: color 300ms ease-in-out, background-color 300ms ease-in-out;
}
.ninjamenus-hamburger-trigger .trigger-icon .line {
  display: block;
  background-color: #333333;
  height: 3px;
  margin-bottom: 2px;
}
.ninjamenus-hamburger-trigger .menu-trigger-inner {
  display: inline-block;
  padding: 0 15px;
  cursor: pointer;
}
.ninjamenus-hamburger-trigger .menu-trigger-inner:hover {
  background-color: #f55856;
  color: #ffffff;
}
.ninjamenus-hamburger-trigger .menu-trigger-inner:hover .line {
  background: #FFF;
}
.ninjamenus {
  position: relative;
}
.ninjamenus:before,
.ninjamenus:after {
  content: " ";
  display: table;
  clear: both;
}
.ninjamenus .ninjamenus-toggle-active > .opener:before {
  content: '\e60d';
}
.ninjamenus .level0 > a > span.title {
  font-weight: inherit;
}
.ninjamenus .level0 > a > span.title-wrapper .title {
  font-weight: inherit;
}
.ninjamenus .opener {
  position: absolute;
  right: 0;
  top: 0;
  cursor: pointer;
  text-align: center;
  font-size: 20px;
  font-weight: 100;
  display: none;
}
.ninjamenus .opener:before {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: '\e61c';
}
.ninjamenus .opener:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.ninjamenus .drilldown-opener {
  position: absolute;
  right: 0;
  top: 0;
  cursor: pointer;
  text-align: center;
  font-size: 20px;
  font-weight: 100;
  display: none;
}
.ninjamenus .drilldown-opener:before {
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  font-family: 'Magezon-Icons' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: '\e61c';
}
.ninjamenus .item-submenu {
  padding: 10px;
}
.ninjamenus .drilldown-opener:hover {
  background-color: rgba(0, 0, 0, 0.05);
}
.ninjamenus .nav-item > .drilldown-opener:before {
  content: '\e60a';
}
.ninjamenus .ninjamenus-drilldown-back > .drilldown-opener:before {
  content: '\e617';
}
.ninjamenus .links {
  margin: 0;
  padding: 10px 15px;
  border-bottom: 1px solid #EEE;
}
.ninjamenus .links li {
  position: relative;
  margin: 0;
  display: inline-block;
}
.ninjamenus .links li > a {
  line-height: 35px;
  padding-left: 15px;
  padding-right: 15px;
  display: block;
}
.ninjamenus .links li > a:hover {
  background: #f55856;
  text-decoration: none;
  color: #fff;
}
.ninjamenus a {
  color: #333;
  font-weight: 400;
}
.ninjamenus .block.tabspro-block {
  margin: 0;
}
.ninjamenus .form.contact {
  width: 100% !important;
}
.ninjamenus.ninjamenus-vertical > .magezon-builder > .nav-item > a .caret {
  -webkit-opacity: 0.8;
  -moz-opacity: 0.8;
  opacity: 0.8;
  float: right;
  line-height: inherit;
}
.ninjamenus.ninjamenus-vertical > .magezon-builder > .nav-item > a .label {
  right: auto;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-horizontal > .magezon-builder > .nav-item {
  float: left;
  margin: 0;
}
.ninjamenus.ninjamenus-desktop .ninjamenus-right {
  float: right !important;
}
.ninjamenus.ninjamenus-desktop .item-submenu {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  width: 200px;
}
.ninjamenus.ninjamenus-desktop .item-submenu:before,
.ninjamenus.ninjamenus-desktop .item-submenu:after {
  content: " ";
  display: table;
  clear: both;
}
.ninjamenus.ninjamenus-desktop .mega > .item-submenu {
  background: #FFF;
}
.ninjamenus.ninjamenus-desktop .ninjamenus-hide-desktop {
  display: none;
}
.ninjamenus.ninjamenus-desktop .left_edge_menu_bar,
.ninjamenus.ninjamenus-desktop .right_edge_menu_bar,
.ninjamenus.ninjamenus-desktop .left_vertical_full_height,
.ninjamenus.ninjamenus-desktop .right_vertical_full_height {
  position: static;
}
.ninjamenus.ninjamenus-desktop .left_edge_menu_bar > .item-submenu {
  left: 0;
}
.ninjamenus.ninjamenus-desktop .right_edge_menu_bar > .item-submenu {
  right: 0;
}
.ninjamenus.ninjamenus-desktop .left_vertical_full_height > .item-submenu {
  right: 100%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .right_vertical_full_height > .item-submenu {
  left: 100%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .left_edge_parent_item > .item-submenu {
  left: 0;
}
.ninjamenus.ninjamenus-desktop .right_edge_parent_item > .item-submenu {
  right: 0;
}
.ninjamenus.ninjamenus-desktop .level0 .left_edge_parent_item > .item-submenu {
  left: 80%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .level0 .right_edge_parent_item > .item-submenu {
  right: 80%;
  top: 0;
}
.ninjamenus.ninjamenus-desktop .stack > a .caret {
  display: none;
}
.ninjamenus.ninjamenus-desktop .stack > .item-submenu {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  position: static;
  display: block;
  width: 100%;
  padding: 0;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown {
  width: 100%;
  max-width: 100%;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion.label-top_right > a .label,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown.label-top_right > a .label {
  right: auto;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .level0,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .level0 {
  border-bottom: 1px solid #e6e6e6;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .level0 > a:hover,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .level0 > a:hover {
  background: transparent;
  color: #333;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .nav-item,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .nav-item {
  position: relative !important;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .item-submenu,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .item-submenu {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  position: static;
  width: 100%;
  max-width: 100%;
  padding: 0;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .caret,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .caret {
  display: none;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .mega > .opener,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .mega > .opener {
  display: block;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .nav-item > a,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .nav-item > a {
  line-height: 50px;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-accordion .nav-item > .opener,
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .nav-item > .opener {
  height: 50px;
  width: 50px;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown {
  overflow: hidden;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .drilldown-opener {
  display: block;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-drilldown .stack > .drilldown-opener {
  display: none;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-vertical .nav-item.level0:hover > a,
.ninjamenus.ninjamenus-desktop.ninjamenus-horizontal .nav-item.level0:hover > a {
  background-color: #f55856;
  color: #FFF;
}
.ninjamenus.ninjamenus-desktop.ninjamenus-vertical .nav-item.level0.active > a,
.ninjamenus.ninjamenus-desktop.ninjamenus-horizontal .nav-item.level0.active > a {
  background-color: #333;
  color: #FFF;
}
.ninjamenus.ninjamenus-mobile {
  overflow-x: hidden;
}
.ninjamenus.ninjamenus-mobile.ninjamenus-hamburger-menu,
.ninjamenus.ninjamenus-mobile .ninjamenus-hide-mobile {
  display: none;
}
.ninjamenus.ninjamenus-mobile .opener {
  display: block;
}
.ninjamenus.ninjamenus-mobile .caret {
  display: none;
}
.ninjamenus.ninjamenus-mobile .item-submenu {
  max-width: 100% !important;
  position: relative;
}
.ninjamenus.ninjamenus-mobile .nav-item > a {
  line-height: 50px;
}
.ninjamenus.ninjamenus-mobile .nav-item > .opener {
  height: 50px;
  width: 50px;
}
.ninjamenus.ninjamenus-mobile .level0.label-top_right > a .label {
  right: auto;
}
.ninjamenus.ninjamenus-mobile .level0 > a .title {
  margin: 0 !important;
}
.ninjamenus-hamburger-active .menu-trigger-inner {
  background-color: #f55856;
  color: #ffffff;
}
.ninjamenus-hamburger-active .menu-trigger-inner .line {
  background: #FFF;
}
.ninjamenus-hamburger-active .ninjamenus-hamburger-menu {
  display: block !important;
}
.ninjamenus-widget .ninjamenus-vertical,
.ninjamenus-widget .ninjamenus-accordion,
.ninjamenus-widget .ninjamenus-drilldown {
  border: 1px solid #6e716e;
}
.cms-content .block.ninjamenus-widget > .block-title,
.block.ninjamenus-widget > .block-title {
  text-transform: uppercase;
  padding: 10px;
  background: #6e716e;
  color: #fff;
  margin: 0;
  border: 1px solid #6e716e;
}
.cms-content .block.ninjamenus-widget > .block-title > strong,
.block.ninjamenus-widget > .block-title > strong {
  display: block;
}
.cms-content .block.ninjamenus-widget > .ninjamenus,
.block.ninjamenus-widget > .ninjamenus {
  background: #f8f8f8;
}
.cms-content .block.ninjamenus-widget > .ninjamenus.ninjamenus-drilldown,
.block.ninjamenus-widget > .ninjamenus.ninjamenus-drilldown {
  border: 1px solid #6e716e;
}
.scroll-to-fixed-fixed .magezon-builder > .nav-item.label-top_left > a .label,
.scroll-to-fixed-fixed .magezon-builder > .nav-item.label-top_right > a .label {
  display: none;
}
.scroll-to-fixed-fixed .ninjamenus-hide-sticky {
  display: none !important;
}
.ninjamenus-lazy-blur {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  -webkit-transition: 0.3s filter linear;
  -moz-transition: 0.3s filter linear;
  -ms-transition: 0.3s filter linear;
  -o-transition: 0.3s filter linear;
  -webkit-filter: blur(5px);
  filter: blur(5px);
}
.ninjamenus-lazy-blur .ninjamenus-lazy-loaded {
  -webkit-filter: blur(0px);
  filter: blur(0px);
  image-rendering: initial;
}
.ninjamenus-drilldown-back {
  line-height: 50px;
  text-align: center;
  background: #f0f0f0;
  border-bottom: 1px solid #e6e6e6;
  text-transform: uppercase;
  font-weight: 600;
  font-size: 18px;
  display: none;
}
.ninjamenus-drilldown-back > .drilldown-opener {
  height: 50px;
  width: 50px;
  left: 0;
  display: block;
}
.drilldown-root > div > .ninjamenus-drilldown-back {
  display: block;
}
.ninjamenus-tablet {
  position: static !important;
}
.ninjamenus-tablet .item-submenu {
  left: 0 !important;
  max-width: 100%;
}
.ninjamenus-desktop.ninjamenus-top .level0 {
  margin: 0;
  display: inline-block;
}
.item-autolist .nav-item.stack > a{
  font-weight: 900;
}
.ninjamenus-desktop .item-autolist > .item-submenu > .nav-item{
  float: left;
}
.ninjamenus-desktop .item-autolist-col2 > .item-submenu > .nav-item{
  width: 50%;
}
.ninjamenus-desktop .item-autolist-col3 > .item-submenu > .nav-item{
  width: 33.33333333%;
}
.ninjamenus-desktop .item-autolist-col4 > .item-submenu > .nav-item{
  width: 25%;
}
.ninjamenus-desktop .item-autolist-col5 > .item-submenu > .nav-item{
  width: 20%;
}
.ninjamenus-desktop .item-autolist-col6 > .item-submenu > .nav-item{
  width: 16.66666667%;
}
.ninjamenus-desktop .item-autolist-col2 > .item-submenu > .nav-item:nth-child(2n+1),
.ninjamenus-desktop .item-autolist-col3 > .item-submenu > .nav-item:nth-child(3n+1),
.ninjamenus-desktop .item-autolist-col4 > .item-submenu > .nav-item:nth-child(4n+1),
.ninjamenus-desktop .item-autolist-col4 > .item-submenu > .nav-item:nth-child(5n+1),
.ninjamenus-desktop .item-autolist-col3 > .item-submenu > .nav-item:nth-child(6n+1) {
  clear: left;
}
.nav-item-static {
  position: static !important;
}

.nav-item.nav-item-static > .item-submenu{
  width: 100vw !important;
}

.ninjamenus.ninjamenus-mobile .nav-item-static{
  position: relative !important;
}
.ninjamenus.ninjamenus-mobile  .nav-item.nav-item-static > .item-submenu{
  width: 100% !important;
}
.ninjamenus-top-overlay {
    position: absolute;
    left: 0;
    width: 100%;
    background: #0e0e0eb0;
    height: 100%;
    z-index: 10;
    display: none;
}/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
html {
  box-sizing: border-box;
  font-size: 62.5%;
  background: #fff;
  /* stylelint-disable */
  overflow-x: hidden;
  /* stylelint-enable */ }

*,
*:before,
*:after {
  box-sizing: inherit; }

body {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-overflow-scrolling: touch;
  margin: 0;
  font-size: 1.4rem;
  font-display: swap; }

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

/* Hide HTML5 Up and Down arrows. */
input[type='number'] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield; }
  input[type='number']::-webkit-outer-spin-button, input[type='number']::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0; }

/* Hide HTML5 'X' in search input */
input[type='search'] {
  /* Clears the 'X' from Internet Explorer */
  /* Clears the 'X' from Chrome */ }
  input[type='search']::-ms-clear, input[type='search']::-ms-reveal {
    display: none;
    width: 0;
    height: 0; }
  input[type='search']::-webkit-search-decoration, input[type='search']::-webkit-search-cancel-button, input[type='search']::-webkit-search-results-button, input[type='search']::-webkit-search-results-decoration {
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
body {
  width: 100vw;
  max-width: 100vw !important;
  min-height: 100vh;
  height: auto !important; }

::-webkit-scrollbar {
  width: 6px;
  border-radius: 3px; }

::-webkit-scrollbar-track {
  background: #d5d5d5;
  border-radius: 3px; }

::-webkit-scrollbar-thumb {
  background: #333333;
  border-radius: 3px; }
  ::-webkit-scrollbar-thumb:hover {
    background: #878787; }

.action.create.primary::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.action.create.primary, .action.create.primary:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .action.create.primary:hover:not([disabled]), .action.create.primary:focus:not([disabled]), .action.create.primary:active:not([disabled]), .action.create.primary:visited:hover:not([disabled]), .action.create.primary:visited:focus:not([disabled]), .action.create.primary:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .action.create.primary[disabled], .action.create.primary:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-hide-laptop {
    display: none !important;
    /* stylelint-disable-line declaration-no-important */ } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-hide-tablet {
    display: none !important;
    /* stylelint-disable-line declaration-no-important */ } }

.cs-no-display {
  display: none !important;
  /* stylelint-disable-line declaration-no-important */ }

.cs-aspect-ratio {
  position: relative;
  overflow: hidden;
  padding-top: 56.25%; }
  .cs-aspect-ratio__content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-container {
  background-color: #f7f7f7;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 25%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 72%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
body,
html {
  height: 100%;
  max-width: 100vw; }

.no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh; }

.no-scroll-child {
  overflow-y: hidden !important; }

#maincontent {
  flex: 1 0 auto; }

.page-wrapper {
  display: block !important;
  min-height: 100%; }
  @media (min-width: 48em) {
    .page-wrapper {
      display: flex !important;
      flex-direction: column !important; } }

.columns .column.main {
  width: auto;
  padding: 4rem 0 0;
  max-width: 100%;
  min-height: 10rem; }
  @media (min-width: 48em) {
    .columns .column.main {
      padding: 4rem 0 0; } }

.cms-home .columns .column.main {
  padding: 0; }
  @media (min-width: 48em) {
    .cms-home .columns .column.main {
      padding: 0; } }

.page-layout-1column .product-info-wrapper {
  width: 100%; }
  @media (min-width: 48em) {
    .page-layout-1column .product-info-wrapper {
      position: absolute;
      right: 0;
      height: 100%;
      width: 40%; } }
  @media (min-width: 64em) {
    .page-layout-1column .product-info-wrapper {
      width: 30%; } }

@media (min-width: 48em) {
  .page-layout-2columns-left .sidebar-main,
  .page-layout-2columns-left .sidebar-additional {
    width: 22.5%;
    padding-right: 40px;
    border-right: 1px solid #f0f0f0; } }

a, a:visited {
  color: #324dcf;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #142b9e;
  text-decoration: none; }

.gift-options-cart-item {
  display: none; }

@media (min-width: 48em) {
  .paypal-express-review .page-title-wrapper {
    padding: 0 1.5rem; } }

@media (max-width: 63.99em) {
  .paypal-review.view .cs-cart-item__price {
    padding-left: 0 !important; }
  .paypal-review.view .cs-cart-item__subtotal {
    padding-right: 0 !important; } }

@media (min-width: 48em) {
  .paypal-review.view {
    padding: 0 1.5rem; } }

.paypal-express-in-context-mini-cart-container {
  margin-top: 1rem; }

.paypal-review-discount {
  border-bottom: none; }

.amazon-button-container {
  max-width: 25rem;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  z-index: 303; }
  @media (min-width: 48em) {
    .amazon-button-container {
      max-width: 32rem; } }
  .amazon-button-container img {
    margin-left: auto;
    margin-right: auto; }
  .amazon-button-container__cell:nth-child(2) {
    position: absolute;
    min-width: 3rem;
    left: calc(100% + 0.6rem);
    top: 1.9rem; }
    @media (max-width: 23.115em) {
      .amazon-button-container__cell:nth-child(2) {
        left: calc(100% + 0.8rem); } }
  .amazon-button-container__cell .field-tooltip-content {
    width: 25rem;
    box-sizing: border-box;
    box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.17);
    border: none;
    font-size: 1.3rem;
    padding: 0.8rem; }
    @media (min-width: 30em) {
      .amazon-button-container__cell .field-tooltip-content {
        width: 28rem; } }
    .amazon-button-container__cell .field-tooltip-content:before {
      border-right-color: #888; }
    .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
    .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
      top: auto;
      bottom: 42px;
      left: -210px;
      right: auto; }
      @media (min-width: 48em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
          left: -250px; } }
      @media (min-width: 64em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content {
          left: -232px; } }
      .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
        top: calc(100% + 2rem);
        left: 210px;
        transform: rotate(-180deg); }
        @media (min-width: 48em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
            bottom: -10px;
            top: 100%;
            left: 250px;
            transform: rotate(-90deg); } }
        @media (min-width: 64em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before, .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
            left: 232px; } }
      .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
        left: 210px; }
        @media (max-width: 47.99em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            border-right-color: transparent; } }
        @media (min-width: 48em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            left: 251px;
            transform: rotate(-90deg); } }
        @media (min-width: 64em) {
          .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:before,
          .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before {
            left: 233px; } }
      @media (min-width: 64em) {
        .amazon-minicart-container .amazon-button-container__cell .field-tooltip-content:after,
        .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
          transform: rotate(-90deg); } }
    @media (min-width: 48em) {
      .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:before, .cs-cart-summary .amazon-button-container__cell .field-tooltip-content:after {
        top: calc(100% + 2rem);
        transform: rotate(180deg); } }

/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.columns .column.main {
  padding-top: 0; }

body._has-modal {
  height: 100vh !important;
  overflow: hidden !important; }

@media (min-width: 30em) {
  body.catalog-product-view {
    overflow: unset !important; } }

@media (min-width: 30em) {
  body.catalog-product-view._has-modal {
    overflow: hidden !important;
    height: 100vh !important; } }

body.cms-kma-home-page #maincontent,
body.cms-no-route #maincontent,
body.brands-index-all #maincontent {
  padding-bottom: calc(85px + 20px); }

@media (max-width: 30em) {
  body.cms-kma-home-page #maincontent .cs-container--products-carousel .cs-products-carousel__pagination {
    margin-bottom: 4rem; } }

@media (max-width: 29.99em) {
  body.cms-kma-home-page #maincontent {
    padding-bottom: 0; } }

body.cms-no-route .cs-container--header {
  background-color: #f7f7f7;
  border-bottom: none; }

body.cms-no-route #maincontent .cs-container {
  background-color: transparent;
  position: relative; }
  body.cms-no-route #maincontent .cs-container::before {
    content: "";
    background-color: #f7f7f7;
    position: absolute;
    top: 0;
    bottom: 65%;
    left: 0;
    right: 0;
    height: 46%; }
  body.cms-no-route #maincontent .cs-container h3 + p {
    max-width: 380px;
    margin: auto; }
  body.cms-no-route #maincontent .cs-container .action.create.primary {
    font-weight: 400;
    padding-inline: 4rem;
    margin-top: 2rem; }

body.helpdesk-satisfaction-rate #maincontent,
body.helpdesk-satisfaction-form #maincontent {
  padding-block: 5rem 14rem; }
  @media (max-width: 48em) {
    body.helpdesk-satisfaction-rate #maincontent,
    body.helpdesk-satisfaction-form #maincontent {
      padding-block: 5rem; } }
  body.helpdesk-satisfaction-rate #maincontent .action.submit.primary::-moz-focus-inner,
  body.helpdesk-satisfaction-form #maincontent .action.submit.primary::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  body.helpdesk-satisfaction-rate #maincontent .action.submit.primary, body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited,
  body.helpdesk-satisfaction-form #maincontent .action.submit.primary,
  body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:hover:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:focus:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:active:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited:hover:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited:focus:not([disabled]), body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited:active:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:hover:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:focus:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:active:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited:hover:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited:focus:not([disabled]),
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    body.helpdesk-satisfaction-rate #maincontent .action.submit.primary[disabled], body.helpdesk-satisfaction-rate #maincontent .action.submit.primary:visited[disabled],
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary[disabled],
    body.helpdesk-satisfaction-form #maincontent .action.submit.primary:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }

.cs-product-details__item--product-view-nav,
.cs-product-details__item--product-view-nav > div, .cs-product-details__item--product-view-parameters,
.cs-product-details__item--product-view-parameters > div, .cs-product-details__item--product-view-3Dview,
.cs-product-details__item--product-view-3Dview > div, .cs-product-details__item--product-view-brand-details,
.cs-product-details__item--product-view-brand-details > div, .cs-product-details__item--product-info-crosssell,
.cs-product-details__item--product-info-crosssell > div {
  background-color: #ffffff; }

.cs-product-details__item--related,
.cs-product-details__item--related > div {
  background-color: #f7f7f7 !important; }

@media (max-width: 30em) {
  .cs-product-details__item--related .block.products-related {
    width: 100%; } }

@media (max-width: 30em) {
  .cs-product-details__item--product-info-crosssell > div, .cs-product-details__item--product-info-upsell > div {
    padding-inline: 0; } }

@media (max-width: 30em) {
  .cs-product-details__item--crosssell .cs-product-details__content {
    padding-inline: 0; }
    .cs-product-details__item--crosssell .cs-product-details__content .block.products-crosssell {
      width: 100%; } }

@media (max-width: 30em) {
  .cs-product-details__item--product-view-brand-details > div {
    padding-inline: 0; }
  .cs-product-details__item--product-view-brand-details .cs-product-details__content {
    padding: 0 1.5rem !important; }
    .cs-product-details__item--product-view-brand-details .cs-product-details__content .pdp-details-container {
      width: 100%; } }

body.cms-kontakt #maincontent {
  overflow: hidden !important; }

body.cms-kontakt .field .input-text.required-entry {
  margin-bottom: 0; }

body.cms-kontakt .field-recaptcha {
  margin-top: 1rem; }

body.cms-kontakt .cs-container--image-teaser.kma_contact__info .cs-image-teaser__content-wrapper {
  align-items: flex-start;
  padding-top: 80px; }

body.cms-kontakt .kma_contact_about_us__info .cs-image-teaser__content-wrapper {
  height: 105%; }

#phone-contact-request-form .field .input-text.required-entry {
  margin-bottom: 0; }

#phone-contact-request-form .field-recaptcha {
  margin-top: 2rem; }

.cs-category-pills__link {
  white-space: normal !important; }
  .cs-category-pills__link:hover,
  .cs-category-pills__link:hover .cs-category-pills__qty {
    color: #c1272f !important; }
  .cs-category-pills__link .cs-category-pills__qty {
    margin-inline: 0; }

.cs-category-pills__button {
  border-top: 1px solid #d5d5d5; }

.cs-category-pills-button-container::before {
  content: "";
  width: calc(100% - 3rem);
  height: 1px;
  top: 0;
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  background: #d5d5d5; }

.cs-category-pills-button-wrapper {
  border-top: none !important; }

.cs-category-pills-scroll-button {
  cursor: pointer; }

@media (max-width: 30em) {
  .modal-popup {
    max-width: calc(100vw - 44px);
    right: 0; } }

.cs-container--products-carousel {
  overflow: hidden; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem; }

.badge {
  display: flex;
  border: 1px solid;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 11rem;
  font-weight: 600;
  border-radius: 15px;
  padding: 2px 0.5rem;
  font-size: 1.2rem;
  align-items: center; }
  .badge svg {
    margin-right: 0.5rem; }
  .badge-bestseller {
    border-color: #003666;
    color: #003666; }
  .badge-new {
    border-color: #318862;
    color: #318862; }
  .badge-promo {
    border-color: #ff7200;
    color: #ff7200; }

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../../frontend/Creativestyle/theme-kma/pl_PL/fonts/Poppins-Light.ttf") format("truetype"); }

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../../frontend/Creativestyle/theme-kma/pl_PL/fonts/Poppins-Regular.ttf") format("truetype"); }

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../../frontend/Creativestyle/theme-kma/pl_PL/fonts/Poppins-SemiBold.ttf") format("truetype"); }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-authorization-link {
  display: flex;
  align-items: center;
  position: relative;
  margin-left: 0.9rem;
  padding: 0 0 0 0.3rem; }
  @media (min-width: 64em) {
    .cs-authorization-link {
      padding: 0 0 0 1.3rem;
      margin-left: 1.7rem; } }
  .cs-authorization-link:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    content: '';
    border-left: 0.2rem solid #fff; }
  .cs-authorization-link__link {
    display: flex;
    align-items: center; }
    .cs-authorization-link__link, .cs-authorization-link__link:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-authorization-link__link:hover, .cs-authorization-link__link:focus, .cs-authorization-link__link:active, .cs-authorization-link__link:visited:hover, .cs-authorization-link__link:visited:focus {
      color: #142b9e;
      text-decoration: none; }
    .cs-authorization-link__link:hover .cs-authorization-link__icon path {
      fill: #888; }
  .cs-authorization-link__icon {
    width: 1.8rem;
    height: 1rem;
    padding-right: 0.5rem; }
    .cs-authorization-link__icon path {
      fill: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-addtocart {
  /* stylelint-disable */
  /* stylelint-enable */ }
  .cs-addtocart__wrapper {
    overflow: hidden; }
    @supports ((-webkit-clip-path: inset(0 0 0 0 round 24px)) or (clip-path: inset(0 0 0 0 round 24px))) {
      .cs-addtocart__wrapper {
        -webkit-clip-path: inset(0 0 0 0 round 24px);
                clip-path: inset(0 0 0 0 round 24px); } }
  .cs-addtocart__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-addtocart__button, .cs-addtocart__button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-addtocart__button:hover:not([disabled]), .cs-addtocart__button:focus:not([disabled]), .cs-addtocart__button:active:not([disabled]), .cs-addtocart__button:visited:hover:not([disabled]), .cs-addtocart__button:visited:focus:not([disabled]), .cs-addtocart__button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-addtocart__button[disabled], .cs-addtocart__button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-addtocart__button[disabled] {
    opacity: 1; }
  .cs-addtocart__button .cs-addtocart__success-label, .cs-addtocart__button:hover .cs-addtocart__success-label, .cs-addtocart__button:focus .cs-addtocart__success-label, .cs-addtocart__button:active .cs-addtocart__success-label {
    color: #fff; }
  .cs-addtocart__button .cs-addtocart__success-icon *, .cs-addtocart__button:hover .cs-addtocart__success-icon *, .cs-addtocart__button:focus .cs-addtocart__success-icon *, .cs-addtocart__button:active .cs-addtocart__success-icon * {
    fill: #fff; }
  .cs-addtocart__button .cs-addtocart__fail-label, .cs-addtocart__button:hover .cs-addtocart__fail-label, .cs-addtocart__button:focus .cs-addtocart__fail-label, .cs-addtocart__button:active .cs-addtocart__fail-label {
    color: #fff; }
  .cs-addtocart__button .cs-addtocart__fail-icon *, .cs-addtocart__button:hover .cs-addtocart__fail-icon *, .cs-addtocart__button:focus .cs-addtocart__fail-icon *, .cs-addtocart__button:active .cs-addtocart__fail-icon * {
    fill: #fff; }
  .cs-addtocart__button-label, .cs-addtocart__success-label, .cs-addtocart__fail-label {
    font-size: 1.6rem;
    white-space: nowrap; }
  .cs-addtocart__configure-icon, .cs-addtocart__button-icon, .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    max-width: none;
    max-height: none;
    width: 2.2rem;
    height: 2.2rem;
    /* stylelint-disable */
    /* stylelint-enable */ }
  .cs-addtocart__fail-icon {
    transition: none; }
  .cs-addtocart__button-label, .cs-addtocart__success-label {
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1); }
  .cs-addtocart__button-label {
    display: inline-block;
    transform: translate3d(0, 0, 0); }
  .cs-addtocart__loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: scale(0) translate3d(-50%, -50%, 0);
    width: 40px;
    height: 10px;
    opacity: 0;
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
    transition-delay: 0.2s; }
    .cs-addtocart__loading-ball {
      position: absolute;
      display: block;
      width: 10px;
      height: 10px;
      bottom: 0;
      background: #fff;
      border-radius: 50%; }
      .cs-addtocart__loading-ball--1 {
        left: 0; }
      .cs-addtocart__loading-ball--2 {
        left: 15px;
        -webkit-animation-delay: 0.15s !important;
                animation-delay: 0.15s !important; }
      .cs-addtocart__loading-ball--3 {
        left: 30px;
        -webkit-animation-delay: 0.3s !important;
                animation-delay: 0.3s !important; }
  .cs-addtocart__feedback-bg {
    position: absolute;
    left: -1em;
    top: -1px;
    bottom: -1px;
    width: calc(100% + 2.5em);
    transform: translate3d(-100%, 0, 0);
    transform-origin: 0 0;
    transition: transform 0.45s cubic-bezier(0.01, 0.65, 0.38, 1);
    background: #31a43a; }
    .cs-addtocart--no-transitions .cs-addtocart__feedback-bg {
      transition: none; }
    .cs-addtocart--fail .cs-addtocart__feedback-bg {
      background: #cc1c10; }
  .cs-addtocart__success-label, .cs-addtocart__success-icon, .cs-addtocart__fail-label, .cs-addtocart__fail-icon {
    opacity: 0; }
  .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    height: 1.725em;
    transition-delay: 0.2s; }
  .cs-addtocart__success-label, .cs-addtocart__fail-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0) translateX(-2em);
    transition-delay: 0.2s;
    white-space: nowrap;
    padding-right: 3.5rem; }
  .cs-addtocart__minicart {
    width: 100%;
    text-align: center; }
    .cs-addtocart__minicart--sticky, .cs-addtocart__minicart--unstick {
      max-width: 120rem;
      width: 100%;
      margin: 0 auto;
      width: 100%;
      position: fixed;
      top: 0;
      left: 50%;
      transform: translate3d(-50%, 0, 0);
      z-index: 400;
      padding: 0;
      text-align: right;
      display: flex;
      justify-content: flex-end; }
      .cs-addtocart__minicart--sticky .ui-dialog, .cs-addtocart__minicart--unstick .ui-dialog {
        right: 0 !important; }
      .cs-addtocart__minicart--sticky .block-minicart:after, .cs-addtocart__minicart--unstick .block-minicart:after {
        right: 3.2rem !important; }
  .cs-addtocart__minicart--sticky .cs-addtocart__minicart-link,
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    text-align: center;
    padding: 2.5rem 1rem;
    background: #fff;
    box-shadow: 1px 3px 4.5rem 0 rgba(30, 48, 67, 0.34);
    -webkit-animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
            animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
    position: relative; }
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    -webkit-animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45);
            animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45); }
  .cs-addtocart__minicart-link:before {
    content: none !important; }
  .cs-addtocart__minicart-qty-badge-wrapper {
    position: absolute;
    opacity: 0;
    z-index: 600;
    transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
    pointer-events: none; }
    .cs-addtocart__minicart-qty-badge-wrapper--animating {
      -webkit-animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
              animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      position: fixed;
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          position: absolute;
          top: 5.3rem; } }
      .cs-addtocart__minicart-qty-badge-wrapper--animating.cs-addtocart__minicart-qty-badge-wrapper--minicart-sticky {
        position: fixed;
        top: 1.8rem; }
    .cs-addtocart__minicart-qty-badge-wrapper .cs-addtocart__minicart-qty-badge {
      position: static;
      visibility: visible; }
  .cs-addtocart--loading .cs-addtocart__button-label, .cs-addtocart--done .cs-addtocart__button-label {
    opacity: 0;
    transform: translate3d(2em, 0, 0); }
  .cs-addtocart--loading .cs-addtocart__loading {
    opacity: 1;
    transform: scale(1) translate3d(-50%, -50%, 0) translateX(-1.25em); }
    .cs-addtocart--loading .cs-addtocart__loading-ball {
      -webkit-animation: ball-in 1s infinite;
              animation: ball-in 1s infinite; }
  .cs-addtocart--done .cs-addtocart__button-icon {
    opacity: 0; }
  .cs-addtocart--done .cs-addtocart__feedback-bg {
    transform: translate3d(0, 0, 0); }
    .cs-addtocart--done .cs-addtocart__feedback-bg:after {
      transform: translate3d(-5.3rem, 0, 0); }
  .cs-addtocart--success .cs-addtocart__success-icon {
    opacity: 1; }
  .cs-addtocart--success .cs-addtocart__success-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--fail .cs-addtocart__fail-icon {
    opacity: 1; }
  .cs-addtocart--fail .cs-addtocart__fail-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--animation-done .cs-addtocart__button-label,
  .cs-addtocart--animation-done .cs-addtocart__button-icon {
    transition-delay: 0.5s; }
  .cs-addtocart--animation-done .cs-addtocart__feedback-bg {
    transition-delay: 0.2s; }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg, .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition: transform 0.4s cubic-bezier(0.86, 0.01, 0.83, 0.51); }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-label,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.86, 0.01, 0.83, 0.51);
    transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-icon,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition-delay: 0; }

@-webkit-keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@-webkit-keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@-webkit-keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@-webkit-keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-addtocart .block-minicart {
    margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-autocomplete {
  width: 100%;
  top: 100%;
  left: 0;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
  z-index: 200;
  margin-top: -1px; }
  @media (max-width: 48em) {
    .cs-autocomplete .autocomplete-list.product dd:last-child {
      padding-bottom: 9rem; } }
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    background: #fff;
    padding: 0.5rem 1rem;
    margin: 0;
    border-bottom: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    transition: background-color 0.15s linear;
    font-size: 1.29rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    padding: 1rem; } }
    .cs-autocomplete .autocomplete-list dd:hover, .cs-autocomplete .autocomplete-list dd.selected, .cs-autocomplete__item:hover, .cs-autocomplete__item.selected {
      background-color: #f0f0f0;
      cursor: pointer; }
    .cs-autocomplete .autocomplete-list dd:last-child, .cs-autocomplete__item:last-child {
      border-bottom: none; }
    .cs-autocomplete .autocomplete-list dd-image-container, .cs-autocomplete__item-image-container {
      padding: 0;
      margin-right: 1rem;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center; }
    .cs-autocomplete .autocomplete-list dd-image, .cs-autocomplete__item-image {
      width: 4.5rem;
      height: 4.5rem; }
    .cs-autocomplete .autocomplete-list dd-details, .cs-autocomplete__item-details {
      flex: 1 1 100%;
      margin: 0;
      padding-block: 2rem; }
      .cs-autocomplete .autocomplete-list dd-details .f-fix, .cs-autocomplete__item-details .f-fix {
        height: auto;
        display: flex;
        flex-direction: column;
        justify-content: center; }
      .cs-autocomplete .autocomplete-list dd-details img, .cs-autocomplete__item-details img {
        display: block; }
    .cs-autocomplete .autocomplete-list dd-brand, .cs-autocomplete__item-brand {
      font-size: 1.2rem;
      color: #888; }
    .cs-autocomplete .autocomplete-list dd-name, .cs-autocomplete__item-name {
      font-size: 1.29rem;
      color: #000;
      font-weight: 700; }
    .cs-autocomplete .autocomplete-list dd-price, .cs-autocomplete__item-price {
      margin: 0.3rem 0 0;
      padding-block: 1rem; }
  .cs-autocomplete .price-box {
    display: flex; }
    .cs-autocomplete .price-box > .price {
      color: #324dcf;
      font-size: 1.5rem;
      font-weight: 700;
      margin-right: 0; }
    @media (max-width: 30em) {
      .cs-autocomplete .price-box .special-price .price-excluding-tax {
        margin-left: -0.5rem; } }
    .cs-autocomplete .price-box .old-price > .price {
      text-decoration: line-through;
      color: #696969;
      font-size: 1.5rem;
      font-weight: 700; }
    @media (max-width: 30em) {
      .cs-autocomplete .price-box .old-price .price {
        margin: 0; }
      .cs-autocomplete .price-box .old-price .price-including-tax {
        position: relative; }
        .cs-autocomplete .price-box .old-price .price-including-tax > .price {
          position: absolute;
          left: 9.5rem;
          bottom: -2rem; }
      .cs-autocomplete .price-box .old-price .price-excluding-tax {
        position: relative; }
        .cs-autocomplete .price-box .old-price .price-excluding-tax > .price {
          position: absolute;
          left: 9rem;
          top: -2rem; } }
    .cs-autocomplete .price-box .special-price > .price {
      color: #e41f12;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .minimal-price-link {
      display: none; }
    .cs-autocomplete .price-box .old-price {
      order: -1; }
      .cs-autocomplete .price-box .old-price .price {
        margin-right: 1rem; }
  .cs-autocomplete__badges {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 1rem; }
  .cs-autocomplete__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 24px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }
    .cs-autocomplete__badge + .cs-autocomplete__badge {
      margin-top: 0.5rem; }
    .cs-autocomplete__badge--popular {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--popular .cs-autocomplete__badge-text + .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
    .cs-autocomplete__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text + .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
  .cs-autocomplete__badge-text {
    line-height: normal; }
    .cs-autocomplete__badge-text + .cs-autocomplete__badge-text {
      margin-left: 0.5rem; }
    @media (min-width: 23.125em) {
      .cs-autocomplete__badge-text {
        white-space: nowrap; } }

.autocomplete-list {
  margin: -1px 0 1rem;
  border-top: 1px solid #dcdcdc; }
  .autocomplete-list:first-child {
    border-top: 0; }
  .autocomplete-list:last-child {
    margin-bottom: 0; }
  .autocomplete-list .amount {
    color: #888;
    font-size: 1.29rem;
    font-weight: 700;
    margin-left: 0.5rem; }
    .autocomplete-list .amount:not(:empty):after {
      content: ")"; }
    .autocomplete-list .amount:not(:empty):before {
      content: "("; }

.autocomplete-list-title {
  padding: 1.2rem 3rem 1rem 1rem;
  border-bottom: none;
  color: #888;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.29rem;
  letter-spacing: 1px;
  margin: 0; }
  .autocomplete-list-title:hover, .autocomplete-list-title.selected {
    background-color: transparent; }
  .autocomplete-list-title:not(:empty):first-child {
    border-top: transparent; }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400; }
  .cs-breadcrumbs__list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-breadcrumbs__item {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 1.95em 0 0;
    cursor: pointer;
    font-size: 1.2rem; }
    .cs-breadcrumbs__item:last-child {
      padding: 0;
      color: #212121;
      cursor: default; }
    .cs-breadcrumbs__item:not(:last-child):after {
      position: absolute;
      top: 50%;
      right: 0.8em;
      content: "⁄";
      transform: translateY(-50%);
      line-height: 1;
      color: #888; }
  .cs-breadcrumbs__link {
    position: relative;
    display: inline-block;
    color: #888; }
    .cs-breadcrumbs__link:visited {
      color: #888; }
    .cs-breadcrumbs__link:hover {
      text-decoration: none;
      color: #212121; }
  .cs-breadcrumbs__separator-icon {
    position: absolute;
    top: 50%;
    right: 0.5em;
    transform: translateY(-50%);
    width: 0.8em;
    height: 0.8em;
    fill: #888; }

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: #f0f0f0; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: #f0f0f0 url("../../frontend/Creativestyle/theme-kma/pl_PL/images/breadcrumbs.png") no-repeat right/auto 6.8rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400;
  position: relative;
  z-index: 10; }
  .cs-breadcrumbs__list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-breadcrumbs__item {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 0.95em 0 0;
    cursor: pointer;
    font-size: 1.3rem; }
    .cs-breadcrumbs__item:last-child {
      padding: 0;
      color: #878787;
      cursor: default; }
    .cs-breadcrumbs__item:not(:last-child):after {
      position: absolute;
      top: 50%;
      right: 0;
      content: "⁄";
      transform: translateY(-50%);
      line-height: 1;
      color: #888; }
  .cs-breadcrumbs__link {
    position: relative;
    display: inline-block;
    color: #333333; }
    .cs-breadcrumbs__link:visited {
      color: #333333; }
    .cs-breadcrumbs__link:hover {
      text-decoration: none;
      color: #333333; }
  .cs-breadcrumbs__separator-icon {
    position: absolute;
    top: 50%;
    right: 0.5em;
    transform: translateY(-50%);
    width: 0.8em;
    height: 0.8em;
    fill: #888; }

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: transparent; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: transparent; } }

.cms-serwis .cs-container--breadcrumbs, .cms-kontakt .cs-container--breadcrumbs, .cms-o-nas .cs-container--breadcrumbs {
  display: none !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-button, .cs-button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-button:hover:not([disabled]), .cs-button:focus:not([disabled]), .cs-button:active:not([disabled]), .cs-button:visited:hover:not([disabled]), .cs-button:visited:focus:not([disabled]), .cs-button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-button[disabled], .cs-button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-button__span {
  font-size: 1.6rem; }

.cs-button__icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none; }

.cs-button-component {
  margin: 0 0 3rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  .cs-button-component::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button-component, .cs-button-component:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-button-component:hover:not([disabled]), .cs-button-component:focus:not([disabled]), .cs-button-component:active:not([disabled]), .cs-button-component:visited:hover:not([disabled]), .cs-button-component:visited:focus:not([disabled]), .cs-button-component:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-button-component[disabled], .cs-button-component:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  @media (min-width: 48em) {
    .cs-button-component {
      margin: 0 0 4rem; } }
  .cs-button-component--skip-spacing {
    margin: 0; }
  .cs-button-component__span {
    font-size: 1.6rem; }
  .cs-button-component__icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-button-component__amount:before {
    content: '('; }
  .cs-button-component__amount:after {
    content: ')'; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-container {
  background-color: #f7f7f7;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 120rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 25%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 72%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cookie-message {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 1.2rem;
  background-color: #fff;
  color: #000;
  box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15);
  font-size: 85%;
  z-index: 98;
  transform: translate3d(0, 110%, 0);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.18s linear;
  display: flex;
  justify-content: center;
  align-items: center; }
  .cs-cookie-message--shown {
    z-index: 202;
    transform: translate3d(0, 0, 0);
    opacity: 1; }
  .cs-cookie-message__inner {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding-left: 8rem; }
    @media (min-width: 48em) {
      .cs-cookie-message__inner {
        flex-direction: row; } }
  .cs-cookie-message__button-wrapper {
    align-self: flex-start; }
    @media (min-width: 48em) {
      .cs-cookie-message__button-wrapper {
        align-self: unset; } }
  .cs-cookie-message__text {
    position: relative;
    margin: 0; }
    .cs-cookie-message__text .block-cms-link.widget,
    .cs-cookie-message__text p {
      margin: 0;
      display: inline; }
    .cs-cookie-message__text a, .cs-cookie-message__text a:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-cookie-message__text a:hover, .cs-cookie-message__text a:focus, .cs-cookie-message__text a:active, .cs-cookie-message__text a:visited:hover, .cs-cookie-message__text a:visited:focus {
      color: #142b9e;
      text-decoration: none; }
  .cs-cookie-message__icon {
    position: absolute;
    left: 0.5rem;
    width: 5.5rem;
    height: 5.5rem;
    top: 50%;
    transform: translateY(-50%); }
    @media (min-width: 48em) {
      .cs-cookie-message__icon {
        top: -3.5rem;
        transform: translateY(0); } }
  .cs-cookie-message__button {
    white-space: nowrap;
    margin-top: 1.2rem; }
    .cs-cookie-message__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-cookie-message__button, .cs-cookie-message__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-cookie-message__button:hover:not([disabled]), .cs-cookie-message__button:focus:not([disabled]), .cs-cookie-message__button:active:not([disabled]), .cs-cookie-message__button:visited:hover:not([disabled]), .cs-cookie-message__button:visited:focus:not([disabled]), .cs-cookie-message__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-cookie-message__button[disabled], .cs-cookie-message__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    @media (min-width: 48em) {
      .cs-cookie-message__button {
        margin-top: 0;
        margin-left: 1.2rem; } }
  .cs-cookie-message__button-span {
    font-size: 1.6rem; }
  .cs-cookie-message__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .cs-display-controller--hidden-mobile {
    display: none; } }

@media (min-width: 48em) {
  .cs-display-controller--hidden-desktop {
    display: none; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-dropdown-switcher {
  white-space: nowrap;
  cursor: pointer;
  width: 100%; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .mage-dropdown-dialog {
      position: absolute;
      top: 100%;
      right: -1rem;
      left: 1rem; } }
  .cs-dropdown-switcher--currency .mage-dropdown-dialog {
    right: -1rem; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher {
      position: relative;
      display: inline-flex;
      align-items: center;
      flex-shrink: 0; }
      .cs-dropdown-switcher:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 1.3rem;
        content: '';
        border-left: 0.2rem solid #fff;
        display: block; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher--stores:before {
      display: none; } }
  .cs-dropdown-switcher__option-icon {
    min-width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.6rem;
    margin-bottom: 0.2rem;
    display: inline-block; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher--language .cs-dropdown-switcher__option-icon {
        width: 1.5rem; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .switcher-options {
      display: flex; } }
  .cs-dropdown-switcher__trigger {
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    font-weight: 700;
    border-bottom: 1px #dcdcdc solid;
    position: relative;
    position: relative; }
    .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 0.1rem;
      left: auto;
      background-color: #324dcf;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-dropdown-switcher__trigger:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 3rem; }
    .cs-dropdown-switcher__trigger:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 2.5rem; }
    .cs-dropdown-switcher__trigger.active:before {
      transform: rotate(-45deg); }
    .cs-dropdown-switcher__trigger.active:after {
      transform: rotate(45deg); }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__trigger {
        height: 100%;
        display: inline-flex;
        align-items: center;
        margin-left: 2rem;
        font-size: 1.1rem;
        font-weight: 400;
        padding: 0 1.5rem 0 0;
        border-bottom: none;
        position: relative; }
        .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 0.7rem;
          height: 0.1rem;
          left: auto;
          background-color: #000;
          transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
          -webkit-backface-visibility: hidden;
                  backface-visibility: hidden; }
        .cs-dropdown-switcher__trigger:before {
          transform: rotate(45deg) translate3d(0, 0, 0);
          right: 0.5rem; }
        .cs-dropdown-switcher__trigger:after {
          transform: rotate(-45deg) translate3d(0, 0, 0);
          right: 0; }
        .cs-dropdown-switcher__trigger.active:before {
          transform: rotate(-45deg); }
        .cs-dropdown-switcher__trigger.active:after {
          transform: rotate(45deg); } }
    .cs-dropdown-switcher__trigger.active {
      background: transparent;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: none;
      position: relative;
      width: 100%; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__trigger.active {
          padding: 2.4rem 2rem;
          border-style: none; } }
    .cs-dropdown-switcher__trigger-span {
      display: flex;
      align-items: center; }
  .cs-dropdown-switcher__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    list-style: none;
    font-size: 1.1rem;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    border-color: #f0f0f0;
    border-style: solid;
    border-width: 0 1px 1px;
    width: 100%; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__list {
        background: #fff;
        min-width: 100%; } }
    .cs-dropdown-switcher__list-item {
      margin: 0;
      white-space: nowrap; }
    .cs-dropdown-switcher__list-item-link {
      width: 100%;
      color: #212121 !important;
      display: flex;
      align-items: center; }
      .cs-dropdown-switcher__list-item-link:hover {
        background-color: #f0f0f0;
        text-decoration: none; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 1.4rem 2rem;
          font-size: 1.4rem; } }
      @media (min-width: 64em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 0.6rem 1.8rem;
          font-size: 1.1rem; } }

.cs-dropdown-switcher {
  width: unset;
  display: flex;
  align-content: center;
  height: 100%;
  font-size: 1.1rem;
  font-weight: 400; }
  .cs-dropdown-switcher::before {
    display: none; }
  .cs-dropdown-switcher--language::before {
    display: block;
    border-left-color: #333333;
    border-left-width: 1px;
    height: 1rem;
    top: 50%;
    transform: translateY(-50%);
    left: 1rem; }
  .cs-dropdown-switcher--language .cs-dropdown-switcher__trigger-span {
    text-indent: -9999px;
    color: transparent;
    width: 18px; }
  @media (max-width: 63.99em) {
    .cs-dropdown-switcher--language {
      margin-right: 1rem; } }
  .cs-dropdown-switcher--currency .mage-dropdown-dialog {
    left: -1rem !important; }
    @media (max-width: 48em) {
      .cs-dropdown-switcher--currency .mage-dropdown-dialog {
        left: unset !important; } }
  .cs-dropdown-switcher__option-icon--active {
    border-radius: 50%;
    border: 1px solid #f7f7f7; }
  .cs-dropdown-switcher__trigger {
    display: flex;
    border: none;
    height: 100%; }
    @media (max-width: 48em) {
      .cs-dropdown-switcher__trigger {
        padding-left: 0.75rem;
        padding-right: 1.5rem; } }
    .cs-dropdown-switcher__trigger span {
      line-height: 1; }
    .cs-dropdown-switcher__trigger#switcher-currency-trigger-topbar {
      margin-left: 0; }
    .cs-dropdown-switcher__trigger::before, .cs-dropdown-switcher__trigger::after {
      background-color: #000000;
      width: 0.5rem; }
    .cs-dropdown-switcher__trigger::before {
      right: 0.35rem; }
    .cs-dropdown-switcher__trigger::after {
      right: 0; }
  .cs-dropdown-switcher .switcher-options {
    position: relative;
    height: 100%; }
  .cs-dropdown-switcher .mage-dropdown-dialog {
    position: absolute;
    top: 5rem;
    left: -6rem;
    right: -1rem;
    background-color: #ffffff; }
    @media (max-width: 48em) {
      .cs-dropdown-switcher .mage-dropdown-dialog {
        left: unset;
        right: 0; } }
  .cs-dropdown-switcher__list-item-link {
    padding: 0.6rem 0.8rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable no-descending-specificity */
.cs-field,
.cs-input {
  font-size: 1.6rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .cs-field__control,
  .cs-input__control {
    width: 100%; }
  .cs-field__label,
  .cs-input__label {
    font-weight: 400;
    font-size: 1.4rem;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding: 4px 0; }
    .required .cs-field__label:after, .required
    .cs-input__label:after {
      content: " *";
      color: #ff0018;
      padding: 4px 0; }
  .cs-field__input, .cs-field__textarea,
  .cs-input__input,
  .cs-input__textarea {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit; }
    .cs-field__input:hover:not([disabled]), .cs-field__input:focus:not([disabled]), .cs-field__textarea:hover:not([disabled]), .cs-field__textarea:focus:not([disabled]),
    .cs-input__input:hover:not([disabled]),
    .cs-input__input:focus:not([disabled]),
    .cs-input__textarea:hover:not([disabled]),
    .cs-input__textarea:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-field__input.required-entry, .cs-field__textarea.required-entry,
    .cs-input__input.required-entry,
    .cs-input__textarea.required-entry {
      margin-bottom: 0; }
    .cs-field__input::-moz-placeholder, .cs-field__textarea::-moz-placeholder, .cs-input__input::-moz-placeholder, .cs-input__textarea::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-field__input:-ms-input-placeholder, .cs-field__textarea:-ms-input-placeholder, .cs-input__input:-ms-input-placeholder, .cs-input__textarea:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-field__input::placeholder, .cs-field__textarea::placeholder,
    .cs-input__input::placeholder,
    .cs-input__textarea::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-field__input[disabled], .cs-field__textarea[disabled],
    .cs-input__input[disabled],
    .cs-input__textarea[disabled] {
      opacity: 1; }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .cs-field__select,
  .cs-input__select {
    display: block;
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    color: #333333;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23d5d5d5'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-field__select.mage-error, .cs-field__select.mage-error:hover:not(:focus),
    .cs-input__select.mage-error,
    .cs-input__select.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-field__select.required-entry,
    .cs-input__select.required-entry {
      margin-bottom: 1rem; }
    .cs-field__select:-moz-focusring, .cs-field__select::-moz-focus-inner,
    .cs-input__select:-moz-focusring,
    .cs-input__select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__select:hover:not([disabled]), .cs-field__select:focus:not([disabled]),
    .cs-input__select:hover:not([disabled]),
    .cs-input__select:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23333333'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-field__select[disabled],
    .cs-input__select[disabled] {
      opacity: 1; }
    .cs-field__select option,
    .cs-input__select option {
      padding: 0;
      color: initial; }
  .cs-field__radio,
  .cs-input__radio {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .cs-field__radio::-moz-focus-inner, .cs-field__radio:-moz-focusring,
    .cs-input__radio::-moz-focus-inner,
    .cs-input__radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__radio:hover:not([disabled]), .cs-field__radio:focus:not([disabled]),
    .cs-input__radio:hover:not([disabled]),
    .cs-input__radio:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__radio:checked,
    .cs-input__radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .cs-field__radio:checked, .cs-field__radio:checked:hover, .cs-field__radio:checked:focus,
      .cs-input__radio:checked,
      .cs-input__radio:checked:hover,
      .cs-input__radio:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__radio[disabled],
    .cs-field__radio[disabled] + .label,
    .cs-field__radio[disabled] + .cs-input__label,
    .cs-input__radio[disabled],
    .cs-input__radio[disabled] + .label,
    .cs-input__radio[disabled] + .cs-input__label {
      opacity: 1; }
  .cs-field__checkbox,
  .cs-input__checkbox {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 0;
    background-size: 1em 1em;
    background-color: #ffffff; }
    .cs-field__checkbox::-moz-focus-inner, .cs-field__checkbox:-moz-focusring,
    .cs-input__checkbox::-moz-focus-inner,
    .cs-input__checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__checkbox:hover:not([disabled]), .cs-field__checkbox:focus:not([disabled]),
    .cs-input__checkbox:hover:not([disabled]),
    .cs-input__checkbox:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .cs-field__checkbox:checked, .cs-field__checkbox:checked:hover, .cs-field__checkbox:checked:focus,
      .cs-input__checkbox:checked,
      .cs-input__checkbox:checked:hover,
      .cs-input__checkbox:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__checkbox[disabled],
    .cs-field__checkbox[disabled] + .label,
    .cs-field__checkbox[disabled] + .cs-input__label,
    .cs-input__checkbox[disabled],
    .cs-input__checkbox[disabled] + .label,
    .cs-input__checkbox[disabled] + .cs-input__label {
      opacity: 1; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23333333' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .cs-field__checkbox.mage-error, .cs-field__checkbox.mage-error:hover:not(:focus),
    .cs-input__checkbox.mage-error,
    .cs-input__checkbox.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .cs-field__icon,
  .cs-input__icon {
    position: absolute;
    width: 1.3em;
    height: 1.3em;
    right: 0.8em;
    top: 0.8em;
    display: none; }
  .cs-field__note,
  .cs-input__note {
    display: block;
    font-size: 0.85em;
    padding: 4px 0;
    color: #696969;
    margin-top: -1rem; }
  .cs-field__error,
  .cs-input__error {
    display: block;
    font-size: 0.85em;
    padding: 4px 0;
    color: #696969;
    margin-top: -1rem;
    color: #ff0018; }

.field {
  font-size: 1.6rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .field._success:not(._warn) .control {
    position: relative; }
    .field._success:not(._warn) .control:after {
      position: absolute;
      width: 1.3em;
      height: 1.3em;
      right: 0.8em;
      top: 0.8em;
      display: none;
      background: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/check-green.svg") no-repeat center center/contain;
      content: ''; }
  .field .control {
    width: 100%; }
    .field .control > textarea {
      font-size: 1.6rem;
      line-height: 2.6rem;
      padding: 1rem 2.3rem;
      color: #333333;
      background: #ffffff;
      border-radius: 24px;
      border: 1px solid #d5d5d5;
      box-shadow: none;
      transition: border-color 0.5s;
      margin: 0 0 0.2em;
      width: 100%;
      height: 4.8rem;
      background-clip: padding-box;
      font-family: inherit; }
      .field .control > textarea:hover:not([disabled]), .field .control > textarea:focus:not([disabled]) {
        border: 1px solid #333333;
        box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
      .field .control > textarea.mage-error, .field .control > textarea.mage-error:hover:not(:focus) {
        border: 1px solid #ff0018; }
      .field .control > textarea.required-entry {
        margin-bottom: 0; }
      .field .control > textarea::-moz-placeholder {
        opacity: 1;
        font-size: 1.6rem;
        color: #333333;
        font-style: normal; }
      .field .control > textarea:-ms-input-placeholder {
        opacity: 1;
        font-size: 1.6rem;
        color: #333333;
        font-style: normal; }
      .field .control > textarea::placeholder {
        opacity: 1;
        font-size: 1.6rem;
        color: #333333;
        font-style: normal; }
      .field .control > textarea[disabled] {
        opacity: 1; }
  .field .label {
    font-weight: 400;
    font-size: 1.4rem;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding: 4px 0; }
  .field.required > .label:after, .field._required > .label:after {
    content: " *";
    color: #ff0018;
    padding: 4px 0; }
  .field.required ._required > .label:after {
    display: none; }
  .field .input-text {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit; }
    .field .input-text:hover:not([disabled]), .field .input-text:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field .input-text.required-entry {
      margin-bottom: 0; }
    .field .input-text::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field .input-text:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field .input-text::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field .input-text[disabled] {
      opacity: 1; }
    .field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field .input-text.required-entry {
      margin-bottom: 1rem; }
  .field .select {
    display: block;
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    color: #333333;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23d5d5d5'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field .select.mage-error, .field .select.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field .select.required-entry {
      margin-bottom: 1rem; }
    .field .select:-moz-focusring, .field .select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .select:hover:not([disabled]), .field .select:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23333333'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field .select[disabled] {
      opacity: 1; }
    .field .select option {
      padding: 0;
      color: initial; }
  .field .checkbox {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 0;
    background-size: 1em 1em;
    background-color: #ffffff; }
    .field .checkbox::-moz-focus-inner, .field .checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .checkbox:hover:not([disabled]), .field .checkbox:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .field .checkbox:checked, .field .checkbox:checked:hover, .field .checkbox:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .field .checkbox[disabled],
    .field .checkbox[disabled] + .label,
    .field .checkbox[disabled] + .cs-input__label {
      opacity: 1; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23333333' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .field .checkbox.mage-error, .field .checkbox.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .field .radio {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .field .radio::-moz-focus-inner, .field .radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .radio:hover:not([disabled]), .field .radio:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .field .radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .field .radio:checked, .field .radio:checked:hover, .field .radio:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .field .radio[disabled],
    .field .radio[disabled] + .label,
    .field .radio[disabled] + .cs-input__label {
      opacity: 1; }
  .field.customer-name-prefix select {
    display: block;
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    color: #333333;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23d5d5d5'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field.customer-name-prefix select.mage-error, .field.customer-name-prefix select.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field.customer-name-prefix select.required-entry {
      margin-bottom: 1rem; }
    .field.customer-name-prefix select:-moz-focusring, .field.customer-name-prefix select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field.customer-name-prefix select:hover:not([disabled]), .field.customer-name-prefix select:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23333333'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field.customer-name-prefix select[disabled] {
      opacity: 1; }
    .field.customer-name-prefix select option {
      padding: 0;
      color: initial; }
  .field.field-dob input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit; }
    .field.field-dob input:hover:not([disabled]), .field.field-dob input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .field.field-dob input.required-entry {
      margin-bottom: 0; }
    .field.field-dob input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field.field-dob input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field.field-dob input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .field.field-dob input[disabled] {
      opacity: 1; }
    .field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
  .field.field-dob button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .field.field-dob button, .field.field-dob button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .field.field-dob button:hover:not([disabled]), .field.field-dob button:focus:not([disabled]), .field.field-dob button:active:not([disabled]), .field.field-dob button:visited:hover:not([disabled]), .field.field-dob button:visited:focus:not([disabled]), .field.field-dob button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .field.field-dob button[disabled], .field.field-dob button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .field.field-dob button span {
    font-size: 1.6rem; }
  .field._error .input-text, .field._error .input-text:hover:not(:focus),
  .field._error .checkbox,
  .field._error .checkbox:hover:not(:focus) {
    border: 1px solid #ff0018; }
  .field .control._with-tooltip input {
    width: 100%;
    margin-right: 0; }
  .field .field-tooltip {
    position: static; }
    .field .field-tooltip .label,
    .field .field-tooltip .field-tooltip-action {
      display: none; }
    .field .field-tooltip .field-tooltip-content {
      position: static;
      background: none;
      border: none;
      display: block;
      font-size: 0.85em;
      padding: 4px 0;
      color: #696969;
      margin-top: -1rem; }
      .field .field-tooltip .field-tooltip-content:before, .field .field-tooltip .field-tooltip-content:after {
        display: none; }
  .field .note {
    display: block;
    font-size: 0.85em;
    padding: 4px 0;
    color: #696969;
    margin-top: -1rem; }

div.mage-error,
div.field-error {
  display: block;
  font-size: 0.85em;
  padding: 4px 0;
  color: #696969;
  margin-top: -1rem;
  color: #ff0018; }

/* stylelint-enable */
.field:empty {
  display: none !important; }

.field textarea {
  max-width: 100%;
  min-height: 80px;
  min-width: 100%; }

.field .mage-error {
  margin-top: 0; }

.field-tooltip-content {
  margin-top: 0 !important; }

/**
 * Footer component customization.
 * @see /Magento_Theme/templates/footer/columns.phtml for templates.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-footer {
  position: relative;
  padding-top: 80px;
  background: linear-gradient(90deg, #272727 0%, #424242 100%); }
  .cms-kontakt .cs-footer,
  .cms-serwis .cs-footer {
    margin-top: 75px; }
  .cms-o-nas .cs-footer {
    margin-top: 0; }
  @media (max-width: 47.99em) {
    .cs-footer {
      margin-top: 260px; }
      .cs-footer:before {
        content: "";
        position: absolute;
        top: -260px;
        left: 0;
        height: 260px;
        width: 100%;
        background-color: #f7f7f7; } }
  .cs-footer .cs-container__inner:after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, #3c3c3c 0%, #424242 100%);
    right: calc(-75% - 15px);
    top: 0;
    position: absolute; }
  @media (max-width: 47.99em) {
    .cs-footer .cs-container__inner:after {
      top: unset;
      bottom: 0px;
      left: -15px;
      height: 390px;
      width: calc(100% + 30px); } }
  .cs-footer p {
    margin: 0; }
  .cs-footer .footer__additional_info_wrapper {
    padding: 29px 50px 23px 50px;
    background-color: #fff;
    position: absolute;
    z-index: 1;
    top: -75px;
    width: 100%;
    display: flex;
    flex-direction: column;
    transform: translateY(-50%); }
    @media (max-width: 47.99em) {
      .cs-footer .footer__additional_info_wrapper {
        top: 10px; } }
  .cs-footer .footer__additional_info_title {
    color: #333333;
    font-size: 16px;
    font-weight: 300;
    letter-spacing: 0;
    line-height: 24px;
    text-align: center;
    margin-bottom: 20px; }
  .cs-footer .footer__additional_info_items {
    display: flex;
    justify-content: space-between; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__additional_info_items {
        flex-direction: column;
        align-items: center; } }
  .cs-footer .footer__addtional_info_item {
    width: 33%;
    display: flex;
    align-items: center;
    position: relative;
    padding-left: 88px;
    min-height: 64px; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__addtional_info_item {
        flex-direction: column;
        align-items: center;
        padding-top: 88px;
        min-height: 88px;
        padding-left: 0;
        width: 100%;
        justify-content: center;
        margin-bottom: 45px; } }
    .cs-footer .footer__addtional_info_item--availability:before, .cs-footer .footer__addtional_info_item--delivery:before, .cs-footer .footer__addtional_info_item--launch:before {
      content: "";
      width: 64px;
      height: 64px;
      display: block;
      position: absolute;
      left: 0;
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/Dostepnosc.svg");
      background-size: cover;
      background-repeat: no-repeat; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__addtional_info_item--availability:before, .cs-footer .footer__addtional_info_item--delivery:before, .cs-footer .footer__addtional_info_item--launch:before {
          top: 0;
          left: unset; } }
    .cs-footer .footer__addtional_info_item--delivery:before {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/Szybka_wysylka.svg"); }
    .cs-footer .footer__addtional_info_item--launch:before {
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/Automatyk.svg"); }
    .cs-footer .footer__addtional_info_item-title {
      color: #333;
      font-size: 16px;
      font-weight: 600;
      letter-spacing: 0;
      line-height: 24px;
      margin-bottom: 0;
      text-align: center; }
  .cs-footer .footer__wrapper {
    margin-top: 50px;
    position: relative;
    z-index: 1; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__wrapper {
        margin-top: 370px; } }
  .cs-footer .footer__main-list {
    display: flex;
    justify-content: space-between;
    padding-bottom: 40px; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__main-list {
        flex-direction: column; } }
    .cs-footer .footer__main-list-links-wrapper {
      display: flex;
      flex-direction: column; }
      .cs-footer .footer__main-list-links-wrapper p,
      .cs-footer .footer__main-list-links-wrapper a {
        color: #fff;
        font-size: 14px;
        font-weight: 300;
        letter-spacing: 0;
        line-height: 23px; }
      .cs-footer .footer__main-list-links-wrapper a {
        text-decoration: none; }
        @media (max-width: 47.99em) {
          .cs-footer .footer__main-list-links-wrapper a {
            margin-top: 5px; } }
        .cs-footer .footer__main-list-links-wrapper a:hover {
          color: #fff;
          text-decoration: underline; }
    .cs-footer .footer__main-list-contact-item {
      padding-right: 15px; }
    .cs-footer .footer__main-list-links-item {
      display: flex;
      flex-direction: column;
      width: 21%; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__main-list-links-item {
          width: 100%;
          border-bottom: 1px solid #878787;
          padding-bottom: 16px;
          margin-bottom: 16px; } }
    .cs-footer .footer__main-list-links-title {
      color: #fff;
      font-size: 16px;
      font-weight: 600;
      letter-spacing: 0;
      line-height: 26px;
      margin-bottom: 16px;
      position: relative; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__main-list-links-title {
          margin-bottom: 0; }
          .cs-footer .footer__main-list-links-title:after {
            content: "+";
            display: block;
            position: absolute;
            top: 0;
            right: 0;
            font-size: 32px;
            font-weight: 300; }
          .cs-footer .footer__main-list-links-title.active {
            margin-bottom: 16px; }
            .cs-footer .footer__main-list-links-title.active:after {
              content: "-";
              right: 5px; } }
    .cs-footer .footer__main-list-address-wrapper, .cs-footer .footer__main-list-phone-wrapper, .cs-footer .footer__main-list-mail-wrapper {
      display: flex; }
      .cs-footer .footer__main-list-address-wrapper .footer__main-list-contact-icon-wrapper, .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-icon-wrapper, .cs-footer .footer__main-list-mail-wrapper .footer__main-list-contact-icon-wrapper {
        width: 24px;
        margin-right: 16px;
        position: relative; }
        .cs-footer .footer__main-list-address-wrapper .footer__main-list-contact-icon-wrapper:before, .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-icon-wrapper:before, .cs-footer .footer__main-list-mail-wrapper .footer__main-list-contact-icon-wrapper:before {
          content: "";
          width: 24px;
          height: 24px;
          display: block;
          position: absolute;
          left: 0;
          background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/siedziba.svg");
          background-size: cover;
          background-repeat: no-repeat; }
    .cs-footer .footer__main-list-address-wrapper {
      margin-top: 24px; }
    .cs-footer .footer__main-list-mail-wrapper {
      margin-top: 16px; }
      .cs-footer .footer__main-list-mail-wrapper .footer__main-list-contact-icon-wrapper::before {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/mail.svg"); }
      .cs-footer .footer__main-list-mail-wrapper a {
        color: #fff;
        font-size: 14px;
        font-weight: 300;
        letter-spacing: 0;
        line-height: 23px;
        text-decoration: underline; }
    .cs-footer .footer__main-list-phone-wrapper {
      margin-top: 42px; }
      @media (max-width: 47.99em) {
        .cs-footer .footer__main-list-phone-wrapper {
          margin-top: 82px; } }
      .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-icon-wrapper::before {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/footer/infolinia.svg"); }
      .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-text-wrapper p {
        color: #d5d5d5; }
      .cs-footer .footer__main-list-phone-wrapper .footer__main-list-contact-text-wrapper span {
        color: #fff; }
    .cs-footer .footer__main-list-contact-text-wrapper {
      color: #fff;
      font-size: 14px;
      font-weight: 300;
      letter-spacing: 0;
      line-height: 23px; }
    .cs-footer .footer__main-list-phone-text {
      color: #fff;
      font-size: 24px;
      font-weight: 300;
      letter-spacing: 0;
      line-height: 40px; }
  .cs-footer .footer__text--bold {
    font-weight: 600; }
  .cs-footer .footer__info-list {
    border-top: 1px solid #979797;
    padding: 24px 0 44px 0;
    display: flex;
    justify-content: space-between; }
    @media (max-width: 47.99em) {
      .cs-footer .footer__info-list {
        flex-direction: column;
        align-items: center; } }
    @media (max-width: 47.99em) {
      .cs-footer .footer__info-list-links {
        margin-bottom: 30px; } }
    .cs-footer .footer__info-list-links a, .cs-footer .footer__info-list-copy {
      color: #fff;
      font-size: 14px;
      font-weight: 300;
      letter-spacing: 0;
      line-height: 23px;
      text-decoration: none;
      margin-right: 10px;
      position: relative; }
    .cs-footer .footer__info-list-links a:hover {
      color: #fff;
      text-decoration: underline; }
    .cs-footer .footer__info-list-links a:after {
      content: "";
      display: block;
      position: absolute;
      width: 1px;
      height: 100%;
      border-right: 1px solid #fff;
      right: -7px;
      top: 0; }
    .cs-footer .footer__info-list-links a:last-child::after {
      display: none; }
  .catalog-product-view .cs-footer {
    margin-top: 105px; }
    @media (max-width: 47.99em) {
      .catalog-product-view .cs-footer {
        margin-top: 260px; } }
    .catalog-product-view .cs-footer:before {
      content: "";
      display: block;
      width: 100%;
      height: 110px;
      background: #f7f7f7;
      position: absolute;
      top: -110px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-footer-links {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-footer-links__item {
    margin: 0 0 0.3em; }
  .cs-footer-links a, .cs-footer-links a:visited {
    color: #fff;
    text-decoration: none; }
  .cs-footer-links a:hover, .cs-footer-links a:focus, .cs-footer-links a:active, .cs-footer-links a:visited:hover, .cs-footer-links a:visited:focus {
    color: #fff;
    text-decoration: underline; }
  .cs-footer-links a, .cs-footer-links a:visited {
    display: block;
    padding: 0.5em 0;
    font-size: inherit; }
    @media (min-width: 48em) {
      .cs-footer-links a, .cs-footer-links a:visited {
        padding: 0.35em 0;
        display: inline-block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-headline {
  font-size: 1rem;
  clear: both;
  padding: 2em 0;
  margin: 2em 0;
  margin: 0;
  padding: 0;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-headline {
      margin: 0 0 4rem; } }
  .cs-headline--skip-spacing {
    margin: 0; }
  .cs-headline__title {
    display: block;
    text-align: center;
    align-items: center;
    margin: 0;
    font-size: 2.6em;
    font-weight: 700;
    color: #212121;
    text-transform: none; }
    @media (min-width: 48em) {
      .cs-headline__title {
        display: flex; } }
    .cs-headline__title:before, .cs-headline__title:after {
      content: '';
      display: none;
      height: 1px;
      flex-grow: 1;
      background-color: #dcdcdc; }
      @media (min-width: 48em) {
        .cs-headline__title:before, .cs-headline__title:after {
          display: flex; } }
    .cs-headline__title:before {
      margin-right: 0.6em; }
    .cs-headline__title:after {
      margin-left: 0.6em; }
  .cs-headline__subtitle {
    color: #888;
    font-size: 1.3em;
    font-weight: 400;
    text-transform: none;
    margin: 0;
    display: none;
    text-align: center; }
    @media (min-width: 48em) {
      .cs-headline__subtitle {
        display: block; } }

@media (max-width: 47.99em) {
  .cms-kma-home-page .cs-container.cs-container--headline {
    position: relative;
    z-index: 1; } }

.cms-kma-home-page h2.cs-headline__title,
.cms-kma-home-page h3.cs-headline__title,
.cms-kma-home-page h4.cs-headline__title {
  display: block;
  color: #333333;
  font-family: "Poppins";
  font-size: 42px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 60px;
  margin-bottom: 6px;
  text-align: left; }
  .cms-kma-home-page h2.cs-headline__title::before, .cms-kma-home-page h2.cs-headline__title::after,
  .cms-kma-home-page h3.cs-headline__title::before,
  .cms-kma-home-page h3.cs-headline__title::after,
  .cms-kma-home-page h4.cs-headline__title::before,
  .cms-kma-home-page h4.cs-headline__title::after {
    display: none; }

@media (max-width: 47.99em) {
  .cms-kma-home-page h2.cs-headline__title {
    text-align: center;
    font-size: 28px;
    line-height: 42px; } }

.cms-kma-home-page h3.cs-headline__title {
  text-align: center; }
  @media (max-width: 47.99em) {
    .cms-kma-home-page h3.cs-headline__title {
      font-size: 28px;
      line-height: 42px; } }

.cms-kma-home-page h4.cs-headline__title {
  font-size: 24px;
  text-align: center;
  position: relative;
  z-index: 9; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Variables related to sticky header and topbar on mobile devices.
 * to prevent page jumping when offacnvas (fixed positioned) is opened
 * If you have more elements on top, you have to include their height.
 */
@media (max-width: 63.99em) {
  .cs-container--header {
    padding-left: 0;
    padding-right: 0; } }

/**
     * Styles related to sticky header and topbar on mobile devices.
     * to prevent page jumping when offacnvas (fixed positioned) is opened
     */
@media (max-width: 63.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 8.3rem; } }

@media (max-width: 47.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 5rem; } }

@media (max-width: 63.99em) {
  .cs-container--header {
    position: sticky;
    z-index: 800;
    top: 0;
    /**
                 * Fixed positioning required to work with offcanvas elements.
                 * Also, as a fallback for IE which does not support sticky.
                 */ }
    .navigation-offcanvas-open.no-scroll .cs-container--header,
    .cs-container--header .ie11 {
      position: fixed; } }

@media (max-width: 47.99em) {
  .cs-container--header {
    top: 0; } }

.cs-header {
  font-size: 1rem;
  height: 5rem; }
  @media (min-width: 48em) {
    .cs-header {
      height: 8.3rem; } }
  @media (min-width: 80em) {
    .cs-header {
      height: 11rem; } }
  .cs-header__content {
    height: 5rem;
    z-index: 300;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    position: relative;
    max-width: 100vw; }
    @media (min-width: 48em) {
      .cs-header__content {
        height: 8.3rem; } }
    @media (min-width: 64em) {
      .cs-header__content {
        border-bottom: 1px solid #f0f0f0;
        flex-wrap: nowrap; } }
    @media (min-width: 80em) {
      .cs-header__content {
        height: 11rem; } }
  .cs-header__offcanvas-toggle {
    height: 100%;
    flex: 0 1 4rem; }
    @media (min-width: 64em) {
      .cs-header__offcanvas-toggle {
        display: none; } }
  .cs-header__logo {
    display: flex;
    flex: 1 1;
    margin-bottom: 0;
    height: 100%;
    padding: 0.7rem 0 0.7rem 0.7rem; }
    @media (min-width: 23.125em) {
      .cs-header__logo {
        padding: 0.7rem 0 0.7rem 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__logo {
        flex: 0 1 auto;
        padding: 0; } }
    .page-print .cs-header__logo {
      max-width: 120rem;
      width: 100%;
      margin: 0 auto;
      position: relative;
      height: auto;
      padding: 2rem 0; }
      .page-print .cs-header__logo:after {
        content: '';
        display: table;
        clear: both; }
  .cs-header__search {
    display: none;
    width: 100%;
    background-color: #fff;
    padding: 1rem;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 300;
    top: 100%; }
    @media (min-width: 64em) {
      .cs-header__search {
        flex-grow: 1;
        width: auto;
        padding: 0;
        position: initial;
        margin-left: 2rem !important;
        justify-content: center; } }
    .cs-header__search--active {
      display: flex; }
    @media (min-width: 64em) {
      .cs-header__search {
        display: flex; } }
    @media (min-width: 64em) {
      .cs-header__search {
        position: relative;
        padding: 0;
        top: initial; } }
  .cs-header__user-nav {
    display: flex;
    justify-content: flex-end;
    flex: 0 1 30%; }
    @media (min-width: 64em) {
      .cs-header__user-nav {
        flex: 0 1 25%; } }
  .cs-header__back-button {
    border-right: 1px solid #dcdcdc;
    height: 100%;
    display: flex;
    padding: 0 1rem;
    align-items: center;
    justify-content: center;
    min-width: 4rem; }
    @media (min-width: 23.125em) {
      .cs-header__back-button {
        padding: 0 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__back-button {
        display: none; } }
  .cs-header__back-button-icon {
    fill: #888;
    height: 2.5rem; }
    @media (max-width: 23.115em) {
      .cs-header__back-button-icon {
        height: 2rem; } }

.cs-header .navigation {
  margin-left: 3rem; }
  .cs-header .navigation > .ninjamenus {
    position: static; }
    .cs-header .navigation > .ninjamenus > .compare {
      position: absolute;
      top: 2.5rem;
      left: 1.5rem;
      width: 3rem;
      height: 3rem; }
      @media (min-width: 64em) {
        .cs-header .navigation > .ninjamenus > .compare {
          display: none; } }
      .cs-header .navigation > .ninjamenus > .compare .cs-header-user-nav__qty-counter--compare {
        top: -1rem;
        right: -1rem; }
      .cs-header .navigation > .ninjamenus > .compare .cs-header-user-nav__label {
        bottom: -15px; }
    .cs-header .navigation > .ninjamenus .magezon-builder {
      position: static; }
      .cs-header .navigation > .ninjamenus .magezon-builder > .level0 {
        padding-bottom: 2px; }
  @media (min-width: 64em) {
    .cs-header .navigation {
      padding: 0; }
      .cs-header .navigation .switcher,
      .cs-header .navigation .ninjamenus-close {
        display: none !important; }
      .cs-header .navigation div.nav-item.level0.active > a {
        border-color: #c1272f !important; }
      .cs-header .navigation div.nav-item.level0:hover > a {
        background: none !important;
        color: #c1272f !important; }
      .cs-header .navigation div.nav-item.level0.mega.mgz-element > a {
        border-bottom: 2px solid transparent;
        transition: 0.3s all; }
      .cs-header .navigation div.nav-item.level0.mega.mgz-element:hover > a {
        color: #c1272f !important;
        background: none !important;
        border-color: #c1272f; }
      .cs-header .navigation .nav-items-column > a {
        color: #333333 !important;
        transition: 0.3s color; }
        .cs-header .navigation .nav-items-column > a:hover {
          color: #c1272f !important; }
      .cs-header .navigation .nav-items-column .nav-item a {
        font-size: 1.4rem;
        font-weight: 300;
        color: #333333;
        line-height: 30px;
        transition: 0.3s color; }
        .cs-header .navigation .nav-items-column .nav-item a:hover {
          color: #c1272f; }
      .cs-header .navigation .mgz-element-heading-text {
        padding-block: 0.5rem; }
      .cs-header .navigation .mgz-tabs-nav .mgz-tabs-tab-title > a {
        display: flex;
        align-items: center;
        border-bottom: 1px solid #d5d5d5 !important;
        border-radius: 0;
        padding-inline: 0;
        transition: 0.3s all;
        min-width: 240px;
        font-size: 1.4rem; }
        .cs-header .navigation .mgz-tabs-nav .mgz-tabs-tab-title > a .mgz-fa-angle-right {
          margin-left: auto;
          padding-left: 2rem; }
      .cs-header .navigation .mgz-tabs-nav .mgz-tabs-tab-title.mgz-active > a {
        background: none !important;
        color: #c1272f !important;
        font-weight: 600; }
      .cs-header .navigation .bottom-links-outer {
        background-color: #f7f7f7; }
        .cs-header .navigation .bottom-links-outer .bottom-links ul {
          display: flex;
          align-items: center;
          margin: 0;
          padding: 0.5rem 0; }
          .cs-header .navigation .bottom-links-outer .bottom-links ul li {
            margin: 0;
            color: #878787;
            font-size: 1.6rem; }
            .cs-header .navigation .bottom-links-outer .bottom-links ul li a {
              display: block;
              font-weight: 600;
              color: #c1272f;
              padding-block: 0.5rem;
              font-size: 1.6rem; }
            .cs-header .navigation .bottom-links-outer .bottom-links ul li:nth-child(n + 2) {
              padding-inline: 2rem; }
            .cs-header .navigation .bottom-links-outer .bottom-links ul li:nth-child(2) {
              border-right: 1px solid #d5d5d5; } }
  @media (max-width: 63.99em) {
    .cs-header .navigation {
      margin: 0;
      padding-right: 0; }
      .cs-header .navigation > .ninjamenus-desktop {
        display: none; }
      .cs-header .navigation .ninjamenus-hamburger-trigger {
        background: none !important;
        display: block; }
        .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner {
          background-color: transparent;
          padding-inline: 5px; }
          .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner .trigger-icon {
            margin-right: 0; }
          .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner .label {
            display: none; }
          .cs-header .navigation .ninjamenus-hamburger-trigger .menu-trigger-inner .line {
            background-color: #333333 !important;
            height: 1px;
            margin-block: 5px;
            z-index: 9; }
      .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus {
        max-width: 100vw;
        background: #ffffff;
        position: fixed;
        z-index: 9;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        padding-top: 8rem; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active > .drilldown-root > .drilldown-root {
          display: none !important; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active,
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active .ninjamenus-drilldown-back {
          background-color: #f7f7f7 !important; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active > .drilldown-root > .mgz-element-inner {
          background-color: #ffffff;
          width: calc(100% + 3rem) !important;
          position: absolute;
          top: 7rem;
          right: 1.5rem;
          left: 1.5rem;
          max-width: 100%; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active > .drilldown-root > .mgz-element-inner > .mgz-element {
            background-color: #ffffff; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus.active .switcher {
          display: none; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer {
          background-color: #ffffff; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links {
            margin-block: 2rem 6rem; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul {
              padding: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li {
                display: flex;
                align-items: center;
                font-size: 1.4rem;
                font-weight: 400; }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li:first-child {
                  color: #333333;
                  margin-bottom: 2rem; }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li:nth-child(2)::before {
                  content: "";
                  display: block;
                  margin-right: 1rem;
                  width: 16px;
                  height: 16px;
                  background-repeat: no-repeat;
                  background-size: contain;
                  background-position: center;
                  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/promotion.svg"); }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li:nth-child(3)::before {
                  content: "";
                  display: block;
                  margin-right: 1rem;
                  width: 16px;
                  height: 16px;
                  background-repeat: no-repeat;
                  background-size: contain;
                  background-position: center;
                  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/new.svg"); }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .bottom-links-outer .bottom-links ul li a {
                  font-weight: 600;
                  color: #000000 !important; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus > div {
          height: auto;
          padding-inline: 1.5rem; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root {
          width: 100% !important; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner {
            background-color: #f7f7f7;
            margin-inline: -1.5rem;
            padding-inline: 1.5rem;
            border: none; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner > .ninjamenus-drilldown-back {
              background-color: #ffffff;
              border: none;
              text-align: left;
              font-size: 1.6rem;
              font-weight: 300;
              text-transform: initial;
              margin-inline: -1.5rem;
              padding-inline: 5rem 1.5rem;
              width: calc(100% + 3rem) !important; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner > .ninjamenus-drilldown-back::before {
                left: 2.5rem !important; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner .mgz-element-inner {
              padding: 0;
              margin: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root > .mgz-element-inner .mgz-element-inner .title {
                font-weight: 300;
                color: #333333; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item {
            padding-inline: 0; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item > a {
              padding: 2rem 0;
              border-bottom: 1px solid #d5d5d5;
              font-size: 1.6rem;
              font-weight: 300;
              color: #333333; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item > a > .mgz-fa-angle-right {
                display: none; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item > a:hover {
                color: #333333 !important;
                background: transparent !important; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item .opener {
              top: 50%;
              transform: translateY(-50%); }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-root .nav-item .opener::before {
                left: unset;
                right: 0;
                transform: translateY(-50%); }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language {
          display: block;
          margin: 0; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language span {
            text-indent: 0 !important;
            line-height: 26px;
            color: inherit; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language span img {
              margin-bottom: 0; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency,
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language {
          width: 100%; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions,
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions {
            width: 100%; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .action,
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .action {
              padding-inline: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .action span,
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .action span {
                font-weight: 300 !important; }
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .mage-dropdown-dialog,
            .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .mage-dropdown-dialog {
              position: relative;
              top: 0; }
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .mage-dropdown-dialog > ul,
              .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .mage-dropdown-dialog > ul {
                border: none !important; }
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher.currency .actions .mage-dropdown-dialog > ul a,
                .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .switcher-language .actions .mage-dropdown-dialog > ul a {
                  padding-inline: 0;
                  font-weight: 300; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .ninjamenus-close {
          position: absolute;
          top: 2.5rem;
          right: 1rem;
          z-index: 2;
          background: none;
          border: none;
          padding: 0; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .ninjamenus-close .label {
            display: block;
            text-indent: -9999px;
            width: 0;
            height: 0;
            overflow: hidden;
            color: transparent;
            visibility: hidden; }
          .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .ninjamenus-close::after {
            content: "";
            display: inline-flex;
            background: center no-repeat url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/x.svg");
            background-size: contain;
            height: 3rem;
            width: 3rem; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-opener.drilldown-back {
          width: 100%; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-opener:hover {
          background-color: transparent; }
        .cs-header .navigation.ninjamenus-hamburger-active .ninjamenus .drilldown-opener::before {
          font-size: 12px !important;
          transform: translate(0, -50%);
          left: 19px; }
      .cs-header .navigation .mgz-tabs-tab-content {
        display: block !important; }
        .cs-header .navigation .mgz-tabs-tab-content .mgz-element-inner {
          padding: 0 !important; }
      .cs-header .navigation .mgz-tabs .mgz-tabs-tab-content .mgz-single-image-wrapper,
      .cs-header .navigation .mgz-element-heading,
      .cs-header .navigation .links,
      .cs-header .navigation .mgz-tabs-tab-title {
        display: none !important; }
      .cs-header .navigation .nav-item.level0 .title {
        font-weight: 600 !important; } }
  .cs-header .navigation .nav-item.level0.active > a {
    background-color: transparent !important;
    color: #c1272f !important;
    border-bottom: 2px solid #c1272f; }
  .cs-header .navigation .nav-item.level0.mega.mgz-element:hover > a {
    background: none !important;
    color: #000000 !important; }
  .cs-header .navigation .nav-item.level0.mega:hover > a {
    color: #ffffff !important;
    background: #c1272f !important; }
  .cs-header .navigation .nav-item.level0 > a {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 26px;
    padding-block: 2.7rem; }
    .cs-header .navigation .nav-item.level0 > a:hover {
      color: #c1272f;
      background: none; }
  .cs-header .navigation .block-title {
    font-size: 1.8rem;
    font-weight: 600;
    color: #333333;
    text-align: left;
    margin-bottom: 1rem; }
  .cs-header .navigation .product-items {
    padding: 0; }
    .cs-header .navigation .product-items .product-item {
      width: 100% !important;
      border: 1px solid #e5e5e5;
      border-radius: 8px;
      transition: 0.3s all;
      padding-bottom: 1rem;
      position: relative;
      min-height: 500px; }
      .cs-header .navigation .product-items .product-item:hover {
        box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.15); }
        .cs-header .navigation .product-items .product-item:hover .actions-secondary,
        .cs-header .navigation .product-items .product-item:hover .actions-primary {
          display: block; }
        .cs-header .navigation .product-items .product-item:hover .price-box,
        .cs-header .navigation .product-items .product-item:hover .product-item-name {
          display: none !important; }
      .cs-header .navigation .product-items .product-item-info {
        display: flex;
        flex-direction: column;
        width: 100%; }
        .cs-header .navigation .product-items .product-item-info .product-image-container {
          width: 100% !important; }
          .cs-header .navigation .product-items .product-item-info .product-image-container .product-image-wrapper {
            padding: 45% !important; }
            .cs-header .navigation .product-items .product-item-info .product-image-container .product-image-wrapper > img {
              margin: 0 auto !important; }
      .cs-header .navigation .product-items .product-item-details {
        display: flex;
        flex-direction: column;
        margin-top: 1rem;
        padding: 0 4rem 3rem; }
        .cs-header .navigation .product-items .product-item-details .price-box {
          padding-top: 3rem; }
          .cs-header .navigation .product-items .product-item-details .price-box .price-wrapper {
            position: relative; }
          .cs-header .navigation .product-items .product-item-details .price-box .special-price .price-excluding-tax {
            margin-left: -0.5rem; }
          .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-including-tax .price {
            position: absolute;
            left: 9.5rem;
            bottom: -1.6rem; }
            @media (max-width: 29.99em) {
              .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-including-tax .price {
                left: 9rem; } }
          .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-excluding-tax .price {
            position: absolute;
            left: 9rem;
            top: -1.8rem; }
            @media (max-width: 30em) {
              .cs-header .navigation .product-items .product-item-details .price-box .old-price .price-excluding-tax .price {
                left: 8.5rem; } }
      .cs-header .navigation .product-items .product-item-name {
        text-align: center; }
      .cs-header .navigation .product-items .product-item-link {
        font-size: 16px;
        font-weight: 600;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden; }
      .cs-header .navigation .product-items .product-item .badges {
        position: absolute;
        top: 1rem;
        left: 50%;
        transform: translateX(-50%);
        width: 19rem;
        justify-content: center; }
      .cs-header .navigation .product-items .product-item .product-reviews-summary.short {
        display: none; }
      .cs-header .navigation .product-items .product-item .special-price .price-container {
        height: 100%;
        justify-content: center; }
        .cs-header .navigation .product-items .product-item .special-price .price-container .price-excluding-tax .price {
          font-size: 1.8rem !important; }
      .cs-header .navigation .product-items .product-item .actions-primary {
        display: none;
        text-align: center; }
      .cs-header .navigation .product-items .product-item .tocart {
        cursor: pointer;
        background-color: #c1272f;
        border: none;
        width: 180px;
        text-align: center;
        font-weight: 500;
        font-size: 1.6rem;
        color: #ffffff;
        margin: auto;
        border-radius: 27px;
        transition: 0.3s all;
        display: block;
        padding: 1.25rem 2rem; }
        .cs-header .navigation .product-items .product-item .tocart:hover {
          background-color: #a20109; }
      .cs-header .navigation .product-items .product-item .actions-secondary {
        display: none;
        position: absolute;
        top: 2rem;
        right: 2rem;
        flex-direction: column;
        z-index: 1; }
        .cs-header .navigation .product-items .product-item .actions-secondary .action > span {
          text-indent: -9999px;
          overflow: hidden;
          width: 0;
          height: 0;
          visibility: hidden; }
        .cs-header .navigation .product-items .product-item .actions-secondary .action::before {
          content: "";
          display: block;
          width: 24px;
          height: 24px;
          margin-left: auto;
          background-size: contain;
          background-repeat: no-repeat; }
        .cs-header .navigation .product-items .product-item .actions-secondary .action.towishlist::before {
          background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/wishlist.svg"); }
        .cs-header .navigation .product-items .product-item .actions-secondary .action.tocompare::before {
          background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/compare.svg"); }

@media (min-width: 64.01em) {
  .navigation .nav-item.level0.active:after {
    border-bottom: 4px solid #c1272f;
    display: block;
    position: relative;
    top: -2px; }
    .navigation .nav-item.level0.active:after .title {
      color: #c1272f; }
  .cms-o-nas .navigation .nav-item.level0:nth-of-type(2) .title {
    color: #c1272f; }
  .cms-o-nas .navigation .nav-item.level0:nth-of-type(2):after {
    border-bottom: 4px solid #c1272f;
    display: block; }
  .cms-serwis .navigation .nav-item.level0:nth-of-type(3) .title {
    color: #c1272f; }
  .cms-serwis .navigation .nav-item.level0:nth-of-type(3):after {
    border-bottom: 4px solid #c1272f;
    display: block; }
  .cms-kontakt .navigation .nav-item.level0:nth-of-type(4) .title {
    color: #c1272f; }
  .cms-kontakt .navigation .nav-item.level0:nth-of-type(4):after {
    border-bottom: 4px solid #c1272f;
    display: block; } }

body.search-open {
  overflow-y: hidden !important;
  max-height: 100vh !important; }

.cms-kma-home-page .cs-container--header {
  border-bottom: none; }

.cms-kma-home-page .cs-container--top-bar + .cs-container--header {
  top: 40px; }

.cms-kma-home-page .cs-container--header {
  background: transparent;
  position: absolute; }

.cs-container--header {
  background-color: #ffffff;
  border-bottom: 1px solid #d5d5d5;
  position: relative;
  z-index: 202; }
  .cs-container--header .cs-container__inner {
    max-width: 160rem; }
  .cs-container--header > .cs-container__inner {
    position: static; }
  @media (max-width: 63.99em) {
    .cs-container--header {
      padding-left: 0;
      padding-right: 0; } }

.cs-header {
  height: 8rem;
  max-width: 100vw; }
  .cs-header__content {
    padding-inline: 4rem;
    background: none;
    border: none;
    height: 8rem;
    position: static;
    flex-wrap: nowrap; }
    @media (max-width: 64em) {
      .cs-header__content > .cs-topbar__item--currency,
      .cs-header__content .switcher.language {
        display: none; } }
    @media (max-width: 64em) {
      .cs-header__content {
        padding-inline: 0; } }
  @media (max-width: 64em) {
    .cs-header__logo {
      padding-left: 1.5rem; } }
  @media (max-width: 63.99em) {
    .cs-header .nav-sections {
      order: -1; } }
  .cs-header__search {
    display: none;
    position: fixed;
    margin-inline: 0 !important;
    max-width: 100vw; }
    .cs-header__search--active {
      display: block;
      top: 0;
      bottom: 0; }
    @media (max-width: 64em) {
      .cs-header__search {
        padding: 0; } }
  .cs-header-search {
    margin: 0;
    width: 100% !important;
    height: 100%;
    max-width: unset !important; }
    .cs-header-search__wrapper {
      background-color: #f7f7f7;
      padding-block: 8rem 4rem;
      max-width: 100vw; }
      @media (max-width: 64em) {
        .cs-header-search__wrapper {
          padding-inline: 1.5rem; } }
    .cs-header-search__most-searched {
      background-color: #ffffff;
      max-width: 77rem;
      margin: 4rem auto 1rem; }
      @media (max-width: 64em) {
        .cs-header-search__most-searched {
          padding-inline: 1.5rem; } }
      .cs-header-search__most-searched[style*="display: none"] ~ .search-autocomplete {
        display: block !important;
        padding-bottom: 2rem; }
      .cs-header-search__most-searched h3 {
        color: #333333;
        font-size: 1.8rem;
        letter-spacing: initial;
        margin: 0; }
      .cs-header-search__most-searched ul {
        margin: 4rem 0 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-wrap: wrap; }
        .cs-header-search__most-searched ul li {
          display: flex;
          align-items: center;
          font-size: 1.6rem;
          font-weight: 300;
          flex-basis: 380px; }
          .cs-header-search__most-searched ul li a:hover {
            color: #c1272f;
            text-decoration: underline; }
          .cs-header-search__most-searched ul li::before {
            content: "";
            display: inline-block;
            width: 1.5rem;
            height: 1.5rem;
            background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4IiB2aWV3Qm94PSIwIDAgMTYgMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8dGl0bGU+Y2hlY2s8L3RpdGxlPgogICAgPGcgaWQ9ImNoZWNrIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8cGF0aCBkPSJNMTEuOTE3MzA4MiwzLjcyMjY0OTkgQzEyLjA3MDQ4NDQsMy40OTI4ODU1NiAxMi4zODA5MTkxLDMuNDMwNzk4NjIgMTIuNjEwNjgzNCwzLjU4Mzk3NDg1IEMxMi44MTQ5MTg0LDMuNzIwMTMxNSAxMi44ODY2Njc1LDMuOTgwNTQxNzMgMTIuNzkyNTA5OCw0LjE5ODEwMDU3IEwxMi43NDkzNTg1LDQuMjc3MzUwMSBMNy40MTYwMjUxNSwxMi4yNzczNTAxIEM3LjI1ODUwNjQ0LDEyLjUxMzYyODIgNi45NDE4ODA3NiwxMi41NjcwNDgzIDYuNzE3NDg0NjQsMTIuNDEyNzIzNCBMNi42NDY0NDY2MSwxMi4zNTM1NTM0IEwyLjY0NjQ0NjYxLDguMzUzNTUzMzkgQzIuNDUxMTg0NDYsOC4xNTgyOTEyNCAyLjQ1MTE4NDQ2LDcuODQxNzA4NzYgMi42NDY0NDY2MSw3LjY0NjQ0NjYxIEMyLjgyMDAxMjk2LDcuNDcyODgwMjYgMy4wODk0MzczNiw3LjQ1MzU5NTExIDMuMjg0MzA1NSw3LjU4ODU5MTE2IEwzLjM1MzU1MzM5LDcuNjQ2NDQ2NjEgTDYuOTIyLDExLjIxNSBMMTEuOTE3MzA4MiwzLjcyMjY0OTkgWiIgaWQ9IlBhdGgiIGZpbGw9IiNDMTI3MkYiIGZpbGwtcnVsZT0ibm9uemVybyI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4=");
            background-repeat: no-repeat;
            background-size: contain;
            margin-right: 10px; }
    .cs-header-search__field {
      margin-top: 9rem;
      max-width: 77rem;
      margin: auto; }
      .cs-header-search__field::before, .cs-header-search__field::after {
        display: none; }
      .cs-header-search__field input::-moz-placeholder {
        color: rgba(51, 51, 51, 0.5); }
      .cs-header-search__field input:-ms-input-placeholder {
        color: rgba(51, 51, 51, 0.5); }
      .cs-header-search__field input::placeholder {
        color: rgba(51, 51, 51, 0.5); }
    .cs-header-search__close {
      position: fixed;
      top: 6rem;
      right: 8rem; }
      .cs-header-search__close-icon {
        display: block !important;
        width: 4.3rem !important;
        height: 3.3rem !important;
        opacity: 1 !important;
        margin: 0 !important; }
      @media (max-width: 64em) {
        .cs-header-search__close {
          top: 2rem;
          right: 1rem; } }
    .cs-header-search__button {
      background: none !important;
      border: none !important;
      margin-right: 1rem !important; }
      .cs-header-search__button-icon--search path {
        fill: #000000 !important; }
      .cs-header-search__button-icon--loader {
        stroke: #000000 !important; }
    .cs-header-search__input {
      border: 1px solid #000000 !important;
      height: 6rem !important;
      background-color: transparent !important; }
      .cs-header-search__input::-moz-placeholder {
        color: #333333;
        font-size: 1.8rem;
        font-weight: 300; }
      .cs-header-search__input:-ms-input-placeholder {
        color: #333333;
        font-size: 1.8rem;
        font-weight: 300; }
      .cs-header-search__input::placeholder {
        color: #333333;
        font-size: 1.8rem;
        font-weight: 300; }
    .cs-header-search__autocomplete {
      position: static !important;
      bottom: 0;
      height: 100%;
      box-shadow: none !important;
      transform: none !important;
      left: 0 !important;
      height: calc(100vh - 180px);
      overflow-y: scroll; }
      @media (max-width: 64em) {
        .cs-header-search__autocomplete {
          width: 100% !important;
          padding-inline: 2rem; } }
      .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result {
        padding-top: 2rem;
        max-width: 77rem;
        margin: auto; }
        .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list-title {
          color: #333333;
          font-size: 1.8rem;
          letter-spacing: initial;
          text-transform: initial;
          margin: 0; }
        .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category {
          flex-wrap: wrap;
          align-items: flex-start; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd {
            position: relative; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd::before, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd::before {
              content: "\2713";
              color: #c1272f;
              margin-right: 10px;
              font-size: 2rem; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .qs-option-name,
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .category-mini-crumb, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .qs-option-name,
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .category-mini-crumb {
              font-size: 1.6rem; }
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .qs-option-name strong,
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .category-mini-crumb strong, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .qs-option-name strong,
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .category-mini-crumb strong {
                font-weight: 400; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .category-mini-crumb, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .category-mini-crumb {
              margin-right: 5px; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd .amount, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd .amount {
              font-weight: 400; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd:hover, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd:hover {
              background: transparent; }
              .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.term dd:hover .qs-option-name, .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd:hover .qs-option-name {
                color: #c1272f;
                text-decoration: underline; }
        @media (max-width: 48em) {
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.category dd:last-child {
            padding-bottom: 9rem; } }
        .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product {
          border: none; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-image-box {
            width: 100px;
            height: 100px;
            margin-right: 2rem; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-image-box > img {
              width: 100%;
              height: 100%; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .product-name {
            color: #333333;
            font-size: 1.6rem; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .price-box .price-wrapper {
            display: flex;
            align-items: center;
            font-size: 1.4rem;
            position: relative; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .price-box .price-final_price {
            color: #333333;
            font-size: 1.6rem;
            font-weight: 400; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item .price-box .price-final_price .price {
              color: #333333;
              font-size: 1.6rem;
              font-weight: 600; }
          .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item:hover {
            background-color: transparent; }
            .cs-header-search__autocomplete .smile-elasticsuite-autocomplete-result .autocomplete-list.product .product-item:hover .product-name {
              text-decoration: underline;
              color: #c1272f; }
  .cs-header .ninjamenus.ninjamenus-desktop .left_edge_menu_bar > .item-submenu {
    width: auto !important; }

.level0 > .item-submenu {
  position: absolute;
  left: 0 !important;
  right: 0;
  border-top: none !important;
  padding: 10px 0 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-header-search {
  width: 100%; }
  @media (min-width: 64em) {
    .cs-header-search {
      width: 50%; } }
  .cs-header-search--in-offcanvas {
    position: relative; }
  .cs-header-search__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__field {
    position: relative; }
    .cs-header-search__field:before, .cs-header-search__field:after {
      content: '';
      position: absolute;
      opacity: 0;
      transition: opacity 0.3s;
      left: -0.5rem;
      right: -0.5rem;
      background: #fff; }
    .cs-header-search__field:before {
      content: '';
      position: absolute;
      box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.17);
      top: -0.5rem;
      bottom: -0.5rem;
      border-radius: 5px 5px 0 0; }
    .cs-header-search__field:after {
      content: '';
      position: absolute;
      bottom: -1rem;
      top: 100%;
      z-index: 209; }
    .active-popup .cs-header-search__field:before, .active-popup .cs-header-search__field:after {
      opacity: 1; }
  .cs-header-search__input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    font-size: 1.6rem;
    position: relative;
    z-index: 210;
    margin: 0;
    -webkit-appearance: none; }
    .cs-header-search__input:hover:not([disabled]), .cs-header-search__input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-header-search__input.mage-error, .cs-header-search__input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-header-search__input.required-entry {
      margin-bottom: 0; }
    .cs-header-search__input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-header-search__input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-header-search__input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-header-search__input[disabled] {
      opacity: 1; }
    @media (min-width: 30em) {
      .cs-header-search__input {
        font-size: 1.4rem; } }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--search {
      transform: translateX(100%);
      opacity: 0; }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--loader {
      transform: translateX(0);
      opacity: 1; }
  .cs-header-search__action {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 220;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top-right-radius: 24px;
    border-bottom-right-radius: 24px; }
  .cs-header-search__close-icon {
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 1rem;
    display: block;
    opacity: 0.6;
    transition: opacity 0.3s linear; }
    .cs-header-search__close-icon:hover {
      cursor: pointer;
      opacity: 1; }
    @media (min-width: 64em) {
      .cs-header-search__close-icon {
        display: none; } }
    .cs-header-search__close-icon path {
      fill: #888; }
  .cs-header-search__close-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__button-container {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    transition: transform 0.5s cubic-bezier(0, 0.66, 0.32, 0.99), opacity 0.15s linear; }
    .cs-header-search__button-container--search {
      transform: translateX(0); }
    .cs-header-search__button-container--loader {
      transform: translateX(100%); }
  .cs-header-search__button {
    width: 5rem;
    height: 100%;
    overflow: hidden;
    position: relative;
    border-radius: 0 !important;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    transform: translateX(0.7rem); }
    .cs-header-search__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-header-search__button, .cs-header-search__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-header-search__button:hover:not([disabled]), .cs-header-search__button:focus:not([disabled]), .cs-header-search__button:active:not([disabled]), .cs-header-search__button:visited:hover:not([disabled]), .cs-header-search__button:visited:focus:not([disabled]), .cs-header-search__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-header-search__button[disabled], .cs-header-search__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-header-search__button[disabled] {
      opacity: 1; }
  .cs-header-search__button-icon {
    transform: translateX(-0.3rem); }
    .cs-header-search__button-icon--search {
      width: 2rem;
      height: 2rem; }
      .cs-header-search__button-icon--search path {
        fill: #fff; }
    .cs-header-search__button-icon--loader {
      stroke: #fff;
      width: 3.2rem;
      height: 3.2rem; }
  .cs-header-search__button-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__autocomplete {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem; }
    @media (max-width: 47.99em) {
      .cs-header-search__autocomplete {
        max-height: calc( 100vh - 5rem - 2.6rem - 7rem);
        overflow-y: auto; } }
    @media (min-width: 64em) {
      .cs-header-search__autocomplete {
        margin-top: 0.5rem;
        left: 50%;
        transform: translateX(-50%);
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.17);
        border: 0;
        width: 100%; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 1 1 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    width: 100%;
    padding: 1rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #324dcf; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #696969; }
    .cs-header-user-nav__link--search:hover {
      cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #324dcf; }
  .cs-header-user-nav__label {
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 300;
    margin-top: 0.3rem;
    color: #696969;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 0.2rem;
    padding: 0 0.6rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    background-clip: padding-box;
    position: absolute;
    right: -0.5rem;
    top: -0.5rem;
    opacity: 0;
    transition: opacity 0.3s; }
    @media (min-width: 48em) {
      .cs-header-user-nav__qty-counter {
        right: -1rem; } }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #e41f12;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }

.cs-header-user-nav {
  flex: 0 1 15%;
  margin-left: auto; }
  @media (max-width: 30em) {
    .cs-header-user-nav {
      flex-grow: 1;
      padding-right: 1.5rem !important; } }
  @media (max-width: 23.125em) {
    .cs-header-user-nav {
      padding-right: 0 !important; } }
  .cs-header-user-nav__qty-counter--minicart, .cs-header-user-nav__qty-counter--wishlist, .cs-header-user-nav__qty-counter--compare {
    bottom: 3.5rem;
    top: unset;
    right: 0;
    border-radius: 100%;
    width: 2rem;
    height: 2rem;
    padding: 0;
    align-items: center;
    line-height: normal;
    text-align: center; }
  .cs-header-user-nav__qty-counter--compare {
    background-color: #003666;
    color: #ffffff; }
  .cs-header-user-nav__qty-counter--minicart {
    background-color: #c1272f; }
  .cs-header-user-nav__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    text-align: center;
    bottom: -3px; }
  .cs-header-user-nav__item {
    height: 100%;
    position: relative;
    width: 43px;
    max-width: 43px; }
    .cs-header-user-nav__item--search {
      display: flex !important; }
  .cs-header-user-nav__link {
    position: static;
    height: 100%; }
    @media (max-width: 30em) {
      .cs-header-user-nav__link {
        padding: 0 0.5rem; } }
    @media (max-width: 23.125em) {
      .cs-header-user-nav__link {
        padding-inline: 0; } }
    .cs-header-user-nav__link .cs-header-user-nav__label {
      opacity: 0;
      transition: 0.3s opacity;
      transition-delay: 1s; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
      fill: #c1272f; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__label {
      width: auto;
      height: auto;
      clip: unset;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      opacity: 1; }
  .cs-header-user-nav__icon {
    width: 2.3rem;
    height: 2.3rem; }
    .cs-header-user-nav__icon path {
      fill: #000000; }
    .cs-header-user-nav__icon-wrapper {
      position: static; }
  @media (max-width: 48em) {
    .cs-header-user-nav {
      padding: 0; } }

.lazyload,
.lazyloading,
.swiper-lazy {
  opacity: 0.001; }

.lazyloaded,
.swiper-lazy-loaded {
  opacity: 1;
  transition: opacity 0.2s; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-top: 0.5rem; }
    .cs-links-block-addto__item:nth-child(2n) {
      text-align: right; }
      .cs-links-block-addto__item:nth-child(2n) .cs-links-block-addto__icon {
        order: 2;
        margin-left: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    color: #142b9e;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #142b9e;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 1.375em;
    height: 1.375em;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #888; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #e41f12; }
    .cs-links-block-addto__icon--compare path {
      fill: #324dcf; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-top: 0; }
    .cs-links-block-addto__item:nth-child(2n) {
      text-align: right; }
      .cs-links-block-addto__item:nth-child(2n) .cs-links-block-addto__icon {
        order: 2;
        margin-left: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 2.4rem;
    color: #c1272f;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #c1272f;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 2.4rem;
    height: 2.4rem;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #333333; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #333333; }
    .cs-links-block-addto__icon--wishlist:hover path {
      fill: #c1272f !important; }
    .cs-links-block-addto__icon--compare path {
      fill: #333333; }
    .cs-links-block-addto__icon--compare:hover path {
      fill: #c1272f !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-logo {
  height: 100%; }
  .cs-logo__image {
    height: 100%; }
    .cs-logo__image--desktop {
      display: none; }
      .checkout-index-index .cs-logo__image--desktop {
        display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--desktop {
          display: block; } }
    .cs-logo__image--mobile {
      display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--mobile {
          display: none; } }
      .checkout-index-index .cs-logo__image--mobile {
        display: none; }

.cs-logo {
  display: flex;
  align-items: center; }
  .cs-logo__image {
    max-width: 20rem;
    height: auto; }
    @media (max-width: 48em) {
      .cs-logo__image {
        max-width: 13rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.messages {
  max-width: 120rem;
  margin: 0 auto; }

.cs-messages__message,
.message {
  margin: 1rem 0;
  padding: 1.8rem 1rem 1.8rem;
  border-radius: 24px;
  background-repeat: no-repeat;
  background-position: 1.2rem center;
  background-size: 2rem 2rem;
  padding-left: 4.3rem; }

.cs-messages__message--success,
.message.success {
  background-color: rgba(49, 136, 98, 0.1);
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-success.svg");
  border: none; }

.cs-messages__message--notice,
.message.warning {
  background-color: #fdf4ca;
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-warning.svg");
  border: none; }

.cs-messages__message--info,
.message.info,
.message.notice {
  background-color: rgba(0, 54, 102, 0.1);
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-info.svg");
  border: none; }

.cs-messages__message--error,
.message.error {
  background-color: rgba(255, 0, 24, 0.1);
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-error.svg");
  border: none; }

.cs-messages__text,
.message span {
  color: #696969;
  font-size: 1.4rem; }

.cs-messages--space-top {
  margin-top: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* prettier-ignore */
.cs-minicart__close {
  display: inline-block;
  background: none;
  box-sizing: content-box;
  border: 0;
  box-shadow: none;
  line-height: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  text-shadow: none;
  font-weight: 400;
  position: absolute;
  right: -1.5rem;
  width: 5rem;
  height: 5rem;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  right: 0.5rem; }
  .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
    background: transparent;
    border: none;
    color: inherit; }

.cs-minicart__close-icon {
  position: relative;
  transform: rotate(45deg);
  width: 100%;
  height: 100%;
  display: inline-block; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    content: '';
    position: absolute;
    top: 50%;
    width: 2rem;
    height: 0.2rem;
    left: auto;
    background-color: #484848;
    transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden; }
  .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
    background-color: #696969; }
  .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
    background-color: #888; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    right: 1.5rem;
    transform: translate3d(0, -50%, 0) !important; }
  .cs-minicart__close-icon:after {
    transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
  .cs-minicart__close-icon[aria-expanded="true"]:before {
    transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
    opacity: 0; }
  .cs-minicart__close-icon[aria-expanded="true"]:after {
    transform: translate3d(0, -50%, 0) rotate(0) !important; }

.cs-minicart__close-text {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.cs-minicart__title-wrapper {
  position: relative;
  padding: 2rem 0;
  display: flex;
  color: #212121;
  font-weight: 700;
  font-size: 1.8rem;
  margin: 0;
  padding: 1rem 2rem;
  font-size: 2.1rem;
  text-transform: uppercase;
  border-bottom: 1px solid #dcdcdc; }

.cs-minicart__items-total {
  margin-left: 0.5rem;
  color: #696969;
  font-weight: 400; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
    content: '('; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
    content: ')'; }
  .cs-minicart__items-total--empty .count {
    display: none; }

.cs-minicart__edit-link {
  font-weight: 700; }
  .cs-minicart__edit-link .cs-link__icon {
    padding: 0 0 0 1rem; }

.cs-minicart__content {
  height: auto !important;
  background-color: #fff;
  position: relative; }
  .cs-minicart__content .load.indicator:before {
    height: unset; }

.cs-minicart__list {
  padding: 0;
  list-style: none;
  margin-bottom: 0; }
  .cs-minicart__list--scroll {
    height: auto !important;
    max-height: calc(100vh - 36rem);
    overflow-y: auto; }
    @media (min-width: 48em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 38rem); }
        .is-tablet .cs-minicart__list--scroll {
          max-height: calc(100vh - 43rem); } }

.cs-minicart__list-item {
  padding: 1.5rem;
  border-bottom: 1px solid #dcdcdc;
  margin-bottom: 0;
  padding: 1.5rem 2rem; }
  .cs-minicart__list-item:last-child {
    border-bottom: none; }

.cs-minicart__actions-wrapper {
  padding: 2rem 0;
  position: relative;
  padding: 1.5rem 2rem;
  box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27); }

.cs-minicart__actions {
  margin-top: 1rem; }
  .cs-minicart__actions:first-child {
    margin-top: 0; }

.cs-minicart__empty {
  padding: 2rem 0;
  display: inline-block;
  font-size: 1.4rem;
  text-align: center; }

.cs-minicart__subtotal {
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.2rem; }

.cs-minicart__subtotal-price .price {
  font-weight: 700;
  font-size: 1.5rem !important;
  font-size: 2.1rem !important; }

.cs-minicart__button-checkout {
  width: 100%; }
  .cs-minicart__button-checkout::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]), .cs-minicart__button-checkout:visited:hover:not([disabled]), .cs-minicart__button-checkout:visited:focus:not([disabled]), .cs-minicart__button-checkout:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-minicart__button-checkout[disabled], .cs-minicart__button-checkout:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-minicart__button-checkout-span {
    font-size: 1.6rem;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-checkout-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-viewcart {
  width: 100%; }
  .cs-minicart__button-viewcart::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]), .cs-minicart__button-viewcart:visited:hover:not([disabled]), .cs-minicart__button-viewcart:visited:focus:not([disabled]), .cs-minicart__button-viewcart:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-minicart__button-viewcart[disabled], .cs-minicart__button-viewcart:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-minicart__button-viewcart-span {
    font-size: 1.6rem;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-carousel-wrapper {
  display: flex;
  justify-content: center;
  padding-top: 3rem;
  margin: 3rem 0;
  border-top: 1px solid #dcdcdc; }

.cs-minicart__button-carousel::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #333333;
  color: #333333;
  background-color: #fff; }
  .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]), .cs-minicart__button-carousel:visited:hover:not([disabled]), .cs-minicart__button-carousel:visited:focus:not([disabled]), .cs-minicart__button-carousel:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #c1272f;
    color: #c1272f;
    background-color: #fff; }
  .cs-minicart__button-carousel[disabled], .cs-minicart__button-carousel:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #f7f7f7; }

.cs-minicart__button-carousel-span {
  font-size: 1.6rem;
  /* stylelint-disable-next-line */ }

.cs-minicart__button-carousel-icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none;
  /* stylelint-disable-next-line */ }

.cs-minicart__messages {
  padding: 0 2rem; }

.cs-minicart-offcanvas__wrapper {
  padding: 0; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }
  .cs-minicart__carousel-container {
    opacity: 0;
    transition: opacity 0.3s ease-in;
    background: #fff; }
    .cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
      opacity: 1; }
  .cs-minicart__carousel-wrapper {
    display: none;
    visibility: hidden;
    pointer-events: none;
    top: 50%;
    right: calc(40rem + 2rem);
    transform: translateY(-50%);
    width: calc(100vw - (40rem + (2 * 2rem)));
    max-width: 120rem;
    padding: 0;
    margin: 0;
    background: transparent; }
    .cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
      visibility: visible;
      pointer-events: auto; }
    .drawer--visible .cs-minicart__carousel-wrapper {
      position: absolute; }
    @media (min-width: 48em) {
      .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
        display: block; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        max-height: 80vh; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        right: calc(40rem + (2 * 2rem));
        width: calc(100vw - (40rem + (4 * 2rem))); } }
    .cs-minicart__carousel-wrapper .cs-headline {
      margin: 0 0 2rem;
      padding: 2rem 0 0; }
  .cs-minicart__carousel-spinner {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 11rem;
    height: 11rem;
    padding: 2rem 0;
    transform: translate3d(-50%, -50%, 0);
    transition: opacity 0.3s ease-in; }
    .cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
      opacity: 1;
      z-index: 10; }
  .cs-minicart__carousel .cs-products-carousel {
    margin: 0;
    background: #fff; }

.minicart-wrapper .ui-dialog {
  display: block !important; }

.cs-minicart {
  position: relative;
  z-index: 13; }
  .cs-minicart__wrapper {
    height: 100vh;
    display: flex;
    flex-direction: column; }
  .cs-minicart .update-cart-item {
    display: block;
    border: 1px solid #333333;
    background: none;
    border-radius: 24px !important;
    color: #333333;
    width: 100%; }
    .cs-minicart .update-cart-item:hover svg {
      filter: none; }
    .cs-minicart .update-cart-item svg {
      filter: invert(1);
      transition: 0.3s all; }
  .cs-minicart__close {
    display: inline-block;
    background: none;
    box-sizing: content-box;
    border: 0;
    box-shadow: none;
    line-height: inherit;
    margin: 0;
    padding: 0;
    text-decoration: none;
    text-shadow: none;
    font-weight: 400;
    position: absolute;
    right: -1.5rem;
    width: 5rem;
    height: 5rem;
    top: 70%;
    transform: translateY(-50%);
    cursor: pointer;
    right: 1.5rem; }
    .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
      background: transparent;
      border: none;
      color: inherit; }
  .cs-minicart__close-icon {
    position: relative;
    transform: rotate(45deg);
    width: 100%;
    height: 100%;
    display: inline-block; }
    .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 2.5rem;
      height: 0.2rem;
      left: auto;
      background-color: #484848;
      transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
      background-color: #696969; }
    .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
      background-color: #888; }
    .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
      right: 1.5rem;
      transform: translate3d(0, -50%, 0) !important; }
    .cs-minicart__close-icon:after {
      transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
    .cs-minicart__close-icon[aria-expanded="true"]:before {
      transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
      opacity: 0; }
    .cs-minicart__close-icon[aria-expanded="true"]:after {
      transform: translate3d(0, -50%, 0) rotate(0) !important; }
  .cs-minicart__close-text {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px; }
  .cs-minicart__title-wrapper {
    position: relative;
    padding: 3rem 1.5rem 1.5rem;
    display: flex;
    color: #333333;
    font-weight: 700;
    font-size: 2.4rem;
    margin: 0;
    font-size: 2.4rem;
    text-transform: none;
    border-bottom: none; }
  .cs-minicart__items-total {
    margin-left: 0.5rem;
    color: #696969;
    font-weight: 400; }
    .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
      content: "("; }
    .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
      content: ")"; }
    .cs-minicart__items-total--empty .count {
      display: none; }
  .cs-minicart__edit-link {
    font-weight: 700; }
    .cs-minicart__edit-link .cs-link__icon {
      padding: 0 0 0 1rem; }
  .cs-minicart__content {
    height: auto !important;
    background-color: #fff;
    position: relative; }
    .cs-minicart__content-wrapper {
      position: relative;
      flex-grow: 1; }
      @media (max-width: 30em) {
        .cs-minicart__content-wrapper {
          padding-bottom: 270px; } }
    .cs-minicart__content .load.indicator:before {
      height: unset; }
  .cs-minicart__list {
    padding: 0 1.5rem;
    list-style: none;
    margin-bottom: 0; }
    .cs-minicart__list--scroll {
      height: auto !important;
      max-height: calc(100vh - 36rem);
      overflow-y: auto; }
      @media (min-width: 48em) {
        .cs-minicart__list--scroll {
          max-height: calc(100vh - 38rem); }
          .is-tablet .cs-minicart__list--scroll {
            max-height: calc(100vh - 43rem); } }
  .cs-minicart__list-item {
    padding: 3rem 0 3.5rem 0;
    border-bottom: 1px solid #d5d5d5;
    margin-bottom: 0;
    padding: 3rem 0 3.5rem 0; }
    .cs-minicart__list-item:last-child {
      border-bottom: none; }
      @media (max-width: 30em) {
        .cs-minicart__list-item:last-child {
          padding-bottom: 11rem; } }
  .cs-minicart__actions-wrapper {
    padding: 2rem 1.5rem;
    position: relative;
    background-color: #f7f7f7;
    min-height: 26rem;
    max-height: 26rem;
    box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27); }
    @media (max-width: 30em) {
      .cs-minicart__actions-wrapper {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 3; } }
  .cs-minicart__actions {
    margin: 2rem auto;
    max-width: 240px; }
    .cs-minicart__actions:first-child {
      margin-top: 3rem; }
  .cs-minicart__empty {
    padding: 3rem 4rem;
    display: inline-block;
    font-size: 1.4rem;
    text-align: center; }
  .cs-minicart__subtotal {
    display: block; }
  .cs-minicart__subtotal-label {
    display: none; }
  .cs-minicart__subtotal-price .price-wrapper {
    width: 100%;
    display: flex;
    justify-content: space-between;
    font-size: 1.6rem;
    padding-bottom: 1rem;
    line-height: 2.6rem; }
    .cs-minicart__subtotal-price .price-wrapper::before {
      content: attr(data-label) ":";
      font-weight: 400;
      font-size: 1.6rem !important;
      width: auto !important; }
    .cs-minicart__subtotal-price .price-wrapper .price {
      font-weight: 700;
      font-size: 1.6rem !important;
      font-size: 1.6rem !important; }
    .cs-minicart__subtotal-price .price-wrapper.price-excluding-tax .price {
      font-weight: 700;
      font-size: 2.4rem !important;
      font-size: 2.4rem !important; }
    .cs-minicart__subtotal-price .price-wrapper.price-excluding-tax::before {
      font-weight: 700;
      font-size: 1.6rem !important;
      width: auto !important; }
  .cs-minicart__button-checkout {
    width: 100%; }
    .cs-minicart__button-checkout::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]), .cs-minicart__button-checkout:visited:hover:not([disabled]), .cs-minicart__button-checkout:visited:focus:not([disabled]), .cs-minicart__button-checkout:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-minicart__button-checkout[disabled], .cs-minicart__button-checkout:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-minicart__button-checkout-span {
      font-size: 1.6rem;
      /* stylelint-disable-next-line */ }
    .cs-minicart__button-checkout-icon {
      max-width: 1em;
      max-height: 1.6rem;
      z-index: 2;
      height: auto;
      width: 100%;
      display: none;
      /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart {
    width: 100%; }
    .cs-minicart__button-viewcart::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]), .cs-minicart__button-viewcart:visited:hover:not([disabled]), .cs-minicart__button-viewcart:visited:focus:not([disabled]), .cs-minicart__button-viewcart:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .cs-minicart__button-viewcart[disabled], .cs-minicart__button-viewcart:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    .cs-minicart__button-viewcart-span {
      font-size: 1.6rem;
      /* stylelint-disable-next-line */ }
    .cs-minicart__button-viewcart-icon {
      max-width: 1em;
      max-height: 1.6rem;
      z-index: 2;
      height: auto;
      width: 100%;
      display: none;
      /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel-wrapper {
    display: flex;
    justify-content: center;
    padding-top: 0;
    margin: 3rem 0; }
  .cs-minicart__button-carousel::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]), .cs-minicart__button-carousel:visited:hover:not([disabled]), .cs-minicart__button-carousel:visited:focus:not([disabled]), .cs-minicart__button-carousel:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-minicart__button-carousel[disabled], .cs-minicart__button-carousel:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-minicart__button-carousel-span {
    font-size: 1.6rem;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none;
    /* stylelint-disable-next-line */ }
  .cs-minicart__messages {
    padding: 0 2rem; }
  .cs-minicart-offcanvas__wrapper {
    padding: 0; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }
  .cs-minicart__carousel-container {
    opacity: 0;
    transition: opacity 0.3s ease-in;
    background: #fff;
    z-index: -1;
    overflow-x: hidden; }
    .cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
      opacity: 1; }
  .cs-minicart__carousel-wrapper {
    display: none;
    visibility: hidden;
    pointer-events: none;
    top: 50%;
    right: calc(50rem + 2rem + 2rem);
    transform: translateY(-50%);
    width: calc(100vw - (50rem + (2 * 2rem)));
    max-width: 120rem;
    padding: 0;
    margin: 0;
    background: transparent;
    overflow-y: auto;
    max-height: 100vh; }
    @media (max-width: 64em) {
      .cs-minicart__carousel-wrapper {
        display: none !important; } }
    .cs-minicart__carousel-wrapper .cs-product-tile__price--grid {
      padding-top: 2.5rem !important; }
    @media (max-width: 30em) {
      .cs-minicart__carousel-wrapper .cs-products-carousel__nav {
        display: none !important; } }
    .cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
      visibility: visible;
      pointer-events: auto; }
    .drawer--visible .cs-minicart__carousel-wrapper {
      position: absolute; }
    @media (min-width: 80em) {
      .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
        display: block; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        max-height: 80vh; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        right: calc(50rem + (2 * 2rem));
        width: calc(100vw - (50rem + (4 * 2rem))); } }
    .cs-minicart__carousel-wrapper .cs-headline {
      margin: 0 0 2rem;
      padding: 2rem 0 0; }
      .cs-minicart__carousel-wrapper .cs-headline::before, .cs-minicart__carousel-wrapper .cs-headline::after {
        display: none !important; }
  .cs-minicart__carousel-spinner {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 11rem;
    height: 11rem;
    padding: 2rem 0;
    transform: translate3d(-50%, -50%, 0);
    transition: opacity 0.3s ease-in; }
    .cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
      opacity: 1;
      z-index: 10; }
  .cs-minicart__carousel .cs-products-carousel {
    margin: 0;
    background: #fff; }

.minicart-wrapper .ui-dialog {
  display: block !important; }
  .minicart-wrapper .ui-dialog .drawer--visible {
    width: 100%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-minicart-product {
  display: flex; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__brand-wrapper {
    text-align: left; }
  .cs-minicart-product__brand {
    font-size: 1.2rem;
    color: #888; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 1.2rem;
    text-align: left;
    font-size: 1.3rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: inherit;
    text-decoration: none;
    color: #212121;
    font-weight: 600;
    font-weight: 700;
    font-size: 1.4rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #212121; }
  .cs-minicart-product__item-pricing {
    order: 3; }
  .cs-minicart-product__price .price {
    font-size: 1.3rem;
    font-weight: 700;
    color: #212121; }
  .cs-minicart-product__price .price-including-tax,
  .cs-minicart-product__price .price-excluding-tax {
    font-size: 1.3rem; }
  .cs-minicart-product__price .price {
    font-weight: 400; }
  .cs-minicart-product__price-label, .cs-minicart-product__options-subtitle {
    display: none; }
  .cs-minicart-product__options-title {
    font-size: 1.2rem;
    color: #484848;
    cursor: pointer;
    font-size: 1.3rem;
    color: #212121; }
    .cs-minicart-product__options-title[aria-expanded='true'] > .cs-minicart-product__options-title-svg {
      transform: rotate(180deg);
      vertical-align: initial; }
  .cs-minicart-product__options-title-svg {
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;
    transition: transform 0.3s cubic-bezier(0, 0.66, 0.32, 0.99);
    vertical-align: middle; }
  .cs-minicart-product__options-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    margin-top: -0.4rem;
    flex-basis: 100%;
    padding-bottom: 1.2rem; }
  .cs-minicart-product__options-group {
    margin: 0;
    width: 100%;
    display: flex;
    align-items: center; }
    .cs-minicart-product__options-group--qty {
      margin-top: 0.5rem; }
      .cs-minicart-product__options-wrapper + .cs-minicart-product__options-group--qty {
        margin-top: 1.5rem; }
  .cs-minicart-product__options-content {
    width: 100%;
    padding-top: 0.5rem; }
  .cs-minicart-product__options-label {
    font-size: 1.2rem;
    color: #888;
    font-weight: 400;
    margin-bottom: 0;
    text-align: left;
    padding-right: 0.5rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #212121;
    text-transform: uppercase; }
    .cs-minicart-product__options-label:after {
      content: ':'; }
  .cs-minicart-product__options-value {
    font-size: 1.2rem;
    color: #888;
    margin-bottom: 0;
    width: 100%; }
    .cs-minicart-product__options-value__value {
      display: flex;
      justify-content: space-between;
      width: 100%; }
      .cs-minicart-product__options-value__value .price {
        color: #212121; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 1rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 3rem;
    width: 4rem;
    max-width: 4rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-minicart-product__qty-input.mage-error, .cs-minicart-product__qty-input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-minicart-product__qty-input.required-entry {
      margin-bottom: 0; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 1; }
  .cs-minicart-product__qty-button {
    padding: 0;
    width: 3rem;
    height: 3rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]), .cs-minicart-product__qty-button:visited:hover:not([disabled]), .cs-minicart-product__qty-button:visited:focus:not([disabled]), .cs-minicart-product__qty-button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-minicart-product__qty-button[disabled], .cs-minicart-product__qty-button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
  .cs-minicart-product__qty-button-span {
    font-size: 1.6rem; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #142b9e; }
  .cs-minicart-product__action-icon {
    width: 1.6rem;
    height: 1.6rem;
    width: 2rem;
    height: 2rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #324dcf; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #212121; }
  .cs-minicart-product__options-title-svg * {
    fill: #212121; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-minicart-product {
  display: flex;
  line-height: 24px;
  text-align: left;
  gap: 0 3rem; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 3px; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 0;
    font-size: 1.6rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__options-group {
    display: block;
    margin-top: -5px; }
  .cs-minicart-product__options-wrapper {
    margin-top: 0.25rem !important; }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: 1.6rem;
    text-decoration: none;
    color: #333333;
    font-weight: 700;
    font-weight: 700;
    font-size: 1.6rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #333333; }
  .cs-minicart-product__sku-wrapper {
    line-height: 2.4rem;
    width: 100%;
    font-size: 1.4rem;
    font-weight: 300; }
  .cs-minicart-product__price {
    margin-top: 1rem; }
    .cs-minicart-product__price .price {
      font-size: 1.6rem;
      font-weight: 700;
      color: #212121; }
    .cs-minicart-product__price .price-wrapper {
      display: flex; }
    .cs-minicart-product__price .price-including-tax,
    .cs-minicart-product__price .price-excluding-tax {
      text-align: left;
      line-height: 2.4rem;
      font-size: 1.6rem; }
      .cs-minicart-product__price .price-including-tax::before,
      .cs-minicart-product__price .price-excluding-tax::before {
        content: attr(data-label) ":";
        font-size: 1.4rem;
        font-weight: 300; }
      .cs-minicart-product__price .price-including-tax .price,
      .cs-minicart-product__price .price-excluding-tax .price {
        font-weight: 700; }
    .cs-minicart-product__price .price-excluding-tax .price {
      font-weight: 700;
      font-size: 1.8rem; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 3rem;
    margin-top: 1.4rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
    @media (max-width: 30em) {
      .cs-minicart-product__qty,
      .cs-minicart-product .cs-qty-increment {
        flex-direction: column;
        gap: 1rem; } }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 4.8rem;
    width: 8rem;
    max-width: 8rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-minicart-product__qty-input.mage-error, .cs-minicart-product__qty-input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-minicart-product__qty-input.required-entry {
      margin-bottom: 0; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 1; }
  .cs-minicart-product__qty-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]), .cs-minicart-product__qty-button:visited:hover:not([disabled]), .cs-minicart-product__qty-button:visited:focus:not([disabled]), .cs-minicart-product__qty-button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-minicart-product__qty-button[disabled], .cs-minicart-product__qty-button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
    border-radius: 3px !important;
    padding: 0;
    width: 4.8rem;
    height: 4.8rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button-icon *, .cs-minicart-product__qty-button:visited-icon * {
      fill: #ffffff; }
  .cs-minicart-product__qty-button-span {
    font-size: 1.6rem; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #a20109; }
  .cs-minicart-product__action-icon {
    width: 2.4rem;
    height: 2.4rem;
    width: 2.4rem;
    height: 2.4rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #333333; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #878787; }
  .cs-minicart-product__options-title-svg * {
    fill: #333333; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-free-shipping-indicator__content {
  border-top: 1px solid #dcdcdc;
  padding: 1.5rem 2rem 2rem;
  color: #696969;
  font-size: 1.4rem;
  text-align: left; }

.cs-free-shipping-indicator__cell {
  padding-top: 1.4rem;
  padding-bottom: 1.4rem;
  padding-right: 0 !important; }

.cs-free-shipping-indicator__total-left-text span {
  font-weight: 700; }

.cs-free-shipping-indicator__total-fulfilled {
  padding-left: 2.8rem;
  background: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/messages/icon-success.svg") 0 50% no-repeat;
  background-size: 2rem; }

.cs-free-shipping-indicator__bar-wrapper {
  display: flex;
  align-items: center; }

.cs-free-shipping-indicator__bar-label {
  flex-shrink: 0;
  color: #37b841;
  font-weight: 700; }
  .cs-free-shipping-indicator__bar-label--start {
    margin-right: 1rem; }
  .cs-free-shipping-indicator__bar-label--end {
    margin-left: 1rem; }

.cs-free-shipping-indicator__bar {
  width: 100%;
  height: 2rem;
  padding: 0.4rem;
  border: 1px solid #b0b0b0;
  border-radius: 33.6px; }

.cs-free-shipping-indicator__bar-progress-wrapper {
  height: 100%;
  background: transparent;
  border-radius: 24px; }

.cs-free-shipping-indicator__bar-progress {
  height: 100%;
  width: 0;
  background: #37b841;
  border-radius: 24px;
  transition: width 0.55s cubic-bezier(0, 0.66, 0.32, 0.99); }

.cs-free-shipping-indicator__icon {
  flex-shrink: 0;
  width: 3.4rem;
  height: 2rem;
  margin: 0 0 0 2.5rem;
  fill: #888;
  transition: fill 0.3s; }
  .cs-free-shipping-indicator__bar-wrapper--free-shipping-active .cs-free-shipping-indicator__icon {
    fill: #37b841; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable no-descending-specificity */
.modal-slide.confirm .modal-inner-wrap,
.modal-popup.confirm .modal-inner-wrap,
.modal-custom.confirm .modal-inner-wrap {
  max-width: 50rem; }

.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap,
.modal-custom .modal-inner-wrap {
  background: #fff;
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
  border-radius: 0;
  border: none; }

.modal-slide .modal-content,
.modal-popup .modal-content,
.modal-custom .modal-content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.6rem; }

.modal-slide .modal-header,
.modal-popup .modal-header,
.modal-custom .modal-header {
  padding: 0;
  margin: 0; }

.modal-slide .action-close,
.modal-popup .action-close,
.modal-custom .action-close {
  background: none;
  border: none;
  position: absolute;
  right: 0;
  top: 0;
  margin: 1.5rem;
  background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
  width: 3rem;
  height: 3rem; }
  .modal-slide .action-close span,
  .modal-popup .action-close span,
  .modal-custom .action-close span {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .modal-slide .action-close:before,
  .modal-popup .action-close:before,
  .modal-custom .action-close:before {
    content: none; }

.modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
  padding: 2rem;
  border-top: 1px solid #dcdcdc;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 29.99em) {
    .modal-slide .modal-footer,
    .modal-popup .modal-footer,
    .modal-custom .modal-footer {
      flex-wrap: wrap; } }
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary,
  .modal-popup .modal-footer .action-primary,
  .modal-popup .modal-footer .primary,
  .modal-custom .modal-footer .action-primary,
  .modal-custom .modal-footer .primary {
    min-width: 12rem; }
    .modal-slide .modal-footer .action-primary::-moz-focus-inner,
    .modal-slide .modal-footer .primary::-moz-focus-inner,
    .modal-popup .modal-footer .action-primary::-moz-focus-inner,
    .modal-popup .modal-footer .primary::-moz-focus-inner,
    .modal-custom .modal-footer .action-primary::-moz-focus-inner,
    .modal-custom .modal-footer .primary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-primary, .modal-slide .modal-footer .action-primary:visited,
    .modal-slide .modal-footer .primary,
    .modal-slide .modal-footer .primary:visited,
    .modal-popup .modal-footer .action-primary,
    .modal-popup .modal-footer .action-primary:visited,
    .modal-popup .modal-footer .primary,
    .modal-popup .modal-footer .primary:visited,
    .modal-custom .modal-footer .action-primary,
    .modal-custom .modal-footer .action-primary:visited,
    .modal-custom .modal-footer .primary,
    .modal-custom .modal-footer .primary:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .modal-slide .modal-footer .action-primary:hover:not([disabled]), .modal-slide .modal-footer .action-primary:focus:not([disabled]), .modal-slide .modal-footer .action-primary:active:not([disabled]), .modal-slide .modal-footer .action-primary:visited:hover:not([disabled]), .modal-slide .modal-footer .action-primary:visited:focus:not([disabled]), .modal-slide .modal-footer .action-primary:visited:active:not([disabled]),
      .modal-slide .modal-footer .primary:hover:not([disabled]),
      .modal-slide .modal-footer .primary:focus:not([disabled]),
      .modal-slide .modal-footer .primary:active:not([disabled]),
      .modal-slide .modal-footer .primary:visited:hover:not([disabled]),
      .modal-slide .modal-footer .primary:visited:focus:not([disabled]),
      .modal-slide .modal-footer .primary:visited:active:not([disabled]),
      .modal-popup .modal-footer .action-primary:hover:not([disabled]),
      .modal-popup .modal-footer .action-primary:focus:not([disabled]),
      .modal-popup .modal-footer .action-primary:active:not([disabled]),
      .modal-popup .modal-footer .action-primary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .action-primary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .action-primary:visited:active:not([disabled]),
      .modal-popup .modal-footer .primary:hover:not([disabled]),
      .modal-popup .modal-footer .primary:focus:not([disabled]),
      .modal-popup .modal-footer .primary:active:not([disabled]),
      .modal-popup .modal-footer .primary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .primary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .primary:visited:active:not([disabled]),
      .modal-custom .modal-footer .action-primary:hover:not([disabled]),
      .modal-custom .modal-footer .action-primary:focus:not([disabled]),
      .modal-custom .modal-footer .action-primary:active:not([disabled]),
      .modal-custom .modal-footer .action-primary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .action-primary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .action-primary:visited:active:not([disabled]),
      .modal-custom .modal-footer .primary:hover:not([disabled]),
      .modal-custom .modal-footer .primary:focus:not([disabled]),
      .modal-custom .modal-footer .primary:active:not([disabled]),
      .modal-custom .modal-footer .primary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .primary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .primary:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .modal-slide .modal-footer .action-primary[disabled], .modal-slide .modal-footer .action-primary:visited[disabled],
      .modal-slide .modal-footer .primary[disabled],
      .modal-slide .modal-footer .primary:visited[disabled],
      .modal-popup .modal-footer .action-primary[disabled],
      .modal-popup .modal-footer .action-primary:visited[disabled],
      .modal-popup .modal-footer .primary[disabled],
      .modal-popup .modal-footer .primary:visited[disabled],
      .modal-custom .modal-footer .action-primary[disabled],
      .modal-custom .modal-footer .action-primary:visited[disabled],
      .modal-custom .modal-footer .primary[disabled],
      .modal-custom .modal-footer .primary:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-primary,
      .modal-slide .modal-footer .primary,
      .modal-popup .modal-footer .action-primary,
      .modal-popup .modal-footer .primary,
      .modal-custom .modal-footer .action-primary,
      .modal-custom .modal-footer .primary {
        width: 100%; } }
    .modal-slide .modal-footer .action-primary span,
    .modal-slide .modal-footer .primary span,
    .modal-popup .modal-footer .action-primary span,
    .modal-popup .modal-footer .primary span,
    .modal-custom .modal-footer .action-primary span,
    .modal-custom .modal-footer .primary span {
      font-size: 1.6rem; }
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary,
  .modal-popup .modal-footer .action-secondary,
  .modal-popup .modal-footer .secondary,
  .modal-custom .modal-footer .action-secondary,
  .modal-custom .modal-footer .secondary {
    min-width: 12rem; }
    .modal-slide .modal-footer .action-secondary::-moz-focus-inner,
    .modal-slide .modal-footer .secondary::-moz-focus-inner,
    .modal-popup .modal-footer .action-secondary::-moz-focus-inner,
    .modal-popup .modal-footer .secondary::-moz-focus-inner,
    .modal-custom .modal-footer .action-secondary::-moz-focus-inner,
    .modal-custom .modal-footer .secondary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-secondary, .modal-slide .modal-footer .action-secondary:visited,
    .modal-slide .modal-footer .secondary,
    .modal-slide .modal-footer .secondary:visited,
    .modal-popup .modal-footer .action-secondary,
    .modal-popup .modal-footer .action-secondary:visited,
    .modal-popup .modal-footer .secondary,
    .modal-popup .modal-footer .secondary:visited,
    .modal-custom .modal-footer .action-secondary,
    .modal-custom .modal-footer .action-secondary:visited,
    .modal-custom .modal-footer .secondary,
    .modal-custom .modal-footer .secondary:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .modal-slide .modal-footer .action-secondary:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:active:not([disabled]), .modal-slide .modal-footer .action-secondary:visited:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:visited:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:visited:active:not([disabled]),
      .modal-slide .modal-footer .secondary:hover:not([disabled]),
      .modal-slide .modal-footer .secondary:focus:not([disabled]),
      .modal-slide .modal-footer .secondary:active:not([disabled]),
      .modal-slide .modal-footer .secondary:visited:hover:not([disabled]),
      .modal-slide .modal-footer .secondary:visited:focus:not([disabled]),
      .modal-slide .modal-footer .secondary:visited:active:not([disabled]),
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]),
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]),
      .modal-popup .modal-footer .action-secondary:active:not([disabled]),
      .modal-popup .modal-footer .action-secondary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .action-secondary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .action-secondary:visited:active:not([disabled]),
      .modal-popup .modal-footer .secondary:hover:not([disabled]),
      .modal-popup .modal-footer .secondary:focus:not([disabled]),
      .modal-popup .modal-footer .secondary:active:not([disabled]),
      .modal-popup .modal-footer .secondary:visited:hover:not([disabled]),
      .modal-popup .modal-footer .secondary:visited:focus:not([disabled]),
      .modal-popup .modal-footer .secondary:visited:active:not([disabled]),
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]),
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]),
      .modal-custom .modal-footer .action-secondary:active:not([disabled]),
      .modal-custom .modal-footer .action-secondary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .action-secondary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .action-secondary:visited:active:not([disabled]),
      .modal-custom .modal-footer .secondary:hover:not([disabled]),
      .modal-custom .modal-footer .secondary:focus:not([disabled]),
      .modal-custom .modal-footer .secondary:active:not([disabled]),
      .modal-custom .modal-footer .secondary:visited:hover:not([disabled]),
      .modal-custom .modal-footer .secondary:visited:focus:not([disabled]),
      .modal-custom .modal-footer .secondary:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .modal-slide .modal-footer .action-secondary[disabled], .modal-slide .modal-footer .action-secondary:visited[disabled],
      .modal-slide .modal-footer .secondary[disabled],
      .modal-slide .modal-footer .secondary:visited[disabled],
      .modal-popup .modal-footer .action-secondary[disabled],
      .modal-popup .modal-footer .action-secondary:visited[disabled],
      .modal-popup .modal-footer .secondary[disabled],
      .modal-popup .modal-footer .secondary:visited[disabled],
      .modal-custom .modal-footer .action-secondary[disabled],
      .modal-custom .modal-footer .action-secondary:visited[disabled],
      .modal-custom .modal-footer .secondary[disabled],
      .modal-custom .modal-footer .secondary:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-secondary,
      .modal-slide .modal-footer .secondary,
      .modal-popup .modal-footer .action-secondary,
      .modal-popup .modal-footer .secondary,
      .modal-custom .modal-footer .action-secondary,
      .modal-custom .modal-footer .secondary {
        width: 100%;
        margin-bottom: 1.5rem !important; } }
    .modal-slide .modal-footer .action-secondary span,
    .modal-slide .modal-footer .secondary span,
    .modal-popup .modal-footer .action-secondary span,
    .modal-popup .modal-footer .secondary span,
    .modal-custom .modal-footer .action-secondary span,
    .modal-custom .modal-footer .secondary span {
      font-size: 1.6rem; }
    body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index
    .modal-slide .modal-footer .secondary, body.checkout-index-index
    .modal-popup .modal-footer .action-secondary, body.checkout-index-index
    .modal-popup .modal-footer .secondary, body.checkout-index-index
    .modal-custom .modal-footer .action-secondary, body.checkout-index-index
    .modal-custom .modal-footer .secondary {
      min-width: 12rem; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-slide .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .secondary::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-slide .modal-footer .secondary, body.checkout-index-index
      .modal-slide .modal-footer .secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .secondary, body.checkout-index-index
      .modal-popup .modal-footer .secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .secondary, body.checkout-index-index
      .modal-custom .modal-footer .secondary:visited {
        display: inline-block;
        font-size: 1.6rem;
        font-weight: 700;
        text-align: center;
        position: relative;
        line-height: 2.6rem;
        margin: 0;
        text-transform: none;
        white-space: nowrap;
        padding: 1rem 2.3rem;
        box-sizing: border-box;
        transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
        vertical-align: middle;
        z-index: 5;
        cursor: pointer;
        border-radius: 24px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #333333;
        color: #333333;
        background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited:hover:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited:focus:not([disabled]), body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited:active:not([disabled]) {
          box-shadow: none;
          outline: none;
          text-decoration: none;
          border: 1px solid #c1272f;
          color: #c1272f;
          background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary[disabled], body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited[disabled], body.checkout-index-index
        .modal-slide .modal-footer .secondary[disabled], body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited[disabled], body.checkout-index-index
        .modal-popup .modal-footer .action-secondary[disabled], body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited[disabled], body.checkout-index-index
        .modal-popup .modal-footer .secondary[disabled], body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited[disabled], body.checkout-index-index
        .modal-custom .modal-footer .action-secondary[disabled], body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited[disabled], body.checkout-index-index
        .modal-custom .modal-footer .secondary[disabled], body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited[disabled] {
          cursor: auto;
          border: 1px solid #e5e5e5;
          color: #878787;
          background-color: #f7f7f7; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary span, body.checkout-index-index
      .modal-slide .modal-footer .secondary span, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary span, body.checkout-index-index
      .modal-popup .modal-footer .secondary span, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary span, body.checkout-index-index
      .modal-custom .modal-footer .secondary span {
        font-size: 1.6rem; }
  .modal-slide .modal-footer button:only-child,
  .modal-popup .modal-footer button:only-child,
  .modal-custom .modal-footer button:only-child {
    min-width: 12rem; }
    .modal-slide .modal-footer button:only-child::-moz-focus-inner,
    .modal-popup .modal-footer button:only-child::-moz-focus-inner,
    .modal-custom .modal-footer button:only-child::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer button:only-child, .modal-slide .modal-footer button:only-child:visited,
    .modal-popup .modal-footer button:only-child,
    .modal-popup .modal-footer button:only-child:visited,
    .modal-custom .modal-footer button:only-child,
    .modal-custom .modal-footer button:only-child:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .modal-slide .modal-footer button:only-child:hover:not([disabled]), .modal-slide .modal-footer button:only-child:focus:not([disabled]), .modal-slide .modal-footer button:only-child:active:not([disabled]), .modal-slide .modal-footer button:only-child:visited:hover:not([disabled]), .modal-slide .modal-footer button:only-child:visited:focus:not([disabled]), .modal-slide .modal-footer button:only-child:visited:active:not([disabled]),
      .modal-popup .modal-footer button:only-child:hover:not([disabled]),
      .modal-popup .modal-footer button:only-child:focus:not([disabled]),
      .modal-popup .modal-footer button:only-child:active:not([disabled]),
      .modal-popup .modal-footer button:only-child:visited:hover:not([disabled]),
      .modal-popup .modal-footer button:only-child:visited:focus:not([disabled]),
      .modal-popup .modal-footer button:only-child:visited:active:not([disabled]),
      .modal-custom .modal-footer button:only-child:hover:not([disabled]),
      .modal-custom .modal-footer button:only-child:focus:not([disabled]),
      .modal-custom .modal-footer button:only-child:active:not([disabled]),
      .modal-custom .modal-footer button:only-child:visited:hover:not([disabled]),
      .modal-custom .modal-footer button:only-child:visited:focus:not([disabled]),
      .modal-custom .modal-footer button:only-child:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .modal-slide .modal-footer button:only-child[disabled], .modal-slide .modal-footer button:only-child:visited[disabled],
      .modal-popup .modal-footer button:only-child[disabled],
      .modal-popup .modal-footer button:only-child:visited[disabled],
      .modal-custom .modal-footer button:only-child[disabled],
      .modal-custom .modal-footer button:only-child:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .modal-slide .modal-footer button:only-child span,
    .modal-popup .modal-footer button:only-child span,
    .modal-custom .modal-footer button:only-child span {
      font-size: 1.6rem; }

.modal-slide .modal-title,
.modal-popup .modal-title,
.modal-custom .modal-title {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.4rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding: 2rem;
  border-bottom: 1px solid #dcdcdc;
  margin: 0; }

@media (max-width: 47.99em) {
  .modal-popup.modal-slide .modal-inner-wrap[class] {
    background-color: #fff; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer {
    flex-wrap: wrap; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary {
    width: 100%; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary {
    width: 100%;
    margin-bottom: 1.5rem !important; } }

.page-layout-checkout .modal-popup {
  pointer-events: auto; }

@media (min-width: 48em) {
  .page-layout-checkout .modal-slide {
    width: 80%;
    max-width: 65rem;
    left: 50%;
    transform: translateX(-50%); } }

.modals-overlay {
  background-color: rgba(0, 0, 0, 0.7); }

/* stylelint-enable */

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-navigation-teaser__figure {
  display: block;
  max-height: 100%;
  overflow: hidden; }

.cs-navigation-teaser__image {
  display: block; }

.cs-navigation-teaser__content-wrapper {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 6rem 3rem; }

.cs-navigation-teaser__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  color: #212121;
  text-align: center; }

.cs-navigation-teaser__headline {
  margin: 0 0 1rem;
  font-size: 3rem;
  line-height: 1.15;
  font-weight: 700;
  color: #212121; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__headline {
      font-size: 4.3rem;
      line-height: 1; } }

.cs-navigation-teaser__subheadline {
  margin: 0 0 1rem;
  font-size: 1.65rem;
  line-height: 1.15;
  font-weight: 400;
  color: #212121; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__subheadline {
      font-size: 2.8rem;
      line-height: 1.25; } }

.cs-navigation-teaser__text {
  margin: 0 0 1rem;
  font-size: 1rem;
  line-height: 1.15;
  font-weight: 300;
  color: #212121; }
  @media (min-width: 64em) {
    .cs-navigation-teaser__text {
      font-size: 1.4rem; } }

.cs-navigation-teaser__cta {
  margin-top: 2rem; }

.cs-navigation-teaser__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-navigation-teaser__button, .cs-navigation-teaser__button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-navigation-teaser__button:hover:not([disabled]), .cs-navigation-teaser__button:focus:not([disabled]), .cs-navigation-teaser__button:active:not([disabled]), .cs-navigation-teaser__button:visited:hover:not([disabled]), .cs-navigation-teaser__button:visited:focus:not([disabled]), .cs-navigation-teaser__button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-navigation-teaser__button[disabled], .cs-navigation-teaser__button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-navigation-teaser__button-span {
  font-size: 1.6rem; }

.cs-navigation-teaser__button-icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-navigation {
  box-sizing: border-box;
  font-size: 1rem; }
  .cs-navigation__list {
    list-style: none;
    padding: 0;
    margin: 0; }
    .cs-navigation__list--main {
      position: relative;
      display: flex;
      flex-wrap: nowrap;
      justify-content: space-between; }
    .cs-navigation__list--all-categories {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_1 {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_2 {
      flex-wrap: wrap; }
    .cs-navigation__list--hidden {
      display: none; }
      .cs-navigation__list--hidden + .cs-navigation__extras {
        display: none; }
    .cs-navigation__list .cs-navigation__item--no-children:nth-child(2) {
      padding-top: 1rem; }
    .cs-navigation__list .cs-navigation__item--no-children:last-of-type {
      padding-bottom: 1rem; }
  .cs-navigation__item {
    font-size: 0.9em;
    margin: 0;
    width: 100%; }
    .cs-navigation__item--active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item.active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item:hover:not([data-category-identifier='all-categories']) > .cs-navigation__link {
      color: #324dcf; }
    .cs-navigation__item--main {
      width: auto;
      font-size: 1.4em; }
      .cs-navigation__item--main:first-of-type > .cs-navigation__link:not(.cs-navigation__link--with-icon) {
        padding-left: 0; }
      .cs-navigation__item--main:last-of-type > .cs-navigation__link {
        padding-right: 0; }
    .cs-navigation__item--all-categories {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--level_1 {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--hidden {
      display: none; }
  .cs-navigation__link {
    display: block;
    text-transform: uppercase;
    padding: 0.9em 1.05em;
    width: 100%; }
    .cs-navigation__link, .cs-navigation__link:visited {
      color: #484848; }
    .cs-navigation__link:hover {
      text-decoration: none;
      color: #324dcf; }
      .cs-navigation__link:hover .cs-navigation__link-icon--svg path {
        fill: #324dcf; }
    .cs-navigation__link--main {
      font-weight: 700; }
    .cs-navigation__link--all-categories {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 1.6em; }
    .cs-navigation__link--level_1 {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 1.6em; }
    .cs-navigation__link--level_2 {
      text-transform: none;
      font-size: 1.25em; }
    .cs-navigation__link--with-icon {
      position: relative;
      padding-left: 3rem; }
    .cs-navigation__link-icon-wrapper {
      position: absolute;
      width: 2rem;
      height: 2rem;
      top: 0;
      left: 0;
      margin-top: 0.8em; }
    .cs-navigation__link-icon {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0);
      height: 2rem;
      width: 2rem; }
      .cs-navigation__link--category .cs-navigation__link-icon {
        margin-top: -0.5rem; }
      .cs-navigation__link-icon--svg path {
        fill: #484848; }
    .cs-navigation__link-products-qty:before {
      content: '('; }
    .cs-navigation__link-products-qty:after {
      content: ')'; }
  .cs-navigation .cs-navigation__item--no-children {
    padding: 0; }
  .cs-navigation .cs-navigation__item--no-children > .cs-navigation__link--level_1 {
    text-transform: none;
    font-size: 1.12em;
    font-weight: 400;
    padding: 0.9em 1.5em;
    border: none;
    color: #484848; }
  .cs-navigation__flyout {
    position: absolute;
    display: none;
    background: #fff;
    left: 0;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    z-index: 1001;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
    margin-top: -1px; }
    .cs-navigation__flyout--visible {
      display: flex; }
    .cs-navigation__flyout svg {
      pointer-events: none; }
    @supports (-ms-ime-align: auto) {
      .cs-navigation__flyout li {
        list-style: none;
        list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);
        list-style-type: none; } }
  .cs-navigation__extras {
    margin: 0; }
  .cs-navigation__teaser {
    position: relative;
    max-height: 100%;
    padding: 1em 0;
    overflow: hidden;
    margin-bottom: 0 !important; }
    .cs-navigation__teaser--hidden {
      display: none; }
    .cs-navigation__teaser .cs-image-teaser__figure {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%); }
  .cs-navigation__products {
    padding: 0.5em 1em;
    min-width: 24rem; }
    .cs-navigation__products-header {
      display: block;
      color: #484848;
      text-transform: uppercase;
      width: 100%;
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding: 1.1em 1.05em 1.55em;
      font-size: 0.9em; }
    .cs-navigation__products-list {
      margin: 0;
      padding: 0;
      list-style: none; }
  .cs-navigation__product {
    position: relative; }
    .cs-navigation__product:before {
      display: block;
      content: '';
      width: 100%;
      padding-top: 170%; }
    .cs-navigation__product .cs-product-tile {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
  .cs-navigation__overlay {
    display: none;
    position: absolute;
    z-index: 1000;
    background-color: #000;
    opacity: 0;
    left: 0;
    width: 100%;
    height: 0;
    transform: translate3d(0, 3rem, 0);
    transition: opacity 0.15s linear, transform 0.2s cubic-bezier(0, 0.97, 0.05, 0.99); }
    .cs-navigation__overlay--visible {
      opacity: 0.8;
      transform: translate3d(0, 0, 0); }
  .page-print .cs-navigation {
    display: none; }
  @supports (display: grid) and (grid-auto-flow: row) {
    .cs-navigation__product {
      position: relative; }
      .cs-navigation__product:before {
        content: none; }
      .cs-navigation__product .cs-product-tile {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto; } }

.cs-container--navigation {
  display: none; }
  @media (min-width: 64em) {
    .cs-container--navigation {
      display: block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-newsletter {
  margin: 0;
  width: 100%; }
  @media (max-width: 47.99em) {
    .cs-newsletter {
      padding: 0 1.5rem; } }
  .cs-newsletter__form {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden; }
    @media (min-width: 48em) {
      .cs-newsletter__form {
        max-width: 34rem; } }
    @media (min-width: 64em) {
      .cs-newsletter__form {
        max-width: 100%; } }
  .cs-newsletter__form-wrapper {
    display: flex;
    flex-basis: 100%; }
  .cs-newsletter__field {
    flex-basis: 100%; }
  .cs-newsletter__input {
    margin-top: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important; }
  .cs-newsletter__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-newsletter__actions {
    display: flex;
    align-items: stretch;
    height: 4rem; }
  .cs-newsletter__button {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important; }
    .cs-newsletter__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-newsletter__button, .cs-newsletter__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-newsletter__button:hover:not([disabled]), .cs-newsletter__button:focus:not([disabled]), .cs-newsletter__button:active:not([disabled]), .cs-newsletter__button:visited:hover:not([disabled]), .cs-newsletter__button:visited:focus:not([disabled]), .cs-newsletter__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-newsletter__button[disabled], .cs-newsletter__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
  .cs-newsletter__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 1 1 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    position: relative;
    width: 100%;
    padding: 1rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #324dcf; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #696969; }
    .cs-header-user-nav__link--search:hover {
      cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #324dcf; }
  .cs-header-user-nav__label {
    text-transform: uppercase;
    font-size: 1rem;
    font-weight: 300;
    margin-top: 0.3rem;
    color: #696969;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 0.2rem;
    padding: 0 0.6rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    background-clip: padding-box;
    position: absolute;
    right: -0.5rem;
    top: -0.5rem;
    opacity: 0;
    transition: opacity 0.3s; }
    @media (min-width: 48em) {
      .cs-header-user-nav__qty-counter {
        right: -1rem; } }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #e41f12;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #fed400;
      color: #000; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }

.cs-header-user-nav {
  flex: 0 1 15%;
  margin-left: auto; }
  @media (max-width: 30em) {
    .cs-header-user-nav {
      flex-grow: 1;
      padding-right: 1.5rem !important; } }
  @media (max-width: 23.125em) {
    .cs-header-user-nav {
      padding-right: 0 !important; } }
  .cs-header-user-nav__qty-counter--minicart, .cs-header-user-nav__qty-counter--wishlist, .cs-header-user-nav__qty-counter--compare {
    bottom: 3.5rem;
    top: unset;
    right: 0;
    border-radius: 100%;
    width: 2rem;
    height: 2rem;
    padding: 0;
    align-items: center;
    line-height: normal;
    text-align: center; }
  .cs-header-user-nav__qty-counter--compare {
    background-color: #003666;
    color: #ffffff; }
  .cs-header-user-nav__qty-counter--minicart {
    background-color: #c1272f; }
  .cs-header-user-nav__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    text-align: center;
    bottom: -3px; }
  .cs-header-user-nav__item {
    height: 100%;
    position: relative;
    width: 43px;
    max-width: 43px; }
    .cs-header-user-nav__item--search {
      display: flex !important; }
  .cs-header-user-nav__link {
    position: static;
    height: 100%; }
    @media (max-width: 30em) {
      .cs-header-user-nav__link {
        padding: 0 0.5rem; } }
    @media (max-width: 23.125em) {
      .cs-header-user-nav__link {
        padding-inline: 0; } }
    .cs-header-user-nav__link .cs-header-user-nav__label {
      opacity: 0;
      transition: 0.3s opacity;
      transition-delay: 1s; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
      fill: #c1272f; }
    .cs-header-user-nav__link:hover .cs-header-user-nav__label {
      width: auto;
      height: auto;
      clip: unset;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      opacity: 1; }
  .cs-header-user-nav__icon {
    width: 2.3rem;
    height: 2.3rem; }
    .cs-header-user-nav__icon path {
      fill: #000000; }
    .cs-header-user-nav__icon-wrapper {
      position: static; }
  @media (max-width: 48em) {
    .cs-header-user-nav {
      padding: 0; } }

.cs-offcanvas-toggle {
  position: relative;
  display: flex;
  border: 0;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  align-self: stretch;
  height: 100%;
  width: 100%; }
  .cs-offcanvas-toggle, .cs-offcanvas-toggle:active, .cs-offcanvas-toggle:focus, .cs-offcanvas-toggle:hover {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0; }
  .cs-offcanvas-toggle:after {
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    transform: scale(0);
    background: #324dcf;
    transition: transform 0.3s;
    bottom: 0;
    left: 0;
    transform-origin: left; }
  .cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
    background: #324dcf; }
  .cs-offcanvas-toggle--active:after {
    transform: scale(1); }
  .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
    transform: rotate(-45deg); }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      background: #fff; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      transform: rotate(90deg); }
  .cs-offcanvas-toggle__icon {
    padding: 0;
    margin: 0;
    position: relative; }
    .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      width: 1.8rem;
      height: 0.2rem;
      background: #324dcf;
      transition: background-color 0.3s, transform 0.3s; }
    .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      content: '';
      display: block;
      position: absolute; }
    .cs-offcanvas-toggle__icon:before {
      transform: translateY(-250%);
      transform: translate3d(0, -250%, 0); }
    .cs-offcanvas-toggle__icon:after {
      transform: translateY(250%);
      transform: translate3d(0, 250%, 0); }
  .cs-offcanvas-toggle__text {
    position: absolute;
    bottom: 0.5rem;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 0.8rem;
    color: #212121;
    text-transform: uppercase;
    transition: color 0.3s; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__text {
      color: #fff; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__text {
        bottom: 2rem; } }

.cs-offcanvas-toggle:after {
  content: "";
  background: #c1272f; }

.cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
  background: none; }

.cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
  background: #000000; }

.cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
  background: #000000; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-offcanvas-navigation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #fff; }
  .cs-offcanvas-navigation__list {
    z-index: 1;
    width: 100%;
    min-width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #fff;
    overflow-y: hidden;
    overflow-x: hidden;
    height: 100%;
    -webkit-overflow-scrolling: touch;
    display: none; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current, .cs-offcanvas-navigation__list--active {
      display: block; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--current {
      overflow-y: auto; }
    .cs-offcanvas-navigation__list--current > .cs-offcanvas-navigation__item > .cs-offcanvas-navigation__list {
      display: block; }
    .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list {
      position: absolute;
      left: 105%;
      height: 100%;
      top: 0;
      transition: transform 0.3s; }
      .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list--active {
        transform: translateX(-105%);
        transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas-navigation__item {
    width: 100%;
    display: flex;
    overflow: hidden;
    margin: 0; }
    .cs-offcanvas-navigation__item + .cs-offcanvas-navigation__item {
      border-top: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item:last-of-type {
      border-bottom: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item--with-icon .cs-offcanvas-navigation__text {
      position: relative;
      padding-left: 2rem; }
  .cs-offcanvas-navigation__link {
    min-width: 100%;
    width: 100%;
    display: flex;
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    align-items: center;
    text-transform: uppercase;
    font-weight: 700;
    position: relative; }
    .cs-offcanvas-navigation__link, .cs-offcanvas-navigation__link:visited {
      color: #212121; }
    .cs-offcanvas-navigation__link:hover {
      color: #212121; }
    .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-out {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-in:visited, .cs-offcanvas-navigation__link--sign-out, .cs-offcanvas-navigation__link--sign-out:visited {
        color: #324dcf; }
      .cs-offcanvas-navigation__link--sign-in:hover, .cs-offcanvas-navigation__link--sign-out:hover {
        color: #324dcf; }
        .cs-offcanvas-navigation__link--sign-in:hover .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out:hover .cs-offcanvas-navigation__icon path {
          fill: #324dcf; }
      .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon {
        width: 2.3rem;
        height: 2.7rem;
        right: 2rem; }
        .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon path {
          fill: #324dcf; }
    .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
      width: 0.7rem;
      height: 0.1rem; }
    .cs-offcanvas-navigation__link--parent {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon {
        right: 2rem; }
    .cs-offcanvas-navigation__link--return {
      padding-left: 5rem; }
      .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
        left: 2rem; }
    .cs-offcanvas-navigation__link--next {
      position: relative; }
      .cs-offcanvas-navigation__link--next:before, .cs-offcanvas-navigation__link--next:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #324dcf;
        -webkit-backface-visibility: hidden;
                backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--next:before {
        transform: rotate(135deg) translate3d(50%, 0, 0);
        right: 2rem; }
      .cs-offcanvas-navigation__link--next:after {
        right: 2rem;
        transform: rotate(-135deg) translate3d(50%, 0, 0); }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before {
        transform: rotate(225deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 2rem; }
    .cs-offcanvas-navigation__link--prev {
      position: relative; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #324dcf;
        -webkit-backface-visibility: hidden;
                backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--prev:before {
        transform: rotate(45deg) translate3d(50%, -50%, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:after {
        right: 0;
        transform: rotate(-45deg) translate3d(50%, 50%, 0); }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: auto; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        transform: rotate(-135deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        left: 2rem; }
  .cs-offcanvas-navigation .active > .cs-offcanvas-navigation__link {
    color: #324dcf; }
  .cs-offcanvas-navigation__icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); }
    .cs-offcanvas-navigation__icon path {
      fill: #324dcf; }
  .cs-offcanvas-navigation__category-icon-wrapper {
    position: relative;
    width: 2rem;
    margin-right: 1rem; }
  .cs-offcanvas-navigation__category-icon {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate3d(0, -50%, 0);
    max-height: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-offcanvas {
  position: relative;
  z-index: 300; }
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    top: 5rem; }
    @media (min-width: 48em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        top: 8.3rem;
        bottom: 0; } }
    @media (min-width: 64em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        display: none; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__drawer, .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      display: block;
      top: 0; }
  .cs-offcanvas__overlay {
    width: 100%;
    height: calc(100% - 5rem);
    background-color: transparent;
    transition: background-color 0.3s, transform 1ms 0.3s;
    transform: scale(0);
    cursor: pointer; }
    @media (min-width: 48em) {
      .cs-offcanvas__overlay {
        height: 100%; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      height: 100%; }
  .cs-offcanvas .overlay--visible {
    transform: scale(1);
    background: rgba(0, 0, 0, 0.7);
    transition: background-color 0.3s; }
  .cs-offcanvas__drawer {
    position: fixed;
    background: #fff;
    transition: transform 0.3s;
    width: 90%;
    max-width: 40rem; }
    .cs-offcanvas--side_left .cs-offcanvas__drawer {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
    .cs-offcanvas--side_right .cs-offcanvas__drawer {
      left: auto;
      right: 0;
      transform: translate3d(105%, 0, 0); }
    .cs-offcanvas__drawer--navigation {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas .drawer--visible {
    transform: translate3d(0, 0, 0) !important; }
  .cs-offcanvas__spinner {
    position: absolute;
    width: 6rem;
    height: 6rem;
    left: 50%;
    top: 20%;
    margin-left: -3rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-offcanvas__drawer {
  max-width: 48rem; }

.cs-offcanvas--mini-cart > .drawer {
  bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.page-title {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 4.2rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  text-transform: initial; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-page-bottom {
  padding: 1.5rem 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-page-bottom {
      flex-wrap: wrap;
      justify-content: flex-start; } }
  @media (min-width: 64em) {
    .cs-page-bottom {
      flex-wrap: nowrap;
      justify-content: space-between; } }
  .page-print .cs-page-bottom {
    display: none; }
  .cs-page-bottom__image {
    height: 3rem;
    width: auto; }
    .cs-page-bottom__image--circle {
      width: 4.7rem;
      height: 4.7rem;
      min-width: 4.7rem;
      min-height: 4.7rem;
      margin-right: 1rem; }
  .cs-page-bottom__text {
    font-size: 1.2rem;
    color: #696969;
    margin-bottom: 0;
    margin-right: 0.6rem; }
    .cs-page-bottom__text--small {
      font-size: 1rem; }
  .cs-page-bottom__group {
    display: flex;
    align-items: center;
    flex-grow: 1;
    flex-shrink: 1;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-page-bottom__group {
        width: 100%;
        padding: 1rem 0; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group {
        width: auto;
        padding: 0; } }
    .cs-page-bottom__group--info {
      display: none;
      flex-direction: row-reverse; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--info {
          display: flex;
          flex-basis: 40%;
          justify-content: flex-end;
          padding-right: 1.5rem; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 20rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--info {
          flex-basis: 17%;
          padding-right: 0; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 100%; } }
    .cs-page-bottom__group--shipping {
      display: none; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--shipping {
          display: flex;
          flex-basis: 55%;
          padding-left: 1.5rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--shipping {
          flex-basis: 33%;
          padding-left: 4rem; } }
    .cs-page-bottom__group--payment {
      flex-basis: 50%; }
      @media (max-width: 47.99em) {
        .cs-page-bottom__group--payment .cs-page-bottom__text {
          display: none; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-page-bottom__group--payment {
    flex-basis: 100%; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--payment {
          padding-left: 4rem; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group--shipping, .cs-page-bottom__group--payment {
        position: relative; }
        .cs-page-bottom__group--shipping:before, .cs-page-bottom__group--payment:before {
          margin: 0 1rem;
          content: '';
          position: absolute;
          left: 1rem;
          top: 50%;
          width: 0.2rem;
          height: 2rem;
          background: #dcdcdc;
          transform: translateY(-50%); } }
  .cs-page-bottom__logo {
    display: flex;
    flex-shrink: 1;
    height: 2rem; }
    @media (max-width: 63.99em) {
      .cs-page-bottom__logo {
        width: auto; } }
    .cs-page-bottom__logo--hermes {
      width: 12.2rem; }
    .cs-page-bottom__logo--dhl {
      height: auto;
      max-height: 2rem;
      min-width: 8.6rem;
      padding-left: 10px; }
    .cs-page-bottom__logo--paypal {
      width: 6.2rem; }
    .cs-page-bottom__logo--visa {
      height: auto;
      max-height: 2rem;
      min-width: 5.5rem; }
    .cs-page-bottom__logo--mastercard {
      width: 3.3rem; }
    .cs-page-bottom__logo--klarna-sofort {
      height: auto;
      max-height: 2.5rem;
      min-height: 2.5rem; }
    .cs-page-bottom__logo--klarna {
      width: 7rem; }
    .cs-page-bottom__logo--gls {
      width: 5rem; }
    .cs-page-bottom__logo--giropay {
      width: 4.8rem; }
    .cs-page-bottom__logo--ec {
      width: 1.8rem; }
    .cs-page-bottom__logo--paydirekt {
      width: 6rem; }
    .cs-page-bottom__logo--lastschrift {
      width: 6.15rem; }
    .cs-page-bottom__logo--vorkasse {
      width: 8.3rem; }
    .cs-page-bottom__logo--rechnung {
      width: 6.15rem; }
    .cs-page-bottom__logo:not(:last-child) {
      margin-right: 0.5rem; }

.cs-container--page-bottom {
  max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.price-box {
  display: inline-block; }
  .price-box .price {
    font-weight: 700;
    white-space: nowrap; }
    .price-box .price-label {
      display: none; }
  .price-box .old-price .price {
    font-size: 0.65rem;
    text-decoration: line-through; }
  .price-box .old-price.no-display {
    display: none; }
  .price-box .special-price .price {
    padding-left: 0.4em; }
  .price-box .price {
    color: #324dcf;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0; }
    .price-box .price-label {
      color: #324dcf;
      display: none;
      font-size: 1.1rem;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0 0.3rem 0.3rem 0; }
      .price-box .price-label:after {
        content: ':'; }
      body
p
.price-box .price-label {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  .price-box .price-wrapper {
    display: flex; }
  .price-box .price-from,
  .price-box .price-to {
    display: inline-block;
    margin: 0;
    padding: 0; }
    .price-box .price-from > .price-container,
    .price-box .price-to > .price-container {
      font-size: 1.1rem; }
    .price-box .price-from .price-label,
    .price-box .price-to .price-label {
      display: inline-block;
      padding: 0; }
  .price-box .old-price .price {
    text-decoration: line-through;
    color: #696969;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price .price {
    padding-left: 0;
    color: #e41f12;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price.active .price {
    color: #e41f12; }
  .price-box .price-from {
    margin-right: 1rem; }
  .cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
    display: none; }
  .price-box .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0; }

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #324dcf;
    display: block;
    content: '-';
    right: -1rem;
    top: 0;
    position: absolute; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.price-box {
  display: flex !important;
  flex-direction: row !important;
  position: relative; }
  .price-box .price-container {
    display: flex;
    flex-direction: column; }
  .price-box .price-including-tax .price {
    color: #333333 !important;
    font-weight: 600 !important;
    font-size: 1.4rem !important; }
  .price-box .price-excluding-tax {
    order: -1;
    margin-bottom: 1rem; }
    .price-box .price-excluding-tax .price {
      color: #c1272f !important;
      font-size: 2.2rem !important; }
  .price-box .price {
    color: #324dcf;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0; }
    .price-box .price-label {
      color: #324dcf;
      display: none;
      font-size: 1.1rem;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0 0.3rem 0.3rem 0; }
      .price-box .price-label:after {
        content: ":"; }
      body p .price-box .price-label {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  .price-box .price-wrapper {
    display: flex;
    align-items: center; }
  .price-box .price-from,
  .price-box .price-to {
    display: inline-block;
    margin: 0;
    padding: 0; }
    .price-box .price-from > .price-container,
    .price-box .price-to > .price-container {
      font-size: 1.1rem; }
    .price-box .price-from .price-label,
    .price-box .price-to .price-label {
      display: inline-block;
      padding: 0; }
  .price-box .old-price {
    order: -1;
    text-decoration: none; }
    .price-box .old-price .price-container {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      height: 100%;
      gap: 1rem; }
    .price-box .old-price .price-excluding-tax {
      order: -1;
      margin-block: 4px 0; }
    .price-box .old-price .price {
      text-decoration: line-through;
      color: #333333 !important;
      font-size: 1.4rem !important;
      font-weight: 300 !important; }
  .price-box .special-price .price-container {
    display: flex;
    flex-direction: column; }
  .price-box .special-price .price {
    padding-left: 0;
    color: #c1272f !important;
    font-size: 2.2rem !important;
    font-weight: 700; }
  .price-box .special-price .price-including-tax .price {
    color: #333333 !important;
    font-weight: 600 !important;
    font-size: 1.4rem !important; }
  .price-box .special-price .price-including-tax::before,
  .price-box .special-price .price-excluding-tax::before {
    display: none !important; }
  .price-box .special-price .price-excluding-tax {
    order: -1;
    margin-block: 0 1rem; }
  .price-box .special-price.active .price {
    color: #e41f12; }
  .price-box .price-from {
    margin-right: 1rem; }
  .cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
    display: none; }
  .price-box .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0; }

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #324dcf;
    display: block;
    content: "-";
    right: -1rem;
    top: 0;
    position: absolute; }

.price-including-tax::before,
.price-excluding-tax::before {
  content: attr(data-label) ": " !important;
  display: block !important;
  font-size: 1.4rem !important;
  margin-right: 0.5rem;
  font-weight: 300;
  color: #333333;
  width: 9rem; }
  @media (max-width: 30em) {
    .price-including-tax::before,
    .price-excluding-tax::before {
      margin-right: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * String to number converter
 * https://www.sassmeister.com/gist/9fa19d254864f33d4a80
 * @author Hugo Giraudel
 * @param {String | Number} $value - Value to be parsed
 * @return {Number}
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
@media (max-width: 48em) {
  body.cms-kma-home-page .cs-product-tile__name-link {
    -webkit-line-clamp: 2 !important; } }

@media (min-width: 48.01em) {
  body.cms-kma-home-page .cs-product-tile__name-link {
    -webkit-line-clamp: 2 !important; } }

@media (min-width: 64.01em) {
  body.cms-kma-home-page .cs-product-tile__name-link {
    -webkit-line-clamp: 3 !important; } }

.cs-product-tile {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 8px;
  background-color: #fff; }
  @media (min-width: 64em) {
    .cs-product-tile:hover {
      z-index: 5; } }
  .cs-product-tile--clickable:hover {
    cursor: pointer; }
  .cs-product-tile--hidden .cs-product-tile__main,
  .cs-product-tile--hidden .cs-product-tile__addons {
    visibility: hidden !important; }
  .cs-product-tile--list {
    margin-bottom: 2rem; }
    .cs-product-tile--list:hover {
      box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12); }
  .cs-product-tile--grid.cs-product-tile--static .cs-product-tile__addons {
    display: none; }
  .cs-product-tile__container {
    display: flex;
    height: 100%;
    width: 100%; }
    .cs-product-tile--grid .cs-product-tile__container {
      flex-direction: column;
      padding: 1.5rem; }
      .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--list {
        display: none !important; }
      .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
        position: absolute;
        top: 1rem;
        left: 0;
        right: 0;
        z-index: 1; }
        .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid .badge {
          background-color: #ffffff; }

@media (max-width: 30em) and (min-width: 23.135em) {
  .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
    position: relative;
    top: 0;
    padding-bottom: 2rem; }
    .cs-product-tile--grid .cs-product-tile__container .cs-product-tile__epoint-badges--grid > .badges {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1; } }
      .cs-product-tile--grid .cs-product-tile__container .badges {
        padding: 0;
        justify-content: center;
        align-items: center;
        max-width: 70%;
        margin: auto; }
    .cs-product-tile--list .cs-product-tile__container {
      flex-direction: row;
      gap: 0 2rem;
      padding: 1.5rem 2.1rem 2.5rem 2.1rem;
      display: grid;
      grid-template-columns: 1fr 3fr;
      grid-template-rows: auto auto auto;
      grid-column-gap: 10px;
      grid-template-areas: "image content" "review content" "badge content"; }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__container {
          grid-template-columns: 1fr 2fr;
          grid-row-gap: 1rem; } }
      .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
        display: none !important; }
        @media (max-width: 48em) {
          .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
            display: block !important;
            grid-area: unset; } }
        @media (min-width: 30.01em) {
          .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--grid {
            grid-area: badge;
            padding-top: 1rem; } }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__container .cs-product-tile__epoint-badges--list {
          display: none !important; } }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__container .badges {
          align-items: center;
          flex-direction: column; } }
  .cs-product-tile--list .cs-product-tile__link {
    display: flex;
    width: 100%; }
  .cs-product-tile--grid .cs-product-tile__link {
    display: block;
    height: 100%; }
  .cs-product-tile__thumbnail {
    display: flex;
    grid-area: image; }
    @media (max-width: 30em) {
      .cs-product-tile__thumbnail {
        margin-bottom: -1rem; } }
    .cs-product-tile--list .cs-product-tile__thumbnail {
      flex: 1 1;
      justify-content: center; }
      @media (max-width: 23.125em) {
        .cs-product-tile--list .cs-product-tile__thumbnail {
          flex: initial; } }
  .cs-product-tile__thumbnail-link {
    display: block;
    position: relative;
    overflow: hidden; }
    .cs-product-tile--grid .cs-product-tile__thumbnail-link {
      width: 100%; }
    .cs-product-tile--list .cs-product-tile__thumbnail-link {
      padding: 0 4rem 0 0;
      height: 100%;
      flex-grow: initial; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__thumbnail-link {
          padding: 0; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__thumbnail-link {
        padding: 0; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__thumbnail-link {
            padding: 0; } }
    .cs-product-tile__thumbnail-link:hover, .cs-product-tile__thumbnail-link:visited {
      color: inherit;
      text-decoration: inherit; }
  .cs-product-tile__figure {
    position: initial;
    margin: 0;
    padding: 0;
    height: 100%;
    overflow: hidden; }
    .cs-product-tile__figure:before {
      content: none !important; }
    .cs-product-tile--grid .cs-product-tile__figure {
      width: 100%;
      justify-content: flex-start;
      align-items: center;
      top: 0;
      position: relative; }
      .cs-product-tile--grid .cs-product-tile__figure:before {
        display: block;
        content: '';
        width: 100%;
        padding-top: 125.71429%; }
      .cs-product-tile--grid .cs-product-tile__figure .cs-product-tile__thumbnail-link {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0; }
    .cs-product-tile--list .cs-product-tile__figure {
      width: 100%;
      min-width: 10rem;
      justify-content: center;
      align-items: flex-start;
      height: auto; }
      @media (max-width: 29.99em) {
        .cs-product-tile--list .cs-product-tile__figure {
          width: 100%; } }
      .cs-product-tile--list .cs-product-tile__figure:before {
        content: none; }
  .cs-product-tile__image {
    display: flex;
    justify-content: center;
    width: 100%;
    height: auto;
    max-width: 100%;
    margin: auto; }
  .cs-product-tile__img {
    width: auto;
    height: 230px;
    max-height: 230px;
    margin-bottom: 1rem; }
    @media (max-width: 48em) {
      .cs-product-tile__img {
        height: auto;
        min-height: 140px;
        max-height: 300px;
        height: 196px; } }
    .cs-product-tile--list .cs-product-tile__img {
      height: auto;
      margin-bottom: 0; }
      @media (max-width: 48em) {
        .cs-product-tile--list .cs-product-tile__img {
          height: auto; } }
  .cs-product-tile__badges {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    flex-wrap: wrap; }
    .cs-product-tile--list .cs-product-tile__badges--grid {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__badges--list {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__badges {
      position: absolute;
      z-index: 2;
      top: 0;
      left: 0.3rem;
      flex-direction: column; }
    .cs-product-tile--list .cs-product-tile__badges {
      margin: 0 0 0 0.3rem;
      justify-content: flex-start; }
  .cs-product-tile__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 24px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }

@media (min-width: 23.125em) and (max-width: 29.99em) {
  .cs-product-tile__badge {
    font-size: 0.9rem; } }
    .cs-product-tile__badge--discount {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--discount .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--discount .cs-product-tile__badge-text + .cs-product-tile__badge--discount .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--new {
      background-color: #fed400;
      color: #000; }
      .cs-product-tile__badge--new .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--new .cs-product-tile__badge-text + .cs-product-tile__badge--new .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text + .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--popular {
      background-color: #37b841;
      color: #fff; }
      .cs-product-tile__badge--popular .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--popular .cs-product-tile__badge-text + .cs-product-tile__badge--popular .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--dailydeal {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text + .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
  .cs-product-tile__badge-item {
    display: flex; }
    .cs-product-tile--grid .cs-product-tile__badge-item {
      margin: 0 0 0.5rem;
      width: 100%; }
    .cs-product-tile--list .cs-product-tile__badge-item {
      margin: 0 1rem 0.3rem 0; }
    .cs-product-tile__badge-item:empty {
      display: none; }
  .cs-product-tile__badge-text {
    line-height: normal; }
    .cs-product-tile__badge-text + .cs-product-tile__badge-text {
      margin-left: 0.5rem; }
  .cs-product-tile--list .cs-product-tile__gallery {
    display: none !important; }
  .cs-product-tile__content {
    padding: 0;
    display: flex;
    align-items: stretch;
    grid-area: content; }
    .cs-product-tile--grid .cs-product-tile__content {
      flex-direction: column;
      flex: auto;
      height: 27rem; }
      @media (max-width: 64em) {
        .cs-product-tile--grid .cs-product-tile__content {
          height: 27rem;
          padding-bottom: 6rem; } }
      @media (max-width: 48em) {
        .cs-product-tile--grid .cs-product-tile__content {
          height: 28rem;
          padding-bottom: 4rem; } }
      @media (max-width: 30em) {
        .cs-product-tile--grid .cs-product-tile__content {
          height: auto;
          padding-bottom: 5rem;
          min-height: 32rem;
          flex: 1 1; } }
    .cs-product-tile--list .cs-product-tile__content {
      position: relative;
      flex: 3 1;
      flex-direction: column; }
      @media (max-width: 23.125em) {
        .cs-product-tile--list .cs-product-tile__content {
          flex: initial; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__content {
        flex-direction: column; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__content {
            flex-direction: column; } }
  .cs-product-tile__addons {
    position: absolute;
    left: 0;
    z-index: 1;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
    background: transparent;
    border-radius: 8px;
    min-height: 100%;
    background: linear-gradient(0deg, white 0%, white 10%, rgba(0, 212, 255, 0) 10%);
    pointer-events: none; }
    .cs-product-tile__addons-bottom, .cs-product-tile__addons-sides {
      pointer-events: auto; }
    @media (pointer: coarse) {
      .cs-product-tile__addons {
        opacity: 1 !important; } }
  @media (pointer: coarse) and (min-width: 48.01em) {
    .cs-product-tile__addons {
      padding-bottom: 1.5rem !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__addons {
        height: 100%; } }
    .cs-product-tile--list .cs-product-tile__addons {
      padding: 0;
      margin: 1rem 0 0;
      position: relative;
      z-index: 1;
      opacity: initial;
      box-shadow: none;
      transform: none;
      overflow: visible;
      justify-content: space-between;
      align-items: center;
      flex-direction: row;
      min-height: unset; }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons {
        padding: 0;
        margin: 1rem 0 0;
        flex: 1 0 auto;
        border-left: none;
        flex-direction: row;
        align-items: center; }
        @media (max-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons {
            padding: 0;
            margin: 0;
            flex: 0 1;
            flex-direction: column;
            align-items: flex-start;
            gap: 1rem 0; }
            .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-sides {
              padding: 0; } }
    .cs-product-tile--grid .cs-product-tile__addons {
      align-items: flex-end;
      opacity: 0;
      top: 30px;
      padding: 38.2rem 2.5rem 3rem;
      box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.12);
      justify-content: center;
      transform: translate3d(0, -3rem, 0); }
      @media (max-width: 64em) {
        .cs-product-tile--grid .cs-product-tile__addons {
          padding-top: 47rem;
          opacity: 1 !important;
          overflow: visible !important;
          box-shadow: none !important;
          transform: translate3d(0, 0, 0) !important;
          top: 0; } }
      @media (max-width: 48em) {
        .cs-product-tile--grid .cs-product-tile__addons {
          padding-top: 44rem; } }
      @media (max-width: 23.125em) {
        .cs-product-tile--grid .cs-product-tile__addons {
          padding-top: 43rem; } }
    @media (min-width: 64em) {
      .cs-product-tile:hover .cs-product-tile__addons {
        opacity: 1;
        top: 0;
        transform: translate3d(0, 0, 0);
        transition: opacity 0.1s linear, transform 0.33s cubic-bezier(0, 0.66, 0.32, 0.99); } }
  @media (min-width: 64em) and (pointer: coarse) {
    .cs-product-tile:hover .cs-product-tile__addons {
      opacity: 0;
      transform: none; } }
    .cs-product-tile:hover .cs-product-tile__addons .cs-product-tile.no-transition,
    .cs-product-tile--static .cs-product-tile:hover .cs-product-tile__addons {
      transition: none; }
  .cs-product-tile__addons-top {
    width: 100%; }
    .cs-product-tile--list .cs-product-tile__addons-top {
      flex: 1 1;
      display: none; }
  .cs-product-tile__addons-sides {
    display: flex;
    width: auto;
    position: absolute;
    top: 1rem;
    right: 1rem; }
    .cs-product-tile--list .cs-product-tile__addons-sides {
      position: static; }
    @media (max-width: 64em) {
      .cs-product-tile__addons-sides {
        width: 100%;
        right: 0.2rem;
        top: 1.6rem;
        padding: 0 1rem; } }
    @media (max-width: 30em) {
      .cs-product-tile__addons-sides {
        padding: 0 0.5rem; } }
    @media (max-width: 23.125em) {
      .cs-product-tile__addons-sides {
        padding: 0 1.5rem; } }
  .cs-product-tile__addons-right {
    display: none; }
    .cs-product-tile--grid .cs-product-tile__addons-right {
      align-items: flex-end; }
    .cs-product-tile--list .cs-product-tile__addons-right {
      align-items: flex-start;
      padding-left: 0;
      order: -1; }
  .cs-product-tile__addons-bottom {
    width: auto; }
    .cs-product-tile--list .cs-product-tile__addons-bottom {
      display: none; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__addons-bottom {
          display: block; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-bottom {
        display: block; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__addons-bottom {
            display: block; } }
  .cs-product-tile__addons-left {
    padding-right: 0;
    flex: 1 1 auto;
    display: flex;
    justify-content: flex-end;
    flex-direction: column; }
    .cs-product-tile--grid .cs-product-tile__addons-left {
      align-items: flex-start; }
    .cs-product-tile--list .cs-product-tile__addons-left {
      align-items: flex-start;
      padding-right: 0;
      order: 2; }
    .cs-product-tile__addons-left .cs-star-rating {
      display: none !important; }
  .cs-product-tile__review--grid {
    margin: 1rem 0 0; }
    .cs-product-tile--list .cs-product-tile__review--grid {
      display: none;
      display: block;
      grid-area: review;
      padding-bottom: 0;
      margin-top: 0; }
      .cs-product-tile--list .cs-product-tile__review--grid .cs-star-rating {
        max-width: 10rem;
        flex-wrap: wrap;
        row-gap: 1rem;
        justify-content: center;
        margin: auto; }
    .cs-product-tile--grid .cs-product-tile__review--grid {
      display: none !important; }
  .cs-product-tile__review--list {
    display: none !important;
    margin: 0 0 1rem; }
    @media (max-width: 48em) {
      .cs-product-tile__review--list {
        margin: 0; } }
    @media (min-width: 48em) {
      .cs-product-tile__review--list {
        position: absolute;
        top: 0;
        right: 2rem; }
        .cs-product-tile--list .cs-product-tile__review--list + .cs-product-tile__name {
          padding-right: 12rem; } }
    .cs-products-list--with-sidebar .cs-product-tile__review--list {
      position: relative;
      top: 0rem;
      right: initial;
      padding-top: 0.5rem; }
      .cs-products-list--with-sidebar .cs-product-tile__review--list .cs-star-rating__text {
        min-width: 2rem; }
      @media (min-width: 64em) {
        .cs-products-list--with-sidebar .cs-product-tile__review--list {
          position: absolute;
          top: 0.5rem;
          right: 9rem;
          margin: 0 0 1rem;
          padding-top: 0; }
          .cs-product-tile--list .cs-products-list--with-sidebar .cs-product-tile__review--list + .cs-product-tile__name {
            padding-right: 12rem; } }
      @media (max-width: 30em) {
        .cs-products-list--with-sidebar .cs-product-tile__review--list {
          display: none !important; } }
    .cs-product-tile--grid .cs-product-tile__review--list {
      display: none; }
  .cs-product-tile__review:empty {
    margin: 0 !important; }
  .cs-product-tile__stock {
    display: inline-block;
    white-space: nowrap;
    font-size: 1.3rem; }
    .cs-product-tile__stock--in {
      color: #37b841; }
    .cs-product-tile__stock--out {
      color: #e41f12; }
    .cs-product-tile--grid .cs-product-tile__stock {
      margin: 0; }
    .cs-product-tile--list .cs-product-tile__stock {
      margin: 0 1rem 0 0; }
  .cs-product-tile--list .cs-product-tile__dailydeal--grid {
    display: none !important; }
  .cs-product-tile__dailydeal--list {
    position: relative;
    width: auto;
    margin-bottom: 0; }
    .cs-product-tile--grid .cs-product-tile__dailydeal--list {
      display: none !important; }
    .cs-product-tile__dailydeal--list.cs-dailydeal--tile {
      position: relative;
      width: auto;
      bottom: 0; }
  .cs-product-tile--grid .cs-product-tile__dailydeal {
    margin: 0; }
  .cs-product-tile--list .cs-product-tile__dailydeal {
    margin: 1rem 0 0 0; }
  .cs-product-tile__qty {
    margin-bottom: 1rem;
    width: 11rem;
    margin-left: auto; }
  .cs-product-tile__main {
    position: relative;
    display: flex;
    align-items: stretch; }
    @media (max-width: 30em) {
      .cs-product-tile__main {
        flex-direction: column !important; } }
    .cs-product-tile--grid .cs-product-tile__main {
      flex-direction: column;
      height: 100%;
      justify-content: flex-start; }
    .cs-product-tile--list .cs-product-tile__main {
      flex-direction: row;
      flex: 1 1 100%; }
      @media (min-width: 48em) {
        .cs-product-tile--list .cs-product-tile__main {
          padding: 0; } }
      .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__main {
        padding: 0; }
        @media (min-width: 64em) {
          .cs-products-list--with-sidebar .cs-product-tile--list .cs-product-tile__main {
            padding: 0; } }
  .cs-product-tile__details {
    flex-shrink: 0;
    text-align: center;
    text-decoration: none !important;
    overflow: hidden; }
    .cs-product-tile--list .cs-product-tile__details {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      flex: 1 1;
      padding: 0; }
    .cs-product-tile--grid .cs-product-tile__details {
      display: flex;
      flex-direction: column;
      height: 100%; }
  .cs-product-tile__swatches {
    display: none; }
    .cs-product-tile--grid .cs-product-tile__swatches {
      margin: 1.5rem 0 1rem;
      min-height: 2.6rem; }
      .cs-product-tile--grid .cs-product-tile__swatches,
      .cs-product-tile--grid .cs-product-tile__swatches .swatch-attribute-options {
        justify-content: center; }
    .cs-product-tile--list .cs-product-tile__swatches {
      width: 100%;
      margin: 0 0 0.5rem; }
      .cs-product-tile--list .cs-product-tile__swatches:empty {
        margin: 0; }
      .cs-product-tile--list .cs-product-tile__swatches,
      .cs-product-tile--list .cs-product-tile__swatches .swatch-attribute-options {
        justify-content: flex-start; }
    .cs-product-tile__swatches--list:empty {
      margin: 0 !important; }
  .cs-product-tile__brand {
    margin-top: 1rem;
    text-align: center;
    height: 2.2rem;
    min-height: 1.6rem; }
    @media (max-width: 30em) {
      .cs-product-tile__brand {
        margin-top: 0.5rem;
        height: 2rem; }
        .cs-product-tile--list .cs-product-tile__brand {
          width: calc(100% - 80px);
          text-align: left; } }
  .cs-product-tile__brand-text {
    font-size: 1.2rem;
    color: #333333;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    overflow: hidden;
    word-break: break-word; }
  .cs-product-tile__name {
    line-height: 2.4rem;
    font-weight: 700;
    font-size: 1.6rem;
    margin-top: 1rem;
    overflow: hidden;
    width: 100%;
    padding: 0 1rem;
    min-height: 5rem; }
    .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand + .cs-product-tile__name {
      margin: 0.5rem 0 0.3rem 0; }
      @media (max-width: 47.99em) {
        .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand + .cs-product-tile__name {
          margin: 0.2rem 0 0.3rem 0;
          flex: 1 1; } }
      @media (max-width: 30em) {
        .cs-product-tile--grid .cs-product-tile__details > .cs-product-tile__brand + .cs-product-tile__name {
          margin-top: 0.2rem; } }
    .cs-product-tile--list .cs-product-tile__name {
      text-align: left;
      padding: 0;
      width: 100%; }
  .cs-product-tile__sku {
    padding: 0;
    text-align: center; }
    .cs-product-tile__sku-text {
      font-size: 1.4rem; }
    @media (max-width: 30em) {
      .cs-product-tile__sku {
        padding-bottom: 0; } }
    @media (max-width: 48em) {
      .cs-product-tile--grid .cs-product-tile__sku {
        margin-top: auto; } }
  .cs-product-tile__name-link {
    color: #333333;
    /* disabled because autoprefixer can't build this */
    /* stylelint-disable value-no-vendor-prefix */
    /* stylelint-disable property-no-vendor-prefix */
    /* autoprefixer: ignore next */
    display: -webkit-box;
    /* autoprefixer: ignore next */
    -webkit-box-orient: vertical;
    /* autoprefixer: ignore next */
    -webkit-line-clamp: 3;
    /* autoprefixer: ignore next */
    line-clamp: 3;
    max-width: 100%;
    /* stylelint-enable value-no-vendor-prefix */
    /* stylelint-enable property-no-vendor-prefix */ }
    .cs-product-tile__name-link:visited {
      color: #333333; }
    .cs-product-tile__name-link:hover {
      color: #333333 !important;
      text-decoration: none; }
  .cs-product-tile__description {
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 2.4rem;
    color: #333333;
    margin: 2.4rem 0 2rem;
    overflow: hidden; }
    .cs-product-tile--grid .cs-product-tile__description {
      display: none; }
    .cs-product-tile--grid:hover .cs-product-tile__description {
      /* autoprefixer: ignore next */
      display: -webkit-box !important;
      /* autoprefixer: ignore next */
      -webkit-box-orient: vertical;
      /* autoprefixer: ignore next */
      -webkit-line-clamp: 5;
      /* autoprefixer: ignore next */
      line-clamp: 5;
      max-height: 12rem; }
      @media (max-width: 48em) {
        .cs-product-tile--grid:hover .cs-product-tile__description {
          /* autoprefixer: ignore next */
          -webkit-line-clamp: 7;
          /* autoprefixer: ignore next */
          line-clamp: 7;
          max-height: 20rem; } }
    .cs-product-tile--list .cs-product-tile__description {
      width: 100%;
      margin: 1rem 0 2rem;
      text-align: left;
      /* autoprefixer: ignore next */
      display: -webkit-box;
      /* autoprefixer: ignore next */
      -webkit-box-orient: vertical;
      /* autoprefixer: ignore next */
      -webkit-line-clamp: 2;
      /* autoprefixer: ignore next */
      line-clamp: 2; }
      @media (max-width: 64em) {
        .cs-product-tile--list .cs-product-tile__description {
          display: none; } }
    .cs-product-tile__description:empty {
      margin: 0 !important; }
  .cs-product-tile__additional--list {
    margin: auto 0 0 0;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: flex-end;
    order: -1;
    margin-bottom: -4.8rem;
    margin-top: 0;
    width: auto;
    right: 0;
    position: absolute; }
    @media (min-width: 48em) {
      .cs-product-tile__additional--list {
        display: flex;
        flex-direction: row;
        align-items: flex-end;
        justify-content: flex-end; } }
    .cs-products-list--with-sidebar .cs-product-tile__additional--list {
      flex-direction: row;
      align-items: flex-end;
      justify-content: flex-end; }
      @media (min-width: 64em) {
        .cs-products-list--with-sidebar .cs-product-tile__additional--list {
          flex-direction: row;
          align-items: flex-end;
          justify-content: flex-end; } }
    @media (max-width: 29.99em) {
      .cs-product-tile__additional--list {
        margin-bottom: -1rem; } }
  .cs-product-tile__addto-left {
    align-items: flex-end; }
  .cs-product-tile--list .cs-product-tile__addto--grid {
    display: none; }
  .cs-product-tile--grid .cs-product-tile__addto--grid {
    order: -1; }
    .cs-product-tile--grid .cs-product-tile__addto--grid .cs-links-block-addto {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1rem; }
    @media (max-width: 64em) {
      .cs-product-tile--grid .cs-product-tile__addto--grid {
        width: 100%; }
        .cs-product-tile--grid .cs-product-tile__addto--grid .cs-links-block-addto {
          flex-direction: row; } }
  .cs-product-tile__addto--list {
    padding-bottom: 1.5rem;
    margin-top: 0 !important; }
    .cs-product-tile--grid .cs-product-tile__addto--list {
      display: none; }
  .cs-product-tile--list .cs-product-tile__addto {
    margin: 1rem 0 0; }
    .cs-product-tile--list .cs-product-tile__addto .cs-links-block-addto {
      gap: 0 1.5rem; }
  .cs-product-tile__addto .cs-links-block-addto__link {
    font-size: 1.3rem; }
    .cs-product-tile__addto .cs-links-block-addto__link-label {
      display: none; }
  .cs-dashboard__bottom-wishlist .cs-product-tile__addto,
  .cs-dashboard__wishlist-products-grid .cs-product-tile__addto {
    display: none; }
  .cs-product-tile__addto:empty {
    margin: 0 !important; }
  .cs-product-tile--grid .cs-product-tile__addtocart {
    margin: 1rem 0 0; }
  .cs-product-tile--list .cs-product-tile__addtocart {
    margin: 0; }
  .cs-product-tile__addtocart-button {
    width: 100%; }
    @media (max-width: 30em) {
      .cs-product-tile__addtocart-button {
        padding: 1rem; } }
  .cs-product-tile__wishlist-remove-icon {
    display: none !important;
    position: absolute;
    top: 0;
    right: 0;
    background: transparent;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem; }
    @media (pointer: fine) {
      .cs-product-tile__wishlist-remove-icon {
        display: none; } }
  .cs-product-tile__wishlist-remove-icon-image {
    width: 1.2rem;
    height: 1.2rem;
    fill: #888; }
  .cs-product-tile__wishlist-comment {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    .cs-product-tile--list .cs-product-tile__wishlist-comment {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-product-tile__wishlist-actions {
    margin: 1rem 0 0;
    display: flex;
    justify-content: center;
    margin-top: 1.5rem; }
    @media (max-width: 48em) {
      .cs-product-tile__wishlist-actions {
        margin-top: 0.5rem; } }
    @media (max-width: 30em) {
      .cs-product-tile__wishlist-actions {
        align-items: center;
        background-color: #ffffff;
        margin: 1rem -1rem 0; } }
    @media (max-width: 23.125em) {
      .cs-product-tile__wishlist-actions {
        margin-top: 0.5rem; } }
    .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action:hover {
      color: #c1272f;
      text-decoration: underline; }
      .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action:hover span {
        text-decoration: underline; }
    .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action--remove {
      padding-left: 5px; }
      .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action--remove:hover {
        text-decoration: none !important; }
      .cs-product-tile__wishlist-actions .cs-product-tile__wishlist-action--remove::before {
        content: "|";
        color: black !important; }
  .cs-product-tile__price {
    line-height: 1.2; }
    .cs-product-tile--list .cs-product-tile__price--grid {
      display: none; }
    .cs-product-tile--grid .cs-product-tile__price--grid {
      display: flex;
      justify-content: center; }
      @media (max-width: 48em) {
        .cs-product-tile--grid .cs-product-tile__price--grid {
          padding-bottom: 4rem;
          height: 13rem; }
          .cs-product-tile--grid .cs-product-tile__price--grid .price-final_price .price-including-tax > .price {
            margin-top: 0; } }
      @media (min-width: 48.01em) {
        .cs-product-tile--grid .cs-product-tile__price--grid {
          padding-top: 1.5rem; } }
  @media (min-width: 48.01em) and (pointer: fine) {
    .cs-product-tile--grid .cs-product-tile__price--grid {
      margin-top: auto;
      margin-bottom: -2.5rem;
      padding-top: 1.5rem;
      padding-bottom: 3rem; } }
    .cs-product-tile__price--grid .old-price .price-including-tax > .price,
    .cs-product-tile__price--grid .old-price .price-excluding-tax > .price {
      left: 9.5rem; }
      @media (max-width: 48em) {
        .cs-product-tile__price--grid .old-price .price-including-tax > .price,
        .cs-product-tile__price--grid .old-price .price-excluding-tax > .price {
          left: 50% !important;
          transform: translateX(-50%); } }
    @media (max-width: 48em) {
      .cs-product-tile__price--grid .old-price .price-excluding-tax > .price {
        top: 1.95rem !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--grid .old-price .price-including-tax::before {
        transform: translateY(-1.6rem); }
      .cs-product-tile__price--grid .old-price .price-including-tax > .price {
        bottom: 0 !important; } }
    @media (max-width: 47.99em) {
      .cs-product-tile__price--grid .price-box .price-wrapper {
        flex-direction: column !important;
        align-items: center !important; } }
    .cs-product-tile--grid .cs-product-tile__price--list {
      display: none; }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .special-price .price-including-tax {
        transform: translateY(-1rem) !important; }
        .cs-product-tile__price--list .special-price .price-including-tax > .price {
          margin-top: 3px !important;
          transform: translateY(-3px); } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .special-price .price-excluding-tax {
        transform: translateY(-4.7rem) !important;
        margin-top: 0 !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .old-price .price-including-tax > .price,
      .cs-product-tile__price--list .old-price .price-excluding-tax > .price {
        left: 0 !important;
        transform: none; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .old-price .price-excluding-tax {
        margin-top: 0; }
        .cs-product-tile__price--list .old-price .price-excluding-tax > .price {
          top: 2rem !important; } }
    @media (max-width: 48em) {
      .cs-product-tile__price--list .old-price .price-including-tax > .price {
        bottom: 3rem !important; } }
    .cs-product-tile__price .price-box {
      margin-top: 2rem;
      display: flex;
      line-height: 2rem; }
      .cs-product-tile__price .price-box .price-excluding-tax .price {
        font-size: 1.8rem !important; }
      @media (max-width: 47.99em) {
        .cs-product-tile__price .price-box .price-wrapper {
          flex-direction: column !important;
          align-items: flex-start; } }
      .cs-product-tile__price .price-box .price-wrapper .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #333333; }
      .cs-product-tile__price .price-box .old-price {
        height: 100%; }
        @media (max-width: 48em) {
          .cs-product-tile__price .price-box .old-price > .price-container {
            gap: 5.5rem; } }
        .cs-product-tile__price .price-box .old-price .price {
          font-size: 1.4rem !important;
          font-weight: 400;
          color: #333333;
          text-decoration: line-through; }
        @media (max-width: 47.99em) {
          .cs-product-tile__price .price-box .old-price .price-including-tax {
            gap: 0; } }
        .cs-product-tile__price .price-box .old-price .price-including-tax > .price {
          position: absolute;
          bottom: -2rem;
          left: 9.5rem; }
        @media (max-width: 47.99em) {
          .cs-product-tile__price .price-box .old-price .price-excluding-tax {
            gap: 0; } }
        .cs-product-tile__price .price-box .old-price .price-excluding-tax > .price {
          position: absolute;
          top: -1.5rem;
          left: 9rem; }
      .cs-product-tile__price .price-box .special-price {
        height: 100%; }
        @media (max-width: 48em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box .special-price {
            width: 100%;
            position: absolute; } }
        .cs-product-tile__price .price-box .special-price .price {
          font-weight: 700;
          color: #c1272f; }
        .cs-product-tile__price .price-box .special-price .price-excluding-tax {
          margin-left: -0.5rem; }
          @media (max-width: 47.99em) {
            .cs-product-tile__price .price-box .special-price .price-excluding-tax {
              margin-top: -2rem;
              margin-left: 0;
              transform: translateY(3.1rem); } }
          .cs-product-tile__price .price-box .special-price .price-excluding-tax .price {
            font-size: 1.8rem !important; }
        @media (max-width: 47.99em) {
          .cs-product-tile__price .price-box .special-price .price-including-tax {
            transform: translateY(3.9rem); } }
        .cs-product-tile__price .price-box .special-price .price-final_price {
          height: 100%;
          justify-content: space-evenly; }
      .cs-product-tile__price .price-box .minimal-price {
        margin: 0;
        display: flex; }
      .cs-product-tile--grid .cs-product-tile__price .price-box {
        margin: 0 0 2rem 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center; }
        @media (max-width: 30em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box {
            margin: 0; } }
        .cs-product-tile--grid .cs-product-tile__price .price-box .old-price {
          order: -1;
          text-decoration: none; }
          @media (max-width: 48em) {
            .cs-product-tile--grid .cs-product-tile__price .price-box .old-price .price-wrapper::before {
              visibility: visible; } }
          .cs-product-tile--grid .cs-product-tile__price .price-box .old-price .price-wrapper .price {
            text-decoration: line-through; }
        @media (max-width: 48em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box .special-price .price-wrapper::before {
            display: none; } }
        .cs-product-tile--grid .cs-product-tile__price .price-box .minimal-price {
          align-items: center; }
        .cs-product-tile--grid .cs-product-tile__price .price-box .old-price .price {
          margin-right: 0; }
        @media (max-width: 48em) {
          .cs-product-tile--grid .cs-product-tile__price .price-box {
            align-items: center; } }
      .cs-product-tile--list .cs-product-tile__price .price-box {
        justify-content: flex-end;
        margin: 0;
        text-align: left;
        flex-direction: column; }
        .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-wrapper {
          justify-content: flex-start; }
          .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-wrapper::before {
            display: none; }
        @media (max-width: 48em) {
          .cs-product-tile--list .cs-product-tile__price .price-box .old-price > .price-container {
            padding-top: 0.5rem;
            gap: 5rem; } }
        .cs-product-tile--list .cs-product-tile__price .price-box .old-price {
          order: -1;
          text-align: left;
          text-decoration: none; }
          .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-wrapper .price {
            text-decoration: line-through; }
        @media (max-width: 48em) {
          .cs-product-tile--list .cs-product-tile__price .price-box .special-price .price-wrapper::before {
            display: none; } }
        .cs-product-tile--list .cs-product-tile__price .price-box .price-from {
          margin-right: 0; }
        .cs-product-tile--list .cs-product-tile__price .price-box .minimal-price {
          flex-direction: column; }
    .cs-product-tile__price--dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
      display: none; }
    .cs-product-tile__price--dailydeal-countdown .price-box.price-box--visible {
      display: flex; }
  @media (max-width: 48em) {
    .cs-product-tile--list .cs-product-tile__price .price-box {
      flex-direction: column !important; } }
  @media (max-width: 48em) {
    .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-including-tax .price,
    .cs-product-tile--list .cs-product-tile__price .price-box .old-price .price-excluding-tax .price {
      transform: none; } }
  @media (max-width: 48em) {
    .cs-product-tile--list .cs-product-tile__price .price-box .special-price {
      margin: 0; } }
  @media (min-width: 48.01em) {
    .cs-product-tile--list .cs-product-tile__addons {
      gap: 3rem 0 !important;
      padding-top: 1rem !important; }
      .cs-product-tile--list .cs-product-tile__addons-sides {
        padding-bottom: 1rem; }
      .cs-product-tile--list .cs-product-tile__addons-bottom {
        margin-top: auto; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-products-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-products-list__item {
    margin: 0; }
  .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item {
    border-bottom: 1px solid #f0f0f0;
    padding: 0; }
    .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item:last-child {
      border-bottom: 0; }
  @media (min-width: 48em) {
    .cs-products-list--carousel .cs-products-list__item {
      border-bottom: 1px solid #f0f0f0;
      padding: 0; }
      .cs-products-list--carousel .cs-products-list__item:last-child {
        border-bottom: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-push-notification {
  display: none; }
  .cs-push-notification._active {
    display: block; }
  .cs-push-notification__content {
    position: relative;
    display: block;
    background: #fff;
    padding: 0;
    border: none;
    border-radius: 24px;
    box-shadow: none;
    margin: 1.5rem 0; }
    .cs-push-notification--shipping .cs-push-notification__content {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.1), -2px -2px 3px rgba(0, 0, 0, 0.1);
      padding: 2rem 1.5rem; }
  .cs-push-notification__icons {
    margin: 0; }
    @media (max-width: 29.99em) {
      .cs-push-notification__icons {
        display: none; } }
  .cs-push-notification__icon {
    width: 3.5rem;
    height: 3.5rem; }
    .cs-push-notification__icon--animate {
      -webkit-animation: ringing 6s infinite;
              animation: ringing 6s infinite; }
  .cs-push-notification__message-wrapper {
    margin: 0;
    flex: 1 1; }
    .cs-push-notification--shipping .cs-push-notification__message-wrapper {
      margin: 0 1.5rem; }
    @media (max-width: 63.99em) {
      .cs-push-notification__message-wrapper {
        padding-right: 0; } }
  .cs-push-notification__message {
    display: flex;
    flex-direction: column; }
    .cs-push-notification__message-title {
      font-size: 2rem;
      font-weight: 700; }
    .cs-push-notification__message-description {
      font-size: 1.4rem;
      font-weight: 400;
      color: #888; }
  .cs-push-notification__actions {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap; }
    .cs-push-notification--shipping .cs-push-notification__actions {
      justify-content: flex-start; }
    @media (max-width: 63.99em) {
      .cs-push-notification__actions {
        flex: 1 1 100%;
        margin-top: 0; } }
    @media (min-width: 30em) {
      .cs-push-notification__actions {
        flex-wrap: nowrap; } }
  @media (max-width: 29.99em) {
    .cs-push-notification__button {
      width: 100%; } }
  .cs-push-notification__button:first-of-type {
    margin: 0 0 0.5rem; }
    @media (min-width: 30em) {
      .cs-push-notification__button:first-of-type {
        margin: 0 0 0 0; }
        .cs-push-notification--shipping .cs-push-notification__button:first-of-type {
          margin: 0 1.5rem 0 0; } }
  .cs-push-notification__button--accept::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-push-notification__button--accept, .cs-push-notification__button--accept:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-push-notification__button--accept:hover:not([disabled]), .cs-push-notification__button--accept:focus:not([disabled]), .cs-push-notification__button--accept:active:not([disabled]), .cs-push-notification__button--accept:visited:hover:not([disabled]), .cs-push-notification__button--accept:visited:focus:not([disabled]), .cs-push-notification__button--accept:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-push-notification__button--accept[disabled], .cs-push-notification__button--accept:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-push-notification__button--accept .cs-push-notification__button-span {
    font-size: 1.6rem; }
  .cs-push-notification__button--accept .cs-push-notification__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-push-notification--shipping .cs-push-notification__button--accept::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-push-notification--shipping .cs-push-notification__button--accept, .cs-push-notification--shipping .cs-push-notification__button--accept:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-push-notification--shipping .cs-push-notification__button--accept:hover:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:focus:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:active:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:visited:hover:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:visited:focus:not([disabled]), .cs-push-notification--shipping .cs-push-notification__button--accept:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-push-notification--shipping .cs-push-notification__button--accept[disabled], .cs-push-notification--shipping .cs-push-notification__button--accept:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-push-notification--shipping .cs-push-notification__button--accept .cs-push-notification__button-span {
    font-size: 1.6rem; }
  .cs-push-notification--shipping .cs-push-notification__button--accept .cs-push-notification__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-push-notification__button--decline::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-push-notification__button--decline, .cs-push-notification__button--decline:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-push-notification__button--decline:hover:not([disabled]), .cs-push-notification__button--decline:focus:not([disabled]), .cs-push-notification__button--decline:active:not([disabled]), .cs-push-notification__button--decline:visited:hover:not([disabled]), .cs-push-notification__button--decline:visited:focus:not([disabled]), .cs-push-notification__button--decline:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-push-notification__button--decline[disabled], .cs-push-notification__button--decline:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-push-notification__button--decline .cs-push-notification__button-span {
    font-size: 1.6rem; }
  .cs-push-notification__button--decline .cs-push-notification__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-push-notification__permission {
    display: flex;
    flex-direction: column;
    border: none;
    border-radius: 24px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1), -2px -2px 5px rgba(0, 0, 0, 0.1);
    font-size: 1.2rem;
    color: #888;
    padding: 1rem 2rem; }
    .cs-push-notification__permission-icon {
      width: 1.2rem;
      height: 1.2rem;
      margin-right: 0.5rem; }
    .cs-push-notification__permission-button-wrapper {
      display: flex;
      justify-content: flex-end;
      margin-top: 1rem; }
    .cs-push-notification__permission-button {
      padding: 0.2rem 2rem;
      margin: 0 0.2rem;
      border: 1px solid #000;
      color: #000;
      font-size: 1.1rem; }
      .cs-push-notification__permission-button--block {
        opacity: 0.3; }
  .cs-push-notification__close {
    margin: 0 0 0 0;
    padding: 0; }
    .cs-push-notification--shipping .cs-push-notification__close {
      padding: 1.5rem; }
    @media (max-width: 63.99em) {
      .cs-push-notification__close {
        position: absolute;
        top: 1rem;
        right: 0; }
        .cs-push-notification--shipping .cs-push-notification__close {
          right: 1.5rem; } }
    .cs-push-notification__close-icon {
      display: block;
      width: 1.5rem;
      height: 1.5rem;
      fill: #888; }
    .cs-push-notification__close:hover .cs-push-notification__close-icon {
      fill: #000; }

@-webkit-keyframes ringing {
  0%,
  12% {
    transform: scale(1) rotate(0deg); }
  3%,
  7% {
    transform: scale(1.3) rotate(27deg); }
  5%,
  9% {
    transform: scale(1.3) rotate(-27deg); } }

@keyframes ringing {
  0%,
  12% {
    transform: scale(1) rotate(0deg); }
  3%,
  7% {
    transform: scale(1.3) rotate(27deg); }
  5%,
  9% {
    transform: scale(1.3) rotate(-27deg); } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.ui-slider-horizontal {
  background: #dcdcdc;
  height: 1rem;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  position: relative;
  border-radius: 1rem; }
  .ui-slider-horizontal .ui-slider-handle {
    width: 1rem;
    height: 1rem;
    background: #324dcf;
    transition: transform 0.3s, background 0.3s;
    cursor: pointer;
    position: absolute;
    border-radius: 50%;
    margin-left: -0.5rem; }
    .ui-slider-horizontal .ui-slider-handle.ui-state-hover, .ui-slider-horizontal .ui-slider-handle.ui-state-active, .ui-slider-horizontal .ui-slider-handle.ui-state-focus {
      transform: scale(1.5);
      background: #142b9e; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.ui-slider-horizontal {
  background: #dcdcdc;
  height: 0.4rem;
  margin-left: 0.65rem;
  margin-right: 0.65rem;
  position: relative;
  border-radius: 1.3rem; }
  .ui-slider-horizontal .ui-slider-handle {
    top: -1rem;
    width: 2.6rem;
    height: 2.6rem;
    background: #ffffff;
    border: 1px solid #333333;
    transition: transform 0.3s, background 0.3s;
    cursor: pointer;
    position: absolute;
    border-radius: 50%;
    margin-left: -1.3rem;
    display: flex;
    justify-content: center;
    align-items: center; }
    .ui-slider-horizontal .ui-slider-handle::after {
      content: '';
      position: absolute;
      top: 0.8rem;
      left: 0.7rem;
      display: block;
      border-top: 1px solid #333333;
      border-right: 1px solid #333333;
      width: 0.7rem;
      height: 0.7rem;
      transform: rotate(45deg); }
    .ui-slider-horizontal .ui-slider-handle:first-of-type::after {
      transform: rotate(-135deg);
      left: 1rem; }
    .ui-slider-horizontal .ui-slider-handle.ui-state-hover, .ui-slider-horizontal .ui-slider-handle.ui-state-active, .ui-slider-horizontal .ui-slider-handle.ui-state-focus {
      transform: scale(1);
      background: #ffffff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-social-media-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  padding: 1.5rem 0 1.5rem;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-social-media-list {
      justify-content: flex-start; } }
  @media (min-width: 48em) {
    .cs-social-media-list {
      padding-bottom: 0;
      padding-top: 0; } }
  .cs-social-media-list__item {
    margin: 0 0.4em;
    padding: 0; }
  .cs-social-media-list__link {
    display: flex;
    position: relative;
    height: 3.5em;
    min-width: 4em;
    background: #212121;
    color: inherit;
    border-radius: 24px;
    transition: background-color 0.15s linear; }
    .cs-social-media-list__link:hover {
      background: #142b9e; }
  .cs-social-media-list__icon {
    position: absolute;
    transform: translate3d(-55%, -55%, 0);
    top: 50%;
    left: 55%; }
    .cs-social-media-list__item--fb .cs-social-media-list__icon {
      width: 0.9em;
      height: 1.8em; }
    .cs-social-media-list__item--tw .cs-social-media-list__icon {
      width: 2.5em;
      height: 2em; }
    .cs-social-media-list__item--yt .cs-social-media-list__icon {
      width: 1.8em;
      height: 2.1em; }
    .cs-social-media-list__item--gp .cs-social-media-list__icon {
      width: 2em;
      height: 2em;
      margin-top: 0.1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-star-rating {
  display: flex;
  align-items: center; }
  .cs-star-rating__stars {
    display: inline-flex;
    padding: 0;
    width: 7.2rem;
    justify-content: space-between; }
    .cs-star-rating--summary .cs-star-rating__stars {
      width: 10rem;
      padding: 0; }
    .cs-star-rating--review .cs-star-rating__stars {
      width: 7.2rem;
      padding: 0; }
  .cs-star-rating__star {
    display: flex;
    width: 1.5rem;
    height: 100%;
    fill: #888; }
    .cs-star-rating__star--active {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-left {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-rigth {
      fill: #888; }
    .cs-star-rating--summary .cs-star-rating__star {
      width: 2rem; }
    .cs-star-rating--review .cs-star-rating__star {
      width: 1.5rem; }
    .cs-star-rating__star path {
      fill-opacity: 1;
      fill: inherit; }
  .cs-star-rating img {
    width: 1.5rem;
    height: 100%; }
  .cs-star-rating__form-stars {
    display: inline-flex;
    padding: 0; }
  .cs-star-rating__form-star {
    opacity: 1;
    fill: #888;
    width: 100%; }
    .cs-star-rating__form-star--active {
      fill: #fcb739; }
    .cs-star-rating__form-star path {
      fill-opacity: 1;
      fill: inherit; }
    .cs-star-rating__form-star:nth-last-of-type() {
      padding-right: 0; }
    .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
      fill: #fcb739; }
    .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
      fill: #888; }
  .cs-star-rating__text {
    display: inline-block;
    color: #696969;
    padding-left: 0.5em;
    line-height: 1;
    padding-top: calc(1.5rem * 0.1); }
    .cs-star-rating__text--count:before {
      content: '('; }
    .cs-star-rating__text--count:after {
      content: ')'; }
    .cs-star-rating__text--empty {
      padding-left: 0; }
  .cs-star-rating__text-annotation {
    display: inline;
    line-height: 1; }
    .cs-product-tile .cs-star-rating__text-annotation {
      display: none; }
  .cs-star-rating__label {
    color: #212121;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    padding-top: calc(1.5rem * 0.2); }

.review-control-vote {
  overflow: hidden; }
  .review-control-vote .rating-1 {
    z-index: 1; }
    .review-control-vote .rating-1:before {
      content: none; }
  .review-control-vote .rating-2 {
    z-index: 2; }
    .review-control-vote .rating-2:before {
      content: none; }
  .review-control-vote .rating-3 {
    z-index: 3; }
    .review-control-vote .rating-3:before {
      content: none; }
  .review-control-vote .rating-4 {
    z-index: 4; }
    .review-control-vote .rating-4:before {
      content: none; }
  .review-control-vote .rating-5 {
    z-index: 5; }
    .review-control-vote .rating-5:before {
      content: none; }
  .review-control-vote:before {
    content: none; }
  .review-control-vote label {
    position: static;
    cursor: pointer;
    display: block;
    width: 3rem;
    padding-right: 1rem;
    line-height: 0; }
    @media (min-width: 48em) {
      .review-control-vote label {
        width: 2.6rem;
        padding-right: 0.6rem; } }
    .review-control-vote label:last-child {
      width: 2rem;
      padding-right: 0; }
    .review-control-vote label span {
      clip: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      padding: 0;
      position: static;
      width: auto;
      white-space: normal; }

.cs-star-rating__form-stars {
  margin-top: -3px; }

.cs-star-rating__form-star {
  fill: transparent;
  stroke: #333333; }
  .cs-star-rating__form-star--active {
    fill: #003666; }
  .cs-star-rating__form-star .star-right {
    stroke: none; }
  .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
    fill: #003666; }
  .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
    fill: transparent; }

.cs-star-rating__stars {
  width: 9.2rem !important;
  margin-left: -0.5rem; }

.cs-star-rating__star {
  fill: transparent;
  stroke: #333333;
  margin-left: 5px;
  width: 2.5rem !important; }
  .cs-star-rating__star .star-right {
    stroke: none; }
  .cs-star-rating__star--active {
    fill: #003666; }
  .cs-star-rating__star--half-active .star-left {
    fill: rgba(0, 54, 102, 0.5); }

.cs-star-rating__text {
  min-width: 4rem;
  text-align: center;
  white-space: nowrap; }

.cs-star-rating__label {
  font-weight: 300 !important;
  text-transform: initial !important;
  font-size: 1.4rem !important;
  color: #878787 !important;
  margin-block: 0.25em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
[class^='swatch-opt-'] {
  font-size: 0.45em;
  min-height: calc( 1 * (2.8em + 8px));
  opacity: 1;
  transition: opacity 0.3s;
  pointer-events: none; }
  @media (min-width: 48.01em) {
    [class^='swatch-opt-'] {
      pointer-events: auto; } }
  [class^='swatch-opt-']:empty {
    opacity: 0; }

.swatch-opt {
  font-size: 0.9em; }
  .swatch-opt .mage-error {
    font-size: 1em;
    width: 100%;
    margin-left: calc(10rem + 1.5rem); }
    @media (min-width: 64em) {
      .swatch-opt .mage-error {
        margin-left: calc( 11rem + 1.5rem); } }

.swatch-attribute {
  display: flex;
  width: 100%;
  overflow: hidden;
  align-items: center !important;
  flex-wrap: wrap; }
  .swatch-attribute.swatch-layered {
    font-size: 0.8em; }
  .swatch-attribute + .swatch-attribute {
    margin-top: 0.8em; }

.swatch-attribute-label {
  text-transform: uppercase;
  line-height: calc( 2.8em - 6px + 0.1em);
  font-weight: 700;
  font-size: 1.1em;
  width: 10rem;
  margin-right: 1.5rem; }
  @media (min-width: 64em) {
    .swatch-attribute-label {
      width: 11rem; } }
  .swatch-attribute-label:after {
    content: ': ';
    line-height: calc( 2.8em - 6px + 0.1em); }

.swatch-attribute-selected-option {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.swatch-attribute-options {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.2em;
  margin-bottom: -0.4em;
  min-width: 100%;
  justify-content: center; }
  .swatch-attribute-options:focus {
    box-shadow: none; }
  .swatch-opt .swatch-attribute-options {
    min-width: 0;
    justify-content: flex-start;
    max-width: calc( 100% - 1.5rem - 10rem); }
    @media (min-width: 64em) {
      .swatch-opt .swatch-attribute-options {
        max-width: calc( 100% - 1.5rem - 11rem); } }

.swatch-option-link-layered {
  font-size: 1em; }
  .swatch-option-link-layered:hover {
    text-decoration: none; }

.swatch-option {
  font-weight: normal;
  position: relative;
  min-width: 3.2em;
  height: 2.8em;
  padding: 0 0.35em;
  margin: 1px calc( 1px + 0.2em) calc(1px + 0.4em);
  border-radius: 24px;
  background-color: #f0f0f0;
  border: 3px solid #f0f0f0;
  color: #696969;
  cursor: pointer;
  line-height: calc( 2.8em - 6px + 0.1em);
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, opacity 0.3s, color 0.3s;
  display: block !important; }
  .swatch-option:before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 1px solid #dcdcdc;
    border-radius: 24px;
    transition: border-color 0.3s; }
  .swatch-option:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    background: url(../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/swatches/disabled.svg) rgba(220, 220, 220, 0.5) center no-repeat;
    transform: translate(-50%, -50%);
    width: calc(2.8em - 1.2em);
    height: calc(2.8em - 1.2em);
    background-size: 0.6em;
    transition: opacity 0.3s;
    opacity: 0; }
  .swatch-option.selected, .swatch-option.bis-selected {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option.selected:before, .swatch-option.bis-selected:before {
      border: 1px solid #142b9e; }
  .swatch-option.disabled:not(.back-in-stock-alert), .swatch-option[disabled]:not(.back-in-stock-alert) {
    cursor: not-allowed; }
    .swatch-option.disabled:not(.back-in-stock-alert).text, .swatch-option[disabled]:not(.back-in-stock-alert).text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      .swatch-option.disabled:not(.back-in-stock-alert).text:before, .swatch-option[disabled]:not(.back-in-stock-alert).text:before {
        border: 1px solid #dcdcdc; }
    .swatch-option.disabled:not(.back-in-stock-alert).image:after, .swatch-option.disabled:not(.back-in-stock-alert).color:after, .swatch-option[disabled]:not(.back-in-stock-alert).image:after, .swatch-option[disabled]:not(.back-in-stock-alert).color:after {
      opacity: 1; }
  .swatch-option.back-in-stock-alert:after {
    background: rgba(220, 220, 220, 0.55) url(../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/push-notification/icon_notification-outline.svg) center/64% no-repeat;
    opacity: 1; }
  .swatch-option.back-in-stock-alert.text {
    padding-right: 2em; }
    .swatch-option.back-in-stock-alert.text:after {
      left: auto;
      right: 0.35em;
      background-color: transparent;
      transform: translateY(-50%); }
  .swatch-option:not(.disabled):not(.selected):not([disabled]):hover, .swatch-option.back-in-stock-alert:hover {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option:not(.disabled):not(.selected):not([disabled]):hover:before, .swatch-option.back-in-stock-alert:hover:before {
      border: 1px solid #324dcf; }

.swatch-input {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
  left: -1000px;
  position: absolute;
  visibility: hidden; }

.swatch-more {
  display: none; }

.swatch-option-tooltip,
.swatch-option-tooltip-layered {
  display: none;
  position: absolute;
  margin: 0;
  z-index: 999;
  background: #fff;
  border-radius: 0.5rem;
  color: #888;
  font-size: 1.3rem;
  font-weight: 400;
  padding: 0.5rem;
  text-align: center;
  min-width: 2rem;
  border: 0.1rem solid #dcdcdc; }
  .swatch-option-tooltip .image,
  .swatch-option-tooltip-layered .image {
    display: block;
    margin: 0 auto;
    width: 110px;
    height: 110px; }
  .swatch-option-tooltip .corner:after,
  .swatch-option-tooltip-layered .corner:after {
    content: '';
    position: absolute;
    top: 100%;
    display: block;
    width: 1rem;
    height: 1rem;
    background-color: #fff;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    border-bottom: 0.1rem solid #dcdcdc;
    border-right: 0.1rem solid #dcdcdc;
    margin-top: calc( -0.5rem + 0.1rem); }

.swatch-option-tooltip {
  pointer-events: none; }

.missing-swatches-modal {
  max-width: 40rem;
  margin-left: auto; }
  .missing-swatches-modal .mage-error {
    padding-top: 0.8rem; }
  .missing-swatches-modal .swatch-attribute + .swatch-attribute {
    margin-top: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-topbar {
  background: transparent;
  display: none;
  width: 100%;
  font-size: 1.1rem; }
  @media (min-width: 64em) {
    .cs-topbar {
      display: flex;
      z-index: 302; } }
  .cs-topbar__wrapper {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    height: 2.7rem; }
    @media (min-width: 64em) {
      .cs-topbar__wrapper {
        flex-wrap: nowrap; } }
  .cs-topbar__item {
    color: #212121;
    display: flex;
    flex: 0 0 auto;
    white-space: nowrap;
    height: 100%; }
    .cs-topbar__item--usps {
      margin-right: auto;
      display: none; }
      @media (min-width: 80em) {
        .cs-topbar__item--usps {
          display: flex; } }
    .cs-topbar__item--hotline {
      align-items: center;
      flex: 1 1;
      justify-content: flex-end; }
    .cs-topbar__item--language {
      height: 100%; }
  .cs-topbar__list,
  .cs-topbar__item > ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
  .cs-topbar__list-item {
    margin-bottom: 0;
    height: 2.7rem;
    display: flex;
    align-items: center;
    position: relative; }
    .cs-topbar__list-item:not(:last-child) {
      margin-right: 0.9rem;
      padding: 0 0.3rem 0 0; }
    @media (min-width: 64em) {
      .cs-topbar__list-item {
        padding: 0 1.3rem 0 0;
        margin-right: 1.7rem; } }
    .cs-topbar__list-item:not(:last-child):before {
      position: absolute;
      top: 0;
      bottom: 0;
      right: 0;
      content: '';
      border-right: 0.2rem solid #fff; }
  .cs-topbar__text {
    color: #212121; }
  .cs-topbar__link {
    margin-right: 0.9rem; }
    .cs-topbar__link, .cs-topbar__link:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-topbar__link:hover, .cs-topbar__link:focus, .cs-topbar__link:active, .cs-topbar__link:visited:hover, .cs-topbar__link:visited:focus {
      color: #142b9e;
      text-decoration: none; }
  .cs-topbar__hotline {
    display: flex;
    align-items: center; }
  .cs-topbar__phone-number {
    font-weight: 700;
    margin-right: 0.9rem; }
    .cs-topbar__phone-number, .cs-topbar__phone-number:visited {
      color: #000;
      text-decoration: none; }
    .cs-topbar__phone-number:hover, .cs-topbar__phone-number:focus, .cs-topbar__phone-number:active, .cs-topbar__phone-number:visited:hover, .cs-topbar__phone-number:visited:focus {
      color: #000;
      text-decoration: none; }

.cs-container--top-bar {
  background-color: #f0f0f0;
  max-width: none; }

.cs-container--top-bar {
  background-color: #ffffff; }
  .cs-container--top-bar .cs-topbar {
    max-width: 160rem;
    z-index: 6; }
    @media (max-width: 79.99em) {
      .cs-container--top-bar .cs-topbar {
        display: block; } }
    .cs-container--top-bar .cs-topbar__wrapper {
      height: auto; }
    .cs-container--top-bar .cs-topbar__item {
      display: block;
      width: 100%;
      border-bottom: 1px solid #e5e5e5; }
      @media (max-width: 79.99em) {
        .cs-container--top-bar .cs-topbar__item {
          border-bottom: none; } }
    .cs-container--top-bar .cs-topbar div[data-content-type=text] p {
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0;
      padding: 10px 0;
      max-height: 40px; }
    .cs-container--top-bar .cs-topbar div[data-content-type=text] img {
      max-width: 30px;
      max-height: 30px;
      margin-bottom: 3px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
h1 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 5.6rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h2 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 4.2rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h3 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.4rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h4 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h5 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h6 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

a, a:visited {
  color: #333333;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #333333;
  text-decoration: none; }

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
h1 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 5.6rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h2 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 4.2rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h3 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.4rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h4 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h5 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h6 {
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #333333;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

a, a:visited {
  color: #333333;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #333333;
  text-decoration: none; }

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

body {
  font-size: 1.6rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-select {
  min-width: 0.5px;
  position: absolute;
  bottom: 0;
  left: 50%;
  display: block;
  height: 100%;
  padding: 0;
  opacity: 0;
  border: none; }
  .cs-select--mobile {
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    z-index: 4; }

.cs-html-select {
  position: relative;
  display: block;
  min-width: 15rem;
  box-sizing: border-box;
  z-index: 2; }
  .cs-html-select.open {
    z-index: 99; }
  .cs-html-select__trigger {
    display: flex;
    align-items: center;
    position: relative;
    cursor: pointer;
    width: 100%;
    min-width: 13rem;
    text-align: left;
    z-index: 3;
    overflow: hidden;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #d5d5d5;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    border-radius: 24px;
    box-shadow: none;
    font-size: 1.6rem; }
    .cs-html-select__trigger--disabled {
      opacity: 1;
      cursor: not-allowed; }
    .cs-html-select--error .cs-html-select__trigger {
      border-color: #f46667;
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0; }
    .cs-html-select--open .cs-html-select__trigger,
    .cs-html-select.open .cs-html-select__trigger {
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
      border: 1px solid #324dcf;
      border-bottom: 1px solid #d5d5d5; }
  .cs-html-select__trigger-text {
    color: #333333;
    line-height: 2.6rem;
    font-weight: 400;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 1.6rem;
    margin-right: 2rem; }
  .cs-html-select__trigger-caret {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%); }
  .cs-html-select__trigger-caret-arrow {
    display: block;
    position: relative; }
    .cs-html-select__trigger-caret-arrow:before, .cs-html-select__trigger-caret-arrow:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 1px;
      left: auto;
      background-color: #dcdcdc;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-html-select__trigger-caret-arrow:hover:before, .cs-html-select__trigger-caret-arrow:hover:after {
      background-color: #888; }
    .cs-html-select--open .cs-html-select__trigger-caret-arrow:before, .cs-html-select--open .cs-html-select__trigger-caret-arrow:after {
      background-color: #324dcf; }
    .cs-html-select__trigger-caret-arrow:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 1.7rem; }
    .cs-html-select__trigger-caret-arrow:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 1.2rem; }
    .cs-html-select--open .cs-html-select__trigger-caret-arrow:before {
      transform: rotate(-45deg); }
    .cs-html-select--open .cs-html-select__trigger-caret-arrow:after {
      transform: rotate(45deg); }
  .cs-html-select__menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 5;
    display: none;
    border: 1px solid #324dcf;
    border-top: 1px solid #d5d5d5;
    border-bottom-left-radius: 24px;
    border-bottom-right-radius: 24px;
    background-color: #fff;
    box-shadow: 0 1px 5px 0 rgba(100, 100, 100, 0.2);
    margin-top: -1px;
    min-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
    transform: translate3d(0, 0, 0); }
    .cs-html-select--open .cs-html-select__menu {
      display: block;
      opacity: 1; }
    .cs-html-select--autosuggest:not(.cs-html-select--open) .cs-html-select__menu {
      padding: 0;
      border: none; }
  .cs-html-select__menu-list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-html-select__menu-item {
    margin: 0;
    padding: 0;
    border-top: none; }
    .cs-html-select__menu-item--hidden {
      display: none; }
  .cs-html-select__menu-link {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0 1em;
    height: 2.8em;
    color: #212121;
    background-color: #fff;
    cursor: pointer;
    transition: background-color 0.15s linear, color 0.15s linear; }
    .cs-html-select__menu-item--selected .cs-html-select__menu-link {
      color: #fff;
      background-color: #324dcf; }
    .cs-html-select__menu-link:hover, .cs-html-select__menu-link:focus,
    .cs-html-select__menu-item--focused .cs-html-select__menu-link {
      background-color: #324dcf;
      color: #fff;
      text-decoration: none;
      outline: none; }
  .cs-html-select__menu-item-text {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  .cs-html-select__text-image-wrapper {
    display: flex;
    align-items: center; }
  .cs-html-select__thumbnail {
    width: 2.5rem;
    height: 2.5rem;
    display: block;
    margin-right: 1rem; }
  .cs-html-select--autosuggest {
    padding: 0; }
    .cs-html-select--autosuggest .cs-html-select__menu {
      overflow-y: hidden;
      max-height: 220px; }
    .cs-html-select--autosuggest .cs-html-select__menu-list {
      max-height: 220px; }
    .cs-html-select--autosuggest:not(.cs-html-select--animate) .cs-html-select__menu {
      padding: 0;
      border: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-html-select__menu-item--selected .cs-html-select__menu-link {
  background-color: #878787; }

.cs-html-select__menu-link:hover, .cs-html-select__menu-link:focus,
.cs-html-select__menu-item--focused .cs-html-select__menu-link {
  background-color: #878787; }

.cs-html-select__menu {
  border: 1px solid #d5d5d5; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-toolbar {
  font-size: 1.2rem;
  font-weight: inherit;
  text-transform: uppercase; }
  @media (min-width: 48em) {
    .cs-toolbar {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex-wrap: wrap !important; } }
  .cs-toolbar__item {
    margin: 0 0 1.5rem; }
    @media (min-width: 48em) {
      .cs-toolbar__item {
        margin: 0 0 1.5rem;
        padding: 0; }
        .cs-toolbar__item:first-child {
          padding-left: 0; }
        .cs-toolbar__item:last-child {
          padding-right: 0; } }
    @media (min-width: 64em) {
      .cs-toolbar__item--pagination {
        margin-left: auto; } }
    .cs-toolbar__item--limiter {
      display: flex;
      align-items: center; }
    .cs-toolbar__item--offcanvas {
      margin-right: 3rem;
      z-index: 1; }
  .cs-toolbar .field .label {
    font-weight: inherit;
    width: auto; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-toolbar .cs-html-select {
    max-width: 20rem; } }
  .cs-toolbar .cs-html-select__trigger {
    min-height: 3.5rem; }
  .cs-toolbar__filters-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-toolbar__filters-button, .cs-toolbar__filters-button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-toolbar__filters-button:hover:not([disabled]), .cs-toolbar__filters-button:focus:not([disabled]), .cs-toolbar__filters-button:active:not([disabled]), .cs-toolbar__filters-button:visited:hover:not([disabled]), .cs-toolbar__filters-button:visited:focus:not([disabled]), .cs-toolbar__filters-button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-toolbar__filters-button[disabled], .cs-toolbar__filters-button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-toolbar__filters-button svg {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-left: 0;
    left: 2.3rem;
    max-width: 2.3rem;
    max-height: 2.3rem; }
  .cs-toolbar__filters-button-label {
    font-size: 1.6rem; }

.toolbar-amount {
  margin: 0;
  white-space: nowrap; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-sorter {
  display: flex;
  align-items: center; }
  @media (max-width: 48em) {
    .cs-sorter {
      border-bottom: 1px solid #d5d5d5; } }
  .cs-sorter__label {
    padding: 0 1rem 0 0;
    white-space: nowrap; }
  .cs-sorter__select {
    width: 0px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-limiter {
  display: flex;
  position: relative;
  margin: 0 1rem 0 0;
  align-items: center;
  flex-wrap: nowrap; }
  .cs-limiter__label,
  .field .cs-limiter__label {
    white-space: nowrap; }
    .cs-limiter__label--prefix,
    .field .cs-limiter__label--prefix {
      padding: 0 1rem 0 1rem; }
    .cs-limiter__label--suffix,
    .field .cs-limiter__label--suffix {
      padding: 0 0 0 1rem; }
  .cs-limiter__pagination {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }
  .cs-limiter__pagination-item {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-limiter__pagination-item:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-limiter__pagination-item:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-limiter__pagination-number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear; }
    .cs-limiter__pagination-number, .cs-limiter__pagination-number:visited {
      color: #333333;
      text-decoration: none; }
    .cs-limiter__pagination-number:hover, .cs-limiter__pagination-number:focus, .cs-limiter__pagination-number:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-limiter__pagination-item--current .cs-limiter__pagination-number {
      color: #000000 !important; }
      .cs-limiter__pagination-item--current .cs-limiter__pagination-number, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:hover, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:focus, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:active {
        color: #324dcf;
        background: #f0f0f0;
        cursor: default; }
  .cs-limiter .cs-html-select,
  .cs-limiter .cs-html-select__trigger,
  .cs-limiter select {
    min-width: 3rem;
    min-height: 3.5rem; }

.cs-dashboard .limiter-label,
.cs-dashboard .limiter-text {
  font-weight: 400;
  font-size: 1.4rem;
  margin-right: 0.5rem; }

.cs-dashboard .limiter-text {
  white-space: nowrap; }

.cs-dashboard .limiter-options {
  margin-right: 0.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-pagination {
  /**
     * Input mode
     */
  /**
     * Bullet points mode
     */ }
  .cs-pagination__content {
    display: flex;
    align-items: center; }
  .cs-pagination__prefix-label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-pagination__page-provider {
    display: flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    align-items: center;
    width: auto;
    gap: 0 0.5rem; }
  .cs-pagination__page-provider-input.input-text {
    margin: 0;
    max-height: 3.5rem;
    width: 4.5em;
    text-align: center;
    font-size: 0.85em; }
  .cs-pagination__page-provider-label {
    padding-left: 1rem;
    width: auto !important; }
  .cs-pagination__items {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }
  .cs-pagination__item {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-pagination__item:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-pagination__item:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-pagination__number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear; }
    .cs-pagination__number, .cs-pagination__number:visited {
      color: #333333;
      text-decoration: none; }
    .cs-pagination__number:hover, .cs-pagination__number:focus, .cs-pagination__number:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-pagination__item--current .cs-pagination__number, .cs-pagination__item--current .cs-pagination__number:hover, .cs-pagination__item--current .cs-pagination__number:focus, .cs-pagination__item--current .cs-pagination__number:active {
      color: #324dcf;
      background: #f0f0f0;
      cursor: default; }
  .cs-pagination__prev {
    margin-right: 1.5rem; }
  .cs-pagination__next {
    margin-left: 1.5rem; }
  .cs-pagination__action {
    display: flex;
    min-width: 3.5rem;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center; }
  .cs-pagination__action-icon {
    width: 2.5rem;
    height: 2rem;
    fill: #333333;
    transition: fill 0.15s linear; }
    .cs-pagination__action--disabled .cs-pagination__action-icon * {
      fill: #878787; }
    .cs-pagination__action:not(.cs-pagination__action--disabled):hover .cs-pagination__action-icon *,
    .cs-pagination__action:not(.cs-pagination__action--disabled):focus .cs-pagination__action-icon *,
    .cs-pagination__action:not(.cs-pagination__action--disabled):active .cs-pagination__action-icon * {
      fill: #c1272f; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-viewmode-switcher {
  display: flex;
  align-items: center; }
  .cs-viewmode-switcher__label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-viewmode-switcher__modes {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-viewmode-switcher__modes {
    padding-left: 1rem; } }
  .cs-viewmode-switcher__mode {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden; }
    .cs-viewmode-switcher__mode:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-viewmode-switcher__mode:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-viewmode-switcher__mode-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear;
    height: 100%;
    padding-left: 0.7em;
    padding-right: 0.7em; }
    .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode-action:visited {
      color: #333333;
      text-decoration: none; }
    .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode-action:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:active {
      color: #324dcf;
      background: #f0f0f0;
      cursor: default; }
  .cs-viewmode-switcher__mode-icon {
    fill: currentColor; }
    .cs-viewmode-switcher__mode-icon--grid {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode-icon--list {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-icon {
      fill: #324dcf; }
    .cs-viewmode-switcher__mode-icon + .cs-viewmode-switcher__mode-label {
      padding-left: 0.7rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-viewmode-switcher {
  display: flex;
  align-items: center; }
  @media (max-width: 48em) {
    .cs-viewmode-switcher {
      justify-content: flex-end; } }
  .cs-viewmode-switcher__label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-viewmode-switcher__modes {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch;
    gap: 0 1rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-viewmode-switcher__modes {
    padding-left: 1rem; } }
  .cs-viewmode-switcher__mode {
    margin: 0;
    padding: 0;
    border: 1px solid #dcdcdc;
    text-align: center;
    margin-left: -1px;
    overflow: hidden;
    border: none;
    background-color: transparent !important; }
    .cs-viewmode-switcher__mode:first-child {
      border-top-left-radius: 24px;
      border-bottom-left-radius: 24px; }
    .cs-viewmode-switcher__mode:last-child {
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
  .cs-viewmode-switcher__mode-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear;
    background-color: transparent !important;
    height: 100%;
    padding-left: 0.7em;
    padding-right: 0.7em; }
    .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode-action:visited {
      color: #333333;
      text-decoration: none; }
    .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode-action:active {
      border: 0;
      color: #212121;
      background: inherit;
      text-decoration: inherit; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:active {
      color: #324dcf;
      background: #f0f0f0;
      cursor: default; }
  .cs-viewmode-switcher__mode-icon path {
    fill: #333333; }
  .cs-viewmode-switcher__mode-icon--grid {
    width: 2.4rem;
    height: 2.4rem; }
  .cs-viewmode-switcher__mode-icon--list {
    width: 2.4rem;
    height: 2.4rem; }
  .cs-viewmode-switcher__mode-icon:hover path,
  .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-icon path {
    fill: #c1272f; }
  .cs-viewmode-switcher__mode-icon + .cs-viewmode-switcher__mode-label {
    padding-left: 0.7rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-toolbar {
  font-size: 1.6rem;
  font-weight: 400;
  text-transform: none; }
  @media (min-width: 48em) {
    .cs-toolbar {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex-wrap: wrap !important; } }
  .cs-toolbar__item {
    margin: 0 0 1.5rem; }
    @media (min-width: 48em) {
      .cs-toolbar__item {
        margin: 0 0 1.5rem;
        padding: 0; }
        .cs-toolbar__item:first-child {
          padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-toolbar__item--pagination {
        margin-left: 0; } }
    .cs-toolbar__item--limiter {
      display: flex;
      align-items: center; }
    .cs-toolbar__item--offcanvas {
      margin-right: 3rem;
      z-index: 1; }
  .cs-toolbar .field .label {
    font-weight: 400;
    width: auto;
    text-transform: none; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-toolbar .cs-html-select {
    max-width: 20rem; } }
  @media (max-width: 48em) {
    .cs-toolbar .cs-html-select {
      max-width: 100%;
      width: 100%; } }
  .cs-toolbar .cs-html-select__trigger {
    min-height: 3.5rem;
    background-color: transparent;
    border: none !important;
    padding: 1rem 0.8rem 1rem 0;
    padding-right: 0.8rem !important; }
    .cs-toolbar .cs-html-select__trigger-caret-arrow {
      right: -1.2rem; }
      .cs-toolbar .cs-html-select__trigger-caret-arrow::before, .cs-toolbar .cs-html-select__trigger-caret-arrow::after {
        background-color: black;
        width: 0.9rem;
        height: 2px; }
  .cs-toolbar__filters-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-toolbar__filters-button, .cs-toolbar__filters-button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-toolbar__filters-button:hover:not([disabled]), .cs-toolbar__filters-button:focus:not([disabled]), .cs-toolbar__filters-button:active:not([disabled]), .cs-toolbar__filters-button:visited:hover:not([disabled]), .cs-toolbar__filters-button:visited:focus:not([disabled]), .cs-toolbar__filters-button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-toolbar__filters-button[disabled], .cs-toolbar__filters-button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-toolbar__filters-button svg {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-left: 0;
    left: 2.3rem;
    max-width: 2.3rem;
    max-height: 2.3rem; }
  .cs-toolbar__filters-button-label {
    font-size: 1.6rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-ie11-modal.modal-slide {
  left: 0;
  width: 100%; }
  .cs-ie11-modal.modal-slide .modal-inner-wrap {
    top: 50%;
    transform: translate3d(0, -50%, 0) !important;
    width: 100%;
    max-width: 78rem;
    background-color: #fff;
    margin: auto; }
    .cs-ie11-modal.modal-slide .modal-inner-wrap .modal-content {
      padding: 0; }
  .cs-ie11-modal.modal-slide .action-close {
    background-size: 1.8rem 1.8rem;
    margin: 2.5rem; }
  .cs-ie11-modal.modal-slide .modal-footer {
    padding: 2rem 0;
    margin: 0 3rem;
    border-top: 0;
    display: flex;
    justify-content: center; }

.cs-ie11-modal._show .cs-ie11-modal__inner {
  display: flex; }

.cs-ie11-modal__inner {
  display: none;
  padding: 0 3rem;
  font-size: 1.4rem;
  color: #212121;
  height: 100%; }

.cs-ie11-modal__header, .cs-ie11-modal__body {
  padding: 2rem 0; }

.cs-ie11-modal__header {
  display: flex;
  flex-direction: column;
  align-items: center; }

.cs-ie11-modal__header-icon {
  width: 7rem;
  height: 7rem;
  margin-bottom: 2rem; }

.cs-ie11-modal__header-title {
  font-size: 3.5rem;
  font-weight: 700;
  text-align: center;
  line-height: 100%;
  max-width: 100%; }

.cs-ie11-modal__body {
  border-top: 1px solid #dcdcdc;
  border-bottom: 1px solid #dcdcdc; }

.cs-ie11-modal__paragraph {
  text-align: center;
  margin-bottom: 2rem; }
  .cs-ie11-modal__paragraph--title {
    font-size: 2rem;
    font-weight: 700; }

.cs-ie11-modal__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-around; }

.cs-ie11-modal__list-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 130%;
  margin: 0; }

.cs-ie11-modal__item-logo {
  width: 3.8rem;
  height: 3.8rem;
  margin-bottom: 1rem;
  border: 0; }
  .ie11 .cs-ie11-modal__item-logo {
    width: 4rem;
    height: 4rem; }

.cs-ie11-modal__item-name {
  font-weight: 700; }

.ie11 .modal-popup:not(.cs-vide-player__modal) .modal-content {
  max-height: 100%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-pwa-notification._show {
  position: fixed;
  bottom: 0;
  top: auto;
  height: 15rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow-y: visible; }
  .cs-pwa-notification._show .modal-inner-wrap {
    width: 100%;
    margin: 0;
    background: #fff;
    box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15); }

.cs-pwa-notification--ios-guide .modal-inner-wrap {
  display: flex;
  flex-direction: row;
  align-items: center;
  position: relative;
  padding: 0;
  line-height: 1.35; }
  .cs-pwa-notification--ios-guide .modal-inner-wrap:after {
    top: 100%;
    left: 50%;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
    border-color: rgba(242, 242, 247, 0);
    border-top-color: #f2f2f7;
    border-width: 1.6rem;
    margin-left: -1.6rem; }

.cs-pwa-notification--ios-guide .modal-text-content {
  padding: 0.4rem 1.4rem 1.1rem; }

.cs-pwa-notification--ios-guide._show {
  height: auto;
  left: 1.5rem;
  width: calc(100% - 3rem);
  padding-bottom: 2rem; }
  .cs-pwa-notification--ios-guide._show .modal-inner-wrap {
    background: #f2f2f7;
    border-radius: 6px;
    filter: drop-shadow(0 0 0.5rem rgba(0, 0, 0, 0.1));
    box-shadow: none; }

.cs-pwa-notification--ios-guide.device-iPad {
  bottom: auto;
  top: 0;
  padding-bottom: 0;
  padding-top: 2rem;
  left: auto;
  right: 1.5rem;
  width: auto;
  max-width: 38rem; }
  .cs-pwa-notification--ios-guide.device-iPad .modal-inner-wrap:after {
    top: auto;
    bottom: 100%;
    border-top-color: transparent;
    border-bottom-color: #f2f2f7;
    left: auto;
    right: 12.8vw; }
    @media (min-width: 64em) {
      .cs-pwa-notification--ios-guide.device-iPad .modal-inner-wrap:after {
        right: 11vw; } }

.cs-pwa-notification__title {
  margin: 0;
  padding: 2rem;
  font-size: 2.4rem; }

.cs-pwa-notification__content {
  padding: 0.5rem 2rem 1rem; }

.cs-pwa-notification__ios-transfer-icon {
  width: 1.8rem;
  height: 2.4rem;
  margin: 0 0.3rem;
  vertical-align: bottom; }

.cs-pwa-notification__footer {
  padding: 0.5rem 2rem 2rem;
  display: flex;
  justify-content: flex-end; }
  .cs-pwa-notification--ios-guide .cs-pwa-notification__footer {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    border-left: 1px solid #d9d9e7; }

.cs-pwa-notification__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-pwa-notification__button, .cs-pwa-notification__button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-pwa-notification__button:hover:not([disabled]), .cs-pwa-notification__button:focus:not([disabled]), .cs-pwa-notification__button:active:not([disabled]), .cs-pwa-notification__button:visited:hover:not([disabled]), .cs-pwa-notification__button:visited:focus:not([disabled]), .cs-pwa-notification__button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-pwa-notification__button[disabled], .cs-pwa-notification__button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-pwa-notification__button span {
  font-size: 1.6rem; }

.cs-pwa-notification__button-icon {
  width: 1.5rem;
  height: 1.5rem;
  fill: currentColor; }

.cs-pwa-notification__close-button {
  border: 0;
  background: transparent;
  margin: 0;
  padding: 1.8rem; }

.cs-pwa-notification + .modals-overlay {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-google-recaptcha {
  margin: 1rem 0; }
  .cs-google-recaptcha__badge--invisible .grecaptcha-badge {
    visibility: hidden;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden; }
  .cs-google-recaptcha__note {
    display: inline-block;
    margin: 0;
    font-size: 1.2rem;
    color: #696969; }
    .cs-google-recaptcha__note a, .cs-google-recaptcha__note a:visited {
      color: #324dcf;
      text-decoration: none; }
    .cs-google-recaptcha__note a:hover, .cs-google-recaptcha__note a:focus, .cs-google-recaptcha__note a:active, .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha__note a:visited:focus {
      color: #142b9e;
      text-decoration: none; }
  .cs-google-recaptcha--newsletter {
    display: none;
    margin: 1rem 0; }
    .cs-google-recaptcha--newsletter .cs-google-recaptcha__note {
      margin: 0;
      font-size: 1.2rem;
      color: #fff; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited {
        color: #fff;
        text-decoration: none; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:focus, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:active, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:focus {
        color: #fff;
        text-decoration: underline; }
  .cs-google-recaptcha--customer_create {
    margin-top: -2rem; }
  .cs-google-recaptcha--customer_login .g-recaptcha {
    margin-bottom: 0 !important; }

.loading-mask[data-role='main-css-loader'] {
  display: none !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-dashboard {
  width: 100%; }
  @media (min-width: 48em) {
    .cs-dashboard__columns {
      display: flex;
      flex-wrap: wrap;
      align-items: stretch; }
      .cs-dashboard__columns:before, .cs-dashboard__columns:after {
        display: none; } }
  .cs-dashboard__messages {
    width: 100%; }
  .cs-dashboard__sidebar {
    order: 1; }
    @media (min-width: 48em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 3);
        border-right: none;
        padding: 0 1.5rem 0 0; } }
    @media (min-width: 64em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 4);
        border-right: none;
        padding: 0 1.5rem 0 0; } }
    @media (min-width: 80em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 4);
        border-right: none; } }
    @media (min-width: 90em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 4);
        border-right: none; } }
    @media (min-width: 120em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 4);
        border-right: none; } }
  .cs-dashboard__main {
    order: 2; }
    @media (min-width: 48em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 3));
        padding: 1.5rem 0 0 1.5rem; } }
    @media (min-width: 64em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 4));
        padding: 1.5rem 0 0 1.5rem; } }
    @media (min-width: 80em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 4)); } }
    @media (min-width: 90em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 4)); } }
    @media (min-width: 120em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 4)); } }
  .cs-dashboard .cs-page-category__main--search-no-result {
    width: 100%; }
  .cs-dashboard__columns {
    position: relative;
    margin: 3rem 0; }
    @media (min-width: 48em) {
      .cs-dashboard__columns {
        padding: 0 0 2rem; } }
  @media (min-width: 64em) {
    .cs-dashboard__sidebar {
      padding: 0; } }
  .cs-dashboard__main {
    margin-bottom: 2rem;
    margin-top: 2rem;
    box-sizing: border-box; }
    @media (min-width: 48em) {
      .cs-dashboard__main {
        padding: 0 0 0 3.5rem;
        margin-top: 0; } }
    @media (min-width: 48em) {
      .wishlist-index-index.page-layout-1column .cs-dashboard__main {
        width: 100% !important; } }
  .cs-dashboard__top {
    padding: 0 0 3rem; }
  .cs-dashboard__page-title {
    padding-bottom: 3rem; }
  .cs-dashboard .page-title {
    margin: 0;
    padding: 0 0 1rem 0; }
  .cs-dashboard .columns .column.main {
    padding: 0; }
  .cs-dashboard .message-error,
  .cs-dashboard .message-success,
  .cs-dashboard .message-notice {
    margin-bottom: 1rem; }
  .cs-dashboard .page-title-wrapper {
    background: transparent; }
  .cs-dashboard__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-top: 2rem;
    border-top: 2px solid #dcdcdc; }
    @media (min-width: 48em) {
      .cs-dashboard__bottom {
        width: 100%;
        padding-top: 3rem; } }
  .cs-dashboard__wishlist-line {
    margin: 0; }
  .cs-dashboard__wishlist-products-grid {
    margin: 0 0 3rem; }
    @media (min-width: 48em) {
      .cs-dashboard__wishlist-products-grid {
        margin: 0 0 4rem; } }
    .cs-dashboard__wishlist-products-grid--skip-spacing {
      margin: 0; }
  .cs-dashboard__wishlist-guest-code {
    overflow-wrap: break-word; }
  .cs-dashboard__bottom-wishlist {
    margin: 0 0 3rem;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    width: 100%; }
    @media (min-width: 48em) {
      .cs-dashboard__bottom-wishlist {
        margin: 0 0 4rem; } }
    .cs-dashboard__bottom-wishlist--skip-spacing {
      margin: 0; }
    .cs-dashboard__bottom-wishlist-item {
      width: 100%; }
      @media (min-width: 30em) {
        .cs-dashboard__bottom-wishlist-item {
          width: 50%; } }
      @media (min-width: 48em) {
        .cs-dashboard__bottom-wishlist-item {
          width: 33.33%; } }
      .cs-dashboard__bottom-wishlist-item:nth-child(n + 4) {
        display: none; }
  .cs-dashboard__login {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-dashboard__login {
        flex-wrap: nowrap;
        padding: 0; } }
    .cs-dashboard__login-section {
      width: 100%;
      background: transparent;
      box-sizing: border-box;
      margin-bottom: 2rem; }
      @media (min-width: 48em) {
        .cs-dashboard__login-section {
          width: 50%; }
          .cs-dashboard__login-section:nth-child(2n + 1) {
            border-right: 1px solid #dcdcdc;
            padding-right: 2rem; }
          .cs-dashboard__login-section:nth-child(2n + 2) {
            padding-left: 2rem; } }
  .cs-dashboard__contact-form {
    box-sizing: border-box;
    width: 100%;
    margin-bottom: 2rem;
    background: transparent; }
  .cs-dashboard .fieldset,
  .cs-dashboard .form {
    width: 100%;
    min-width: 15rem !important; }
  .cs-dashboard .fieldset {
    width: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    max-width: 45rem !important; }
  .cs-dashboard .field {
    margin-bottom: 1rem; }
  .cs-dashboard .limiter {
    margin-bottom: 0; }
  .cs-dashboard select {
    display: block;
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    padding-right: 2.3em;
    color: #333333;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23d5d5d5'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-dashboard select.mage-error, .cs-dashboard select.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-dashboard select.required-entry {
      margin-bottom: 1rem; }
    .cs-dashboard select:-moz-focusring, .cs-dashboard select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-dashboard select:hover:not([disabled]), .cs-dashboard select:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23333333'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-dashboard select[disabled] {
      opacity: 1; }
    .cs-dashboard select option {
      padding: 0;
      color: initial; }
  .cs-dashboard .choice {
    display: flex;
    align-items: flex-start;
    flex-wrap: nowrap; }
    .cs-dashboard .choice .label {
      width: auto;
      font-weight: 300;
      font-size: 1.4rem; }
    .cs-dashboard .choice .checkbox {
      margin-top: 0.2rem; }
  .cs-dashboard .field-name-prefix {
    max-width: 12rem; }
  .cs-dashboard .primary > button,
  .cs-dashboard .primary .create {
    min-width: 12rem; }
    .cs-dashboard .primary > button::-moz-focus-inner,
    .cs-dashboard .primary .create::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-dashboard .primary > button, .cs-dashboard .primary > button:visited,
    .cs-dashboard .primary .create,
    .cs-dashboard .primary .create:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-dashboard .primary > button:hover:not([disabled]), .cs-dashboard .primary > button:focus:not([disabled]), .cs-dashboard .primary > button:active:not([disabled]), .cs-dashboard .primary > button:visited:hover:not([disabled]), .cs-dashboard .primary > button:visited:focus:not([disabled]), .cs-dashboard .primary > button:visited:active:not([disabled]),
      .cs-dashboard .primary .create:hover:not([disabled]),
      .cs-dashboard .primary .create:focus:not([disabled]),
      .cs-dashboard .primary .create:active:not([disabled]),
      .cs-dashboard .primary .create:visited:hover:not([disabled]),
      .cs-dashboard .primary .create:visited:focus:not([disabled]),
      .cs-dashboard .primary .create:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-dashboard .primary > button[disabled], .cs-dashboard .primary > button:visited[disabled],
      .cs-dashboard .primary .create[disabled],
      .cs-dashboard .primary .create:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .wishlist-index-index .cs-dashboard .primary > button, .wishlist-index-index
    .cs-dashboard .primary .create {
      z-index: 1; }
    .cs-dashboard .primary > button span,
    .cs-dashboard .primary .create span {
      font-size: 1.6rem; }
  .cs-dashboard .primary > button.action.update {
    display: none; }
  .cs-dashboard .remind,
  .cs-dashboard .back {
    font-size: 1.4rem;
    margin-top: 0.7rem;
    display: inline-block; }
  .cs-dashboard .counter {
    font-weight: 300;
    transform: translateX(-1rem);
    display: inline-block; }
    .cs-dashboard .counter:before {
      content: '('; }
    .cs-dashboard .counter:after {
      content: ')'; }
  .cs-dashboard .block {
    width: 100%;
    margin: 1.5rem 0 2.5rem;
    background: transparent;
    padding: 0;
    box-sizing: border-box; }
    @media (min-width: 48em) {
      .cs-dashboard .block {
        margin: 1.5rem 0 4rem; } }
  .cs-dashboard .block-title,
  .cs-dashboard .legend,
  .cs-dashboard .order-title {
    border-bottom: 1px solid #dcdcdc;
    margin-bottom: 1rem;
    padding-bottom: 0.8rem;
    font-weight: 600;
    font-size: 2.4rem;
    width: 100%; }
    .cs-dashboard .block-title strong,
    .cs-dashboard .legend strong,
    .cs-dashboard .order-title strong {
      font-weight: 600;
      margin-right: 1rem; }
  .cs-dashboard .table-wrapper {
    width: 100%; }
  .cs-dashboard .block-title a {
    font-weight: 300;
    font-size: 1.6rem;
    vertical-align: text-bottom;
    white-space: nowrap; }
  .cs-dashboard .box-title {
    font-size: 1.1rem;
    font-weight: 600;
    text-transform: uppercase; }
  .cs-dashboard .block-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 2rem 0 0; }
    @media (max-width: 63.99em) {
      .sales-order-history .cs-dashboard .block-content {
        margin-top: 0; } }
    .cs-dashboard .block-content.no-display {
      display: none; }
  .cs-dashboard .block-new-customer .block-content {
    flex-direction: column; }
    .cs-dashboard .block-new-customer .block-content .fieldset {
      margin-bottom: 1rem; }
  @media (max-width: 63.99em) {
    .cs-dashboard .block-reward-history .cs-toolbar__item--amount {
      width: 100%;
      justify-content: center; } }
  .cs-dashboard .block-reward-history .cs-toolbar__item--amount:nth-child(1) {
    display: none; }
  @media (max-width: 63.99em) {
    .cs-dashboard .block-reward-history .pages {
      width: 100%;
      justify-content: center;
      display: flex;
      margin: 0.7rem 0 2rem; } }
  .cs-dashboard .block-reward-history .pages:nth-child(2) {
    display: none; }
  @media (max-width: 63.99em) {
    .cs-dashboard .block-reward-history .cs-toolbar__item--limiter {
      margin: 0 auto; } }
  .cs-dashboard .block-reward-history .cs-toolbar__item--limiter:nth-child(3) {
    display: none; }
  .cs-dashboard .box-actions a + a:before,
  .cs-dashboard .actions a + a:before {
    margin: 0 0.7rem 0 0.5rem;
    content: '';
    display: inline-block;
    width: 1px;
    height: 1.2rem;
    border-right: 2px solid #dcdcdc; }
  .cs-dashboard .box-actions a,
  .cs-dashboard .actions a {
    font-weight: 300; }
  .cs-dashboard .table-wrapper,
  .cs-dashboard .orders-history,
  .cs-dashboard .form-wishlist-items {
    background: transparent; }
    .cs-dashboard .table-wrapper + .toolbar,
    .cs-dashboard .table-wrapper + .actions-toolbar,
    .cs-dashboard .orders-history + .toolbar,
    .cs-dashboard .orders-history + .actions-toolbar,
    .cs-dashboard .form-wishlist-items + .toolbar,
    .cs-dashboard .form-wishlist-items + .actions-toolbar {
      background: transparent;
      padding: 0; }
    .cs-dashboard .table-wrapper.order-items + .actions-toolbar,
    .cs-dashboard .orders-history.order-items + .actions-toolbar,
    .cs-dashboard .form-wishlist-items.order-items + .actions-toolbar {
      padding: 0; }
    .cs-dashboard .table-wrapper + .toolbar,
    .cs-dashboard .orders-history + .toolbar,
    .cs-dashboard .form-wishlist-items + .toolbar {
      width: 100%; }
    .cs-dashboard .table-wrapper .action,
    .cs-dashboard .orders-history .action,
    .cs-dashboard .form-wishlist-items .action {
      margin-right: 0; }
  .cs-dashboard .form-wishlist-items .actions-toolbar .primary {
    margin-bottom: 2rem; }
    @media (max-width: 64em) {
      .cs-dashboard .form-wishlist-items .actions-toolbar .primary {
        display: flex;
        justify-content: space-between;
        flex-direction: column; }
        .cs-dashboard .form-wishlist-items .actions-toolbar .primary .action:last-child {
          margin-top: 1rem; } }
  .cs-dashboard .form-pwanotifications-manage .fieldset {
    max-width: initial !important; }
  .cs-dashboard .form-pwanotifications-manage .field {
    flex-wrap: nowrap; }
  .cs-dashboard .form-pwanotifications-manage .actions-toolbar {
    margin-top: 2rem; }
  .cs-dashboard .cs-toolbar__item--amount {
    display: flex;
    align-items: center; }
  .cs-dashboard .toolbar {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap; }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar {
        align-items: center; } }
    @media (max-width: 63.99em) {
      .cs-dashboard .toolbar {
        flex-direction: column; } }
    .cs-dashboard .toolbar::after, .cs-dashboard .toolbar::before {
      display: none; }
    @media (max-width: 63.99em) {
      .cs-dashboard .toolbar .cs-toolbar__item {
        display: flex;
        justify-content: center;
        margin: auto; }
        .cs-dashboard .toolbar .cs-toolbar__item p {
          margin-bottom: 1rem; } }
    .cs-dashboard .toolbar .cs-toolbar__item--amount {
      margin-bottom: 1.5rem; }
      @media (min-width: 64em) {
        .cs-dashboard .toolbar .cs-toolbar__item--amount {
          margin-bottom: 0; } }
      @media (max-width: 47.99em) {
        .cs-dashboard .toolbar .cs-toolbar__item--amount {
          padding-bottom: 0; } }
      .cs-dashboard .toolbar .cs-toolbar__item--amount + .cs-toolbar__item--limiter {
        margin-top: 0; }
    @media (max-width: 63.99em) {
      .cs-dashboard .toolbar .cs-toolbar__item--limiter {
        margin-top: 2.5rem; } }
    @media (min-width: 64em) {
      .cs-dashboard .toolbar .cs-toolbar__item--limiter {
        margin-bottom: 0; } }
    .cs-dashboard .toolbar .toolbar-amount {
      padding-top: 0; }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar .pages {
        margin: 0 auto; } }
    @media (min-width: 48em) {
      .cs-dashboard .toolbar .pages {
        position: static;
        display: flex;
        justify-content: center;
        width: auto; } }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar .limiter {
        display: flex;
        justify-content: center; } }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar .limiter .label {
        width: auto; } }
    .cs-dashboard .toolbar.wishlist-toolbar br {
      display: none; }
  .cs-dashboard .actions-toolbar > .secondary .action.back,
  .cs-dashboard .secondary .action.edit-email-preferences {
    display: none; }
  .cs-dashboard .box,
  .cs-dashboard .addresses {
    width: 100%;
    box-sizing: border-box; }
    @media (min-width: 30em) {
      .cs-dashboard .box,
      .cs-dashboard .addresses {
        width: 48%; } }
  .cs-dashboard .box-content,
  .cs-dashboard .addresses .item {
    font-weight: 300;
    color: #696969;
    line-height: 2.5rem;
    margin-bottom: 0; }
  .cs-dashboard .tooltip.wrapper {
    font-size: 1.4rem;
    display: inline-block;
    padding-left: 0.5rem; }
  .cs-dashboard .choice.persistent {
    padding-bottom: 1.5rem; }
  @media (max-width: 63.99em) {
    .cs-dashboard .table-order-items .cs-table__col:last-child {
      padding-bottom: 2rem; }
    .cs-dashboard .table-order-items .price-excluding-tax,
    .cs-dashboard .table-order-items .price-including-tax,
    .cs-dashboard .table-order-items .items-qty,
    .cs-dashboard .table-order-items .product-item-name {
      display: inline-block;
      font-weight: 400;
      margin: 0;
      color: #696969; }
    .cs-dashboard .table-order-items .cs-cart-item__options-label {
      text-transform: none;
      width: auto;
      margin-right: 1rem; }
      .cs-dashboard .table-order-items .cs-cart-item__options-label:after {
        content: ':'; }
    .cs-dashboard .table-order-items .cs-table__col.subtotal {
      text-align: left; }
    .cs-dashboard .table-order-items .price-excluding-tax .price {
      font-weight: 400; } }
  .cs-dashboard .table-order-items .items-qty {
    margin: 0;
    padding: 0;
    list-style: none; }
    .cs-dashboard .table-order-items .items-qty .item {
      margin-bottom: 0.5rem; }
      .cs-dashboard .table-order-items .items-qty .item:last-child {
        margin-bottom: 0; }
  .sales-order-view .cs-dashboard .actions,
  .sales-order-invoice .cs-dashboard .actions,
  .sales-order-shipment .cs-dashboard .actions {
    width: 100%;
    margin-top: 2rem;
    display: flex; }
  .sales-order-view .cs-dashboard .actions .order,
  .sales-order-invoice .cs-dashboard .actions .order,
  .sales-order-shipment .cs-dashboard .actions .order {
    font-size: 1.2rem;
    margin-right: 1rem;
    margin-bottom: 0.8rem; }
    .sales-order-view .cs-dashboard .actions .order::-moz-focus-inner,
    .sales-order-invoice .cs-dashboard .actions .order::-moz-focus-inner,
    .sales-order-shipment .cs-dashboard .actions .order::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .sales-order-view .cs-dashboard .actions .order, .sales-order-view .cs-dashboard .actions .order:visited,
    .sales-order-invoice .cs-dashboard .actions .order,
    .sales-order-invoice .cs-dashboard .actions .order:visited,
    .sales-order-shipment .cs-dashboard .actions .order,
    .sales-order-shipment .cs-dashboard .actions .order:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .sales-order-view .cs-dashboard .actions .order:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .order:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .order:active:not([disabled]), .sales-order-view .cs-dashboard .actions .order:visited:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .order:visited:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .order:visited:active:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .order:hover:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .order:focus:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .order:active:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .order:visited:hover:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .order:visited:focus:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .order:visited:active:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .order:hover:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .order:focus:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .order:active:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .order:visited:hover:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .order:visited:focus:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .order:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .sales-order-view .cs-dashboard .actions .order[disabled], .sales-order-view .cs-dashboard .actions .order:visited[disabled],
      .sales-order-invoice .cs-dashboard .actions .order[disabled],
      .sales-order-invoice .cs-dashboard .actions .order:visited[disabled],
      .sales-order-shipment .cs-dashboard .actions .order[disabled],
      .sales-order-shipment .cs-dashboard .actions .order:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .sales-order-view .cs-dashboard .actions .order::before,
    .sales-order-invoice .cs-dashboard .actions .order::before,
    .sales-order-shipment .cs-dashboard .actions .order::before {
      display: none; }
    .sales-order-view .cs-dashboard .actions .order span,
    .sales-order-invoice .cs-dashboard .actions .order span,
    .sales-order-shipment .cs-dashboard .actions .order span {
      font-size: 1.6rem; }
  .sales-order-view .cs-dashboard .actions .print,
  .sales-order-invoice .cs-dashboard .actions .print,
  .sales-order-shipment .cs-dashboard .actions .print {
    font-size: 1.2rem;
    margin-right: 1rem;
    margin-bottom: 0.8rem; }
    .sales-order-view .cs-dashboard .actions .print::-moz-focus-inner,
    .sales-order-invoice .cs-dashboard .actions .print::-moz-focus-inner,
    .sales-order-shipment .cs-dashboard .actions .print::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .sales-order-view .cs-dashboard .actions .print, .sales-order-view .cs-dashboard .actions .print:visited,
    .sales-order-invoice .cs-dashboard .actions .print,
    .sales-order-invoice .cs-dashboard .actions .print:visited,
    .sales-order-shipment .cs-dashboard .actions .print,
    .sales-order-shipment .cs-dashboard .actions .print:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .sales-order-view .cs-dashboard .actions .print:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .print:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .print:active:not([disabled]), .sales-order-view .cs-dashboard .actions .print:visited:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .print:visited:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .print:visited:active:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .print:hover:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .print:focus:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .print:active:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .print:visited:hover:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .print:visited:focus:not([disabled]),
      .sales-order-invoice .cs-dashboard .actions .print:visited:active:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .print:hover:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .print:focus:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .print:active:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .print:visited:hover:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .print:visited:focus:not([disabled]),
      .sales-order-shipment .cs-dashboard .actions .print:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .sales-order-view .cs-dashboard .actions .print[disabled], .sales-order-view .cs-dashboard .actions .print:visited[disabled],
      .sales-order-invoice .cs-dashboard .actions .print[disabled],
      .sales-order-invoice .cs-dashboard .actions .print:visited[disabled],
      .sales-order-shipment .cs-dashboard .actions .print[disabled],
      .sales-order-shipment .cs-dashboard .actions .print:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    .sales-order-view .cs-dashboard .actions .print::before,
    .sales-order-invoice .cs-dashboard .actions .print::before,
    .sales-order-shipment .cs-dashboard .actions .print::before {
      display: none; }
    .sales-order-view .cs-dashboard .actions .print span,
    .sales-order-invoice .cs-dashboard .actions .print span,
    .sales-order-shipment .cs-dashboard .actions .print span {
      font-size: 1.6rem; }
  .cs-dashboard .block-reviews-dashboard .product-name {
    font-weight: 300; }
  .cs-dashboard .rating-result {
    margin-left: 0;
    width: auto; }
    .cs-dashboard .rating-result::before {
      display: none; }
  .cs-dashboard .rating-summary.item {
    display: flex;
    overflow: visible; }
  .cs-dashboard .customer-review .product-name {
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.8rem;
    line-height: 1.1;
    color: #333333;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem; }
  .cs-dashboard .customer-review .review-title {
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.8rem;
    line-height: 1.1;
    color: #333333;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    text-transform: none; }
  .cs-dashboard .customer-review.view {
    margin-bottom: 2rem; }
    .cs-dashboard .customer-review.view .review.title,
    .cs-dashboard .customer-review.view .ratings-summary,
    .cs-dashboard .customer-review.view .product-details {
      margin-bottom: 2rem; }
  .cs-dashboard .customer-review .product-details {
    margin-bottom: 4rem; }
  .cs-dashboard .customer-review .product-media {
    float: left;
    margin-right: 3%;
    max-width: 28.5rem;
    width: 30%; }
  .cs-dashboard .customer-review .review-details .customer-review-rating {
    margin-bottom: 2rem; }
    .cs-dashboard .customer-review .review-details .customer-review-rating .item {
      margin-bottom: 1rem; }
      .cs-dashboard .customer-review .review-details .customer-review-rating .item:last-child {
        margin-bottom: 0; }
  .cs-dashboard .customer-review .review-details .review-title {
    line-height: 1.1;
    font-size: 1.8rem;
    margin-top: 1.5rem;
    font-weight: 600;
    margin-bottom: 2rem; }
  .cs-dashboard .customer-review .review-details .review-content {
    margin-bottom: 2rem; }
  .cs-dashboard .customer-review .product-reviews-summary .rating-summary,
  .cs-dashboard .customer-review .product-reviews-summary .reviews-actions {
    display: block; }
  .cs-dashboard .form.create.account,
  .cs-dashboard .form-address-edit,
  .cs-dashboard .form-edit-account,
  .cs-dashboard .form.password.reset,
  .cs-dashboard .form.send.confirmation,
  .cs-dashboard .form.password.forget,
  .cs-dashboard #aw_giftcard__check_code_form {
    background: transparent;
    padding: 0; }
    @media (min-width: 48em) {
      .cs-dashboard .form.create.account,
      .cs-dashboard .form-address-edit,
      .cs-dashboard .form-edit-account,
      .cs-dashboard .form.password.reset,
      .cs-dashboard .form.send.confirmation,
      .cs-dashboard .form.password.forget,
      .cs-dashboard #aw_giftcard__check_code_form {
        width: 100%; } }
    .cs-dashboard .form.create.account br,
    .cs-dashboard .form-address-edit br,
    .cs-dashboard .form-edit-account br,
    .cs-dashboard .form.password.reset br,
    .cs-dashboard .form.send.confirmation br,
    .cs-dashboard .form.password.forget br,
    .cs-dashboard #aw_giftcard__check_code_form br {
      display: none; }
    .cs-dashboard .form.create.account .fullname .label,
    .cs-dashboard .form-address-edit .fullname .label,
    .cs-dashboard .form-edit-account .fullname .label,
    .cs-dashboard .form.password.reset .fullname .label,
    .cs-dashboard .form.send.confirmation .fullname .label,
    .cs-dashboard .form.password.forget .fullname .label,
    .cs-dashboard #aw_giftcard__check_code_form .fullname .label {
      text-align: left;
      width: 100%; }
    .cs-dashboard .form.create.account .fullname > .label,
    .cs-dashboard .form-address-edit .fullname > .label,
    .cs-dashboard .form-edit-account .fullname > .label,
    .cs-dashboard .form.password.reset .fullname > .label,
    .cs-dashboard .form.send.confirmation .fullname > .label,
    .cs-dashboard .form.password.forget .fullname > .label,
    .cs-dashboard #aw_giftcard__check_code_form .fullname > .label {
      width: 1px; }
    .cs-dashboard .form.create.account .fullname .control,
    .cs-dashboard .form-address-edit .fullname .control,
    .cs-dashboard .form-edit-account .fullname .control,
    .cs-dashboard .form.password.reset .fullname .control,
    .cs-dashboard .form.send.confirmation .fullname .control,
    .cs-dashboard .form.password.forget .fullname .control,
    .cs-dashboard #aw_giftcard__check_code_form .fullname .control {
      width: 100%; }
    .cs-dashboard .form.create.account .action.primary,
    .cs-dashboard .form-address-edit .action.primary,
    .cs-dashboard .form-edit-account .action.primary,
    .cs-dashboard .form.password.reset .action.primary,
    .cs-dashboard .form.send.confirmation .action.primary,
    .cs-dashboard .form.password.forget .action.primary,
    .cs-dashboard #aw_giftcard__check_code_form .action.primary {
      font-size: 1.4rem; }
    .cs-dashboard .form.create.account .back,
    .cs-dashboard .form-address-edit .back,
    .cs-dashboard .form-edit-account .back,
    .cs-dashboard .form.password.reset .back,
    .cs-dashboard .form.send.confirmation .back,
    .cs-dashboard .form.password.forget .back,
    .cs-dashboard #aw_giftcard__check_code_form .back {
      display: none; }
    .cs-dashboard .form.create.account .fieldset,
    .cs-dashboard .form-address-edit .fieldset,
    .cs-dashboard .form-edit-account .fieldset,
    .cs-dashboard .form.password.reset .fieldset,
    .cs-dashboard .form.send.confirmation .fieldset,
    .cs-dashboard .form.password.forget .fieldset,
    .cs-dashboard #aw_giftcard__check_code_form .fieldset {
      margin-bottom: 2rem; }
    .cs-dashboard .form.create.account .fieldset-fullname,
    .cs-dashboard .form-address-edit .fieldset-fullname,
    .cs-dashboard .form-edit-account .fieldset-fullname,
    .cs-dashboard .form.password.reset .fieldset-fullname,
    .cs-dashboard .form.send.confirmation .fieldset-fullname,
    .cs-dashboard .form.password.forget .fieldset-fullname,
    .cs-dashboard #aw_giftcard__check_code_form .fieldset-fullname {
      margin-bottom: 0; }
  .cs-dashboard .addresses {
    width: 100%; }
  .cs-dashboard .block-addresses-list + .actions-toolbar {
    background: transparent; }
  @media (max-width: 47.99em) {
    .cs-dashboard .box-billing-address {
      margin-bottom: 2rem; } }
  .cs-dashboard .table-additional-addresses-items .col.state {
    display: none; }
  @media (min-width: 48.01em) {
    .cs-dashboard .table-additional-addresses-items th:first-child,
    .cs-dashboard .table-additional-addresses-items td:first-child {
      padding-left: 0 !important; } }
  @media (min-width: 48.01em) {
    .cs-dashboard .table-additional-addresses-items th:last-child,
    .cs-dashboard .table-additional-addresses-items td:last-child {
      padding-right: 0 !important; } }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.delete {
    width: 100%; }
    .cs-dashboard .table-additional-addresses-items .action.delete:before {
      display: none !important; } }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.edit {
    margin-right: 0;
    width: 100%; } }
  .cs-dashboard .form-newsletter-manage {
    background: transparent; }
    .cs-dashboard .form-newsletter-manage .fieldset {
      margin-bottom: 1rem; }
  .cs-dashboard__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-dashboard__button, .cs-dashboard__button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-dashboard__button:hover:not([disabled]), .cs-dashboard__button:focus:not([disabled]), .cs-dashboard__button:active:not([disabled]), .cs-dashboard__button:visited:hover:not([disabled]), .cs-dashboard__button:visited:focus:not([disabled]), .cs-dashboard__button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-dashboard__button[disabled], .cs-dashboard__button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-dashboard__button-span {
    font-size: 1.6rem; }
  .cs-dashboard__button-icon {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-dashboard__wishlist-guest {
    padding-top: 2rem; }
  .cs-dashboard__wishlist-guest-copy {
    padding-left: 1rem;
    position: relative; }
  .cs-dashboard__wishlist-guest-copy-icon {
    width: 2rem;
    height: 2rem;
    fill: #696969;
    position: absolute; }

.cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
  padding-top: 2rem;
  padding-bottom: 2rem; }
  @media (min-width: 64em) {
    .cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
      padding-top: 3rem;
      padding-bottom: 5rem; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-container--my-account-page {
    padding-left: 1.5rem;
    padding-right: 1.5rem; } }

.account .table-wrapper:last-child {
  margin-bottom: 0; }

.account .table-wrapper .action {
  margin-right: 1.5rem; }

.account .table-wrapper .action:last-child {
  margin-right: 0; }

.block p:last-child {
  margin: 0; }

.block .box-actions {
  margin-top: 0.5rem; }

.account.page-print .items-qty {
  margin: 0;
  padding: 0;
  list-style: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-dashboard {
  padding-bottom: 85px; }
  @media (max-width: 48em) {
    .cs-dashboard__columns {
      margin-top: 0; } }
  .cs-dashboard__top {
    padding-block: 0; }
    .cs-dashboard__top .order-details-invoices {
      margin-bottom: 4rem; }
    .cs-dashboard__top form .field {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      align-items: flex-start; }
      .cs-dashboard__top form .field-tooltip {
        flex-grow: 1; }
      .cs-dashboard__top form .field .control {
        margin-top: auto; }
      .cs-dashboard__top form .field .note:empty {
        display: none; }
  .cs-dashboard__bottom {
    border-top: none;
    padding-block: 0; }
  .cs-dashboard__wishlist-products-grid {
    padding-bottom: 2em;
    margin-bottom: 2em !important; }
    .cs-dashboard__wishlist-products-grid::after {
      display: none; }
    @media (pointer: coarse) {
      .cs-dashboard__wishlist-products-grid .cs-product-tile__content {
        height: 32rem; } }
    @media (max-width: 48em) {
      .cs-dashboard__wishlist-products-grid .cs-product-tile__addons {
        padding-bottom: 1rem; } }
    @media (max-width: 30em) {
      .cs-dashboard__wishlist-products-grid {
        padding-bottom: 4rem; }
        .cs-dashboard__wishlist-products-grid .cs-product-tile__content {
          padding-bottom: 6rem; } }
    @media (max-width: 23.125em) {
      .cs-dashboard__wishlist-products-grid .cs-product-tile--grid .cs-product-tile__price--grid {
        margin-top: 0; } }
  .cs-dashboard .choice {
    align-items: center; }
  .cs-dashboard .box-content {
    margin-bottom: 2rem; }
  @media (max-width: 30em) {
    .cs-dashboard .box-newsletter {
      margin-top: 5rem; } }
  .cs-dashboard .block-content a:hover {
    color: #c1272f;
    text-decoration: underline; }
  .cs-dashboard .block-title {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap; }
    .cs-dashboard .block-title .counter {
      margin-left: 0.5rem; }
    .cs-dashboard .block-title .action.edit,
    .cs-dashboard .block-title .action.view {
      font-size: 1.6rem;
      transition: 0.3s all;
      color: #c1272f;
      font-weight: 300;
      margin-right: 45px;
      position: relative;
      margin-bottom: 3px; }
      .cs-dashboard .block-title .action.edit:hover,
      .cs-dashboard .block-title .action.view:hover {
        border-bottom: 1px solid #c1272f;
        text-decoration: none; }
      .cs-dashboard .block-title .action.edit::after,
      .cs-dashboard .block-title .action.view::after {
        content: url("data:image/svg+xml,%3Csvg width='34' height='24' fill='%23c1272f' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd'%3E%3Cpath d='M31.883 12l-7.527 6.235.644.765 9-7.521-9-7.479-.645.764 7.529 6.236h-31.884v1h21.883z'/%3E%3C/svg%3E");
        width: 34px;
        height: 24px;
        position: absolute;
        width: 34px;
        height: 24px;
        top: 50%;
        transform: translateY(-50%);
        right: -45px; }
  .cs-dashboard .box-title {
    font-size: 1.6rem; }
  .cs-dashboard .actions-toolbar {
    margin-bottom: 2em; }
    .cs-dashboard .actions-toolbar .secondary {
      margin-top: 1rem; }
  @media (max-width: 30em) {
    .cs-dashboard .toolbar {
      margin-bottom: 2rem; } }
  .cs-dashboard .box-actions,
  .cs-dashboard .actions {
    display: flex;
    flex-direction: row;
    gap: 0.5rem; }
    @media (max-width: 64em) {
      .cs-dashboard .box-actions,
      .cs-dashboard .actions {
        display: flex !important;
        flex-direction: row !important; } }
    .cs-dashboard .box-actions a.view,
    .cs-dashboard .box-actions a.order,
    .cs-dashboard .actions a.view,
    .cs-dashboard .actions a.order {
      display: inline-flex;
      color: #c1272f; }
      .cs-dashboard .box-actions a.view:hover,
      .cs-dashboard .box-actions a.order:hover,
      .cs-dashboard .actions a.view:hover,
      .cs-dashboard .actions a.order:hover {
        text-decoration: underline; }
      @media (max-width: 64em) {
        .cs-dashboard .box-actions a.view:nth-child(2),
        .cs-dashboard .box-actions a.order:nth-child(2),
        .cs-dashboard .actions a.view:nth-child(2),
        .cs-dashboard .actions a.order:nth-child(2) {
          margin-left: 3px; }
          .cs-dashboard .box-actions a.view:nth-child(2)::before,
          .cs-dashboard .box-actions a.order:nth-child(2)::before,
          .cs-dashboard .actions a.view:nth-child(2)::before,
          .cs-dashboard .actions a.order:nth-child(2)::before {
            content: "|";
            height: 1.8rem !important;
            display: block !important; } }
    .cs-dashboard .box-actions a.edit,
    .cs-dashboard .box-actions a.change-password,
    .cs-dashboard .actions a.edit,
    .cs-dashboard .actions a.change-password {
      display: flex;
      align-items: center; }
      .cs-dashboard .box-actions a.edit:after,
      .cs-dashboard .box-actions a.change-password:after,
      .cs-dashboard .actions a.edit:after,
      .cs-dashboard .actions a.change-password:after {
        content: "";
        display: inline-flex;
        background: center no-repeat url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/edit.svg");
        background-size: contain;
        margin-left: 8px;
        height: 1.3rem;
        width: 1.3rem; }
  .cs-dashboard .complaint-form-steps .field.step__datepicker {
    position: relative; }
    .cs-dashboard .complaint-form-steps .field.step__datepicker label.error {
      position: absolute;
      bottom: -25px;
      left: 15px; }
  .cs-dashboard .complaint-form-steps .step__field.field {
    flex-direction: column; }
    .cs-dashboard .complaint-form-steps .step__field.field .mage-error {
      margin-top: -0.5rem; }
  .cs-dashboard .complaint-form-steps .step__validation-msg {
    font-weight: 300;
    color: #ff7200;
    margin-top: 0.5rem; }
  .cs-dashboard .complaint-form-steps #step_3 span.field:not(.step__heading) {
    color: #ff7200; }
  .cs-dashboard .field {
    position: relative; }
    .cs-dashboard .field.street .nested.fieldset {
      margin-bottom: -2rem; }
  .cs-dashboard .fieldset input[type="checkbox"] {
    display: inline-block;
    height: 1.9rem;
    width: 1.9rem;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 0;
    background-size: 1em 1em;
    background-color: #ffffff;
    align-self: center; }
    .cs-dashboard .fieldset input[type="checkbox"]::-moz-focus-inner, .cs-dashboard .fieldset input[type="checkbox"]:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-dashboard .fieldset input[type="checkbox"]:hover:not([disabled]), .cs-dashboard .fieldset input[type="checkbox"]:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: none;
      background-color: transparent; }
    .cs-dashboard .fieldset input[type="checkbox"]:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
      background-size: cover; }
      .cs-dashboard .fieldset input[type="checkbox"]:checked, .cs-dashboard .fieldset input[type="checkbox"]:checked:hover, .cs-dashboard .fieldset input[type="checkbox"]:checked:focus {
        border: 1px solid #333333;
        background-color: transparent;
        box-shadow: none; }
    .cs-dashboard .fieldset input[type="checkbox"][disabled],
    .cs-dashboard .fieldset input[type="checkbox"][disabled] + .label,
    .cs-dashboard .fieldset input[type="checkbox"][disabled] + .cs-input__label {
      opacity: 1; }
    .cs-dashboard .fieldset input[type="checkbox"]:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23333333' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
  .cs-dashboard .fieldset label[for="f_different_return_address"] {
    margin-left: 3rem; }
    .cs-dashboard .fieldset label[for="f_different_return_address"] + .control {
      position: absolute;
      top: 50%;
      transform: translateY(-50%); }
  .cs-dashboard .fieldset.hdmx__ticket-history {
    max-width: 100% !important; }
  .cs-dashboard .block-wishlist .block-title a {
    font-size: 1.6rem;
    transition: 0.3s all;
    color: #c1272f;
    font-weight: 300;
    margin-right: 45px;
    position: relative;
    margin-bottom: 3px; }
    .cs-dashboard .block-wishlist .block-title a:hover {
      border-bottom: 1px solid #c1272f;
      text-decoration: none; }
    .cs-dashboard .block-wishlist .block-title a::after {
      content: url("data:image/svg+xml,%3Csvg width='34' height='24' fill='%23c1272f' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd'%3E%3Cpath d='M31.883 12l-7.527 6.235.644.765 9-7.521-9-7.479-.645.764 7.529 6.236h-31.884v1h21.883z'/%3E%3C/svg%3E");
      width: 34px;
      height: 24px;
      position: absolute;
      width: 34px;
      height: 24px;
      top: 50%;
      transform: translateY(-50%);
      right: -45px; }
  .cs-dashboard .reviews .table-reviews {
    height: 1px; }
    .cs-dashboard .reviews .table-reviews .product-name {
      font-weight: 400 !important; }
    .cs-dashboard .reviews .table-reviews .col.actions {
      height: 100%;
      display: table-cell; }
      @media (min-width: 64.01em) {
        .cs-dashboard .reviews .table-reviews .col.actions > a {
          display: block; }
          .cs-dashboard .reviews .table-reviews .col.actions > a:nth-child(n + 2) {
            margin-top: 0.5rem; } }
      .cs-dashboard .reviews .table-reviews .col.actions > a:hover {
        color: #c1272f;
        text-decoration: underline; }
  .cs-dashboard a.action:hover {
    color: #c1272f;
    text-decoration: underline; }
  .cs-dashboard #order-additional-cms-block {
    background: #ffffff;
    margin-bottom: 2rem;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 1px 3px 3rem 0 #00000008; }

.cs-captcha__note {
  margin-top: 1rem !important; }

.cs-page-success {
  margin: 2rem 0; }
  @media (min-width: 48em) {
    .cs-page-success {
      margin: 4rem auto 2rem; } }
  .cs-page-success__inner {
    border-top: 2px solid #f0f0f0;
    padding-top: 2.5rem;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-page-success__inner {
        padding-top: 1.5rem; } }
  .cs-page-success__section {
    width: 100%; }
    .cs-page-success__section:nth-child(2n + 2) {
      margin-top: 3rem; }
    @media (min-width: 48em) {
      .cs-page-success__section {
        width: 48%;
        box-sizing: border-box;
        padding-bottom: 2rem; }
        .cs-page-success__section:nth-child(2n + 1) {
          padding-right: 4rem; }
        .cs-page-success__section:nth-child(2n + 2) {
          padding-left: 4rem;
          border-left: 1px solid #dcdcdc;
          margin-top: 0; } }
    @media (min-width: 48em) and (max-width: 47.99em) {
      .cs-page-success__section:nth-child(2n + 2) {
        margin-top: 1.5rem; } }
    @media (min-width: 64em) {
      .cs-page-success__section:nth-child(2n + 1) {
        padding-right: 6rem; }
      .cs-page-success__section:nth-child(2n + 2) {
        padding-left: 6rem; } }
  .cs-page-success__subheadline {
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 2.4rem;
    line-height: 1.1;
    color: #333333;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    text-transform: none; }
  .cs-page-success__button {
    margin-top: 1rem; }
    .cs-page-success__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-page-success__button, .cs-page-success__button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .cs-page-success__button:hover:not([disabled]), .cs-page-success__button:focus:not([disabled]), .cs-page-success__button:active:not([disabled]), .cs-page-success__button:visited:hover:not([disabled]), .cs-page-success__button:visited:focus:not([disabled]), .cs-page-success__button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .cs-page-success__button[disabled], .cs-page-success__button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    .cs-page-success__button-span {
      font-size: 1.6rem; }
    .cs-page-success__button-icon {
      max-width: 1em;
      max-height: 1.6rem;
      z-index: 2;
      height: auto;
      width: 100%;
      display: none; }
  .cs-page-success .form-create-account br {
    display: none; }
  .cs-page-success .form-create-account .fieldset {
    margin-bottom: 2rem; }
    .cs-page-success .form-create-account .fieldset.info {
      margin-bottom: 0; }
      .cs-page-success .form-create-account .fieldset.info .legend,
      .cs-page-success .form-create-account .fieldset.info .field {
        display: none; }
    .cs-page-success .form-create-account .fieldset.account .field:first-of-type {
      display: none; }
    .cs-page-success .form-create-account .fieldset.account .password {
      margin-top: 0; }
    .cs-page-success .form-create-account .fieldset.account #password-strength-meter-container {
      display: none; }
  .cs-page-success .form-create-account .legend {
    border-bottom: 1px solid #dcdcdc;
    margin-bottom: 1rem;
    padding-bottom: 0.8rem;
    font-weight: 600;
    font-size: 2.4rem;
    width: 100%; }
    .cs-page-success .form-create-account .legend strong {
      font-weight: 600;
      margin-right: 1rem; }
  .cs-page-success .form-create-account .choice .label {
    width: auto;
    font-weight: 300;
    font-size: 1.4rem; }
  .cs-page-success .form-create-account .primary > button,
  .cs-page-success .form-create-account .primary .create {
    min-width: 12rem; }
    .cs-page-success .form-create-account .primary > button::-moz-focus-inner,
    .cs-page-success .form-create-account .primary .create::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-page-success .form-create-account .primary > button, .cs-page-success .form-create-account .primary > button:visited,
    .cs-page-success .form-create-account .primary .create,
    .cs-page-success .form-create-account .primary .create:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-page-success .form-create-account .primary > button:hover:not([disabled]), .cs-page-success .form-create-account .primary > button:focus:not([disabled]), .cs-page-success .form-create-account .primary > button:active:not([disabled]), .cs-page-success .form-create-account .primary > button:visited:hover:not([disabled]), .cs-page-success .form-create-account .primary > button:visited:focus:not([disabled]), .cs-page-success .form-create-account .primary > button:visited:active:not([disabled]),
      .cs-page-success .form-create-account .primary .create:hover:not([disabled]),
      .cs-page-success .form-create-account .primary .create:focus:not([disabled]),
      .cs-page-success .form-create-account .primary .create:active:not([disabled]),
      .cs-page-success .form-create-account .primary .create:visited:hover:not([disabled]),
      .cs-page-success .form-create-account .primary .create:visited:focus:not([disabled]),
      .cs-page-success .form-create-account .primary .create:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-page-success .form-create-account .primary > button[disabled], .cs-page-success .form-create-account .primary > button:visited[disabled],
      .cs-page-success .form-create-account .primary .create[disabled],
      .cs-page-success .form-create-account .primary .create:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-page-success .form-create-account .primary > button span,
    .cs-page-success .form-create-account .primary .create span {
      font-size: 1.6rem; }
  .cs-page-success .form-create-account .primary > button.action.update {
    display: none; }
  .cs-page-success .form-create-account .secondary {
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cart-page {
  position: relative;
  width: 100%; }
  @media (max-width: 47.99em) {
    .cs-cart-page {
      max-width: 45rem;
      margin: 0 auto; }
      .cs-cart-page .page-title {
        padding-left: 2rem;
        padding-right: 2rem; } }
  .cs-cart-page .cart-container {
    position: relative;
    display: flex;
    justify-content: space-between;
    flex-flow: row wrap;
    margin-bottom: 4rem; }

.cs-container--cart-page .cs-container--products-carousel {
  padding-left: 0;
  padding-right: 0; }

.cs-container--cart-page .cs-container--headline {
  padding-left: 0;
  padding-right: 0; }

.cs-container__cart-coupons {
  display: flex;
  flex-wrap: wrap; }
  @media (min-width: 64em) {
    .cs-container__cart-coupons {
      flex-wrap: nowrap;
      justify-content: space-between; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-container--cart-page {
  padding-bottom: 85px; }

@media (max-width: 30em) {
  .cs-cart-page .page-title {
    padding-left: 0;
    padding-block: 2rem;
    font-size: 2.4rem; } }

.cs-cart-page .cart-container .price-excluding-tax::before,
.cs-cart-page .cart-container .price-including-tax::before {
  visibility: hidden !important;
  height: 0;
  width: 0; }

@media (min-width: 64.01em) {
  .cs-cart-page .cart-container .cs-container__main-column {
    width: 70%; }
  .cs-cart-page .cart-container .cs-container__aside {
    width: 28%; } }

@media (min-width: 80.01em) {
  .cs-cart-page .cart-container .cs-container__main-column {
    width: 72%; }
  .cs-cart-page .cart-container .cs-container__aside {
    width: 26%; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.ui-datepicker {
  display: none;
  z-index: 999999 !important;
  border: none;
  border-radius: 24px;
  padding: 0;
  width: auto;
  min-width: 25rem;
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
  background: #f0f0f0; }

.ui-datepicker-header {
  position: relative;
  background: #fed400;
  padding: 1.2rem 2rem;
  border-top-left-radius: 24px;
  border-top-right-radius: 24px; }

.ui-datepicker-prev,
.ui-datepicker-next {
  position: absolute;
  top: 2rem;
  width: 1.8em;
  height: 1.8em;
  cursor: pointer; }
  .ui-datepicker-prev span,
  .ui-datepicker-next span {
    display: block;
    position: absolute;
    left: 50%;
    top: 0.2rem;
    font-size: 0px;
    width: 0;
    height: 0; }

.ui-datepicker-prev {
  left: 1.5rem; }
  .ui-datepicker-prev span {
    border-width: 0;
    position: relative; }
    .ui-datepicker-prev span:before, .ui-datepicker-prev span:after {
      content: '';
      position: absolute;
      top: 50%;
      left: 2rem;
      width: 0;
      height: 0; }
    .ui-datepicker-prev span:before {
      left: -1.2rem;
      border-top: 0.8rem solid transparent;
      border-bottom: 0.8rem solid transparent;
      border-right: 0.8rem solid #324dcf;
      margin-top: -0.8rem; }
    .ui-datepicker-prev span:after {
      left: -1rem;
      border-top: 0.6rem solid transparent;
      border-bottom: 0.6rem solid transparent;
      border-right: 0.6rem solid #fed400;
      margin-top: -0.6rem; }

.ui-datepicker-next {
  right: 1.5rem; }
  .ui-datepicker-next span {
    border-width: 0;
    position: relative; }
    .ui-datepicker-next span:before, .ui-datepicker-next span:after {
      content: '';
      position: absolute;
      top: 50%;
      right: 0;
      width: 0;
      height: 0; }
    .ui-datepicker-next span:before {
      right: -1.2rem;
      border-top: 0.8rem solid transparent;
      border-bottom: 0.8rem solid transparent;
      border-left: 0.8rem solid #324dcf;
      margin-top: -0.8rem; }
    .ui-datepicker-next span:after {
      right: -1rem;
      border-top: 0.6rem solid transparent;
      border-bottom: 0.6rem solid transparent;
      border-left: 0.6rem solid #fed400;
      margin-top: -0.6rem; }

.ui-datepicker-title {
  text-align: center;
  margin: 0 1.5rem; }

.ui-datepicker-title select {
  display: inline-block;
  font-size: 1.4rem; }

select.ui-datepicker-month-year {
  width: 100%; }

.ui-datepicker-month {
  width: 47%;
  margin-right: 6%; }

.ui-datepicker-year {
  width: 47%; }

.ui-datepicker-table {
  border: none;
  font-size: 1rem;
  border-collapse: collapse; }

.ui-datepicker-calendar {
  border-collapse: collapse;
  margin: 1rem 1.5rem 1.5rem;
  border-width: 0;
  width: 23rem; }
  .ui-datepicker-calendar td,
  .ui-datepicker-calendar th {
    background: none;
    border-width: 0;
    width: 3rem;
    height: 3rem;
    padding: 0;
    text-align: center; }
  .ui-datepicker-calendar th {
    text-transform: uppercase;
    color: #212121; }
  .ui-datepicker-calendar .ui-datepicker-week-col {
    text-align: center; }
  .ui-datepicker-calendar td a,
  .ui-datepicker-calendar th span,
  .ui-datepicker-calendar td span {
    background: none;
    border-width: 0;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    text-align: center;
    line-height: 3rem;
    padding: 0;
    font-size: 1.4rem;
    display: block; }
  .ui-datepicker-calendar td a,
  .ui-datepicker-calendar td span {
    color: #696969; }
  .ui-datepicker-calendar .ui-state-hover {
    background: #324dcf;
    color: #fff; }
  .ui-datepicker-calendar .ui-state-disabled {
    background: transparent; }
    .ui-datepicker-calendar .ui-state-disabled span {
      color: #dcdcdc; }
  .ui-datepicker-calendar .ui-state-active {
    background: #324dcf;
    color: #fff; }

.ui-datepicker-buttonpane {
  overflow: hidden;
  padding-top: 1rem;
  border-top: #dcdcdc 1px solid; }
  .ui-datepicker-buttonpane button {
    float: right; }
  .ui-datepicker-buttonpane button.ui-datepicker-current {
    float: left; }

.ui-datepicker-rtl {
  direction: rtl; }

.ui-datepicker-rtl .ui-datepicker-prev {
  right: 2px;
  left: auto; }

.ui-datepicker-rtl .ui-datepicker-next {
  left: 2px;
  right: auto; }

.ui-datepicker-rtl .ui-datepicker-prev:hover {
  right: 1px;
  left: auto; }

.ui-datepicker-rtl .ui-datepicker-next:hover {
  left: 1px;
  right: auto; }

.ui-datepicker-rtl .ui-datepicker-buttonpane {
  clear: right; }

.ui-datepicker-rtl .ui-datepicker-buttonpane button {
  float: left; }

.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current {
  float: right; }

.ui-datepicker-rtl .ui-datepicker-group {
  float: right; }

.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
  border-right-width: 0;
  border-left-width: 1px; }

.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
  border-right-width: 0;
  border-left-width: 1px; }

.ui-timepicker-div {
  padding: 1rem 0 0.5rem 0; }
  .ui-timepicker-div .ui-widget-header {
    margin-bottom: 0.8rem; }
  .ui-timepicker-div dl {
    text-align: left; }
    .ui-timepicker-div dl dt {
      height: 2.5rem;
      margin-bottom: -2.2rem; }
    .ui-timepicker-div dl .ui_tpicker_time_label {
      margin-bottom: -2.5rem; }
    .ui-timepicker-div dl dd {
      margin: 0 0 1rem 6.5rem; }
  .ui-timepicker-div td {
    font-size: 90%; }

.ui-tpicker-grid-label {
  background: none;
  border: none;
  margin: 0;
  padding: 0; }

.ui-slider {
  position: relative;
  text-align: left; }

.ui-slider-handle {
  height: 1rem;
  width: 1rem;
  border-radius: 1rem;
  background: #324dcf;
  display: block;
  position: absolute;
  z-index: 2;
  cursor: default; }

.ui-slider-horizontal {
  height: 1rem;
  border-radius: 1rem;
  border: none;
  background: #f0f0f0; }
  .ui-slider-horizontal .ui-slider-handle {
    margin-left: -0.5rem; }

/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
  position: absolute;
  /*must have*/
  z-index: -1;
  /*must have*/
  filter: mask();
  /*must have*/
  top: -4px;
  /*must have*/
  left: -4px;
  /*must have*/
  width: 200px;
  /*must have*/
  height: 200px;
  /*must have*/ }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cart-bonus {
  padding: 1.5rem; }
  @media (min-width: 48em) {
    .cs-cart-bonus {
      padding: 1.5rem 0; } }
  @media (min-width: 64em) {
    .cs-cart-bonus {
      border-bottom: 1px solid #dcdcdc; } }
  .cs-cart-bonus--empty-basket {
    border-top: 1px solid #dcdcdc;
    border-bottom: 0;
    margin-top: 2rem; }
  .cs-cart-bonus__headline {
    font-size: 1.5rem;
    font-weight: 700;
    color: #212121;
    display: flex;
    align-items: center;
    margin-bottom: 1.75rem; }
  .cs-cart-bonus__gifts-wrapper {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap; }
  .cs-cart-bonus__gift {
    display: flex;
    flex: 1 1 100%;
    font-size: 1.3rem;
    color: #888;
    flex-wrap: wrap;
    justify-content: center; }
    @media (min-width: 48em) {
      .cs-cart-bonus__gift {
        flex-basis: 16.66667%; } }
    .cs-cart-bonus__gift + .cs-cart-bonus__gift {
      margin-top: 2rem; }
      @media (min-width: 48em) {
        .cs-cart-bonus__gift + .cs-cart-bonus__gift {
          margin-top: 0; } }
      @media (min-width: 48em) {
        .cs-cart-bonus__gift + .cs-cart-bonus__gift .cs-cart-bonus__progress-wrapper {
          border-left: 0;
          border-radius: 0 0.2rem 0.2rem 0; } }
    .cs-cart-bonus__gift--awarded .cs-cart-bonus__progress-done {
      transform: scaleX(1) !important; }
    .cs-cart-bonus__gift:nth-of-type(1) .cs-cart-bonus__icon-box--gift path,
    .cs-cart-bonus__gift:nth-of-type(1) .cs-cart-bonus__icon-box--status,
    .cs-cart-bonus__gift:nth-of-type(1) .cs-cart-bonus__label,
    .cs-cart-bonus__gift:nth-of-type(1) .cs-cart-bonus__tooltip {
      transition-delay: 0.8s; }
    .cs-cart-bonus__gift:nth-of-type(1) .cs-cart-bonus__progress-done {
      transition-delay: 0s; }
    .cs-cart-bonus__gift:nth-of-type(2) .cs-cart-bonus__icon-box--gift path,
    .cs-cart-bonus__gift:nth-of-type(2) .cs-cart-bonus__icon-box--status,
    .cs-cart-bonus__gift:nth-of-type(2) .cs-cart-bonus__label,
    .cs-cart-bonus__gift:nth-of-type(2) .cs-cart-bonus__tooltip {
      transition-delay: 1.6s; }
    .cs-cart-bonus__gift:nth-of-type(2) .cs-cart-bonus__progress-done {
      transition-delay: 0.8s; }
    .cs-cart-bonus__gift:nth-of-type(3) .cs-cart-bonus__icon-box--gift path,
    .cs-cart-bonus__gift:nth-of-type(3) .cs-cart-bonus__icon-box--status,
    .cs-cart-bonus__gift:nth-of-type(3) .cs-cart-bonus__label,
    .cs-cart-bonus__gift:nth-of-type(3) .cs-cart-bonus__tooltip {
      transition-delay: 2.4s; }
    .cs-cart-bonus__gift:nth-of-type(3) .cs-cart-bonus__progress-done {
      transition-delay: 1.6s; }
    .cs-cart-bonus__gift:nth-of-type(4) .cs-cart-bonus__icon-box--gift path,
    .cs-cart-bonus__gift:nth-of-type(4) .cs-cart-bonus__icon-box--status,
    .cs-cart-bonus__gift:nth-of-type(4) .cs-cart-bonus__label,
    .cs-cart-bonus__gift:nth-of-type(4) .cs-cart-bonus__tooltip {
      transition-delay: 3.2s; }
    .cs-cart-bonus__gift:nth-of-type(4) .cs-cart-bonus__progress-done {
      transition-delay: 2.4s; }
    .cs-cart-bonus__gift:nth-of-type(5) .cs-cart-bonus__icon-box--gift path,
    .cs-cart-bonus__gift:nth-of-type(5) .cs-cart-bonus__icon-box--status,
    .cs-cart-bonus__gift:nth-of-type(5) .cs-cart-bonus__label,
    .cs-cart-bonus__gift:nth-of-type(5) .cs-cart-bonus__tooltip {
      transition-delay: 4s; }
    .cs-cart-bonus__gift:nth-of-type(5) .cs-cart-bonus__progress-done {
      transition-delay: 3.2s; }
    .cs-cart-bonus__gift:nth-of-type(6) .cs-cart-bonus__icon-box--gift path,
    .cs-cart-bonus__gift:nth-of-type(6) .cs-cart-bonus__icon-box--status,
    .cs-cart-bonus__gift:nth-of-type(6) .cs-cart-bonus__label,
    .cs-cart-bonus__gift:nth-of-type(6) .cs-cart-bonus__tooltip {
      transition-delay: 4.8s; }
    .cs-cart-bonus__gift:nth-of-type(6) .cs-cart-bonus__progress-done {
      transition-delay: 4s; }
  .cs-cart-bonus__top-wrapper {
    display: flex;
    width: 100%;
    align-items: center;
    margin-bottom: 1rem;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-cart-bonus__top-wrapper {
        justify-content: center; } }
  .cs-cart-bonus__inline-amount {
    display: none;
    margin: 0 0.8rem 0 auto;
    align-items: center;
    color: #37b841; }
    @media (max-width: 47.99em) {
      .cs-cart-bonus__gift--current .cs-cart-bonus__inline-amount {
        display: flex; } }
  .cs-cart-bonus__icon-wrapper {
    position: relative; }
    .cs-cart-bonus__icon-wrapper--awarded .cs-cart-bonus__icon--gift path {
      fill: #37b841; }
      [data-mage-init] .cs-cart-bonus__icon-wrapper--awarded .cs-cart-bonus__icon--gift path {
        fill: #888; }
    .cs-cart-bonus__icon-wrapper--awarded .cs-cart-bonus__icon-box--status {
      visibility: visible;
      opacity: 1; }
      [data-mage-init] .cs-cart-bonus__icon-wrapper--awarded .cs-cart-bonus__icon-box--status {
        visibility: hidden;
        opacity: 0; }
  .cs-cart-bonus__icon-box--status {
    background: #37b841;
    border-radius: 50%;
    width: 1.5rem;
    height: 1.5rem;
    position: absolute;
    line-height: 1.3rem;
    right: -0.6rem;
    bottom: -0.1rem;
    justify-content: center;
    align-items: center;
    visibility: hidden;
    opacity: 0;
    display: flex;
    transition: opacity, visibility 0.3s; }
  .cs-cart-bonus__icon {
    width: 2.3rem;
    height: 2.1rem;
    transition: fill 0.3s; }
    .cs-cart-bonus__icon--headline {
      margin-right: 1rem; }
      .cs-cart-bonus__icon--headline path {
        fill: #212121; }
    .cs-cart-bonus__icon--gift path {
      fill: #888; }
    .cs-cart-bonus__icon--status {
      width: 0.7rem;
      height: 0.7rem; }
      .cs-cart-bonus__icon--status path {
        fill: #fff; }
  .cs-cart-bonus__progress-wrapper {
    position: relative;
    border: 1px solid #dcdcdc;
    border-radius: 0.2rem;
    height: 1.4rem;
    width: 100%;
    padding: 0.2rem;
    box-sizing: border-box; }
    @media (min-width: 48em) {
      .cs-cart-bonus__progress-wrapper {
        border-radius: 0.2rem 0 0 0.2rem; } }
  .cs-cart-bonus__progress-possible {
    position: absolute;
    height: 0.8rem;
    background: repeating-linear-gradient(-45deg, #dcdcdc, #dcdcdc 1px, transparent 1px, transparent 5px);
    border-radius: 0.2rem;
    top: 0.2rem;
    left: 0.2rem;
    right: 0.2rem;
    border: 1px solid #dcdcdc;
    box-sizing: border-box; }
  .cs-cart-bonus__progress-done {
    position: relative;
    transform: scaleX(0);
    width: 100%;
    height: 0.8rem;
    background: #37b841;
    border-radius: 0.2rem;
    transform-origin: left;
    transition: transform 0.8s linear;
    z-index: 2; }
    [data-mage-init] .cs-cart-bonus__progress-done {
      transform: scaleX(0) !important; }
  .cs-cart-bonus__label-wrapper {
    display: flex;
    align-items: center;
    color: #888;
    margin: 0;
    font-size: 1.3rem;
    max-width: calc(100% - 3.3rem);
    transition: color; }
    .cs-cart-bonus__label-wrapper--top {
      margin-right: 0.8rem; }
    .cs-cart-bonus__label-wrapper--bottom {
      display: none; }
    .cs-cart-bonus__label-wrapper--awarded {
      color: #37b841; }
      [data-mage-init] .cs-cart-bonus__label-wrapper--awarded {
        color: #888; }
    @media (min-width: 48em) {
      .cs-cart-bonus__label-wrapper {
        text-align: center;
        max-width: none;
        margin-top: 1rem; }
        .cs-cart-bonus__label-wrapper--top {
          display: none; }
        .cs-cart-bonus__label-wrapper--bottom {
          display: block; } }
  .cs-cart-bonus__tooltip {
    top: 0;
    left: 0.8rem;
    position: absolute;
    display: none;
    transform: translate3d(-50%, -100%, 0) scaleY(1);
    flex-wrap: wrap;
    justify-content: center;
    transition: transform 0.3s;
    transform-origin: center bottom; }
    @media (min-width: 48em) {
      .cs-cart-bonus__tooltip {
        display: flex; } }
    .cs-cart-bonus__tooltip:after {
      content: '';
      position: absolute;
      left: 50%;
      bottom: 0;
      margin-left: -0.4rem;
      height: 0;
      border-style: solid;
      border-width: 0.6rem 0.4rem 0;
      border-color: #37b841 transparent transparent transparent; }
    .cs-cart-bonus__tooltip--edge_left .cs-cart-bonus__tooltip-content {
      transform: translateX(35%); }
    .cs-cart-bonus__tooltip--edge_right .cs-cart-bonus__tooltip-content {
      transform: translateX(-35%); }
    [data-mage-init] .cs-cart-bonus__tooltip {
      transform: translate3d(-50%, -100%, 0) scaleY(0); }
  .cs-cart-bonus__tooltip-content {
    background: #37b841;
    width: 100%;
    padding: 0.6rem 0.7rem 0.5rem;
    box-sizing: border-box;
    font-size: 1rem;
    color: #fff;
    border-radius: 0.2rem;
    text-align: center;
    margin-bottom: 0.6rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-cart-item {
  border-top: 1px solid #dcdcdc;
  position: relative; }
  @media (min-width: 64em) {
    .cs-cart-item {
      padding-right: 11rem;
      padding-bottom: 0;
      border-top: none; } }
  tbody:nth-child(3) .cs-cart-item {
    border-top: none; }
  tbody:last-child .cs-cart-item {
    border-bottom: 1px solid #dcdcdc; }
    @media (min-width: 64em) {
      tbody:last-child .cs-cart-item {
        border-bottom: none; } }
  @media (min-width: 64em) {
    .cs-cart-item--no-icons {
      padding-right: 0; } }
  .cs-cart-item td {
    vertical-align: top; }
    @media (min-width: 64em) {
      .cs-cart-item td {
        vertical-align: middle; } }
  .cs-cart-item__product {
    display: flex; }
  .cs-cart-item__image {
    width: 13rem;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center; }
    @media (min-width: 64em) {
      .cs-cart-item__image {
        width: 10rem; } }
    @media (min-width: 90em) {
      .cs-cart-item__image {
        width: 15rem; } }
  .cs-cart-item__brand {
    width: 100%;
    padding-top: 1.5rem; }
    .cs-cart-item__brand + .cs-cart-item__name {
      padding-top: 0; }
  .cs-cart-item__brand-text {
    font-size: 1.2rem;
    color: #888; }
  .cs-cart-item__name {
    width: 100%;
    padding: 1.5rem 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: #212121; }
  .cs-cart-item__name a {
    font-size: 1.5rem;
    font-weight: 700;
    text-decoration: none;
    color: #212121; }
    .cs-cart-item__name a__name {
      width: 100%;
      padding: 1.5rem 0; }
      .cs-cart-item__name a__name a {
        font-size: 1.4rem; }
  .cs-cart-item__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #324dcf;
    color: #fff;
    border: 0;
    border-radius: 24px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }
    .cs-cart-item__badge:after {
      content: '';
      min-height: inherit;
      font-size: 0; }
    .cs-cart-item__badge--free {
      background-color: #37b841;
      color: #fff; }
      .cs-cart-item__badge--free .cs-cart-item__badge-text {
        line-height: normal; }
        .cs-cart-item__badge--free .cs-cart-item__badge-text + .cs-cart-item__badge--free .cs-cart-item__badge-text {
          margin-left: 0.5rem; }
    .cs-cart-item__badge + .cs-cart-item__name {
      padding-top: 0.5rem; }
  .cs-cart-item__badge-text {
    line-height: normal; }
    .cs-cart-item__badge-text + .cs-cart-item__badge-text {
      margin-left: 0.5rem; }
  .cs-cart-item__details {
    padding: 0 1rem 1rem 2rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center; }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-cart-item__details {
    padding: 0 0 0 2rem; } }
    @media (min-width: 80em) {
      .cs-cart-item__details {
        padding: 0 1rem 0 2rem; } }
  .cs-cart-item__options-group {
    margin: 0 2rem 0 0; }
    @media (min-width: 64em) {
      .cs-cart-item__options-group {
        margin: 0 2rem 1rem 0; } }
  .cs-cart-item__options-label {
    width: 7rem;
    display: inline-block;
    color: #212121;
    font-size: 1.4rem;
    font-weight: 700; }
    @media (min-width: 48em) {
      .cs-cart-item__options-label {
        width: auto;
        display: block; } }
  .cs-cart-item__options-value {
    margin-bottom: 0;
    display: inline-block;
    color: #696969;
    font-size: 1.4rem; }
    @media (min-width: 64em) {
      .cs-cart-item__options-value {
        width: auto;
        display: block; } }
  .cs-cart-item__price {
    padding: 0.4rem 0 0.4rem 2rem !important; }
    @media (max-width: 63.99em) {
      .cs-cart-item__price {
        text-align: left; } }
    @media (min-width: 64em) {
      .cs-cart-item__price {
        padding: 0.4rem 1.5rem 0.4rem 0 !important; } }
    @media (min-width: 80em) {
      .cs-cart-item__price {
        padding: 0.4rem 2rem 0.4rem 0 !important; } }
  .cs-cart-item__subtotal {
    padding: 0.4rem 2rem 0.4rem 0 !important; }
    @media (min-width: 64em) {
      .cs-cart-item__subtotal {
        padding: 0.4rem 1.5rem 0.4rem 0 !important; } }
    @media (min-width: 80em) {
      .cs-cart-item__subtotal {
        padding: 0.4rem 2rem 0.4rem 0 !important; } }
    @media (max-width: 63.99em) {
      .cs-cart-item__subtotal {
        text-align: right; } }
    @media (min-width: 64em) {
      .cs-cart-item--no-icons .cs-cart-item__subtotal {
        text-align: right; } }
  @media (max-width: 63.99em) {
    .cs-cart-item__price, .cs-cart-item__subtotal, .cs-cart-item__qty {
      box-sizing: border-box;
      width: 31%;
      display: inline-block !important;
      height: 9rem;
      overflow: hidden; }
      .cs-cart-item__price:before, .cs-cart-item__subtotal:before, .cs-cart-item__qty:before {
        content: attr(data-th) !important;
        font-size: 1rem;
        text-transform: uppercase;
        padding: 0 0 2.1rem !important; } }
  @media (max-width: 63.99em) and (min-width: 30em) {
    .cs-cart-item__price:before, .cs-cart-item__subtotal:before, .cs-cart-item__qty:before {
      font-size: 1.1rem; } }
  @media (min-width: 64em) {
    .cs-cart-item__price, .cs-cart-item__subtotal, .cs-cart-item__qty {
      padding-left: 0; } }
  .cs-cart-item__qty {
    padding: 0.4rem 0 !important; }
    @media (min-width: 64em) {
      .cs-cart-item__qty {
        padding: 0.4rem 1.5rem 0.4rem 0 !important; } }
    @media (min-width: 80em) {
      .cs-cart-item__qty {
        padding: 0.4rem 2rem 0.4rem 0 !important; } }
    @media (max-width: 63.99em) {
      .cs-cart-item__qty {
        padding-right: 0;
        padding-left: 0;
        text-align: center;
        width: 36%;
        height: auto;
        min-height: 9rem; }
        .cs-cart-item__qty:before {
          padding: 0 0 1rem !important;
          /* stylelint-disable-line declaration-no-important */ } }
  @media (max-width: 63.99em) {
    .cs-cart-item__item {
      padding-top: 1rem; }
      .cs-cart-item__item:before {
        display: none !important;
        /* stylelint-disable-line declaration-no-important */ } }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-cart-item__item {
    padding-left: 0 !important; } }
  .cs-cart-item__qty-input {
    margin: 0 auto;
    width: 10rem; }
    @media (min-width: 64em) {
      .cs-cart-item__qty-input {
        width: 11rem; } }
  @media (min-width: 64em) {
    .cs-cart-item__subtotal-inner {
      display: flex;
      align-items: center;
      height: 2.5rem; } }
  .cs-cart-item__buttons {
    width: 100%;
    align-items: center;
    position: relative;
    box-sizing: border-box;
    display: flex;
    justify-content: flex-end; }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-cart-item__buttons {
    justify-content: flex-start; } }
  .cs-cart-item__link {
    display: flex;
    align-items: center;
    margin-left: 1rem; }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-cart-item__link {
    margin: 0 0.2rem; } }
    .cs-cart-item__link--remove {
      margin-right: 0.5rem; }
    .cs-cart-item__link--wishlist {
      margin-left: 0; }
  .cs-cart-item__link-wrapper {
    display: flex;
    margin: 0 0.5rem; }
    .cs-cart-item__link-wrapper:hover .cs-cart-item__link-icon path {
      fill: #142b9e; }
  .cs-cart-item__link-icon {
    width: 2rem;
    height: 2rem; }
    .cs-cart-item__link-icon path {
      fill: #324dcf; }
  @media (max-width: 63.99em) {
    .cs-cart-item__bottom {
      padding: 0 2rem 2rem !important;
      /* stylelint-disable-line declaration-no-important */ } }
  @media (min-width: 64em) {
    .cs-cart-item__bottom {
      padding-right: 0;
      padding-left: 0; } }
  .cs-cart-item__bottom:before {
    display: none !important;
    /* stylelint-disable-line declaration-no-important */ }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cart-item {
  border-top: 1px solid #d5d5d5; }
  @media (max-width: 30em) {
    .cs-cart-item {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between; } }
  .cs-cart-item__item.col.item {
    vertical-align: top;
    padding: 1.4rem 1rem !important; }
    @media (min-width: 64em) {
      .cs-cart-item__item.col.item {
        vertical-align: middle; } }
  .cs-cart-item__image {
    width: 9rem; }
    @media (min-width: 64em) {
      .cs-cart-item__image {
        width: 9rem; } }
    @media (min-width: 90em) {
      .cs-cart-item__image {
        width: 9rem; } }
  .cs-cart-item__name {
    width: 100%;
    padding: 0.3rem 0;
    font-size: 1.6rem;
    font-weight: 700;
    color: #333333; }
  .cs-cart-item__name a {
    font-size: 1.6rem;
    font-weight: 700;
    text-decoration: none;
    color: #333333; }
    .cs-cart-item__name a__name {
      width: 100%;
      padding: 1.5rem 0; }
      .cs-cart-item__name a__name a {
        font-size: 1.6rem; }
  .cs-cart-item__sku {
    font-size: 1.4rem; }
  .cs-cart-item__details {
    min-width: 23rem; }
  .cs-cart-item__options-label {
    color: #333333;
    font-size: 1.4rem;
    font-weight: 700; }
  .cs-cart-item__options-value {
    margin-bottom: 0;
    display: inline-block;
    color: #333333;
    font-size: 1.4rem; }
    @media (min-width: 64em) {
      .cs-cart-item__options-value {
        width: auto;
        display: block; } }
  .cs-cart-item__subtotal .price-excluding-tax .cart-price .price {
    font-weight: 700;
    font-size: 1.6rem; }
  @media (max-width: 30em) {
    .cs-cart-item__subtotal {
      text-align: left;
      padding-right: 0 !important; } }
  .cs-cart-item__price .price-excluding-tax,
  .cs-cart-item__price .price-including-tax, .cs-cart-item__subtotal .price-excluding-tax,
  .cs-cart-item__subtotal .price-including-tax, .cs-cart-item__qty .price-excluding-tax,
  .cs-cart-item__qty .price-including-tax {
    line-height: 2.8rem !important; }
    @media (max-width: 30em) {
      .cs-cart-item__price .price-excluding-tax,
      .cs-cart-item__price .price-including-tax, .cs-cart-item__subtotal .price-excluding-tax,
      .cs-cart-item__subtotal .price-including-tax, .cs-cart-item__qty .price-excluding-tax,
      .cs-cart-item__qty .price-including-tax {
        line-height: 24px !important; }
        .cs-cart-item__price .price-excluding-tax .price,
        .cs-cart-item__price .price-including-tax .price, .cs-cart-item__subtotal .price-excluding-tax .price,
        .cs-cart-item__subtotal .price-including-tax .price, .cs-cart-item__qty .price-excluding-tax .price,
        .cs-cart-item__qty .price-including-tax .price {
          font-size: 1.4rem !important; } }
  .cs-cart-item__price .price-excluding-tax .cart-price .price, .cs-cart-item__subtotal .price-excluding-tax .cart-price .price, .cs-cart-item__qty .price-excluding-tax .cart-price .price {
    font-weight: 700;
    font-size: 1.6rem; }
  @media (max-width: 30em) {
    .cs-cart-item__price .price-including-tax .cart-price .price, .cs-cart-item__subtotal .price-including-tax .cart-price .price, .cs-cart-item__qty .price-including-tax .cart-price .price {
      font-weight: 300; } }
  @media (max-width: 30em) {
    .cs-cart-item__price, .cs-cart-item__subtotal, .cs-cart-item__qty {
      width: unset !important; }
      .cs-cart-item__price::before, .cs-cart-item__subtotal::before, .cs-cart-item__qty::before {
        font-size: 1.6rem;
        font-weight: 300 !important;
        padding-bottom: 15px !important;
        text-transform: capitalize; } }
  .cs-cart-item__qty-input {
    margin: 0 auto;
    width: auto; }
    @media (min-width: 64em) {
      .cs-cart-item__qty-input {
        width: auto; } }
    .cs-cart-item__qty-input .cs-qty-increment__input {
      border: 1px solid #d5d5d5;
      border-radius: 24px;
      width: 8rem; }
    .cs-cart-item__qty-input .cs-qty-increment__button {
      display: none; }
  .cs-cart-item__subtotal-inner {
    height: auto;
    align-items: flex-start; }
    @media (min-width: 64em) {
      .cs-cart-item__subtotal-inner {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        height: auto; } }
  .cs-cart-item__link--wishlist {
    display: none; }
  @media (max-width: 30em) {
    .cs-cart-item__link--remove {
      margin-right: 0; }
      .cs-cart-item__link--remove > a {
        margin-right: 0; } }
  .cs-cart-item__link-wrapper:hover .cs-cart-item__link-icon path {
    fill: #a20109; }
  .cs-cart-item__link-icon {
    width: 2.4rem;
    height: 2.4rem; }
    .cs-cart-item__link-icon path {
      fill: #333333; }
  @media (max-width: 30em) {
    .cs-cart-item__price {
      padding-left: 0 !important; } }
  @media (min-width: 80.01em) {
    .cs-cart-item__bottom {
      padding-inline: 0 !important; } }
  @media (max-width: 64em) {
    .cs-cart-item__bottom {
      width: 100%;
      display: flex;
      justify-content: flex-end;
      padding-top: 2em !important; } }
  @media (max-width: 30em) {
    .cs-cart-item__bottom {
      padding: 2em 0 3em !important; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cart-summary {
  background: #fff;
  border-radius: 3px;
  padding: 1rem 1.5rem 2rem;
  border-top: 1px solid #dcdcdc; }
  @media (min-width: 48em) {
    .cs-cart-summary {
      padding: 2rem;
      border-bottom: none;
      border-top: none;
      box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28); } }
  .cs-cart-summary--empty {
    border-top: none;
    padding: 0 2rem; }
    @media (min-width: 48em) {
      .cs-cart-summary--empty {
        box-shadow: none;
        padding: 2rem 0; } }
  .cs-cart-summary__title {
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 2.4rem;
    line-height: 1.1;
    color: #333333;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    text-transform: none; }
    @media (min-width: 48em) {
      .cs-cart-summary__title {
        display: block; } }
  .cs-cart-summary__trigger {
    padding: 1.1rem 0.8rem 1.1rem 0; }
    @media (min-width: 48em) {
      .cs-cart-summary__trigger {
        border-top: 1px solid #dcdcdc;
        margin-top: 1.1rem; } }
  .cs-cart-summary__label {
    font-size: 1.4rem;
    font-weight: 400;
    color: #696969; }
  .cs-cart-summary__value {
    font-size: 1.4rem;
    font-weight: 700;
    color: #212121; }
  .cs-cart-summary__remove {
    width: 1.2rem;
    height: 1.2rem;
    margin-right: 0.5rem; }
  .cs-cart-summary__totals {
    font-size: 1.4rem;
    font-weight: 400;
    color: #696969; }
    .cs-cart-summary__totals th {
      padding-left: 0;
      font-weight: 400;
      color: #696969; }
    .cs-cart-summary__totals td {
      padding-right: 0;
      text-align: right;
      white-space: nowrap; }
    .cs-cart-summary__totals .grand {
      font-weight: 700 !important;
      /* stylelint-disable-line declaration-no-important */
      font-size: 1.5rem !important;
      /* stylelint-disable-line declaration-no-important */
      border-top: 1px solid #dcdcdc; }
      .cs-cart-summary__totals .grand th,
      .cs-cart-summary__totals .grand td {
        padding-top: 1.4rem;
        padding-bottom: 1.4rem;
        color: #212121; }
    .cs-cart-summary__totals .discount.coupon {
      display: none; }
  .cs-cart-summary__tax-note-row th,
  .cs-cart-summary__tax-note-row td {
    padding: 0 !important; }
  .cs-cart-summary__tax-note {
    text-align: right;
    font-size: 1.4rem;
    color: #888; }
  .cs-cart-summary__to-checkout-button {
    width: 100%; }
    .cs-cart-summary__to-checkout-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-cart-summary__to-checkout-button, .cs-cart-summary__to-checkout-button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-cart-summary__to-checkout-button:hover:not([disabled]), .cs-cart-summary__to-checkout-button:focus:not([disabled]), .cs-cart-summary__to-checkout-button:active:not([disabled]), .cs-cart-summary__to-checkout-button:visited:hover:not([disabled]), .cs-cart-summary__to-checkout-button:visited:focus:not([disabled]), .cs-cart-summary__to-checkout-button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-cart-summary__to-checkout-button[disabled], .cs-cart-summary__to-checkout-button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-cart-summary__to-checkout-button-span {
      font-size: 1.6rem; }
    .cs-cart-summary__to-checkout-button-icon {
      max-width: 1em;
      max-height: 1.6rem;
      z-index: 2;
      height: auto;
      width: 100%;
      display: none; }
  .cs-cart-summary .multicheckout,
  .cs-cart-summary .cs-cart-summary__shipping {
    display: none; }
  .cs-cart-summary .checkout-methods-items .item + .item {
    margin-top: 0 !important; }
  .cs-cart-summary #block-shipping {
    display: none; }
  .cs-cart-summary .totals.giftcard .action.delete {
    font-size: 0;
    width: 1rem;
    height: 1rem;
    background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/close.svg");
    background-size: contain;
    display: inline-block;
    transform: translateY(-1rem); }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cart-summary {
  background: #ffffff;
  border-radius: 8px;
  padding: 1rem 0 0 0; }
  @media (min-width: 48em) {
    .cs-cart-summary {
      padding: 2rem 0 0 0; } }
  @media (max-width: 30em) {
    .cs-cart-summary {
      border-top: none;
      box-shadow: 0px 0px 5px 3px #e5e5e5; } }
  @media (min-width: 48em) {
    .cs-cart-summary--empty {
      padding: 2rem 0 0 0; } }
  .cs-cart-summary__title {
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 2.4rem;
    line-height: 1.1;
    color: #333333;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    padding-left: 2rem;
    padding-right: 2rem;
    text-align: center;
    text-transform: none; }
    @media (max-width: 30em) {
      .cs-cart-summary__title {
        display: block; } }
  .cs-cart-summary__totals {
    font-size: 1.4rem;
    font-weight: 400;
    color: #333333; }
    .cs-cart-summary__totals .table-wrapper {
      margin-bottom: 0; }
    .cs-cart-summary__totals th {
      padding: 0.7rem 1rem 0.7rem 2rem;
      font-weight: 400;
      color: #333333; }
    .cs-cart-summary__totals td {
      padding: 0.7rem 2rem 0.7rem 1rem;
      text-align: right;
      white-space: nowrap; }
    .cs-cart-summary__totals .totals-tax th,
    .cs-cart-summary__totals .totals-tax td {
      padding-bottom: 3rem; }
    .cs-cart-summary__totals .grand {
      font-weight: 700 !important;
      /* stylelint-disable-line declaration-no-important */
      font-size: 1.4rem !important;
      /* stylelint-disable-line declaration-no-important */
      border: none;
      background-color: #f7f7f7; }
      .cs-cart-summary__totals .grand th,
      .cs-cart-summary__totals .grand td {
        padding-top: 0.7rem;
        padding-bottom: 0.7rem;
        color: #333333; }
      .cs-cart-summary__totals .grand.excl th,
      .cs-cart-summary__totals .grand.excl td {
        padding-top: 3rem;
        vertical-align: middle; }
      .cs-cart-summary__totals .grand.excl .cs-cart-summary__value {
        padding-top: 3rem;
        font-size: 1.8rem; }
  .cs-cart-summary__to-checkout-button {
    display: block;
    margin: auto;
    max-width: 240px; }
    .cs-cart-summary__to-checkout-button > span {
      font-weight: 400; }
  .cs-cart-summary .checkout-methods-items {
    background-color: #f7f7f7;
    padding: 2rem; }
    .cs-cart-summary .checkout-methods-items .item {
      background-color: #f7f7f7; }
    .cs-cart-summary .checkout-methods-items .item + .item {
      margin-top: 0 !important; }
  .cs-cart-summary .totals {
    border: none; }
    .cs-cart-summary .totals .amount {
      font-weight: 300;
      color: #333333; }
    .cs-cart-summary .totals.giftcard .action.delete {
      font-size: 0;
      width: 1rem;
      height: 1rem;
      background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/close.svg");
      background-size: contain;
      display: inline-block;
      transform: translateY(-1rem); }
    .cs-cart-summary .totals.incl th, .cs-cart-summary .totals.shipping th, .cs-cart-summary .totals-tax th {
      font-weight: 300; }
    .cs-cart-summary .totals-tax,
    .cs-cart-summary .totals-tax > th {
      color: #878787; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
@media (max-width: 63.99em) {
  .cs-cart-table {
    border: none;
    font-size: 1.4rem;
    padding: 0; }
    .cs-cart-table:last-child {
      padding-bottom: 1.2rem; } }

@media (min-width: 48em) {
  .cs-cart-table {
    border-top: 1px solid #dcdcdc; } }

.cs-cart-table-wrapper {
  background-color: transparent;
  margin-bottom: 0; }

@media (max-width: 63.99em) {
  .cs-cart-table .cs-cart-table__head {
    display: none; } }

.cs-cart-table__toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: column;
  padding: 2rem 0;
  border-bottom: 1px solid #dcdcdc;
  border-top: 1px solid #dcdcdc; }
  @media (min-width: 48em) {
    .cs-cart-table__toolbar {
      border: none;
      flex-direction: row; } }
  @media (min-width: 48em) {
    .cs-cart-table__toolbar--top {
      padding-top: 0; } }
  @media (max-width: 63.99em) {
    .cs-cart-table__toolbar--bottom {
      border-top: 1px solid #dcdcdc;
      border-bottom: none; } }

.cs-cart-table__head {
  border-bottom: 2px solid #dcdcdc; }
  @media (max-width: 47.99em) {
    .cs-cart-table__head {
      display: none; } }

.cs-cart-table__head-col {
  color: #212121;
  padding: 1.3rem 1.5rem 1.3rem 0.1rem;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.1rem; }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-cart-table__head-col:nth-last-child(2) {
    position: absolute; } }
  .cs-cart-table__head-col--right {
    text-align: right; }

@media (max-width: 63.99em) {
  .cs-cart-table .cs-cart-table__col {
    border: none;
    display: block;
    font-size: 1.4rem;
    padding: 0.2rem; }
    .cs-cart-table .cs-cart-table__col:first-child {
      padding-top: 2rem; }
    .cs-cart-table .cs-cart-table__col:last-child {
      padding-bottom: 1rem; } }

@media (max-width: 63.99em) {
  .cs-cart-table .cs-cart-table__col:before {
    content: attr(data-th) ": ";
    padding-right: 10px;
    display: inline-block;
    color: #212121;
    font-weight: 700; } }

@media (max-width: 63.99em) {
  .cs-cart-table .cs-cart-table__col--actions {
    border-bottom: 1px solid #dcdcdc; } }

@media (max-width: 63.99em) {
  .cs-cart-table .cs-cart-table__col--actions:before {
    /* stylelint-disable-line */
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */
    /* stylelint-disable-line */ } }

.cs-cart-table__col {
  font-size: 1.4rem;
  color: #212121;
  font-weight: 300;
  border-bottom: 1px solid #dcdcdc;
  padding: 0.8rem 1rem; }
  @media (max-width: 47.99em) {
    .cs-cart-table:not(.cs-cart-table--no-change-mobile) .cs-cart-table__col {
      border: none;
      display: block;
      padding: 0.4rem 2rem; }
      .cs-cart-table:not(.cs-cart-table--no-change-mobile) .cs-cart-table__col:first-child {
        padding-top: 2rem; }
      .cs-cart-table:not(.cs-cart-table--no-change-mobile) .cs-cart-table__col:last-child {
        padding-bottom: 1.2rem; } }
  @media (max-width: 47.99em) {
    .cs-cart-table:not(.cs-cart-table--no-change-mobile) .cs-cart-table__col:before {
      padding-right: 10px;
      content: attr(data-th) ": ";
      display: inline-block;
      color: #212121;
      font-weight: 700; } }
  @media (min-width: 64em) {
    .cs-cart-table__col {
      font-size: 1.4rem; } }
  .cs-cart-table__col--attention {
    font-weight: 700;
    color: #212121; }
  @media (max-width: 47.99em) {
    .cs-cart-table__col--actions {
      border-bottom: 1px solid #dcdcdc; } }
  @media (max-width: 47.99em) {
    .cs-cart-table__col--actions:before {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ } }
  @media (max-width: 47.99em) {
    .cs-cart-table__col--label {
      display: none !important; } }
  .cs-cart-table__col.price .price {
    font-weight: 400;
    font-size: 1.4rem; }
  .cs-cart-table__col.subtotal .price, .cs-cart-table__col.total .price {
    color: #212121;
    font-size: 1.4rem;
    font-weight: 400; }
  .cs-cart-table__col.qty ul {
    list-style: none inside none;
    padding-left: 0;
    margin-bottom: 0; }
  .cs-cart-table__col.qty li {
    margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-cart-table__body:last-child .cs-cart-table__col,
.cs-cart-table__body:last-child .item-info {
  border-bottom: none !important;
  align-items: flex-end; }

.cs-cart-table-wrapper {
  background-color: #ffffff;
  padding: 0 1.5rem;
  margin-bottom: 0;
  border-radius: 8px; }

.cs-cart-table__head {
  border-bottom: 2px solid #333333 !important; }

.cs-cart-table__head-col {
  color: #333333;
  padding: 1.8rem 1.5rem 1.8rem 0.1rem;
  font-weight: 400;
  text-transform: none !important;
  font-size: 1.4rem !important;
  white-space: nowrap; }
  .cs-cart-table__head-col:nth-last-child(1) {
    padding-left: 0; }

@media (max-width: 63.99em) {
  .cs-cart-table .cs-cart-table__col:before {
    content: attr(data-th) ": ";
    padding-right: 10px;
    display: inline-block;
    color: #333333;
    font-weight: 700;
    text-transform: initial; } }

@media (max-width: 63.99em) {
  .cs-cart-table .cs-cart-table__col--actions {
    border-bottom: 1px solid #d5d5d5; } }

.cs-cart-table__col {
  font-size: 1.4rem;
  color: #333333;
  font-weight: 300;
  border-bottom: 1px solid #d5d5d5;
  padding: 0.8rem 1rem; }
  .cs-cart-table__col.price, .cs-cart-table__col.subtotal {
    width: 30% !important;
    height: auto; }
  @media (max-width: 47.99em) {
    .cs-cart-table:not(.cs-cart-table--no-change-mobile) .cs-cart-table__col:before {
      padding-right: 10px;
      content: attr(data-th) ": ";
      display: inline-block;
      color: #333333;
      font-weight: 700; } }
  @media (max-width: 47.99em) {
    .cs-cart-table__col--actions {
      border-bottom: 1px solid #d5d5d5; } }
  @media (max-width: 47.99em) {
    .cs-cart-table__col--label {
      display: none !important; } }
  .cs-cart-table__col.subtotal .price, .cs-cart-table__col.total .price {
    color: #333333; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-container--success-page {
  padding-bottom: 85px; }

@media (max-width: 47.99em) {
  .checkout-index-index .column.main {
    padding-top: 0; } }

.checkout-index-index .page-title-wrapper {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.checkout-index-index button.action.primary.action-save-address {
  order: 2; }

.checkout-index-index .page-header {
  max-width: 93rem;
  margin: 0.5rem auto 1rem;
  width: 100%; }
  @media (min-width: 48em) {
    .checkout-index-index .page-header {
      margin: 2.5rem auto 1rem; } }
  .checkout-index-index .page-header .cs-logo {
    padding-left: 2rem; }
    @media (min-width: 64em) {
      .checkout-index-index .page-header .cs-logo {
        padding-left: 0; } }
  .checkout-index-index .page-header .header.content {
    padding: 0 0 3rem; }

.checkout-index-index .cs-topbar {
  max-width: 93rem; }
  .checkout-index-index .cs-topbar .cs-topbar__item:first-child {
    opacity: 0;
    width: 1rem;
    overflow: hidden; }

.checkout-index-index .modal-popup .modal-inner-wrap .field .label[for="shipping-save-in-address-book"] {
  width: auto; }

.cs-checkout {
  display: flex;
  flex-wrap: wrap;
  position: relative;
  justify-content: space-between;
  max-width: 45rem;
  margin: 5rem auto 1.5rem auto; }
  @media (min-width: 48em) {
    .cs-checkout {
      max-width: 93rem; } }
  .cs-checkout__progress-bar {
    width: auto;
    list-style: none;
    max-width: 100%;
    padding: 0;
    margin-bottom: 2rem;
    box-sizing: border-box; }
    @media (min-width: 48em) {
      .cs-checkout__progress-bar {
        position: absolute;
        right: 0;
        top: -13rem;
        z-index: 2;
        margin-bottom: 0; } }
  .cs-checkout__messages {
    width: 100%; }
  @media (min-width: 48em) {
    .cs-checkout__mobile-summary {
      display: none; } }
  .cs-checkout__grand-total-tax-note-row td,
  .cs-checkout__grand-total-tax-note-row th {
    padding: 0 !important;
    text-align: right; }
  .cs-checkout__grand-total-tax-note {
    text-align: right;
    font-size: 1.4rem;
    color: #888;
    white-space: nowrap; }
  .cs-checkout__sidebar-button {
    width: 100%; }
    .cs-checkout__sidebar-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-checkout__sidebar-button, .cs-checkout__sidebar-button:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-checkout__sidebar-button:hover:not([disabled]), .cs-checkout__sidebar-button:focus:not([disabled]), .cs-checkout__sidebar-button:active:not([disabled]), .cs-checkout__sidebar-button:visited:hover:not([disabled]), .cs-checkout__sidebar-button:visited:focus:not([disabled]), .cs-checkout__sidebar-button:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-checkout__sidebar-button[disabled], .cs-checkout__sidebar-button:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    @media (min-width: 48em) {
      .cs-checkout__sidebar-button {
        min-width: 20rem; } }
    .cs-checkout__sidebar-button-span {
      font-size: 1.6rem; }
    .cs-checkout__sidebar-button-icon {
      max-width: 1em;
      max-height: 1.6rem;
      z-index: 2;
      height: auto;
      width: 100%;
      display: none; }
    @media (max-width: 47.99em) {
      .cs-checkout__sidebar-button {
        width: 100%; } }
  .cs-checkout__place-order {
    padding: 2rem 0;
    border-bottom: 2px solid #dcdcdc;
    width: 100%;
    box-sizing: border-box; }
    @media (max-width: 47.99em) {
      .modal-inner-wrap .cs-checkout__place-order {
        display: none; } }
    @media (min-width: 48em) {
      .cs-checkout__place-order {
        padding: 2rem; } }
    @media (max-width: 48em) {
      .cs-checkout__place-order {
        border: none; } }
    .cs-checkout__place-order-button {
      width: 100%; }
      .cs-checkout__place-order-button::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-checkout__place-order-button, .cs-checkout__place-order-button:visited {
        display: inline-block;
        font-size: 1.6rem;
        font-weight: 700;
        text-align: center;
        position: relative;
        line-height: 2.6rem;
        margin: 0;
        text-transform: none;
        white-space: nowrap;
        padding: 1rem 2.3rem;
        box-sizing: border-box;
        transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
        vertical-align: middle;
        z-index: 5;
        cursor: pointer;
        border-radius: 24px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #c1272f;
        color: #ffffff;
        background-color: #c1272f; }
        .cs-checkout__place-order-button:hover:not([disabled]), .cs-checkout__place-order-button:focus:not([disabled]), .cs-checkout__place-order-button:active:not([disabled]), .cs-checkout__place-order-button:visited:hover:not([disabled]), .cs-checkout__place-order-button:visited:focus:not([disabled]), .cs-checkout__place-order-button:visited:active:not([disabled]) {
          box-shadow: none;
          outline: none;
          text-decoration: none;
          border: 1px solid #a20109;
          color: #ffffff;
          background-color: #a20109; }
        .cs-checkout__place-order-button[disabled], .cs-checkout__place-order-button:visited[disabled] {
          cursor: auto;
          border: 1px solid #e5e5e5;
          color: #878787;
          background-color: #e5e5e5; }
      .cs-checkout__place-order-button-span {
        font-size: 1.6rem; }
      .cs-checkout__place-order-button-icon {
        max-width: 1em;
        max-height: 1.6rem;
        z-index: 2;
        height: auto;
        width: 100%;
        display: none; }
  .cs-checkout .fieldset .note {
    margin-top: 0;
    display: block;
    font-size: 0.85em;
    padding: 4px 0;
    color: #696969;
    margin-top: -1rem; }
  .cs-checkout .fieldset .label {
    margin-bottom: 0.5rem; }
  .cs-checkout .billing-address-form .choice.field {
    display: flex;
    flex-wrap: nowrap; }
  .cs-checkout .billing-address-form .label {
    margin-bottom: 0; }
  @media (min-width: 48em) {
    .cs-checkout .form-shipping-address .field[name*="postcode"] {
      width: 11.5rem;
      float: left; }
      .cs-checkout .form-shipping-address .field[name*="postcode"] .error,
      .cs-checkout .form-shipping-address .field[name*="postcode"] .warning {
        width: calc( ((100vw - (1.5rem * 2)) * (1 - 0.44)) - (2rem * 2) - 0.7rem);
        box-sizing: border-box;
        margin-top: 2.7rem;
        float: left; } }
  @media (min-width: 64em) {
    .cs-checkout .form-shipping-address .field[name*="postcode"] .error,
    .cs-checkout .form-shipping-address .field[name*="postcode"] .warning {
      width: calc( (93rem * (1 - 0.44)) - (2rem * 2)); } }
  @media (min-width: 48em) {
    .cs-checkout .form-shipping-address .field[name*="city"] {
      width: calc(100% - 11.5rem);
      padding-left: 1.5rem;
      display: inline-flex;
      box-sizing: border-box; } }
  .cs-checkout .form-shipping-address .field._success:not(._warn-missing-street-number) .control:after {
    display: block; }
  .cs-checkout .form-shipping-address .field[name="shippingAddress.custom_attributes.customer_type"] .control:after, .cs-checkout .form-shipping-address .field[name="shippingAddress.country_id"] .control:after, .cs-checkout .form-shipping-address .field[name="shippingAddress.prefix"] .control:after {
    display: none !important; }
  .cs-checkout .block {
    margin: 0; }
    .cs-checkout .block .title strong {
      margin: 0; }
  .cs-checkout .opc-wrapper {
    padding: 0;
    z-index: 2;
    width: 100%;
    float: none; }
    @media (min-width: 48em) {
      .cs-checkout .opc-wrapper {
        width: calc(100% - 44%); } }
    .cs-checkout .opc-wrapper .step-title,
    .cs-checkout .opc-wrapper .block-title {
      font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
      font-size: 2.4rem;
      line-height: 1.1;
      color: #333333;
      font-weight: 700;
      text-transform: none;
      margin: 1rem 0 2rem;
      text-transform: none;
      font-weight: 700;
      color: #212121;
      margin: 0;
      border-bottom: none;
      padding: 0 0 2rem; }
    .cs-checkout .opc-wrapper .action.continue {
      display: none; }
  .cs-checkout .opc {
    list-style: none inside none;
    width: 100%;
    padding-left: 0;
    margin-bottom: 0; }
  .cs-checkout .checkout-shipping-address {
    margin-bottom: 0; }
  .cs-checkout__sidebar,
  .cs-checkout__step-tabs .cs-tabs, .cs-checkout__shipping-method-wrapper, .cs-checkout__shipping-method,
  .cs-checkout .opc-estimated-wrapper, .cs-checkout__payments, .cs-checkout__after-payments,
  .cs-checkout #store-pickup,
  .cs-checkout #store-selector {
    margin: 0 0 3.5rem;
    background: #fff; }
    @media (min-width: 48em) {
      .cs-checkout__sidebar,
      .cs-checkout__step-tabs .cs-tabs, .cs-checkout__shipping-method-wrapper, .cs-checkout__shipping-method,
      .cs-checkout .opc-estimated-wrapper, .cs-checkout__payments, .cs-checkout__after-payments,
      .cs-checkout #store-pickup,
      .cs-checkout #store-selector {
        box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
        border-radius: 8px; } }
    @media (max-width: 48em) {
      .cs-checkout__sidebar,
      .cs-checkout__step-tabs .cs-tabs, .cs-checkout__shipping-method-wrapper, .cs-checkout__shipping-method,
      .cs-checkout .opc-estimated-wrapper, .cs-checkout__payments, .cs-checkout__after-payments,
      .cs-checkout #store-pickup,
      .cs-checkout #store-selector {
        padding: 2rem !important; } }
  .cs-checkout__guest-or-login {
    margin-bottom: 1.5rem;
    color: #696969; }
  @media (min-width: 48em) {
    .cs-checkout .modal-inner-wrap {
      background: #fff; } }
  @media (max-width: 47.99em) {
    .cs-checkout__shipping-method {
      margin-bottom: -1rem;
      padding: 2rem !important; } }
  .cs-checkout__shipping-method-wrapper, .cs-checkout__shipping-method, .cs-checkout__payments, .cs-checkout__after-payments,
  .cs-checkout #store-selector {
    padding: 2rem 0; }
    .cs-checkout__shipping-method-wrapper--hidden, .cs-checkout__shipping-method--hidden, .cs-checkout__payments--hidden, .cs-checkout__after-payments--hidden,
    .cs-checkout #store-selector--hidden {
      height: 0;
      margin: 0;
      padding: 0 !important;
      opacity: 0;
      overflow: hidden; }
    @media (min-width: 48em) {
      .cs-checkout__shipping-method-wrapper, .cs-checkout__shipping-method, .cs-checkout__payments, .cs-checkout__after-payments,
      .cs-checkout #store-selector {
        padding: 2rem; } }
  .cs-checkout__shipping-method-wrapper {
    padding: 2rem;
    box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28); }
  @media (max-width: 47.99em) {
    .cs-checkout__step-tabs ~ .cs-checkout__shipping-method-wrapper {
      padding-left: 0;
      padding-right: 0;
      box-shadow: none; } }
  .cs-checkout #store-selector {
    padding: 2rem; }
    @media (min-width: 48em) {
      .cs-checkout #store-selector {
        box-shadow: none; } }
  @media (max-width: 47.99em) {
    .cs-checkout__payments, .cs-checkout__after-payments {
      margin-bottom: 0; } }
  .cs-checkout__after-payments > .payment-option:nth-child(n + 2) {
    margin-top: 2rem; }
  .cs-checkout__sidebar {
    width: 100%;
    margin: 0; }
    @media (min-width: 48em) {
      .cs-checkout__sidebar {
        height: 100%;
        z-index: 2;
        width: calc(44% - 3.5rem);
        margin: 0 0 0 3.5rem;
        order: 2; } }
    @media (min-width: 48em) {
      .cs-checkout__sidebar .action-close {
        display: none; } }
  .cs-checkout__sidebar-inner .price-including-tax .cs-minicart-product__options-label {
    display: none; }
  .cs-checkout__sidebar-inner .price-excluding-tax .cs-minicart-product__options-label {
    display: none; }
  .cs-checkout__sidebar-bottom {
    display: flex;
    justify-content: flex-end;
    padding: 0; }
    @media (min-width: 48em) {
      .cs-checkout__sidebar-bottom {
        padding: 2rem; } }
  .cs-checkout .form-login .primary .action,
  .cs-checkout .block-authentication .primary .action {
    min-width: 15rem; }
    .cs-checkout .form-login .primary .action::-moz-focus-inner,
    .cs-checkout .block-authentication .primary .action::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-checkout .form-login .primary .action, .cs-checkout .form-login .primary .action:visited,
    .cs-checkout .block-authentication .primary .action,
    .cs-checkout .block-authentication .primary .action:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-checkout .form-login .primary .action:hover:not([disabled]), .cs-checkout .form-login .primary .action:focus:not([disabled]), .cs-checkout .form-login .primary .action:active:not([disabled]), .cs-checkout .form-login .primary .action:visited:hover:not([disabled]), .cs-checkout .form-login .primary .action:visited:focus:not([disabled]), .cs-checkout .form-login .primary .action:visited:active:not([disabled]),
      .cs-checkout .block-authentication .primary .action:hover:not([disabled]),
      .cs-checkout .block-authentication .primary .action:focus:not([disabled]),
      .cs-checkout .block-authentication .primary .action:active:not([disabled]),
      .cs-checkout .block-authentication .primary .action:visited:hover:not([disabled]),
      .cs-checkout .block-authentication .primary .action:visited:focus:not([disabled]),
      .cs-checkout .block-authentication .primary .action:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-checkout .form-login .primary .action[disabled], .cs-checkout .form-login .primary .action:visited[disabled],
      .cs-checkout .block-authentication .primary .action[disabled],
      .cs-checkout .block-authentication .primary .action:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    @media (max-width: 47.99em) {
      .cs-checkout .form-login .primary .action,
      .cs-checkout .block-authentication .primary .action {
        width: 100%; } }
    .cs-checkout .form-login .primary .action span,
    .cs-checkout .block-authentication .primary .action span {
      font-size: 1.6rem; }
  .cs-checkout .form-login .actions-toolbar,
  .cs-checkout .block-authentication .actions-toolbar {
    margin-top: 2rem; }
    .cs-checkout .form-login .actions-toolbar .secondary,
    .cs-checkout .block-authentication .actions-toolbar .secondary {
      margin-top: 0.5rem; }
  .cs-checkout .form-login .field,
  .cs-checkout .block-authentication .field {
    margin-bottom: 0.5rem; }
  .cs-checkout .form-login .block-title,
  .cs-checkout .block-authentication .block-title {
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 2.4rem;
    line-height: 1.1;
    color: #333333;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    text-transform: none;
    font-weight: 700;
    color: #212121;
    margin: 0 0 2rem;
    padding-bottom: 0; }
  .cs-checkout .action.remind,
  .cs-checkout .action-remind {
    margin-top: 0.3rem;
    font-size: 1.2rem; }
  .cs-checkout .form-login {
    margin: 0; }
  .cs-checkout .table-checkout-shipping-method {
    width: 100%; }
    .cs-checkout .table-checkout-shipping-method td {
      padding-top: 0.8rem;
      padding-bottom: 0.8rem;
      border-bottom: 1px solid #dcdcdc; }
      @media (max-width: 47.99em) {
        .cs-checkout .table-checkout-shipping-method td {
          padding-left: 0; } }
      .cs-checkout .table-checkout-shipping-method td.col-method {
        padding-left: 0; }
    .cs-checkout .table-checkout-shipping-method tr:last-child td {
      border-bottom: none; }
    .cs-checkout .table-checkout-shipping-method thead {
      display: block;
      border-bottom: none; }
      .cs-checkout .table-checkout-shipping-method thead th {
        display: none; }
    .cs-checkout .table-checkout-shipping-method .radio {
      display: inline-block;
      height: 1.9rem;
      width: 1.9rem;
      margin: -0.0625em calc(0.5em + 1px) 0 0;
      font-size: 1em;
      overflow: hidden;
      vertical-align: middle;
      -webkit-appearance: none;
         -moz-appearance: none;
              appearance: none;
      flex: 0 0 auto;
      cursor: pointer;
      border: 1px solid #d5d5d5;
      box-shadow: none;
      background-color: transparent;
      background-repeat: no-repeat;
      background-position: 50% 50%;
      background-size: 1em 1em;
      outline: 0;
      border-radius: 50%;
      transition: background-color 0.5s, border-color 0.5s; }
      .cs-checkout .table-checkout-shipping-method .radio::-moz-focus-inner, .cs-checkout .table-checkout-shipping-method .radio:-moz-focusring {
        color: transparent !important;
        text-shadow: 0 0 0 #000 !important; }
      .cs-checkout .table-checkout-shipping-method .radio:hover:not([disabled]), .cs-checkout .table-checkout-shipping-method .radio:focus:not([disabled]) {
        border: 1px solid #333333;
        box-shadow: none;
        background-color: transparent; }
      .cs-checkout .table-checkout-shipping-method .radio:checked {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
        background-size: cover; }
        .cs-checkout .table-checkout-shipping-method .radio:checked, .cs-checkout .table-checkout-shipping-method .radio:checked:hover, .cs-checkout .table-checkout-shipping-method .radio:checked:focus {
          border: 1px solid #333333;
          background-color: transparent;
          box-shadow: none; }
      .cs-checkout .table-checkout-shipping-method .radio[disabled],
      .cs-checkout .table-checkout-shipping-method .radio[disabled] + .label,
      .cs-checkout .table-checkout-shipping-method .radio[disabled] + .cs-input__label {
        opacity: 1; }
  .cs-checkout .ship-to,
  .cs-checkout .ship-via {
    border-top: 1px solid #dcdcdc; }
  .cs-checkout .ship-to {
    padding-bottom: 2rem; }
  .cs-checkout .shipping-information {
    padding: 0 0 2rem; }
  .cs-checkout .shipping-information-content {
    padding: 0 2rem; }
  .cs-checkout .field-tooltip-content {
    margin-top: 0 !important; }
  .cs-checkout .shipping-information-title {
    display: flex;
    justify-content: space-between;
    font-weight: 600;
    padding: 2rem 2rem 0; }
    .cs-checkout .shipping-information-title button.action.action-edit {
      cursor: pointer; }
  @media (min-width: 30em) {
    .cs-checkout .methods-shipping .actions-toolbar {
      max-width: calc(50% - 2rem); } }
  @media (min-width: 48em) {
    .cs-checkout .methods-shipping .actions-toolbar {
      width: calc(50% - 2rem); } }
  .cs-checkout .action-show-popup::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-checkout .action-show-popup, .cs-checkout .action-show-popup:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-checkout .action-show-popup:hover:not([disabled]), .cs-checkout .action-show-popup:focus:not([disabled]), .cs-checkout .action-show-popup:active:not([disabled]), .cs-checkout .action-show-popup:visited:hover:not([disabled]), .cs-checkout .action-show-popup:visited:focus:not([disabled]), .cs-checkout .action-show-popup:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    .cs-checkout .action-show-popup[disabled], .cs-checkout .action-show-popup:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  .cs-checkout #dhl-packstation.selected-packstation ~ #shipping {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-checkout .shipping-address-items {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-checkout .shipping-address-items {
    flex-direction: column; } }
    .cs-checkout .shipping-address-items .edit-address-link,
    .cs-checkout .shipping-address-items .action-select-shipping-item {
      margin-top: 1rem !important; }
      .cs-checkout .shipping-address-items .edit-address-link::-moz-focus-inner,
      .cs-checkout .shipping-address-items .action-select-shipping-item::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-checkout .shipping-address-items .edit-address-link, .cs-checkout .shipping-address-items .edit-address-link:visited,
      .cs-checkout .shipping-address-items .action-select-shipping-item,
      .cs-checkout .shipping-address-items .action-select-shipping-item:visited {
        display: inline-block;
        font-size: 1.6rem;
        font-weight: 700;
        text-align: center;
        position: relative;
        line-height: 2.6rem;
        margin: 0;
        text-transform: none;
        white-space: nowrap;
        padding: 1rem 2.3rem;
        box-sizing: border-box;
        transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
        vertical-align: middle;
        z-index: 5;
        cursor: pointer;
        border-radius: 24px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #333333;
        color: #333333;
        background-color: #fff; }
        .cs-checkout .shipping-address-items .edit-address-link:hover:not([disabled]), .cs-checkout .shipping-address-items .edit-address-link:focus:not([disabled]), .cs-checkout .shipping-address-items .edit-address-link:active:not([disabled]), .cs-checkout .shipping-address-items .edit-address-link:visited:hover:not([disabled]), .cs-checkout .shipping-address-items .edit-address-link:visited:focus:not([disabled]), .cs-checkout .shipping-address-items .edit-address-link:visited:active:not([disabled]),
        .cs-checkout .shipping-address-items .action-select-shipping-item:hover:not([disabled]),
        .cs-checkout .shipping-address-items .action-select-shipping-item:focus:not([disabled]),
        .cs-checkout .shipping-address-items .action-select-shipping-item:active:not([disabled]),
        .cs-checkout .shipping-address-items .action-select-shipping-item:visited:hover:not([disabled]),
        .cs-checkout .shipping-address-items .action-select-shipping-item:visited:focus:not([disabled]),
        .cs-checkout .shipping-address-items .action-select-shipping-item:visited:active:not([disabled]) {
          box-shadow: none;
          outline: none;
          text-decoration: none;
          border: 1px solid #c1272f;
          color: #c1272f;
          background-color: #fff; }
        .cs-checkout .shipping-address-items .edit-address-link[disabled], .cs-checkout .shipping-address-items .edit-address-link:visited[disabled],
        .cs-checkout .shipping-address-items .action-select-shipping-item[disabled],
        .cs-checkout .shipping-address-items .action-select-shipping-item:visited[disabled] {
          cursor: auto;
          border: 1px solid #e5e5e5;
          color: #878787;
          background-color: #f7f7f7; }
      .cs-checkout .shipping-address-items .edit-address-link span,
      .cs-checkout .shipping-address-items .action-select-shipping-item span {
        font-size: 1.6rem; }
  .cs-checkout .shipping-address-item {
    font-size: 1.6rem;
    border: 1px solid #dcdcdc;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 1.5rem;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between; }
    @media (min-width: 64em) {
      .cs-checkout .shipping-address-item {
        width: calc(50% - (2rem / 2));
        margin: 0 0 2rem; } }
    .cs-checkout .shipping-address-item.selected-item {
      border-color: #c1272f; }
    .cs-checkout .shipping-address-item a {
      font-size: 1.6rem; }
    .cs-checkout .shipping-address-item__address-action {
      margin-top: 0.5rem; }
  .cs-checkout .estimated-block {
    display: none; }
  .cs-checkout .opc-estimated-wrapper {
    padding: 0 0 2rem;
    z-index: 2;
    width: 100%;
    margin: 0; }
    @media (min-width: 48em) {
      .cs-checkout .opc-estimated-wrapper {
        display: none;
        padding: 2rem 0; } }
    .cs-checkout .opc-estimated-wrapper .action.showcart::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-checkout .opc-estimated-wrapper .action.showcart, .cs-checkout .opc-estimated-wrapper .action.showcart:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      .cs-checkout .opc-estimated-wrapper .action.showcart:hover:not([disabled]), .cs-checkout .opc-estimated-wrapper .action.showcart:focus:not([disabled]), .cs-checkout .opc-estimated-wrapper .action.showcart:active:not([disabled]), .cs-checkout .opc-estimated-wrapper .action.showcart:visited:hover:not([disabled]), .cs-checkout .opc-estimated-wrapper .action.showcart:visited:focus:not([disabled]), .cs-checkout .opc-estimated-wrapper .action.showcart:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      .cs-checkout .opc-estimated-wrapper .action.showcart[disabled], .cs-checkout .opc-estimated-wrapper .action.showcart:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    .cs-checkout .opc-estimated-wrapper .action.showcart span:first-child {
      font-size: 1.6rem; }
    .cs-checkout .opc-estimated-wrapper .action.showcart:hover .counter {
      background-color: #fff; }
    .cs-checkout .opc-estimated-wrapper .action.showcart:hover .counter-number {
      color: #324dcf; }
    .cs-checkout .opc-estimated-wrapper .action.showcart .counter-number {
      color: #fff; }
    .cs-checkout .opc-estimated-wrapper .counter {
      display: inline-flex;
      background-color: #324dcf;
      color: #fff;
      border: 0;
      border-radius: 0.2rem;
      padding: 0 0.6rem;
      position: relative;
      justify-content: center;
      align-items: center;
      font-size: 1rem;
      line-height: 100%;
      font-weight: 700;
      height: 1.8em;
      background-clip: padding-box;
      background-color: #c1272f;
      transition: background-color 0.5s, fill 0.5s, color 0.5s;
      margin-left: 0.5rem;
      margin-bottom: -0.15em;
      top: -0.15em; }
    .cs-checkout .opc-estimated-wrapper .counter-number {
      min-width: 1ch; }
    .cs-checkout .opc-estimated-wrapper .minicart-wrapper,
    .cs-checkout .opc-estimated-wrapper .minicart-wrapper .showcart {
      width: 100%; }
  .cs-checkout .field-select-billing label {
    display: none; }
  .cs-checkout .billing-address-same-as-shipping-block {
    margin-bottom: 1rem;
    flex-wrap: nowrap; }
    .cs-checkout .billing-address-same-as-shipping-block label span {
      display: inline-block;
      white-space: normal;
      font-weight: 600;
      font-size: 1.6rem;
      padding-left: 1.2rem; }
    .cs-checkout .billing-address-same-as-shipping-block input {
      display: inline-block;
      height: 1.9rem;
      width: 1.9rem;
      margin: -0.0625em calc(0.5em + 1px) 0 0;
      font-size: 1em;
      overflow: hidden;
      vertical-align: middle;
      -webkit-appearance: none;
         -moz-appearance: none;
              appearance: none;
      flex: 0 0 auto;
      cursor: pointer;
      border: 1px solid #d5d5d5;
      box-shadow: none;
      background-color: transparent;
      background-repeat: no-repeat;
      background-position: 50% 50%;
      background-size: 1em 1em;
      outline: 0;
      border-radius: 50%;
      transition: background-color 0.5s, border-color 0.5s;
      border-radius: 0;
      background-size: 1em 1em;
      background-color: #ffffff;
      margin: 0.2rem 0.3rem 0.3rem 0; }
      .cs-checkout .billing-address-same-as-shipping-block input::-moz-focus-inner, .cs-checkout .billing-address-same-as-shipping-block input:-moz-focusring {
        color: transparent !important;
        text-shadow: 0 0 0 #000 !important; }
      .cs-checkout .billing-address-same-as-shipping-block input:hover:not([disabled]), .cs-checkout .billing-address-same-as-shipping-block input:focus:not([disabled]) {
        border: 1px solid #333333;
        box-shadow: none;
        background-color: transparent; }
      .cs-checkout .billing-address-same-as-shipping-block input:checked {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%23333333' r='4' cy='7' cx='7'/%3e%3c/svg%3e");
        background-size: cover; }
        .cs-checkout .billing-address-same-as-shipping-block input:checked, .cs-checkout .billing-address-same-as-shipping-block input:checked:hover, .cs-checkout .billing-address-same-as-shipping-block input:checked:focus {
          border: 1px solid #333333;
          background-color: transparent;
          box-shadow: none; }
      .cs-checkout .billing-address-same-as-shipping-block input[disabled],
      .cs-checkout .billing-address-same-as-shipping-block input[disabled] + .label,
      .cs-checkout .billing-address-same-as-shipping-block input[disabled] + .cs-input__label {
        opacity: 1; }
      .cs-checkout .billing-address-same-as-shipping-block input:checked {
        background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%23333333' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
  .cs-checkout .billing-address-details .action-edit-address {
    font-size: 1.4rem;
    margin: 1.6rem 0; }
    .cs-checkout .billing-address-details .action-edit-address::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-checkout .billing-address-details .action-edit-address, .cs-checkout .billing-address-details .action-edit-address:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none; }
      .cs-checkout .billing-address-details .action-edit-address:hover:not([disabled]), .cs-checkout .billing-address-details .action-edit-address:focus:not([disabled]), .cs-checkout .billing-address-details .action-edit-address:active:not([disabled]), .cs-checkout .billing-address-details .action-edit-address:visited:hover:not([disabled]), .cs-checkout .billing-address-details .action-edit-address:visited:focus:not([disabled]), .cs-checkout .billing-address-details .action-edit-address:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none; }
      .cs-checkout .billing-address-details .action-edit-address[disabled], .cs-checkout .billing-address-details .action-edit-address:visited[disabled] {
        cursor: auto; }
  .cs-checkout .checkout-billing-address .actions-toolbar .primary {
    margin-top: 2rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-checkout .checkout-billing-address .actions-toolbar .primary {
        flex-wrap: nowrap; } }
  @media (min-width: 48em) {
    .cs-checkout .checkout-billing-address button.action.action-update {
      order: 2; } }
  .cs-checkout .payment__method {
    width: 100%;
    margin-top: 2rem; }
    .cs-checkout .payment__method .method__list {
      display: flex;
      flex-wrap: wrap; }
  .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake form {
    justify-content: flex-start; }
    .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake form > p {
      width: 100% !important;
      max-width: 100% !important;
      flex: 100% 1 !important; }
      .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake form > p:nth-child(3) {
        max-width: 45%; }
      .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake form > p:nth-child(4) {
        margin-inline: 0; }
    .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake form > form label {
      flex: 0 0 140px; }
    .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake form > button {
      display: none; }
  .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake .przelewy24-pay-with-card-wrapper {
    position: static; }
    .cs-checkout .payment-method-przelewy24_card._active .P24FormContainer-fake .przelewy24-pay-with-card-wrapper .przelewy24-pay-with-card {
      position: static;
      transform: none;
      width: 28rem;
      max-width: 100%;
      padding: 0.8rem 2rem;
      font-weight: 500;
      margin: 2rem 0;
      font-size: 1.6rem;
      border-radius: 27px;
      transition: 0.3s all;
      color: #ffffff;
      border: 1px solid #c1272f;
      background-color: #c1272f; }
  .cs-checkout .payment-method-przelewy24__agreement {
    gap: 1rem; }
    .cs-checkout .payment-method-przelewy24__agreement input {
      flex: 0 1; }
      .cs-checkout .payment-method-przelewy24__agreement input[type="checkbox"] {
        display: inline-block;
        width: 1.9rem;
        height: 1.9rem;
        min-width: 1.9rem;
        min-height: 1.9rem;
        font-size: 1em;
        flex: 0 0 auto; }
    .cs-checkout .payment-method-przelewy24__agreement label {
      flex: 5 1; }
    .cs-checkout .payment-method-przelewy24__agreement .mage-error {
      width: 100%; }
  .cs-checkout .actions-toolbar {
    padding-bottom: 2rem; }
    .cs-checkout .actions-toolbar button.primary {
      width: 28rem;
      max-width: 100%;
      padding: 0.8rem 2rem;
      font-weight: 500;
      margin: 0;
      font-size: 1.6rem;
      border-radius: 27px;
      transition: 0.3s all;
      color: #ffffff;
      border: 1px solid #c1272f;
      background-color: #c1272f;
      cursor: pointer; }
      .cs-checkout .actions-toolbar button.primary:hover {
        background-color: #a20109; }
  .cs-checkout .action-edit-address::-moz-focus-inner,
  .cs-checkout .action-update::-moz-focus-inner,
  .cs-checkout .action-cancel::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-checkout .action-edit-address, .cs-checkout .action-edit-address:visited,
  .cs-checkout .action-update,
  .cs-checkout .action-update:visited,
  .cs-checkout .action-cancel,
  .cs-checkout .action-cancel:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-checkout .action-edit-address:hover:not([disabled]), .cs-checkout .action-edit-address:focus:not([disabled]), .cs-checkout .action-edit-address:active:not([disabled]), .cs-checkout .action-edit-address:visited:hover:not([disabled]), .cs-checkout .action-edit-address:visited:focus:not([disabled]), .cs-checkout .action-edit-address:visited:active:not([disabled]),
    .cs-checkout .action-update:hover:not([disabled]),
    .cs-checkout .action-update:focus:not([disabled]),
    .cs-checkout .action-update:active:not([disabled]),
    .cs-checkout .action-update:visited:hover:not([disabled]),
    .cs-checkout .action-update:visited:focus:not([disabled]),
    .cs-checkout .action-update:visited:active:not([disabled]),
    .cs-checkout .action-cancel:hover:not([disabled]),
    .cs-checkout .action-cancel:focus:not([disabled]),
    .cs-checkout .action-cancel:active:not([disabled]),
    .cs-checkout .action-cancel:visited:hover:not([disabled]),
    .cs-checkout .action-cancel:visited:focus:not([disabled]),
    .cs-checkout .action-cancel:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-checkout .action-edit-address[disabled], .cs-checkout .action-edit-address:visited[disabled],
    .cs-checkout .action-update[disabled],
    .cs-checkout .action-update:visited[disabled],
    .cs-checkout .action-cancel[disabled],
    .cs-checkout .action-cancel:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  @media (max-width: 47.99em) {
    .cs-checkout .action-edit-address,
    .cs-checkout .action-update,
    .cs-checkout .action-cancel {
      width: 100%;
      margin-bottom: 2rem; } }
  @media (max-width: 47.99em) {
    .cs-checkout .action-cancel {
      margin-bottom: 0; } }
  .cs-checkout .action-edit-address {
    margin-top: 2rem; }
  .cs-checkout .payment.ccard {
    margin-top: 2rem; }
  .cs-checkout__agreements {
    font-size: 1.2rem; }
    @media (max-width: 47.99em) {
      .modal-inner-wrap .cs-checkout__agreements {
        display: none; } }
    .cs-checkout__agreements .checkout-agreements {
      padding: 2rem 0 0;
      border-top: 2px solid #dcdcdc; }
      @media (min-width: 48em) {
        .cs-checkout__agreements .checkout-agreements {
          padding: 2rem 2rem 0; } }
    .modal._show .cs-checkout__agreements {
      display: none; }
    .cs-checkout__agreements a:hover, .cs-checkout__agreements a:active, .cs-checkout__agreements a:focus {
      text-decoration: underline; }
  .cs-checkout .opc-block-summary {
    padding: 0; }
    @media (max-width: 47.99em) {
      .cs-checkout .opc-block-summary .action.checkout,
      .cs-checkout .opc-block-summary .items-in-cart,
      .cs-checkout .opc-block-summary .title {
        display: none; } }
    .cs-checkout .opc-block-summary .title {
      display: flex;
      justify-content: space-between;
      text-transform: none;
      padding: 2rem;
      margin: 0;
      border-bottom: none; }
    .cs-checkout .opc-block-summary > .title {
      font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
      font-size: 2.4rem;
      line-height: 1.1;
      color: #333333;
      font-weight: 700;
      text-transform: none;
      margin: 1rem 0 2rem;
      text-transform: none;
      font-weight: 700;
      color: #212121;
      padding-bottom: 0;
      padding-top: 0;
      margin: 0; }
      @media (max-width: 47.99em) {
        .cs-checkout .opc-block-summary > .title {
          display: none; } }
    .cs-checkout .opc-block-summary .discount .title {
      padding: 0; }
    .cs-checkout .opc-block-summary .discount.coupon {
      display: none; }
    .cs-checkout .opc-block-summary .aw-giftcard-totals .title {
      padding: 0 0 0 2rem; }
  .cs-checkout .items-in-cart {
    position: relative; }
    .cs-checkout .items-in-cart .actions-toolbar {
      position: absolute;
      top: calc(2rem - 2px);
      right: 2rem; }
    @media (min-width: 48em) {
      .cs-checkout .items-in-cart .title strong {
        padding-right: 10rem; } }
  .cs-checkout .minicart-items-wrapper {
    margin: 0;
    max-height: none;
    padding: 0;
    border: 0; }
  @media (max-width: 47.99em) {
    .cs-checkout .table-totals .table-caption {
      clip: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      padding: 0;
      position: static;
      width: auto;
      white-space: normal;
      font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
      font-size: 2.4rem;
      line-height: 1.1;
      color: #333333;
      font-weight: 700;
      text-transform: none;
      margin: 1rem 0 2rem;
      text-transform: none;
      font-weight: 700;
      color: #212121;
      text-align: left;
      overflow: hidden; } }
  .cs-checkout .table-totals td,
  .cs-checkout .table-totals th {
    font-weight: 400;
    font-size: 1.6rem;
    padding: 0.8rem 0; }
    @media (min-width: 48em) {
      .cs-checkout .table-totals td,
      .cs-checkout .table-totals th {
        padding: 0.8rem 2rem; } }
  .cs-checkout .table-totals .amount {
    text-align: right;
    border-bottom: none; }
  .cs-checkout .table-totals .grand th,
  .cs-checkout .table-totals .grand td {
    font-size: 1.5rem; }
  .cs-checkout .action-edit,
  .cs-checkout .action.viewcart {
    background: transparent;
    border: none;
    color: #c1272f;
    font-weight: 400;
    text-transform: capitalize;
    background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/edit_colored.svg");
    background-repeat: no-repeat;
    background-position: 99% center;
    background-size: 1.7rem;
    padding-right: 2.5rem;
    font-size: 1.6rem;
    display: inline-block; }
    .cs-checkout .action-edit:hover,
    .cs-checkout .action.viewcart:hover {
      text-decoration: underline; }
    .cs-checkout .action-edit span,
    .cs-checkout .action.viewcart span {
      font-family: "Poppins"; }
  .cs-checkout .action.delete,
  .cs-checkout .totals.giftcard .action {
    font-size: 0;
    width: 1rem;
    height: 1rem;
    background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/close.svg");
    background-size: contain;
    display: inline-block;
    transform: translateY(-1rem); }
  .cs-checkout .reward-points-buttons-container button span span {
    display: inline; }
  .cs-checkout .minicart-items {
    list-style: none inside none;
    padding: 0;
    margin: 0;
    box-sizing: border-box; }
    .cs-checkout .minicart-items .product-item {
      padding: 1rem 2rem;
      margin: 0;
      border-top: 1px solid #dcdcdc; }
    .cs-checkout .minicart-items .product {
      display: flex; }
    .cs-checkout .minicart-items .product-image-container {
      flex-shrink: 0;
      margin-right: 1rem; }
    .cs-checkout .minicart-items .product-image-wrapper {
      height: 100%; }
    .cs-checkout .minicart-items .product-item-details {
      width: 100%; }
    .cs-checkout .minicart-items .product-item-inner {
      margin: 0;
      display: block; }
    .cs-checkout .minicart-items .price {
      font-weight: 600;
      font-size: 1.6rem; }
    .cs-checkout .minicart-items .item-name-block {
      margin: 0; }
    .cs-checkout .minicart-items .product-item-name-block {
      margin: 0;
      text-align: left;
      width: 100%;
      display: block; }
    .cs-checkout .minicart-items .product-item-name {
      width: 100%;
      font-size: 1.5rem;
      font-weight: 600;
      text-decoration: none;
      margin-bottom: 1.5rem; }
    .cs-checkout .minicart-items .details-qty {
      width: 100%;
      display: block;
      display: flex;
      justify-content: space-between;
      font-size: 1.2rem; }
      .cs-checkout .minicart-items .details-qty .label {
        font-size: 1.2rem;
        text-transform: uppercase;
        font-weight: 600; }
    .cs-checkout .minicart-items .subtotal {
      width: 100%;
      display: flex;
      justify-content: space-between;
      margin-top: 0.3rem; }
      .cs-checkout .minicart-items .subtotal .price-including-tax {
        display: flex;
        flex-direction: column;
        justify-content: space-between; }
      .cs-checkout .minicart-items .subtotal .price-excluding-tax {
        display: flex;
        flex-direction: column; }
        .cs-checkout .minicart-items .subtotal .price-excluding-tax .cart-price {
          margin-top: -1px; }
      .cs-checkout .minicart-items .subtotal > span {
        width: 100%; }
  .cs-checkout .modal-custom .modal-inner-wrap {
    box-shadow: none;
    border-radius: 8px; }
    @media (max-width: 47.99em) {
      .cs-checkout .modal-custom .modal-inner-wrap .title {
        display: block;
        padding-bottom: 2rem; } }
    @media (max-width: 47.99em) {
      .cs-checkout .modal-custom .modal-inner-wrap .table-totals {
        display: none; } }
    @media (max-width: 47.99em) {
      .cs-checkout .modal-custom .modal-inner-wrap .items-in-cart {
        display: block; } }
    .cs-checkout .modal-custom .modal-inner-wrap .items-in-cart .title strong {
      font-size: 1.4rem; }
    @media (max-width: 47.99em) {
      .cs-checkout .modal-custom .modal-inner-wrap .items-in-cart .title {
        padding-top: 2rem; } }
  .cs-checkout .payments .legend,
  .cs-checkout .payments .fieldset > hr {
    display: none; }
  .cs-checkout #recaptcha-checkout-place-order-wrapper .field {
    margin-bottom: 0; }
  .cs-checkout .payment-method .action.checkout {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-checkout .payment-method .payment-method-title {
    border-top: 1px solid #dcdcdc;
    cursor: pointer;
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    align-items: center; }
    @media (min-width: 64em) {
      .cs-checkout .payment-method .payment-method-title {
        margin: 0; } }
    .cs-checkout .payment-method .payment-method-title input {
      margin-top: 1px; }
    .cs-checkout .payment-method .payment-method-title .label {
      font-size: 1.5rem;
      font-weight: 400;
      padding: 1.5rem 1.5rem 1.5rem 0;
      margin: 0;
      background-position: right center;
      background-size: 4rem 2.5rem;
      background-repeat: no-repeat;
      width: 100%; }
      .cs-checkout .payment-method .payment-method-title .label img {
        display: none; }
      .cs-checkout .payment-method .payment-method-title .label[for="banktransfer"], .cs-checkout .payment-method .payment-method-title .label[for="payone_advance_payment"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/bank_transfer.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="barzhalen"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-barzhalen.png"); }
      .cs-checkout .payment-method .payment-method-title .label[for="billsafe"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-billsafe.png"); }
      .cs-checkout .payment-method .payment-method-title .label[for="creditcard"], .cs-checkout .payment-method .payment-method-title .label[for="payone_creditcard"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/creditcard.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="cashondelivery"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/on_delivery.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="checkmo"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/money_order.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="giropay"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/giropay.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="ideal"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-ideal.jpg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="payone_obt_ideal"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payone_obt_ideal.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="invoice"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/invoice.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="eps"], .cs-checkout .payment-method .payment-method-title .label[for="payone_obt_eps"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-eps.jpg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="lastschrift"], .cs-checkout .payment-method .payment-method-title .label[for="payone_debit"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/lastschrift.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="payone_invoice"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/invoice.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="payone_creditcard"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/creditcard.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="paydirekt"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/paydirekt.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="payolution"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-payolution.png"); }
      .cs-checkout .payment-method .payment-method-title .label[for="payenginecw_creditcard"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/creditcard.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for*="paypal"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/paypal.svg");
        background-size: auto 1.5rem; }
      .cs-checkout .payment-method .payment-method-title .label[for="payenginecw_postfinancecard"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-postfinance-card.png");
        background-size: auto 1.7rem; }
      .cs-checkout .payment-method .payment-method-title .label[for="postfinance"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-postfinance.jpg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="postfinance-card"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-postfinance-card.png"); }
      .cs-checkout .payment-method .payment-method-title .label[for="przelewy24"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-przelewy24.png"); }
      .cs-checkout .payment-method .payment-method-title .label[for="paypal-agreement"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/payment-logo-paypal-agreement.png"); }
      .cs-checkout .payment-method .payment-method-title .label[for="purchaseorder"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/purchase_order.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="payone_obt_sofortueberweisung"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/klarna_background_logo.svg"); }
      .cs-checkout .payment-method .payment-method-title .label[for="twintcw_twint"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/twint.svg");
        background-size: 4.5rem 3rem; }
      .cs-checkout .payment-method .payment-method-title .label[for*="klarna"] {
        background-image: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/payment-logos/klarna_background_logo.svg"); }
  .cs-checkout .payment-method .payment-method-billing-address {
    margin-right: 2rem; }
    @media (min-width: 48em) {
      .cs-checkout .payment-method .payment-method-billing-address {
        margin-right: 0; } }
  .cs-checkout .payment-method:not(:last-child) .payment-method-billing-address {
    padding-bottom: 2rem; }
  .cs-checkout .payment-method .billing-address-details {
    padding: 0 0 0 3rem;
    line-height: 1.6;
    font-weight: 300; }
  .cs-checkout .payment-method .checkout-agreements-block {
    display: none; }
  .cs-checkout .payment-method .payment-method-content {
    line-height: 150%;
    display: none;
    padding: 0 0 0 2rem; }
    .cs-checkout .payment-method .payment-method-content .payolution_overlay {
      width: 100%;
      position: relative;
      box-sizing: border-box;
      padding-left: 0; }
  .cs-checkout .payment-method._active .payment-method-content {
    display: block; }
  .cs-checkout .payment-method img {
    max-width: 10rem;
    height: auto; }
  .cs-checkout .payment-method p {
    margin-bottom: 0; }
    .cs-checkout .payment-method p:not(:empty) {
      margin-top: 2rem; }
  .cs-checkout .payment-method .number {
    width: 23rem;
    margin: 2rem 0 2rem; }
  .cs-checkout .opc-payment-additional + .opc-payment-additional {
    margin-top: 2rem; }
  .cs-checkout .opc-payment-additional:not(.rewardpoints) .payment-option-title {
    display: inline-block;
    width: auto;
    padding-right: 2.5rem;
    position: relative; }
    .cs-checkout .opc-payment-additional:not(.rewardpoints) .payment-option-title:before, .cs-checkout .opc-payment-additional:not(.rewardpoints) .payment-option-title:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 1px;
      left: auto;
      background-color: #888;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden; }
    .cs-checkout .opc-payment-additional:not(.rewardpoints) .payment-option-title:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 0.5rem; }
    .cs-checkout .opc-payment-additional:not(.rewardpoints) .payment-option-title:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 0; }
    .cs-checkout .opc-payment-additional:not(.rewardpoints) .payment-option-title[aria-expanded="true"]:before {
      transform: rotate(-45deg); }
    .cs-checkout .opc-payment-additional:not(.rewardpoints) .payment-option-title[aria-expanded="true"]:after {
      transform: rotate(45deg); }
  .cs-checkout .opc-payment-additional:not(.rewardpoints) .action-toggle {
    font-size: 1.6rem;
    line-height: 1; }
  .cs-checkout .payment-option-content {
    margin-top: 2rem; }
  .cs-checkout .aw-giftcard-code {
    margin-top: 2rem; }
  .cs-checkout .opc-payment-additional.rewardpoints {
    padding-top: 1rem; }
    .cs-checkout .opc-payment-additional.rewardpoints .payment-option-title {
      font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
      font-size: 2.4rem;
      line-height: 1.1;
      color: #333333;
      font-weight: 700;
      text-transform: none;
      margin: 1rem 0 2rem; }
    .cs-checkout .opc-payment-additional.rewardpoints .payment-option-content {
      margin-top: 0; }
    .cs-checkout .opc-payment-additional.rewardpoints .payment-option-inner {
      width: 100%; }

.customweb-payenginecw-payment-form .label {
  float: none !important;
  width: 100% !important;
  text-align: left !important; }

.customweb-payenginecw-payment-form .control:not(.select-field) {
  float: none !important;
  width: 100% !important; }

.paypal.checkout {
  text-align: center; }
  .paypal.checkout.after:before, .paypal.checkout.before:before {
    content: attr(data-label);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 1rem 0.5rem 0.2rem; }
  .paypal.checkout input:focus {
    outline: none;
    box-shadow: none; }

.paypal-review .items-qty {
  margin: 0;
  padding: 0;
  list-style: none none; }
  .paypal-review .items-qty > li {
    margin: 0; }
  .paypal-review .items-qty .item {
    white-space: nowrap; }
  @media (min-width: 48em) {
    .paypal-review .items-qty .title {
      border-bottom: 1px solid #dcdcdc; } }
  .paypal-review .items-qty .title:after {
    content: ": "; }
  @media (min-width: 48em) {
    .paypal-review .items-qty .block-content .box-order-shipping-address,
    .paypal-review .items-qty .block-content .box-order-shipping-method,
    .paypal-review .items-qty .block-content .box-order-shipping-method + .box-order-billing-address {
      box-sizing: border-box;
      float: left;
      width: 33%; } }
  @media (min-width: 48em) {
    .paypal-review .items-qty .block-content .box-order-shipping-address {
      padding: 0 5%;
      width: 34%; } }
  @media (min-width: 48em) {
    .paypal-review .items-qty .col.subtotal,
    .paypal-review .items-qty .mark,
    .paypal-review .items-qty .amount {
      text-align: right; } }

.paypal-review .actions-toolbar {
  margin-top: 1rem; }

.paypal-review .item-options dt {
  display: inline-block; }
  .paypal-review .item-options dt:after {
    content: ": "; }

.paypal-review .item-options dd {
  margin: 0; }

.paypal-review .primary button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.paypal-review .primary button, .paypal-review .primary button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .paypal-review .primary button:hover:not([disabled]), .paypal-review .primary button:focus:not([disabled]), .paypal-review .primary button:active:not([disabled]), .paypal-review .primary button:visited:hover:not([disabled]), .paypal-review .primary button:visited:focus:not([disabled]), .paypal-review .primary button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .paypal-review .primary button[disabled], .paypal-review .primary button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.paypal-review .primary button span {
  font-size: 1.6rem; }

.paypal-review .secondary button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.paypal-review .secondary button, .paypal-review .secondary button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #333333;
  color: #333333;
  background-color: #fff; }
  .paypal-review .secondary button:hover:not([disabled]), .paypal-review .secondary button:focus:not([disabled]), .paypal-review .secondary button:active:not([disabled]), .paypal-review .secondary button:visited:hover:not([disabled]), .paypal-review .secondary button:visited:focus:not([disabled]), .paypal-review .secondary button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #c1272f;
    color: #c1272f;
    background-color: #fff; }
  .paypal-review .secondary button[disabled], .paypal-review .secondary button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #f7f7f7; }

.paypal-review .secondary button span {
  font-size: 1.6rem; }

.paypal-review-discount {
  border-bottom: 1px solid 1px solid #dcdcdc;
  margin: 2rem 0; }
  .paypal-review-discount .block {
    margin-bottom: 0; }
    .paypal-review-discount .block > .title {
      border-top: 1px solid 1px solid #dcdcdc;
      cursor: pointer;
      font-weight: 700;
      display: block;
      text-decoration: none;
      margin-bottom: 0;
      overflow: hidden;
      padding: 0.7rem 3rem 0.7rem 0.5rem;
      position: relative; }
    .paypal-review-discount .block > .content {
      display: block; }
    .paypal-review-discount .block .fieldset {
      padding: 1rem 0 2rem; }

.amazon-widget {
  width: 100%;
  max-width: 100%;
  height: 25rem;
  margin-top: 0;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.27);
  margin-bottom: 2rem; }
  .amazon-widget iframe {
    border: none !important; }

.amazon-payment-method .payment-method-content,
.amazon-payment-method .payment-method-title {
  padding: 0;
  margin-top: 0; }

/* stylelint-disable no-descending-specificity */
#store-selector {
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28); }
  #store-selector .form-login {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0; }
  #store-selector .form-continue {
    margin: 2rem 0 0; }
  #store-selector .step-title {
    padding: 0 0 1rem; }
    .form-login ~ #store-selector .step-title {
      padding-top: 2rem; }
  #store-selector .location-name {
    margin: 0;
    font-size: 1em !important; }
  #store-selector .secondary .button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  #store-selector .secondary .button, #store-selector .secondary .button:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    #store-selector .secondary .button:hover:not([disabled]), #store-selector .secondary .button:focus:not([disabled]), #store-selector .secondary .button:active:not([disabled]), #store-selector .secondary .button:visited:hover:not([disabled]), #store-selector .secondary .button:visited:focus:not([disabled]), #store-selector .secondary .button:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    #store-selector .secondary .button[disabled], #store-selector .secondary .button:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  @media (max-width: 47.99em) {
    #store-selector .secondary .button {
      width: 100%; } }
  #store-selector .secondary .button span {
    font-size: 1.6rem; }

@media (max-width: 29.99em) {
  .store-selector-popup .modal-content {
    padding-left: 2rem;
    padding-right: 2rem; } }

.store-selector-popup .modal-title {
  border-bottom: 0; }

.store-selector-popup .modal-header {
  padding-bottom: 0; }

#opc-store-selector-popup {
  display: none; }
  #opc-store-selector-popup .block-search {
    float: none;
    width: 100%;
    margin: 0 0 20px;
    padding: 0 0 10px;
    border-bottom: 1px solid 1px solid #dcdcdc; }
  #opc-store-selector-popup .action-close {
    background-size: 1.5rem; }
  #opc-store-selector-popup .store-selector-search {
    position: relative;
    margin: 0 0 1.5rem;
    padding: 0 0 1.5rem;
    border-bottom: 1px solid #dcdcdc;
    overflow: hidden; }
    #opc-store-selector-popup .store-selector-search .label:before {
      display: none; }
    #opc-store-selector-popup .store-selector-search .control {
      margin: 0;
      padding: 0; }
    #opc-store-selector-popup .store-selector-search .input-text {
      position: static;
      margin-bottom: 0;
      padding-right: calc(6rem + 1em); }
    #opc-store-selector-popup .store-selector-search .actions {
      position: absolute;
      top: 0;
      right: 0;
      z-index: 220;
      overflow: hidden;
      display: flex;
      justify-content: space-between;
      align-items: center;
      height: calc(100% - 1.5rem);
      border-top-right-radius: 24px;
      border-bottom-right-radius: 24px; }
      #opc-store-selector-popup .store-selector-search .actions:after {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 10;
        content: "";
        background: transparent url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/header-search/icon-search.svg") no-repeat 60% center;
        background-size: 2rem; }
    #opc-store-selector-popup .store-selector-search .action {
      width: 6rem;
      right: 0;
      height: 100%;
      overflow: hidden;
      position: relative;
      border-radius: 0;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden;
      transform: translateX(0.7rem); }
      #opc-store-selector-popup .store-selector-search .action::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      #opc-store-selector-popup .store-selector-search .action, #opc-store-selector-popup .store-selector-search .action:visited {
        display: inline-block;
        font-size: 1.6rem;
        font-weight: 700;
        text-align: center;
        position: relative;
        line-height: 2.6rem;
        margin: 0;
        text-transform: none;
        white-space: nowrap;
        padding: 1rem 2.3rem;
        box-sizing: border-box;
        transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
        vertical-align: middle;
        z-index: 5;
        cursor: pointer;
        border-radius: 24px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #c1272f;
        color: #ffffff;
        background-color: #c1272f; }
        #opc-store-selector-popup .store-selector-search .action:hover:not([disabled]), #opc-store-selector-popup .store-selector-search .action:focus:not([disabled]), #opc-store-selector-popup .store-selector-search .action:active:not([disabled]), #opc-store-selector-popup .store-selector-search .action:visited:hover:not([disabled]), #opc-store-selector-popup .store-selector-search .action:visited:focus:not([disabled]), #opc-store-selector-popup .store-selector-search .action:visited:active:not([disabled]) {
          box-shadow: none;
          outline: none;
          text-decoration: none;
          border: 1px solid #a20109;
          color: #ffffff;
          background-color: #a20109; }
        #opc-store-selector-popup .store-selector-search .action[disabled], #opc-store-selector-popup .store-selector-search .action:visited[disabled] {
          cursor: auto;
          border: 1px solid #e5e5e5;
          color: #878787;
          background-color: #e5e5e5; }
      #opc-store-selector-popup .store-selector-search .action[disabled] {
        opacity: 1; }
      #opc-store-selector-popup .store-selector-search .action span {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  #opc-store-selector-popup .store-selector-popup-table tbody .col {
    padding-top: 1.2rem;
    padding-bottom: 1.2rem; }
  #opc-store-selector-popup .location-name {
    margin: 0;
    font-size: 1em !important; }
  #opc-store-selector-popup .action-select-shipping-item {
    margin-top: 0.25rem; }
    #opc-store-selector-popup .action-select-shipping-item::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    #opc-store-selector-popup .action-select-shipping-item, #opc-store-selector-popup .action-select-shipping-item:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #333333;
      color: #333333;
      background-color: #fff; }
      #opc-store-selector-popup .action-select-shipping-item:hover:not([disabled]), #opc-store-selector-popup .action-select-shipping-item:focus:not([disabled]), #opc-store-selector-popup .action-select-shipping-item:active:not([disabled]), #opc-store-selector-popup .action-select-shipping-item:visited:hover:not([disabled]), #opc-store-selector-popup .action-select-shipping-item:visited:focus:not([disabled]), #opc-store-selector-popup .action-select-shipping-item:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #c1272f;
        color: #c1272f;
        background-color: #fff; }
      #opc-store-selector-popup .action-select-shipping-item[disabled], #opc-store-selector-popup .action-select-shipping-item:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #f7f7f7; }
    #opc-store-selector-popup .action-select-shipping-item span {
      font-size: 1.6rem; }
  #opc-store-selector-popup .location-selected .action::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  #opc-store-selector-popup .location-selected .action, #opc-store-selector-popup .location-selected .action:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    #opc-store-selector-popup .location-selected .action:hover:not([disabled]), #opc-store-selector-popup .location-selected .action:focus:not([disabled]), #opc-store-selector-popup .location-selected .action:active:not([disabled]), #opc-store-selector-popup .location-selected .action:visited:hover:not([disabled]), #opc-store-selector-popup .location-selected .action:visited:focus:not([disabled]), #opc-store-selector-popup .location-selected .action:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #a20109;
      color: #ffffff;
      background-color: #a20109; }
    #opc-store-selector-popup .location-selected .action[disabled], #opc-store-selector-popup .location-selected .action:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #e5e5e5; }
  #opc-store-selector-popup .location-selected .action span {
    font-size: 1.6rem; }

#store-pickup {
  margin: 0; }
  #store-pickup.selected-shipping ~ #store-selector {
    display: none; }
  #store-pickup.selected-store-pickup ~ #shipping,
  #store-pickup.selected-store-pickup ~ #opc-shipping_method {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }

#delivery-method-selector {
  display: flex; }
  #delivery-method-selector .action-select-shipping {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0; }
  #delivery-method-selector .action-select-store-pickup {
    border-bottom-left-radius: 0;
    border-left: 0;
    border-top-left-radius: 0; }

.location-details .location-name {
  font-size: 1.8rem;
  font-weight: 700; }

.modal-content #opc-store-selector-popup {
  display: block; }

.store-selector-popup-table thead th {
  display: none; }

.store-selector-popup-table tbody .location .location-name {
  font-size: 1.8rem; }

.store-selector-popup-table tbody .location + .location {
  border-top: 1px solid 1px solid #dcdcdc; }

.store-selector-popup-table tbody .col-location-details {
  padding-left: 0; }
  .store-selector-popup-table tbody .col-location-details p:last-child {
    margin-bottom: 0; }

.store-selector-popup-table tbody .col-location-actions {
  padding-right: 0;
  vertical-align: middle; }
  .store-selector-popup-table tbody .col-location-actions .action {
    float: right; }

.store-selector-popup-empty-query,
.store-selector-popup-no-locations {
  margin: 0 0 20px; }

.cs-page-success {
  margin: 0 auto 2rem; }
  .cs-page-success .action.print {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0 0 2rem;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: 0.3s all;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #c1272f;
    color: #ffffff;
    background-color: #c1272f; }
    .cs-page-success .action.print:hover {
      background-color: #a20109; }
  .cs-page-success + #order-additional-cms-block {
    background: #ffffff;
    width: 60%;
    padding: 4rem;
    border-radius: 8px;
    box-shadow: 1px 3px 3rem 0 rgba(0, 0, 0, 0.28);
    margin-bottom: 6rem; }
    @media (max-width: 47.99em) {
      .cs-page-success + #order-additional-cms-block {
        width: 100%; } }

/* stylelint-enable no-descending-specificity */

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-discount {
  padding: 1.5rem 1.5rem 0;
  border-top: 1px solid #dcdcdc; }
  @media (min-width: 64em) {
    .cs-discount {
      padding: 1.5rem 2rem 0 0;
      border-top: none;
      width: 30rem; } }
  .cs-cart-page .cs-discount:not(:only-child) {
    width: 100%; }
    @media (min-width: 64em) {
      .cs-cart-page .cs-discount:not(:only-child) {
        width: calc(50% - 1.5rem); } }
  .cs-discount.aw-giftcard {
    margin-bottom: 0; }
  @media (max-width: 63.99em) {
    .checkout-index-index .cs-discount--gift {
      margin-top: 1.5rem; } }
  .cs-discount__content {
    padding: 0.5rem 0 1rem;
    display: none; }
  .cs-discount__title,
  .cs-discount .title {
    border-top: none;
    padding: 0; }
    @media (min-width: 64em) {
      .cs-discount__title,
      .cs-discount .title {
        margin-bottom: 2rem; } }
    .cs-discount[data-collapsible='true'] .cs-discount__title, .cs-discount[data-collapsible='true']
    .cs-discount .title {
      cursor: pointer; }
    .cs-discount__title-text,
    .cs-discount .title-text {
      font-size: 1.2rem;
      color: #696969; }
  .cs-discount__text {
    font-size: 1.2rem;
    color: #696969; }
  .cs-discount__trigger-icon {
    margin-left: 0.8rem;
    height: 6px;
    width: 1.2rem;
    transition: transform 0.3s;
    display: none; }
    .cs-discount__trigger-icon path {
      fill: #888; }
    .cs-discount.active .cs-discount__trigger-icon--animation {
      transform: rotate(-180deg); }
    .cs-discount[data-collapsible='true'] .cs-discount__trigger-icon {
      display: inline; }

.cs-discount button.action,
.opc-payment-additional button.action {
  margin-top: 1rem; }
  .cs-discount button.action::-moz-focus-inner,
  .opc-payment-additional button.action::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-discount button.action, .cs-discount button.action:visited,
  .opc-payment-additional button.action,
  .opc-payment-additional button.action:visited {
    display: inline-block;
    font-size: 1.6rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 2.6rem;
    margin: 0;
    text-transform: none;
    white-space: nowrap;
    padding: 1rem 2.3rem;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    cursor: pointer;
    border-radius: 24px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #333333;
    color: #333333;
    background-color: #fff; }
    .cs-discount button.action:hover:not([disabled]), .cs-discount button.action:focus:not([disabled]), .cs-discount button.action:active:not([disabled]), .cs-discount button.action:visited:hover:not([disabled]), .cs-discount button.action:visited:focus:not([disabled]), .cs-discount button.action:visited:active:not([disabled]),
    .opc-payment-additional button.action:hover:not([disabled]),
    .opc-payment-additional button.action:focus:not([disabled]),
    .opc-payment-additional button.action:active:not([disabled]),
    .opc-payment-additional button.action:visited:hover:not([disabled]),
    .opc-payment-additional button.action:visited:focus:not([disabled]),
    .opc-payment-additional button.action:visited:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #c1272f;
      color: #c1272f;
      background-color: #fff; }
    .cs-discount button.action[disabled], .cs-discount button.action:visited[disabled],
    .opc-payment-additional button.action[disabled],
    .opc-payment-additional button.action:visited[disabled] {
      cursor: auto;
      border: 1px solid #e5e5e5;
      color: #878787;
      background-color: #f7f7f7; }
  .cs-discount button.action span,
  .opc-payment-additional button.action span {
    font-size: 1.6rem; }
  .cs-discount button.action svg,
  .opc-payment-additional button.action svg {
    max-width: 1em;
    max-height: 1.6rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-discount {
  width: 100%; }
  @media (max-width: 30em) {
    .cs-discount {
      border-top: none;
      padding: 1rem 0 0; } }
  .cs-discount__content {
    padding: 0.5rem 0 1rem;
    display: block !important; }
    .cs-discount__content .fieldset.coupon {
      display: flex;
      gap: 0 2rem; }
      .cs-discount__content .fieldset.coupon .field {
        width: auto;
        display: flex;
        justify-content: center;
        flex-wrap: nowrap;
        gap: 0 2rem; }
        .cs-discount__content .fieldset.coupon .field .label {
          display: flex;
          width: auto;
          white-space: nowrap;
          font-size: 1.6rem;
          font-weight: 700; }
          .cs-discount__content .fieldset.coupon .field .label::after {
            content: ":"; }
        .cs-discount__content .fieldset.coupon .field .control {
          width: auto; }
      @media (max-width: 30em) {
        .cs-discount__content .fieldset.coupon,
        .cs-discount__content .fieldset.coupon .field {
          display: flex;
          flex-direction: column;
          align-items: stretch; }
          .cs-discount__content .fieldset.coupon .control,
          .cs-discount__content .fieldset.coupon .field .control {
            margin-top: 1em; }
            .cs-discount__content .fieldset.coupon .control > input::-moz-placeholder, .cs-discount__content .fieldset.coupon .field .control > input::-moz-placeholder {
              font-size: 1.6rem !important;
              font-weight: 300 !important; }
            .cs-discount__content .fieldset.coupon .control > input:-ms-input-placeholder, .cs-discount__content .fieldset.coupon .field .control > input:-ms-input-placeholder {
              font-size: 1.6rem !important;
              font-weight: 300 !important; }
            .cs-discount__content .fieldset.coupon .control > input::placeholder,
            .cs-discount__content .fieldset.coupon .field .control > input::placeholder {
              font-size: 1.6rem !important;
              font-weight: 300 !important; }
          .cs-discount__content .fieldset.coupon .actions-toolbar,
          .cs-discount__content .fieldset.coupon .field .actions-toolbar {
            display: flex;
            justify-content: center;
            margin: 2em 0; }
            .cs-discount__content .fieldset.coupon .actions-toolbar .apply,
            .cs-discount__content .fieldset.coupon .field .actions-toolbar .apply {
              padding: 0.65em 2.5em; }
              .cs-discount__content .fieldset.coupon .actions-toolbar .apply,
              .cs-discount__content .fieldset.coupon .actions-toolbar .apply > span,
              .cs-discount__content .fieldset.coupon .field .actions-toolbar .apply,
              .cs-discount__content .fieldset.coupon .field .actions-toolbar .apply > span {
                font-weight: 400; } }
  .cs-discount__title,
  .cs-discount .title {
    display: none !important; }

.cs-checkout__discounts .opc-payment-additional button.action {
  margin-top: 2rem;
  border-color: #c1272f;
  color: #c1272f;
  transition: 0.3s all; }
  .cs-checkout__discounts .opc-payment-additional button.action:hover {
    background-color: #c1272f;
    color: #ffffff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-progress-bar {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: progress-bar;
  display: flex; }
  .cs-progress-bar__item {
    width: 18rem;
    display: flex;
    position: relative;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center; }
    .cs-progress-bar__item:after {
      display: block;
      content: "";
      width: 100%;
      height: 0.8rem;
      background: #f0f0f0;
      position: absolute;
      top: 0.9rem;
      left: 0;
      z-index: -1; }
    .cs-progress-bar__item:first-child:after {
      border-top-left-radius: 0;
      border-bottom-left-radius: 0; }
    .cs-progress-bar__item:last-child:after {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0; }
    .cs-progress-bar__item._active:after, .cs-progress-bar__item._complete:after {
      background: #c1272f; }
    .cs-progress-bar__item._active .cs-progress-bar__indicator-wrapper, .cs-progress-bar__item._complete .cs-progress-bar__indicator-wrapper {
      background: #c1272f; }
    .cs-progress-bar__item._complete .cs-progress-bar__indicator:before {
      content: url("../../frontend/Creativestyle/theme-kma/pl_PL/images/icons/check.svg");
      filter: invert(1);
      width: 1.5rem;
      height: 2rem; }
    @media (min-width: 64em) {
      .cs-progress-bar__item:hover .cs-progress-bar__indicator-wrapper {
        background: #a20109; }
        .cs-progress-bar__item:hover .cs-progress-bar__indicator-wrapper:after {
          background: #a20109; }
      .cs-progress-bar__item:hover:after {
        background: #a20109; } }
  .cs-progress-bar__indicator-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3.3rem;
    height: 2.7rem;
    background: #f0f0f0;
    font-weight: 700;
    font-size: 1.4rem;
    text-align: center;
    border-radius: 24px;
    cursor: pointer; }
  .cs-progress-bar__indicator {
    display: inline-block;
    color: #212121; }
    .cs-progress-bar__item._active .cs-progress-bar__indicator,
    .cs-progress-bar__item._complete .cs-progress-bar__indicator {
      color: #212121; }
    .cs-progress-bar__indicator:before {
      display: inline-block;
      counter-increment: progress-bar;
      content: counter(progress-bar);
      color: #ffffff; }
  .cs-progress-bar__item-text {
    width: 100%;
    text-align: center;
    color: #888;
    font-size: 1.4rem;
    margin-top: 0.3rem; }
    .cs-progress-bar__item._active .cs-progress-bar__item-text,
    .cs-progress-bar__item._complete .cs-progress-bar__item-text {
      color: #212121; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-tabs {
  box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28); }
  .cs-tabs--store-pickup {
    width: 100%;
    margin: 0;
    box-shadow: none;
    position: relative; }
    @media (max-width: 47.99em) {
      .cs-tabs--store-pickup:after {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        box-shadow: 1px 3px 3rem 0 rgba(33, 33, 33, 0.28);
        z-index: -1;
        content: ""; } }
  .cs-tabs--bar {
    margin: 0 0 0 -1.5rem;
    padding: 0 1.5rem;
    border-bottom: 1px solid #dcdcdc;
    box-shadow: none; }
  .cs-tabs__triggers {
    display: flex;
    overflow: hidden;
    justify-content: space-between; }
    .cs-tabs--bar .cs-tabs__triggers {
      justify-content: flex-start; }
    #store-pickup ~ #shipping .cs-tabs__triggers {
      display: none; }
  .cs-tabs__title {
    flex-basis: 50%;
    background: #f0f0f0;
    box-shadow: inset 0 0 5px 0 #696969;
    margin-top: -1px;
    margin-right: -1px;
    padding-top: 0.2rem;
    padding-left: 0.2rem; }
    .cs-tabs__title--active {
      background: #fff;
      box-shadow: none;
      margin: 0;
      padding: 0; }
      .cs-tabs__title--active .cs-tabs__title-link {
        cursor: default;
        color: #000000 !important; }
        .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link {
          color: #212121;
          box-shadow: none; }
          .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:after {
            position: absolute;
            bottom: -1px;
            left: 0;
            width: 100%;
            height: 1px;
            background-color: #fff;
            content: "";
            z-index: 3; }
          .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:visited, .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:hover {
            color: #212121; }
        .cs-tabs__title--active .cs-tabs__title-link:visited, .cs-tabs__title--active .cs-tabs__title-link:hover, .cs-tabs__title--active .cs-tabs__title-link:active {
          color: #000000 !important; }
          .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:visited, .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:hover, .cs-tabs--bar .cs-tabs__title--active .cs-tabs__title-link:active {
            color: #212121; }
    .cs-tabs--bar .cs-tabs__title {
      margin: 0;
      padding: 0;
      flex-basis: auto;
      text-align: center;
      border: 1px solid #dcdcdc;
      border-bottom: none;
      border-left-width: 0;
      box-shadow: none;
      transition: background-color 0.15s linear, color 0.15s linear; }
      .cs-tabs--bar .cs-tabs__title:not(.cs-tabs__title--active):hover {
        background-color: #fdfdfd; }
      .cs-tabs--bar .cs-tabs__title:first-child {
        border-left-width: 1px;
        border-top-left-radius: 5px; }
      .cs-tabs--bar .cs-tabs__title:last-child {
        border-top-right-radius: 5px; }
  .cs-tabs__title-link {
    color: #888;
    text-decoration: none;
    line-height: 4rem;
    height: 4rem;
    padding: 0.1rem 1rem;
    display: block;
    position: relative;
    z-index: 2;
    font-weight: 600;
    font-size: 1.2rem;
    cursor: pointer; }
    @media (min-width: 30em) {
      .cs-tabs__title-link {
        padding: 0.1rem 2rem; } }
    @media (min-width: 48em) {
      .cs-tabs__title-link {
        font-size: 1.8rem;
        line-height: 5.5rem;
        height: 5.5rem; } }
    .cs-tabs__title-link:hover, .cs-tabs__title-link:active, .cs-tabs__title-link:focus, .cs-tabs__title-link:visited {
      color: #888; }
    .cs-tabs__title-link:hover {
      text-decoration: none; }
    .cs-tabs--bar .cs-tabs__title-link {
      position: relative;
      height: auto;
      line-height: 120%;
      font-size: 1.2rem;
      padding: 0.6rem 0.5rem;
      font-weight: 300;
      white-space: nowrap; }
      @media (min-width: 30em) {
        .cs-tabs--bar .cs-tabs__title-link {
          padding: 0.8rem 1.5rem; } }
      .cs-tabs--bar .cs-tabs__title-link:hover, .cs-tabs--bar .cs-tabs__title-link:active, .cs-tabs--bar .cs-tabs__title-link:focus, .cs-tabs--bar .cs-tabs__title-link:visited {
        color: #212121; }
  .cs-tabs--bar .cs-tabs__title-span:not(:empty):before {
    content: "("; }
  .cs-tabs--bar .cs-tabs__title-span:not(:empty):after {
    content: ")"; }
  .cs-tabs__content {
    padding: 2rem; }

#store-pickup ~ #shipping #tab-customer {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-qty-increment {
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  .cs-qty-increment--wishlist {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__input {
    font-size: 1.6rem;
    line-height: 2.6rem;
    padding: 1rem 2.3rem;
    color: #333333;
    background: #ffffff;
    border-radius: 24px;
    border: 1px solid #d5d5d5;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    height: 4.8rem;
    background-clip: padding-box;
    font-family: inherit;
    font-size: inherit;
    text-align: center;
    margin: 0;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 0;
    width: 0;
    min-width: 2ch;
    flex: 1 1;
    order: 2; }
    .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border: 1px solid #333333;
      box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1); }
    .cs-qty-increment__input.mage-error, .cs-qty-increment__input.mage-error:hover:not(:focus) {
      border: 1px solid #ff0018; }
    .cs-qty-increment__input.required-entry {
      margin-bottom: 0; }
    .cs-qty-increment__input::-moz-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-qty-increment__input:-ms-input-placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-qty-increment__input::placeholder {
      opacity: 1;
      font-size: 1.6rem;
      color: #333333;
      font-style: normal; }
    .cs-qty-increment__input[disabled] {
      opacity: 1; }
    .cs-qty-increment__input, .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border-left-width: 0;
      border-right-width: 0;
      border-color: #dcdcdc; }
    .cs-qty-increment__input.mage-error {
      border-color: #e41f12 !important; }
      .cs-qty-increment__input.mage-error ~ .cs-qty-increment__button {
        border-color: #e41f12 !important; }
    .cs-qty-increment__input + .mage-error {
      order: 3;
      width: 100%; }
  .cs-qty-increment__button {
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s;
    max-width: 3rem;
    background-color: transparent;
    flex: 1 1 2rem;
    position: relative;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 24px; }
    .cs-qty-increment__button, .cs-qty-increment__button:visited, .cs-qty-increment__button:focus {
      background-color: transparent;
      border: 1px solid #dcdcdc; }
      .cs-qty-increment__button *, .cs-qty-increment__button:visited *, .cs-qty-increment__button:focus * {
        fill: #324dcf; }
    .cs-qty-increment__button:hover, .cs-qty-increment__button:active {
      background-color: #324dcf;
      border: 1px solid #324dcf;
      cursor: pointer; }
      .cs-qty-increment__button:hover *, .cs-qty-increment__button:active * {
        fill: #fff; }
    .cs-qty-increment__button--decrement {
      order: 1;
      border-top-right-radius: 0;
      border-bottom-right-radius: 0; }
    .cs-qty-increment__button--increment {
      order: 2;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0; }
    .cs-qty-increment__button--disabled {
      opacity: 1; }
      .cs-qty-increment__button--disabled, .cs-qty-increment__button--disabled:hover, .cs-qty-increment__button--disabled:visited, .cs-qty-increment__button--disabled:focus {
        background-color: transparent;
        border: 1px solid #dcdcdc;
        cursor: not-allowed; }
        .cs-qty-increment__button--disabled *, .cs-qty-increment__button--disabled:hover *, .cs-qty-increment__button--disabled:visited *, .cs-qty-increment__button--disabled:focus * {
          fill: #dcdcdc; }
  .cs-qty-increment__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    .cs-qty-increment__icon--decrement {
      width: 1.2rem;
      height: 0.3rem; }
    .cs-qty-increment__icon--increment {
      width: 1.2rem;
      height: 1.2rem; }

.cs-qty-increment__button:hover {
  background-color: #c1272f;
  border-color: #c1272f; }

.cs-qty-increment__button--disabled svg path {
  fill: #d5d5d5 !important; }

.cs-qty-increment svg path {
  fill: #000000; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-form, .cs-form__fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-form__field + .cs-form__field {
  margin-top: 1em; }

.cs-form--disabled {
  opacity: 0.6; }

.cs-form__button::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-form__button, .cs-form__button:visited {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 2.6rem;
  margin: 0;
  text-transform: none;
  white-space: nowrap;
  padding: 1rem 2.3rem;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  cursor: pointer;
  border-radius: 24px;
  outline-offset: 1px;
  text-decoration: none;
  box-shadow: none;
  border: 1px solid #c1272f;
  color: #ffffff;
  background-color: #c1272f; }
  .cs-form__button:hover:not([disabled]), .cs-form__button:focus:not([disabled]), .cs-form__button:active:not([disabled]), .cs-form__button:visited:hover:not([disabled]), .cs-form__button:visited:focus:not([disabled]), .cs-form__button:visited:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #a20109;
    color: #ffffff;
    background-color: #a20109; }
  .cs-form__button[disabled], .cs-form__button:visited[disabled] {
    cursor: auto;
    border: 1px solid #e5e5e5;
    color: #878787;
    background-color: #e5e5e5; }

.cs-form__button-span {
  font-size: 1.6rem; }

.cs-form__button-icon {
  max-width: 1em;
  max-height: 1.6rem;
  z-index: 2;
  height: auto;
  width: 100%;
  display: none; }

.form,
.form .fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

.form .field + .field {
  margin-top: 1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.cs-sticky-block {
  box-sizing: border-box; }
  @media (min-width: 64em) {
    .cs-sticky-block {
      position: sticky;
      z-index: 10;
      top: 1em; } }
  @media (min-width: 48em) {
    .cs-sticky-block--pdp {
      position: relative;
      z-index: 3;
      margin-right: calc(15px - 0.5rem); }
      .page-product-bundle .cs-sticky-block--pdp {
        margin-right: 0; } }
  @media (min-width: 64em) {
    .cs-sticky-block--pdp {
      top: 3rem;
      margin-right: 15px; }
      .page-product-bundle .cs-sticky-block--pdp {
        margin-right: 0; } }
  @media screen and (min-width: 1230px) {
    .cs-sticky-block--pdp {
      margin-right: 0; } }
  @media (min-width: 48em) {
    .cs-sticky-block--no-mobile {
      position: sticky;
      top: 8.5rem; } }
  @media (min-width: 64em) {
    .cs-sticky-block--no-mobile {
      top: 1.5rem; } }

/** Styles form _tables.less of theme blank are moved here.
   * For some tables there is mobile layout applied also for tablet resolutions
   * Variables for typograpy, colors, border etc. are added
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable no-descending-specificity */
.table-wrapper {
  margin-bottom: 2rem; }
  @media (max-width: 47.99em) {
    .table-wrapper {
      border: none;
      display: block; } }
  @media (min-width: 48em) {
    .table-wrapper.cart .table-wrapper.cart {
      border-top: none; } }
  .table-wrapper.grouped tbody:last-child td {
    border-bottom: none; }

.table {
  border-bottom: 1px solid #dcdcdc;
  max-width: 100%;
  width: 100%;
  background: transparent; }
  .table > caption {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .table:not(.totals):not(.table-totals) {
    border: none; }
    .table:not(.totals):not(.table-totals) td {
      border: none;
      padding: 0.8rem 1rem; }
    .table:not(.totals):not(.table-totals) thead {
      border-bottom: 2px solid #dcdcdc; }
      .table:not(.totals):not(.table-totals) thead th {
        font-size: 1.1rem;
        text-transform: uppercase;
        color: #212121; }
    .table:not(.totals):not(.table-totals) tbody td {
      font-size: 1.6rem;
      color: #212121;
      font-weight: 300;
      border-bottom: 1px solid #dcdcdc;
      border-left: none; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: 1px solid #dcdcdc; } }
      .table:not(.totals):not(.table-totals) tbody td.actions a + a:before {
        margin: 0 0.7rem 0 0.5rem;
        content: '';
        display: inline-block;
        width: 1px;
        height: 1.6rem;
        border-right: 2px solid #dcdcdc;
        vertical-align: middle; }
      .table:not(.totals):not(.table-totals) tbody td:first-child {
        border-left: none; }
    @media (max-width: 63.99em) {
      .account .table:not(.totals):not(.table-totals) tbody tr:first-child td {
        padding-top: 0; } }
    .table:not(.totals):not(.table-totals) tbody tr:nth-child(even) {
      background: transparent; }
    .table:not(.totals):not(.table-totals) tfoot {
      font-size: 1.6rem; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot {
          background: #f0f0f0; } }
      .table:not(.totals):not(.table-totals) tfoot .mark {
        text-align: right; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot .amount {
          text-align: right; } }
  .table .price-excluding-tax,
  .table .price-including-tax,
  .table .items-qty,
  .table .product-item-name {
    font-size: 1.6rem;
    line-height: inherit; }

@media (max-width: 47.99em) {
  .table-wrapper {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    position: relative; }
    .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) {
      border: none;
      font-size: 1.4rem;
      padding: 0; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals):last-child {
        padding-bottom: 1.2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) thead {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td {
        border: none;
        display: block;
        font-size: 1.4rem;
        padding: 0.2rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:first-child {
          padding-top: 2rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:last-child {
          padding-bottom: 1rem; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:before {
          padding-right: 10px;
          content: attr(data-th) ": ";
          display: inline-block;
          color: #212121;
          font-weight: 700;
          vertical-align: top; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: 1px solid #dcdcdc; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions:before {
          border: 0;
          clip: rect(0 0 0 0);
          height: 1px;
          margin: -1px;
          overflow: hidden;
          padding: 0;
          position: absolute;
          width: 1px;
          white-space: nowrap;
          /* 1 */ } }

@media (max-width: 47.99em) {
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot {
        display: block; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot th {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: left;
          width: 70%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot td {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: right;
          width: 30%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr {
          display: block; }
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child th,
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child td {
            padding-top: 2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody th {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody td:last-child {
        border: none;
        padding: 0 0 0.5rem; }
  .data-table-definition-list thead {
    display: none; }
  .data-table-definition-list tbody th {
    padding-bottom: 0; }
  .data-table-definition-list tbody th,
  .data-table-definition-list tbody td {
    display: block;
    padding-left: 0;
    padding-right: 0; } }

.table-wrapper.cart,
.account .table-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  position: relative; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .table-wrapper.cart .table,
  .account .table-wrapper .table {
    border: none;
    font-size: 1.4rem;
    padding: 0; }
    .table-wrapper.cart .table:last-child,
    .account .table-wrapper .table:last-child {
      padding-bottom: 1.2rem; }
    .table-wrapper.cart .table thead,
    .account .table-wrapper .table thead {
      display: none; }
    .table-wrapper.cart .table tbody td,
    .account .table-wrapper .table tbody td {
      border: none;
      display: block;
      font-size: 1.4rem;
      padding: 0.2rem; }
      .table-wrapper.cart .table tbody td:first-child,
      .account .table-wrapper .table tbody td:first-child {
        padding-top: 2rem; }
      .table-wrapper.cart .table tbody td:last-child,
      .account .table-wrapper .table tbody td:last-child {
        padding-bottom: 1rem; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td:before,
      .account .table-wrapper .table tbody td:before {
        padding-right: 10px;
        content: attr(data-th) ": ";
        display: inline-block;
        color: #212121;
        font-weight: 700;
        vertical-align: top; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions,
      .account .table-wrapper .table tbody td.actions {
        border-bottom: 1px solid #dcdcdc; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions:before,
      .account .table-wrapper .table tbody td.actions:before {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .table-wrapper.cart .table tfoot,
    .account .table-wrapper .table tfoot {
      display: block; }
      .table-wrapper.cart .table tfoot th,
      .account .table-wrapper .table tfoot th {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: left;
        width: 70%; }
      .table-wrapper.cart .table tfoot td,
      .account .table-wrapper .table tfoot td {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: right;
        width: 30%; }
      .table-wrapper.cart .table tfoot tr,
      .account .table-wrapper .table tfoot tr {
        display: block; }
        .table-wrapper.cart .table tfoot tr:first-child th,
        .table-wrapper.cart .table tfoot tr:first-child td,
        .account .table-wrapper .table tfoot tr:first-child th,
        .account .table-wrapper .table tfoot tr:first-child td {
          padding-top: 2rem; } }

/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
.table-wrapper .actions {
  flex-direction: column; }
  .table-wrapper .actions .action {
    margin-right: 0 !important; }
    @media (min-width: 48em) {
      .table-wrapper .actions .action::before {
        display: none !important; } }

.hdmx__tickets .message.info.empty {
  padding: 1.1rem 4.5rem 1.1rem; }

.hdmx__ticket-reply .actions-toolbar {
  display: flex;
  justify-content: space-between;
  flex-direction: row-reverse; }
  @media (max-width: 30em) {
    .hdmx__ticket-reply .actions-toolbar {
      flex-direction: column;
      gap: 20px;
      align-items: center; } }

.hdmx__ticket-reply .secondary > button {
  float: left !important;
  margin: 0 !important;
  padding: 1.2rem !important;
  font-size: 1.6rem;
  border-radius: 27px;
  transition: 0.3s all;
  color: #333333;
  border: 1px solid #333333;
  background-color: transparent;
  min-width: 12rem; }
  .hdmx__ticket-reply .secondary > button:enabled {
    cursor: pointer; }
  .hdmx__ticket-reply .secondary > button:hover, .hdmx__ticket-reply .secondary > button:focus {
    border-color: #c1272f;
    color: #c1272f; }
  .wishlist-index-index .hdmx__ticket-reply .secondary > button {
    z-index: 1; }

.hdmx__ticket-reply > button.action.update {
  display: none; }

.hdmx__ticket-summary {
  table-layout: fixed;
  width: 65%; }
  @media (max-width: 48em) {
    .hdmx__ticket-summary {
      width: 100%; } }
  .hdmx__ticket-summary th {
    width: 50%; }
  .hdmx__ticket-summary td {
    width: 50%;
    word-break: break-word; }

.hdmx__message {
  box-shadow: 0px 0px 5px 3px #e5e5e5;
  background-color: #ffffff;
  padding: 1.5rem; }

.hdmx-message__body {
  background-color: #ffffff !important;
  border: none !important;
  padding: 0.5rem 0 !important; }

.hdmx__tickets-table {
  margin-top: 3rem; }
  .hdmx__tickets-table tr {
    border-bottom: 1px solid #878787; }
    .hdmx__tickets-table tr:last-child {
      border-bottom: none; }
  @media (max-width: 64em) {
    .hdmx__tickets-table td {
      margin-bottom: 1rem; } }
  .hdmx__tickets-table .subject {
    width: 185px; }
    @media (max-width: 64em) {
      .hdmx__tickets-table .subject {
        width: 100%; } }
  .hdmx__tickets-table .details {
    width: 150px; }
    @media (max-width: 64em) {
      .hdmx__tickets-table .details::before {
        content: none !important; } }
    .hdmx__tickets-table .details a {
      font-size: 1.6rem;
      transition: 0.3s all;
      color: #c1272f;
      font-weight: 300;
      margin-right: 45px;
      position: relative; }
      .hdmx__tickets-table .details a:hover {
        border-bottom: 1px solid #c1272f;
        text-decoration: none; }
      .hdmx__tickets-table .details a::after {
        content: url("data:image/svg+xml,%3Csvg width='34' height='24' fill='%23c1272f' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd'%3E%3Cpath d='M31.883 12l-7.527 6.235.644.765 9-7.521-9-7.479-.645.764 7.529 6.236h-31.884v1h21.883z'/%3E%3C/svg%3E");
        width: 34px;
        height: 24px;
        position: absolute;
        width: 34px;
        height: 24px;
        top: 50%;
        transform: translateY(-50%);
        right: -45px; }

.hdmx__ticket-view .back-link a {
  font-size: 1.6rem;
  transition: 0.3s all;
  color: #c1272f;
  font-weight: 300;
  margin-right: 45px;
  position: relative; }
  .hdmx__ticket-view .back-link a:hover {
    border-bottom: 1px solid #c1272f;
    text-decoration: none; }
  .hdmx__ticket-view .back-link a::after {
    content: url("data:image/svg+xml,%3Csvg width='34' height='24' fill='%23c1272f' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' clip-rule='evenodd'%3E%3Cpath d='M31.883 12l-7.527 6.235.644.765 9-7.521-9-7.479-.645.764 7.529 6.236h-31.884v1h21.883z'/%3E%3C/svg%3E");
    width: 34px;
    height: 24px;
    position: absolute;
    width: 34px;
    height: 24px;
    top: 50%;
    transform: translateY(-50%);
    right: -45px; }
  .hdmx__ticket-view .back-link a small {
    display: none; }

.card__action button[type="submit"] {
  color: #c1272f !important;
  cursor: pointer; }

/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/* 
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .cs-login-or-guest .cs-checkout__step-tabs .cs-tabs {
    margin: 0;
    box-shadow: none; }
    .cs-login-or-guest .cs-checkout__step-tabs .cs-tabs__content {
      padding-left: 0;
      padding-right: 0; } }

.cs-login-or-guest .cs-checkout__step-tabs .cs-tabs__triggers {
  display: none; }

.cs-login-or-guest--active .cs-checkout__sidebar {
  display: none; }

.cs-login-or-guest--active .opc-wrapper {
  width: 100%; }

.cs-login-or-guest--active .login-container .block-customer-login {
  margin-top: 4rem; }
  @media (min-width: 48em) {
    .cs-login-or-guest--active .login-container .block-customer-login {
      margin-top: 0; } }

.cs-login-or-guest--active .login-container .fieldset > .field > .control {
  width: 100%; }

.cs-login-or-guest--active .login-container .fieldset:after {
  display: none; }

.cs-login-or-guest--active .login-container .actions-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start; }
  .cs-login-or-guest--active .login-container .actions-toolbar .action.continue {
    display: block; }
    .cs-login-or-guest--active .login-container .actions-toolbar .action.continue::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-login-or-guest--active .login-container .actions-toolbar .action.continue, .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:hover:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:focus:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:active:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:visited:hover:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:visited:focus:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-login-or-guest--active .login-container .actions-toolbar .action.continue[disabled], .cs-login-or-guest--active .login-container .actions-toolbar .action.continue:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-login-or-guest--active .login-container .actions-toolbar .action.continue span {
      font-size: 1.6rem; }
  .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login {
    margin-top: 1rem; }
    .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login, .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:visited {
      display: inline-block;
      font-size: 1.6rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 2.6rem;
      margin: 0;
      text-transform: none;
      white-space: nowrap;
      padding: 1rem 2.3rem;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      cursor: pointer;
      border-radius: 24px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #c1272f;
      color: #ffffff;
      background-color: #c1272f; }
      .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:hover:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:focus:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:active:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:visited:hover:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:visited:focus:not([disabled]), .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:visited:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #a20109;
        color: #ffffff;
        background-color: #a20109; }
      .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login[disabled], .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login:visited[disabled] {
        cursor: auto;
        border: 1px solid #e5e5e5;
        color: #878787;
        background-color: #e5e5e5; }
    .cs-login-or-guest--active .login-container .actions-toolbar .action.action-login span {
      font-size: 1.6rem; }
  .cs-login-or-guest--active .login-container .actions-toolbar .action.action-remind {
    display: inline-block;
    font-size: inherit;
    margin-top: 1rem; }

.cs-login-or-guest--active .opc-estimated-wrapper {
  display: none; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2NoZWNrb3V0LmNzcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbmZpZy9icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9iYXNlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb25maWcvYmFzZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2ZvbnQtZmFtaWx5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29uZmlnL2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9idXR0b24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYnVuZGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3V0aWxpdHktY2xhc3Nlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9jb250YWluZXIvY29udGFpbmVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvTWFnZW50b19UaGVtZS93ZWIvY3NzL3NvdXJjZS9fbGF5b3V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9NYWdlbnRvX1RoZW1lL3dlYi9jc3Mvc291cmNlL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9iYWRnZXMvYmFkZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2J1bmRsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9hdXRob3JpemF0aW9uLWxpbmsuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2F1dGhvcml6YXRpb24tbGluay9hdXRob3JpemF0aW9uLWxpbmsuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYWRkdG9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9hZGR0b2NhcnQvYWRkdG9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idXR0b24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYXV0b2NvbXBsZXRlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9iYWRnZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2JhZGdlL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvcmVzZXQtbGlzdC1zdHlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9icmVhZGNydW1icy9icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9jb21wb25lbnQtc3BhY2luZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jb250YWluZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY29va2llLW1lc3NhZ2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2Nvb2tpZS1tZXNzYWdlL2Nvb2tpZS1tZXNzYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Rpc3BsYXktY29udHJvbGxlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZGlzcGxheS1jb250cm9sbGVyL2Rpc3BsYXktY29udHJvbGxlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9kcm9wZG93bi1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHNldWRvaWNvbi9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9kcm9wZG93bi1zd2l0Y2hlci9kcm9wZG93bi1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2Ryb3Bkb3duLXN3aXRjaGVyL2Ryb3Bkb3duLXN3aXRjaGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2ZpZWxkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9maWVsZC9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9maWVsZC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZmllbGQvZmllbGQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9maWVsZC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZm9vdGVyLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1saW5rcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9oZWFkbGluZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRsaW5lL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9oZWFkbGluZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRsaW5lL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci9uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zZWFyY2guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2hlYWRlci9zZWFyY2gvc2VhcmNoLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3VzZXItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9xdHktY291bnRlci9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkZXIvdXNlci1uYXYvdXNlci1uYXYuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3F0eS1jb3VudGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9sYXp5bG9hZC9sYXp5bG9hZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9saW5rcy1ibG9jay1hZGR0by5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbGlua3MtYmxvY2stYWRkdG8vbGlua3MtYmxvY2stYWRkdG8uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9saW5rcy1ibG9jay1hZGR0by9saW5rcy1ibG9jay1hZGR0by5zY3NzIiwid2VicGFjazovL1tuYW1lXS9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9sb2dvL2xvZ28uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9sb2dvL2xvZ28uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWVzc2FnZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9tZXNzYWdlcy9tZXNzYWdlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9taW5pY2FydC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbWluaWNhcnQvbWluaWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9taW5pY2FydC9taW5pY2FydC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9taW5pY2FydC1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9taW5pY2FydC1wcm9kdWN0L21pbmljYXJ0LXByb2R1Y3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9taW5pY2FydC1wcm9kdWN0L21pbmljYXJ0LXByb2R1Y3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZnJlZS1zaGlwcGluZy1pbmRpY2F0b3Iuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2ZyZWUtc2hpcHBpbmctaW5kaWNhdG9yL2ZyZWUtc2hpcHBpbmctaW5kaWNhdG9yLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS90ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL25hdmlnYXRpb24vdGVhc2VyL3RlYXNlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvYXNwZWN0LXJhdGlvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbmV3c2xldHRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbmV3c2xldHRlci9uZXdzbGV0dGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL29mZmNhbnZhcy10b2dnbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL29mZmNhbnZhcy10b2dnbGUvb2ZmY2FudmFzLXRvZ2dsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL29mZmNhbnZhcy10b2dnbGUvb2ZmY2FudmFzLXRvZ2dsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9vZmZjYW52YXMtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvb2ZmY2FudmFzLW5hdmlnYXRpb24vb2ZmY2FudmFzLW5hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMvb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvb2ZmY2FudmFzL29mZmNhbnZhcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdlLXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcGFnZS10aXRsZS9wYWdlLXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3BhZ2UtYm90dG9tLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLWJvdHRvbS9wYWdlLWJvdHRvbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wcmljZS1ib3guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC9wcmljZS1ib3guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcmljZS1ib3gvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcmljZS1ib3gvcHJpY2UtYm94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtdGlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3N0cmluZy10by1udW1iZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXRpbGUvcHJvZHVjdC10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0cy1saXN0L3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHVzaC1ub3RpZmljYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3B1c2gtbm90aWZpY2F0aW9uL3B1c2gtbm90aWZpY2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3NsaWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc29jaWFsLW1lZGlhLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3NvY2lhbC1tZWRpYS1saXN0L3NvY2lhbC1tZWRpYS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3N0YXItcmF0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3N0YXItcmF0aW5nL3N0YXItcmF0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3N3YXRjaGVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zd2F0Y2hlcy9zd2F0Y2hlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS90b3BiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3RvcGJhci90b3BiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b3BiYXIvdG9wYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc2VsZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS90b29sYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL2Ftb3VudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvc29ydGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9ob29rcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvbGltaXRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci9wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90b29sYmFyL3ZpZXdtb2RlLXN3aXRjaGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9vbGJhci92aWV3bW9kZS1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9pZTExLW1vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9pZTExLW1vZGFsL2llMTEtbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHdhLW5vdGlmaWNhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHdhLW5vdGlmaWNhdGlvbi9wd2Etbm90aWZpY2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2dvb2dsZS1yZWNhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2dvb2dsZS1yZWNhcHRjaGEvZ29vZ2xlLXJlY2FwdGNoYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbm9uLWNyaXRpY2FsL25vbi1jcml0aWNhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdWNjZXNzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL3BhZ2VzL2xheW91dC8yY29sdW1ucy1sZWZ0L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZGFzaGJvYXJkL2Rhc2hib2FyZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb25maWcvbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvcGFnZXMvc3VjY2Vzcy9zdWNjZXNzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9wYWdlcy9jYXJ0L2NhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvcGFnZXMvY2FydC9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NhbGVuZGFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jYXJ0LWJvbnVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9jYXJ0L2NhcnQtYm9udXMvY2FydC1ib251cy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jYXJ0LWl0ZW0uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2NhcnQvY2FydC1pdGVtL2NhcnQtaXRlbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2NhcnQvY2FydC1pdGVtL2NhcnQtaXRlbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jYXJ0LXN1bW1hcnkuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2NhcnQvY2FydC1zdW1tYXJ5L2NhcnQtc3VtbWFyeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2NhcnQvY2FydC1zdW1tYXJ5L2NhcnQtc3VtbWFyeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jYXJ0LXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9jYXJ0L2NhcnQtdGFibGUvY2FydC10YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2NhcnQvY2FydC10YWJsZS9jYXJ0LXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NoZWNrb3V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvY2hlY2tvdXQvY2hlY2tvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZGlzY291bnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2Rpc2NvdW50L2Rpc2NvdW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZGlzY291bnQvZGlzY291bnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJvZ3Jlc3MtYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS90YWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdGFicy90YWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3F0eS1pbmNyZW1lbnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3F0eS1pbmNyZW1lbnQvcXR5LWluY3JlbWVudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3F0eS1pbmNyZW1lbnQvcXR5LWluY3JlbWVudC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9mb3JtL2Zvcm0uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3RpY2t5LWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zdGlja3ktYmxvY2svc3RpY2t5LWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zdGlja3ktYmxvY2svbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90YWJsZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90YWJsZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2xvZ2luLW9yLWd1ZXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvTWFnZVN1aXRlX0xvZ2luT3JHdWVzdENoZWNrb3V0U3RlcC93ZWIvY3NzL2xvZ2luLW9yLWd1ZXN0LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbi8vIEJyZWFrcG9pbnRzIGltcG9ydCBmcm9tIHZpZXcueG1sIFtweF1cbiRicmVha3BvaW50c19weDogZGVlcC1nZXQoJHZpZXcteG1sLCB2YXJzLCBNYWdlbnRvX1RoZW1lLCBicmVha3BvaW50cyk7XG4kYnJlYWtwb2ludHNfZW06ICgpO1xuXG5AdXNlIFwic2FzczptYXBcIjtcblxuQGZ1bmN0aW9uIGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkge1xuICAgICRyZXN1bHQ6ICRicmVha3BvaW50c19lbTtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzX3B4IHtcbiAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKFxuICAgICAgICAgICAgJHJlc3VsdCxcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICB1bnF1b3RlKCRrZXkpOiAkdmFsdWUgLyAxNiAqIDFlbSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuXG4kYnJlYWtwb2ludHM6IGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkgIWRlZmF1bHQ7XG5cbi8vIHBob25lOiAyMy4xMjVlbSAtIDM3MHB4XG4vLyBwaG9uZUxnOiAzMGVtIC0gNDgwcHgsXG4vLyB0YWJsZXQ6IDQ4ZW0gLSA3NjhweCxcbi8vIGxhcHRvcDogNjRlbSAtIDEwMjRweCxcbi8vIGxhcHRvcExnOiA4MGVtIC0gMTI4MHB4LFxuLy8gZGVza3RvcDogOTBlbSAtIDE0NDBweCxcbi8vIHR2OiAxMjBlbSAtIDE5MjBweCxcbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiA2Mi41JTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4vKiBIaWRlIEhUTUw1IFVwIGFuZCBEb3duIGFycm93cy4gKi9cbmlucHV0W3R5cGU9J251bWJlciddIHtcbiAgYXBwZWFyYW5jZTogdGV4dGZpZWxkOyB9XG4gIGlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIG1hcmdpbjogMDsgfVxuXG4vKiBIaWRlIEhUTUw1ICdYJyBpbiBzZWFyY2ggaW5wdXQgKi9cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBJbnRlcm5ldCBFeHBsb3JlciAqL1xuICAvKiBDbGVhcnMgdGhlICdYJyBmcm9tIENocm9tZSAqLyB9XG4gIGlucHV0W3R5cGU9J3NlYXJjaCddOjotbXMtY2xlYXIsIGlucHV0W3R5cGU9J3NlYXJjaCddOjotbXMtcmV2ZWFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDsgfVxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIGlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiwgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbmJvZHkge1xuICB3aWR0aDogMTAwdnc7XG4gIG1heC13aWR0aDogMTAwdncgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNkNWQ1ZDU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogIzMzMzMzMztcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM4Nzg3ODc7IH1cblxuLmFjdGlvbi5jcmVhdGUucHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5hY3Rpb24uY3JlYXRlLnByaW1hcnksIC5hY3Rpb24uY3JlYXRlLnByaW1hcnk6dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMi42cmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgLmFjdGlvbi5jcmVhdGUucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5hY3Rpb24uY3JlYXRlLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5hY3Rpb24uY3JlYXRlLnByaW1hcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5hY3Rpb24uY3JlYXRlLnByaW1hcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5hY3Rpb24uY3JlYXRlLnByaW1hcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5W2Rpc2FibGVkXSwgLmFjdGlvbi5jcmVhdGUucHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuIiwiLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQGZ1bmN0aW9uIGRlZXAtZ2V0KCRtYXAsICRrZXlzLi4uKSB7XG4gICAgQGVhY2ggJGtleSBpbiAka2V5cyB7XG4gICAgICAgICRtYXA6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gICAgfVxuICAgIEByZXR1cm4gJG1hcDtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvZm9udC1mYW1pbHknO1xuXG4kaW5wdXRfcmVtb3ZlLW51bWJlci1hcHBlYXJhbmNlOiB0cnVlICFkZWZhdWx0O1xuJGlucHV0X3JlbW92ZS1zZWFyY2gtYXBwZWFyYW5jZTogdHJ1ZSAhZGVmYXVsdDtcblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6IDYyLjUlO1xuICAgIGJhY2tncm91bmQ6ICRwYWdlX2JhY2tncm91bmQ7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IC8vIGhpZGVzIGhvcml6b250YWwgc2Nyb2xsYmFyIG9uIEVkZ2UgYW5kIElFXG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgICBAaW5jbHVkZSBmb250LWZhbWlseSgkZm9udF9mYW1pbHktcHJpbWFyeSk7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbmJ1dHRvbixcbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4vKiBIaWRlIEhUTUw1IFVwIGFuZCBEb3duIGFycm93cy4gKi9cbkBpZiAkaW5wdXRfcmVtb3ZlLW51bWJlci1hcHBlYXJhbmNlIHtcbiAgICBpbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gICAgICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogSGlkZSBIVE1MNSAnWCcgaW4gc2VhcmNoIGlucHV0ICovXG5AaWYgJGlucHV0X3JlbW92ZS1zZWFyY2gtYXBwZWFyYW5jZSB7XG4gICAgaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICAgICAgICAvKiBDbGVhcnMgdGhlICdYJyBmcm9tIEludGVybmV0IEV4cGxvcmVyICovXG4gICAgICAgICY6Oi1tcy1jbGVhcixcbiAgICAgICAgJjo6LW1zLXJldmVhbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBDbGVhcnMgdGhlICdYJyBmcm9tIENocm9tZSAqL1xuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuQG1peGluIGZvbnQtZmFtaWx5KCRmb250cy4uLikge1xuICAgIEBpZiAkZm9udHMge1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnRzLCAkZm9udC1mYW1pbHktZmFsbGJhY2s7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktZmFsbGJhY2s7XG4gICAgfVxufVxuIiwiLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuXG5AZnVuY3Rpb24gZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGUsICRzaWRlKSB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2YXJpYWJsZSk7XG5cbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgICBAaWYgKCRzaWRlID09ICd1cCcpIE9SICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdsZWZ0JykgT1IgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAnbGVmdCcpIE9SICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAndXAnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMyk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDQpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAndXAnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMyk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCA0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gYnV0dG9uLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuXG5AbWl4aW4gYnV0dG9uX3NwYW4taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG5cbkBtaXhpbiBidXR0b25faWNvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbmZpZy9iYXNlXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uL21peGluXCI7XG5cbmJvZHkge1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBtYXgtd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogJGttYV9jb2xvcl9ncmV5LTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX2dyZXktNTAwO1xuICAgIH1cbn1cblxuLmFjdGlvbi5jcmVhdGUucHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSwgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MpO1xufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2J1dHRvbi9taXhpbi5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4vLyBEZWZpbmUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgaWNvbnMgaW4gYnV0dG9uLiBZb3UgY2FuIG92ZXJyaWRlIGl0IGluZGl2aWR1YWxseSBwZXIgYnV0dG9uIGluIGVhY2ggY29tcG9uZW50XG4vLyBWYXJpYW50czogbGVmdCB8IHJpZ2h0IHwgbm8taWNvbiB8IG9ubHktaWNvblxuJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zOiAnbm9uZSc7XG5cbi8vIEdlbmVyYWwgc3R5bGVzIGZvciBidXR0b25zXG4kYnV0dG9uX2ZvbnQtc2l6ZTogMS42cmVtO1xuJGJ1dHRvbl9mb250LXdlaWdodDogNzAwO1xuJGJ1dHRvbl9ib3JkZXItc2l6ZTogMXB4O1xuJGJ1dHRvbl9wYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiRidXR0b25fbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiRidXR0b25fYm9yZGVyLXJhZGl1czogMjRweDtcblxuLy8gU3R5bGVzIGZvciBgcHJpbWFyeWAgYnV0dG9uIHR5cGVcbiRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kOiAka21hX2NvbG9yX3NlY29uZGFyeS01MDA7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJhY2tncm91bmQ6ICRrbWFfY29sb3Jfc2Vjb25kYXJ5LTgwMDtcbiRidXR0b25fcHJpbWFyeS0tZGlzYWJsZWQtYmFja2dyb3VuZDogJGttYV9jb2xvcl9ncmV5LTIwMDtcblxuJGJ1dHRvbl9wcmltYXJ5LWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAka21hX2NvbG9yX3NlY29uZGFyeS01MDA7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAka21hX2NvbG9yX3NlY29uZGFyeS04MDA7XG4kYnV0dG9uX3ByaW1hcnktLWRpc2FibGVkLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAka21hX2NvbG9yX2dyZXktMjAwO1xuXG4kYnV0dG9uX3ByaW1hcnktY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuJGJ1dHRvbl9wcmltYXJ5LS1kaXNhYmxlZC1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTUwMDtcblxuLy8gU3R5bGVzIGZvciBgc2Vjb25kYXJ5YCBidXR0b24gdHlwZVxuJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkICRrbWFfY29sb3Jfc2Vjb25kYXJ5LTUwMDtcbiRidXR0b25fc2Vjb25kYXJ5LS1kaXNhYmxlZC1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGttYV9jb2xvcl9ncmV5LTIwMDtcblxuJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiRidXR0b25fc2Vjb25kYXJ5LS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAka21hX2NvbG9yX2dyZXktMTAwO1xuXG4kYnV0dG9uX3NlY29uZGFyeS1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjogJGttYV9jb2xvcl9zZWNvbmRhcnktNTAwO1xuJGJ1dHRvbl9zZWNvbmRhcnktLWRpc2FibGVkLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktNTAwO1xuXG5cblxuQG1peGluIGJ1dHRvbl9zcGFuKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgZm9udC1zaXplOiAkYnV0dG9uX2ZvbnQtc2l6ZTtcbn1cblxuQG1peGluIGJ1dHRvbihcbiAgICAkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3Ncbikge1xuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkYnV0dG9uX2ZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRidXR0b25fZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtYWxpZ246ICRidXR0b25fdGV4dC1hbGlnbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsaW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBAaWYgKCR0eXBlICE9ICdsaW5rJykge1xuICAgICAgICAgICAgcGFkZGluZzogJGJ1dHRvbl9wYWRkaW5nO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgICAgIGNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9wcmltYXJ5LWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ3NlY29uZGFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgICAgICBAaWYgKCR0eXBlICE9ICdsaW5rJykge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCR0eXBlID09ICdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgY3Vyc29yOiBhdXRvO1xuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdwcmltYXJ5Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9wcmltYXJ5LS1kaXNhYmxlZC1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS0tZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09ICdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3NlY29uZGFyeS0tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0tZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWRpc2FibGVkLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzkuOTllbSkge1xuICAuY3MtaGlkZS1sYXB0b3Age1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqLyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1oaWRlLXRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovIH0gfVxuXG4uY3Mtbm8tZGlzcGxheSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi8gfVxuXG4uY3MtYXNwZWN0LXJhdGlvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nLXRvcDogNTYuMjUlOyB9XG4gIC5jcy1hc3BlY3QtcmF0aW9fX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAwOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuLmNzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWNvbnRhaW5lcl9faW5uZXI6YmVmb3JlLCAuY3MtY29udGFpbmVyX19pbm5lcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDQwJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDMyJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDMwJTsgfSB9XG4gIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICB3aWR0aDogNTYlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA2NSU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA2NyU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4tLXNwYWNlLXRvcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH0gfVxuICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1ub3Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtY29udGFpbmVyLS1vbnRvcCB7XG4gICAgei1pbmRleDogMzAxOyB9XG4gIC5jcy1jb250YWluZXItLXZpZXdwb3J0LXdpZHRoIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY29udGFpbmVyX19pbm5lcjpiZWZvcmUsIC5jcy1jb250YWluZXJfX2lubmVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogNDAlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzIlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMjUlOyB9IH1cbiAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgIHdpZHRoOiA1NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY1JTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDcyJTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbi0tc3BhY2UtdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfSB9XG4gIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLW5vc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1jb250YWluZXItLW9udG9wIHtcbiAgICB6LWluZGV4OiAzMDE7IH1cbiAgLmNzLWNvbnRhaW5lci0tdmlld3BvcnQtd2lkdGgge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5ib2R5LFxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDB2dzsgfVxuXG4ubm8tc2Nyb2xsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7IH1cblxuLm5vLXNjcm9sbC1jaGlsZCB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbiNtYWluY29udGVudCB7XG4gIGZsZXg6IDEgMCBhdXRvOyB9XG5cbi5wYWdlLXdyYXBwZXIge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2Utd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH0gfVxuXG4uY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogNHJlbSAwIDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTByZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgICAgcGFkZGluZzogNHJlbSAwIDA7IH0gfVxuXG4uY21zLWhvbWUgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jbXMtaG9tZSAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG5cbi5wYWdlLWxheW91dC0xY29sdW1uIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDQwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgIHdpZHRoOiAzMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1tYWluLFxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1hZGRpdGlvbmFsIHtcbiAgICB3aWR0aDogMjIuNSU7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZjBmMGYwOyB9IH1cblxuYSwgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMzMjRkY2Y7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hOmhvdmVyLCBhOmZvY3VzLCBhOmFjdGl2ZSwgYTp2aXNpdGVkOmhvdmVyLCBhOnZpc2l0ZWQ6Zm9jdXMge1xuICBjb2xvcjogIzE0MmI5ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5naWZ0LW9wdGlvbnMtY2FydC1pdGVtIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGF5cGFsLWV4cHJlc3MtcmV2aWV3IC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLnBheXBhbC1yZXZpZXcudmlldyAuY3MtY2FydC1pdGVtX19wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgLnBheXBhbC1yZXZpZXcudmlldyAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBheXBhbC1yZXZpZXcudmlldyB7XG4gICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuXG4ucGF5cGFsLWV4cHJlc3MtaW4tY29udGV4dC1taW5pLWNhcnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLmFtYXpvbi1idXR0b24tY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAyNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB6LWluZGV4OiAzMDM7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuYW1hem9uLWJ1dHRvbi1jb250YWluZXIge1xuICAgICAgbWF4LXdpZHRoOiAzMnJlbTsgfSB9XG4gIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lciBpbWcge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGw6bnRoLWNoaWxkKDIpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWluLXdpZHRoOiAzcmVtO1xuICAgIGxlZnQ6IGNhbGMoMTAwJSArIDAuNnJlbSk7XG4gICAgdG9wOiAxLjlyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAgIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbDpudGgtY2hpbGQoMikge1xuICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgKyAwLjhyZW0pOyB9IH1cbiAgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgIHdpZHRoOiAyNXJlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNyk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIHBhZGRpbmc6IDAuOHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICAgIHdpZHRoOiAyOHJlbTsgfSB9XG4gICAgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzg4ODsgfVxuICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50LFxuICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgYm90dG9tOiA0MnB4O1xuICAgICAgbGVmdDogLTIxMHB4O1xuICAgICAgcmlnaHQ6IGF1dG87IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50LFxuICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICBsZWZ0OiAtMjUwcHg7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQsXG4gICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICAgIGxlZnQ6IC0yMzJweDsgfSB9XG4gICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyLFxuICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsXG4gICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAycmVtKTtcbiAgICAgICAgbGVmdDogMjEwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLCAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlcixcbiAgICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcbiAgICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgICAgIGJvdHRvbTogLTEwcHg7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICBsZWZ0OiAyNTBweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH0gfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSwgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIsXG4gICAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsXG4gICAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XG4gICAgICAgICAgICBsZWZ0OiAyMzJweDsgfSB9XG4gICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsXG4gICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IDIxMHB4OyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgICAgLmFtYXpvbi1taW5pY2FydC1jb250YWluZXIgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLFxuICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH0gfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcbiAgICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAyNTFweDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH0gfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5hbWF6b24tbWluaWNhcnQtY29udGFpbmVyIC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSxcbiAgICAgICAgICAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSB7XG4gICAgICAgICAgICBsZWZ0OiAyMzNweDsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlcixcbiAgICAgICAgLmNzLWNhcnQtc3VtbWFyeSAuYW1hem9uLWJ1dHRvbi1jb250YWluZXJfX2NlbGwgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmFtYXpvbi1idXR0b24tY29udGFpbmVyX19jZWxsIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLCAuY3MtY2FydC1zdW1tYXJ5IC5hbWF6b24tYnV0dG9uLWNvbnRhaW5lcl9fY2VsbCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAycmVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsgfSB9XG5cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gIHBhZGRpbmctdG9wOiAwOyB9XG5cbmJvZHkuX2hhcy1tb2RhbCB7XG4gIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gIGJvZHkuY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIG92ZXJmbG93OiB1bnNldCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgYm9keS5jYXRhbG9nLXByb2R1Y3Qtdmlldy5faGFzLW1vZGFsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OyB9IH1cblxuYm9keS5jbXMta21hLWhvbWUtcGFnZSAjbWFpbmNvbnRlbnQsXG5ib2R5LmNtcy1uby1yb3V0ZSAjbWFpbmNvbnRlbnQsXG5ib2R5LmJyYW5kcy1pbmRleC1hbGwgI21haW5jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoODVweCArIDIwcHgpOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIGJvZHkuY21zLWttYS1ob21lLXBhZ2UgI21haW5jb250ZW50IC5jcy1jb250YWluZXItLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fcGFnaW5hdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIGJvZHkuY21zLWttYS1ob21lLXBhZ2UgI21haW5jb250ZW50IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG5cbmJvZHkuY21zLW5vLXJvdXRlIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuYm9keS5jbXMtbm8tcm91dGUgI21haW5jb250ZW50IC5jcy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIGJvZHkuY21zLW5vLXJvdXRlICNtYWluY29udGVudCAuY3MtY29udGFpbmVyOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogNjUlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA0NiU7IH1cbiAgYm9keS5jbXMtbm8tcm91dGUgI21haW5jb250ZW50IC5jcy1jb250YWluZXIgaDMgKyBwIHtcbiAgICBtYXgtd2lkdGg6IDM4MHB4O1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICBib2R5LmNtcy1uby1yb3V0ZSAjbWFpbmNvbnRlbnQgLmNzLWNvbnRhaW5lciAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5IHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHBhZGRpbmctaW5saW5lOiA0cmVtO1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cblxuYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tcmF0ZSAjbWFpbmNvbnRlbnQsXG5ib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtICNtYWluY29udGVudCB7XG4gIHBhZGRpbmctYmxvY2s6IDVyZW0gMTRyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCxcbiAgICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtICNtYWluY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJsb2NrOiA1cmVtOyB9IH1cbiAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tcmF0ZSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnksIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZCxcbiAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeSxcbiAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tcmF0ZSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1yYXRlICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICBib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtICNtYWluY29udGVudCAuYWN0aW9uLnN1Ym1pdC5wcmltYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLWZvcm0gI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tcmF0ZSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeVtkaXNhYmxlZF0sIGJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUgI21haW5jb250ZW50IC5hY3Rpb24uc3VibWl0LnByaW1hcnk6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgYm9keS5oZWxwZGVzay1zYXRpc2ZhY3Rpb24tZm9ybSAjbWFpbmNvbnRlbnQgLmFjdGlvbi5zdWJtaXQucHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG5cbi5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1uYXYsXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctbmF2ID4gZGl2LCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctcGFyYW1ldGVycyxcbi5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1wYXJhbWV0ZXJzID4gZGl2LCAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctM0R2aWV3LFxuLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LTNEdmlldyA+IGRpdiwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWJyYW5kLWRldGFpbHMsXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscyA+IGRpdiwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCxcbi5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3QtaW5mby1jcm9zc3NlbGwgPiBkaXYge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG5cbi5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXJlbGF0ZWQsXG4uY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1yZWxhdGVkID4gZGl2IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNyAhaW1wb3J0YW50OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXJlbGF0ZWQgLmJsb2NrLnByb2R1Y3RzLXJlbGF0ZWQge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLWNyb3Nzc2VsbCA+IGRpdiwgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC1pbmZvLXVwc2VsbCA+IGRpdiB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1jcm9zc3NlbGwgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1jcm9zc3NlbGwgLmNzLXByb2R1Y3QtZGV0YWlsc19fY29udGVudCAuYmxvY2sucHJvZHVjdHMtY3Jvc3NzZWxsIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgLmNzLXByb2R1Y3QtZGV0YWlsc19faXRlbS0tcHJvZHVjdC12aWV3LWJyYW5kLWRldGFpbHMgPiBkaXYge1xuICAgIHBhZGRpbmctaW5saW5lOiAwOyB9XG4gIC5jcy1wcm9kdWN0LWRldGFpbHNfX2l0ZW0tLXByb2R1Y3Qtdmlldy1icmFuZC1kZXRhaWxzIC5jcy1wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDAgMS41cmVtICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtcHJvZHVjdC1kZXRhaWxzX19pdGVtLS1wcm9kdWN0LXZpZXctYnJhbmQtZGV0YWlscyAuY3MtcHJvZHVjdC1kZXRhaWxzX19jb250ZW50IC5wZHAtZGV0YWlscy1jb250YWluZXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5ib2R5LmNtcy1rb250YWt0ICNtYWluY29udGVudCB7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG5ib2R5LmNtcy1rb250YWt0IC5maWVsZCAuaW5wdXQtdGV4dC5yZXF1aXJlZC1lbnRyeSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuYm9keS5jbXMta29udGFrdCAuZmllbGQtcmVjYXB0Y2hhIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG5ib2R5LmNtcy1rb250YWt0IC5jcy1jb250YWluZXItLWltYWdlLXRlYXNlci5rbWFfY29udGFjdF9faW5mbyAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXIge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZy10b3A6IDgwcHg7IH1cblxuYm9keS5jbXMta29udGFrdCAua21hX2NvbnRhY3RfYWJvdXRfdXNfX2luZm8gLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgaGVpZ2h0OiAxMDUlOyB9XG5cbiNwaG9uZS1jb250YWN0LXJlcXVlc3QtZm9ybSAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbiNwaG9uZS1jb250YWN0LXJlcXVlc3QtZm9ybSAuZmllbGQtcmVjYXB0Y2hhIHtcbiAgbWFyZ2luLXRvcDogMnJlbTsgfVxuXG4uY3MtY2F0ZWdvcnktcGlsbHNfX2xpbmsge1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWNhdGVnb3J5LXBpbGxzX19saW5rOmhvdmVyLFxuICAuY3MtY2F0ZWdvcnktcGlsbHNfX2xpbms6aG92ZXIgLmNzLWNhdGVnb3J5LXBpbGxzX19xdHkge1xuICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWNhdGVnb3J5LXBpbGxzX19saW5rIC5jcy1jYXRlZ29yeS1waWxsc19fcXR5IHtcbiAgICBtYXJnaW4taW5saW5lOiAwOyB9XG5cbi5jcy1jYXRlZ29yeS1waWxsc19fYnV0dG9uIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7IH1cblxuLmNzLWNhdGVnb3J5LXBpbGxzLWJ1dHRvbi1jb250YWluZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzcmVtKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIHRvcDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxLjVyZW07XG4gIHJpZ2h0OiAxLjVyZW07XG4gIGJhY2tncm91bmQ6ICNkNWQ1ZDU7IH1cblxuLmNzLWNhdGVnb3J5LXBpbGxzLWJ1dHRvbi13cmFwcGVyIHtcbiAgYm9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5jcy1jYXRlZ29yeS1waWxscy1zY3JvbGwtYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC5tb2RhbC1wb3B1cCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDRweCk7XG4gICAgcmlnaHQ6IDA7IH0gfVxuXG4uY3MtY29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uYmFkZ2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuNXJlbTsgfVxuXG4uYmFkZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXI6IDFweCBzb2xpZDtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDExcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBwYWRkaW5nOiAycHggMC41cmVtO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuYmFkZ2Ugc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuICAuYmFkZ2UtYmVzdHNlbGxlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAzNjY2O1xuICAgIGNvbG9yOiAjMDAzNjY2OyB9XG4gIC5iYWRnZS1uZXcge1xuICAgIGJvcmRlci1jb2xvcjogIzMxODg2MjtcbiAgICBjb2xvcjogIzMxODg2MjsgfVxuICAuYmFkZ2UtcHJvbW8ge1xuICAgIGJvcmRlci1jb2xvcjogI2ZmNzIwMDtcbiAgICBjb2xvcjogI2ZmNzIwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Qb3BwaW5zLUxpZ2h0LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Qb3BwaW5zLVJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL1BvcHBpbnMtU2VtaUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi8vIFRPRE86IFJlbW92ZSBhZnRlciBnZXR0aW5nIHJpZCBvZiB0aGVzZSBmcm9tIHRlbXBsYXRlc1xuLmNzLWhpZGUtbGFwdG9wIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnLCAnPGxhcHRvcExnJykge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgfVxufVxuXG4uY3MtaGlkZS10YWJsZXQge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgfVxufVxuXG4uY3Mtbm8tZGlzcGxheSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xufVxuXG4uY3MtYXNwZWN0LXJhdGlvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG5cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbkBtaXhpbiBjb250YWluZXIoJGhvcml6b250YWwtcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1yaWdodDogJGhvcml6b250YWwtcGFkZGluZztcbn1cblxuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG5AbWl4aW4gY29udGFpbmVyLW5lZ2F0ZWQoJGhvcml6b250YWwtcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIpIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoJGhvcml6b250YWwtcGFkZGluZyk7XG4gICAgbWFyZ2luLWxlZnQ6IC0kaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIG1hcmdpbi1yaWdodDogLSRob3Jpem9udGFsLXBhZGRpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbkBtaXhpbiBjb250YWluZXItd3JhcHBlcigkbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGgpIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4iLCJAaW1wb3J0ICd+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvY29udGFpbmVyL21peGluLnNjc3MnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG5cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbkBtaXhpbiBjb250YWluZXIoJGhvcml6b250YWwtcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1yaWdodDogJGhvcml6b250YWwtcGFkZGluZztcbn1cblxuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG5AbWl4aW4gY29udGFpbmVyLW5lZ2F0ZWQoJGhvcml6b250YWwtcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIpIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoJGhvcml6b250YWwtcGFkZGluZyk7XG4gICAgbWFyZ2luLWxlZnQ6IC0kaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIG1hcmdpbi1yaWdodDogLSRob3Jpem9udGFsLXBhZGRpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbkBtaXhpbiBjb250YWluZXItd3JhcHBlcigkbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGgpIHtcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMiU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDU2JTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDY3JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3BhY2UtdG9wIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2dhbGxlcnk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmcnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc3BhY2lvdXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5vc2Nyb2xsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmLS1vbnRvcCB7XG4gICAgICAgIHotaW5kZXg6IDMwMTtcbiAgICB9XG5cbiAgICAmLS12aWV3cG9ydC13aWR0aCB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfYmFja2dyb3VuZC0xMDA7XG5cbiAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDMyJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNTYlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogNzIlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZS10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZ2FsbGVyeTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZycpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbm9zY3JvbGwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICYtLW9udG9wIHtcbiAgICAgICAgei1pbmRleDogMzAxO1xuICAgIH1cblxuICAgICYtLXZpZXdwb3J0LXdpZHRoIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gaGVhZGxpbmVfaG9vaygkbGV2ZWwpIHtcbn1cblxuQG1peGluIGxpbmtfaG9vaygpIHtcbn1cblxuQG1peGluIGxpc3RfaG9vaygpIHtcbn1cblxuQG1peGluIGxpc3QtaXRlbV9ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29tcG9uZW50cy9jb250YWluZXIvY29udGFpbmVyJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJG5zOiAnY3MtJztcblxuYm9keSxcbmh0bWwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xufVxuXG4ubm8tc2Nyb2xsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG59XG5cbi5uby1zY3JvbGwtY2hpbGQge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OyAvLyBPdmVyZmxvdyBoYXMgYmVlbiBtb3ZlZCB0byBjaGlsZCBlbGVtZW50IGluIG9yZGVyIHRvIG1haW50YWluIHZpc2liaWxpdHkgb2YgaXRlbXMgaW4gdGhlIGJhY2tncm91bmRcbn1cblxuI21haW5jb250ZW50IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbn1cblxuLnBhZ2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6ICRtYWluLWNvbHVtbl9wYWRkaW5nLW1vYmlsZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTByZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6ICRtYWluLWNvbHVtbl9wYWRkaW5nO1xuICAgIH1cbn1cblxuLmNtcy1ob21lIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgcGFkZGluZzogJGhvbWVwYWdlLW1haW4tY29sdW1uX3BhZGRpbmctbW9iaWxlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkaG9tZXBhZ2UtbWFpbi1jb2x1bW5fcGFkZGluZztcbiAgICB9XG59XG5cbi5wYWdlLWxheW91dC0xY29sdW1uIHtcbiAgICAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQge1xuICAgICAgICAuc2lkZWJhci1tYWluLFxuICAgICAgICAuc2lkZWJhci1hZGRpdGlvbmFsIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMi41JTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfZ2FsbGVyeTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYSB7XG4gICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgJGNvbG9yOiAkbGluay1jb2xvcl9iYXNlLFxuICAgICAgICAkY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXJcbiAgICApO1xufVxuXG4uZ2lmdC1vcHRpb25zLWNhcnQtaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy9QYXlwYWwgbW9kdWxlXG4ucGF5cGFsLWV4cHJlc3MtcmV2aWV3IC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgfVxufVxuXG4ucGF5cGFsLXJldmlldy52aWV3IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgLiN7JG5zfWNhcnQtaXRlbV9fcHJpY2Uge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9Y2FydC1pdGVtX19zdWJ0b3RhbCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgIH1cbn1cblxuLnBheXBhbC1leHByZXNzLWluLWNvbnRleHQtbWluaS1jYXJ0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLnBheXBhbC1yZXZpZXctZGlzY291bnQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi8vQW1hem9uIFBheSBsb2dpbiBidXR0b25cblxuLy9UaGUgaGlnaGVzdCBvZiBhbGwgYW1hem9uIHBheSBjb250YWluZXJzXG4vL1Nob3VsZCBub3QgYmUgdG9vIGxvbmdcbi8vaW4gbWluaWNhcnQsIHNhbGUgYmxvY2ssIGNoZWNrb3V0IHN1bW1hcnkgaXQgc2hvdWxkIGJlIGNlbnRlclxuLmFtYXpvbi1idXR0b24tY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogMzAzO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBtYXgtd2lkdGg6IDMycmVtO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fY2VsbCB7XG4gICAgICAgIC8vSW5mbyBzaWduIGVsZW1lbnQgLSBpcyBwbGFjZWQgYWJzb2x1dGVseSB0byBub3QgdGFrZSBwbGFjZSB3aGVuIGJ1dHRvbiBpcyBjZW50ZXJlZFxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDNyZW07XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgKyAwLjZyZW0pO1xuICAgICAgICAgICAgdG9wOiAxLjlyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygxMDAlICsgMC44cmVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vVG9vbHRpcCBzdHlsZSBhbmQgcG9zaXRpb25cbiAgICAgICAgLy9BcnJvdyBwb3NpdGlvblxuICAgICAgICAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAyNXJlbTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI4cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkY29sb3JfZ3JheTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9Nb3ZlIHRvb2x0aXAgZnJvbSByaWdodCB0byB0b3AgYmVjYXVzZSB0aGVyZSBpcyBubyBzcGFjZSBpbiBvdXIgc2hvcHMgb24gdGhlIHJpZ2h0XG4gICAgICAgICAgICAuYW1hem9uLW1pbmljYXJ0LWNvbnRhaW5lciAmLFxuICAgICAgICAgICAgLiN7JG5zfWNhcnQtc3VtbWFyeSAmIHtcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgYm90dG9tOiA0MnB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IC0yMTBweDtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTI1MHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogLTIzMnB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDJyZW0pO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMTBweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDI1MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDIzMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAyMTBweDtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMjUxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMjMzcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2FydCBzdW1tYXJ5IHRvb2x0aXAgbmVlZHMgc21hbGwgYWRqdXN0bWVudHNcbiAgICAgICAgICAgIC4jeyRuc31jYXJ0LXN1bW1hcnkgJiB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMnJlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4uc2Nzcyc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC1mYW1pbHk6ICRmb250X2ZhbWlseS1wcmltYXJ5O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG5cbiR0eXBvZ3JhcGh5X2xpbmstY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kdHlwb2dyYXBoeV9saW5rLS1ob3Zlci1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiR0eXBvZ3JhcGh5X2xpbmstdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuJHR5cG9ncmFwaHlfbGluay0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiAkdHlwb2dyYXBoeV9saW5rLXRleHQtZGVjb3JhdGlvbiAhZGVmYXVsdDtcblxuXG5cbkBtaXhpbiBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMikge1xuICAgIEBpbmNsdWRlIGZvbnQtZmFtaWx5KCR0eXBvZ3JhcGh5X2hlYWRsaW5lLWZvbnQtZmFtaWx5KTtcblxuICAgIGZvbnQtc2l6ZTogJGxldmVsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLW1hcmdpbnM7XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZV9ob29rKCRsZXZlbCk7XG59XG5cbkBtaXhpbiBsaW5rKFxuICAgICRjb2xvcjogJHR5cG9ncmFwaHlfbGluay1jb2xvcixcbiAgICAkY29sb3ItaG92ZXI6ICR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLWNvbG9yLFxuICAgICRkZWNvcmF0aW9uOiAkdHlwb2dyYXBoeV9saW5rLXRleHQtZGVjb3JhdGlvbixcbiAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJHR5cG9ncmFwaHlfbGluay0taG92ZXItdGV4dC1kZWNvcmF0aW9uXG4pIHtcbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb247XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgICY6dmlzaXRlZDpob3ZlcixcbiAgICAmOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRkZWNvcmF0aW9uLWhvdmVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmtfaG9vaygpO1xufVxuXG5AbWl4aW4gbGlzdCgpIHtcbiAgICBtYXJnaW46ICR0eXBvZ3JhcGh5X2xpc3QtbWFyZ2luO1xuICAgIHBhZGRpbmc6ICR0eXBvZ3JhcGh5X2xpc3QtcGFkZGluZztcblxuICAgIEBpbmNsdWRlIGxpc3RfaG9vaygpO1xufVxuXG5AbWl4aW4gbGlzdC1pdGVtKCkge1xuICAgIG1hcmdpbjogJHR5cG9ncmFwaHlfbGlzdC1pdGVtLW1hcmdpbjtcblxuICAgIEBpbmNsdWRlIGxpc3QtaXRlbV9ob29rKCk7XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9NYWdlbnRvX1RoZW1lL3dlYi9jc3Mvc291cmNlL2xheW91dFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uL21peGluXCI7XG5cbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG5cbmJvZHkuX2hhcy1tb2RhbCB7XG4gICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuYm9keS5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lTGdcIikge1xuICAgICAgICBvdmVyZmxvdzogdW5zZXQgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJi5faGFzLW1vZGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lTGdcIikge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ib2R5LmNtcy1rbWEtaG9tZS1wYWdlLFxuYm9keS5jbXMtbm8tcm91dGUsXG5ib2R5LmJyYW5kcy1pbmRleC1hbGwge1xuICAgICNtYWluY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKCN7JGttYV9mb290ZXItcGFkZGluZ30gKyAyMHB4KTtcbiAgICB9XG59XG5cbmJvZHkuY21zLWttYS1ob21lLXBhZ2Uge1xuICAgICNtYWluY29udGVudCB7XG4gICAgICAgIC5jcy1jb250YWluZXItLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fcGFnaW5hdGlvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxwaG9uZUxnXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ib2R5LmNtcy1uby1yb3V0ZSB7XG4gICAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTEwMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG4gICAgI21haW5jb250ZW50IHtcbiAgICAgICAgLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2dyZXktMTAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiA2NSU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ2JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGgzICsgcCB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzODBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYWN0aW9uLmNyZWF0ZS5wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiA0cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmJvZHkuaGVscGRlc2stc2F0aXNmYWN0aW9uLXJhdGUsXG5ib2R5LmhlbHBkZXNrLXNhdGlzZmFjdGlvbi1mb3JtIHtcbiAgICAjbWFpbmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiA1cmVtIDE0cmVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDVyZW07XG4gICAgICAgIH1cbiAgICAgICAgLmFjdGlvbi5zdWJtaXQucHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6IFwic2Vjb25kYXJ5XCIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9cHJvZHVjdC1kZXRhaWxzIHtcbiAgICAmX19pdGVtIHtcbiAgICAgICAgJi0tcHJvZHVjdC12aWV3LW5hdixcbiAgICAgICAgJi0tcHJvZHVjdC12aWV3LXBhcmFtZXRlcnMsXG4gICAgICAgICYtLXByb2R1Y3Qtdmlldy0zRHZpZXcsXG4gICAgICAgICYtLXByb2R1Y3Qtdmlldy1icmFuZC1kZXRhaWxzLFxuICAgICAgICAmLS1wcm9kdWN0LWluZm8tY3Jvc3NzZWxsIHtcbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtLXJlbGF0ZWQge1xuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5ibG9jay5wcm9kdWN0cy1yZWxhdGVkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1wcm9kdWN0LWluZm8tY3Jvc3NzZWxsLFxuICAgICAgICAmLS1wcm9kdWN0LWluZm8tdXBzZWxsIHtcbiAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtLWNyb3Nzc2VsbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtZGV0YWlsc19fY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgICAgICAgICAuYmxvY2sucHJvZHVjdHMtY3Jvc3NzZWxsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtLXByb2R1Y3Qtdmlldy1icmFuZC1kZXRhaWxzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LWRldGFpbHNfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAucGRwLWRldGFpbHMtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ib2R5LmNtcy1rb250YWt0IHtcbiAgICAjbWFpbmNvbnRlbnQge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC5maWVsZC1yZWNhcHRjaGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgICAuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIua21hX2NvbnRhY3RfX2luZm8gLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4MHB4O1xuICAgIH1cbiAgICAua21hX2NvbnRhY3RfYWJvdXRfdXNfX2luZm8ge1xuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXIge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDUlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jcGhvbmUtY29udGFjdC1yZXF1ZXN0LWZvcm0ge1xuICAgIC5maWVsZCAuaW5wdXQtdGV4dC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICAgIC5maWVsZC1yZWNhcHRjaGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbn1cblxuLy8gY2F0ZWdvcnkgcGlsbHNcblxuLiN7JG5zfWNhdGVnb3J5LXBpbGxzIHtcbiAgICAmX19saW5rIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAuI3skbnN9Y2F0ZWdvcnktcGlsbHNfX3F0eSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC4jeyRuc31jYXRlZ29yeS1waWxsc19fcXR5IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0zMDA7XG4gICAgfVxuICAgICYtYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGttYV9jb2xvcl9ncmV5LTMwMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLWJ1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLXNjcm9sbC1idXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG4vLyBNb2RhbCBmaXhcblxuLm1vZGFsLXBvcHVwIHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQ0cHgpO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59IiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcblxuLmJhZGdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAwLjVyZW07XG59XG5cbi5iYWRnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgbWF4LXdpZHRoOiAxMXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgcGFkZGluZzogMnB4IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIH1cbiAgICAmLWJlc3RzZWxsZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRrbWFfY29sb3JfYmx1ZTtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfYmx1ZTtcbiAgICB9XG4gICAgJi1uZXcge1xuICAgICAgICBib3JkZXItY29sb3I6ICRrbWFfY29sb3JfZ3JlZW47XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZWVuO1xuICAgIH1cbiAgICAmLXByb21vIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX29yYW5nZTtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3Jfb3JhbmdlO1xuICAgIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBc3luY2hyb25vdXNseSBsb2FkZWQgYnVuZGxlIGVudHJ5IHBvaW50LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb25maWdzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZlbmRvcnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVXRpbGl0aWVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQGltcG9ydCBcInV0aWxzL3V0aWxpdHktY2xhc3Nlc1wiO1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNaXhpbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMYXlvdXQgLSBvdmVycmlkZSBNMiB0aGVtZSBzdHlsZXMgYnkgdGhlaXIgY2xhc3Nlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBpbXBvcnQgXCJNYWdlbnRvX1RoZW1lL3dlYi9jc3Mvc291cmNlL2xheW91dFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYmFkZ2VzL2JhZGdlc1wiO1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUG9wcGlucy1MaWdodC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgc3JjOiB1cmwoXCIuLi9mb250cy9Qb3BwaW5zLVJlZ3VsYXIudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIHNyYzogdXJsKFwiLi4vZm9udHMvUG9wcGlucy1TZW1pQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjlyZW07XG4gIHBhZGRpbmc6IDAgMCAwIDAuM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICAgICAgcGFkZGluZzogMCAwIDAgMS4zcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuN3JlbTsgfSB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbms6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0OiAwLjJyZW0gc29saWQgI2ZmZjsgfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmZvY3VzLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmFjdGl2ZSwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICMxNDJiOWU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24ge1xuICAgIHdpZHRoOiAxLjhyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kYXV0aG9yaXphdGlvbi1saW5rX2l0ZW0tYm9yZGVyOiAwLjJyZW0gc29saWQgJGNvbG9yX2JvcmRlci0xMDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2RlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2hvdmVyLWRlY29yYXRpb246ICRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbiAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31hdXRob3JpemF0aW9uLWxpbmsge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMC45cmVtO1xuICAgIHBhZGRpbmc6IDAgMCAwIDAuM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMS4zcmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS43cmVtO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYXV0aG9yaXphdGlvbi1saW5rX2l0ZW0tYm9yZGVyO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLWhvdmVyLFxuICAgICAgICAgICAgJGRlY29yYXRpb246ICRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkYXV0aG9yaXphdGlvbi1saW5rX2hvdmVyLWRlY29yYXRpb25cbiAgICAgICAgKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYWRkdG9jYXJ0IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBAc3VwcG9ydHMgKGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAyNHB4KSkge1xuICAgICAgLmNzLWFkZHRvY2FydF9fd3JhcHBlciB7XG4gICAgICAgIGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAyNHB4KTsgfSB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYWRkdG9jYXJ0X19idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbiAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmUgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uICoge1xuICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqIHtcbiAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAuY3MtYWRkdG9jYXJ0X19jb25maWd1cmUtaWNvbiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24sIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiwgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB3aWR0aDogMi4ycmVtO1xuICAgIGhlaWdodDogMi4ycmVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwsIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLCB0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cbiAgLmNzLWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLCB0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbC0tMSB7XG4gICAgICAgIGxlZnQ6IDA7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbC0tMiB7XG4gICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4xNXMgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsLS0zIHtcbiAgICAgICAgbGVmdDogMzBweDtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMWVtO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDIuNWVtKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjAxLCAwLjY1LCAwLjM4LCAxKTtcbiAgICBiYWNrZ3JvdW5kOiAjMzFhNDNhOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tbm8tdHJhbnNpdGlvbnMgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLWZhaWwgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcge1xuICAgICAgYmFja2dyb3VuZDogI2NjMWMxMDsgfVxuICAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24sIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24sIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgaGVpZ2h0OiAxLjcyNWVtO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTJlbSk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDMuNXJlbTsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXN0aWNreSwgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sge1xuICAgICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgei1pbmRleDogNDAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3kgLnVpLWRpYWxvZywgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLnVpLWRpYWxvZyB7XG4gICAgICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3kgLmJsb2NrLW1pbmljYXJ0OmFmdGVyLCAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayAuYmxvY2stbWluaWNhcnQ6YWZ0ZXIge1xuICAgICAgICByaWdodDogMy4ycmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXN0aWNreSAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1saW5rLFxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1saW5rIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMi41cmVtIDFyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAxcHggM3B4IDQuNXJlbSAwIHJnYmEoMzAsIDQ4LCA2NywgMC4zNCk7XG4gICAgYW5pbWF0aW9uOiBtaW5pY2FydC1pbiAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LWxpbmsge1xuICAgIGFuaW1hdGlvbjogbWluaWNhcnQtb3V0IDAuNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMiwgMC44OSwgMC40NSk7IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluazpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogNjAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSwgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1hbmltYXRpbmcge1xuICAgICAgYW5pbWF0aW9uOiBtb3ZlLXF0eS1iYWRnZSAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMC41cmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tYW5pbWF0aW5nIHtcbiAgICAgICAgICB0b3A6IDEuM3JlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tYW5pbWF0aW5nIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA1LjNyZW07IH0gfVxuICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZy5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1taW5pY2FydC1zdGlja3kge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMS44cmVtOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0LS1kb25lIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDJlbSwgMCwgMCk7IH1cbiAgLmNzLWFkZHRvY2FydC0tbG9hZGluZyAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgdHJhbnNsYXRlWCgtMS4yNWVtKTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsIHtcbiAgICAgIGFuaW1hdGlvbjogYmFsbC1pbiAxcyBpbmZpbml0ZTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1kb25lIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1pY29uIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUuM3JlbSwgMCwgMCk7IH1cbiAgLmNzLWFkZHRvY2FydC0tc3VjY2VzcyAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24ge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWFkZHRvY2FydC0tc3VjY2VzcyAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7IH1cbiAgLmNzLWFkZHRvY2FydC0tZmFpbCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWFkZHRvY2FydC0tZmFpbCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7IH1cbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLFxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC41czsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZyB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4yczsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnLCAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZzphZnRlciB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZzphZnRlciB7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsXG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGxpbmVhciwgdHJhbnNmb3JtIDAuNnMgY3ViaWMtYmV6aWVyKDAuODYsIDAuMDEsIDAuODMsIDAuNTEpO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLFxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7IH1cblxuQGtleWZyYW1lcyBiYWxsLWluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1pbmljYXJ0LWluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1pbmljYXJ0LW91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOyB9IH1cblxuQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDE1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA4MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG4gIC5jcy1hZGR0b2NhcnQgLmJsb2NrLW1pbmljYXJ0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRhZGR0b2NhcnRfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbjogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXdpZHRoOiAyLjJyZW0gIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWhlaWdodDogJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLWljb24tZWRnZS1ndXR0ZXI6IDAuOGVtICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi1za2V3ZWQtYmFja2dyb3VuZC13aWR0aDogNS4xcmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24tcGFkZGluZy1sZWZ0OiAxcmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24tcGFkZGluZy1yaWdodDogNC41cmVtICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplOiAxMHB4ICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1wcmltYXJ5OiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1zZWNvbmRhcnk6ICRjb2xvcl9zdWNjZXNzLTYwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1maWxsOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1jb2xvciAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9hamF4LWZhaWwtYmctcHJpbWFyeTogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXNlY29uZGFyeTogJGNvbG9yX2Vycm9yLTYwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1mYWlsLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1maWxsOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvciAhZGVmYXVsdDtcblxuLiN7JG5zfWFkZHRvY2FydCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgLy8gYmVjYXVzZSBidXR0b24gY2FuJ3QgaGF2ZSBvdmVyZmxvdywgd2UgbmVlZCB0byBhZGQgaXQgb24gYnV0dG9uIHdyYXBwZXJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaWYgKCRidXR0b25fYm9yZGVyLXJhZGl1cyA+IDApIHtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwIHJvdW5kICRidXR0b25fYm9yZGVyLXJhZGl1cykpIHtcbiAgICAgICAgICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgJGJ1dHRvbl9ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRhZGR0b2NhcnRfYWpheC1mYWlsLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRhZGR0b2NhcnRfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19jb25maWd1cmUtaWNvbixcbiAgICAmX19idXR0b24taWNvbixcbiAgICAmX19zdWNjZXNzLWljb24sXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvblxuICAgICAgICApO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24taGVpZ2h0O1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgICAgIEBpZiAoJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbiA9PSAncmlnaHQnKSBvciAoJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbiA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICN7JGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbn06ICRhZGR0b2NhcnRfYnV0dG9uLWljb24tZWRnZS1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgIH1cblxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIH1cblxuICAgICZfX2xvYWRpbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZSAqIDQ7XG4gICAgICAgIGhlaWdodDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcblxuICAgICAgICAmLWJhbGwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgICAgICAmLS0xIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS0yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4xNXMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tMyB7XG4gICAgICAgICAgICAgICAgbGVmdDogMzBweDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuM3MgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtMWVtO1xuICAgICAgICB0b3A6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICBib3R0b206IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMi41ZW0pO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMDEsIDAuNjUsIDAuMzgsIDEpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1zZWNvbmRhcnk7XG5cbiAgICAgICAgI3skcm9vdH0tLW5vLXRyYW5zaXRpb25zICYge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1mYWlsICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9hamF4LWZhaWwtYmctc2Vjb25kYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1sYWJlbCxcbiAgICAmX19zdWNjZXNzLWljb24sXG4gICAgJl9fZmFpbC1sYWJlbCxcbiAgICAmX19mYWlsLWljb24ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtaWNvbixcbiAgICAmX19mYWlsLWljb24ge1xuICAgICAgICBoZWlnaHQ6IDEuNzI1ZW07XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1sYWJlbCxcbiAgICAmX19mYWlsLWxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTJlbSk7IC8vIGNhbGMoKSBkb2Vzbid0IHdvcmsgaW4gSUUgc28gaSBoYWQgdG8gZHVwbGljYXRlIHRyYW5zbGF0ZVgoKSB0cmFuc2Zvcm0gdG8gYWRqdXN0IFggcG9zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogI3skYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLXJpZ2h0IC1cbiAgICAgICAgICAgICRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctbGVmdH07XG4gICAgfVxuXG4gICAgJl9fbWluaWNhcnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICYtLXN0aWNreSxcbiAgICAgICAgJi0tdW5zdGljayB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgei1pbmRleDogNDAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5ibG9jay1taW5pY2FydCB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAzLjJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19taW5pY2FydC1saW5rIHtcbiAgICAgICAgI3skcm9vdH1fX21pbmljYXJ0LS1zdGlja3kgJixcbiAgICAgICAgI3skcm9vdH1fX21pbmljYXJ0LS11bnN0aWNrICYge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMi41cmVtIDFyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAxcHggM3B4IDQuNXJlbSAwIHJnYmEoMzAsIDQ4LCA2NywgMC4zNCk7XG4gICAgICAgICAgICBhbmltYXRpb246IG1pbmljYXJ0LWluIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19taW5pY2FydC0tdW5zdGljayAmIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbWluaWNhcnQtb3V0IDAuNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMiwgMC44OSwgMC40NSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlciB7XG4gICAgICAgICRiYWRnZS13cmFwcGVyOiAmO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgei1pbmRleDogNjAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksXG4gICAgICAgICAgICBsZWZ0IDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAmLS1hbmltYXRpbmcge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlLXF0eS1iYWRnZSAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxLjNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1LjNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRiYWRnZS13cmFwcGVyfS0tbWluaWNhcnQtc3RpY2t5IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgdG9wOiAxLjhyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbWluaWNhcnQtcXR5LWJhZGdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbG9hZGluZyxcbiAgICAmLS1kb25lIHtcbiAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1sYWJlbCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyZW0sIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbG9hZGluZyB7XG4gICAgICAgICN7JHJvb3R9X19sb2FkaW5nIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTEuMjVlbSk7IC8vIGNhbGMoKSBkb2Vzbid0IHdvcmsgaW4gSUUgc28gaSBoYWQgdG8gZHVwbGljYXRlIHRyYW5zbGF0ZVgoKSB0cmFuc2Zvcm0gdG8gYWRqdXN0IFggcG9zaXRpb25cblxuICAgICAgICAgICAgJi1iYWxsIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IGJhbGwtaW4gMXMgaW5maW5pdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kb25lIHtcbiAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fZmVlZGJhY2stYmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChcbiAgICAgICAgICAgICAgICAgICAgLSN7JGFkZHRvY2FydF9idXR0b24tc2tld2VkLWJhY2tncm91bmQtd2lkdGggKyAwLjJ9LFxuICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXN1Y2Nlc3Mge1xuICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWZhaWwge1xuICAgICAgICAjeyRyb290fV9fZmFpbC1pY29uIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fZmFpbC1sYWJlbCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWFuaW1hdGlvbi1kb25lIHtcbiAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1sYWJlbCxcbiAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fZmVlZGJhY2stYmcge1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWxhYmVsLFxuICAgICAgICAjeyRyb290fV9fZmFpbC1pY29uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBsaW5lYXIsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuNnMgY3ViaWMtYmV6aWVyKDAuODYsIDAuMDEsIDAuODMsIDAuNTEpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWljb24sXG4gICAgICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgQGtleWZyYW1lcyBiYWxsLWluIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgICAgICA1MCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG1pbmljYXJ0LWluIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBtaW5pY2FydC1vdXQge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgICAxNSUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgICA4MCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuICAgIC5ibG9jay1taW5pY2FydCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9hbmltYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vaG9vayc7XG5cbi8vIERlZmluZSBkZWZhdWx0IHR5cGUgZm9yIGJ1dHRvbnMuIFlvdSBjYW4gb3ZlcnJpZGUgaXQgaW5kaXZpZHVhbGx5IHBlciBidXR0b24gaW4gZWFjaCBjb21wb25lbnRcbi8vIFZhcmlhbnRzOiBwcmltYXJ5IHwgc2Vjb25kYXJ5IHwgbGluayB8IHN1Y2Nlc3MgfCBlcnJvclxuJGJ1dHRvbl9kZWZhdWx0LXR5cGU6ICdwcmltYXJ5JyAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIGRlZmF1bHQgcG9zaXRpb24gZm9yIGljb25zIGluIGJ1dHRvbi4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IGxlZnQgfCByaWdodCB8IG5vLWljb24gfCBvbmx5LWljb25cbiRidXR0b25fZGVmYXVsdC1pY29uLXBvczogJ3JpZ2h0JyAhZGVmYXVsdDtcblxuLy8gR2VuZXJhbCBzdHlsZXMgZm9yIGJ1dHRvbnNcbiRidXR0b25fZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2JvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmc6IDAuNzVlbSAxZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uOiAzZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmUtaGVpZ2h0OiAxLjI3NWVtICFkZWZhdWx0O1xuJGJ1dHRvbl9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tdGltZTogMC41cyAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLWJlZm9yZS13aWR0aDogMy40ZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi1hZnRlci13aWR0aDogM2VtICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC1sZXR0ZXItc3BhY2luZzogbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHByaW1hcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3ByaW1hcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1lbmFibGUtYW5pbWF0aW9uOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBzZWNvbmRhcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3NlY29uZGFyeS1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBTdHlsZSBmb3IgYGxpbmtgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2xpbmstY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay0taG92ZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay1pY29uLXBhZGRpbmc6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHN1Y2Nlc3NgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3N1Y2Nlc3MtYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgZXJyb3JgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2Vycm9yLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEZWZpbmVzIGhvdyBtdWNoIGJ1dHRvbiBpY29uIHNob3VsZCBiZSBwdWxsZWQgdmVydGljYWxseSB0byBjZW50ZXIgaXQuXG4vLyBTaG91bGQgYmUgZGVmaW5lZCBpbiBlbSB0byBtYWtlIGl0IHJlbGF0aXZlIHRvIGJ1dHRvbidzIGZvbnQgc2l6ZS5cbiRidXR0b25fc3Bhbi1mb250LW9mZnNldDogMCAhZGVmYXVsdDtcblxuLy8gRGVmaW5lcyBob3cgbXVjaCBidXR0b24gaWNvbiBzaG91bGQgYmUgcHVsbGVkIHZlcnRpY2FsbHkgdG8gY2VudGVyIGl0IG9uIGljb24gYnV0dG9uLlxuLy8gU2hvdWxkIGJlIGRlZmluZWQgaW4gZW0gdG8gbWFrZSBpdCByZWxhdGl2ZSB0byBidXR0b24ncyBmb250IHNpemUuXG4kYnV0dG9uX2ljb24tb2Zmc2V0OiAwLjFlbSAhZGVmYXVsdDtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY2FsYy1uby11bnNwYWNlZC1vcGVyYXRvclxuXG5AbWl4aW4gYnV0dG9uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b25fZm9udC13ZWlnaHQ7XG4gICAgdGV4dC1hbGlnbjogJGJ1dHRvbl90ZXh0LWFsaWduO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodDtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRidXR0b25fdGV4dC10cmFuc2Zvcm07XG5cbiAgICBAaWYgKCR0eXBlICE9ICdsaW5rJykge1xuICAgICAgICBwYWRkaW5nOiAkYnV0dG9uX3BhZGRpbmc7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLCBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3ByaW1hcnknKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9wcmltYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgICBAaWYgKCRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdzdWNjZXNzJykge1xuICAgICAgICBAaWYgKCRidXR0b25fc3VjY2Vzcy1lbmFibGUtYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fYW5pbWF0aW9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdlcnJvcicpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9lcnJvci0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3Bvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgQGlmICgkdHlwZSAhPSAnbGluaycpIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9wcmltYXJ5LWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3ByaW1hcnktZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ3NlY29uZGFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2xpbmstY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3N1Y2Nlc3MtYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc3VjY2Vzcy1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnZXJyb3InKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fZXJyb3ItYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fZXJyb3ItZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIEBpZiAoJHR5cGUgIT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnc2Vjb25kYXJ5Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLS1ob3Zlci1jb2xvcjtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9saW5rLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9lcnJvci0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9lcnJvci0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cblxuQG1peGluIGJ1dHRvbl9zcGFuKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgbWFyZ2luLXRvcDogJGJ1dHRvbl9zcGFuLWZvbnQtb2Zmc2V0O1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b25fZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodDtcbiAgICBsZXR0ZXItc3BhY2luZzogJGJ1dHRvbl90ZXh0LWxldHRlci1zcGFjaW5nO1xuXG4gICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmc7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICB1bml0KCRidXR0b25fcGFkZGluZy13aGVuLWljb24pID09XG4gICAgICAgICAgICAgICAgICAgIHVuaXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArXG4gICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICN7JGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbn0gK1xuICAgICAgICAgICAgICAgICAgICAgICAgI3tnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICBAaWYgKCR0eXBlID09ICdsaW5rJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgdW5pdCgkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uKSA9PVxuICAgICAgICAgICAgICAgICAgICB1bml0KFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArXG4gICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgI3skYnV0dG9uX3BhZGRpbmctd2hlbi1pY29ufSArXG4gICAgICAgICAgICAgICAgICAgICAgICAje2dldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3Bvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGljb25fcG9zID09ICdvbmx5LWljb24nKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cblxuQG1peGluIGJ1dHRvbl9pY29uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIH1cblxuICAgIEBpZiAoJGljb25fcG9zID09ICdvbmx5LWljb24nKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAkYnV0dG9uX2ljb24tb2Zmc2V0O1xuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZyAvIDI7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmcgLyAyO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgQGlmICgkdHlwZSA9PSAnbGluaycpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0gJ2xpbmsnKSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uX2ljb24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi5jcy1hdXRvY29tcGxldGUge1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgei1pbmRleDogMjAwO1xuICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCBkZDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5cmVtOyB9IH1cbiAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICBmb250LXNpemU6IDEuMjlyZW07IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtIHtcbiAgICBwYWRkaW5nOiAxcmVtOyB9IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZDpob3ZlciwgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQuc2VsZWN0ZWQsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW06aG92ZXIsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0uc2VsZWN0ZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkOmxhc3QtY2hpbGQsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtaW1hZ2UtY29udGFpbmVyLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWltYWdlLWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtaW1hZ2UsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0taW1hZ2Uge1xuICAgICAgd2lkdGg6IDQuNXJlbTtcbiAgICAgIGhlaWdodDogNC41cmVtOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtZGV0YWlscywgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1kZXRhaWxzIHtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy1ibG9jazogMnJlbTsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtZGV0YWlscyAuZi1maXgsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyAuZi1maXgge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1kZXRhaWxzIGltZywgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1kZXRhaWxzIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtYnJhbmQsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tYnJhbmQge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLW5hbWUsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tbmFtZSB7XG4gICAgICBmb250LXNpemU6IDEuMjlyZW07XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1wcmljZSwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1wcmljZSB7XG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDA7XG4gICAgICBwYWRkaW5nLWJsb2NrOiAxcmVtOyB9XG4gIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCA+IC5wcmljZSB7XG4gICAgICBjb2xvcjogIzMyNGRjZjtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTsgfSB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgPiAucHJpY2Uge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogOS41cmVtO1xuICAgICAgICAgIGJvdHRvbTogLTJyZW07IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogOXJlbTtcbiAgICAgICAgICB0b3A6IC0ycmVtOyB9IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgPiAucHJpY2Uge1xuICAgICAgY29sb3I6ICNlNDFmMTI7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2UtbGluayB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2Uge1xuICAgICAgb3JkZXI6IC0xOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2VzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi1oZWlnaHQ6IDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0ICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCArIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH0gfVxuXG4uYXV0b2NvbXBsZXRlLWxpc3Qge1xuICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3Q6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0IC5hbW91bnQge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTphZnRlciB7XG4gICAgICBjb250ZW50OiBcIilcIjsgfVxuICAgIC5hdXRvY29tcGxldGUtbGlzdCAuYW1vdW50Om5vdCg6ZW1wdHkpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIihcIjsgfVxuXG4uYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGUge1xuICBwYWRkaW5nOiAxLjJyZW0gM3JlbSAxcmVtIDFyZW07XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGNvbG9yOiAjODg4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuMjlyZW07XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIG1hcmdpbjogMDsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGU6aG92ZXIsIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZS5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlOm5vdCg6ZW1wdHkpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiB0cmFuc3BhcmVudDsgfVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBiYWRnZV9ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBiYWRnZV90eXBlLWhvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIGJhZGdlX3NwYW4taG9vaygkdHlwZSkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLypcbiAqIEJlY2F1c2UgcHJpY2UtYm94IGlzIHVzZWQgaW4gbXVsdGlwbGUgY29tcG9uZW50cyBsaWtlIHRpbGUsIGJ1eWJveCBldGMsXG4gKiB3ZSBuZWVkIHRvIG1vdmUgdmFyaWFibGVzIHRvIHNlcGFyYXRlIGZpbGUgdG8gaGF2ZSBwb3NzaWJpbGl0eSB0byBpbmNsdWRlIHRoZW1cbiAqIGluIGVhY2ggY29tcG9uZW50IHdpdGhvdXQgZ2VuZXJhdGUgcHJpY2UtYm94IGNvbXBvbmVudCBzdHlsZXMgbXVsdGlwbGUgdGltZXNcbiovXG5cbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yOiAkcHJpY2VfY29sb3IgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvcjogJHByaWNlX3NwZWNpYWwtY29sb3IgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94X29sZC1wcmljZS1jb2xvcjogJHByaWNlX29sZC1jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfbGFiZWwtY29sb3I6ICRwcmljZV9jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kcHJpY2UtYm94X2xhYmVsLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZGlzcGxheS1jb2xvbjogdHJ1ZSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtbWFyZ2luOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM6IDFyZW0gIWRlZmF1bHQ7XG4iLCJAaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcInZlbmRvcnMvaW5jbHVkZS1tZWRpYVwiO1xuXG5AaW1wb3J0IFwiY29tcG9uZW50cy9iYWRnZS9taXhpblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlc1wiO1xuXG4kYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9saXN0LWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoJGNvbG9yX3RleHQtOTAwLCAwLjE3KSAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nOiAxLjJyZW0gM3JlbSAxcmVtIDFyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ6IGF1dG8gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tcGFkZGluZzogMC41cmVtIDFyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbWFyZ2luOiAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQ6ICRhdXRvY29tcGxldGVfbGlzdC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS10aHVtYm5haWwtd2lkdGg6IDQuNXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS10aHVtYm5haWwtaGVpZ2h0OiA0LjVyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplOiAxLjI5cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbmFtZS1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW1fYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW1fYnJhbmQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV9pdGVtLXByaWNlLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1xdWFudGl0eS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW1fZGlzcGxheS1vbGQtcHJpY2UtZmlyc3Q6IHRydWUgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS10ZXh0LWRlY29yYXRpb246ICRwcmljZS1ib3hfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbiAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuXG4uI3skbnN9YXV0b2NvbXBsZXRlIHtcbiAgICAkcm9vdDogJjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRvY29tcGxldGVfbGlzdC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXItcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6ICRhdXRvY29tcGxldGVfbGlzdC1ib3gtc2hhZG93O1xuICAgIHotaW5kZXg6IDIwMDtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fVwiKSB7XG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hdXRvY29tcGxldGUtbGlzdC5wcm9kdWN0IGRkIHtcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmF1dG9jb21wbGV0ZS1saXN0IGRkLFxuICAgICZfX2l0ZW0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgcGFkZGluZzogJGF1dG9jb21wbGV0ZV9pdGVtLXBhZGRpbmc7XG4gICAgICAgIG1hcmdpbjogJGF1dG9jb21wbGV0ZV9pdGVtLW1hcmdpbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGF1dG9jb21wbGV0ZV9pdGVtLWJvcmRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIsIFwiPGxhcHRvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZC1ob3ZlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6ICRhdXRvY29tcGxldGVfaXRlbS10aHVtYm5haWwtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS10aHVtYm5haWwtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1kZXRhaWxzIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMnJlbTtcblxuICAgICAgICAgICAgLmYtZml4IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1icmFuZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtX2JyYW5kLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbmFtZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLXByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtYm94IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogOS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgJiA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA5cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm1pbmltYWwtcHJpY2UtbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkYXV0b2NvbXBsZXRlX2l0ZW1fZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcblxuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZXMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICB9XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlKCk7XG5cbiAgICAgICAgJiArICYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcG9wdWxhciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKFwicG9wdWxhclwiKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oXCJwb3B1bGFyXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnJlZS1zaGlwcGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKFwiZnJlZS1zaGlwcGluZ1wiKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oXCJmcmVlLXNoaXBwaW5nXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmVcIikge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICAgIGJvcmRlci10b3A6ICRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hbW91bnQge1xuICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIilcIjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiKFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGUge1xuICAgIHBhZGRpbmc6ICRhdXRvY29tcGxldGVfdGl0bGUtcGFkZGluZztcbiAgICBib3JkZXItYm90dG9tOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWJvcmRlcjtcbiAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV90aXRsZS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXNpemU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBtYXJnaW46ICRhdXRvY29tcGxldGVfdGl0bGUtbWFyZ2luO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvaG9vayc7XG5cbiRiYWRnZV9mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRiYWRnZV9mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGJhZGdlX2hlaWdodDogMmVtICFkZWZhdWx0O1xuJGJhZGdlX3BhZGRpbmc6IDAgMC43cmVtICFkZWZhdWx0O1xuJGJhZGdlX2JvcmRlcjogMCAhZGVmYXVsdDtcbiRiYWRnZV9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGJhZGdlX3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWRlZmF1bHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1uZXctYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLW5ldy1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWRpc2NvdW50LWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWRpc2NvdW50LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZnJlZS1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWZyZWUtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZnJlZS1zaGlwcGluZy1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLXBvcHVsYXItYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1wb3B1bGFyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGFpbHlkZWFsLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWRhaWx5ZGVhbC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLXRvcC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLXRvcC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG5AbWl4aW4gYmFkZ2UoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGVmYXVsdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtLWRlZmF1bHQtY29sb3I7XG4gICAgYm9yZGVyOiAkYmFkZ2VfYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRiYWRnZV9ib3JkZXItcmFkaXVzO1xuICAgIHBhZGRpbmc6ICRiYWRnZV9wYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGJhZGdlX2ZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGJhZGdlX2ZvbnQtd2VpZ2h0O1xuICAgIG1pbi1oZWlnaHQ6ICRiYWRnZV9oZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRiYWRnZV90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIGJhZGdlX2hvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gYmFkZ2VfdHlwZSgkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgQGlmICgkdHlwZSA9PSAnbmV3Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLW5ldy1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1uZXctY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnZnJlZScpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1mcmVlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWZyZWUtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnZnJlZS1zaGlwcGluZycpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWZyZWUtc2hpcHBpbmctY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAncG9wdWxhcicpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1wb3B1bGFyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLXBvcHVsYXItY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnZGlzY291bnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGlzY291bnQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGlzY291bnQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAncmVjZW50bHktYm91Z2h0Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnZGFpbHlkZWFsJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSAnZGFpbHlkZWFsLXBkcCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ3RvcCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS10b3AtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tdG9wLWNvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUtaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBiYWRnZV9zcGFuKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuXG4gICAgJiArICYge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4taG9vaygkdHlwZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4uY3MtYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nLXRvcDogMS4zcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgIGNvbnRlbnQ6IFwi4oGEXCI7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1icmVhZGNydW1ic19fbGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1icmVhZGNydW1ic19fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC5jcy1icmVhZGNydW1ic19fc2VwYXJhdG9yLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMC41ZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiAwLjhlbTtcbiAgICBoZWlnaHQ6IDAuOGVtO1xuICAgIGZpbGw6ICM4ODg7IH1cblxuLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyLS1icmVhZGNydW1icyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjAgdXJsKFwiLi4vaW1hZ2VzL2JyZWFkY3J1bWJzLnBuZ1wiKSBuby1yZXBlYXQgcmlnaHQvYXV0byA2LjhyZW07IH0gfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1icmVhZGNydW1icyB7XG4gIHBhZGRpbmctdG9wOiAxLjNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjNyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7IH1cbiAgLmNzLWJyZWFkY3J1bWJzX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1icmVhZGNydW1ic19faXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwLjk1ZW0gMCAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5jcy1icmVhZGNydW1ic19faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAgIC5jcy1icmVhZGNydW1ic19faXRlbTpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBjb250ZW50OiBcIuKBhFwiO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgIC5jcy1icmVhZGNydW1ic19fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX3NlcGFyYXRvci1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDAuNWVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogMC44ZW07XG4gICAgaGVpZ2h0OiAwLjhlbTtcbiAgICBmaWxsOiAjODg4OyB9XG5cbi5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH0gfVxuXG4uY21zLXNlcndpcyAuY3MtY29udGFpbmVyLS1icmVhZGNydW1icywgLmNtcy1rb250YWt0IC5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzLCAuY21zLW8tbmFzIC5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4iLCIvKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY3VzdG9tLXNob3c6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fVGhlbWUsXG4gICAgYnJlYWRjcnVtYnMsXG4gICAgY3VzdG9tX3NlcGFyYXRvcixcbiAgICBkaXNwbGF5XG4pICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2JyZWFkY3J1bWJzLnBuZycpICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2JhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWNvbG9yXG4gICAgJGJyZWFkY3J1bWJzX2JhY2tncm91bmQtaW1hZ2Ugbm8tcmVwZWF0IHJpZ2h0IC8gYXV0byA2LjhyZW0gIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic19pdGVtLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfaXRlbS12aXNpdGVkLWNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvciAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19sYXN0LWl0ZW0tY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbnRlbnQ6ICdcXDIwNDQnICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U6IDEuM3JlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWJyZWFkY3J1bWJzIHtcbiAgICAkcm9vdDogJjtcbiAgICBwYWRkaW5nLXRvcDogJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6ICRicmVhZGNydW1ic19pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfbGFzdC1pdGVtLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDAuOGVtO1xuICAgICAgICAgICAgY29udGVudDogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb250ZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jdXN0b20tc2hvdykge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWNvbG9yO1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VwYXJhdG9yLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogMC41ZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgICBoZWlnaHQ6IDAuOGVtO1xuICAgICAgICBmaWxsOiAkYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbG9yO1xuICAgIH1cbn1cblxuLmNzLWNvbnRhaW5lciB7XG4gICAgJi0tYnJlYWRjcnVtYnMge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJyZWFkY3J1bWJzX2JhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5cbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY3VzdG9tLXNob3c6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fVGhlbWUsXG4gICAgYnJlYWRjcnVtYnMsXG4gICAgY3VzdG9tX3NlcGFyYXRvcixcbiAgICBkaXNwbGF5XG4pICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU6IDEuM3JlbTtcbiRicmVhZGNydW1ic19pdGVtLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJGJyZWFkY3J1bWJzX2l0ZW0taG92ZXItY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kYnJlYWRjcnVtYnNfaXRlbS12aXNpdGVkLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJGJyZWFkY3J1bWJzX2xhc3QtaXRlbS1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTUwMDtcblxuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbnRlbnQ6IFwiXFwyMDQ0XCIgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic192ZXJ0aWNhbC1zcGFjZTogMS4zcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9YnJlYWRjcnVtYnMge1xuICAgICRyb290OiAmO1xuICAgIHBhZGRpbmctdG9wOiAkYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U7XG4gICAgcGFkZGluZy1ib3R0b206ICRicmVhZGNydW1ic192ZXJ0aWNhbC1zcGFjZTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxMDtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMC45NWVtIDAgMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6ICRicmVhZGNydW1ic19pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfbGFzdC1pdGVtLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBjb250ZW50OiAkYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbnRlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWN1c3RvbS1zaG93KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3I7XG5cbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS12aXNpdGVkLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0taG92ZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZXBhcmF0b3ItaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHJpZ2h0OiAwLjVlbTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICB3aWR0aDogMC44ZW07XG4gICAgICAgIGhlaWdodDogMC44ZW07XG4gICAgICAgIGZpbGw6ICRicmVhZGNydW1ic19zZXBhcmF0b3ItY29sb3I7XG4gICAgfVxufVxuXG4uY3MtY29udGFpbmVyIHtcbiAgICAmLS1icmVhZGNydW1icyB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY21zLXNlcndpcywgLmNtcy1rb250YWt0LCAuY21zLW8tbmFzIHtcbiAgLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMge1xuICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4uY3MtYnV0dG9uLCAuY3MtYnV0dG9uOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gIC5jcy1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgLmNzLWJ1dHRvbltkaXNhYmxlZF0sIC5jcy1idXR0b246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cblxuLmNzLWJ1dHRvbl9fc3BhbiB7XG4gIGZvbnQtc2l6ZTogMS42cmVtOyB9XG5cbi5jcy1idXR0b25fX2ljb24ge1xuICBtYXgtd2lkdGg6IDFlbTtcbiAgbWF4LWhlaWdodDogMS42cmVtO1xuICB6LWluZGV4OiAyO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5jcy1idXR0b24tY29tcG9uZW50IHtcbiAgbWFyZ2luOiAwIDAgM3JlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50LCAuY3MtYnV0dG9uLWNvbXBvbmVudDp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b24tY29tcG9uZW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b24tY29tcG9uZW50OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uLWNvbXBvbmVudDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgIC5jcy1idXR0b24tY29tcG9uZW50W2Rpc2FibGVkXSwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1idXR0b24tY29tcG9uZW50IHtcbiAgICAgIG1hcmdpbjogMCAwIDRyZW07IH0gfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudC0tc2tpcC1zcGFjaW5nIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX3NwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9fYW1vdW50OmJlZm9yZSB7XG4gICAgY29udGVudDogJygnOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19hbW91bnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcpJzsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRidXR0b24tZmFsbGJhY2tfdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRidXR0b24tY29tcG9uZW50X3R5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtcG9zaXRpb246IDUwJSAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtdHJhbnNsYXRpb246IHRyYW5zbGF0ZVgoLTUwJSkgIWRlZmF1bHQ7XG5cbi4jeyRuc31idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgJHR5cGU6ICRidXR0b24tZmFsbGJhY2tfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgKTtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWZhbGxiYWNrX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGJ1dHRvbi1mYWxsYmFja190eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uI3skbnN9YnV0dG9uLWNvbXBvbmVudCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAkdHlwZTogJGJ1dHRvbi1jb21wb25lbnRfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICk7XG4gICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAkYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXBvc2l0aW9uO1xuICAgIHRyYW5zZm9ybTogJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC10cmFuc2xhdGlvbjtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2Ftb3VudCB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBtaXhpbiBjb21wb25lbnQtc3BhY2luZygkbWFyZ2lucy1jb25maWc6ICRjb21wb25lbnQtc3BhY2luZy1jb25maWd1cmF0aW9uKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgZGVmYXVsdCkge1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gRGVmYXVsdCBjb21wb25lbnQgbWFyZ2luIHZhbHVlXG4gICAgICAgIG1hcmdpbjogMCAwIDNyZW07XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgcmVzcG9uc2l2ZSkge1xuICAgICAgICAvLyBBZGRpbmcgbWFyZ2luIHJ1bGVzIGZvciBlYWNoIHBhc3NlZCBicmVha3BvaW50XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkbWFyZ2luIGluIG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRicmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJG1hcmdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNraXAtc3BhY2luZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi5jcy1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1jb250YWluZXJfX2lubmVyOmJlZm9yZSwgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMiU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMCU7IH0gfVxuICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDU2JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjUlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjclOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uLS1zcGFjZS10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tbm9zY3JvbGwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWNvbnRhaW5lci0tb250b3Age1xuICAgIHotaW5kZXg6IDMwMTsgfVxuICAuY3MtY29udGFpbmVyLS12aWV3cG9ydC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWNvbnRhaW5lcl9faW5uZXI6YmVmb3JlLCAuY3MtY29udGFpbmVyX19pbm5lcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDQwJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDMyJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDI1JTsgfSB9XG4gIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICB3aWR0aDogNTYlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA2NSU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA3MiU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4tLXNwYWNlLXRvcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH0gfVxuICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1ub3Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtY29udGFpbmVyLS1vbnRvcCB7XG4gICAgei1pbmRleDogMzAxOyB9XG4gIC5jcy1jb250YWluZXItLXZpZXdwb3J0LXdpZHRoIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWNvb2tpZS1tZXNzYWdlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMS4ycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzAwMDtcbiAgYm94LXNoYWRvdzogMCAtMC4zcmVtIDAuNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGZvbnQtc2l6ZTogODUlO1xuICB6LWluZGV4OiA5ODtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMTAlLCAwKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMThzIGxpbmVhcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlLS1zaG93biB7XG4gICAgei1pbmRleDogMjAyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiA4cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb29raWUtbWVzc2FnZV9faW5uZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24td3JhcHBlciB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgYWxpZ24tc2VsZjogdW5zZXQ7IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgLmJsb2NrLWNtcy1saW5rLndpZGdldCxcbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYSwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMyNGRjZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOmhvdmVyLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTpmb2N1cywgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6YWN0aXZlLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTp2aXNpdGVkOmhvdmVyLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMTQyYjllO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDAuNXJlbTtcbiAgICB3aWR0aDogNS41cmVtO1xuICAgIGhlaWdodDogNS41cmVtO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2ljb24ge1xuICAgICAgICB0b3A6IC0zLjVyZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfSB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbi10b3A6IDEuMnJlbTsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbltkaXNhYmxlZF0sIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1zcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kY29va2llLW1lc3NhZ2VfYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2ZvbnQtc2l6ZTogODUlICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2ZvbnQtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfbGluay1jb2xvci0taG92ZXI6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50OiAndGFibGV0JyAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWFsaWduOiBmbGV4LXN0YXJ0ICFkZWZhdWx0O1xuXG4uI3skbnN9Y29va2llLW1lc3NhZ2Uge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMS4ycmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb29raWUtbWVzc2FnZV9iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiAkY29va2llLW1lc3NhZ2VfZm9udC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAwIC0wLjNyZW0gMC41cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBmb250LXNpemU6ICRjb29raWUtbWVzc2FnZV9mb250LXNpemU7XG4gICAgei1pbmRleDogOTg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMTAlLCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCwgb3BhY2l0eSAwLjE4cyBsaW5lYXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgIGJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zaG93biB7XG4gICAgICAgIHotaW5kZXg6IDIwMjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogOHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi13cmFwcGVyIHtcbiAgICAgICAgYWxpZ24tc2VsZjogJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYWxpZ247XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIC5ibG9jay1jbXMtbGluay53aWRnZXQsXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkY29va2llLW1lc3NhZ2VfbGluay1jb2xvci0taG92ZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgIHdpZHRoOiA1LjVyZW07XG4gICAgICAgIGhlaWdodDogNS41cmVtO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICB0b3A6IC0zLjVyZW07XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY29va2llLW1lc3NhZ2VfaWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkY29va2llLW1lc3NhZ2VfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjb29raWUtbWVzc2FnZV9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY29va2llLW1lc3NhZ2VfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWRpc3BsYXktY29udHJvbGxlci0taGlkZGVuLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1kaXNwbGF5LWNvbnRyb2xsZXItLWhpZGRlbi1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLiN7JG5zfWRpc3BsYXktY29udHJvbGxlciB7XG4gICAgJi0taGlkZGVuLW1vYmlsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWhpZGRlbi1kZXNrdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWRyb3Bkb3duLXN3aXRjaGVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlciAubWFnZS1kcm9wZG93bi1kaWFsb2cge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgbGVmdDogMXJlbTsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tY3VycmVuY3kgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICByaWdodDogLTFyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1zaHJpbms6IDA7IH1cbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAxLjNyZW07XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItbGVmdDogMC4ycmVtIHNvbGlkICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLXN0b3JlczpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fb3B0aW9uLWljb24ge1xuICAgIG1pbi13aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC42cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1sYW5ndWFnZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX29wdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4ICNkY2RjZGMgc29saWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUsIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyLCByaWdodCAwLjE1cyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICByaWdodDogM3JlbTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgcmlnaHQ6IDIuNXJlbTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUsIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIsIHJpZ2h0IDAuMTVzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICByaWdodDogMC41cmVtOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICByaWdodDogMDsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH0gfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmUge1xuICAgICAgICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTsgfSB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyLXNwYW4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItY29sb3I6ICNmMGYwZjA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAgMXB4IDFweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7IH0gfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29sb3I6ICMyMTIxMjEgIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAxLjRyZW0gMnJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMS44cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9IH1cblxuLmNzLWRyb3Bkb3duLXN3aXRjaGVyIHtcbiAgd2lkdGg6IHVuc2V0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1sYW5ndWFnZTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXItbGVmdC1jb2xvcjogIzMzMzMzMztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgbGVmdDogMXJlbTsgfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLWxhbmd1YWdlIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci1zcGFuIHtcbiAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgd2lkdGg6IDE4cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLWxhbmd1YWdlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tY3VycmVuY3kgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICBsZWZ0OiAtMXJlbSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tY3VycmVuY3kgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICAgICAgbGVmdDogdW5zZXQgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fb3B0aW9uLWljb24tLWFjdGl2ZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmN2Y3Zjc7IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjc1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH0gfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciBzcGFuIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyI3N3aXRjaGVyLWN1cnJlbmN5LXRyaWdnZXItdG9wYmFyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOjpiZWZvcmUsIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICAgIHdpZHRoOiAwLjVyZW07IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6OmJlZm9yZSB7XG4gICAgICByaWdodDogMC4zNXJlbTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjo6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IDA7IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlciAubWFnZS1kcm9wZG93bi1kaWFsb2cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDVyZW07XG4gICAgbGVmdDogLTZyZW07XG4gICAgcmlnaHQ6IC0xcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICByaWdodDogMDsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdC1pdGVtLWxpbmsge1xuICAgIHBhZGRpbmc6IDAuNnJlbSAwLjhyZW07IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gcHNldWRvaWNvbl9iZWZvcmUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcHNldWRvaWNvbl9hZnRlci1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy1ib3R0b20tYm9yZGVyOiAxcHggJGNvbG9yX2JvcmRlci01MDAgc29saWQgIWRlZmF1bHQ7XG5cbi8vIE9mZmNhbnZhcyB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctZGVmYXVsdDogJ2Rvd24nICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWhlaWdodDogMC4xcmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LW9mZnNldDogM3JlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldDogMi41cmVtICFkZWZhdWx0O1xuXG4vLyBEcm9wZG93biB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtODAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItdHlwZTogJ2Fycm93JyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWRlZmF1bHQ6ICdkb3duJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXdpZHRoOiAwLjdyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LW9mZnNldDogMC41cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl90b3BiYXItc2VwYXJhdG9yLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl9ib3JkZXItMTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk6IDEuNHJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5OiAxLjFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31kcm9wZG93bi1zd2l0Y2hlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jdXJyZW5jeSB7XG4gICAgICAgIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyB7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDEuM3JlbTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90b3BiYXItc2VwYXJhdG9yLWJvcmRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc3RvcmVzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb24ge1xuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1sYW5ndWFnZSAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy13aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dpdGNoZXItb3B0aW9ucyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLWJvdHRvbS1ib3JkZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaWYgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWVuYWJsZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXR5cGUsXG4gICAgICAgICAgICAgICAgJGFycm93LWRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1kZWZhdWx0LFxuICAgICAgICAgICAgICAgICRhcnJvdy1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1hY3RpdmUsXG4gICAgICAgICAgICAgICAgJHdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItd2lkdGgsXG4gICAgICAgICAgICAgICAgJGhlaWdodDogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWhlaWdodCxcbiAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAkY29sb3ItZXhwYW5kZWQ6XG4gICAgICAgICAgICAgICAgICAgICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvci0tYWN0aXZlLFxuICAgICAgICAgICAgICAgICRhY3RpdmUtc2VsZWN0b3I6ICcmLmFjdGl2ZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1zZWNvbmRhcnk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gMCAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICAgICAgQGlmICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWVuYWJsZWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAkd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OlxuICAgICAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyLXRyaWdnZXItY29sb3ItLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItZXhwYW5kZWQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICRhY3RpdmUtc2VsZWN0b3I6ICcmLmFjdGl2ZSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLXN3aXRjaGVyX2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRkcm9wZG93bi1zd2l0Y2hlcl9ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXItY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaXRlbS1saW5rIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWl0ZW0tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNHJlbSAycmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC42cmVtIDEuOHJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vaG9vayc7XG5cbiRwc2V1ZG9pY29uLXR5cGU6ICdwbHVzJyAhZGVmYXVsdDsgLy8gcGx1cyAoZGVmYXVsdCkgb3IgYXJyb3dcbi8vIEFuaW1hdGlvbiBmb3IgYXJyb3dzIHdvcmtzIG9ubHkgaWYgZGVmYXVsdCBhbmQgYWN0aXZlIGRpcmVjdGlvbiBhcmUgb3Bwb3NpdGVcbiRwc2V1ZG9pY29uLWFuaW1hdGU6IHRydWUgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1hbmltYXRpb24tdGltZTogMC4xNXMgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1ob3Zlci1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1leHBhbmRlZC1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi13aWR0aDogMS4ycmVtICFkZWZhdWx0O1xuJHBzZXVkb2ljb24taGVpZ2h0OiAwLjJyZW0gIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1wb3NpdGlvbi1zaWRlLW9mZnNldDogJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbi8vIEFkZGl0aW9uYWwgc2V0dGluZ3MgZm9yIGFycm93c1xuJHBzZXVkb2ljb24tYXJyb3ctZGVmYXVsdC1kaXJlY3Rpb246ICd1cCcgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1hcnJvdy1hY3RpdmUtZGlyZWN0aW9uOiAnZG93bicgIWRlZmF1bHQ7XG4vLyBJbiBzb21lIGNhc2VzIChpdCBkZXBlbmRzIG9uICRwc2V1ZG9pY29uLXdpZHRoL2hlaWdodCB2YWx1ZSksIHdlIG5lZWQgdG8gZml4IG9mZnNldCBmb3IgbGVmdCBwYXJ0IG9mIGljb25cbiRwc2V1ZG9pY29uLWFycm93LWxlZnQtb2Zmc2V0OiBjYWxjKFxuICAgICN7JHBzZXVkb2ljb24tcG9zaXRpb24tc2lkZS1vZmZzZXR9ICsgI3skcHNldWRvaWNvbi13aWR0aH0gLSAjezIgKlxuICAgICAgICAkcHNldWRvaWNvbi1oZWlnaHR9XG4pICFkZWZhdWx0O1xuXG4kcHNldWRvaWNvbi1hY3RpdmUtc2VsZWN0b3I6ICcmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdJyAhZGVmYXVsdDtcblxuQG1peGluIHBzZXVkb2ljb24oXG4gICAgJHR5cGU6ICRwc2V1ZG9pY29uLXR5cGUsXG4gICAgJGFuaW1hdGVkOiAkcHNldWRvaWNvbi1hbmltYXRlLFxuICAgICRhbmltYXRpb24tdGltZTogJHBzZXVkb2ljb24tYW5pbWF0aW9uLXRpbWUsXG4gICAgJGNvbG9yOiAkcHNldWRvaWNvbi1jb2xvcixcbiAgICAkY29sb3ItaG92ZXI6ICRwc2V1ZG9pY29uLWhvdmVyLWNvbG9yLFxuICAgICRjb2xvci1leHBhbmRlZDogJHBzZXVkb2ljb24tZXhwYW5kZWQtY29sb3IsXG4gICAgJHdpZHRoOiAkcHNldWRvaWNvbi13aWR0aCxcbiAgICAkaGVpZ2h0OiAkcHNldWRvaWNvbi1oZWlnaHQsXG4gICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAkcHNldWRvaWNvbi1wb3NpdGlvbi1zaWRlLW9mZnNldCxcbiAgICAkYXJyb3ctZGVmYXVsdDogJHBzZXVkb2ljb24tYXJyb3ctZGVmYXVsdC1kaXJlY3Rpb24sXG4gICAgJGFycm93LWFjdGl2ZTogJHBzZXVkb2ljb24tYXJyb3ctYWN0aXZlLWRpcmVjdGlvbixcbiAgICAkYXJyb3ctb2Zmc2V0OiAkcHNldWRvaWNvbi1hcnJvdy1sZWZ0LW9mZnNldCxcbiAgICAkYWN0aXZlLXNlbGVjdG9yOiAkcHNldWRvaWNvbi1hY3RpdmUtc2VsZWN0b3Jcbikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgQGlmICgkYW5pbWF0ZWQpIHtcbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ2Fycm93Jykge1xuICAgICAgICAgICAgICAgIEBpZiAoKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIGFuZCAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpKSBvclxuICAgICAgICAgICAgICAgICAgICAoKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykgYW5kICgkYXJyb3ctYWN0aXZlID09ICd1cCcpKSBvclxuICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKVxuICAgICAgICAgICAgICAgICAgICApIG9yXG4gICAgICAgICAgICAgICAgICAgICgoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0JykgYW5kICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0JykpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJGFuaW1hdGlvbi10aW1lIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0ICRhbmltYXRpb24tdGltZSBsaW5lYXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gKDIgKiAkYW5pbWF0aW9uLXRpbWUpIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICRhbmltYXRpb24tdGltZSBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoJGNvbG9yLWhvdmVyICE9ICRjb2xvcikge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAaWYgKCRjb2xvci1ob3ZlciAhPSAkY29sb3IpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICN7JGFjdGl2ZS1zZWxlY3Rvcn0ge1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaWYgKCRjb2xvci1leHBhbmRlZCAhPSAkY29sb3IpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZXhwYW5kZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdhcnJvdycpIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgNTAlLCAwKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JGFjdGl2ZS1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjI1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRhY3RpdmUtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbl9iZWZvcmUtaG9vaygkdHlwZSk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb25fYWZ0ZXItaG9vaygkdHlwZSk7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvZHJvcGRvd24tc3dpdGNoZXIvZHJvcGRvd24tc3dpdGNoZXIuc2Nzc1wiO1xuXG4uI3skbnN9ZHJvcGRvd24tc3dpdGNoZXIge1xuICAgICRyb290OiAmO1xuICAgIHdpZHRoOiB1bnNldDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAmLS1sYW5ndWFnZSB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgfVxuICAgICAgICAjeyRyb290fV9fdHJpZ2dlciB7XG4gICAgICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgICYtLWN1cnJlbmN5IHtcbiAgICAgICAgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICAgICAgICAgIGxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX29wdGlvbiB7XG4gICAgICAgICYtaWNvbi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fdHJpZ2dlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43NXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB9XG4gICAgICAgICYjc3dpdGNoZXItY3VycmVuY3ktdHJpZ2dlci10b3BiYXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2JsYWNrO1xuICAgICAgICAgICAgd2lkdGg6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgcmlnaHQ6IDAuMzVyZW07XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnN3aXRjaGVyLW9wdGlvbnMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDVyZW07XG4gICAgICAgIGxlZnQ6IC02cmVtO1xuICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19saXN0LWl0ZW0tbGluayB7XG4gICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjhyZW07XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNzLWZpZWxkLFxuLmNzLWlucHV0IHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1maWVsZF9fY29udHJvbCxcbiAgLmNzLWlucHV0X19jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZmllbGRfX2xhYmVsLFxuICAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDRweCAwOyB9XG4gICAgLnJlcXVpcmVkIC5jcy1maWVsZF9fbGFiZWw6YWZ0ZXIsIC5yZXF1aXJlZFxuICAgIC5jcy1pbnB1dF9fbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgKlwiO1xuICAgICAgY29sb3I6ICNmZjAwMTg7XG4gICAgICBwYWRkaW5nOiA0cHggMDsgfVxuICAuY3MtZmllbGRfX2lucHV0LCAuY3MtZmllbGRfX3RleHRhcmVhLFxuICAuY3MtaW5wdXRfX2lucHV0LFxuICAuY3MtaW5wdXRfX3RleHRhcmVhIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuICAgIC5jcy1maWVsZF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX190ZXh0YXJlYTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dC5tYWdlLWVycm9yLCAuY3MtZmllbGRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksIC5jcy1maWVsZF9fdGV4dGFyZWEubWFnZS1lcnJvciwgLmNzLWZpZWxkX190ZXh0YXJlYS5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAgIC5jcy1pbnB1dF9faW5wdXQubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYS5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWEubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dC5yZXF1aXJlZC1lbnRyeSwgLmNzLWZpZWxkX190ZXh0YXJlYS5yZXF1aXJlZC1lbnRyeSxcbiAgICAuY3MtaW5wdXRfX2lucHV0LnJlcXVpcmVkLWVudHJ5LFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWEucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jcy1maWVsZF9faW5wdXQ6OnBsYWNlaG9sZGVyLCAuY3MtZmllbGRfX3RleHRhcmVhOjpwbGFjZWhvbGRlcixcbiAgICAuY3MtaW5wdXRfX2lucHV0OjpwbGFjZWhvbGRlcixcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuICAgIC5jcy1maWVsZF9faW5wdXRbZGlzYWJsZWRdLCAuY3MtZmllbGRfX3RleHRhcmVhW2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX2lucHV0W2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dC5tYWdlLWVycm9yLCAuY3MtZmllbGRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksIC5jcy1maWVsZF9fdGV4dGFyZWEubWFnZS1lcnJvciwgLmNzLWZpZWxkX190ZXh0YXJlYS5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAgIC5jcy1pbnB1dF9faW5wdXQubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYS5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWEubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gIC5jcy1maWVsZF9fc2VsZWN0LFxuICAuY3MtaW5wdXRfX3NlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyM2Q1ZDVkNSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3QubWFnZS1lcnJvciwgLmNzLWZpZWxkX19zZWxlY3QubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdC5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0LnJlcXVpcmVkLWVudHJ5LFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0LnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdDotbW96LWZvY3VzcmluZywgLmNzLWZpZWxkX19zZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLmNzLWlucHV0X19zZWxlY3Q6LW1vei1mb2N1c3JpbmcsXG4gICAgLmNzLWlucHV0X19zZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX3NlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19zZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjMzMzMzMzMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0W2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0IG9wdGlvbixcbiAgICAuY3MtaW5wdXRfX3NlbGVjdCBvcHRpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5jcy1maWVsZF9fcmFkaW8sXG4gIC5jcy1pbnB1dF9fcmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEuOXJlbTtcbiAgICB3aWR0aDogMS45cmVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW86Oi1tb3otZm9jdXMtaW5uZXIsIC5jcy1maWVsZF9fcmFkaW86LW1vei1mb2N1c3JpbmcsXG4gICAgLmNzLWlucHV0X19yYWRpbzo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuY3MtaW5wdXRfX3JhZGlvOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW86aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX3JhZGlvOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzMzMzMzMycgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAgICAgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkLCAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQ6aG92ZXIsIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZDpmb2N1cyxcbiAgICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZCxcbiAgICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZDpob3ZlcixcbiAgICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWZpZWxkX19yYWRpb1tkaXNhYmxlZF0sXG4gICAgLmNzLWZpZWxkX19yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmNzLWZpZWxkX19yYWRpb1tkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsLFxuICAgIC5jcy1pbnB1dF9fcmFkaW9bZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fcmFkaW9bZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1pbnB1dF9fcmFkaW9bZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1maWVsZF9fY2hlY2tib3gsXG4gIC5jcy1pbnB1dF9fY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEuOXJlbTtcbiAgICB3aWR0aDogMS45cmVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lciwgLmNzLWZpZWxkX19jaGVja2JveDotbW96LWZvY3VzcmluZyxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQsXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzMzMzMzMzJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gICAgICAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQsIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZDpob3ZlciwgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkOmZvY3VzLFxuICAgICAgLmNzLWlucHV0X19jaGVja2JveDpjaGVja2VkLFxuICAgICAgLmNzLWlucHV0X19jaGVja2JveDpjaGVja2VkOmhvdmVyLFxuICAgICAgLmNzLWlucHV0X19jaGVja2JveDpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94W2Rpc2FibGVkXSxcbiAgICAuY3MtZmllbGRfX2NoZWNrYm94W2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuY3MtZmllbGRfX2NoZWNrYm94W2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwsXG4gICAgLmNzLWlucHV0X19jaGVja2JveFtkaXNhYmxlZF0sXG4gICAgLmNzLWlucHV0X19jaGVja2JveFtkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmNzLWlucHV0X19jaGVja2JveFtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQsXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NwYXRoIGZpbGw9JyUyMzMzMzMzMycgZD0nTTUuMzEzIDEwLjEwOEg1LjI0YTEuMDY0IDEuMDA1IDAgMCAxLS43NS0uNDFsLTEuOTQ3LTIuNTVhMS4wNjQgMS4wMDUgMCAwIDEgMS43MjMtMS4xNzVMNS40NjMgNy41NiA5LjA2IDQuMTlhMS4wNjQgMS4wMDUgMCAwIDEgLjc1LS4yOTdoLjg0NmExLjA2NCAxLjAwNSAwIDAgMSAwIDIuMDA0aC0uNDVMNi4wNjQgOS44MWExLjA2NCAxLjAwNSAwIDAgMS0uNzUuMjk4eicvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3gubWFnZS1lcnJvciwgLmNzLWZpZWxkX19jaGVja2JveC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3gubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAuY3MtZmllbGRfX2ljb24sXG4gIC5jcy1pbnB1dF9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxLjNlbTtcbiAgICBoZWlnaHQ6IDEuM2VtO1xuICAgIHJpZ2h0OiAwLjhlbTtcbiAgICB0b3A6IDAuOGVtO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWZpZWxkX19ub3RlLFxuICAuY3MtaW5wdXRfX25vdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG4gIC5jcy1maWVsZF9fZXJyb3IsXG4gIC5jcy1pbnB1dF9fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIGNvbG9yOiAjZmYwMDE4OyB9XG5cbi5maWVsZCB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuZmllbGQuX3N1Y2Nlc3M6bm90KC5fd2FybikgLmNvbnRyb2wge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5maWVsZC5fc3VjY2Vzczpub3QoLl93YXJuKSAuY29udHJvbDphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMS4zZW07XG4gICAgICBoZWlnaHQ6IDEuM2VtO1xuICAgICAgcmlnaHQ6IDAuOGVtO1xuICAgICAgdG9wOiAwLjhlbTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvY2hlY2stZ3JlZW4uc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyL2NvbnRhaW47XG4gICAgICBjb250ZW50OiAnJzsgfVxuICAuZmllbGQgLmNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWEge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYTpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgICAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYS5tYWdlLWVycm9yLCAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYS5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWEucmVxdWlyZWQtZW50cnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWFbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuICAuZmllbGQgLmxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDRweCAwOyB9XG4gIC5maWVsZC5yZXF1aXJlZCA+IC5sYWJlbDphZnRlciwgLmZpZWxkLl9yZXF1aXJlZCA+IC5sYWJlbDphZnRlciB7XG4gICAgY29udGVudDogXCIgKlwiO1xuICAgIGNvbG9yOiAjZmYwMDE4O1xuICAgIHBhZGRpbmc6IDRweCAwOyB9XG4gIC5maWVsZC5yZXF1aXJlZCAuX3JlcXVpcmVkID4gLmxhYmVsOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5maWVsZCAuaW5wdXQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNC44cmVtO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQgLmlucHV0LXRleHQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0Lm1hZ2UtZXJyb3IsIC5maWVsZCAuaW5wdXQtdGV4dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQubWFnZS1lcnJvciwgLmZpZWxkIC5pbnB1dC10ZXh0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5maWVsZCAuc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuM2VtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZDVkNWQ1JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQgLnNlbGVjdC5tYWdlLWVycm9yLCAuZmllbGQgLnNlbGVjdC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAuZmllbGQgLnNlbGVjdC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLmZpZWxkIC5zZWxlY3Q6LW1vei1mb2N1c3JpbmcsIC5maWVsZCAuc2VsZWN0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5maWVsZCAuc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5zZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyMzMzMzMzMyclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpOyB9XG4gICAgLmZpZWxkIC5zZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuZmllbGQgLnNlbGVjdCBvcHRpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5maWVsZCAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEuOXJlbTtcbiAgICB3aWR0aDogMS45cmVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lciwgLmZpZWxkIC5jaGVja2JveDotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzMzMzMzMycgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAgICAgLmZpZWxkIC5jaGVja2JveDpjaGVja2VkLCAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQ6aG92ZXIsIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveFtkaXNhYmxlZF0sXG4gICAgLmZpZWxkIC5jaGVja2JveFtkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmZpZWxkIC5jaGVja2JveFtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nJTIzMzMzMzMzJyBkPSdNNS4zMTMgMTAuMTA4SDUuMjRhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LS40MWwtMS45NDctMi41NWExLjA2NCAxLjAwNSAwIDAgMSAxLjcyMy0xLjE3NUw1LjQ2MyA3LjU2IDkuMDYgNC4xOWExLjA2NCAxLjAwNSAwIDAgMSAuNzUtLjI5N2guODQ2YTEuMDY0IDEuMDA1IDAgMCAxIDAgMi4wMDRoLS40NUw2LjA2NCA5LjgxYTEuMDY0IDEuMDA1IDAgMCAxLS43NS4yOTh6Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveC5tYWdlLWVycm9yLCAuZmllbGQgLmNoZWNrYm94Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAuZmllbGQgLnJhZGlvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjlyZW07XG4gICAgd2lkdGg6IDEuOXJlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQgLnJhZGlvOjotbW96LWZvY3VzLWlubmVyLCAuZmllbGQgLnJhZGlvOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5maWVsZCAucmFkaW86aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQgLnJhZGlvOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmZpZWxkIC5yYWRpbzpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzMzMzMzMzJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gICAgICAuZmllbGQgLnJhZGlvOmNoZWNrZWQsIC5maWVsZCAucmFkaW86Y2hlY2tlZDpob3ZlciwgLmZpZWxkIC5yYWRpbzpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZmllbGQgLnJhZGlvW2Rpc2FibGVkXSxcbiAgICAuZmllbGQgLnJhZGlvW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuZmllbGQgLnJhZGlvW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuM2VtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZDVkNWQ1JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0Lm1hZ2UtZXJyb3IsIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3QubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdDotbW96LWZvY3VzcmluZywgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzMzMzMzMzJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdCBvcHRpb24ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5maWVsZC5maWVsZC1kb2IgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dC5tYWdlLWVycm9yLCAuZmllbGQuZmllbGQtZG9iIGlucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQubWFnZS1lcnJvciwgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbiwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbltkaXNhYmxlZF0sIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b24gc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmZpZWxkLl9lcnJvciAuaW5wdXQtdGV4dCwgLmZpZWxkLl9lcnJvciAuaW5wdXQtdGV4dDpob3Zlcjpub3QoOmZvY3VzKSxcbiAgLmZpZWxkLl9lcnJvciAuY2hlY2tib3gsXG4gIC5maWVsZC5fZXJyb3IgLmNoZWNrYm94OmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gIC5maWVsZCAuY29udHJvbC5fd2l0aC10b29sdGlwIGlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmZpZWxkIC5maWVsZC10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgLmZpZWxkIC5maWVsZC10b29sdGlwIC5sYWJlbCxcbiAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07IH1cbiAgICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmJlZm9yZSwgLmZpZWxkIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5maWVsZCAubm90ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgcGFkZGluZzogNHB4IDA7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07IH1cblxuZGl2Lm1hZ2UtZXJyb3IsXG5kaXYuZmllbGQtZXJyb3Ige1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjg1ZW07XG4gIHBhZGRpbmc6IDRweCAwO1xuICBjb2xvcjogIzY5Njk2OTtcbiAgbWFyZ2luLXRvcDogLTFyZW07XG4gIGNvbG9yOiAjZmYwMDE4OyB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5maWVsZDplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZmllbGQgdGV4dGFyZWEge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDgwcHg7XG4gIG1pbi13aWR0aDogMTAwJTsgfVxuXG4uZmllbGQgLm1hZ2UtZXJyb3Ige1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gZmllbGQtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwtcmVxdWlyZWQtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWNvbnRyb2wtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0LWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1lcnJvci1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtaWNvbi1ob29rKCR0eXBlOiAnJykge1xufVxuXG5AbWl4aW4gZmllbGQtbm90ZS1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtZXJyb3ItaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLXdhcm5pbmctaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLXNlbGVjdC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8taG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWxhYmVsLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtbGFiZWwtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWRvYi1ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy91cmktZnJpZW5kbHktaGV4JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvaG9vayc7XG5cbiRmaWVsZF9mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRmaWVsZF90cmFuc2l0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG5cbiRmaWVsZF9sYWJlbC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZTogMC44NWVtICFkZWZhdWx0O1xuJGZpZWxkX2xhYmVsLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuJGZpZWxkX2xhYmVsLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuXG4kZmllbGRfaW5wdXQtZm9udC1zaXplOiAxZW0gIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtcGFkZGluZzogJGJ1dHRvbl9wYWRkaW5nICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJvcmRlci1hY3RpdmU6IDFweCBzb2xpZCAkY29sb3ItcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGZpZWxkX2Vycm9yLWZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfbm90ZS1mb250LXNpemU6ICRmaWVsZF9sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfbm90ZS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfZXJyb3ItY29sb3I6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF93YXJuaW5nLWNvbG9yOiAkY29sb3Jfd2FybmluZy01MDAgIWRlZmF1bHQ7XG4vLyBCYXNlZCBvbiBodHRwczovL3d3dy5maWxhbWVudGdyb3VwLmNvbS9sYWIvc2VsZWN0LWNzcy5odG1sXG4kZmllbGRfc2VsZWN0LWZvbnQtc2l6ZTogJGZpZWxkX2lucHV0LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ6ICRmaWVsZF9pbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmctcmlnaHQ6IDIuM2VtICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlICFkZWZhdWx0O1xuXG4vLyBOb3RlIHRoYXQgc2VsZWN0IGJhY2tncm91bmQgbmVlZHMgdG8gYmUgZGVmaW5lZCBhcyBiYWNrZ3JvdW5kLWltYWdlIHRvIHByZXZlbnRcbi8vIG9wdGlvbiBlbGVtZW50cyBmcm9tIGluaGVyaXRpbmcgaXQgb24gc29tZSBicm93c2Vycy5cbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsLWFjdGl2ZTogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9zZWxlY3QtaWNvbi1maWxsKX0nJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWFjdGl2ZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbC1hY3RpdmUpfSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSkgIWRlZmF1bHQ7XG5cbiRmaWVsZF9zZWxlY3QtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJvcmRlci1hY3RpdmU6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJveC1zaGFkb3c6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJveC1zaGFkb3ctYWN0aXZlOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfaW5wdXQtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtZGlzYWJsZWQtb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHkgIWRlZmF1bHQ7XG5cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4kZmllbGRfcmFkaW8tZm9udC1zaXplOiAxZW0gIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tc2l6ZTogMWVtICFkZWZhdWx0O1xuLy8gTGV0cyB5b3UgYWRqdXN0IGJvdGggcmFkaW8gYW5kIGNoZWNrYm94IGFsaWdubWVudCBiYXNlZCBvbiBmb250IHlvdSd2ZSBjaG9zZW4uXG4kZmllbGRfcmFkaW8tb2Zmc2V0OiAtMC4wNjI1ZW0gIWRlZmF1bHQ7XG4vLyBBbGlnbmluZyBhbnl0aGluZyB0aGF0IGNvbWVzIGFmdGVyIHdpdGggaW5wdXQgcGFkZGluZ3MsIHRoaXMgMXB4IHN0YW5kcyBmb3IgaW5wdXQncyBib3JkZXIgd2lkdGguXG4kZmllbGRfcmFkaW8tbWFyZ2luOiAkZmllbGRfcmFkaW8tb2Zmc2V0XG4gICAgY2FsYygjezEuNWVtIC0gJGZpZWxkLXJhZGlvLXNpemV9ICsgMXB4KSAwIDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW0gIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8taWNvbi1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfcmFkaW8taWNvbi1maWxsKX0nIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKSAhZGVmYXVsdDtcblxuJGZpZWxkX3JhZGlvLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJvcmRlci1hY3RpdmU6IDFweCBzb2xpZCAkY29sb3ItcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm9yZGVyLWNoZWNrZWQ6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tZGlzYWJsZWQtb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHkgIWRlZmF1bHQ7XG5cbiRmaWVsZF9jaGVja2JveC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtc2l6ZTogMWVtIDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9jaGVja2JveC1pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NwYXRoIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfY2hlY2tib3gtaWNvbi1maWxsKX0nIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIikgIWRlZmF1bHQ7XG5cbiRmaWVsZF9pY29uLXdpZHRoOiAxLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9pY29uLWhlaWdodDogMS4zZW0gIWRlZmF1bHQ7XG4kZmllbGRfaWNvbi1zdWNjZXNzLWJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2NoZWNrLWdyZWVuLnN2ZycpIG5vLXJlcGVhdFxuICAgIGNlbnRlciBjZW50ZXIgLyBjb250YWluICFkZWZhdWx0O1xuXG4kZmllbGRfZG9iLWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZCgpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2Vycm9yLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNvbG9yX2Vycm9yLTUwMDtcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsKCkge1xuICAgIGZvbnQtd2VpZ2h0OiAkZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkZmllbGRfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgY29sb3I6ICRmaWVsZF9sYWJlbC1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLXJlcXVpcmVkKCkge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnIConO1xuICAgICAgICBjb2xvcjogJGNvbG9yX2Vycm9yLTUwMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1yZXF1aXJlZC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1jb250cm9sKCkge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtY29udHJvbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dCgpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9pbnB1dC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmaWVsZF9pbnB1dC1saW5lLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkZmllbGRfaW5wdXQtcGFkZGluZztcbiAgICBjb2xvcjogJGZpZWxkX2lucHV0LWNvbG9yO1xuICAgIGJhY2tncm91bmQ6ICRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICRmaWVsZF9pbnB1dC1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfaW5wdXQtYm94LXNoYWRvdztcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTsgLy8gQWRkIHNwYWNpbmcgdW5kZXIgbGFiZWwuIFRoaXMgY2FuJ3QgYmUgYWRkZWQgdG8gbGFiZWwgaXRzZWxmIGJlY2F1c2UgdGhleSBhcmUgc29tZXRpbWVzIHJlbmRlcmVkIGVtcHR5LlxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7IC8vIFJlbW92ZXMgZHJvcCBzaGFkb3cgZnJvbSBpbnB1dHMgb24gaU9TLlxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmllbGRfaW5wdXQtYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9pbnB1dC1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29sb3I6ICRmaWVsZF9pbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0LWVycm9yKCkge1xuICAgICYsXG4gICAgJjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICAgIGJvcmRlcjogJGZpZWxkX2Vycm9yLWlucHV0LWJvcmRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pY29uKCR0eXBlOiAnJykge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogJGZpZWxkX2ljb24td2lkdGg7XG4gICAgaGVpZ2h0OiAkZmllbGRfaWNvbi1oZWlnaHQ7XG4gICAgcmlnaHQ6IDAuOGVtO1xuICAgIHRvcDogMC44ZW07XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRmaWVsZF9pY29uLXN1Y2Nlc3MtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pY29uLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gZmllbGQtbm90ZSgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmaWVsZF9ub3RlLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gICAgY29sb3I6ICRmaWVsZF9ub3RlLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtbm90ZS1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvcigpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICBjb2xvcjogJGZpZWxkX2Vycm9yLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtZXJyb3ItaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtd2FybmluZygpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICBjb2xvcjogJGZpZWxkX3dhcm5pbmctY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC13YXJuaW5nLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXNlbGVjdCgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmaWVsZF9zZWxlY3QtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRmaWVsZF9zZWxlY3QtcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZmllbGRfc2VsZWN0LXBhZGRpbmctcmlnaHQ7XG4gICAgY29sb3I6ICRmaWVsZF9zZWxlY3QtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX3NlbGVjdC1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTsgLy8gQWRkIHNwYWNpbmcgdW5kZXIgbGFiZWwuIFRoaXMgY2FuJ3QgYmUgYWRkZWQgdG8gbGFiZWwgaXRzZWxmIGJlY2F1c2UgdGhleSBhcmUgc29tZXRpbWVzIHJlbmRlcmVkIGVtcHR5LlxuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWltYWdlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtcG9zaXRpb247XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtc2l6ZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZTtcblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbiAgICAmOi1tb3otZm9jdXNyaW5nLFxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9zZWxlY3QtYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfc2VsZWN0LWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgb3B0aW9uIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWxhYmVsKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWxhYmVsLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvKCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIHdpZHRoOiAkZmllbGRfcmFkaW8tc2l6ZTtcbiAgICBtYXJnaW46ICRmaWVsZF9yYWRpby1tYXJnaW47XG4gICAgZm9udC1zaXplOiAkZmllbGRfcmFkaW8tZm9udC1zaXplO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvOyAvLyBQcmV2ZW50IGZsZXggcGFyZW50IGZyb20gYnJlYWtpbmcgZGltZW5zaW9ucy5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3c7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtc2l6ZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWUsXG4gICAgICAgIGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmllbGRfcmFkaW8tYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Y2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItY2hlY2tlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdy1jaGVja2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0sXG4gICAgJltkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgJltkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX3JhZGlvLWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8taG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3goKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgIGJvcmRlci1yYWRpdXM6ICRmaWVsZF9jaGVja2JveC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtc2l6ZTtcblxuICAgICY6Y2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtZG9iKCkge1xuICAgIGlucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkZmllbGRfZG9iLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZmllbGRfZG9iLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZmllbGRfZG9iLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWRvYi1ob29rKCk7XG59XG4iLCJAaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcblxuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXG4vLyBPdXIgQkVNIGNvbXBvbmVudC5cbi5jcy1maWVsZCxcbi8vIExlZnQgZm9yIG5vdyBmb3IgY29tcGF0aWJpbGl0eSBzYWtlLlxuLmNzLWlucHV0IHtcbiAgICBAaW5jbHVkZSBmaWVsZCgpO1xuXG4gICAgJl9fY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2woKTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsKCk7XG5cbiAgICAgICAgLnJlcXVpcmVkICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2lucHV0LFxuICAgICZfX3RleHRhcmVhIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgICZfX3JhZGlvIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgICAgICAvLyBUbyByZXdyaXRlIHRvIHByb3BlciBzY3NzIHN5bnRheCBhZnRlciBnZXR0aW5nIHJpZCBvZiAuY3MtaW5wdXQgY2xhc3NcbiAgICAgICAgJiArIC5jcy1pbnB1dF9fbGFiZWwsXG4gICAgICAgICYgKyAuY3MtZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jaGVja2JveCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUbyByZXdyaXRlIHRvIHByb3BlciBzY3NzIHN5bnRheCBhZnRlciBnZXR0aW5nIHJpZCBvZiAuY3MtaW5wdXQgY2xhc3NcbiAgICAgICAgJiArIC5jcy1pbnB1dF9fbGFiZWwsXG4gICAgICAgICYgKyAuY3MtZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaWNvbigpO1xuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxuXG4gICAgJl9fZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1lcnJvcigpO1xuICAgIH1cbn1cbi8vIE1hZ2VudG8gY2xhc3NlcyB1c2VkIGluIGNoZWNrb3V0LCBsb2dpbi9yZWdpc3RlciBmb3JtcyBldGMuXG4uZmllbGQge1xuICAgIEBpbmNsdWRlIGZpZWxkKCk7XG5cbiAgICAmLl9zdWNjZXNzOm5vdCguX3dhcm4pIHtcbiAgICAgICAgLmNvbnRyb2wge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pY29uKCdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2woKTtcblxuICAgICAgICA+IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbCgpO1xuICAgIH1cblxuICAgICYucmVxdWlyZWQsXG4gICAgJi5fcmVxdWlyZWQge1xuICAgICAgICA+IC5sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5yZXF1aXJlZCB7XG4gICAgICAgIC5fcmVxdWlyZWQge1xuICAgICAgICAgICAgPiAubGFiZWwge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAvLyBIaWRlIGFzdGVyaXNrcyBmb3IgbGFiZWxzIGluc2lkZSBmaWVsZHNldHMgYXMgdGhleSBhcmUgdXN1YWxseSByZW5kZXJlZCBlbXB0eS5cbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5wdXQtdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgLmNoZWNrYm94IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3goKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yYWRpbyB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvKCk7XG5cbiAgICAgICAgJiArIC5sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpby1sYWJlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5jdXN0b21lci1uYW1lLXByZWZpeCB7XG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZmllbGQtZG9iIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtZG9iKCk7XG4gICAgfVxuXG4gICAgJi5fZXJyb3Ige1xuICAgICAgICAuaW5wdXQtdGV4dCxcbiAgICAgICAgLmNoZWNrYm94IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnRpbmcgc3R5bGVzIGZvciBpbnB1dCB3aXRoIHRvb2x0aXAuXG4gICAgLmNvbnRyb2wuX3dpdGgtdG9vbHRpcCBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgIC8vIFJldmVydGluZyBpbmZvIHRvb2x0aXAgc3R5bGVzIHRvIG1ha2UgaXQgYXBwZWFyIGFzIG5vdGUgYmVsb3cgdGhlIGlucHV0LlxuICAgIC5maWVsZC10b29sdGlwIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcblxuICAgICAgICAubGFiZWwsXG4gICAgICAgIC5maWVsZC10b29sdGlwLWFjdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubm90ZSB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcbiAgICB9XG59XG4vLyBIYXMgdG8gYmUgc2NvcGVkIHRvIGRpdiwgb3RoZXJ3aXNlIGl0IGNvbGxpZGVzIHdpdGggaW5wdXQgY2xhc3MuXG5kaXYubWFnZS1lcnJvcixcbmRpdi5maWVsZC1lcnJvciB7XG4gICAgQGluY2x1ZGUgZmllbGQtZXJyb3IoKTtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9maWVsZC9taXhpbi5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG4kZmllbGRfZm9udC1zaXplOiAxLjZyZW07XG5cbiRmaWVsZF9sYWJlbC1mb250LXdlaWdodDogNDAwO1xuJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZTogMS40cmVtO1xuJGZpZWxkX2xhYmVsLXBhZGRpbmc6IDRweCAwO1xuXG4kZmllbGRfaW5wdXQtZm9udC1zaXplOiAxLjZyZW07XG4kZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4kZmllbGRfaW5wdXQtcGFkZGluZzogJGJ1dHRvbl9wYWRkaW5nO1xuJGZpZWxkX2lucHV0LWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuXG4kZmllbGRfaW5wdXQtYmFja2dyb3VuZDogJGttYV9jb2xvcl93aGl0ZTtcbiRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAka21hX2NvbG9yX2dyZXktMTAwO1xuXG4kZmllbGRfaW5wdXQtYm9yZGVyOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTMwMDtcbiRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTgwMDtcbiRmaWVsZF9pbnB1dC1ib3JkZXItZGlzYWJsZWQ6IDFweCBzb2xpZCAka21hX2NvbG9yX2dyZXktMzAwO1xuXG4kZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcblxuJGZpZWxkX2lucHV0LWJveC1zaGFkb3c6IG5vbmU7XG4kZmllbGRfaW5wdXQtYm94LXNoYWRvdy1hY3RpdmU6IDBweCAwcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eTogMTtcbiRmaWVsZF9pbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcblxuJGZpZWxkX2Vycm9yLWlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfZXJyb3ItNTAwO1xuXG4kZmllbGRfZXJyb3ItY29sb3I6ICRrbWFfY29sb3JfZXJyb3ItNTAwO1xuXG4kZmllbGRfd2FybmluZy1jb2xvcjogJGNvbG9yX3dhcm5pbmctNTAwO1xuXG4vLyBCYXNlZCBvbiBodHRwczovL3d3dy5maWxhbWVudGdyb3VwLmNvbS9sYWIvc2VsZWN0LWNzcy5odG1sXG4kZmllbGRfc2VsZWN0LWZvbnQtc2l6ZTogJGZpZWxkX2lucHV0LWZvbnQtc2l6ZTtcbiRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ6ICRmaWVsZF9pbnB1dC1saW5lLWhlaWdodDtcbiRmaWVsZF9zZWxlY3QtcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmc7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmctcmlnaHQ6IDIuM2VtO1xuJGZpZWxkX3NlbGVjdC1jb2xvcjogJGZpZWxkX2lucHV0LWNvbG9yO1xuXG4vLyBOb3RlIHRoYXQgc2VsZWN0IGJhY2tncm91bmQgbmVlZHMgdG8gYmUgZGVmaW5lZCBhcyBiYWNrZ3JvdW5kLWltYWdlIHRvIHByZXZlbnRcbi8vIG9wdGlvbiBlbGVtZW50cyBmcm9tIGluaGVyaXRpbmcgaXQgb24gc29tZSBicm93c2Vycy5cbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsOiAka21hX2NvbG9yX2dyZXktMzAwO1xuJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwtYWN0aXZlOiAka21hX2NvbG9yX2dyZXktODAwO1xuJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwtZGlzYWJsZWQ6ICRrbWFfY29sb3JfZ3JleS01MDA7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwpfSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtYWN0aXZlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9zZWxlY3QtaWNvbi1maWxsLWFjdGl2ZSl9JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1kaXNhYmxlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbC1kaXNhYmxlZCl9JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcblxuJGZpZWxkX3NlbGVjdC1ib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXI7XG4kZmllbGRfc2VsZWN0LWJvcmRlci1hY3RpdmU6ICRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlO1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItZGlzYWJsZWQ6ICRmaWVsZF9pbnB1dC1ib3JkZXItZGlzYWJsZWQ7XG5cbiRmaWVsZF9zZWxlY3QtYm9yZGVyLXJhZGl1czogJGZpZWxkX2lucHV0LWJvcmRlci1yYWRpdXM7XG5cbiRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3c7XG4kZmllbGRfc2VsZWN0LWJveC1zaGFkb3ctYWN0aXZlOiAkZmllbGRfaW5wdXQtYm94LXNoYWRvdy1hY3RpdmU7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kO1xuJGZpZWxkX3NlbGVjdC1kaXNhYmxlZC1vcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eTtcblxuJGZpZWxkX2Vycm9yLXNlbGVjdC1ib3JkZXI6ICRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI7XG5cbiRmaWVsZF9yYWRpby1pY29uLWZpbGw6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfcmFkaW8taWNvbi1maWxsKX0nIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTtcblxuLy8gJGZpZWxkX3JhZGlvLWZvbnQtc2l6ZTogMmVtO1xuJGZpZWxkX3JhZGlvLXNpemU6IDEuOXJlbTtcbiRmaWVsZF9yYWRpby1ib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXI7XG4kZmllbGRfcmFkaW8tYm9yZGVyLWFjdGl2ZTogJGZpZWxkX2lucHV0LWJvcmRlci1hY3RpdmU7XG4kZmllbGRfcmFkaW8tYm9yZGVyLWNoZWNrZWQ6ICRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlO1xuJGZpZWxkX3JhZGlvLWJvcmRlci1kaXNhYmxlZDogJGZpZWxkX2lucHV0LWJvcmRlci1kaXNhYmxlZDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93OiBub25lO1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlOiBub25lO1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctY2hlY2tlZDogbm9uZTtcbiRmaWVsZF9yYWRpby1kaXNhYmxlZC1vcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eTtcblxuJGZpZWxkX2NoZWNrYm94LWJvcmRlci1yYWRpdXM6IDA7XG4kZmllbGRfY2hlY2tib3gtaWNvbi1maWxsOiAka21hX2NvbG9yX2dyZXktODAwO1xuJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9jaGVja2JveC1pY29uLWZpbGwpfScgZD0nTTUuMzEzIDEwLjEwOEg1LjI0YTEuMDY0IDEuMDA1IDAgMCAxLS43NS0uNDFsLTEuOTQ3LTIuNTVhMS4wNjQgMS4wMDUgMCAwIDEgMS43MjMtMS4xNzVMNS40NjMgNy41NiA5LjA2IDQuMTlhMS4wNjQgMS4wMDUgMCAwIDEgLjc1LS4yOTdoLjg0NmExLjA2NCAxLjAwNSAwIDAgMSAwIDIuMDA0aC0uNDVMNi4wNjQgOS44MWExLjA2NCAxLjAwNSAwIDAgMS0uNzUuMjk4eicvJTNlJTNjL3N2ZyUzZVwiKTtcblxuQG1peGluIGZpZWxkKCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2ZvbnQtc2l6ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtZXJyb3IoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfZXJyb3ItZm9udC1zaXplO1xuICAgIGNvbG9yOiAka21hX2NvbG9yX2Vycm9yLTUwMDtcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsKCkge1xuICAgIGZvbnQtd2VpZ2h0OiAkZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkZmllbGRfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgY29sb3I6ICRmaWVsZF9sYWJlbC1jb2xvcjtcbiAgICBwYWRkaW5nOiAkZmllbGRfbGFiZWwtcGFkZGluZztcblxuICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLXJlcXVpcmVkKCkge1xuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAqXCI7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2Vycm9yLTUwMDtcbiAgICAgICAgcGFkZGluZzogJGZpZWxkX2xhYmVsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY29udHJvbCgpIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2wtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfaW5wdXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmc7XG4gICAgY29sb3I6ICRmaWVsZF9pbnB1dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkZmllbGRfaW5wdXQtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3c7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07IC8vIEFkZCBzcGFjaW5nIHVuZGVyIGxhYmVsLiBUaGlzIGNhbid0IGJlIGFkZGVkIHRvIGxhYmVsIGl0c2VsZiBiZWNhdXNlIHRoZXkgYXJlIHNvbWV0aW1lcyByZW5kZXJlZCBlbXB0eS5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAvLyBSZW1vdmVzIGRyb3Agc2hhZG93IGZyb20gaW5wdXRzIG9uIGlPUy5cbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfaW5wdXQtYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgIH1cblxuICAgICYucmVxdWlyZWQtZW50cnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgY29sb3I6ICRmaWVsZF9pbnB1dC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3IoKSB7XG4gICAgJixcbiAgICAmOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgICAgYm9yZGVyOiAkZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWljb24oJHR5cGU6IFwiXCIpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6ICRmaWVsZF9pY29uLXdpZHRoO1xuICAgIGhlaWdodDogJGZpZWxkX2ljb24taGVpZ2h0O1xuICAgIHJpZ2h0OiAwLjhlbTtcbiAgICB0b3A6IDAuOGVtO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaWYgKCR0eXBlID09IFwic3VjY2Vzc1wiKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRmaWVsZF9pY29uLXN1Y2Nlc3MtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pY29uLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gZmllbGQtbm90ZSgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmaWVsZF9ub3RlLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nOiAkZmllbGRfbGFiZWwtcGFkZGluZztcbiAgICBjb2xvcjogJGZpZWxkX25vdGUtY29sb3I7XG4gICAgbWFyZ2luLXRvcDogLTFyZW07XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfZXJyb3ItY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfd2FybmluZy1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLXdhcm5pbmctaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtc2VsZWN0KCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX3NlbGVjdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX3NlbGVjdC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmaWVsZF9zZWxlY3QtcGFkZGluZy1yaWdodDtcbiAgICBjb2xvcjogJGZpZWxkX3NlbGVjdC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfc2VsZWN0LWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfc2VsZWN0LWJveC1zaGFkb3c7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07IC8vIEFkZCBzcGFjaW5nIHVuZGVyIGxhYmVsLiBUaGlzIGNhbid0IGJlIGFkZGVkIHRvIGxhYmVsIGl0c2VsZiBiZWNhdXNlIHRoZXkgYXJlIHNvbWV0aW1lcyByZW5kZXJlZCBlbXB0eS5cbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1pbWFnZTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXBvc2l0aW9uO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXNpemU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG5cbiAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgIH1cblxuICAgICYucmVxdWlyZWQtZW50cnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbiAgICAmOi1tb3otZm9jdXNyaW5nLFxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9zZWxlY3QtYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfc2VsZWN0LWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgb3B0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXNlbGVjdC1lcnJvcigpIHtcbiAgICAmLFxuICAgICY6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgICBib3JkZXI6ICRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI7XG4gICAgfVxufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8tbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8oKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogJGZpZWxkX3JhZGlvLXNpemU7XG4gICAgd2lkdGg6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIG1hcmdpbjogJGZpZWxkX3JhZGlvLW1hcmdpbjtcbiAgICBmb250LXNpemU6ICRmaWVsZF9yYWRpby1mb250LXNpemU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87IC8vIFByZXZlbnQgZmxleCBwYXJlbnQgZnJvbSBicmVha2luZyBkaW1lbnNpb25zLlxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1zaXplO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG5cbiAgICAmOjotbW96LWZvY3VzLWlubmVyLFxuICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAmW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfcmFkaW8tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG4gICAgLy8gc3R5bGVsaW50LWVuYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1yYWRpby1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveC1sYWJlbCgpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveCgpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX2NoZWNrYm94LWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1zaXplO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWRvYigpIHtcbiAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsICRpY29uX3BvczogJGZpZWxkX2RvYi1idXR0b24taWNvbi1wb3MpO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsICRpY29uX3BvczogJGZpZWxkX2RvYi1idXR0b24taWNvbi1wb3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtZG9iLWhvb2soKTtcbn1cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvZmllbGQvZmllbGQuc2Nzc1wiO1xuXG4uZmllbGQge1xuICAgICY6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5tYWdlLWVycm9yIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgJi10b29sdGlwIHtcbiAgICAgICAgJi1jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogRm9vdGVyIGNvbXBvbmVudCBjdXN0b21pemF0aW9uLlxuICogQHNlZSAvTWFnZW50b19UaGVtZS90ZW1wbGF0ZXMvZm9vdGVyL2NvbHVtbnMucGh0bWwgZm9yIHRlbXBsYXRlcy5cbiAqL1xuQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJ1dGlscy92aXN1YWxseS1oaWRkZW5cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW5cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW5cIjtcblxuJGZvb3Rlcl90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kZm9vdGVyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTgwMCAhZGVmYXVsdDtcbiRmb290ZXJfZWRnZS1ndXR0ZXI6ICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuXG4kZm9vdGVyX3NlY3Rpb24tZWRnZS1ndXR0ZXI6ICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXZlcnRpY2FsLW9mZnNldDogMmVtICFkZWZhdWx0O1xuXG4kZm9vdGVyX3NlY3Rpb24tc2VwYXJhdG9yLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ncmF5ICFkZWZhdWx0O1xuXG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtaGVhZGxpbmUtbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNCAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS1wYWRkaW5nOiAkZm9vdGVyX3NlY3Rpb24tdmVydGljYWwtb2Zmc2V0ICRmb290ZXJfc2VjdGlvbi1lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS1jb2xvcjogJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtZm9udC1zaXplOiAxLjJlbSAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXBzZXVkb2ljb24taW5jbHVkZTogdHJ1ZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9wcm9tby1kaXNwbGF5LW9uLW1vYmlsZTogZmFsc2UgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28tZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28td2lkdGg6IDEzLjVlbSAhZGVmYXVsdDtcbiRmb290ZXJfbG9nby1oZWlnaHQ6IDIuM2VtICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9vdGVyIHtcbiAgJHJvb3Q6ICY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDgwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzI3MjcyNyAwJSwgIzQyNDI0MiAxMDAlKTtcbiAgLmNtcy1rb250YWt0ICYsXG4gIC5jbXMtc2Vyd2lzICZ7XG4gICAgbWFyZ2luLXRvcDogNzVweDtcbiAgfVxuICAuY21zLW8tbmFzICYge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICBtYXJnaW4tdG9wOiAyNjBweDtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMjYwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaGVpZ2h0OiAyNjBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTEwMDtcbiAgICB9XG4gIH1cbiBcbiAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMzYzNjM2MgMCUsICM0MjQyNDIgMTAwJSk7XG4gICAgICByaWdodDogY2FsYygtNzUlIC0gMTVweCk7XG4gICAgICB0b3A6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgdG9wOiB1bnNldDtcbiAgICAgICAgYm90dG9tOiAwcHg7XG4gICAgICAgIGxlZnQ6IC0xNXB4O1xuICAgICAgICBoZWlnaHQ6IDM5MHB4O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHAge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAuZm9vdGVyIHtcbiAgICAmX19hZGRpdGlvbmFsX2luZm9fd3JhcHBlciB7XG4gICAgICBwYWRkaW5nOiAyOXB4IDUwcHggMjNweCA1MHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB0b3A6IC03NXB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJl9fYWRkaXRpb25hbF9pbmZvX3RpdGxlIHtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgICAmX19hZGRpdGlvbmFsX2luZm9faXRlbXMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICAgICZfX2FkZHRpb25hbF9pbmZvX2l0ZW0ge1xuICAgICAgd2lkdGg6IDMzJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1sZWZ0OiA4OHB4O1xuICAgICAgbWluLWhlaWdodDogNjRweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4OHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA4OHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDVweDtcbiAgICAgIH1cbiAgICAgICYtLWF2YWlsYWJpbGl0eSxcbiAgICAgICYtLWRlbGl2ZXJ5LFxuICAgICAgJi0tbGF1bmNoIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgd2lkdGg6IDY0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA2NHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvRG9zdGVwbm9zYy5zdmdcIik7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtLWRlbGl2ZXJ5IHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvU3p5YmthX3d5c3lsa2Euc3ZnXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLS1sYXVuY2gge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvb3Rlci9BdXRvbWF0eWsuc3ZnXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICAgICZfX3dyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBtYXJnaW4tdG9wOiAzNzBweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJl9fbWFpbi1saXN0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgICAmLWxpbmtzLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwLFxuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1jb250YWN0LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICAgICAgfVxuICAgICAgJi1saW5rcy1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IDIxJTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzg3ODc4NztcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLWxpbmtzLXRpdGxlIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiK1wiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgfVxuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogXCItXCI7XG4gICAgICAgICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLWFkZHJlc3Mtd3JhcHBlcixcbiAgICAgICYtcGhvbmUtd3JhcHBlcixcbiAgICAgICYtbWFpbC13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtaWNvbi13cmFwcGVyIHtcbiAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvc2llZHppYmEuc3ZnXCIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLWFkZHJlc3Mtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICB9XG4gICAgICAmLW1haWwtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LWljb24td3JhcHBlciB7XG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvbWFpbC5zdmdcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLXBob25lLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MnB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDgycHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXIge1xuICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9vdGVyL2luZm9saW5pYS5zdmdcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LXRleHQtd3JhcHBlciB7XG4gICAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogI2Q1ZDVkNTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYtY29udGFjdC10ZXh0LXdyYXBwZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gICAgICB9XG4gICAgICAmLXBob25lLXRleHQge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICB9XG4gICAgfVxuICAgICZfX3RleHQtLWJvbGQge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gICAgJl9faW5mby1saXN0IHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjOTc5Nzk3O1xuICAgICAgcGFkZGluZzogMjRweCAwIDQ0cHggMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgICAgJi1saW5rcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi1saW5rcyBhLFxuICAgICAgJi1jb3B5IHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgICAgJi1saW5rcyBhIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZjtcbiAgICAgICAgICByaWdodDogLTdweDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgJiB7XG4gICAgbWFyZ2luLXRvcDogMTA1cHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgIG1hcmdpbi10b3A6IDI2MHB4O1xuICAgIH1cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTEwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMTEwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEZvb3RlciBjb21wb25lbnQgY3VzdG9taXphdGlvbi5cbiAqIEBzZWUgL01hZ2VudG9fVGhlbWUvdGVtcGxhdGVzL2Zvb3Rlci9jb2x1bW5zLnBodG1sIGZvciB0ZW1wbGF0ZXMuXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWZvb3RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDgwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzI3MjcyNyAwJSwgIzQyNDI0MiAxMDAlKTsgfVxuICAuY21zLWtvbnRha3QgLmNzLWZvb3RlcixcbiAgLmNtcy1zZXJ3aXMgLmNzLWZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogNzVweDsgfVxuICAuY21zLW8tbmFzIC5jcy1mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtZm9vdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDI2MHB4OyB9XG4gICAgICAuY3MtZm9vdGVyOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMjYwcHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGhlaWdodDogMjYwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9IH1cbiAgLmNzLWZvb3RlciAuY3MtY29udGFpbmVyX19pbm5lcjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjM2MzYzNjIDAlLCAjNDI0MjQyIDEwMCUpO1xuICAgIHJpZ2h0OiBjYWxjKC03NSUgLSAxNXB4KTtcbiAgICB0b3A6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWZvb3RlciAuY3MtY29udGFpbmVyX19pbm5lcjphZnRlciB7XG4gICAgICB0b3A6IHVuc2V0O1xuICAgICAgYm90dG9tOiAwcHg7XG4gICAgICBsZWZ0OiAtMTVweDtcbiAgICAgIGhlaWdodDogMzkwcHg7XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgMzBweCk7IH0gfVxuICAuY3MtZm9vdGVyIHAge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZGl0aW9uYWxfaW5mb193cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAyOXB4IDUwcHggMjNweCA1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdG9wOiAtNzVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkaXRpb25hbF9pbmZvX3dyYXBwZXIge1xuICAgICAgICB0b3A6IDEwcHg7IH0gfVxuICAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZGl0aW9uYWxfaW5mb190aXRsZSB7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLmNzLWZvb3RlciAuZm9vdGVyX19hZGRpdGlvbmFsX2luZm9faXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkaXRpb25hbF9pbmZvX2l0ZW1zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbSB7XG4gICAgd2lkdGg6IDMzJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogODhweDtcbiAgICBtaW4taGVpZ2h0OiA2NHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4OHB4O1xuICAgICAgICBtaW4taGVpZ2h0OiA4OHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDVweDsgfSB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19hZGR0aW9uYWxfaW5mb19pdGVtLS1hdmFpbGFiaWxpdHk6YmVmb3JlLCAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZHRpb25hbF9pbmZvX2l0ZW0tLWRlbGl2ZXJ5OmJlZm9yZSwgLmNzLWZvb3RlciAuZm9vdGVyX19hZGR0aW9uYWxfaW5mb19pdGVtLS1sYXVuY2g6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogNjRweDtcbiAgICAgIGhlaWdodDogNjRweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvRG9zdGVwbm9zYy5zdmdcIik7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19hZGR0aW9uYWxfaW5mb19pdGVtLS1hdmFpbGFiaWxpdHk6YmVmb3JlLCAuY3MtZm9vdGVyIC5mb290ZXJfX2FkZHRpb25hbF9pbmZvX2l0ZW0tLWRlbGl2ZXJ5OmJlZm9yZSwgLmNzLWZvb3RlciAuZm9vdGVyX19hZGR0aW9uYWxfaW5mb19pdGVtLS1sYXVuY2g6YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogdW5zZXQ7IH0gfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbS0tZGVsaXZlcnk6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvU3p5YmthX3d5c3lsa2Euc3ZnXCIpOyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19hZGR0aW9uYWxfaW5mb19pdGVtLS1sYXVuY2g6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvQXV0b21hdHlrLnN2Z1wiKTsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fYWRkdGlvbmFsX2luZm9faXRlbS10aXRsZSB7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY3MtZm9vdGVyIC5mb290ZXJfX3dyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDUwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX193cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMzcwcHg7IH0gfVxuICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3Qge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy13cmFwcGVyIHAsXG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy13cmFwcGVyIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7IH1cbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWxpbmtzLXdyYXBwZXIgYSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWxpbmtzLXdyYXBwZXIgYSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7IH0gfVxuICAgICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy13cmFwcGVyIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy1pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgd2lkdGg6IDIxJTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3MtaXRlbSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4Nzg3ODc7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsgfSB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3MtdGl0bGUge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWxpbmtzLXRpdGxlIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbGlua3MtdGl0bGU6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIrXCI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgICAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWxpbmtzLXRpdGxlLmFjdGl2ZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG4gICAgICAgICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1saW5rcy10aXRsZS5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgICAgICBjb250ZW50OiBcIi1cIjtcbiAgICAgICAgICAgICAgcmlnaHQ6IDVweDsgfSB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtYWRkcmVzcy13cmFwcGVyLCAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1waG9uZS13cmFwcGVyLCAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1tYWlsLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtYWRkcmVzcy13cmFwcGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LWljb24td3JhcHBlciwgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtcGhvbmUtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXIsIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LW1haWwtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXIge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtYWRkcmVzcy13cmFwcGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LWljb24td3JhcHBlcjpiZWZvcmUsIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LXBob25lLXdyYXBwZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtaWNvbi13cmFwcGVyOmJlZm9yZSwgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbWFpbC13cmFwcGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LWljb24td3JhcHBlcjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvc2llZHppYmEuc3ZnXCIpO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWFkZHJlc3Mtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tdG9wOiAyNHB4OyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtbWFpbC13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7IH1cbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LW1haWwtd3JhcHBlciAuZm9vdGVyX19tYWluLWxpc3QtY29udGFjdC1pY29uLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb290ZXIvbWFpbC5zdmdcIik7IH1cbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LW1haWwtd3JhcHBlciBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LXBob25lLXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDogNDJweDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLWZvb3RlciAuZm9vdGVyX19tYWluLWxpc3QtcGhvbmUtd3JhcHBlciB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogODJweDsgfSB9XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1waG9uZS13cmFwcGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LWljb24td3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvb3Rlci9pbmZvbGluaWEuc3ZnXCIpOyB9XG4gICAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1waG9uZS13cmFwcGVyIC5mb290ZXJfX21haW4tbGlzdC1jb250YWN0LXRleHQtd3JhcHBlciBwIHtcbiAgICAgICAgY29sb3I6ICNkNWQ1ZDU7IH1cbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LXBob25lLXdyYXBwZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtdGV4dC13cmFwcGVyIHNwYW4ge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9fbWFpbi1saXN0LWNvbnRhY3QtdGV4dC13cmFwcGVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7IH1cbiAgICAuY3MtZm9vdGVyIC5mb290ZXJfX21haW4tbGlzdC1waG9uZS10ZXh0IHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7IH1cbiAgLmNzLWZvb3RlciAuZm9vdGVyX190ZXh0LS1ib2xkIHtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzk3OTc5NztcbiAgICBwYWRkaW5nOiAyNHB4IDAgNDRweCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgLmZvb3Rlcl9faW5mby1saXN0LWxpbmtzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsgfSB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19pbmZvLWxpc3QtbGlua3MgYSwgLmNzLWZvb3RlciAuZm9vdGVyX19pbmZvLWxpc3QtY29weSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19pbmZvLWxpc3QtbGlua3MgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19pbmZvLWxpc3QtbGlua3MgYTphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ZmZjtcbiAgICAgIHJpZ2h0OiAtN3B4O1xuICAgICAgdG9wOiAwOyB9XG4gICAgLmNzLWZvb3RlciAuZm9vdGVyX19pbmZvLWxpc3QtbGlua3MgYTpsYXN0LWNoaWxkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY3MtZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxMDVweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLWZvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI2MHB4OyB9IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLWZvb3RlcjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDExMHB4O1xuICAgICAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTExMHB4OyB9XG4iLCIvKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG5cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogMSAqL1xufVxuXG5AbWl4aW4gdmlzdWFsbHktdmlzaWJsZSB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1mb290ZXItbGlua3Mge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLWZvb3Rlci1saW5rc19faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMC4zZW07IH1cbiAgLmNzLWZvb3Rlci1saW5rcyBhLCAuY3MtZm9vdGVyLWxpbmtzIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1mb290ZXItbGlua3MgYTpob3ZlciwgLmNzLWZvb3Rlci1saW5rcyBhOmZvY3VzLCAuY3MtZm9vdGVyLWxpbmtzIGE6YWN0aXZlLCAuY3MtZm9vdGVyLWxpbmtzIGE6dmlzaXRlZDpob3ZlciwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5jcy1mb290ZXItbGlua3MgYSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuNWVtIDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1mb290ZXItbGlua3MgYSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQge1xuICAgICAgICBwYWRkaW5nOiAwLjM1ZW0gMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGZvb3Rlci1saW5rc19saXN0LWl0ZW0tbWFyZ2luOiAwIDAgMC4zZW0gIWRlZmF1bHQ7XG5cbiRmb290ZXItbGlua3NfbGluay1mb250LXNpemU6IGluaGVyaXQgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1ob3Zlci1jb2xvcjogJGZvb3Rlci1saW5rc19saW5rLWNvbG9yICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItZGVjb3JhdGlvbjogdW5kZXJsaW5lICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctbW9iaWxlOiAwLjVlbSAwICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctZGVza3RvcDogMC4zNWVtIDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31mb290ZXItbGlua3Mge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJGZvb3Rlci1saW5rc19saXN0LWl0ZW0tbWFyZ2luO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkZm9vdGVyLWxpbmtzX2xpbmstY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRmb290ZXItbGlua3NfbGluay1ob3Zlci1jb2xvcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZm9vdGVyLWxpbmtzX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItZGVjb3JhdGlvblxuICAgICAgICApO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLW1vYmlsZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvb3Rlci1saW5rc19saW5rLWZvbnQtc2l6ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLWRlc2t0b3A7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWhlYWRsaW5lIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjbGVhcjogYm90aDtcbiAgcGFkZGluZzogMmVtIDA7XG4gIG1hcmdpbjogMmVtIDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1oZWFkbGluZSB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLWhlYWRsaW5lLS1za2lwLXNwYWNpbmcge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyLjZlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkbGluZV9fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmJlZm9yZSwgLmNzLWhlYWRsaW5lX190aXRsZTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YmVmb3JlLCAuY3MtaGVhZGxpbmVfX3RpdGxlOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmJlZm9yZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNmVtOyB9XG4gICAgLmNzLWhlYWRsaW5lX190aXRsZTphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMC42ZW07IH1cbiAgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGxpbmVfX3N1YnRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY21zLWttYS1ob21lLXBhZ2UgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLWhlYWRsaW5lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTsgfSB9XG5cbi5jbXMta21hLWhvbWUtcGFnZSBoMi5jcy1oZWFkbGluZV9fdGl0bGUsXG4uY21zLWttYS1ob21lLXBhZ2UgaDMuY3MtaGVhZGxpbmVfX3RpdGxlLFxuLmNtcy1rbWEtaG9tZS1wYWdlIGg0LmNzLWhlYWRsaW5lX190aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiO1xuICBmb250LXNpemU6IDQycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5jbXMta21hLWhvbWUtcGFnZSBoMi5jcy1oZWFkbGluZV9fdGl0bGU6OmJlZm9yZSwgLmNtcy1rbWEtaG9tZS1wYWdlIGgyLmNzLWhlYWRsaW5lX190aXRsZTo6YWZ0ZXIsXG4gIC5jbXMta21hLWhvbWUtcGFnZSBoMy5jcy1oZWFkbGluZV9fdGl0bGU6OmJlZm9yZSxcbiAgLmNtcy1rbWEtaG9tZS1wYWdlIGgzLmNzLWhlYWRsaW5lX190aXRsZTo6YWZ0ZXIsXG4gIC5jbXMta21hLWhvbWUtcGFnZSBoNC5jcy1oZWFkbGluZV9fdGl0bGU6OmJlZm9yZSxcbiAgLmNtcy1rbWEtaG9tZS1wYWdlIGg0LmNzLWhlYWRsaW5lX190aXRsZTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNtcy1rbWEtaG9tZS1wYWdlIGgyLmNzLWhlYWRsaW5lX190aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBsaW5lLWhlaWdodDogNDJweDsgfSB9XG5cbi5jbXMta21hLWhvbWUtcGFnZSBoMy5jcy1oZWFkbGluZV9fdGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY21zLWttYS1ob21lLXBhZ2UgaDMuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4OyB9IH1cblxuLmNtcy1rbWEtaG9tZS1wYWdlIGg0LmNzLWhlYWRsaW5lX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk7IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gaGVhZGxpbmUtaG9vaygpIHtcbn1cblxuQG1peGluIGhlYWRsaW5lLXRpdGxlLWhvb2soKSB7XG59XG5cbkBtaXhpbiBoZWFkbGluZS1zdWJ0aXRsZS1ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJ1dGlscy9jb21wb25lbnQtc3BhY2luZ1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvaGVhZGxpbmUvbWl4aW5cIjtcblxuLiN7JG5zfWhlYWRsaW5lIHtcbiAgQGluY2x1ZGUgaGVhZGxpbmUoKTtcblxuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUtdGl0bGUoKTtcbiAgfVxuXG4gICZfX3N1YnRpdGxlIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZS1zdWJ0aXRsZSgpO1xuICB9XG59XG5cbi5jbXMta21hLWhvbWUtcGFnZSB7XG4gIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1oZWFkbGluZSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6IHVuc2V0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cbiAgaDIsXG4gIGgzLFxuICBoNCB7XG4gICAgJi4jeyRuc31oZWFkbGluZV9fdGl0bGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtZmFtaWx5OiAkZm9udF9mYW1pbHktcHJpbWFyeTtcbiAgICAgIGZvbnQtc2l6ZTogNDJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaDIge1xuICAgICYuI3skbnN9aGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy9oMyBpcyBsaWtlIGgyLCBidXQgY2VudGVyaW5nXG4gIGgzIHtcbiAgICAmLiN7JG5zfWhlYWRsaW5lX190aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAvL3NtYWxsIGNlbnRlcmluZyBoZWFkbGluZSB0aXRsZVxuICBoNCB7XG4gICAgJi4jeyRuc31oZWFkbGluZV9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogOTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGxpbmUvaG9vayc7XG5cbiRoZWFkbGluZV90aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLWZvbnQtc2l6ZTogMi42ZW0gIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbi8vIFNob3cgZmxleGlibGUgZGVjb3JhdGlvbiBsaW5lcyBhdCB0aGUgc2lkZXMgb2YgdGhlIHRpdGxlLlxuJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtbGluZXMtY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kaGVhZGxpbmVfc3VidGl0bGUtY29sb3I6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtc2l6ZTogMS4zZW0gIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHBhZGRpbmc6IDJlbSAwO1xuICAgIG1hcmdpbjogMmVtIDA7XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZS1ob29rKCk7XG59XG5cbkBtaXhpbiBoZWFkbGluZS10aXRsZShcbiAgICAkY29sb3I6ICRoZWFkbGluZV90aXRsZS1jb2xvcixcbiAgICAkZm9udC1zaXplOiAkaGVhZGxpbmVfdGl0bGUtZm9udC1zaXplLFxuICAgICRmb250LXdlaWdodDogJGhlYWRsaW5lX3RpdGxlLWZvbnQtd2VpZ2h0LFxuICAgICR0ZXh0LXRyYW5zZm9ybTogJGhlYWRsaW5lX3RpdGxlLXRleHQtdHJhbnNmb3JtLFxuICAgICRsaW5lcy1lbmFibGVkOiAkaGVhZGxpbmVfdGl0bGUtbGluZXMtZW5hYmxlZCxcbiAgICAkbGluZXMtY29sb3I6ICRoZWFkbGluZV90aXRsZS1saW5lcy1jb2xvclxuKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBAaWYgJGxpbmVzLWVuYWJsZWQge1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5lcy1jb2xvcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC42ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZS10aXRsZS1ob29rKCk7XG59XG5cbkBtaXhpbiBoZWFkbGluZS1zdWJ0aXRsZShcbiAgICAkY29sb3I6ICRoZWFkbGluZV9zdWJ0aXRsZS1jb2xvcixcbiAgICAkZm9udC1zaXplOiAkaGVhZGxpbmVfc3VidGl0bGUtZm9udC1zaXplLFxuICAgICRmb250LXdlaWdodDogJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtd2VpZ2h0LFxuICAgICR0ZXh0LXRyYW5zZm9ybTogJGhlYWRsaW5lX3N1YnRpdGxlLXRleHQtdHJhbnNmb3JtXG4pIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdGV4dC10cmFuc2Zvcm07XG4gICAgbWFyZ2luOiAkaGVhZGxpbmVfc3VidGl0bGUtbWFyZ2luO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZS1zdWJ0aXRsZS1ob29rKCk7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4gKiBWYXJpYWJsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gKiBJZiB5b3UgaGF2ZSBtb3JlIGVsZW1lbnRzIG9uIHRvcCwgeW91IGhhdmUgdG8gaW5jbHVkZSB0aGVpciBoZWlnaHQuXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG4vKipcbiAgICAgKiBTdHlsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gICAgICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICAgICAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4gLnBhZ2Utd3JhcHBlci5uby1zY3JvbGwtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiA4LjNyZW07IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3BlbiAucGFnZS13cmFwcGVyLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgei1pbmRleDogODAwO1xuICAgIHRvcDogMDtcbiAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBGaXhlZCBwb3NpdGlvbmluZyByZXF1aXJlZCB0byB3b3JrIHdpdGggb2ZmY2FudmFzIGVsZW1lbnRzLlxuICAgICAgICAgICAgICAgICAqIEFsc28sIGFzIGEgZmFsbGJhY2sgZm9yIElFIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQgc3RpY2t5LlxuICAgICAgICAgICAgICAgICAqLyB9XG4gICAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4ubm8tc2Nyb2xsIC5jcy1jb250YWluZXItLWhlYWRlcixcbiAgICAuY3MtY29udGFpbmVyLS1oZWFkZXIgLmllMTEge1xuICAgICAgcG9zaXRpb246IGZpeGVkOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICB0b3A6IDA7IH0gfVxuXG4uY3MtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBoZWlnaHQ6IDVyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogOC4zcmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAuY3MtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogMTFyZW07IH0gfVxuICAuY3MtaGVhZGVyX19jb250ZW50IHtcbiAgICBoZWlnaHQ6IDVyZW07XG4gICAgei1pbmRleDogMzAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTAwdnc7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogOC4zcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDExcmVtOyB9IH1cbiAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXg6IDAgMSA0cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX29mZmNhbnZhcy10b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDE7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMC43cmVtIDAgMC43cmVtIDAuN3JlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5wYWdlLXByaW50IC5jcy1oZWFkZXJfX2xvZ28ge1xuICAgICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMnJlbSAwOyB9XG4gICAgICAucGFnZS1wcmludCAuY3MtaGVhZGVyX19sb2dvOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDMwMDtcbiAgICB0b3A6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgICAuY3MtaGVhZGVyX19zZWFyY2gtLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRvcDogaW5pdGlhbDsgfSB9XG4gIC5jcy1oZWFkZXJfX3VzZXItbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAxIDMwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gICAgICAgIGZsZXg6IDAgMSAyNSU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDRyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2JhY2stYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICBmaWxsOiAjODg4O1xuICAgIGhlaWdodDogMi41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAycmVtOyB9IH1cblxuLmNzLWhlYWRlciAubmF2aWdhdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiAzcmVtOyB9XG4gIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gPiAubmluamFtZW51cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYzsgfVxuICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gPiAubmluamFtZW51cyA+IC5jb21wYXJlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMi41cmVtO1xuICAgICAgbGVmdDogMS41cmVtO1xuICAgICAgd2lkdGg6IDNyZW07XG4gICAgICBoZWlnaHQ6IDNyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gPiAubmluamFtZW51cyA+IC5jb21wYXJlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gPiAubmluamFtZW51cyA+IC5jb21wYXJlIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICAgICAgdG9wOiAtMXJlbTtcbiAgICAgICAgcmlnaHQ6IC0xcmVtOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uID4gLm5pbmphbWVudXMgPiAuY29tcGFyZSAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGJvdHRvbTogLTE1cHg7IH1cbiAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uID4gLm5pbmphbWVudXMgLm1hZ2V6b24tYnVpbGRlciB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uID4gLm5pbmphbWVudXMgLm1hZ2V6b24tYnVpbGRlciA+IC5sZXZlbDAge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5zd2l0Y2hlcixcbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5pbmphbWVudXMtY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gZGl2Lm5hdi1pdGVtLmxldmVsMC5hY3RpdmUgPiBhIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gZGl2Lm5hdi1pdGVtLmxldmVsMDpob3ZlciA+IGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gZGl2Lm5hdi1pdGVtLmxldmVsMC5tZWdhLm1nei1lbGVtZW50ID4gYSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gZGl2Lm5hdi1pdGVtLmxldmVsMC5tZWdhLm1nei1lbGVtZW50OmhvdmVyID4gYSB7XG4gICAgICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbXMtY29sdW1uID4gYSB7XG4gICAgICAgIGNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IDAuM3MgY29sb3I7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmF2LWl0ZW1zLWNvbHVtbiA+IGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtcy1jb2x1bW4gLm5hdi1pdGVtIGEge1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGNvbG9yOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtcy1jb2x1bW4gLm5hdi1pdGVtIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5tZ3otZWxlbWVudC1oZWFkaW5nLXRleHQge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAwLjVyZW07IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm1nei10YWJzLW5hdiAubWd6LXRhYnMtdGFiLXRpdGxlID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDVkNWQ1ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbDtcbiAgICAgICAgbWluLXdpZHRoOiAyNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubWd6LXRhYnMtbmF2IC5tZ3otdGFicy10YWItdGl0bGUgPiBhIC5tZ3otZmEtYW5nbGUtcmlnaHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubWd6LXRhYnMtbmF2IC5tZ3otdGFicy10YWItdGl0bGUubWd6LWFjdGl2ZSA+IGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLmJvdHRvbS1saW5rcy1vdXRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAuYm90dG9tLWxpbmtzLW91dGVyIC5ib3R0b20tbGlua3MgdWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtIDA7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaSBhIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwLjVyZW07XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaTpudGgtY2hpbGQobiArIDIpIHtcbiAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDJyZW07IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHVsIGxpOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkNWQ1ZDU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiA+IC5uaW5qYW1lbnVzLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uaW5qYW1lbnVzLWhhbWJ1cmdlci10cmlnZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uaW5qYW1lbnVzLWhhbWJ1cmdlci10cmlnZ2VyIC5tZW51LXRyaWdnZXItaW5uZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiA1cHg7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uaW5qYW1lbnVzLWhhbWJ1cmdlci10cmlnZ2VyIC5tZW51LXRyaWdnZXItaW5uZXIgLnRyaWdnZXItaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uaW5qYW1lbnVzLWhhbWJ1cmdlci10cmlnZ2VyIC5tZW51LXRyaWdnZXItaW5uZXIgLmxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uaW5qYW1lbnVzLWhhbWJ1cmdlci10cmlnZ2VyIC5tZW51LXRyaWdnZXItaW5uZXIgLmxpbmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDVweDtcbiAgICAgICAgICAgIHotaW5kZXg6IDk7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB6LWluZGV4OiA5O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4cmVtOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzLmFjdGl2ZSA+IC5kcmlsbGRvd24tcm9vdCA+IC5kcmlsbGRvd24tcm9vdCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzLmFjdGl2ZSxcbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMuYWN0aXZlIC5uaW5qYW1lbnVzLWRyaWxsZG93bi1iYWNrIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3ICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMuYWN0aXZlID4gLmRyaWxsZG93bi1yb290ID4gLm1nei1lbGVtZW50LWlubmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzcmVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDdyZW07XG4gICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMuYWN0aXZlID4gLmRyaWxsZG93bi1yb290ID4gLm1nei1lbGVtZW50LWlubmVyID4gLm1nei1lbGVtZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMuYWN0aXZlIC5zd2l0Y2hlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuYm90dG9tLWxpbmtzLW91dGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMnJlbSA2cmVtOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuYm90dG9tLWxpbmtzLW91dGVyIC5ib3R0b20tbGlua3MgdWwge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5ib3R0b20tbGlua3Mtb3V0ZXIgLmJvdHRvbS1saW5rcyB1bCBsaSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuYm90dG9tLWxpbmtzLW91dGVyIC5ib3R0b20tbGlua3MgdWwgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHVsIGxpOm50aC1jaGlsZCgyKTo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wcm9tb3Rpb24uc3ZnXCIpOyB9XG4gICAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHVsIGxpOm50aC1jaGlsZCgzKTo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9uZXcuc3ZnXCIpOyB9XG4gICAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmJvdHRvbS1saW5rcy1vdXRlciAuYm90dG9tLWxpbmtzIHVsIGxpIGEge1xuICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgPiBkaXYge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMS41cmVtOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZTogLTEuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciA+IC5uaW5qYW1lbnVzLWRyaWxsZG93bi1iYWNrIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IC0xLjVyZW07XG4gICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiA1cmVtIDEuNXJlbTtcbiAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDNyZW0pICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290ID4gLm1nei1lbGVtZW50LWlubmVyID4gLm5pbmphbWVudXMtZHJpbGxkb3duLWJhY2s6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMi41cmVtICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tcm9vdCA+IC5tZ3otZWxlbWVudC1pbm5lciAubWd6LWVsZW1lbnQtaW5uZXIge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290ID4gLm1nei1lbGVtZW50LWlubmVyIC5tZ3otZWxlbWVudC1pbm5lciAudGl0bGUge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3QgLm5hdi1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3QgLm5hdi1pdGVtID4gYSB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3QgLm5hdi1pdGVtID4gYSA+IC5tZ3otZmEtYW5nbGUtcmlnaHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290IC5uYXYtaXRlbSA+IGE6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1yb290IC5uYXYtaXRlbSAub3BlbmVyIHtcbiAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLXJvb3QgLm5hdi1pdGVtIC5vcGVuZXI6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci1sYW5ndWFnZSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLWxhbmd1YWdlIHNwYW4ge1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci1sYW5ndWFnZSBzcGFuIGltZyB7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLmN1cnJlbmN5LFxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2Uge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLmN1cnJlbmN5IC5hY3Rpb25zLFxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci1sYW5ndWFnZSAuYWN0aW9ucyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLmN1cnJlbmN5IC5hY3Rpb25zIC5hY3Rpb24sXG4gICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2UgLmFjdGlvbnMgLmFjdGlvbiB7XG4gICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwOyB9XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci5jdXJyZW5jeSAuYWN0aW9ucyAuYWN0aW9uIHNwYW4sXG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci1sYW5ndWFnZSAuYWN0aW9ucyAuYWN0aW9uIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLnN3aXRjaGVyLmN1cnJlbmN5IC5hY3Rpb25zIC5tYWdlLWRyb3Bkb3duLWRpYWxvZyxcbiAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci1sYW5ndWFnZSAuYWN0aW9ucyAubWFnZS1kcm9wZG93bi1kaWFsb2cge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIHRvcDogMDsgfVxuICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXIuY3VycmVuY3kgLmFjdGlvbnMgLm1hZ2UtZHJvcGRvd24tZGlhbG9nID4gdWwsXG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5zd2l0Y2hlci1sYW5ndWFnZSAuYWN0aW9ucyAubWFnZS1kcm9wZG93bi1kaWFsb2cgPiB1bCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXIuY3VycmVuY3kgLmFjdGlvbnMgLm1hZ2UtZHJvcGRvd24tZGlhbG9nID4gdWwgYSxcbiAgICAgICAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuc3dpdGNoZXItbGFuZ3VhZ2UgLmFjdGlvbnMgLm1hZ2UtZHJvcGRvd24tZGlhbG9nID4gdWwgYSB7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLm5pbmphbWVudXMtY2xvc2Uge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDIuNXJlbTtcbiAgICAgICAgICByaWdodDogMXJlbTtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAubmluamFtZW51cy1jbG9zZSAubGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5uaW5qYW1lbnVzLWNsb3NlOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBjZW50ZXIgbm8tcmVwZWF0IHVybChcIi4uL2ltYWdlcy9pY29ucy94LnN2Z1wiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIHdpZHRoOiAzcmVtOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24ubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIC5uaW5qYW1lbnVzIC5kcmlsbGRvd24tb3BlbmVyLmRyaWxsZG93bi1iYWNrIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uLm5pbmphbWVudXMtaGFtYnVyZ2VyLWFjdGl2ZSAubmluamFtZW51cyAuZHJpbGxkb3duLW9wZW5lcjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbi5uaW5qYW1lbnVzLWhhbWJ1cmdlci1hY3RpdmUgLm5pbmphbWVudXMgLmRyaWxsZG93bi1vcGVuZXI6OmJlZm9yZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICAgICAgbGVmdDogMTlweDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubWd6LXRhYnMtdGFiLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm1nei10YWJzLXRhYi1jb250ZW50IC5tZ3otZWxlbWVudC1pbm5lciB7XG4gICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5tZ3otdGFicyAubWd6LXRhYnMtdGFiLWNvbnRlbnQgLm1nei1zaW5nbGUtaW1hZ2Utd3JhcHBlcixcbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm1nei1lbGVtZW50LWhlYWRpbmcsXG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5saW5rcyxcbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm1nei10YWJzLXRhYi10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwIC50aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMC5hY3RpdmUgPiBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNjMTI3MmY7IH1cbiAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwLm1lZ2EubWd6LWVsZW1lbnQ6aG92ZXIgPiBhIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5uYXYtaXRlbS5sZXZlbDAubWVnYTpob3ZlciA+IGEge1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4gIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMCA+IGEge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgcGFkZGluZy1ibG9jazogMi43cmVtOyB9XG4gICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwID4gYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAuYmxvY2stdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWluLWhlaWdodDogNTAwcHg7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbTpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW06aG92ZXIgLmFjdGlvbnMtc2Vjb25kYXJ5LFxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW06aG92ZXIgLmFjdGlvbnMtcHJpbWFyeSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtOmhvdmVyIC5wcmljZS1ib3gsXG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbTpob3ZlciAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0taW5mbyAucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0taW5mbyAucHJvZHVjdC1pbWFnZS1jb250YWluZXIgLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICBwYWRkaW5nOiA0NSUgIWltcG9ydGFudDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWluZm8gLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIC5wcm9kdWN0LWltYWdlLXdyYXBwZXIgPiBpbWcge1xuICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgNHJlbSAzcmVtOyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1ib3gge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtOyB9XG4gICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA5LjVyZW07XG4gICAgICAgICAgICBib3R0b206IC0xLjZyZW07IH1cbiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDlyZW07IH0gfVxuICAgICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1kZXRhaWxzIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogOXJlbTtcbiAgICAgICAgICAgIHRvcDogLTEuOHJlbTsgfVxuICAgICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtLWRldGFpbHMgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogOC41cmVtOyB9IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgbGluZS1jbGFtcDogMjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5iYWRnZXMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIHdpZHRoOiAxOXJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkuc2hvcnQge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0gLnNwZWNpYWwtcHJpY2UgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5zcGVjaWFsLXByaWNlIC5wcmljZS1jb250YWluZXIgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuOHJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0gLmFjdGlvbnMtcHJpbWFyeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC50b2NhcnQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyN3B4O1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMnJlbTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0gLnRvY2FydDpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5hY3Rpb25zLXNlY29uZGFyeSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAycmVtO1xuICAgICAgICByaWdodDogMnJlbTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgei1pbmRleDogMTsgfVxuICAgICAgICAuY3MtaGVhZGVyIC5uYXZpZ2F0aW9uIC5wcm9kdWN0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0gLmFjdGlvbnMtc2Vjb25kYXJ5IC5hY3Rpb24gPiBzcGFuIHtcbiAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5hY3Rpb25zLXNlY29uZGFyeSAuYWN0aW9uOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gICAgICAgIC5jcy1oZWFkZXIgLm5hdmlnYXRpb24gLnByb2R1Y3QtaXRlbXMgLnByb2R1Y3QtaXRlbSAuYWN0aW9ucy1zZWNvbmRhcnkgLmFjdGlvbi50b3dpc2hsaXN0OjpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy93aXNobGlzdC5zdmdcIik7IH1cbiAgICAgICAgLmNzLWhlYWRlciAubmF2aWdhdGlvbiAucHJvZHVjdC1pdGVtcyAucHJvZHVjdC1pdGVtIC5hY3Rpb25zLXNlY29uZGFyeSAuYWN0aW9uLnRvY29tcGFyZTo6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY29tcGFyZS5zdmdcIik7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0LjAxZW0pIHtcbiAgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMC5hY3RpdmU6YWZ0ZXIge1xuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjYzEyNzJmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7IH1cbiAgICAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwLmFjdGl2ZTphZnRlciAudGl0bGUge1xuICAgICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNtcy1vLW5hcyAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwOm50aC1vZi10eXBlKDIpIC50aXRsZSB7XG4gICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNtcy1vLW5hcyAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwOm50aC1vZi10eXBlKDIpOmFmdGVyIHtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2MxMjcyZjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY21zLXNlcndpcyAubmF2aWdhdGlvbiAubmF2LWl0ZW0ubGV2ZWwwOm50aC1vZi10eXBlKDMpIC50aXRsZSB7XG4gICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNtcy1zZXJ3aXMgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMDpudGgtb2YtdHlwZSgzKTphZnRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNjMTI3MmY7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNtcy1rb250YWt0IC5uYXZpZ2F0aW9uIC5uYXYtaXRlbS5sZXZlbDA6bnRoLW9mLXR5cGUoNCkgLnRpdGxlIHtcbiAgICBjb2xvcjogI2MxMjcyZjsgfVxuICAuY21zLWtvbnRha3QgLm5hdmlnYXRpb24gLm5hdi1pdGVtLmxldmVsMDpudGgtb2YtdHlwZSg0KTphZnRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNjMTI3MmY7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG5ib2R5LnNlYXJjaC1vcGVuIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7IH1cblxuLmNtcy1rbWEtaG9tZS1wYWdlIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLmNtcy1rbWEtaG9tZS1wYWdlIC5jcy1jb250YWluZXItLXRvcC1iYXIgKyAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICB0b3A6IDQwcHg7IH1cblxuLmNtcy1rbWEtaG9tZS1wYWdlIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjAyOyB9XG4gIC5jcy1jb250YWluZXItLWhlYWRlciAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxNjByZW07IH1cbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyID4gLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi5jcy1oZWFkZXIge1xuICBoZWlnaHQ6IDhyZW07XG4gIG1heC13aWR0aDogMTAwdnc7IH1cbiAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgcGFkZGluZy1pbmxpbmU6IDRyZW07XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgaGVpZ2h0OiA4cmVtO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCA+IC5jcy10b3BiYXJfX2l0ZW0tLWN1cnJlbmN5LFxuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCAuc3dpdGNoZXIubGFuZ3VhZ2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtaGVhZGVyIC5uYXYtc2VjdGlvbnMge1xuICAgICAgb3JkZXI6IC0xOyB9IH1cbiAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBtYXJnaW4taW5saW5lOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDB2dzsgfVxuICAgIC5jcy1oZWFkZXJfX3NlYXJjaC0tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuY3MtaGVhZGVyLXNlYXJjaCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogdW5zZXQgIWltcG9ydGFudDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX193cmFwcGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgICBwYWRkaW5nLWJsb2NrOiA4cmVtIDRyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMHZ3OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fd3JhcHBlciB7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEuNXJlbTsgfSB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX21vc3Qtc2VhcmNoZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgIG1heC13aWR0aDogNzdyZW07XG4gICAgICBtYXJnaW46IDRyZW0gYXV0byAxcmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fbW9zdC1zZWFyY2hlZCB7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEuNXJlbTsgfSB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fbW9zdC1zZWFyY2hlZFtzdHlsZSo9XCJkaXNwbGF5OiBub25lXCJdIH4gLnNlYXJjaC1hdXRvY29tcGxldGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX21vc3Qtc2VhcmNoZWQgaDMge1xuICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19tb3N0LXNlYXJjaGVkIHVsIHtcbiAgICAgICAgbWFyZ2luOiA0cmVtIDAgMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19tb3N0LXNlYXJjaGVkIHVsIGxpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAzODBweDsgfVxuICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19tb3N0LXNlYXJjaGVkIHVsIGxpIGE6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19tb3N0LXNlYXJjaGVkIHVsIGxpOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0S1BITjJaeUIzYVdSMGFEMGlNVFp3ZUNJZ2FHVnBaMmgwUFNJeE5uQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UWWdNVFlpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJK0NpQWdJQ0E4ZEdsMGJHVStZMmhsWTJzOEwzUnBkR3hsUGdvZ0lDQWdQR2NnYVdROUltTm9aV05ySWlCemRISnZhMlU5SW01dmJtVWlJSE4wY205clpTMTNhV1IwYUQwaU1TSWdabWxzYkQwaWJtOXVaU0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWo0S0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1URXVPVEUzTXpBNE1pd3pMamN5TWpZME9Ua2dRekV5TGpBM01EUTRORFFzTXk0ME9USTRPRFUxTmlBeE1pNHpPREE1TVRreExETXVORE13TnprNE5qSWdNVEl1TmpFd05qZ3pOQ3d6TGpVNE16azNORGcxSUVNeE1pNDRNVFE1TVRnMExETXVOekl3TVRNeE5TQXhNaTQ0T0RZMk5qYzFMRE11T1Rnd05UUXhOek1nTVRJdU56a3lOVEE1T0N3MExqRTVPREV3TURVM0lFd3hNaTQzTkRrek5UZzFMRFF1TWpjM016VXdNU0JNTnk0ME1UWXdNalV4TlN3eE1pNHlOemN6TlRBeElFTTNMakkxT0RVd05qUTBMREV5TGpVeE16WXlPRElnTmk0NU5ERTRPREEzTml3eE1pNDFOamN3TkRneklEWXVOekUzTkRnME5qUXNNVEl1TkRFeU56SXpOQ0JNTmk0Mk5EWTBORFkyTVN3eE1pNHpOVE0xTlRNMElFd3lMalkwTmpRME5qWXhMRGd1TXpVek5UVXpNemtnUXpJdU5EVXhNVGcwTkRZc09DNHhOVGd5T1RFeU5DQXlMalExTVRFNE5EUTJMRGN1T0RReE56QTROellnTWk0Mk5EWTBORFkyTVN3M0xqWTBOalEwTmpZeElFTXlMamd5TURBeE1qazJMRGN1TkRjeU9EZ3dNallnTXk0d09EazBNemN6Tml3M0xqUTFNelU1TlRFeElETXVNamcwTXpBMU5TdzNMalU0T0RVNU1URTJJRXd6TGpNMU16VTFNek01TERjdU5qUTJORFEyTmpFZ1REWXVPVEl5TERFeExqSXhOU0JNTVRFdU9URTNNekE0TWl3ekxqY3lNalkwT1RrZ1dpSWdhV1E5SWxCaGRHZ2lJR1pwYkd3OUlpTkRNVEkzTWtZaUlHWnBiR3d0Y25Wc1pUMGlibTl1ZW1WeWJ5SStQQzl3WVhSb1Bnb2dJQ0FnUEM5blBnbzhMM04yWno0PVwiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQge1xuICAgICAgbWFyZ2luLXRvcDogOXJlbTtcbiAgICAgIG1heC13aWR0aDogNzdyZW07XG4gICAgICBtYXJnaW46IGF1dG87IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDo6YmVmb3JlLCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDUxLCA1MSwgNTEsIDAuNSk7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2Uge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiA2cmVtO1xuICAgICAgcmlnaHQ6IDhyZW07IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQuM3JlbSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDMuM3JlbSAhaW1wb3J0YW50O1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2Uge1xuICAgICAgICAgIHRvcDogMnJlbTtcbiAgICAgICAgICByaWdodDogMXJlbTsgfSB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLXNlYXJjaCBwYXRoIHtcbiAgICAgICAgZmlsbDogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLWxvYWRlciB7XG4gICAgICAgIHN0cm9rZTogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDAgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogNnJlbSAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUge1xuICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxODBweCk7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDJyZW07IH0gfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA3N3JlbTtcbiAgICAgICAgbWFyZ2luOiBhdXRvOyB9XG4gICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC50ZXJtLCAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkge1xuICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC50ZXJtIGRkLCAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSBkZDo6YmVmb3JlLCAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQ6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyNzEzXCI7XG4gICAgICAgICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnRlcm0gZGQgLnFzLW9wdGlvbi1uYW1lLFxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnRlcm0gZGQgLmNhdGVnb3J5LW1pbmktY3J1bWIsIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5jYXRlZ29yeSBkZCAucXMtb3B0aW9uLW5hbWUsXG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQgLmNhdGVnb3J5LW1pbmktY3J1bWIge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAgICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSBkZCAucXMtb3B0aW9uLW5hbWUgc3Ryb25nLFxuICAgICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSBkZCAuY2F0ZWdvcnktbWluaS1jcnVtYiBzdHJvbmcsIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5jYXRlZ29yeSBkZCAucXMtb3B0aW9uLW5hbWUgc3Ryb25nLFxuICAgICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQgLmNhdGVnb3J5LW1pbmktY3J1bWIgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QudGVybSBkZCAuY2F0ZWdvcnktbWluaS1jcnVtYiwgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IGRkIC5jYXRlZ29yeS1taW5pLWNydW1iIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC50ZXJtIGRkIC5hbW91bnQsIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5jYXRlZ29yeSBkZCAuYW1vdW50IHtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnRlcm0gZGQ6aG92ZXIsIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5jYXRlZ29yeSBkZDpob3ZlciB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC50ZXJtIGRkOmhvdmVyIC5xcy1vcHRpb24tbmFtZSwgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LmNhdGVnb3J5IGRkOmhvdmVyIC5xcy1vcHRpb24tbmFtZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QuY2F0ZWdvcnkgZGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogOXJlbTsgfSB9XG4gICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5wcm9kdWN0IHtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCAucHJvZHVjdC1pdGVtIC5wcm9kdWN0LWltYWdlLWJveCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtOyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCAucHJvZHVjdC1pdGVtIC5wcm9kdWN0LWltYWdlLWJveCA+IGltZyB7XG4gICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCAucHJvZHVjdC1pdGVtIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAgICAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUgLnNtaWxlLWVsYXN0aWNzdWl0ZS1hdXRvY29tcGxldGUtcmVzdWx0IC5hdXRvY29tcGxldGUtbGlzdC5wcm9kdWN0IC5wcm9kdWN0LWl0ZW0gLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgLnByb2R1Y3QtaXRlbSAucHJpY2UtYm94IC5wcmljZS1maW5hbF9wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSAuc21pbGUtZWxhc3RpY3N1aXRlLWF1dG9jb21wbGV0ZS1yZXN1bHQgLmF1dG9jb21wbGV0ZS1saXN0LnByb2R1Y3QgLnByb2R1Y3QtaXRlbSAucHJpY2UtYm94IC5wcmljZS1maW5hbF9wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCAucHJvZHVjdC1pdGVtOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCAuYXV0b2NvbXBsZXRlLWxpc3QucHJvZHVjdCAucHJvZHVjdC1pdGVtOmhvdmVyIC5wcm9kdWN0LW5hbWUge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLWhlYWRlciAubmluamFtZW51cy5uaW5qYW1lbnVzLWRlc2t0b3AgLmxlZnRfZWRnZV9tZW51X2JhciA+IC5pdGVtLXN1Ym1lbnUge1xuICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLmxldmVsMCA+IC5pdGVtLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMTBweCAwIDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kaGVhZGVyX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRoZWFkZXJfYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuXG4kaGVhZGVyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuLy8gSG9yaXpvbnRhbCBhbGlnbiBvZiB0aGUgc2VhcmNoYm94IGlmIGl0J3MgZGlzcGxheWVkIGFzIGEgbGF5ZXIgLSBgJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnRgXG4kaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhZGVmYXVsdDtcblxuLy8gSWYgeW91IHdhbnQgdG8gY292ZXIgJ3NlYXJjaCcgaXRlbSBpbiBoZWFkZXIgYnkgc2VhcmNoYm94LCBwcm92aWRlIHByb3BlciBuZWdhdGl2ZSBtYXJnaW4gYmFzZWQgb24geW91ciBkZXNpZ25cbi8vIEl0IHdvcmtzIG9ubHkgaWYgJyRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50JyBoYXMgdmFsaWQgYnJlYWtwb2ludCBhbmQgYCRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudGAgPSBmbGV4LWVuZFxuJGhlYWRlcl9zZWFyY2hib3gtbWFyZ2luLXRvLWNvdmVyLXNlYXJjaC1pdGVtOiAtNi44cmVtICFkZWZhdWx0O1xuXG4vLyBDaGFuZ2UgaW4gZXRjL3ZpZXcueG1sIGlmIG5lY2Vzc2FyeVxuJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGhlYWRlcixcbiAgICBtb2JpbGVfaXNfc3RpY2t5XG4pICFkZWZhdWx0O1xuXG4kaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tbW9iaWxlOiAwICFkZWZhdWx0O1xuJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBWYXJpYWJsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gKiBJZiB5b3UgaGF2ZSBtb3JlIGVsZW1lbnRzIG9uIHRvcCwgeW91IGhhdmUgdG8gaW5jbHVkZSB0aGVpciBoZWlnaHQuXG4gKi9cbiRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0O1xuJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWhlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIChcbiAgICAkaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGUgYW5kICRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUgIT0gdHJ1ZVxuKSB7XG4gICAgLyoqXG4gICAgICogU3R5bGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAgICAgKi9cbiAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3BlbiAucGFnZS13cmFwcGVyLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtdGFibGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skbnN9Y29udGFpbmVyIHtcbiAgICAgICAgJi0taGVhZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgei1pbmRleDogODAwO1xuICAgICAgICAgICAgICAgIHRvcDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZpeGVkIHBvc2l0aW9uaW5nIHJlcXVpcmVkIHRvIHdvcmsgd2l0aCBvZmZjYW52YXMgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgICogQWxzbywgYXMgYSBmYWxsYmFjayBmb3IgSUUgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBzdGlja3kuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4ubm8tc2Nyb2xsICYsXG4gICAgICAgICAgICAgICAgLmllMTEge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi1tb2JpbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31oZWFkZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkaGVhZGVyX2ZvbnQtc2l6ZTtcblxuICAgIEBpZiAoJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlKSB7XG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXJfYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJGhlYWRlcl9ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmbGV4OiAwIDEgNHJlbTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1tZW51LWlzLXJpZ2h0KSB7XG4gICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMSAxO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwLjdyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCBhbmRcbiAgICAgICAgICAgICAgICAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQgPT1cbiAgICAgICAgICAgICAgICAnZmxleC1lbmQnXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaGVhZGVyX3NlYXJjaGJveC1tYXJnaW4tdG8tY292ZXItc2VhcmNoLWl0ZW07XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudCA9PSAnZmxleC1lbmQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaGVhZGVyX3NlYXJjaGJveC1tYXJnaW4tdG8tY292ZXItc2VhcmNoLWl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX191c2VyLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGZsZXg6IDAgMSAzMCU7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAxIDI1JTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDEgMjUlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhY2stYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiA0cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFjay1idXR0b24taWNvbiB7XG4gICAgICAgIGZpbGw6ICRjb2xvcl9ib3JkZXItNzAwO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lJykge1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQG1peGluIG1vYmlsZUxpbmtzSWNvbiB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbn1cblxuLiN7JG5zfWhlYWRlciB7XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogM3JlbTtcbiAgICAgICAgJiA+IC5uaW5qYW1lbnVzIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAmID4gLmNvbXBhcmUge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDIuNXJlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuI3skbnN9aGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogLTFyZW07XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLiN7JG5zfWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tYWdlem9uLWJ1aWxkZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgJiA+IC5sZXZlbDAge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAuc3dpdGNoZXIsXG4gICAgICAgICAgICAubmluamFtZW51cy1jbG9zZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGl2Lm5hdi1pdGVtLmxldmVsMCB7XG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXYubmF2LWl0ZW0ubGV2ZWwwLm1lZ2EubWd6LWVsZW1lbnQge1xuICAgICAgICAgICAgICAgICYgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBhbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5uYXYtaXRlbXMtY29sdW1uIHtcbiAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAubmF2LWl0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBjb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWd6LWVsZW1lbnQtaGVhZGluZy10ZXh0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubWd6LXRhYnMtbmF2IHtcbiAgICAgICAgICAgICAgICAubWd6LXRhYnMtdGFiLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTMwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJGttYV90cmFuc2l0aW9uX3RpbWUgYWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgLm1nei1mYS1hbmdsZS1yaWdodCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYubWd6LWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmJvdHRvbS1saW5rcy1vdXRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTEwMDtcbiAgICAgICAgICAgICAgICAuYm90dG9tLWxpbmtzIHtcbiAgICAgICAgICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQobiArIDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTMwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAmID4gLm5pbmphbWVudXMtZGVza3RvcCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5uaW5qYW1lbnVzLWhhbWJ1cmdlci10cmlnZ2VyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgLm1lbnUtdHJpZ2dlci1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogNXB4O1xuICAgICAgICAgICAgICAgICAgICAudHJpZ2dlci1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAubGluZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ibG9jazogNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYubmluamFtZW51cy1oYW1idXJnZXItYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAubmluamFtZW51cyB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5kcmlsbGRvd24tcm9vdCA+IC5kcmlsbGRvd24tcm9vdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgICAgICAgICAgIC5uaW5qYW1lbnVzLWRyaWxsZG93bi1iYWNrIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2dyZXktMTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmID4gLmRyaWxsZG93bi1yb290ID4gLm1nei1lbGVtZW50LWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzcmVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDdyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiAubWd6LWVsZW1lbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zd2l0Y2hlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuYm90dG9tLWxpbmtzLW91dGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAuYm90dG9tLWxpbmtzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDJyZW0gNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtb2JpbGVMaW5rc0ljb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wcm9tb3Rpb24uc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtb2JpbGVMaW5rc0ljb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9uZXcuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmRyaWxsZG93bi1yb290IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAmID4gLm1nei1lbGVtZW50LWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2dyZXktMTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IC0xLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5uaW5qYW1lbnVzLWRyaWxsZG93bi1iYWNrIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZTogLTEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDVyZW0gMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgM3JlbSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDIuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tZ3otZWxlbWVudC1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5uYXYtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAka21hX2NvbG9yX2dyZXktMzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5tZ3otZmEtYW5nbGUtcmlnaHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuc3dpdGNoZXItbGFuZ3VhZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5zd2l0Y2hlci5jdXJyZW5jeSxcbiAgICAgICAgICAgICAgICAgICAgLnN3aXRjaGVyLWxhbmd1YWdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLmFjdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hY3Rpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hZ2UtZHJvcGRvd24tZGlhbG9nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiB1bCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLm5pbmphbWVudXMtY2xvc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNlbnRlciBuby1yZXBlYXQgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3guc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmRyaWxsZG93bi1vcGVuZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgJi5kcmlsbGRvd24tYmFjayB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMTlweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5tZ3otdGFicy10YWItY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAubWd6LWVsZW1lbnQtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLm1nei10YWJzIC5tZ3otdGFicy10YWItY29udGVudCAubWd6LXNpbmdsZS1pbWFnZS13cmFwcGVyLFxuICAgICAgICAgICAgLm1nei1lbGVtZW50LWhlYWRpbmcsXG4gICAgICAgICAgICAubGlua3MsXG4gICAgICAgICAgICAubWd6LXRhYnMtdGFiLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubmF2LWl0ZW0ubGV2ZWwwIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5uYXYtaXRlbS5sZXZlbDAge1xuICAgICAgICAgICAgJi5hY3RpdmUgPiBhIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5tZWdhLm1nei1lbGVtZW50OmhvdmVyIHtcbiAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLm1lZ2Ege1xuICAgICAgICAgICAgICAgICY6aG92ZXIgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3Jfd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGttYV9jb2xvcl9yZWQtNTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJiA+IGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAyLjdyZW07XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5ibG9jay10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgICAgIC5wcm9kdWN0LWl0ZW1zIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAucHJvZHVjdC1pdGVtIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0yMDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGFsbDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogNTAwcHg7XG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMnB4IDAgcmdiYSgka21hX2NvbG9yX2JsYWNrLCAwLjE1KTtcbiAgICAgICAgICAgICAgICAgICAgLmFjdGlvbnMtc2Vjb25kYXJ5LFxuICAgICAgICAgICAgICAgICAgICAuYWN0aW9ucy1wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1ib3gsXG4gICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi1pbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LWltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNDUlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiA+IGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgNHJlbSAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDkuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTEuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDlyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogOXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTEuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA4LjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5iYWRnZXMge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxOXJlbTtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeS5zaG9ydCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYWN0aW9ucy1wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAudG9jYXJ0IHtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDI3cHg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGFsbDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC04MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmFjdGlvbnMtc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICAuYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJi50b3dpc2hsaXN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvd2lzaGxpc3Quc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYudG9jb21wYXJlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY29tcGFyZS5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYShcIj5sYXB0b3BcIikge1xuICAgIC5uYXZpZ2F0aW9uIHtcbiAgICAgICAgLm5hdi1pdGVtLmxldmVsMC5hY3RpdmUge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5jbXMtby1uYXMge1xuICAgICAgICAubmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAubmF2LWl0ZW0ubGV2ZWwwIHtcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNtcy1zZXJ3aXMge1xuICAgICAgICAubmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAubmF2LWl0ZW0ubGV2ZWwwIHtcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDMpIHtcbiAgICAgICAgICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNtcy1rb250YWt0IHtcbiAgICAgICAgLm5hdmlnYXRpb24ge1xuICAgICAgICAgICAgLm5hdi1pdGVtLmxldmVsMCB7XG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg0KSB7XG4gICAgICAgICAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5zY3NzXCI7XG5AaW1wb3J0IFwiLi9uYXZpZ2F0aW9uXCI7XG5cbiRrbWFfaGVhZGVyX2hlaWdodDogOHJlbTtcblxuJGttYV9zZWFyY2hfbW9kYWxfd3JhcHBlcl9zaXplOiA3N3JlbTtcblxuYm9keS5zZWFyY2gtb3BlbiB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcbn1cblxuLmNtcy1rbWEtaG9tZS1wYWdlIHtcbiAgICAuI3skbnN9Y29udGFpbmVyLS1oZWFkZXIge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgICAuI3skbnN9Y29udGFpbmVyLS10b3AtYmFyICsgLiN7JG5zfWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICAgICAgdG9wOiA0MHB4O1xuICAgIH1cbiAgICAuI3skbnN9Y29udGFpbmVyIHtcbiAgICAgICAgJi0taGVhZGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1oZWFkZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyMDI7XG4gICAgICAgIC4jeyRuc31jb250YWluZXJfX2lubmVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJGttYV9jb250YWluZXJfc2l6ZS1mdWxsO1xuICAgICAgICB9XG4gICAgICAgICYgPiAuI3skbnN9Y29udGFpbmVyX19pbm5lciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxhcHRvcFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9aGVhZGVyIHtcbiAgICAkcm9vdDogJjtcbiAgICBoZWlnaHQ6ICRrbWFfaGVhZGVyX2hlaWdodDtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogNHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6ICRrbWFfaGVhZGVyX2hlaWdodDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgJiA+IC4jeyRuc310b3BiYXJfX2l0ZW0tLWN1cnJlbmN5LFxuICAgICAgICAgICAgLnN3aXRjaGVyLmxhbmd1YWdlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fbG9nbyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5hdi1zZWN0aW9ucyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxhcHRvcFwiKSB7XG4gICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBtYXJnaW4taW5saW5lOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi1zZWFyY2gge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICAmX193cmFwcGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiA4cmVtIDRyZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMHZ3O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmX19tb3N0LXNlYXJjaGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRrbWFfc2VhcmNoX21vZGFsX3dyYXBwZXJfc2l6ZTtcbiAgICAgICAgICAgIG1hcmdpbjogNHJlbSBhdXRvIDFyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJltzdHlsZSo9XCJkaXNwbGF5OiBub25lXCJdIH4gLnNlYXJjaC1hdXRvY29tcGxldGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTQ7XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNHJlbSAwIDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1iYXNpczogMzgwcHg7XG4gICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0S1BITjJaeUIzYVdSMGFEMGlNVFp3ZUNJZ2FHVnBaMmgwUFNJeE5uQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UWWdNVFlpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJK0NpQWdJQ0E4ZEdsMGJHVStZMmhsWTJzOEwzUnBkR3hsUGdvZ0lDQWdQR2NnYVdROUltTm9aV05ySWlCemRISnZhMlU5SW01dmJtVWlJSE4wY205clpTMTNhV1IwYUQwaU1TSWdabWxzYkQwaWJtOXVaU0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWo0S0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1URXVPVEUzTXpBNE1pd3pMamN5TWpZME9Ua2dRekV5TGpBM01EUTRORFFzTXk0ME9USTRPRFUxTmlBeE1pNHpPREE1TVRreExETXVORE13TnprNE5qSWdNVEl1TmpFd05qZ3pOQ3d6TGpVNE16azNORGcxSUVNeE1pNDRNVFE1TVRnMExETXVOekl3TVRNeE5TQXhNaTQ0T0RZMk5qYzFMRE11T1Rnd05UUXhOek1nTVRJdU56a3lOVEE1T0N3MExqRTVPREV3TURVM0lFd3hNaTQzTkRrek5UZzFMRFF1TWpjM016VXdNU0JNTnk0ME1UWXdNalV4TlN3eE1pNHlOemN6TlRBeElFTTNMakkxT0RVd05qUTBMREV5TGpVeE16WXlPRElnTmk0NU5ERTRPREEzTml3eE1pNDFOamN3TkRneklEWXVOekUzTkRnME5qUXNNVEl1TkRFeU56SXpOQ0JNTmk0Mk5EWTBORFkyTVN3eE1pNHpOVE0xTlRNMElFd3lMalkwTmpRME5qWXhMRGd1TXpVek5UVXpNemtnUXpJdU5EVXhNVGcwTkRZc09DNHhOVGd5T1RFeU5DQXlMalExTVRFNE5EUTJMRGN1T0RReE56QTROellnTWk0Mk5EWTBORFkyTVN3M0xqWTBOalEwTmpZeElFTXlMamd5TURBeE1qazJMRGN1TkRjeU9EZ3dNallnTXk0d09EazBNemN6Tml3M0xqUTFNelU1TlRFeElETXVNamcwTXpBMU5TdzNMalU0T0RVNU1URTJJRXd6TGpNMU16VTFNek01TERjdU5qUTJORFEyTmpFZ1REWXVPVEl5TERFeExqSXhOU0JNTVRFdU9URTNNekE0TWl3ekxqY3lNalkwT1RrZ1dpSWdhV1E5SWxCaGRHZ2lJR1pwYkd3OUlpTkRNVEkzTWtZaUlHWnBiR3d0Y25Wc1pUMGlibTl1ZW1WeWJ5SStQQzl3WVhSb1Bnb2dJQ0FnUEM5blBnbzhMM04yWno0PVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9fZmllbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOXJlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogJGttYV9zZWFyY2hfbW9kYWxfd3JhcHBlcl9zaXplO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKCRrbWFfY29sb3JfZ3JleS04MDAsIDAuNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9fY2xvc2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgdG9wOiA2cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDhyZW07XG4gICAgICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQuM3JlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMy4zcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAycmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLS1sb2FkZXIge1xuICAgICAgICAgICAgICAgICAgICBzdHJva2U6ICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9faW5wdXQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGttYV9jb2xvcl9ibGFjayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiA2cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS00O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9fYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTgwcHgpO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbWlsZS1lbGFzdGljc3VpdGUtYXV0b2NvbXBsZXRlLXJlc3VsdCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAka21hX3NlYXJjaF9tb2RhbF93cmFwcGVyX3NpemU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgICAgIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNDtcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5hdXRvY29tcGxldGUtbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgICYudGVybSxcbiAgICAgICAgICAgICAgICAgICAgJi5jYXRlZ29yeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcXDI3MTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xcy1vcHRpb24tbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0ZWdvcnktbWluaS1jcnVtYiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRlZ29yeS1taW5pLWNydW1iIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hbW91bnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xcy1vcHRpb24tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJi5jYXRlZ29yeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDlyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYucHJvZHVjdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1pbWFnZS1ib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiA+IGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1maW5hbF9wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAubmluamFtZW51cy5uaW5qYW1lbnVzLWRlc2t0b3AgLmxlZnRfZWRnZV9tZW51X2JhciA+IC5pdGVtLXN1Ym1lbnUge1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyAvLyBxdWlja2ZpeFxuICAgIH1cbn1cbi5sZXZlbDAgPiAuaXRlbS1zdWJtZW51IHtcbiAgICAvLyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyAvL2RlbFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDEwcHggMCAwO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1oZWFkZXItc2VhcmNoIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXNlYXJjaCB7XG4gICAgICB3aWR0aDogNTAlOyB9IH1cbiAgLmNzLWhlYWRlci1zZWFyY2gtLWluLW9mZmNhbnZhcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDpiZWZvcmUsIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgICBsZWZ0OiAtMC41cmVtO1xuICAgICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgICAgIHRvcDogLTAuNXJlbTtcbiAgICAgIGJvdHRvbTogLTAuNXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIHotaW5kZXg6IDIwOTsgfVxuICAgIC5hY3RpdmUtcG9wdXAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmJlZm9yZSwgLmFjdGl2ZS1wb3B1cCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyMTA7XG4gICAgbWFyZ2luOiAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQubWFnZS1lcnJvciwgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAxODsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQge1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTsgfSB9XG4gICAgLmFqYXgtbG9hZGluZyAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6Zm9jdXMgKyAuY3MtaGVhZGVyLXNlYXJjaF9fYWN0aW9uIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyLS1zZWFyY2gge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAgIC5hamF4LWxvYWRpbmcgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OmZvY3VzICsgLmNzLWhlYWRlci1zZWFyY2hfX2FjdGlvbiAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tbG9hZGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2FjdGlvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMjIwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjRweDsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbiB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAuNjYsIDAuMzIsIDAuOTkpLCBvcGFjaXR5IDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyLS1zZWFyY2gge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiB7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAuN3JlbSk7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbltkaXNhYmxlZF0sIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMC4zcmVtKTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24taWNvbi0tc2VhcmNoIHtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgaGVpZ2h0OiAycmVtOyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLXNlYXJjaCBwYXRoIHtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24taWNvbi0tbG9hZGVyIHtcbiAgICAgIHN0cm9rZTogI2ZmZjtcbiAgICAgIHdpZHRoOiAzLjJyZW07XG4gICAgICBoZWlnaHQ6IDMuMnJlbTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWxhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgICBsZWZ0OiAwLjVyZW07XG4gICAgcmlnaHQ6IDAuNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYyggMTAwdmggLSA1cmVtIC0gMi42cmVtIC0gN3JlbSk7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNyk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuLy8gT24gaU9TIHRoZSBzZWFyY2ggaW5wdXQgaGFzIHRvIGJlIGF0IGxlYXN0IDE2cHggbGFyZ2UsXG4vLyBvdGhlcndpc2UgaXQgd2lsbCBuZWVkbGVzc2x5IHRyaWdnZXIgcGFnZSB6b29tIG9uY2UgdGhlIGlucHV0IGlzIGZvY3VzZWQuXG4vLyAtIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI5ODkyNjMvZGlzYWJsZS1hdXRvLXpvb20taW4taW5wdXQtdGV4dC10YWctc2FmYXJpLW9uLWlwaG9uZVxuLy8gLSBodHRwczovL3d3dy53YXJyZW5jaGFuZGxlci5jb20vMjAxOS8wNC8wMi9zdG9wLWlwaG9uZXMtZnJvbS16b29taW5nLWluLW9uLWZvcm0tZmllbGRzL1xuJGhlYWRlci1zZWFyY2hfZm9udC1zaXplLW1vYmlsZTogMS42cmVtICFkZWZhdWx0O1xuXG4vLyBXaWR0aCBvZiB0aGUgc2VhcmNoIGZpZWxkLiBXb3JrcyBvbmx5IGZvciBgJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnRgIGJyZWFrcG9pbnQsIGluIG90aGVyIGNhc2UgaXQncyBhbHdheXMgMTAwJVxuJGhlYWRlci1zZWFyY2gtd2lkdGgtYXMtbGF5ZXI6IDUwJSAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfY2xvc2UtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXdpZHRoOiA1cmVtICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLWJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudCAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMC43cmVtKSAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfaWNvbi1zZWFyY2gtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tc2VhcmNoLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLWxvYWRlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfaWNvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTAuM3JlbSkgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2J1dHRvbi1jb250YWluZXItdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXNcbiAgICAgICAgJHRyYW5zaXRpb24tZWFzaW5nX3Nsb3dkb3duLTkwMCxcbiAgICBvcGFjaXR5IDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJveC1zaGFkb3c6IDAgNHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTcpICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuLiN7JG5zfWhlYWRlci1zZWFyY2gge1xuICAgICRyb290OiAmO1xuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICB3aWR0aDogJGhlYWRlci1zZWFyY2gtd2lkdGgtYXMtbGF5ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1pbi1vZmZjYW52YXMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgICAgICAgICBsZWZ0OiAtMC41cmVtO1xuICAgICAgICAgICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaGVhZGVyLXNlYXJjaF9hdXRvY29tcGxldGUtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgICAgICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgICAgICAgYm90dG9tOiAtMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDIwOTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIC5hY3RpdmUtcG9wdXAgJiB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRlci1zZWFyY2hfZm9udC1zaXplLW1vYmlsZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyMTA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgKyAjeyRyb290fV9fYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAuYWpheC1sb2FkaW5nICYge1xuICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLWNvbnRhaW5lci0tbG9hZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgei1pbmRleDogMjIwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICB9XG5cbiAgICAmX19jbG9zZS1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGxpbmVhcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgICAgICRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXNlYXJjaF9jbG9zZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjogJGhlYWRlci1zZWFyY2hfYnV0dG9uLWNvbnRhaW5lci10cmFuc2l0aW9uO1xuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sb2FkZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAnb25seS1pY29uJ1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAkaGVhZGVyLXNlYXJjaF9idXR0b24td2lkdGg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB0cmFuc2Zvcm06ICRoZWFkZXItc2VhcmNoX2J1dHRvbi10cmFuc2Zvcm07XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgdHJhbnNmb3JtOiAkaGVhZGVyLXNlYXJjaF9pY29uLXRyYW5zZm9ybTtcblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItc2VhcmNoX2ljb24tc2VhcmNoLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgIHN0cm9rZTogJGhlYWRlci1zZWFyY2hfaWNvbi1sb2FkZXItY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAzLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19hdXRvY29tcGxldGUge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgcmlnaHQ6IDAuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgMTAwdmggLSAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGV9IC0gI3skZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0fSAtXG4gICAgICAgICAgICAgICAgICAgIDdyZW1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAkaGVhZGVyLXNlYXJjaF9hdXRvY29tcGxldGUtYm94LXNoYWRvdztcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDAgMC43cmVtOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxleDogMSAxIDI1JTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICAgICAgZmxleDogMSAxIDMzLjMzMzMzJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaDpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbi13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiB7XG4gICAgd2lkdGg6IDIuNnJlbTtcbiAgICBoZWlnaHQ6IDIuNnJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgIHBhZGRpbmc6IDAgMC42cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGhlaWdodDogMS44ZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgdG9wOiAtMC41cmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICAgICAgcmlnaHQ6IC0xcmVtOyB9IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZDQwMDtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWQ0MDA7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1oYXZlLWl0ZW1zIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItc3BhbiB7XG4gICAgbWluLXdpZHRoOiAxY2g7IH1cblxuLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gIGZsZXg6IDAgMSAxNSU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0LCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QsIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICBib3R0b206IDMuNXJlbTtcbiAgICB0b3A6IHVuc2V0O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzY2NjtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICBib3JkZXI6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvdHRvbTogLTNweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiA0M3B4O1xuICAgIG1heC13aWR0aDogNDNweDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMDsgfSB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5O1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjYzEyNzJmOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGNsaXA6IHVuc2V0O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHtcbiAgICB3aWR0aDogMi4zcmVtO1xuICAgIGhlaWdodDogMi4zcmVtOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICMwMDAwMDA7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHN0YXRpYzsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHF0eS1jb3VudGVyX2hvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3R5cGUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfc3Bhbi1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL3F0eS1jb3VudGVyL21peGluJztcblxuJGhlYWRlci11c2VyLW5hdl9pdGVtczogMyAhZGVmYXVsdDsgLy8gbnVtYmVyIG9mIGl0ZW1zIGluIGhlYWRlciB1c2VyIG5hdiAod2l0aG91dCBzZWFyY2ggaXRlbSlcblxuJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfaWNvbi13aWR0aDogMi42cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9pY29uLWhlaWdodDogJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoICFkZWZhdWx0O1xuXG4vLyBTZXQgdXAgd2hlbiBsYWJlbCBpbiBoZWFkZXIgdXNlciBuYXYgc2hvdWxkIGJlIHZpc2libGVcbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHRydWUgKGFsd2F5cykgfCBmYWxzZSAobmV2ZXIpIHwgYnJlYWtwb2ludFxuJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlOiAnPj10YWJsZXQnICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A6IDAuM3JlbSAhZGVmYXVsdDtcblxuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1jb21wYXJlLXNob3ctZW1wdHk6IGZhbHNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci13aXNobGlzdC1zaG93LWVtcHR5OiBmYWxzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItbWluaWNhcnQtc2hvdy1lbXB0eTogZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi1zaG93OiB0cnVlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuXG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXRvcC1vZmZzZXQ6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGU6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXQ6IC0xcmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtZGVza3RvcDogLTFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItdXNlci1uYXYge1xuICAgICRyb290OiAmO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gJGhlYWRlci11c2VyLW5hdl9pdGVtcyk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09IGZhbHNlKVxuICAgICAgICB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgKDEwMCUgLyAoJGhlYWRlci11c2VyLW5hdl9pdGVtcyArIDEpKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgKDEwMCUgLyAoJGhlYWRlci11c2VyLW5hdl9pdGVtcyArIDEpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgI3skZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludH1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICRoZWFkZXItdXNlci1uYXZfaXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PSB0cnVlXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAgICAgJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnRcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbi13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A7XG4gICAgICAgIGNvbG9yOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGUgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZSA9PSBmYWxzZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKFxuXG4gICAgICAgICAgICApOyAvLyBMYWJlbCBpcyBub3QgZGlzcGxheWVkIG9uIHNjcmVlbiBidXQgYWNjZXNzaWJsZSBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoI3skaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGV9KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcXR5LWNvdW50ZXIge1xuICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcigpO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6ICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgdG9wOiAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXRvcC1vZmZzZXQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LW1vYmlsZSAhPVxuICAgICAgICAgICAgICAgICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LXRhYmxldFxuICAgICAgICApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtdGFibGV0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LXRhYmxldCAhPVxuICAgICAgICAgICAgICAgICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LWRlc2t0b3BcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICByaWdodDogJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtZGVza3RvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tc2hvdykge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi10aW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnd2lzaGxpc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbmljYXJ0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUoJ21pbmljYXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb21wYXJlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUoJ2NvbXBhcmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhdmUtaXRlbXMge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICYjeyRyb290fV9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IHtcbiAgICAgICAgICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItd2lzaGxpc3Qtc2hvdy1lbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiN7JHJvb3R9X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1taW5pY2FydC1zaG93LWVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skcm9vdH1fX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItY29tcGFyZS1zaG93LWVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcXR5LWNvdW50ZXItc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3NwYW4oKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvaG9vayc7XG5cbiRxdHktY291bnRlcl9mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9oZWlnaHQ6IDEuOGVtICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX3BhZGRpbmc6IDAgMC42cmVtICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2JvcmRlcjogMCAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9ib3JkZXItcmFkaXVzOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbiRxdHktY291bnRlci0tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLWRlZmF1bHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1taW5pY2FydC1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS13aXNobGlzdC1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0td2lzaGxpc3QtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuQG1peGluIHF0eS1jb3VudGVyKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1kZWZhdWx0LWNvbG9yO1xuICAgIGJvcmRlcjogJHF0eS1jb3VudGVyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkcXR5LWNvdW50ZXJfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAkcXR5LWNvdW50ZXJfcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6ICRxdHktY291bnRlcl9mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6ICRxdHktY291bnRlcl9mb250LXdlaWdodDtcbiAgICBoZWlnaHQ6ICRxdHktY291bnRlcl9oZWlnaHQ7XG4gICAgLy8gUHJldmVudCBJRTExIGFuZCBFZGdlIGJ1ZyB3aXRoIGJhY2tncm91bmQgYW5kIHJvdW5kIGJvcmRlcnNcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl90eXBlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBAaWYgKCR0eXBlID09ICd3aXNobGlzdCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS13aXNobGlzdC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS13aXNobGlzdC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdtaW5pY2FydCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdjb21wYXJlJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0tY29tcGFyZS1jb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfc3BhbigkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgbWluLXdpZHRoOiAxY2g7XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuLWhvb2soJHR5cGUpO1xufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2LnNjc3NcIjtcblxuLiN7JG5zfWhlYWRlci11c2VyLW5hdiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBmbGV4OiAwIDEgMTUlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmX19xdHktY291bnRlciB7XG4gICAgICAgICYtLW1pbmljYXJ0LFxuICAgICAgICAmLS13aXNobGlzdCxcbiAgICAgICAgJi0tY29tcGFyZSB7XG4gICAgICAgICAgICBib3R0b206IDMuNXJlbTtcbiAgICAgICAgICAgIHRvcDogdW5zZXQ7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAmLS1jb21wYXJlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfYmx1ZTtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICB9XG4gICAgICAgICYtLW1pbmljYXJ0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfc2Vjb25kYXJ5LTUwMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvdHRvbTogLTNweDtcbiAgICB9XG4gICAgJl9faXRlbSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNDNweDtcbiAgICAgICAgbWF4LXdpZHRoOiA0M3B4O1xuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2xpbmsge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogMDtcbiAgICAgICAgfVxuICAgICAgICAjeyRyb290fV9fbGFiZWwge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIG9wYWNpdHk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxcztcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICN7JHJvb3R9X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGNsaXA6IHVuc2V0O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAyLjNyZW07XG4gICAgICAgIGhlaWdodDogMi4zcmVtO1xuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3JfYmxhY2s7XG4gICAgICAgIH1cbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuIiwiLmxhenlsb2FkLFxuLmxhenlsb2FkaW5nLFxuLnN3aXBlci1sYXp5IHtcbiAgICAvLyBBZGRlZCB0byBwcmV2ZW50IGxhenlTaXplcyBmcm9tIGRlbGF5aW5nIGltYWdlcyBsb2FkLlxuICAgIG9wYWNpdHk6IDAuMDAxO1xufVxuXG4ubGF6eWxvYWRlZCxcbi5zd2lwZXItbGF6eS1sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTsgfVxuICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb24gLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG8tLWNlbnRlcmVkIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSArIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW06bnRoLWNoaWxkKDJuKSB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtOm50aC1jaGlsZCgybikgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICMxNDJiOWU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMTQyYjllO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiB7XG4gICAgd2lkdGg6IDEuMzc1ZW07XG4gICAgaGVpZ2h0OiAxLjM3NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC40cmVtOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0td2lzaGxpc3QgcGF0aCB7XG4gICAgICBmaWxsOiAjZTQxZjEyOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uLS1jb21wYXJlIHBhdGgge1xuICAgICAgZmlsbDogIzMyNGRjZjsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5wYWdlLXByb2R1Y3QtYnVuZGxlIC5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbiAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0by0tY2VudGVyZWQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtICsgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW06bnRoLWNoaWxkKDJuKSB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtOm50aC1jaGlsZCgybikgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgY29sb3I6ICNjMTI3MmY7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiB7XG4gICAgd2lkdGg6IDIuNHJlbTtcbiAgICBoZWlnaHQ6IDIuNHJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICMzMzMzMzM7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24tLXdpc2hsaXN0IHBhdGgge1xuICAgICAgZmlsbDogIzMzMzMzMzsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0td2lzaGxpc3Q6aG92ZXIgcGF0aCB7XG4gICAgICBmaWxsOiAjYzEyNzJmICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24tLWNvbXBhcmUgcGF0aCB7XG4gICAgICBmaWxsOiAjMzMzMzMzOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uLS1jb21wYXJlOmhvdmVyIHBhdGgge1xuICAgICAgZmlsbDogI2MxMjcyZiAhaW1wb3J0YW50OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJGxpbmtzLWJsb2NrLWFkZHRvX3dpc2hsaXN0LWljb24tY29sb3I6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9fY29tcGFyZS1pY29uLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2NvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9faG92ZXItY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9fZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9faWNvbi13aWR0aDogMS4zNzVlbSAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19pY29uLWhlaWdodDogMS4zNzVlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICAkcm9vdDogJjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX2FkZG9uICYge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLS1jZW50ZXJlZCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgKyAjeyRyb290fV9faXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9ncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX3dpc2hsaXN0LWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb21wYXJlIHtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b19jb21wYXJlLWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2xpbmtzLWJsb2NrLWFkZHRvL2xpbmtzLWJsb2NrLWFkZHRvLnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5cbiRsaW5rcy1ibG9jay1hZGR0b193aXNobGlzdC1pY29uLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjogJGttYV9jb2xvcl9zZWNvbmRhcnktNTAwO1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTogJGttYV9pY29uX3NpemUtNTAwO1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg6ICRrbWFfaWNvbl9zaXplLTUwMDtcbiRsaW5rcy1ibG9jay1hZGR0b19pY29uLWhlaWdodDogJGttYV9pY29uX3NpemUtNTAwO1xuXG4uI3skbnN9bGlua3MtYmxvY2stYWRkdG8ge1xuICAgICRyb290OiAmO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fYWRkb24gJiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgICYtLWNlbnRlcmVkIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICArICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b193aXNobGlzdC1pY29uLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX3dpc2hsaXN0LWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tY29tcGFyZSB7XG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbGlua3MtYmxvY2stYWRkdG9fY29tcGFyZS1pY29uLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1sb2dvIHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1sb2dvX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAuY3MtbG9nb19faW1hZ2UtLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLmNzLWxvZ29fX2ltYWdlLS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1sb2dvX19pbWFnZS0tbW9iaWxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAuY3MtbG9nb19faW1hZ2UtLW1vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLWxvZ28ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1sb2dvX19pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWxvZ29fX2ltYWdlIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxM3JlbTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi4jeyRuc31sb2dvIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gRml4ZXMgaGVpZ2h0OiBhdXRvIGJ1ZyBvbiBjaHJvbWUuXG5cbiAgICAgICAgJi0tZGVza3RvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vYmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvbG9nby9sb2dvLnNjc3NcIjtcblxuLiN7JG5zfWxvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEzcmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ubWVzc2FnZXMge1xuICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLFxuLm1lc3NhZ2Uge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgcGFkZGluZzogMS44cmVtIDFyZW0gMS44cmVtO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxLjJyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDJyZW0gMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiA0LjNyZW07IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLS1zdWNjZXNzLFxuLm1lc3NhZ2Uuc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDksIDEzNiwgOTgsIDAuMSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXN1Y2Nlc3Muc3ZnXCIpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLS1ub3RpY2UsXG4ubWVzc2FnZS53YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjRjYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24td2FybmluZy5zdmdcIik7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLWluZm8sXG4ubWVzc2FnZS5pbmZvLFxuLm1lc3NhZ2Uubm90aWNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCA1NCwgMTAyLCAwLjEpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1pbmZvLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0tZXJyb3IsXG4ubWVzc2FnZS5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAwLCAyNCwgMC4xKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24tZXJyb3Iuc3ZnXCIpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmNzLW1lc3NhZ2VzX190ZXh0LFxuLm1lc3NhZ2Ugc3BhbiB7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBmb250LXNpemU6IDEuNHJlbTsgfVxuXG4uY3MtbWVzc2FnZXMtLXNwYWNlLXRvcCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuIiwiQGltcG9ydCAnLi4vLi4vY29uZmlnL3ZhcmlhYmxlcyc7XG4vLyBAaW1wb3J0ICcuLi8uLi92ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kbWVzc2FnZXNfc3VjY2Vzcy1iYWNrZ3JvdW5kLWNvbG9yOiAka21hX21lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvciAhZGVmYXVsdDtcbiRtZXNzYWdlc19pbmZvLWJhY2tncm91bmQtY29sb3I6ICRrbWFfbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuJG1lc3NhZ2VzX25vdGljZS1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2FybmluZy0yMDAgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvcjogJGttYV9tZXNzYWdlc19lcnJvci1iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuXG4kbWVzc2FnZXNfc3VjY2Vzcy1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfaW5mby1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfbm90aWNlLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19lcnJvci1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbiRtZXNzYWdlc19ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJG1lc3NhZ2VzX3BhZGRpbmc6IDEuOHJlbSAxcmVtIDEuOHJlbSAhZGVmYXVsdDtcbiRtZXNzYWdlc190ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kbWVzc2FnZV9pY29uLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJG1lc3NhZ2VfaWNvbi1oZWlnaHQ6ICRtZXNzYWdlX2ljb24td2lkdGggIWRlZmF1bHQ7XG5cbi5tZXNzYWdlcyB7XG4gICAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZSxcbi5tZXNzYWdlIHtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgICBwYWRkaW5nOiAkbWVzc2FnZXNfcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkbWVzc2FnZXNfYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEuMnJlbSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkbWVzc2FnZV9pY29uLXdpZHRoICRtZXNzYWdlX2ljb24taGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogNC4zcmVtO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLXN1Y2Nlc3MsXG4ubWVzc2FnZS5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfc3VjY2Vzcy1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24tc3VjY2Vzcy5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19zdWNjZXNzLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1ub3RpY2UsXG4ubWVzc2FnZS53YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfbm90aWNlLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi13YXJuaW5nLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX25vdGljZS1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0taW5mbyxcbi5tZXNzYWdlLmluZm8sXG4ubWVzc2FnZS5ub3RpY2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZXNzYWdlc19pbmZvLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1pbmZvLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX2luZm8tYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLWVycm9yLFxuLm1lc3NhZ2UuZXJyb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZXNzYWdlc19lcnJvci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24tZXJyb3Iuc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfZXJyb3ItYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX3RleHQsXG4ubWVzc2FnZSBzcGFuIHtcbiAgICBjb2xvcjogJG1lc3NhZ2VzX3RleHQtY29sb3I7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG59XG5cbi4jeyRuc31tZXNzYWdlcyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmLS1zcGFjZS10b3Age1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogcHJldHRpZXItaWdub3JlICovXG4uY3MtbWluaWNhcnRfX2Nsb3NlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMS41cmVtO1xuICB3aWR0aDogNXJlbTtcbiAgaGVpZ2h0OiA1cmVtO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHJpZ2h0OiAwLjVyZW07IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZTpmb2N1cywgLmNzLW1pbmljYXJ0X19jbG9zZTphY3RpdmUsIC5jcy1taW5pY2FydF9fY2xvc2U6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG4uY3MtbWluaWNhcnRfX2Nsb3NlLWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMC4ycmVtO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ4NDg0ODtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjE1cyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpob3ZlcjpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpob3ZlcjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzY5Njk2OTsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICByaWdodDogMS41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDkwZGVnKSAhaW1wb3J0YW50OyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKC05MGRlZykgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoMCkgIWltcG9ydGFudDsgfVxuXG4uY3MtbWluaWNhcnRfX2Nsb3NlLXRleHQge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDsgfVxuXG4uY3MtbWluaWNhcnRfX3RpdGxlLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICMyMTIxMjE7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgZm9udC1zaXplOiAyLjFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9XG5cbi5jcy1taW5pY2FydF9faXRlbXMtdG90YWwge1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBjb2xvcjogIzY5Njk2OTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAuY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsOm5vdCguY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsLS1lbXB0eSk6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKCc7IH1cbiAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbDpub3QoLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkpOmFmdGVyIHtcbiAgICBjb250ZW50OiAnKSc7IH1cbiAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkgLmNvdW50IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5jcy1taW5pY2FydF9fZWRpdC1saW5rIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAuY3MtbWluaWNhcnRfX2VkaXQtbGluayAuY3MtbGlua19faWNvbiB7XG4gICAgcGFkZGluZzogMCAwIDAgMXJlbTsgfVxuXG4uY3MtbWluaWNhcnRfX2NvbnRlbnQge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1taW5pY2FydF9fY29udGVudCAubG9hZC5pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICBoZWlnaHQ6IHVuc2V0OyB9XG5cbi5jcy1taW5pY2FydF9fbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzNnJlbSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2xpc3QtLXNjcm9sbCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzOHJlbSk7IH1cbiAgICAgICAgLmlzLXRhYmxldCAuY3MtbWluaWNhcnRfX2xpc3QtLXNjcm9sbCB7XG4gICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQzcmVtKTsgfSB9XG5cbi5jcy1taW5pY2FydF9fbGlzdC1pdGVtIHtcbiAgcGFkZGluZzogMS41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMS41cmVtIDJyZW07IH1cbiAgLmNzLW1pbmljYXJ0X19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4uY3MtbWluaWNhcnRfX2FjdGlvbnMtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcbiAgYm94LXNoYWRvdzogMCAtNXB4IDVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yNyk7IH1cblxuLmNzLW1pbmljYXJ0X19hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAuY3MtbWluaWNhcnRfX2FjdGlvbnM6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cblxuLmNzLW1pbmljYXJ0X19lbXB0eSB7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jcy1taW5pY2FydF9fc3VidG90YWwge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxLjJyZW07IH1cblxuLmNzLW1pbmljYXJ0X19zdWJ0b3RhbC1wcmljZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDIuMXJlbSAhaW1wb3J0YW50OyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0IHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dCwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dFtkaXNhYmxlZF0sIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQtc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQge1xuICB3aWR0aDogMTAwJTsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0LCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0W2Rpc2FibGVkXSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydC1zcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuXG4uY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xuICBtYXJnaW46IDNyZW0gMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4uY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbCwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMi42cmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgY29sb3I6ICNjMTI3MmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbFtkaXNhYmxlZF0sIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsLXNwYW4ge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtaWNvbiB7XG4gIG1heC13aWR0aDogMWVtO1xuICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gIHotaW5kZXg6IDI7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG5cbi5jcy1taW5pY2FydF9fbWVzc2FnZXMge1xuICBwYWRkaW5nOiAwIDJyZW07IH1cblxuLmNzLW1pbmljYXJ0LW9mZmNhbnZhc19fd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogcHJldHRpZXItaWdub3JlICovXG4uY3MtbWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1yZWFkeSAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoNDByZW0gKyAycmVtKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoNDByZW0gKyAoMiAqIDJyZW0pKSk7XG4gICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tcmVhZHkge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgLmRyYXdlci0tdmlzaWJsZSAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5taW5pY2FydC1vZmZjYW52YXMtb3BlbiAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICByaWdodDogY2FsYyg0MHJlbSArICgyICogMnJlbSkpO1xuICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICg0MHJlbSArICg0ICogMnJlbSkpKTsgfSB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1oZWFkbGluZSB7XG4gICAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgICAgcGFkZGluZzogMnJlbSAwIDA7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDExcmVtO1xuICAgIGhlaWdodDogMTFyZW07XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAxMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLm1pbmljYXJ0LXdyYXBwZXIgLnVpLWRpYWxvZyB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmNzLW1pbmljYXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMzsgfVxuICAuY3MtbWluaWNhcnRfX3dyYXBwZXIge1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5jcy1taW5pY2FydCAudXBkYXRlLWNhcnQtaXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHggIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1taW5pY2FydCAudXBkYXRlLWNhcnQtaXRlbTpob3ZlciBzdmcge1xuICAgICAgZmlsdGVyOiBub25lOyB9XG4gICAgLmNzLW1pbmljYXJ0IC51cGRhdGUtY2FydC1pdGVtIHN2ZyB7XG4gICAgICBmaWx0ZXI6IGludmVydCgxKTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsOyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogLTEuNXJlbTtcbiAgICB3aWR0aDogNXJlbTtcbiAgICBoZWlnaHQ6IDVyZW07XG4gICAgdG9wOiA3MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICByaWdodDogMS41cmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZTpmb2N1cywgLmNzLW1pbmljYXJ0X19jbG9zZTphY3RpdmUsIC5jcy1taW5pY2FydF9fY2xvc2U6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDIuNXJlbTtcbiAgICAgIGhlaWdodDogMC4ycmVtO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCwgb3BhY2l0eSAwLjE1cyBlYXNlLW91dCwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gICAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoOTBkZWcpICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKC05MGRlZykgIWltcG9ydGFudDtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoMCkgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLXRleHQge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7IH1cbiAgLmNzLW1pbmljYXJ0X190aXRsZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogM3JlbSAxLjVyZW0gMS41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsOm5vdCguY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsLS1lbXB0eSk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiKFwiOyB9XG4gICAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbDpub3QoLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkpOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiKVwiOyB9XG4gICAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkgLmNvdW50IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0X19lZGl0LWxpbmsge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2VkaXQtbGluayAuY3MtbGlua19faWNvbiB7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAxcmVtOyB9XG4gIC5jcy1taW5pY2FydF9fY29udGVudCB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtbWluaWNhcnRfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbGV4LWdyb3c6IDE7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy1taW5pY2FydF9fY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjcwcHg7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY29udGVudCAubG9hZC5pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogdW5zZXQ7IH1cbiAgLmNzLW1pbmljYXJ0X19saXN0IHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2xpc3QtLXNjcm9sbCB7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzNnJlbSk7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtbWluaWNhcnRfX2xpc3QtLXNjcm9sbCB7XG4gICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDM4cmVtKTsgfVxuICAgICAgICAgIC5pcy10YWJsZXQgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQzcmVtKTsgfSB9XG4gIC5jcy1taW5pY2FydF9fbGlzdC1pdGVtIHtcbiAgICBwYWRkaW5nOiAzcmVtIDAgMy41cmVtIDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nOiAzcmVtIDAgMy41cmVtIDA7IH1cbiAgICAuY3MtbWluaWNhcnRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy1taW5pY2FydF9fbGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMXJlbTsgfSB9XG4gIC5jcy1taW5pY2FydF9fYWN0aW9ucy13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgICBtaW4taGVpZ2h0OiAyNnJlbTtcbiAgICBtYXgtaGVpZ2h0OiAyNnJlbTtcbiAgICBib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjI3KTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2FjdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMzsgfSB9XG4gIC5jcy1taW5pY2FydF9fYWN0aW9ucyB7XG4gICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgbWF4LXdpZHRoOiAyNDBweDsgfVxuICAgIC5jcy1taW5pY2FydF9fYWN0aW9uczpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAzcmVtOyB9XG4gIC5jcy1taW5pY2FydF9fZW1wdHkge1xuICAgIHBhZGRpbmc6IDNyZW0gNHJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5jcy1taW5pY2FydF9fc3VidG90YWwge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jcy1taW5pY2FydF9fc3VidG90YWwtbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0X19zdWJ0b3RhbC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTsgfVxuICAgIC5jcy1taW5pY2FydF9fc3VidG90YWwtcHJpY2UgLnByaWNlLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpIFwiOlwiO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW1pbmljYXJ0X19zdWJ0b3RhbC1wcmljZSAucHJpY2Utd3JhcHBlciAucHJpY2Uge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IDEuNnJlbSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW1pbmljYXJ0X19zdWJ0b3RhbC1wcmljZSAucHJpY2Utd3JhcHBlci5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zaXplOiAyLjRyZW0gIWltcG9ydGFudDtcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX3N1YnRvdGFsLXByaWNlIC5wcmljZS13cmFwcGVyLnByaWNlLWV4Y2x1ZGluZy10YXg6OmJlZm9yZSB7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW0gIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0W2Rpc2FibGVkXSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQtc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQtaWNvbiB7XG4gICAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQsIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnRbZGlzYWJsZWRdLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydC1zcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydC1pY29uIHtcbiAgICAgIG1heC13aWR0aDogMWVtO1xuICAgICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgbWFyZ2luOiAzcmVtIDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbCwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbFtkaXNhYmxlZF0sIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19tZXNzYWdlcyB7XG4gICAgcGFkZGluZzogMCAycmVtOyB9XG4gIC5jcy1taW5pY2FydC1vZmZjYW52YXNfX3dyYXBwZXIge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLyogcHJldHRpZXItaWdub3JlICovXG4uY3MtbWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tcmVhZHkgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1jb250YWluZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiBjYWxjKDUwcmVtICsgMnJlbSArIDJyZW0pO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtICg1MHJlbSArICgyICogMnJlbSkpKTtcbiAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW0gIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19uYXYge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tbG9hZGluZywgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1yZWFkeSB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgICAuZHJhd2VyLS12aXNpYmxlIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLm1pbmljYXJ0LW9mZmNhbnZhcy1vcGVuIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICAgICAgbWF4LWhlaWdodDogODB2aDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDUwcmVtICsgKDIgKiAycmVtKSk7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKDUwcmVtICsgKDQgKiAycmVtKSkpOyB9IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIgLmNzLWhlYWRsaW5lIHtcbiAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICBwYWRkaW5nOiAycmVtIDAgMDsgfVxuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1oZWFkbGluZTo6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIgLmNzLWhlYWRsaW5lOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXNwaW5uZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMTFyZW07XG4gICAgaGVpZ2h0OiAxMXJlbTtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tbG9hZGluZyAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXNwaW5uZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHotaW5kZXg6IDEwOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4ubWluaWNhcnQtd3JhcHBlciAudWktZGlhbG9nIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAubWluaWNhcnQtd3JhcHBlciAudWktZGlhbG9nIC5kcmF3ZXItLXZpc2libGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcblxuJG1pbmljYXJ0LW9mZmNhbnZhczogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbDogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgcHJvZHVjdHNfY2Fyb3VzZWwsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X29mZmNhbnZhcy13cmFwcGVyOiAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1wYWRkaW5nOiAxLjVyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtdGl0bGUtcGFkZGluZzogMXJlbSAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1pdGVtLXBhZGRpbmc6IDEuNXJlbSAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcjogZmFsc2UgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLW9mZnNldC1pcGhvbmUtZml4OiA0MHJlbSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X19jbG9zZS1pbmNsdWRlLXBzZXVkb2ljb246IHRydWUgIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLXBzZXVkb2ljb24tdHlwZTogJ3BsdXMnICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS13aWR0aDogMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtbGluZS13aWR0aDogMC4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1jb2xvcjogJGNvbG9yX3RleHQtNjAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZzogMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb246ICdjZW50ZXInICFkZWZhdWx0OyAvLyBEZWZhdWx0IHZhbHVlOiBjZW50ZXIuIFBvc3NpYmxlIHZhbHVlczogY2VudGVyIC8gdG9wIC8gYm90dG9tXG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uLW9mZnNldDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb246ICdjZW50ZXInICFkZWZhdWx0OyAvLyBEZWZhdWx0IHZhbHVlOiBjZW50ZXIuIFBvc3NpYmxlIHZhbHVlczogY2VudGVyIC8gbGVmdCAvIHJpZ2h0XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXNwYWNpbmc6IDNyZW0gIWRlZmF1bHQ7XG4vKiBwcmV0dGllci1pZ25vcmUgKi9cbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgZWFzZS1pbiAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3Bpbm5lci1zaXplOiAxMXJlbSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X3BhZGRpbmc6IDJyZW0gMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2Nsb3NlLWJ1dHRvbi1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfaXRlbS1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9pdGVtLWhlYWRsaW5lLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfaXRlbS1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYm94LXNoYWRvdzogMCAwIDIxcHggMCByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4yNykgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF93aWR0aDogNDByZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHhcbiAgICByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4yNykgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31taW5pY2FydCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgICAgd2lkdGg6IDVyZW07XG4gICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtaWNvbiB7XG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X19jbG9zZS1pbmNsdWRlLXBzZXVkb2ljb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9fY2xvc2UtcHNldWRvaWNvbi10eXBlLFxuICAgICAgICAgICAgICAgICRjb2xvcjogJG1pbmljYXJ0X19jbG9zZS1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRtaW5pY2FydF9fY2xvc2UtY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJHdpZHRoOiAkbWluaWNhcnRfX2Nsb3NlLXdpZHRoLFxuICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRtaW5pY2FydF9fY2xvc2UtbGluZS13aWR0aFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLXRleHQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAmX190aXRsZS13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydF9pdGVtLWhlYWRsaW5lLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtdGl0bGUtcGFkZGluZztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4xcmVtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRtaW5pY2FydF9pdGVtLWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW1zLXRvdGFsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAmOm5vdCgjeyRyb290fV9faXRlbXMtdG90YWwtLWVtcHR5KSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAuY291bnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtNTAwO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2VkaXQtbGluayB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgLiN7JG5zfWxpbmtfX2ljb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1pbmljYXJ0X2NvbnRlbnQtYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5sb2FkLmluZGljYXRvcjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICYtLXNjcm9sbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzNnJlbSk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDM4cmVtKTtcblxuICAgICAgICAgICAgICAgIC5pcy10YWJsZXQgJiB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0M3JlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvciB7XG4gICAgICAgICAgICAgICAgLyogaVBob25lIFggYW5kIFhzIE1heCAqL1xuICAgICAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlblxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS13aWR0aDogMzc1cHgpXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogODEycHgpXG4gICAgICAgICAgICAgICAgYW5kICgtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogMylcbiAgICAgICAgICAgICAgICBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbWluaWNhcnRfb2ZmY2FudmFzLW9mZnNldC1pcGhvbmUtZml4fSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBpUGhvbmUgWFIgKi9cbiAgICAgICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW5cbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDQxNHB4KVxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDg5NnB4KVxuICAgICAgICAgICAgICAgIGFuZCAoLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpXG4gICAgICAgICAgICAgICAgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeH0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X2l0ZW0tcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1pbmljYXJ0X2l0ZW0tYm9yZGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1pdGVtLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtcGFkZGluZztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3N1YnRvdGFsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xuICAgIH1cblxuICAgICZfX3N1YnRvdGFsLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1jaGVja291dCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXZpZXdjYXJ0IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tY2Fyb3VzZWwge1xuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXNwYWNpbmc7XG4gICAgICAgICAgICBtYXJnaW46ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXNwYWNpbmcgMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLWJvcmRlcjtcblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uID09ICdsZWZ0JyB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbiA9PSAncmlnaHQnIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICB9XG5cbiAgICAmLW9mZmNhbnZhc19fd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtd3JhcHBlcjtcbiAgICB9XG59XG5cbkBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIGFuZCAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsIHtcbiAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAuI3skbnN9bWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgICAgICAgJHJvb3Q6ICY7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgJi1jb250YWluZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgI3skcm9vdH0td3JhcHBlci0tcmVhZHkgJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKCN7JG1pbmljYXJ0X3dpZHRofSArICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICgjeyRtaW5pY2FydF93aWR0aH0gKyAoMiAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcmVtO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAmLS1sb2FkaW5nLFxuICAgICAgICAgICAgJi0tcmVhZHkge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBhdC1yb290IC5kcmF3ZXItLXZpc2libGUgJiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWluaWNhcnQtb2ZmY2FudmFzLW9wZW4gJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKCN7JG1pbmljYXJ0X3dpZHRofSArICgyICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoI3skbWluaWNhcnRfd2lkdGh9ICsgKDQgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uID09ICd0b3AnIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24gPT0gJ2JvdHRvbScge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAwIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwaW5uZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3Bpbm5lci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjtcblxuICAgICAgICAgICAgI3skcm9vdH0td3JhcHBlci0tbG9hZGluZyAmIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC4jeyRuc31taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgICAgICAmLXNwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICRtaW5pY2FydC1vZmZjYW52YXMgIT0gdHJ1ZSB7XG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xuICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5OTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcCA+ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgMTAwJSAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcH0gLSAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkbWluaWNhcnRfYm94LXNoYWRvdztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAzMXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnRfd2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgdG9wOiAtMC44cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDQuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5cbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvbWluaWNhcnQvbWluaWNhcnQuc2Nzc1wiO1xuXG4kbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc6IDNyZW0gNHJlbSAxLjVyZW0gNHJlbTtcblxuJG1pbmljYXJ0X19jbG9zZS13aWR0aDogMi41cmVtO1xuXG4kbWluaWNhcnRfcGFkZGluZzogM3JlbSA0cmVtO1xuXG4kbWluaWNhcnRfaXRlbS1ib3JkZXI6ICRrbWFfYm9yZGVyX2Jhc2U7XG4kbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRtaW5pY2FydF9pdGVtLXBhZGRpbmc6IDNyZW0gMCAzLjVyZW0gMDtcbiRtaW5pY2FydF93aWR0aDogNTByZW07XG5cbi4jeyRuc31taW5pY2FydCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDEzO1xuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLnVwZGF0ZS1jYXJ0LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgICAgd2lkdGg6IDVyZW07XG4gICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgdG9wOiA3MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtaWNvbiB7XG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X19jbG9zZS1pbmNsdWRlLXBzZXVkb2ljb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9fY2xvc2UtcHNldWRvaWNvbi10eXBlLFxuICAgICAgICAgICAgICAgICRjb2xvcjogJG1pbmljYXJ0X19jbG9zZS1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRtaW5pY2FydF9fY2xvc2UtY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJHdpZHRoOiAkbWluaWNhcnRfX2Nsb3NlLXdpZHRoLFxuICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRtaW5pY2FydF9fY2xvc2UtbGluZS13aWR0aFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLXRleHQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAmX190aXRsZS13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAzcmVtIDEuNXJlbSAxLjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW1zLXRvdGFsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAmOm5vdCgjeyRyb290fV9faXRlbXMtdG90YWwtLWVtcHR5KSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIoXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiKVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgLmNvdW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTUwMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lZGl0LWxpbmsge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIC4jeyRuc31saW5rX19pY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyNzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5sb2FkLmluZGljYXRvcjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmLS1zY3JvbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzZyZW0pO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDM4cmVtKTtcblxuICAgICAgICAgICAgICAgIC5pcy10YWJsZXQgJiB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0M3JlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvciB7XG4gICAgICAgICAgICAgICAgLyogaVBob25lIFggYW5kIFhzIE1heCAqL1xuICAgICAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlblxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS13aWR0aDogMzc1cHgpXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogODEycHgpXG4gICAgICAgICAgICAgICAgYW5kICgtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogMylcbiAgICAgICAgICAgICAgICBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbWluaWNhcnRfb2ZmY2FudmFzLW9mZnNldC1pcGhvbmUtZml4fSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBpUGhvbmUgWFIgKi9cbiAgICAgICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW5cbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDQxNHB4KVxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDg5NnB4KVxuICAgICAgICAgICAgICAgIGFuZCAoLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpXG4gICAgICAgICAgICAgICAgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeH0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X2l0ZW0tcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1pbmljYXJ0X2l0ZW0tYm9yZGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9pdGVtLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2JhY2tncm91bmQtMTAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAyNnJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogMjZyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDI0MHB4O1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICZfX3N1YnRvdGFsLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbC1wcmljZSB7XG4gICAgICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCkgXCI6XCI7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGggIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tY2hlY2tvdXQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zKTtcblxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKCR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvcyk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi12aWV3Y2FydCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLCAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3MpO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLCAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3MpO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNhcm91c2VsIHtcbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nIDA7XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbiA9PSBcInJpZ2h0XCIge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zKTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKCR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvcyk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgIH1cblxuICAgICYtb2ZmY2FudmFzX193cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy13cmFwcGVyO1xuICAgIH1cbn1cblxuQGlmICRtaW5pY2FydC1vZmZjYW52YXMgYW5kICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWwge1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgIC4jeyRuc31taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgICAgICAkcm9vdDogJjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAmLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLXJlYWR5ICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogY2FsYygjeyRtaW5pY2FydF93aWR0aH0gKyAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30gKyAycmVtKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCN7JG1pbmljYXJ0X3dpZHRofSArICgyICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSkpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwdmg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19uYXYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tbG9hZGluZyxcbiAgICAgICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAYXQtcm9vdCAuZHJhd2VyLS12aXNpYmxlICYge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1pbmljYXJ0LW9mZmNhbnZhcy1vcGVuICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKCN7JG1pbmljYXJ0X3dpZHRofSArICgyICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoI3skbWluaWNhcnRfd2lkdGh9ICsgKDQgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uID09ICd0b3AnIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24gPT0gJ2JvdHRvbScge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAwIDA7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwaW5uZXIge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3Bpbm5lci1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtdHJhbnNpdGlvbjtcblxuICAgICAgICAgICAgI3skcm9vdH0td3JhcHBlci0tbG9hZGluZyAmIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC4jeyRuc31taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgICAgICAmLXNwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICRtaW5pY2FydC1vZmZjYW52YXMgIT0gdHJ1ZSB7XG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xuICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5OTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wID4gJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYygxMDAlIC0gKCgjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wfSAtICN7JGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldH0pIC8gMikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1taW5pY2FydCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtaW5pY2FydF9ib3gtc2hhZG93O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDMxcmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0X3dpZHRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgdG9wOiAtMC44cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogNC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLmRyYXdlci0tdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLW1pbmljYXJ0LXByb2R1Y3Qge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2Uge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX292ZXJ2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19kZXRhaWxzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYnJhbmQtd3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYnJhbmQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA3MCU7IH0gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6dmlzaXRlZCwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2l0ZW0tcHJpY2luZyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UtbGFiZWwsIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXN1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzQ4NDg0ODtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAuNjYsIDAuMzIsIDAuOTkpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLXRvcDogLTAuNHJlbTtcbiAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtZ3JvdXAge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1ncm91cC0tcXR5IHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtd3JhcHBlciArIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWdyb3VwLS1xdHkge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWxhYmVsOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXZhbHVlX192YWx1ZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXZhbHVlX192YWx1ZSAucHJpY2Uge1xuICAgICAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMS4ycmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24td3JhcHBlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eSxcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3QgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIDlyZW07XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0IHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHdpZHRoOiA0cmVtO1xuICAgIG1heC13aWR0aDogNHJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQubWFnZS1lcnJvciwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjAwMTg7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0LnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24ge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24sIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b25bZGlzYWJsZWRdLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24tc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuMWVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb246aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICosXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb246aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqLFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiB7XG4gICAgZmlsbDogIzE0MmI5ZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24ge1xuICAgIHdpZHRoOiAxLjZyZW07XG4gICAgaGVpZ2h0OiAxLjZyZW07XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzMyNGRjZjsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWxhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqIHtcbiAgICBmaWxsOiAjMjEyMTIxOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqIHtcbiAgICBmaWxsOiAjMjEyMTIxOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLW1pbmljYXJ0LXByb2R1Y3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZ2FwOiAwIDNyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2ltYWdlLWNvbnRhaW5lciBpbWcge1xuICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZSB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3ZlcnZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiAzcHg7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2RldGFpbHMge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWUtd3JhcHBlciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDcwJTsgfSB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAtNXB4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXdyYXBwZXIge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZTp2aXNpdGVkLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fc2t1LXdyYXBwZXIge1xuICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2Uge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheDo6YmVmb3JlLFxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpIFwiOlwiO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDEuMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtO1xuICAgIG1hcmdpbi10b3A6IDEuNHJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdCAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDAgOXJlbTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LFxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3QgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDFyZW07IH0gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICB3aWR0aDogOHJlbTtcbiAgICBtYXgtd2lkdGg6IDhyZW07XG4gICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0Lm1hZ2UtZXJyb3IsIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dC5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24sIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b25bZGlzYWJsZWRdLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA0LjhyZW07XG4gICAgaGVpZ2h0OiA0LjhyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZC1pY29uICoge1xuICAgICAgZmlsbDogI2ZmZmZmZjsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbi1zcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4xZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbjpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKixcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbjpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICosXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqIHtcbiAgICBmaWxsOiAjYTIwMTA5OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiB7XG4gICAgd2lkdGg6IDIuNHJlbTtcbiAgICBoZWlnaHQ6IDIuNHJlbTtcbiAgICB3aWR0aDogMi40cmVtO1xuICAgIGhlaWdodDogMi40cmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzMzMzMzMzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWxhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqIHtcbiAgICBmaWxsOiAjODc4Nzg3OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqIHtcbiAgICBmaWxsOiAjMzMzMzMzOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X29mZmNhbnZhcyxcbiAgICBlbmFibGVkXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItLWhvdmVyOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3IgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWFsaWdubWVudDogbGVmdCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLXBhZGRpbmc6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNjAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtbGFiZWwtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtdmFsdWUtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGU6IGZhbHNlICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtdGl0bGUtZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Rfb3B0aW9ucy1sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTogMnJlbSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWVuYWJsZTogdHJ1ZSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1oZWlnaHQ6IDNyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvczogJ29ubHktaWNvbicgIWRlZmF1bHQ7XG5cbi4jeyRuc31taW5pY2FydC1wcm9kdWN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAmX19pbWFnZS1jb250YWluZXIge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICZfX292ZXJ2aWV3IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICAmX19kZXRhaWxzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fYnJhbmQtd3JhcHBlciB7XG4gICAgICAgIHRleHQtYWxpZ246ICRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWFsaWdubWVudDtcbiAgICB9XG5cbiAgICAmX19icmFuZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgZmxleC1iYXNpczogNTUlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1wYWRkaW5nO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNzAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbmFtZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWZvbnQtd2VpZ2h0O1xuXG4gICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0tcHJpY2luZyB7XG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlLWxhYmVsLFxuICAgICZfX29wdGlvbnMtc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZVxuICAgICAgICAgICAgJHRyYW5zaXRpb24tZWFzaW5nX3Nsb3dkb3duLTkwMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTAuNHJlbTtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICYtLXF0eSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXdyYXBwZXIgKyAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtdmFsdWUtY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICB9XG5cbiAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGUpIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMSAwIDlyZW07XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWlucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLFxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyxcbiAgICAgICAgICAgICN7JHJvb3R9X19hY3Rpb24taWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNnJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjZyZW07XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uLFxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL21pbmljYXJ0LXByb2R1Y3QvbWluaWNhcnQtcHJvZHVjdC5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG4kbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyOiAka21hX2NvbG9yX3ByaW1hcnktNTAwO1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU6ICRrbWFfaWNvbl9zaXplLTUwMDtcblxuJG1pbmljYXJ0LXByb2R1Y3Rfcm93LWxpbmUtaGVpZ2h0OiAyNHB4O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3ItaG92ZXI6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLXBhZGRpbmc6IDA7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWZvbnQtd2VpZ2h0OiA3MDA7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3F0eS13aWR0aDogOHJlbTtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1oZWlnaHQ6IDQuOHJlbTtcblxuLiN7JG5zfW1pbmljYXJ0LXByb2R1Y3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaW5lLWhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3Rfcm93LWxpbmUtaGVpZ2h0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZ2FwOiAwIDNyZW07XG5cbiAgICAmX19pbWFnZS1jb250YWluZXIge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgICZfX292ZXJ2aWV3IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgZ2FwOiAzcHg7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtcGFkZGluZztcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lTGdcIikge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNzAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAtNXB4O1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWZvbnQtd2VpZ2h0O1xuXG4gICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvci1ob3ZlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2t1LXdyYXBwZXIge1xuICAgICAgICBsaW5lLWhlaWdodDogMi40cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIuNHJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpIFwiOlwiO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogM3JlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMS40cmVtO1xuICAgIH1cblxuICAgIEBpZiAoJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWVuYWJsZSkge1xuICAgICAgICAmX19xdHksXG4gICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxIDAgOXJlbTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktaW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS13aWR0aDtcbiAgICAgICAgICAgIG1heC13aWR0aDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LXdpZHRoO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSwgJGljb25fcG9zOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLWljb24tcG9zKTtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNC44cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24tc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24taWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAmX19xdHksXG4gICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24sXG4gICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgI3skcm9vdH1fX29wdGlvbnMtdGl0bGUtc3ZnLFxuICAgICAgICAgICAgI3skcm9vdH1fX2FjdGlvbi1pY29uIHtcbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGttYV9jb2xvcl9zZWNvbmRhcnktODAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbixcbiAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICoge1xuICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24tbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fY29udGVudCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbSAycmVtO1xuICBjb2xvcjogIzY5Njk2OTtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmNzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX19jZWxsIHtcbiAgcGFkZGluZy10b3A6IDEuNHJlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuNHJlbTtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fdG90YWwtbGVmdC10ZXh0IHNwYW4ge1xuICBmb250LXdlaWdodDogNzAwOyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fdG90YWwtZnVsZmlsbGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAyLjhyZW07XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXN1Y2Nlc3Muc3ZnXCIpIDAgNTAlIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAycmVtOyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fYmFyLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fYmFyLWxhYmVsIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGNvbG9yOiAjMzdiODQxO1xuICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fYmFyLWxhYmVsLS1zdGFydCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fYmFyLWxhYmVsLS1lbmQge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG5cbi5jcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvcl9fYmFyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMnJlbTtcbiAgcGFkZGluZzogMC40cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjBiMGIwO1xuICBib3JkZXItcmFkaXVzOiAzMy42cHg7IH1cblxuLmNzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX19iYXItcHJvZ3Jlc3Mtd3JhcHBlciB7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7IH1cblxuLmNzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX19iYXItcHJvZ3Jlc3Mge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAwO1xuICBiYWNrZ3JvdW5kOiAjMzdiODQxO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjU1cyBjdWJpYy1iZXppZXIoMCwgMC42NiwgMC4zMiwgMC45OSk7IH1cblxuLmNzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX19pY29uIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAzLjRyZW07XG4gIGhlaWdodDogMnJlbTtcbiAgbWFyZ2luOiAwIDAgMCAyLjVyZW07XG4gIGZpbGw6ICM4ODg7XG4gIHRyYW5zaXRpb246IGZpbGwgMC4zczsgfVxuICAuY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2Jhci13cmFwcGVyLS1mcmVlLXNoaXBwaW5nLWFjdGl2ZSAuY3MtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfX2ljb24ge1xuICAgIGZpbGw6ICMzN2I4NDE7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfcGFkZGluZzogMS41cmVtIDJyZW0gMnJlbSAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9zZXBhcmF0b3I6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX3ByaWNlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9mdWxmaWxsZWQtaWNvbi11cmw6ICcuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1zdWNjZXNzLnN2ZycgIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfZnVsZmlsbGVkLWljb24tc2l6ZTogMnJlbSAhZGVmYXVsdDsgLy8gYmFja2dyb3VuZC1zaXplIGZvcm1hdCAoMnJlbSAxcmVtIG9yIDJyZW0gPT09IDJyZW0gMnJlbSlcblxuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1sYWJlbC1jb2xvcjogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1sYWJlbC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1sYWJlbC1zcGFjaW5nOiAxcmVtICFkZWZhdWx0O1xuXG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcGFkZGluZzogMC40cmVtICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3Jfc2lsdmVyLWNoYWxpY2UgIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgKiAxLjQgIWRlZmF1bHQ7XG5cbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcHJvZ3Jlc3Mtd3JhcHBlci1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcHJvZ3Jlc3MtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1wcm9ncmVzcy1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1wcm9ncmVzcy10cmFuc2l0aW9uOiB3aWR0aCAwLjU1c1xuICAgICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDAgIWRlZmF1bHQ7XG5cbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9pY29uLXdpZHRoOiAzLjRyZW0gIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi1tYXJnaW46IDAgMCAwIDIuNXJlbSAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9pY29uLWNvbG9yOiAkY29sb3JfZ3JheSAhZGVmYXVsdDtcbiRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9pY29uLWNvbG9yLS1mcmVlLXNoaXBwaW5nLWFwcGxpZWQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yIHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBib3JkZXItdG9wOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3Jfc2VwYXJhdG9yO1xuICAgICAgICBwYWRkaW5nOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfcGFkZGluZztcbiAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTUwMDtcbiAgICAgICAgZm9udC1zaXplOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfZm9udC1zaXplO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cblxuICAgICZfX2NlbGwge1xuICAgICAgICBwYWRkaW5nLXRvcDogMS40cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS40cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fdG90YWwtbGVmdC10ZXh0IHtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX3ByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG90YWwtZnVsZmlsbGVkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjhyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfZnVsZmlsbGVkLWljb24tdXJsKSAwIDUwJVxuICAgICAgICAgICAgbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9mdWxmaWxsZWQtaWNvbi1zaXplO1xuICAgIH1cblxuICAgICZfX2Jhci13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19iYXItbGFiZWwge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgY29sb3I6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWxhYmVsLWZvbnQtd2VpZ2h0O1xuXG4gICAgICAgICYtLXN0YXJ0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1sYWJlbC1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW5kIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWxhYmVsLXNwYWNpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1wYWRkaW5nO1xuICAgICAgICBib3JkZXI6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgJl9fYmFyLXByb2dyZXNzLXdyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcHJvZ3Jlc3Mtd3JhcHBlci1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLXByb2dyZXNzLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgJl9fYmFyLXByb2dyZXNzIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2Jhci1wcm9ncmVzcy1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfYmFyLXByb2dyZXNzLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9iYXItcHJvZ3Jlc3MtdHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbjogJGZyZWUtc2hpcHBpbmctaW5kaWNhdG9yX2ljb24tbWFyZ2luO1xuICAgICAgICBmaWxsOiAkZnJlZS1zaGlwcGluZy1pbmRpY2F0b3JfaWNvbi1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG5cbiAgICAgICAgI3skcm9vdH1fX2Jhci13cmFwcGVyLS1mcmVlLXNoaXBwaW5nLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgIGZpbGw6ICRmcmVlLXNoaXBwaW5nLWluZGljYXRvcl9pY29uLWNvbG9yLS1mcmVlLXNoaXBwaW5nLWFwcGxpZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5tb2RhbC1zbGlkZS5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwLFxuLm1vZGFsLXBvcHVwLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtY3VzdG9tLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAge1xuICBtYXgtd2lkdGg6IDUwcmVtOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1wb3B1cCAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWlubmVyLXdyYXAge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDMzLCAzMywgMzMsIDAuMjgpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1oZWFkZXIsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlcixcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZSxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlLFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMS41cmVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtOyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSBzcGFuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmJlZm9yZSxcbiAgLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YmVmb3JlLFxuICAubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnkge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZFtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZFtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZFtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkLFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGRbZGlzYWJsZWRdLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC10aXRsZSxcbi5tb2RhbC1wb3B1cCAubW9kYWwtdGl0bGUsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICBtYXJnaW46IDA7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwW2NsYXNzXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfSB9XG5cbi5wYWdlLWxheW91dC1jaGVja291dCAubW9kYWwtcG9wdXAge1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1sYXlvdXQtY2hlY2tvdXQgLm1vZGFsLXNsaWRlIHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1heC13aWR0aDogNjVyZW07XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfSB9XG5cbi5tb2RhbHMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG1vZGFsX3RpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJG1vZGFsX2luc2lkZS1ib3JkZXJzOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbW9kYWxfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1vZGFsX3NsaWRlLW1vYmlsZS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbW9kYWxfYm94LXNoYWRvdzogJGJveC1zaGFkb3dfYmFzZSAhZGVmYXVsdDtcbiRtb2RhbF9ib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0O1xuJG1vZGFsLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtb2RhbF90ZXh0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGggIWRlZmF1bHQ7XG4kbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXG4ubW9kYWwtc2xpZGUsXG4ubW9kYWwtcG9wdXAsXG4ubW9kYWwtY3VzdG9tIHtcbiAgICAmLmNvbmZpcm0ge1xuICAgICAgICAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbW9kYWxfYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogJG1vZGFsX2JveC1zaGFkb3c7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtb2RhbF9ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXI6ICRtb2RhbC1ib3JkZXI7XG4gICAgfVxuXG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJG1vZGFsX3RleHQtZm9udC1zaXplO1xuICAgIH1cblxuICAgIC5tb2RhbC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmFjdGlvbi1jbG9zZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBtYXJnaW46IDEuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG4gICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLXRvcDogJG1vZGFsX2luc2lkZS1ib3JkZXJzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgICAucHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU3R5bGUgZm9yIGNoZWNrb3V0IG1vZGFscyBoYXZlIHZlcnkgaGlnaCBzcGVjaWZpY2l0eSBpbiBtYWdlbnRvXG4gICAgICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b246b25seS1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkbW9kYWxfdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1vZGFsX2luc2lkZS1ib3JkZXJzO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUge1xuICAgIC5tb2RhbC1pbm5lci13cmFwW2NsYXNzXSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsX3NsaWRlLW1vYmlsZS1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubW9kYWwtc2xpZGUge1xuICAgIC5tb2RhbC1mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXByaW1hcnksXG4gICAgICAgIC5wcmltYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IHtcbiAgICAubW9kYWwtcG9wdXAge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG5cbiAgICAubW9kYWwtc2xpZGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2NXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFscy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWxzX292ZXJsYXktYmFja2dyb3VuZDtcbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fY29udGVudC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmc6IDZyZW0gM3JlbTsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19oZWFkbGluZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMjEyMTIxOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19oZWFkbGluZSB7XG4gICAgICBmb250LXNpemU6IDQuM3JlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19zdWJoZWFkbGluZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIGZvbnQtc2l6ZTogMS42NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMjEyMTIxOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19zdWJoZWFkbGluZSB7XG4gICAgICBmb250LXNpemU6IDIuOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1OyB9IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX190ZXh0IHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMyMTIxMjE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX3RleHQge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2N0YSB7XG4gIG1hcmdpbi10b3A6IDJyZW07IH1cblxuLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbiwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMi42cmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5hdmlnYXRpb24tdGVhc2VyX19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAuY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbltkaXNhYmxlZF0sIC5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG5cbi5jcy1uYXZpZ2F0aW9uLXRlYXNlcl9fYnV0dG9uLXNwYW4ge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4uY3MtbmF2aWdhdGlvbi10ZWFzZXJfX2J1dHRvbi1pY29uIHtcbiAgbWF4LXdpZHRoOiAxZW07XG4gIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgei1pbmRleDogMjtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiR0ZWFzZXJfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJHRlYXNlcl9idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuLiN7JG5zfW5hdmlnYXRpb24tdGVhc2VyIHtcbiAgICAmX19maWd1cmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiA2cmVtIDNyZW07XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9taW5lc2hhZnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfbWluZXNoYWZ0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNC4zcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJoZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS42NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfbWluZXNoYWZ0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9taW5lc2hhZnQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jdGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkdGVhc2VyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkdGVhc2VyX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJHRlYXNlcl9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRlYXNlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICR0ZWFzZXJfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICR0ZWFzZXJfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBVc2luZyBwc3VlZG8gZWxlbWVudHMgdG8gbWFpbnRhaW4gYW4gZWxlbWVudHMgYXNwZWN0IHJhdGlvLCBldmVuIGFzIGl0IHNjYWxlc1xuICogSXQncyB1c2luZyBvbmx5IGZvciBJRTExIGFuZCBFZGdlICh2ZXJzaW9uIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQpIGJyb3dzZXJzXG4gKiBGb3IgYnJvd3NlcnMgd2hpY2ggc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQsIHdlIGFyZSB1c2luZyBtaXhpbnMgY29udGFpbiBgcmVzZXRgIGluIG1peGluIG5hbWVcbiAqIHRvIG92ZXJyaWRlIGRlZmF1bHQgbWl4aW5zIChwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudClcbiAqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG4gKiBAcGFyYW0ge251bWJlcn0gJHdpZHRoOiB3aWR0aCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7bnVtYmVyfSAkaGVpZ2h0OiBoZWlnaHQgb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge3N0cmluZ30gJGNvbnRlbnRDbGFzczogY2xhc3Mgb2YgdGhlIGRpcmVjdCBjaGlsZCBlbGVtZW50IHRvIGJlIHBvc2l0aW9uZWQgYWJzb2x1dGVseTtcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gJGF1dG9wb3NpdGlvbjogdGVsbHMgaWYgaXRlbSBzaGFsbCB0YWtlIDEwMCUgb2YgcGFyZW50IHNpemUgb3IgaWYgaXQgY2FuIGJlIHdpZGVyL2hpZ2hlciBpZiBuZWVkZWQ7XG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLW5hdmlnYXRpb24ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXNpemU6IDFyZW07IH1cbiAgLmNzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGlzdC0tbWFpbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGlzdC0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBjb2x1bW5zOiBhdXRvIDE7XG4gICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgZmxleDogMSAwIGF1dG87IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGNvbHVtbnM6IGF1dG8gMTtcbiAgICAgIGNvbHVtbi1nYXA6IDA7XG4gICAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8yIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saXN0LS1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmNzLW5hdmlnYXRpb25fX2xpc3QtLWhpZGRlbiArIC5jcy1uYXZpZ2F0aW9uX19leHRyYXMge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpc3QgLmNzLW5hdmlnYXRpb25fX2l0ZW0tLW5vLWNoaWxkcmVuOm50aC1jaGlsZCgyKSB7XG4gICAgICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saXN0IC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1uby1jaGlsZHJlbjpsYXN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cbiAgLmNzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2l0ZW0tLWFjdGl2ZTpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkgPiAuY3MtbmF2aWdhdGlvbl9fbGluaywgLmNzLW5hdmlnYXRpb25fX2l0ZW0uYWN0aXZlOm5vdChbZGF0YS1jYXRlZ29yeS1pZGVudGlmaWVyPSdhbGwtY2F0ZWdvcmllcyddKSA+IC5jcy1uYXZpZ2F0aW9uX19saW5rLCAuY3MtbmF2aWdhdGlvbl9faXRlbTpob3Zlcjpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkgPiAuY3MtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgICBjb2xvcjogIzMyNGRjZjsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWluIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgZm9udC1zaXplOiAxLjRlbTsgfVxuICAgICAgLmNzLW5hdmlnYXRpb25fX2l0ZW0tLW1haW46Zmlyc3Qtb2YtdHlwZSA+IC5jcy1uYXZpZ2F0aW9uX19saW5rOm5vdCguY3MtbmF2aWdhdGlvbl9fbGluay0td2l0aC1pY29uKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgICAgLmNzLW5hdmlnYXRpb25fX2l0ZW0tLW1haW46bGFzdC1vZi10eXBlID4gLmNzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2l0ZW0tLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAvKiBUaGVvcmV0aWNhbGx5IEZGIDIwKyAqL1xuICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAvKiBJRSAxMSAqL1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9faXRlbS0tbGV2ZWxfMSB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgLyogVGhlb3JldGljYWxseSBGRiAyMCsgKi9cbiAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgICAgLyogSUUgMTEgKi9cbiAgICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2l0ZW0tLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IDAuOWVtIDEuMDVlbTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLCAuY3MtbmF2aWdhdGlvbl9fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjNDg0ODQ4OyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICMzMjRkY2Y7IH1cbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rOmhvdmVyIC5jcy1uYXZpZ2F0aW9uX19saW5rLWljb24tLXN2ZyBwYXRoIHtcbiAgICAgICAgZmlsbDogIzMyNGRjZjsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS1tYWluIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGluay0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNmVtOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbmstLWxldmVsXzEge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNmVtOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbmstLWxldmVsXzIge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuMjVlbTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLS13aXRoLWljb24ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAzcmVtOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbmstaWNvbi13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDAuOGVtOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2xpbmstaWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICB3aWR0aDogMnJlbTsgfVxuICAgICAgLmNzLW5hdmlnYXRpb25fX2xpbmstLWNhdGVnb3J5IC5jcy1uYXZpZ2F0aW9uX19saW5rLWljb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMC41cmVtOyB9XG4gICAgICAuY3MtbmF2aWdhdGlvbl9fbGluay1pY29uLS1zdmcgcGF0aCB7XG4gICAgICAgIGZpbGw6ICM0ODQ4NDg7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fbGluay1wcm9kdWN0cy1xdHk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcoJzsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19saW5rLXByb2R1Y3RzLXF0eTphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgLmNzLW5hdmlnYXRpb24gLmNzLW5hdmlnYXRpb25fX2l0ZW0tLW5vLWNoaWxkcmVuIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1uYXZpZ2F0aW9uIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1uby1jaGlsZHJlbiA+IC5jcy1uYXZpZ2F0aW9uX19saW5rLS1sZXZlbF8xIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuMTJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHBhZGRpbmc6IDAuOWVtIDEuNWVtO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogIzQ4NDg0ODsgfVxuICAuY3MtbmF2aWdhdGlvbl9fZmx5b3V0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHotaW5kZXg6IDEwMDE7XG4gICAgYm94LXNoYWRvdzogMnB4IDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2ZseW91dC0tdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX2ZseW91dCBzdmcge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgIC5jcy1uYXZpZ2F0aW9uX19mbHlvdXQgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBsaXN0LXN0eWxlLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FRQUFBQzFIQXdDQUFBQUMwbEVRVlI0Mm1Oa1lBQUFBQVlBQWpDQjBDOEFBQUFBU1VWT1JLNUNZSUk9KTtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9IH1cbiAgLmNzLW5hdmlnYXRpb25fX2V4dHJhcyB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1uYXZpZ2F0aW9uX190ZWFzZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX3RlYXNlci0taGlkZGVuIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gIC5jcy1uYXZpZ2F0aW9uX19wcm9kdWN0cyB7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgIG1pbi13aWR0aDogMjRyZW07IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fcHJvZHVjdHMtaGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICBwYWRkaW5nOiAxLjFlbSAxLjA1ZW0gMS41NWVtO1xuICAgICAgZm9udC1zaXplOiAwLjllbTsgfVxuICAgIC5jcy1uYXZpZ2F0aW9uX19wcm9kdWN0cy1saXN0IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1uYXZpZ2F0aW9uX19wcm9kdWN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fcHJvZHVjdDpiZWZvcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy10b3A6IDE3MCU7IH1cbiAgICAuY3MtbmF2aWdhdGlvbl9fcHJvZHVjdCAuY3MtcHJvZHVjdC10aWxlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDsgfVxuICAuY3MtbmF2aWdhdGlvbl9fb3ZlcmxheSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzcmVtLCAwKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAsIDAuOTcsIDAuMDUsIDAuOTkpOyB9XG4gICAgLmNzLW5hdmlnYXRpb25fX292ZXJsYXktLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAucGFnZS1wcmludCAuY3MtbmF2aWdhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIGFuZCAoZ3JpZC1hdXRvLWZsb3c6IHJvdykge1xuICAgIC5jcy1uYXZpZ2F0aW9uX19wcm9kdWN0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLW5hdmlnYXRpb25fX3Byb2R1Y3Q6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTsgfVxuICAgICAgLmNzLW5hdmlnYXRpb25fX3Byb2R1Y3QgLmNzLXByb2R1Y3QtdGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgYm90dG9tOiBhdXRvOyB9IH1cblxuLmNzLWNvbnRhaW5lci0tbmF2aWdhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyLS1uYXZpZ2F0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiIsIi8qKipcbiAqIFVzaW5nIHBzdWVkbyBlbGVtZW50cyB0byBtYWludGFpbiBhbiBlbGVtZW50cyBhc3BlY3QgcmF0aW8sIGV2ZW4gYXMgaXQgc2NhbGVzXG4gKiBJdCdzIHVzaW5nIG9ubHkgZm9yIElFMTEgYW5kIEVkZ2UgKHZlcnNpb24gd2hpY2ggZG9lc24ndCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCkgYnJvd3NlcnNcbiAqIEZvciBicm93c2VycyB3aGljaCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCwgd2UgYXJlIHVzaW5nIG1peGlucyBjb250YWluIGByZXNldGAgaW4gbWl4aW4gbmFtZVxuICogdG8gb3ZlcnJpZGUgZGVmYXVsdCBtaXhpbnMgKHByb2dyZXNzaXZlIGVuaGFuY2VtZW50KVxuICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL21haW50YWluLWFzcGVjdC1yYXRpby1taXhpbi9cbiAqIEBwYXJhbSB7bnVtYmVyfSAkd2lkdGg6IHdpZHRoIG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtudW1iZXJ9ICRoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkY29udGVudENsYXNzOiBjbGFzcyBvZiB0aGUgZGlyZWN0IGNoaWxkIGVsZW1lbnQgdG8gYmUgcG9zaXRpb25lZCBhYnNvbHV0ZWx5O1xuICogQHBhcmFtIHtib29sZWFufSAkYXV0b3Bvc2l0aW9uOiB0ZWxscyBpZiBpdGVtIHNoYWxsIHRha2UgMTAwJSBvZiBwYXJlbnQgc2l6ZSBvciBpZiBpdCBjYW4gYmUgd2lkZXIvaGlnaGVyIGlmIG5lZWRlZDtcbiAqL1xuXG5AZnVuY3Rpb24gZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCkge1xuICAgIEByZXR1cm4gKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcbn1cblxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQsICRjaGlsZENsYXNzLCAkYXV0b3Bvc2l0aW9uOiB0cnVlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tcmVzZXQoJGNoaWxkQ2xhc3MsICRhdXRvcG9zaXRpb246IHRydWUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tY2hpbGQtcG9zaXRpb24oJGF1dG9wb3NpdGlvbjogdHJ1ZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tb3ZlcnJpZGUoJHdpZHRoLCAkaGVpZ2h0KSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLW92ZXJyaWRlLXJlc2V0KCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9hc3BlY3QtcmF0aW8nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG5hdmlnYXRpb25fZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4kbmF2aWdhdGlvbl9vdmVybGF5LXNob3c6IGZhbHNlICFkZWZhdWx0O1xuLy8gQm94IHNoYWRvdyBlZmZlY3QgYXBwbGllZCBmb3IgdGhlIGZseW91dC5cbiRuYXZpZ2F0aW9uX2ZseW91dC1ib3gtc2hhZG93OiAycHggMnB4IDVweCByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4xNSkgIWRlZmF1bHQ7XG4vLyBGbHlvdXQgYmFja2dyb3VuZCBjb2xvci5cbiRuYXZpZ2F0aW9uX2ZseW91dC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4vLyBDb2xvciBvZiB0aGUgbGluay5cbiRuYXZpZ2F0aW9uX2xpbmstY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbi8vIENvbG9yIG9mIHRoZSBsaW5rIGluIHRoZSBmbHlvdXQgb24gaG92ZXIuXG4kbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4vLyBCb3R0b20gYm9yZGVyIGNvbmZpZ3VyYXRpb24gZm9yIGZseW91dCBjYXRlZ29yeSBsaW5rcy5cbiRuYXZpZ2F0aW9uX2xpbmstYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saXN0cy1tYXJrLXBhcmVudC1vbi1ob3ZlcjogdHJ1ZSAhZGVmYXVsdDtcblxuJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoICFkZWZhdWx0O1xuLy8gd29ya3Mgb25seSBmb3Igc3ZnIGljb25zXG4kbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uX2xpbmstaWNvbi1jb2xvci0taG92ZXI6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfW5hdmlnYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRuYXZpZ2F0aW9uX2ZvbnQtc2l6ZTtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi0tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGNvbHVtbnM6IGF1dG8gMTtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDA7XG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsIHtcbiAgICAgICAgICAgICZfMSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgY29sdW1uczogYXV0byAxO1xuICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDA7XG4gICAgICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfMiB7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgICYgKyAuI3skbnN9bmF2aWdhdGlvbl9fZXh0cmFzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkbmF2aWdhdGlvbl9saXN0cy1tYXJrLXBhcmVudC1vbi1ob3Zlcikge1xuICAgICAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAmOm5vdChbZGF0YS1jYXRlZ29yeS1pZGVudGlmaWVyPSdhbGwtY2F0ZWdvcmllcyddKSB7XG4gICAgICAgICAgICAgICAgICAgID4gI3skcm9vdH1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJi0tbWFpbiB7XG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgICAgICAgICAmI3skcm9vdH1fX2l0ZW0tLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICY6bm90KFtkYXRhLWNhdGVnb3J5LWlkZW50aWZpZXI9J2FsbC1jYXRlZ29yaWVzJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4gI3skcm9vdH1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFpbiB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40ZW07XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fbGluazpub3QoI3skcm9vdH1fX2xpbmstLXdpdGgtaWNvbikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIC8vIFByZXZlbnRzIGVsZW1lbnQgYnJlYWtpbmcgYmVjYXVzZSBvZiBjb2x1bW4gbGF5b3V0LlxuICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyAvKiBUaGVvcmV0aWNhbGx5IEZGIDIwKyAqL1xuICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47IC8qIElFIDExICovXG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsIHtcbiAgICAgICAgICAgICZfMSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAvLyBQcmV2ZW50cyBlbGVtZW50IGJyZWFraW5nIGJlY2F1c2Ugb2YgY29sdW1uIGxheW91dC5cbiAgICAgICAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IC8qIFRoZW9yZXRpY2FsbHkgRkYgMjArICovXG4gICAgICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47IC8qIElFIDExICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgcGFkZGluZzogMC45ZW0gMS4wNWVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fbGluay1pY29uLS1zdmcge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsIHtcbiAgICAgICAgICAgICZfMSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzIge1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGggKyAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uLXdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS1oZWlnaHQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC44ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aDtcbiAgICAgICAgICAgIHdpZHRoOiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS1oZWlnaHQ7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19saW5rLS1jYXRlZ29yeSAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zdmcge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1wcm9kdWN0cy1xdHkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9TdHlsaW5nIGZvciBjYXRlZ29yaWVzIGxldmVsXzEgd2l0aCBubyBzdWJjYXRlZ29yaWVzXG4gICAgI3skcm9vdH1fX2l0ZW0tLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgI3skcm9vdH1fX2l0ZW0tLW5vLWNoaWxkcmVuID4gI3skcm9vdH1fX2xpbmstLWxldmVsXzEge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBhZGRpbmc6IDAuOWVtIDEuNWVtO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgIH1cblxuICAgICZfX2ZseW91dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogJG5hdmlnYXRpb25fZmx5b3V0LWJhY2tncm91bmQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgei1pbmRleDogMTAwMTsgLy8gTWFrZSBzdXJlIGZseW91dHMgY292ZXIgZ2FsbGVyeSBuYXYuXG4gICAgICAgIGJveC1zaGFkb3c6ICRuYXZpZ2F0aW9uX2ZseW91dC1ib3gtc2hhZG93O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuXG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIEBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFBQUMxSEF3Q0FBQUFDMGxFUVZSNDJtTmtZQUFBQUFZQUFqQ0IwQzhBQUFBQVNVVk9SSzVDWUlJPSk7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZXh0cmFzIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX3RlYXNlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdHMge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gICAgICAgIG1pbi13aWR0aDogMjRyZW07XG5cbiAgICAgICAgJi1oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMWVtIDEuMDVlbSAxLjU1ZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbyhcbiAgICAgICAgICAgICR3aWR0aDogJHRpbGVfYXNwZWN0LXJhdGlvLXdpZHRoLFxuICAgICAgICAgICAgJGhlaWdodDogJHRpbGVfYXNwZWN0LXJhdGlvLWhlaWdodCxcbiAgICAgICAgICAgICRjaGlsZENsYXNzOiAjeyRuc31wcm9kdWN0LXRpbGUsXG4gICAgICAgICAgICAkYXV0b3Bvc2l0aW9uOiB0cnVlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzcmVtLCAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMCwgMC45NywgMC4wNSwgMC45OSk7XG5cbiAgICAgICAgQGlmICRuYXZpZ2F0aW9uX292ZXJsYXktc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnZS1wcmludCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIGFuZCAoZ3JpZC1hdXRvLWZsb3c6IHJvdykge1xuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpby1yZXNldChcbiAgICAgICAgICAgICAgICAkY2hpbGRDbGFzczogI3skbnN9cHJvZHVjdC10aWxlLFxuICAgICAgICAgICAgICAgICRhdXRvcG9zaXRpb246IHRydWVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLW5hdmlnYXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1uZXdzbGV0dGVyIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1uZXdzbGV0dGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2Zvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2Zvcm0td3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyB9XG4gIC5jcy1uZXdzbGV0dGVyX19maWVsZCB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuICAuY3MtbmV3c2xldHRlcl9faW5wdXQge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2xhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1uZXdzbGV0dGVyX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGhlaWdodDogNHJlbTsgfVxuICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b25bZGlzYWJsZWRdLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjFlbTtcbiAgICB3aWR0aDogMC44ZW07XG4gICAgaGVpZ2h0OiAwLjhlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGlucHV0X3BhZGRpbmc6IDAuNzE1ZW0gMWVtICFkZWZhdWx0O1xuJGlucHV0X2JvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9hbHRvICFkZWZhdWx0O1xuJGlucHV0X2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX21hcmdpbjogMCAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX3BhZGRpbmc6IDAgMS41cmVtICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9mb3JtLW1heC13aWR0aDogMzRyZW0gIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9mb3JtLWhlaWdodDogNHJlbSAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24tcG9zOiAnb25seS1pY29uJyAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24td2lkdGg6IDAuOGVtICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24taGVpZ2h0OiAwLjhlbSAhZGVmYXVsdDtcblxuLiN7JG5zfW5ld3NsZXR0ZXIge1xuICAgIG1hcmdpbjogJG5ld3NsZXR0ZXJfbWFyZ2luO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6ICRuZXdzbGV0dGVyX3BhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fZm9ybSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJG5ld3NsZXR0ZXJfZm9ybS1tYXgtd2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19mb3JtLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2ZpZWxkIHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICB9XG5cbiAgICAmX19pbnB1dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgaGVpZ2h0OiAkbmV3c2xldHRlcl9mb3JtLWhlaWdodDtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG5ld3NsZXR0ZXJfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWljb24oXG4gICAgICAgICAgICAkdHlwZTogJG5ld3NsZXR0ZXJfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDAgMC43cmVtOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxleDogMSAxIDI1JTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICAgICAgZmxleDogMSAxIDMzLjMzMzMzJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMXJlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaDpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbi13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiB7XG4gICAgd2lkdGg6IDIuNnJlbTtcbiAgICBoZWlnaHQ6IDIuNnJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgIHBhZGRpbmc6IDAgMC42cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGhlaWdodDogMS44ZW07XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgdG9wOiAtMC41cmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICAgICAgcmlnaHQ6IC0xcmVtOyB9IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZDQwMDtcbiAgICAgIGNvbG9yOiAjMDAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWQ0MDA7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1oYXZlLWl0ZW1zIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItc3BhbiB7XG4gICAgbWluLXdpZHRoOiAxY2g7IH1cblxuLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gIGZsZXg6IDAgMSAxNSU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0LCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QsIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICBib3R0b206IDMuNXJlbTtcbiAgICB0b3A6IHVuc2V0O1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzY2NjtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICBib3JkZXI6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvdHRvbTogLTNweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiA0M3B4O1xuICAgIG1heC13aWR0aDogNDNweDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMDsgfSB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5O1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMXM7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjYzEyNzJmOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGNsaXA6IHVuc2V0O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHtcbiAgICB3aWR0aDogMi4zcmVtO1xuICAgIGhlaWdodDogMi4zcmVtOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICMwMDAwMDA7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHN0YXRpYzsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG5cbi5jcy1vZmZjYW52YXMtdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBib3JkZXI6IDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGU6Zm9jdXMsIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmhvdmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBiYWNrZ3JvdW5kOiAjMzI0ZGNmO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTphY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6Zm9jdXMsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzMjRkY2Y7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24sIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgIGhlaWdodDogMC4ycmVtO1xuICAgICAgYmFja2dyb3VuZDogIzMyNGRjZjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgdHJhbnNmb3JtIDAuM3M7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTAlKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTI1MCUsIDApOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MCUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNTAlLCAwKTsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9fdGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMC41cmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zczsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgICAgICBib3R0b206IDJyZW07IH0gfVxuXG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQ6ICNjMTI3MmY7IH1cblxuLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTphY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6Zm9jdXMsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBub25lOyB9XG5cbi5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24sIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuXG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiwgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2JztcblxuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3ItYWN0aXZlOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfYW5pbWF0aW9uLWRpcmVjdGlvbjogJ2xlZnQnICFkZWZhdWx0OyAvLyAnbGVmdCcgb3IgJ3JpZ2h0J1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvci1hY3RpdmU6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlcjogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgd2lkdGg6IDUuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICkge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIEBpZiAoJG9mZmNhbnZhcy10b2dnbGVfYW5pbWF0aW9uLWRpcmVjdGlvbiA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgJixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLFxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjJyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWNvbG9yO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10b2dnbGVfaWNvbi10cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTAlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTI1MCUsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwJSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1MCUsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRvZmZjYW52YXMtdG9nZ2xlX3RleHQtdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICAgICAgICN7JHJvb3R9LS1hY3RpdmUgJiB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgICZfX21lbnUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDIuNnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMi42cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9vZmZjYW52YXMtdG9nZ2xlL29mZmNhbnZhcy10b2dnbGUuc2Nzc1wiO1xuXG4uI3skbnN9b2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZDogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICYsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX2JsYWNrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgICYsXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3JfYmxhY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCB7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQge1xuICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tY3VycmVudCA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTA1JTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0gKyAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgICAgYm9yZGVyLXRvcDogMXB4ICNkY2RjZGMgc29saWQ7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCAjZGNkY2RjIHNvbGlkOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pdGVtLS13aXRoLWljb24gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX190ZXh0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluaywgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQge1xuICAgICAgcGFkZGluZy1yaWdodDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW46dmlzaXRlZCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICMzMjRkY2Y7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjpob3ZlciwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMzI0ZGNmOyB9XG4gICAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjpob3ZlciAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDpob3ZlciAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCB7XG4gICAgICAgICAgZmlsbDogIzMyNGRjZjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuN3JlbTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXJldHVybiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgIGhlaWdodDogMC4xcmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQge1xuICAgICAgcGFkZGluZy1yaWdodDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXJldHVybiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcmV0dXJuIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIGxlZnQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAycmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAycmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI0ZGNmO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgNTAlLCAwKTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiBhdXRvOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIGxlZnQ6IDJyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uIC5hY3RpdmUgPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIGNvbG9yOiAjMzI0ZGNmOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19jYXRlZ29yeS1pY29uLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19jYXRlZ29yeS1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1heC1oZWlnaHQ6IDJyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3QnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1iYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJvcmRlcjogMXB4ICRjb2xvcl9hbHRvIHNvbGlkICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQ6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fVGhlbWUsXG4gICAgaGVhZGVyLFxuICAgIG1vYmlsZV9zZWFyY2hfaW5fb2ZmY2FudmFzXG4pICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQtbGlzdC1sZXZlbDEtdG9wLXBvc2l0aW9uOiAxNCUgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3IgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1hY3RpdmUtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc6IDIuNHJlbSAycmVtICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi11c2UtcHNldWRvaWNvbi1pbnN0ZWFkLXN2ZzogdHJ1ZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXdpZHRoOiAwLjdyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yICFkZWZhdWx0O1xuLy8gQmVsb3cgbmF2aWdhdGlvbl9pY29uIHNldHRpbmdzIGFyZSB1c2FibGUgb25seSBpZiB5b3UgdXNlIHBzZXVkb2ljb25cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1uZXh0OiAncmlnaHQnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tcHJldjogJ2xlZnQnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFycm93LWxlZnQtb2Zmc2V0OiAwICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvciAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDogMnJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21hcmdpbi1yaWdodDogMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfW9mZmNhbnZhcy1uYXZpZ2F0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fYmFja2dyb3VuZDtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLS1sZXZlbF8wLFxuICAgICAgICAmLS1jdXJyZW50LFxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbF8wLFxuICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgID4gI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgICAgID4gI3skcm9vdH1fX2xpc3Qge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmICYge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMTA1JTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuXG4gICAgICAgICAgICAvLyBQcmV2ZW50IG92ZXJsYXBwaW5nIG9mIHNlYXJjaCBvbiBuYXZpZ2F0aW9uIGxpc3RcbiAgICAgICAgICAgIEBpZiAoJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQtbGlzdC1sZXZlbDEtdG9wLXBvc2l0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSk7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLWljb24ge1xuICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdsZWZ0J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGFkZGluZzogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZztcbiAgICAgICAgZm9udC1zaXplOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXNpemU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXdlaWdodDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvci0taG92ZXI7XG5cbiAgICAgICAgICAgIEBpZiBub3QoJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdXNlLXBzZXVkb2ljb24taW5zdGVhZC1zdmcpIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2lnbi1pbixcbiAgICAgICAgJi0tc2lnbi1vdXQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yLS1ob3ZlcjtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyLjNyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGFyZW50LFxuICAgICAgICAmLS1yZXR1cm4ge1xuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBhcmVudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtO1xuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmV0dXJuIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICdsZWZ0J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnKSB7XG4gICAgICAgICAgICAmLS1uZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGFuaW1hdGVkOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hbmltYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1uZXh0LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hcnJvdy1sZWZ0LW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJGhlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGFuaW1hdGVkOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hbmltYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1wcmV2LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hcnJvdy1sZWZ0LW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aCxcbiAgICAgICAgICAgICAgICAgICAgJGhlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiBhdXRvXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdsZWZ0J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3RpdmUge1xuICAgICAgICA+ICN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1hY3RpdmUtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXRlZ29yeS1pY29uLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXgtaGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21hcmdpbi1yaWdodDtcbiAgICB9XG5cbiAgICAmX19jYXRlZ29yeS1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICAgICAgbWF4LWhlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDtcbiAgICB9XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgICZfX3NlYXJjaCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtb2ZmY2FudmFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAzMDA7IH1cbiAgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHRvcDogNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICB0b3A6IDguM3JlbTtcbiAgICAgICAgYm90dG9tOiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLW9mZmNhbnZhcy0tbWluaS1jYXJ0IC5jcy1vZmZjYW52YXNfX2RyYXdlciwgLmNzLW9mZmNhbnZhcy0tbWluaS1jYXJ0IC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0b3A6IDA7IH1cbiAgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1cmVtKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIHRyYW5zZm9ybSAxbXMgMC4zcztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLW9mZmNhbnZhcyAub3ZlcmxheS0tdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyB9XG4gIC5jcy1vZmZjYW52YXNfX2RyYXdlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDQwcmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy0tc2lkZV9sZWZ0IC5jcy1vZmZjYW52YXNfX2RyYXdlciB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtLXNpZGVfcmlnaHQgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7IH1cbiAgICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXItLW5hdmlnYXRpb24ge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7IH1cbiAgLmNzLW9mZmNhbnZhcyAuZHJhd2VyLS12aXNpYmxlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW9mZmNhbnZhc19fc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiA2cmVtO1xuICAgIGhlaWdodDogNnJlbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiAyMCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcmVtOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgbWF4LXdpZHRoOiA0OHJlbTsgfVxuXG4uY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgPiAuZHJhd2VyIHtcbiAgYm90dG9tOiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZSAhZGVmYXVsdDsgLy8gTW92ZSBiZWxvdyB0aGUgbmF2aWdhdGlvbiBvbiBtb2JpbGUuXG4kb2ZmY2FudmFzX3RvcC1vZmZzZXQtdGFibGV0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0ICFkZWZhdWx0OyAvLyBNb3ZlIGJlbG93IHRoZSBuYXZpZ2F0aW9uIG9uIHRhYmxldC5cbiRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lOiAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXNfb3ZlcmxheS1iYWNrZ3JvdW5kOiAkbW9kYWxzX292ZXJsYXktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhc19kcmF3ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzX3NwaW5uZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfW9mZmNhbnZhcyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMzAwO1xuXG4gICAgJl9fZHJhd2VyLFxuICAgICZfX292ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgYm90dG9tOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgdG9wOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB0b3A6ICRvZmZjYW52YXNfdG9wLW9mZnNldC10YWJsZXQ7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLW1pbmktY2FydCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7JG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlfSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAvLyBTZXR0aW5nIDFtcyBiZWNhdXNlIDAgZG9lc24ndCBzZWVtIHRvIHdvcmsgYW5kIHdlIG5lZWQgc2VhbWxlc3MgdHJhbnNpdGlvbiBmb3Igc2NhbGUgaGVyZS5cbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxbXMgJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbWluaS1jYXJ0ICYge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm92ZXJsYXkge1xuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzX292ZXJsYXktYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kcmF3ZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXNfZHJhd2VyLWJhY2tncm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXNpZGVfbGVmdCAmIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXNpZGVfcmlnaHQgJiB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwNSUsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1tZW51LWlzLXJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kcmF3ZXIge1xuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NwaW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA2cmVtO1xuICAgICAgICBoZWlnaHQ6IDZyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAyMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtM3JlbTtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL29mZmNhbnZhcy9vZmZjYW52YXMuc2Nzc1wiO1xuQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcblxuLiN7JG5zfW9mZmNhbnZhcyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19kcmF3ZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDQ4cmVtO1xuICAgIH1cbiAgICAmLS1taW5pLWNhcnQge1xuICAgICAgICAmID4gLmRyYXdlciB7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ucGFnZS10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogNC4ycmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRwYWdlLXRpdGxlX2ZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0yO1xuXG5cbiRwYWdlLXRpdGxlX3NwYW4tY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG5cbi5wYWdlLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRwYWdlLXRpdGxlX2ZvbnQtc2l6ZSk7XG4gICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXBhZ2UtYm90dG9tIHtcbiAgcGFkZGluZzogMS41cmVtIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wYWdlLWJvdHRvbSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1wYWdlLWJvdHRvbSB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG4gIC5wYWdlLXByaW50IC5jcy1wYWdlLWJvdHRvbSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcGFnZS1ib3R0b21fX2ltYWdlIHtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2ltYWdlLS1jaXJjbGUge1xuICAgICAgd2lkdGg6IDQuN3JlbTtcbiAgICAgIGhlaWdodDogNC43cmVtO1xuICAgICAgbWluLXdpZHRoOiA0LjdyZW07XG4gICAgICBtaW4taGVpZ2h0OiA0LjdyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLXBhZ2UtYm90dG9tX190ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMC42cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX190ZXh0LS1zbWFsbCB7XG4gICAgICBmb250LXNpemU6IDFyZW07IH1cbiAgLmNzLXBhZ2UtYm90dG9tX19ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwcmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8ge1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDE3JTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZyB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDMzJTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQge1xuICAgICAgZmxleC1iYXNpczogNTAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nLCAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nOmJlZm9yZSwgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudDpiZWZvcmUge1xuICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAwLjJyZW07XG4gICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNkY2RjZGM7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9IH1cbiAgLmNzLXBhZ2UtYm90dG9tX19sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28ge1xuICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1oZXJtZXMge1xuICAgICAgd2lkdGg6IDEyLjJyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWRobCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgbWluLXdpZHRoOiA4LjZyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXBheXBhbCB7XG4gICAgICB3aWR0aDogNi4ycmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS12aXNhIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICBtaW4td2lkdGg6IDUuNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tbWFzdGVyY2FyZCB7XG4gICAgICB3aWR0aDogMy4zcmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1rbGFybmEtc29mb3J0IHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDIuNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0ta2xhcm5hIHtcbiAgICAgIHdpZHRoOiA3cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1nbHMge1xuICAgICAgd2lkdGg6IDVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWdpcm9wYXkge1xuICAgICAgd2lkdGg6IDQuOHJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tZWMge1xuICAgICAgd2lkdGg6IDEuOHJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tcGF5ZGlyZWt0IHtcbiAgICAgIHdpZHRoOiA2cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1sYXN0c2NocmlmdCB7XG4gICAgICB3aWR0aDogNi4xNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tdm9ya2Fzc2Uge1xuICAgICAgd2lkdGg6IDguM3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tcmVjaG51bmcge1xuICAgICAgd2lkdGg6IDYuMTVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ286bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG4uY3MtY29udGFpbmVyLS1wYWdlLWJvdHRvbSB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kcGFnZS1ib3R0b21fdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHBhZ2UtYm90dG9tX2RpdmlkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9cGFnZS1ib3R0b20ge1xuICAgICRyb290OiAmO1xuXG4gICAgcGFkZGluZzogMS41cmVtIDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICYtLWNpcmNsZSB7XG4gICAgICAgICAgICB3aWR0aDogNC43cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiA0LjdyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDQuN3JlbTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQuN3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgY29sb3I6ICRwYWdlLWJvdHRvbV90ZXh0LWNvbG9yO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcblxuICAgICAgICAmLS1zbWFsbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluZm8ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogNDAlO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDE3JTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hpcHBpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogNTUlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMzMlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBheW1lbnQge1xuICAgICAgICAgICAgZmxleC1iYXNpczogNTAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2hpcHBpbmcsXG4gICAgICAgICYtLXBheW1lbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMC4ycmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJvdHRvbV9kaXZpZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBoZWlnaHQ6IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhlcm1lcyB7XG4gICAgICAgICAgICB3aWR0aDogMTIuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRobCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiA4LjZyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXlwYWwge1xuICAgICAgICAgICAgd2lkdGg6IDYuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZpc2Ege1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFzdGVyY2FyZCB7XG4gICAgICAgICAgICB3aWR0aDogMy4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0ta2xhcm5hLXNvZm9ydCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1rbGFybmEge1xuICAgICAgICAgICAgd2lkdGg6IDdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1nbHMge1xuICAgICAgICAgICAgd2lkdGg6IDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1naXJvcGF5IHtcbiAgICAgICAgICAgIHdpZHRoOiA0LjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lYyB7XG4gICAgICAgICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGF5ZGlyZWt0IHtcbiAgICAgICAgICAgIHdpZHRoOiA2cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGFzdHNjaHJpZnQge1xuICAgICAgICAgICAgd2lkdGg6IDYuMTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS12b3JrYXNzZSB7XG4gICAgICAgICAgICB3aWR0aDogOC4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVjaG51bmcge1xuICAgICAgICAgICAgd2lkdGg6IDYuMTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLXBhZ2UtYm90dG9tIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEJlY2F1c2UgcHJpY2UtYm94IGlzIHVzZWQgaW4gbXVsdGlwbGUgY29tcG9uZW50cyBsaWtlIHRpbGUsIGJ1eWJveCBldGMsXG4gKiB3ZSBuZWVkIHRvIG1vdmUgdmFyaWFibGVzIHRvIHNlcGFyYXRlIGZpbGUgdG8gaGF2ZSBwb3NzaWJpbGl0eSB0byBpbmNsdWRlIHRoZW1cbiAqIGluIGVhY2ggY29tcG9uZW50IHdpdGhvdXQgZ2VuZXJhdGUgcHJpY2UtYm94IGNvbXBvbmVudCBzdHlsZXMgbXVsdGlwbGUgdGltZXNcbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4ucHJpY2UtYm94IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2Uubm8tZGlzcGxheSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjRlbTsgfVxuICAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgICBjb2xvcjogIzMyNGRjZjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luOiAwIDAuM3JlbSAwLjNyZW0gMDsgfVxuICAgICAgLnByaWNlLWJveCAucHJpY2UtbGFiZWw6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnOic7IH1cbiAgICAgIGJvZHlcbnBcbi5wcmljZS1ib3ggLnByaWNlLWxhYmVsIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIC8qIDEgKi8gfVxuICAucHJpY2UtYm94IC5wcmljZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWZyb20sXG4gIC5wcmljZS1ib3ggLnByaWNlLXRvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tID4gLnByaWNlLWNvbnRhaW5lcixcbiAgICAucHJpY2UtYm94IC5wcmljZS10byA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tIC5wcmljZS1sYWJlbCxcbiAgICAucHJpY2UtYm94IC5wcmljZS10byAucHJpY2UtbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgY29sb3I6ICNlNDFmMTI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlLmFjdGl2ZSAucHJpY2Uge1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWZyb20ge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtcHJpY2UtLXBkcF9kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3g6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lci5wcmljZS1maW5hbF9wcmljZTpub3QoOm9ubHktY2hpbGQpIC5wcmljZSB7XG4gICAgY29sb3I6ICNlNDFmMTI7IH1cblxuLmNzLWJ1bmRsZS1ib3hfX2FkZCAucHJpY2UtYXMtY29uZmlndXJlZCB7XG4gIG1hcmdpbjogMXJlbSAwIDA7IH1cblxuLm1pbmltYWwtcHJpY2UtbGluayB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAubWluaW1hbC1wcmljZS1saW5rOmFmdGVyIHtcbiAgICBjb2xvcjogIzMyNGRjZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnLSc7XG4gICAgcmlnaHQ6IC0xcmVtO1xuICAgIHRvcDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5wcmljZS1ib3gge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWluY2x1ZGluZy10YXggLnByaWNlIHtcbiAgICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50OyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgIG9yZGVyOiAtMTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgY29sb3I6ICNjMTI3MmYgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtc2l6ZTogMi4ycmVtICFpbXBvcnRhbnQ7IH1cbiAgLnByaWNlLWJveCAucHJpY2Uge1xuICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbjogMCAwLjNyZW0gMC4zcmVtIDA7IH1cbiAgICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCI6XCI7IH1cbiAgICAgIGJvZHkgcCAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH1cbiAgLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWZyb20sXG4gIC5wcmljZS1ib3ggLnByaWNlLXRvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tID4gLnByaWNlLWNvbnRhaW5lcixcbiAgICAucHJpY2UtYm94IC5wcmljZS10byA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tIC5wcmljZS1sYWJlbCxcbiAgICAucHJpY2UtYm94IC5wcmljZS10byAucHJpY2UtbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2Uge1xuICAgIG9yZGVyOiAtMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGdhcDogMXJlbTsgfVxuICAgIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICBvcmRlcjogLTE7XG4gICAgICBtYXJnaW4tYmxvY2s6IDRweCAwOyB9XG4gICAgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgIGNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50OyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgY29sb3I6ICNjMTI3MmYgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDIuMnJlbSAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2Uge1xuICAgIGNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtICFpbXBvcnRhbnQ7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheDo6YmVmb3JlLFxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4OjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICBvcmRlcjogLTE7XG4gICAgbWFyZ2luLWJsb2NrOiAwIDFyZW07IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZS5hY3RpdmUgLnByaWNlIHtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94Om5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2U6bm90KDpvbmx5LWNoaWxkKSAucHJpY2Uge1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG5cbi5jcy1idW5kbGUtYm94X19hZGQgLnByaWNlLWFzLWNvbmZpZ3VyZWQge1xuICBtYXJnaW46IDFyZW0gMCAwOyB9XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm1pbmltYWwtcHJpY2UtbGluazphZnRlciB7XG4gICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCItXCI7XG4gICAgcmlnaHQ6IC0xcmVtO1xuICAgIHRvcDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLnByaWNlLWluY2x1ZGluZy10YXg6OmJlZm9yZSxcbi5wcmljZS1leGNsdWRpbmctdGF4OjpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpIFwiOiBcIiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHdpZHRoOiA5cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLnByaWNlLWluY2x1ZGluZy10YXg6OmJlZm9yZSxcbiAgICAucHJpY2UtZXhjbHVkaW5nLXRheDo6YmVmb3JlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWw6IGZhbHNlO1xuXG4ucHJpY2UtYm94IHtcbiAgICAkcm9vdDogJjtcbiAgICBAaW5jbHVkZSBwcmljZUJveCgpO1xuXG4gICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiAwICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luIDA7XG5cbiAgICAgICAgICAgIEBpZiAoJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uKSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvZHk6bm90KC5wYWdlLXByb2R1Y3QtYnVuZGxlLCAucGFnZS1wcm9kdWN0LWdyb3VwZWQpXG4gICAgICAgICAgICAgICAgcDpub3QoLnByaWNlLWZyb20sIC5wcmljZS10bylcbiAgICAgICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkY29uZmlndXJhYmxlLXByb2R1Y3RzLXNob3ctZnJvbS1wcmljZS1sYWJlbCB7XG4gICAgICAgIC5ub3JtYWwtcHJpY2Uge1xuICAgICAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20sXG4gICAgLnByaWNlLXRvIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgfVxuXG4gICAgLiN7JG5zfXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAmIHtcbiAgICAgICAgJjpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAmOm5vdCg6b25seS1jaGlsZCkgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31idW5kbGUtYm94X19hZGQge1xuICAgIC5wcmljZS1hcy1jb25maWd1cmVkIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICB9XG59XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJy0nO1xuICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbn1cbiIsIi8vIHByaWNlLWJveFxuLy8gVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgZm9yIHN0eWxpbmcgcHJpY2VzIGJ5IG1hcmt1cCBwcm92aWRlZCBieSBNYWdlbnRvMlxuLy9cbi8vIFNlZSBodHRwOi8vd2FycHNwaXJlLmNvbS9rc3MvIGZvciBkb2N1bWVudGF0aW9uIGd1aWRlbGluZXMuXG4vLyBWZXJzaW9uIDAuMC4xXG5AbWl4aW4gcHJpY2VCb3goKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT2xkIHByaWNlIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGZvciBwcmljZXMgd2hlcmUgbm9ybWFsIHByaWNlIGlzIFwiQXMgbG93IGFzIHtwcmljZX1cIlxuICAgICAgICAmLm5vLWRpc3BsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC40ZW07XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9wcmljZS1ib3gvcHJpY2UtYm94LnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwidmVuZG9ycy9pbmNsdWRlLW1lZGlhXCI7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWw6IGZhbHNlO1xuXG4ucHJpY2UtYm94IHtcbiAgICAkcm9vdDogJjtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiAwICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luIDA7XG5cbiAgICAgICAgICAgIEBpZiAoJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uKSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiOlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9keTpub3QoLnBhZ2UtcHJvZHVjdC1idW5kbGUsIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCkgcDpub3QoLnByaWNlLWZyb20sIC5wcmljZS10bykgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWwge1xuICAgICAgICAubm9ybWFsLXByaWNlIHtcbiAgICAgICAgICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5wcmljZS1mcm9tLFxuICAgIC5wcmljZS10byB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiA0cHggMDtcbiAgICAgICAgfVxuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGwgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTgwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDAgMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgIH1cblxuICAgIC4jeyRuc31wcmljZS0tcGRwX2RhaWx5ZGVhbC1jb3VudGRvd24gJiB7XG4gICAgICAgICY6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtY29udGFpbmVyLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9YnVuZGxlLWJveF9fYWRkIHtcbiAgICAucHJpY2UtYXMtY29uZmlndXJlZCB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgfVxufVxuXG4ubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiLVwiO1xuICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbn1cblxuLnByaWNlLWluY2x1ZGluZy10YXg6OmJlZm9yZSxcbi5wcmljZS1leGNsdWRpbmctdGF4OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCkgXCI6IFwiICFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgd2lkdGg6IDlyZW07XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqKlxuICogVXNpbmcgcHN1ZWRvIGVsZW1lbnRzIHRvIG1haW50YWluIGFuIGVsZW1lbnRzIGFzcGVjdCByYXRpbywgZXZlbiBhcyBpdCBzY2FsZXNcbiAqIEl0J3MgdXNpbmcgb25seSBmb3IgSUUxMSBhbmQgRWRnZSAodmVyc2lvbiB3aGljaCBkb2Vzbid0IHN1cHBvcnQgbmF0aXZlIENTUyBncmlkKSBicm93c2Vyc1xuICogRm9yIGJyb3dzZXJzIHdoaWNoIHN1cHBvcnQgbmF0aXZlIENTUyBncmlkLCB3ZSBhcmUgdXNpbmcgbWl4aW5zIGNvbnRhaW4gYHJlc2V0YCBpbiBtaXhpbiBuYW1lXG4gKiB0byBvdmVycmlkZSBkZWZhdWx0IG1peGlucyAocHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQpXG4gKiBodHRwczovL2Nzcy10cmlja3MuY29tL3NuaXBwZXRzL3Nhc3MvbWFpbnRhaW4tYXNwZWN0LXJhdGlvLW1peGluL1xuICogQHBhcmFtIHtudW1iZXJ9ICR3aWR0aDogd2lkdGggb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge251bWJlcn0gJGhlaWdodDogaGVpZ2h0IG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtzdHJpbmd9ICRjb250ZW50Q2xhc3M6IGNsYXNzIG9mIHRoZSBkaXJlY3QgY2hpbGQgZWxlbWVudCB0byBiZSBwb3NpdGlvbmVkIGFic29sdXRlbHk7XG4gKiBAcGFyYW0ge2Jvb2xlYW59ICRhdXRvcG9zaXRpb246IHRlbGxzIGlmIGl0ZW0gc2hhbGwgdGFrZSAxMDAlIG9mIHBhcmVudCBzaXplIG9yIGlmIGl0IGNhbiBiZSB3aWRlci9oaWdoZXIgaWYgbmVlZGVkO1xuICovXG4vKipcbiAqIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4gKiBodHRwczovL3d3dy5zYXNzbWVpc3Rlci5jb20vZ2lzdC85ZmExOWQyNTQ4NjRmMzNkNGE4MFxuICogQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4gKiBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgYm9keS5jbXMta21hLWhvbWUtcGFnZSAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbmsge1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMiAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgYm9keS5jbXMta21hLWhvbWUtcGFnZSAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbmsge1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMiAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0LjAxZW0pIHtcbiAgYm9keS5jbXMta21hLWhvbWUtcGFnZSAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbmsge1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMyAhaW1wb3J0YW50OyB9IH1cblxuLmNzLXByb2R1Y3QtdGlsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZTpob3ZlciB7XG4gICAgICB6LWluZGV4OiA1OyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tY2xpY2thYmxlOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0taGlkZGVuIC5jcy1wcm9kdWN0LXRpbGVfX21haW4sXG4gIC5jcy1wcm9kdWN0LXRpbGUtLWhpZGRlbiAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0OmhvdmVyIHtcbiAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMTJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkLmNzLXByb2R1Y3QtdGlsZS0tc3RhdGljIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxcmVtO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgei1pbmRleDogMTsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuY3MtcHJvZHVjdC10aWxlX19lcG9pbnQtYmFkZ2VzLS1ncmlkIC5iYWRnZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzBlbSkgYW5kIChtaW4td2lkdGg6IDIzLjEzNWVtKSB7XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Vwb2ludC1iYWRnZXMtLWdyaWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuY3MtcHJvZHVjdC10aWxlX19lcG9pbnQtYmFkZ2VzLS1ncmlkID4gLmJhZGdlcyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAxOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5iYWRnZXMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiA3MCU7XG4gICAgICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBnYXA6IDAgMnJlbTtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAyLjFyZW0gMi41cmVtIDIuMXJlbTtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzZnI7XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBhdXRvO1xuICAgICAgZ3JpZC1jb2x1bW4tZ2FwOiAxMHB4O1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJpbWFnZSBjb250ZW50XCIgXCJyZXZpZXcgY29udGVudFwiIFwiYmFkZ2UgY29udGVudFwiOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMmZyO1xuICAgICAgICAgIGdyaWQtcm93LWdhcDogMXJlbTsgfSB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciAuY3MtcHJvZHVjdC10aWxlX19lcG9pbnQtYmFkZ2VzLS1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiB1bnNldDsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMC4wMWVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGJhZGdlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDFyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19jb250YWluZXIgLmNzLXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tbGlzdCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIC5iYWRnZXMge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ3JpZC1hcmVhOiBpbWFnZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXJlbTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwge1xuICAgICAgZmxleDogMTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwge1xuICAgICAgICAgIGZsZXg6IGluaXRpYWw7IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluayB7XG4gICAgICBwYWRkaW5nOiAwIDRyZW0gMCAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZmxleC1ncm93OiBpbml0aWFsOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluayB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbms6aG92ZXIsIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIHtcbiAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZTpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdG9wOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZTpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTI1LjcxNDI5JTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19maWd1cmUgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLXdpZHRoOiAxMHJlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fZmlndXJlIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2ltZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAyMzBweDtcbiAgICBtYXgtaGVpZ2h0OiAyMzBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2ltZyB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMTQwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBoZWlnaHQ6IDE5NnB4OyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2ltZyB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2ltZyB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2VzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZXMtLWdyaWQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2VzLS1saXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMC4zcmVtO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2VzIHtcbiAgICAgIG1hcmdpbjogMCAwIDAgMC4zcmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI0ZGNmO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWluLWhlaWdodDogMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSBhbmQgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZSB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kaXNjb3VudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kaXNjb3VudCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kaXNjb3VudCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLW5ldyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVkNDAwO1xuICAgICAgY29sb3I6ICMwMDA7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLW5ldyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLW5ldyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2I4NDE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGFpbHlkZWFsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGFpbHlkZWFsIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGFpbHlkZWFsIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtaXRlbSB7XG4gICAgICBtYXJnaW46IDAgMCAwLjVyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtaXRlbSB7XG4gICAgICBtYXJnaW46IDAgMXJlbSAwLjNyZW0gMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW06ZW1wdHkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2dhbGxlcnkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ3JpZC1hcmVhOiBjb250ZW50OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBmbGV4OiBhdXRvO1xuICAgICAgaGVpZ2h0OiAyN3JlbTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICAgICAgICBoZWlnaHQ6IDI3cmVtO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgICAgICAgaGVpZ2h0OiAyOHJlbTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzMnJlbTtcbiAgICAgICAgICBmbGV4OiAxOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxleDogMztcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgICAgIGZsZXg6IGluaXRpYWw7IH0gfVxuICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB3aGl0ZSAwJSwgd2hpdGUgMTAlLCByZ2JhKDAsIDIxMiwgMjU1LCAwKSAxMCUpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSwgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKSBhbmQgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIG9wYWNpdHk6IGluaXRpYWw7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIG1pbi1oZWlnaHQ6IHVuc2V0OyB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZmxleDogMDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGdhcDogMXJlbSAwOyB9XG4gICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRvcDogMzBweDtcbiAgICAgIHBhZGRpbmc6IDM4LjJyZW0gMi41cmVtIDNyZW07XG4gICAgICBib3gtc2hhZG93OiAwcHggMHB4IDEycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTNyZW0sIDApOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDQ3cmVtO1xuICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdG9wOiAwOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogNDRyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogNDNyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlOmhvdmVyIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGxpbmVhciwgdHJhbnNmb3JtIDAuMzNzIGN1YmljLWJlemllcigwLCAwLjY2LCAwLjMyLCAwLjk5KTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKHBvaW50ZXI6IGNvYXJzZSkge1xuICAgIC5jcy1wcm9kdWN0LXRpbGU6aG92ZXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6aG92ZXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zIC5jcy1wcm9kdWN0LXRpbGUubm8tdHJhbnNpdGlvbixcbiAgICAuY3MtcHJvZHVjdC10aWxlLS1zdGF0aWMgLmNzLXByb2R1Y3QtdGlsZTpob3ZlciAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtdG9wIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXRvcCB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtc2lkZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXJlbTtcbiAgICByaWdodDogMXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwLjJyZW07XG4gICAgICAgIHRvcDogMS42cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtc2lkZXMge1xuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtc2lkZXMge1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1yaWdodCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXJpZ2h0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXJpZ2h0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgb3JkZXI6IC0xOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1ib3R0b20ge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtYm90dG9tIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1ib3R0b20ge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtYm90dG9tIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWxlZnQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1sZWZ0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMtbGVmdCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBvcmRlcjogMjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucy1sZWZ0IC5jcy1zdGFyLXJhdGluZyB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1ncmlkIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWdyaWQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZ3JpZC1hcmVhOiByZXZpZXc7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1ncmlkIC5jcy1zdGFyLXJhdGluZyB7XG4gICAgICAgIG1heC13aWR0aDogMTByZW07XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgcm93LWdhcDogMXJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCArIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDByZW07XG4gICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07IH1cbiAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3LS1saXN0IC5jcy1zdGFyLXJhdGluZ19fdGV4dCB7XG4gICAgICAgIG1pbi13aWR0aDogMnJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDAuNXJlbTtcbiAgICAgICAgICByaWdodDogOXJlbTtcbiAgICAgICAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyIC5jcy1wcm9kdWN0LXRpbGVfX3Jldmlldy0tbGlzdCArIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTJyZW07IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXctLWxpc3Qge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19yZXZpZXc6ZW1wdHkge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrLS1pbiB7XG4gICAgICBjb2xvcjogIzM3Yjg0MTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrLS1vdXQge1xuICAgICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2sge1xuICAgICAgbWFyZ2luOiAwIDFyZW0gMCAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsLS1ncmlkIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsLS1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsLS1saXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2RhaWx5ZGVhbC0tbGlzdC5jcy1kYWlseWRlYWwtLXRpbGUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBib3R0b206IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19kYWlseWRlYWwge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2RhaWx5ZGVhbCB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMCAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3F0eSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB3aWR0aDogMTFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19tYWluIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGZsZXg6IDEgMSAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgICAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19kZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4OiAxO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZGV0YWlscyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMge1xuICAgICAgbWFyZ2luOiAxLjVyZW0gMCAxcmVtO1xuICAgICAgbWluLWhlaWdodDogMi42cmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzLFxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIDAgMC41cmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzOmVtcHR5IHtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzLFxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMtLWxpc3Q6ZW1wdHkge1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMi4ycmVtO1xuICAgIG1pbi1oZWlnaHQ6IDEuNnJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19icmFuZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAycmVtOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQge1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gICAgbGluZS1jbGFtcDogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgbGluZS1oZWlnaHQ6IDIuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgbWluLWhlaWdodDogNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fZGV0YWlscyA+IC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kICsgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgICBtYXJnaW46IDAuNXJlbSAwIDAuM3JlbSAwOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMgPiAuY3MtcHJvZHVjdC10aWxlX19icmFuZCArIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtIDAgMC4zcmVtIDA7XG4gICAgICAgICAgZmxleDogMTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2RldGFpbHMgPiAuY3MtcHJvZHVjdC10aWxlX19icmFuZCArIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fc2t1IHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3NrdS10ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3NrdSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19za3Uge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rIHtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICAvKiBkaXNhYmxlZCBiZWNhdXNlIGF1dG9wcmVmaXhlciBjYW4ndCBidWlsZCB0aGlzICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgdmFsdWUtbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgbGluZS1jbGFtcDogMztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSBwcm9wZXJ0eS1uby12ZW5kb3ItcHJlZml4ICovIH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzMzMzMzMyAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjRyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgbWFyZ2luOiAyLjRyZW0gMCAycmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkOmhvdmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94ICFpbXBvcnRhbnQ7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA1O1xuICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgbGluZS1jbGFtcDogNTtcbiAgICAgIG1heC1oZWlnaHQ6IDEycmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkOmhvdmVyIC5jcy1wcm9kdWN0LXRpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA3O1xuICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICBsaW5lLWNsYW1wOiA3O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDIwcmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICBsaW5lLWNsYW1wOiAyOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbjplbXB0eSB7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGRpdGlvbmFsLS1saXN0IHtcbiAgICBtYXJnaW46IGF1dG8gMCAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG9yZGVyOiAtMTtcbiAgICBtYXJnaW4tYm90dG9tOiAtNC44cmVtO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZGl0aW9uYWwtLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH0gfVxuICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgLmNzLXByb2R1Y3QtdGlsZV9fYWRkaXRpb25hbC0tbGlzdCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLXdpdGgtc2lkZWJhciAuY3MtcHJvZHVjdC10aWxlX19hZGRpdGlvbmFsLS1saXN0IHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkaXRpb25hbC0tbGlzdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xcmVtOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tbGVmdCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tLWdyaWQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGR0by0tZ3JpZCB7XG4gICAgb3JkZXI6IC0xOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGR0by0tZ3JpZCAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAxcmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tLWdyaWQge1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLS1ncmlkIC5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLS1saXN0IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtO1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8tLWxpc3Qge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgICAgZ2FwOiAwIDEuNXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGR0byAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2xpbmsge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8gLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvLFxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvOmVtcHR5IHtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCB7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC1idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC1idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAxcmVtOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtcmVtb3ZlLWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxLjVyZW07IH1cbiAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uLWltYWdlIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIGZpbGw6ICM4ODg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBtYXJnaW46IC0xcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgLyogMSAqLyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbnMge1xuICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbnMge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBtYXJnaW46IDFyZW0gLTFyZW0gMDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbjpob3ZlciB7XG4gICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbjpob3ZlciBzcGFuIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbi0tcmVtb3ZlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNXB4OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbi0tcmVtb3ZlOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWFjdGlvbnMgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9uLS1yZW1vdmU6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwifFwiO1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDEzcmVtOyB9XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZ3JpZCAucHJpY2UtZmluYWxfcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMS41cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQge1xuICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IC0yLjVyZW07XG4gICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07IH0gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2UsXG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQgLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICBsZWZ0OiA5LjVyZW07IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2UsXG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICB0b3A6IDEuOTVyZW0gIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXg6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMS42cmVtKTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQgLm9sZC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICAgIGJvdHRvbTogMCAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWdyaWQgLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1saXN0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWxpc3QgLnNwZWNpYWwtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFyZW0pICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWxpc3QgLnNwZWNpYWwtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1saXN0IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00LjdyZW0pICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1saXN0IC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2UsXG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tbGlzdCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tbGlzdCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tbGlzdCAub2xkLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICB0b3A6IDJyZW0gIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1saXN0IC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICBib3R0b206IDNyZW0gIWltcG9ydGFudDsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAycmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtICFpbXBvcnRhbnQ7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfSB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5wcmljZS13cmFwcGVyIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBnYXA6IDUuNXJlbTsgfSB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICBnYXA6IDA7IH0gfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206IC0ycmVtO1xuICAgICAgICAgIGxlZnQ6IDkuNXJlbTsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICBnYXA6IDA7IH0gfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXggPiAucHJpY2Uge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IC0xLjVyZW07XG4gICAgICAgICAgbGVmdDogOXJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtOyB9XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzLjFyZW0pOyB9IH1cbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMy45cmVtKTsgfSB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDJyZW0gMDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9IH1cbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciAucHJpY2Uge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0gfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlcjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIGdhcDogNXJlbTsgfSB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciAucHJpY2Uge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5wcmljZS1mcm9tIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWRhaWx5ZGVhbC1jb3VudGRvd24gLnByaWNlLWJveDpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3gucHJpY2UtYm94LS12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3gge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCAucHJpY2UsXG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIHtcbiAgICAgIG1hcmdpbjogMDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGRvbnMge1xuICAgICAgZ2FwOiAzcmVtIDAgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLXNpZGVzIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb25zLWJvdHRvbSB7XG4gICAgICAgIG1hcmdpbi10b3A6IGF1dG87IH0gfVxuIiwiLyoqXG4gKiBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuICogaHR0cHM6Ly93d3cuc2Fzc21laXN0ZXIuY29tL2dpc3QvOWZhMTlkMjU0ODY0ZjMzZDRhODBcbiAqIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG5cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAgIEByZXR1cm4gJHZhbHVlO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAgICAgJF86IGxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICAkcmVzdWx0OiAwO1xuICAgICRkaWdpdHM6IDA7XG4gICAgJG1pbnVzOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKSA9PSAnLSc7XG4gICAgJG51bWJlcnM6IChcbiAgICAgICAgJzAnOiAwLFxuICAgICAgICAnMSc6IDEsXG4gICAgICAgICcyJzogMixcbiAgICAgICAgJzMnOiAzLFxuICAgICAgICAnNCc6IDQsXG4gICAgICAgICc1JzogNSxcbiAgICAgICAgJzYnOiA2LFxuICAgICAgICAnNyc6IDcsXG4gICAgICAgICc4JzogOCxcbiAgICAgICAgJzknOiA5LFxuICAgICk7XG5cbiAgICBAZm9yICRpIGZyb20gaWYoJG1pbnVzLCAyLCAxKSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICAgICAgQGlmIG5vdChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIHRvLWxlbmd0aChcbiAgICAgICAgICAgICAgICBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSxcbiAgICAgICAgICAgICAgICBzdHItc2xpY2UoJHZhbHVlLCAkaSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAxO1xuICAgICAgICB9IEBlbHNlIGlmICgkZGlnaXRzID09IDApIHtcbiAgICAgICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2JhZGdlL21peGluXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3NcIjtcbkBpbXBvcnQgXCJldGMvdmlldy5zY3NzXCI7XG5AaW1wb3J0IFwidXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzc1wiO1xuQGltcG9ydCBcInV0aWxzL2FzcGVjdC1yYXRpb1wiO1xuQGltcG9ydCBcInV0aWxzL3N0cmluZy10by1udW1iZXJcIjtcbkBpbXBvcnQgXCJ1dGlscy9yZXNldC1saXN0LXN0eWxlXCI7XG5AaW1wb3J0IFwidXRpbHMvdmlzdWFsbHktaGlkZGVuXCI7XG5cbi8vIEdlbmVyYWxcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcjogMS41cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlcjogMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYm94O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4kcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYW5pbWF0aW9uOiB0cnVlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbi1icmVha3BvaW50OiBcIj49bGFwdG9wXCIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYm94LXNoYWRvdzogJGthbV9ib3hfc2hhZG93O1xuJHByb2R1Y3QtdGlsZS1ncmlkX3BhZGRpbmc6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9hbGlnbm1lbnQ6IGNlbnRlciAhZGVmYXVsdDsgLy8gbGVmdCB8IGNlbnRlciB8IHJpZ2h0XG4kcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItZWZmZWN0czogZmFsc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItZWZmZWN0cy1icmVha3BvaW50OiBcIj49bGFwdG9wXCIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItYm94LXNoYWRvdzogJGthbV9ib3hfc2hhZG93O1xuJHByb2R1Y3QtdGlsZS1saXN0X3BhZGRpbmc6IDEuNXJlbSAyLjFyZW07XG4kcHJvZHVjdC10aWxlLWxpc3RfYWxpZ25tZW50OiBsZWZ0ICFkZWZhdWx0OyAvLyBsZWZ0IHwgY2VudGVyIHwgcmlnaHRcbiRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQ6IFwidGFibGV0XCIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludDogXCJsYXB0b3BcIiAhZGVmYXVsdDtcblxuLy8gUHJvZHVjdCBuYW1lXG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXdlaWdodDogNzAwO1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXk6IDM7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5lLWhlaWdodDogMi40cmVtO1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItdmlzaXRlZDogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXI6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9wcm9kdWN0LW5hbWUtbWFyZ2luOiAxcmVtIDAgMC41cmVtIDA7XG4kcHJvZHVjdC10aWxlLWdyaWRfcHJvZHVjdC1uYW1lLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZS1ncmlkX2FsaWdubWVudCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9wcm9kdWN0LW5hbWUtbWFyZ2luOiAwIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfcHJvZHVjdC1uYW1lLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZS1saXN0X2FsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gQmFkZ2VzXG4kcHJvZHVjdC10aWxlX2JhZGdlcy16LWluZGV4OiAyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy1kaXJlY3Rpb246IFwidmVydGljYWxcIiAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tcHJvcDogdG9wICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcDogbGVmdCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXZhbHVlOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tdmFsdWU6IDAuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMtaXRlbS1tYXJnaW46IDAgMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyA0fSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMtZGlyZWN0aW9uOiBcImhvcml6b250YWxcIiAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZS1saXN0X2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcDogbGVmdCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMtbWFyZ2luOiAwIDAgMCAwLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLWl0ZW0tbWFyZ2luOiAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAuM3JlbSAwICFkZWZhdWx0O1xuXG4vLyBTd2F0Y2hlc1xuJHByb2R1Y3QtdGlsZS1ncmlkX3N3YXRjaGVzLWNvbnRhaW5lci1taW4taGVpZ2h0OiAyLjZyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtbWFyZ2luOiAxLjVyZW0gMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9zd2F0Y2hlcy1hbGlnbm1lbnQ6ICRwcm9kdWN0LXRpbGUtZ3JpZF9hbGlnbm1lbnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3Rfc3dhdGNoZXMtbWFyZ2luOiAwIDAgMC41cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3N3YXRjaGVzLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZS1saXN0X2FsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gQnJhbmRcbiRwcm9kdWN0LXRpbGVfYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JyYW5kLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJHByb2R1Y3QtdGlsZV9icmFuZC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYnJhbmQtYWxpZ25tZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYnJhbmQtYWxpZ25tZW50OiBsZWZ0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2JyYW5kLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9icmFuZC1vcmRlcjogLTIgIWRlZmF1bHQ7XG5cbi8vIEFkZG9uc1xuJHByb2R1Y3QtdGlsZV9hZGRvbnMtYmFja2dyb3VuZDogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZG9ucy1ib3JkZXItcmFkaXVzOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWRkb25zLXppbmRleC1ob3ZlcjogNSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWRkb25zLWhvcml6b250YWwtcGFkZGluZzogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYWRkb25zLXNob3ctZm9yLXN0YXRpYy10aWxlOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtZ3JpZF9hZGRvbnMtaGVpZ2h0LW9uLWhvdmVyOiAzOC4ycmVtIDIuNXJlbSAzcmVtO1xuJHByb2R1Y3QtdGlsZS1saXN0X2FkZG9ucy13aWR0aDogMjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYWRkb25zLWJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yX2JvcmRlci0yMDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYWRkb25zLW9uZS1jb2x1bW4tbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG5cbi8vIEFkZGl0aW9uYWwgc2VjdGlvblxuJHByb2R1Y3QtdGlsZS1saXN0X2FkZGl0aW9uYWwtbWFyZ2luOiBhdXRvIDAgMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2FkZGl0aW9uYWwtYWxpZ25tZW50OiAkcHJvZHVjdC10aWxlLWxpc3RfYWxpZ25tZW50ICFkZWZhdWx0O1xuXG4vLyBSZXZpZXdcbiRwcm9kdWN0LXRpbGUtZ3JpZF9yZXZpZXctbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfcmV2aWV3LW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9ICFkZWZhdWx0O1xuXG4vLyBBZGR0b1xuJHByb2R1ZGN0LXRpbGVfYWRkdG8tZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWdyaWRfYWRkdG8tbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfYWRkdG8tbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG5cbi8vIFF0eSBzd2ljdGhlclxuJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoOiAxMXJlbSAhZGVmYXVsdDtcbiRwcm9kdWRjdC10aWxlX3F0eS1zd2l0Y2hlci1zcGFjZS1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIEFkZHRvY2FydFxuJHByb2R1Y3QtdGlsZS1ncmlkX2FkZHRvY2FydC1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9hZGR0b2NhcnQtbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyA0fSAwIDAgIWRlZmF1bHQ7XG5cbi8vIFN0b2NrXG4kcHJvZHVjdC10aWxlX3N0b2NrLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zdG9jay1pbi1jb2xvcjogJGNvbG9yX2FwcGxlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zdG9jay1vdXQtb2YtY29sb3I6ICRjb2xvcl9jcmltc29uICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlLWdyaWRfc3RvY2stbWFyZ2luOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3N0b2NrLW1hcmdpbjogMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG5cbi8vIERhaWx5IERlYWxcbiRwcm9kdWN0LXRpbGUtZ3JpZF9kYWlseWRlYWwtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X2RhaWx5ZGVhbC1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAgMCAwICFkZWZhdWx0O1xuXG4vLyBXaXNobGlzdFxuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXZpc2libGU6IGZhbHNlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXRleHRhcmVhLWhlaWdodDogNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tZmlsbDogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG5cbi8vIERlc2NyaXB0aW9uXG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0OiA0MDA7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWxpbmUtaGVpZ2h0OiAyLjRyZW07XG5cbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9ICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlLWxpc3RfZGVzY3JpcHRpb24tdGV4dC1hbGlnbjogJHByb2R1Y3QtdGlsZS1saXN0X2FsaWdubWVudCAhZGVmYXVsdDtcblxuLy8gVGh1bWJuYWlsXG4kcHJvZHVjdC10aWxlLWdyaWRfbGltaXQtY29udGFpbmVyLXRvLWltYWdlLXNpemU6IGZhbHNlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1saXN0X3RodW1ibmFpbC1ib3gtd2lkdGg6IDIzLjRyZW07XG4kcHJvZHVjdC10aWxlLWxpc3RfdGh1bWJuYWlsLWJveC13aWR0aC1tb2JpbGU6ICN7JHByb2R1Y3QtdGlsZS1saXN0X3RodW1ibmFpbC1ib3gtd2lkdGggLyAyfSAhZGVmYXVsdDtcblxuLy8gUHJpY2VzXG4kcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS00O1xuJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6IDcwMDtcbiRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS00O1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiA3MDA7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtZm9udC13ZWlnaHQ6IDQwMDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlLWdyaWRfcHJpY2VzLWRpcmVjdGlvbjogXCJob3Jpem9udGFsXCIgIWRlZmF1bHQ7IC8vIHZlcnRpY2FsIG9yIGhvcml6b250YWxcbiRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0OiB0cnVlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZS1ncmlkX3ByaWNlcy1hbGlnbm1lbnQ6ICRwcm9kdWN0LXRpbGUtZ3JpZF9hbGlnbm1lbnQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlLWxpc3RfcHJpY2VzLWRpcmVjdGlvbjogXCJ2ZXJ0aWNhbFwiICFkZWZhdWx0OyAvLyB2ZXJ0aWNhbCBvciBob3Jpem9udGFsXG4kcHJvZHVjdC10aWxlLWxpc3RfcHJpY2VzLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGUtbGlzdF9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gSGVscGVycyAoZG9uJ3QgZWRpdClcbiRwcm9kdWN0LXRpbGUtbGlzdF9mdWxsLWNvbHVtbi1icmVha3BvaW50LW1pbjogXCI+PSN7JHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludH1cIjtcbiRwcm9kdWN0LXRpbGUtbGlzdF9mdWxsLWNvbHVtbi1icmVha3BvaW50LW1heDogXCI8I3skcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi1icmVha3BvaW50fVwiO1xuJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWluOiBcIj49I3skcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludH1cIjtcbiRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1heDogXCI8I3skcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludH1cIjtcblxuJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2U6IGRlZXAtZ2V0KCR2aWV3LXhtbCwgbWVkaWEsIGltYWdlcywgaW1hZ2UsIGNhdGVnb3J5X3BhZ2VfZ3JpZCk7XG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aDogdG8tbnVtYmVyKCN7bWFwLWdldCgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZSwgd2lkdGgpfSk7XG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS1oZWlnaHQ6IHRvLW51bWJlcigje21hcC1nZXQoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UsIGhlaWdodCl9KTtcblxuYm9keS5jbXMta21hLWhvbWUtcGFnZSB7XG4gICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDIgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMyAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9cHJvZHVjdC10aWxlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJhY2tncm91bmQ7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYW5pbWF0aW9uLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB6LWluZGV4OiAkcHJvZHVjdC10aWxlX2FkZG9ucy16aW5kZXgtaG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jbGlja2FibGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWhpZGRlbiB7XG4gICAgICAgICN7JHJvb3R9X19tYWluLFxuICAgICAgICAjeyRyb290fV9fYWRkb25zIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbGlzdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X2hvdmVyLWVmZmVjdHMpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9ob3Zlci1lZmZlY3RzLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgI3stJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyfTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDIgKiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcn0pO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAkcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItYm94LXNoYWRvdztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkcHJvZHVjdC10aWxlLWxpc3RfaG92ZXItYm94LXNoYWRvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWdyaWQge1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9hZGRvbnMtc2hvdy1mb3Itc3RhdGljLXRpbGUgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICYjeyRyb290fS0tc3RhdGljIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fYWRkb25zIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGUtZ3JpZF9wYWRkaW5nO1xuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tbGlzdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fZXBvaW50LWJhZGdlcy0tZ3JpZCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgLmJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIiwgXCI+cGhvbmVcIikge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICYgPiAuYmFkZ2VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuYmFkZ2VzIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZ2FwOiAwIDJyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMi4xcmVtIDIuNXJlbSAyLjFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgM2ZyO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0bztcbiAgICAgICAgICAgIGdyaWQtY29sdW1uLWdhcDogMTBweDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgICAgICAgICAgXCJpbWFnZSBjb250ZW50XCJcbiAgICAgICAgICAgICAgICBcInJldmlldyBjb250ZW50XCJcbiAgICAgICAgICAgICAgICBcImJhZGdlIGNvbnRlbnRcIjtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDJmcjtcbiAgICAgICAgICAgICAgICBncmlkLXJvdy1nYXA6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlX19lcG9pbnQtYmFkZ2VzLS1ncmlkIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogdW5zZXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPnBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICAgICBncmlkLWFyZWE6IGJhZGdlO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlX19lcG9pbnQtYmFkZ2VzLS1saXN0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5iYWRnZXMge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbiAgICAgICAgfVxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgICAgICAgICAgZmxleDogaW5pdGlhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RodW1ibmFpbC1saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDRyZW0gMCAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZmxleC1ncm93OiBpbml0aWFsO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0gJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gSUUxMSAtIHByZXZlbnRzIGZyb20gZXhjZXNzaXZlIHRyYW5zaXRpb24gZWZmZWN0XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLy8gSUUxMSBkbyBub3QgcmVzcGVjdCBjZW50ZXIgdmFsdWUgdW50aWwgcGFyZW50IGhhcyBmbGV4LWRpcmVjdGlvbiBzZXQgdG8gY29sdW1uLlxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHRvcDogMDtcblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWdyaWRfbGltaXQtY29udGFpbmVyLXRvLWltYWdlLXNpemUpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aCAvIDEwKSAqIDFyZW07XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogKCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLWhlaWdodCAvIDEwKSAqIDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFzcGVjdCByYXRpbyBmb3IgdGlsZSB0aHVtYm5haWwgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiBpbWFnZSAnY2F0ZWdvcnlfcGFnZV9ncmlkJyBzaXplcyBpbiBldGMvdmlldy54bWxcbiAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbyhcbiAgICAgICAgICAgICAgICAkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aCxcbiAgICAgICAgICAgICAgICAkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS1oZWlnaHQsXG4gICAgICAgICAgICAgICAgI3skbnN9cHJvZHVjdC10aWxlX190aHVtYm5haWwtbGlua1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwcmVtO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8vIElFMTEgZG8gbm90IHJlc3BlY3QgY2VudGVyIHZhbHVlIHVudGlsIHBhcmVudCBoYXMgZmxleC1kaXJlY3Rpb24gc2V0IHRvIGNvbHVtbi5cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxwaG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAyMzBweDtcbiAgICAgICAgbWF4LWhlaWdodDogMjMwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTQwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTk2cHg7XG4gICAgICAgIH1cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAmLS1ncmlkIHtcbiAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6ICRwcm9kdWN0LXRpbGVfYmFkZ2VzLXotaW5kZXg7XG5cbiAgICAgICAgICAgICN7JHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tcHJvcH06ICRwcm9kdWN0LXRpbGUtZ3JpZF9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXZhbHVlO1xuICAgICAgICAgICAgI3skcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi1wcm9wfTogJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tdmFsdWU7XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX2JhZGdlcy1kaXJlY3Rpb24gPT0gXCJ2ZXJ0aWNhbFwiKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLW1hcmdpbjtcblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi1wcm9wID09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi1wcm9wID09IFwiY2VudGVyXCIpIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3RfYmFkZ2VzLWRpcmVjdGlvbiA9PSBcInZlcnRpY2FsXCIpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmVcIiwgXCI8cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2NvdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoXCJkaXNjb3VudFwiKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oXCJkaXNjb3VudFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ldyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKFwibmV3XCIpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbihcIm5ld1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZShcImZyZWUtc2hpcHBpbmdcIik7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKFwiZnJlZS1zaGlwcGluZ1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZShcInBvcHVsYXJcIik7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKFwicG9wdWxhclwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhaWx5ZGVhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKFwiZGFpbHlkZWFsXCIpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbihcImRhaWx5ZGVhbFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfYmFkZ2VzLWl0ZW0tbWFyZ2luO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7IC8vIFNldCB3aWR0aCBleHBsaWNpdGx5IHRvIGF2b2lkIEVkZ2UgYnVnc1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9iYWRnZXMtaXRlbS1tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigpO1xuICAgIH1cblxuICAgICZfX2dhbGxlcnkge1xuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgZ3JpZC1hcmVhOiBjb250ZW50O1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXg6IGF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6IDI3cmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyN3JlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjhyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMycmVtO1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZsZXg6IDM7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgICAgIGZsZXg6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludCAhPSAkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgJiB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkb25zIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHByb2R1Y3QtdGlsZV9hZGRvbnMtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgMGRlZyxcbiAgICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMCUsXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpIDEwJSxcbiAgICAgICAgICAgIHJnYmEoMCwgMjEyLCAyNTUsIDApIDEwJVxuICAgICAgICApO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICAmLWJvdHRvbSxcbiAgICAgICAgJi1zaWRlcyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfYWRkb25zLW9uZS1jb2x1bW4tbWFyZ2luO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIG9wYWNpdHk6IGluaXRpYWw7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IHVuc2V0O1xuXG4gICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfYWRkb25zLW9uZS1jb2x1bW4tbWFyZ2luO1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDA7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDFyZW0gMDtcblxuICAgICAgICAgICAgICAgICAgICAmLXNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0b3A6IDMwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC10aWxlLWdyaWRfYWRkb25zLWhlaWdodC1vbi1ob3ZlcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRwcm9kdWN0LXRpbGUtZ3JpZF9ob3Zlci1ib3gtc2hhZG93O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9ob3Zlci1hbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zcmVtLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0N3JlbTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0NHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDQzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH06aG92ZXIgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWdyaWRfaG92ZXItYW5pbWF0aW9uLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX2hvdmVyLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5IDAuMXMgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMzNzICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy9kaXNhYmxpbmcgaG92ZXIgZWZmZWN0IG9uIGlwYWRzXG4gICAgICAgICAgICAgICAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0ubm8tdHJhbnNpdGlvbixcbiAgICAgICAgICAgICN7JHJvb3R9LS1zdGF0aWMgJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucy10b3Age1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkb25zLXNpZGVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxcmVtO1xuICAgICAgICByaWdodDogMXJlbTtcbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjJyZW07XG4gICAgICAgICAgICB0b3A6IDEuNnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGRvbnMtcmlnaHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZG9ucy1ib3R0b20ge1xuICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9mdWxsLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0gJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3Rfc2lkZWJhci1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkb25zLWxlZnQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1zdGFyLXJhdGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yZXZpZXcge1xuICAgICAgICAmLS1ncmlkIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1ncmlkX3Jldmlldy1tYXJnaW47XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiByZXZpZXc7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAuI3skbnN9c3Rhci1yYXRpbmcge1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwcmVtO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgICAgIHJvdy1nYXA6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X3Jldmlldy1tYXJnaW47XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X2Z1bGwtY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlcjtcblxuICAgICAgICAgICAgICAgICsgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTJyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludCAhPSAkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgJiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwcmVtO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAuI3skbnN9c3Rhci1yYXRpbmdfX3RleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3QtdGlsZS1saXN0X3NpZGViYXItY29sdW1uLWJyZWFrcG9pbnQtbWluKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiA5cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfcmV2aWV3LW1hcmdpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgKyAuY3MtcHJvZHVjdC10aWxlX19uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdG9jayB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX3N0b2NrLWZvbnQtc2l6ZTtcblxuICAgICAgICAmLS1pbiB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9zdG9jay1pbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9zdG9jay1vdXQtb2YtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1ncmlkX3N0b2NrLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3Rfc3RvY2stbWFyZ2luO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGFpbHlkZWFsIHtcbiAgICAgICAgJi0tZ3JpZCB7XG4gICAgICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmNzLWRhaWx5ZGVhbC0tdGlsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWdyaWRfZGFpbHlkZWFsLW1hcmdpbjtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlLWxpc3RfZGFpbHlkZWFsLW1hcmdpbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRwcm9kdWRjdC10aWxlX3F0eS1zd2l0Y2hlci1zcGFjZS1ib3R0b207XG4gICAgICAgIHdpZHRoOiAkcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItd2lkdGg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9vbmUtY29sdW1uLWJyZWFrcG9pbnQgIT0gJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4td2hlbi1zaWRlYmFyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAuY3MtcHJvZHVjdHMtbGlzdC0td2l0aC1zaWRlYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRwcm9kdWN0LXRpbGUtbGlzdF9zaWRlYmFyLWNvbHVtbi1icmVha3BvaW50LW1pbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RldGFpbHMge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zd2F0Y2hlcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtZ3JpZF9zd2F0Y2hlcy1tYXJnaW47XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC10aWxlLWdyaWRfc3dhdGNoZXMtY29udGFpbmVyLW1pbi1oZWlnaHQ7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0gXCJsZWZ0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0gXCJyaWdodFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9zd2F0Y2hlcy1tYXJnaW47XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X3N3YXRjaGVzLWFsaWdubWVudCA9PSBcImxlZnRcIikge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X3N3YXRjaGVzLWFsaWdubWVudCA9PSBcInJpZ2h0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdCB7XG4gICAgICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JyYW5kIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDIuMnJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMS42cmVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDgwcHgpO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnJhbmQtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9icmFuZC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX2JyYW5kLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuICAgICAgICBsaW5lLWNsYW1wOiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDVyZW07XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgI3skcm9vdH1fX2RldGFpbHMgPiAjeyRyb290fV9fYnJhbmQgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDAgMC4zcmVtIDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC4ycmVtIDAgMC4zcmVtIDA7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19za3Uge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYW1lLWxpbmsge1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvcjtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3IgIT0gJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3Zlcikge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogZGlzYWJsZWQgYmVjYXVzZSBhdXRvcHJlZml4ZXIgY2FuJ3QgYnVpbGQgdGhpcyAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheSA+IDEpIHtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXk7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBsaW5lLWNsYW1wOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSBwcm9wZXJ0eS1uby12ZW5kb3ItcHJlZml4ICovXG5cbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLXZpc2l0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLWhvdmVyICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXdlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWNvbG9yO1xuICAgICAgICBtYXJnaW46IDIuNHJlbSAwIDJyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWdyaWQ6aG92ZXIgJiB7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogNTtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxpbmUtY2xhbXA6IDU7XG4gICAgICAgICAgICAvLyBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTJyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA3O1xuICAgICAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgICBsaW5lLWNsYW1wOiA3O1xuICAgICAgICAgICAgICAgIC8vIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGUtbGlzdF9kZXNjcmlwdGlvbi10ZXh0LWFsaWduO1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgIC8vIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZGl0aW9uYWwge1xuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2FkZGl0aW9uYWwtbWFyZ2luO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTQuOHJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3RfZnVsbC1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1saXN0X29uZS1jb2x1bW4tYnJlYWtwb2ludCAhPSAkcHJvZHVjdC10aWxlLWxpc3Rfb25lLWNvbHVtbi13aGVuLXNpZGViYXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIC5jcy1wcm9kdWN0cy1saXN0LS13aXRoLXNpZGViYXIgJiB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdC10aWxlLWxpc3Rfc2lkZWJhci1jb2x1bW4tYnJlYWtwb2ludC1taW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxwaG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvIHtcbiAgICAgICAgJi1sZWZ0IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgICAgICAmLS1ncmlkIHtcbiAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICAgICAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZS1saXN0X2FkZHRvLW1hcmdpbjtcbiAgICAgICAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gICAgICAgICAgICAgICAgZ2FwOiAwIDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWRjdC10aWxlX2FkZHRvLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QgJixcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0IHtcbiAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtZ3JpZF9hZGR0b2NhcnQtbWFyZ2luO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1yZW1vdmUtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGUtZ3JpZF9wYWRkaW5nO1xuXG4gICAgICAgIEBtZWRpYSAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LXJlbW92ZS1pY29uLWltYWdlIHtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU7XG4gICAgICAgIGZpbGw6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tZmlsbDtcbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1jb21tZW50IHtcbiAgICAgICAgQGlmIG5vdCgkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWNvbW1lbnQtdmlzaWJsZSkge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbGlzdCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLW1hcmdpbjtcbiAgICAgICAgZGlzcGxheTogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWRpc3BsYXk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAtMXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBpZiAoJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWRpc3BsYXkgPT0gZmxleCkge1xuICAgICAgICAvLyAgICAganVzdGlmeS1jb250ZW50OiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtanVzdGlmeS1jb250ZW50O1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fd2lzaGxpc3Qge1xuICAgICAgICAgICAgJi1hY3Rpb24ge1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLS1yZW1vdmUge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJ8XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgICAgICAmLS1ncmlkIHtcbiAgICAgICAgICAgICN7JHJvb3R9LS1saXN0ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEzcmVtO1xuICAgICAgICAgICAgICAgICAgICAucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtMi41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCA+IC5wcmljZSxcbiAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDkuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAxLjk1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjZyZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZS1ib3ggLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcmVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogM3B4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQuN3JlbSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4ID4gLnByaWNlLFxuICAgICAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4ID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAmID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgJiA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJyZW07XG5cbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJyZW0pO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuOHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICYgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDUuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtc2l6ZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAmID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByaWNlIGJvdHRvbSBwcm9tb1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAtMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDkuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJiA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQcmljZSB0b3AgcHJvbW9cbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDlyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgI3skcm9vdH0tLWdyaWQgJiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0ycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMy4xcmVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpbi1ib3R0b206IC0wLjdyZW07XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMy45cmVtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAycmVtIDA7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZS13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtZGlyZWN0aW9uID09IFwidmVydGljYWxcIikge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtYWxpZ25tZW50ID09IFwibGVmdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX3ByaWNlcy1hbGlnbm1lbnQgPT0gXCJyaWdodFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZS1ncmlkX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtYWxpZ25tZW50ID09IFwibGVmdFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGUtZ3JpZF9wcmljZXMtYWxpZ25tZW50ID09IFwicmlnaHRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGUtbGlzdF9wcmljZXMtbWFyZ2luO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICYgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiA1cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlLWxpc3RfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZS13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9wcmljZXMtZGlyZWN0aW9uID09IFwidmVydGljYWxcIikge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGUtbGlzdF9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtZnJvbSxcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLXRvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICY6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByaWNlLWJveC0tdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmLS1saXN0IHtcbiAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fcHJpY2Uge1xuICAgICAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSxcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGdhcDogM3JlbSAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAmLXNpZGVzIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYtYm90dG9tIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcHJvZHVjdHMtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1wcm9kdWN0cy1saXN0Om5vdCguY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwpIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLXByb2R1Y3RzLWxpc3Q6bm90KC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCkgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3RzLWxpc3QtLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9IH1cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwidXRpbHMvcmVzZXQtbGlzdC1zdHlsZVwiO1xuQGltcG9ydCBcInZlbmRvcnMvaW5jbHVkZS1tZWRpYVwiO1xuXG4kcHJvZHVjdF9saXN0LWl0ZW0tYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJHByb2R1Y3RfbGlzdC1pdGVtLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG4kcHJvZHVjdF9saXN0LWNhcm91c2VsLWJyZWFrcG9pbnQ6IFwiPj10YWJsZXRcIiAhZGVmYXVsdDtcblxuLiN7JG5zfXByb2R1Y3RzLWxpc3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmOm5vdCgjeyRyb290fS0tY2Fyb3VzZWwpIHtcbiAgICAgICAgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b207XG4gICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2Fyb3VzZWwge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdF9saXN0LWNhcm91c2VsLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkcHJvZHVjdF9saXN0LWl0ZW0tYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1wdXNoLW5vdGlmaWNhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLl9hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG1hcmdpbjogMS41cmVtIDA7IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGJveC1zaGFkb3c6IDJweCAycHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKSwgLTJweCAtMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2ljb25zIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19pY29ucyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2ljb24ge1xuICAgIHdpZHRoOiAzLjVyZW07XG4gICAgaGVpZ2h0OiAzLjVyZW07IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2ljb24tLWFuaW1hdGUge1xuICAgICAgYW5pbWF0aW9uOiByaW5naW5nIDZzIGluZmluaXRlOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fbWVzc2FnZS13cmFwcGVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxleDogMTsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19tZXNzYWdlLXdyYXBwZXIge1xuICAgICAgbWFyZ2luOiAwIDEuNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX21lc3NhZ2Utd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX21lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fbWVzc2FnZS10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19tZXNzYWdlLWRlc2NyaXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2FjdGlvbnMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYWN0aW9ucyB7XG4gICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19hY3Rpb25zIHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luOiAwIDAgMC41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW46IDAgMCAwIDA7IH1cbiAgICAgICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMS41cmVtIDAgMDsgfSB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0LCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdFtkaXNhYmxlZF0sIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0IC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS42cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0LCAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmcgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWFjY2VwdDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHRbZGlzYWJsZWRdLCAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQ6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1hY2NlcHQgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tc3BhbiB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tYWNjZXB0IC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWRlY2xpbmUsIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWRlY2xpbmU6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWRlY2xpbmU6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19idXR0b24tLWRlY2xpbmVbZGlzYWJsZWRdLCAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2J1dHRvbi0tZGVjbGluZTp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLS1kZWNsaW5lIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fcGVybWlzc2lvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgLTJweCAtMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7XG4gICAgcGFkZGluZzogMXJlbSAycmVtOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19wZXJtaXNzaW9uLWljb24ge1xuICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgIGhlaWdodDogMS4ycmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX3Blcm1pc3Npb24tYnV0dG9uLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19wZXJtaXNzaW9uLWJ1dHRvbiB7XG4gICAgICBwYWRkaW5nOiAwLjJyZW0gMnJlbTtcbiAgICAgIG1hcmdpbjogMCAwLjJyZW07XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICBmb250LXNpemU6IDEuMXJlbTsgfVxuICAgICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19wZXJtaXNzaW9uLWJ1dHRvbi0tYmxvY2sge1xuICAgICAgICBvcGFjaXR5OiAwLjM7IH1cbiAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19jbG9zZSB7XG4gICAgbWFyZ2luOiAwIDAgMCAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fY2xvc2Uge1xuICAgICAgcGFkZGluZzogMS41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1wdXNoLW5vdGlmaWNhdGlvbl9fY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMXJlbTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZyAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2Nsb3NlIHtcbiAgICAgICAgICByaWdodDogMS41cmVtOyB9IH1cbiAgICAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2Nsb3NlLWljb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICBmaWxsOiAjODg4OyB9XG4gICAgLmNzLXB1c2gtbm90aWZpY2F0aW9uX19jbG9zZTpob3ZlciAuY3MtcHVzaC1ub3RpZmljYXRpb25fX2Nsb3NlLWljb24ge1xuICAgICAgZmlsbDogIzAwMDsgfVxuXG5Aa2V5ZnJhbWVzIHJpbmdpbmcge1xuICAwJSxcbiAgMTIlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHJvdGF0ZSgwZGVnKTsgfVxuICAzJSxcbiAgNyUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKSByb3RhdGUoMjdkZWcpOyB9XG4gIDUlLFxuICA5JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHJvdGF0ZSgtMjdkZWcpOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJHB1c2gtbm90aWZpY2F0aW9uX2d1dHRlcjogMCAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfZ3V0dGVyOiAwIDEuNXJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYm94LXNoYWRvdzogMnB4IDJweCAzcHggcmdiYSgkY29sb3JfYmxhY2ssIDAuMSksXG4gICAgLTJweCAtMnB4IDNweCByZ2JhKCRjb2xvcl9ibGFjaywgMC4xKSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9wYWRkaW5nOiAwICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19wYWRkaW5nOiAycmVtIDEuNXJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9tYXJnaW46IDEuNXJlbSAwICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2Rpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuXG4kcHVzaC1ub3RpZmljYXRpb25faWNvbi1zdGF0dXMtd2lkdGg6IDMuNXJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLXN0YXR1cy1oZWlnaHQ6IDMuNXJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLXN0YXR1cy1hbmltYXRpb246IHRydWUgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25faWNvbi1zdGF0dXMtYW5pbWF0aW9uLXJlcGVhdDogNnMgIWRlZmF1bHQ7XG5cbiRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLXRpdGxlLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLXRpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS10aXRsZS1yZXF1ZXN0LWNvbG9yOiAkY29sb3JfYmxhY2sgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS10aXRsZS1icm93c2VyLWNvbG9yOiAkY29sb3JfYmxhY2sgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS10aXRsZS1lbmFibGVkLWNvbG9yOiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG5cbiRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX21lc3NhZ2UtZGVzY3JpcHRpb24tZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLWRlc2NyaXB0aW9uLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRwdXNoLW5vdGlmaWNhdGlvbl9hY3Rpb25zLWZsZXgtanVzdGlmeTogZmxleC1zdGFydCAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYWN0aW9ucy1mbGV4LWp1c3RpZnk6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG5cbiRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tYWNjZXB0LXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19idXR0b24tYWNjZXB0LXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1hY2NlcHQtaWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYnV0dG9uLWFjY2VwdC1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuXG4kcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWRlY2xpbmUtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWRlY2xpbmUtaWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJveC1zaGFkb3c6IDJweCAycHggNXB4IHJnYmEoJGNvbG9yX2JsYWNrLCAwLjEpLFxuICAgIC0ycHggLTJweCA1cHggcmdiYSgkY29sb3JfYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLXBhZGRpbmc6IDFyZW0gMnJlbSAhZGVmYXVsdDtcbiRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1idXR0b24tZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1idXR0b24tcGFkZGluZzogMC4ycmVtIDJyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1idXR0b24tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JsYWNrICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYnV0dG9uLWNvbG9yOiAkY29sb3JfYmxhY2sgIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1pY29uLXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1pY29uLWhlaWdodDogMS4ycmVtICFkZWZhdWx0O1xuXG4kcHVzaC1ub3RpZmljYXRpb25faWNvbi1jbG9zZS13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2UtaGVpZ2h0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kcHVzaC1ub3RpZmljYXRpb25faWNvbi1jbG9zZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2UtY29sb3ItLWhvdmVyOiAkY29sb3JfYmxhY2sgIWRlZmF1bHQ7XG5cbi4jeyRuc31wdXNoLW5vdGlmaWNhdGlvbiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5fYWN0aXZlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogJHB1c2gtbm90aWZpY2F0aW9uX2Rpc3BsYXk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwdXNoLW5vdGlmaWNhdGlvbl9iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkcHVzaC1ub3RpZmljYXRpb25fcGFkZGluZztcbiAgICAgICAgYm9yZGVyOiAkcHVzaC1ub3RpZmljYXRpb25fYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHVzaC1ub3RpZmljYXRpb25fYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm94LXNoYWRvdzogJHB1c2gtbm90aWZpY2F0aW9uX2JveC1zaGFkb3c7XG4gICAgICAgIG1hcmdpbjogJHB1c2gtbm90aWZpY2F0aW9uX21hcmdpbjtcblxuICAgICAgICAjeyRyb290fS0tc2hpcHBpbmcgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiAkcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2Rpc3BsYXk7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19ib3gtc2hhZG93O1xuICAgICAgICAgICAgcGFkZGluZzogJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbnMge1xuICAgICAgICBtYXJnaW46ICRwdXNoLW5vdGlmaWNhdGlvbl9ndXR0ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tc3RhdHVzLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLXN0YXR1cy1oZWlnaHQ7XG5cbiAgICAgICAgJi0tYW5pbWF0ZSB7XG4gICAgICAgICAgICBAaWYgJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tc3RhdHVzLWFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiByaW5naW5nXG4gICAgICAgICAgICAgICAgICAgICRwdXNoLW5vdGlmaWNhdGlvbl9pY29uLXN0YXR1cy1hbmltYXRpb24tcmVwZWF0XG4gICAgICAgICAgICAgICAgICAgIGluZmluaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZS13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luOiAkcHVzaC1ub3RpZmljYXRpb25fZ3V0dGVyO1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgICN7JHJvb3R9LS1zaGlwcGluZyAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIgKlxuICAgICAgICAgICAgICAgIChnZXQtdmFsdWUtZnJvbS1saXN0KCRwdXNoLW5vdGlmaWNhdGlvbl9wYWRkaW5nLCAncmlnaHQnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZXNzYWdlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHB1c2gtbm90aWZpY2F0aW9uX21lc3NhZ2UtdGl0bGUtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwdXNoLW5vdGlmaWNhdGlvbl9tZXNzYWdlLWRlc2NyaXB0aW9uLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS1kZXNjcmlwdGlvbi1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHVzaC1ub3RpZmljYXRpb25fbWVzc2FnZS1kZXNjcmlwdGlvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRwdXNoLW5vdGlmaWNhdGlvbl9hY3Rpb25zLWZsZXgtanVzdGlmeTtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICN7JHJvb3R9LS1zaGlwcGluZyAmIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19hY3Rpb25zLWZsZXgtanVzdGlmeTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBnZXQtdmFsdWUtZnJvbS1saXN0KCRwdXNoLW5vdGlmaWNhdGlvbl9wYWRkaW5nLCAndXAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBcbiAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdCgkcHVzaC1ub3RpZmljYXRpb25fZ3V0dGVyLCAncmlnaHQnKSAwIDA7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fS0tc2hpcHBpbmcgJiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2d1dHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAwIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWNjZXB0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1hY2NlcHQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tYWNjZXB0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1hY2NlcHQtdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWFjY2VwdC1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcHVzaC1ub3RpZmljYXRpb25fYnV0dG9uLWFjY2VwdC10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tYWNjZXB0LWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH0tLXNoaXBwaW5nICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfYnV0dG9uLWFjY2VwdC10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6XG4gICAgICAgICAgICAgICAgICAgICAgICAkcHVzaC1ub3RpZmljYXRpb24tLXNoaXBwaW5nX2J1dHRvbi1hY2NlcHQtaWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19idXR0b24tYWNjZXB0LXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19idXR0b24tYWNjZXB0LWljb24tcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19idXR0b24tYWNjZXB0LXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19idXR0b24tYWNjZXB0LWljb24tcG9zXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjbGluZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tZGVjbGluZS10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1kZWNsaW5lLWljb24tcG9zXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1kZWNsaW5lLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJHB1c2gtbm90aWZpY2F0aW9uX2J1dHRvbi1kZWNsaW5lLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tZGVjbGluZS10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRwdXNoLW5vdGlmaWNhdGlvbl9idXR0b24tZGVjbGluZS1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wZXJtaXNzaW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYm9yZGVyOiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJveC1zaGFkb3c6ICRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJveC1zaGFkb3c7XG4gICAgICAgIGZvbnQtc2l6ZTogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tY29sb3I7XG4gICAgICAgIHBhZGRpbmc6ICRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLXBhZGRpbmc7XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1pY29uLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1pY29uLWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1idXR0b24td3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLWJ1dHRvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1idXR0b24tcGFkZGluZztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjJyZW07XG4gICAgICAgICAgICBib3JkZXI6ICRwdXNoLW5vdGlmaWNhdGlvbl9wZXJtaXNzaW9uLWJ1dHRvbi1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJHB1c2gtbm90aWZpY2F0aW9uX3Blcm1pc3Npb24tYnV0dG9uLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHVzaC1ub3RpZmljYXRpb25fcGVybWlzc2lvbi1idXR0b24tZm9udC1zaXplO1xuXG4gICAgICAgICAgICAmLS1ibG9jayB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2Uge1xuICAgICAgICBtYXJnaW46IDAgMCAwIGdldC12YWx1ZS1mcm9tLWxpc3QoJHB1c2gtbm90aWZpY2F0aW9uX3BhZGRpbmcsICdyaWdodCcpO1xuICAgICAgICBwYWRkaW5nOiBnZXQtdmFsdWUtZnJvbS1saXN0KCRwdXNoLW5vdGlmaWNhdGlvbl9wYWRkaW5nLCAncmlnaHQnKTtcblxuICAgICAgICAjeyRyb290fS0tc2hpcHBpbmcgJiB7XG4gICAgICAgICAgICBwYWRkaW5nOiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICRwdXNoLW5vdGlmaWNhdGlvbi0tc2hpcHBpbmdfcGFkZGluZyxcbiAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDFyZW07XG4gICAgICAgICAgICByaWdodDogZ2V0LXZhbHVlLWZyb20tbGlzdCgkcHVzaC1ub3RpZmljYXRpb25fcGFkZGluZywgJ3JpZ2h0Jyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1zaGlwcGluZyAmIHtcbiAgICAgICAgICAgICAgICByaWdodDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgJHB1c2gtbm90aWZpY2F0aW9uLS1zaGlwcGluZ19wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkcHVzaC1ub3RpZmljYXRpb25faWNvbi1jbG9zZS13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2UtaGVpZ2h0O1xuICAgICAgICAgICAgZmlsbDogJHB1c2gtbm90aWZpY2F0aW9uX2ljb24tY2xvc2UtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19jbG9zZS1pY29uIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkcHVzaC1ub3RpZmljYXRpb25faWNvbi1jbG9zZS1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgcmluZ2luZyB7XG4gICAgMCUsXG4gICAgMTIlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDMlLFxuICAgIDclIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHJvdGF0ZSgyN2RlZyk7XG4gICAgfVxuICAgIDUlLFxuICAgIDklIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpIHJvdGF0ZSgtMjdkZWcpO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgYmFja2dyb3VuZDogI2RjZGNkYztcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAxcmVtOyB9XG4gIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZSB7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICMzMjRkY2Y7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIGJhY2tncm91bmQgMC4zcztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTsgfVxuICAgIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgIGJhY2tncm91bmQ6ICMxNDJiOWU7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4udWktc2xpZGVyLWhvcml6b250YWwge1xuICBiYWNrZ3JvdW5kOiAjZGNkY2RjO1xuICBoZWlnaHQ6IDAuNHJlbTtcbiAgbWFyZ2luLWxlZnQ6IDAuNjVyZW07XG4gIG1hcmdpbi1yaWdodDogMC42NXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAxLjNyZW07IH1cbiAgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlIHtcbiAgICB0b3A6IC0xcmVtO1xuICAgIHdpZHRoOiAyLjZyZW07XG4gICAgaGVpZ2h0OiAyLjZyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjNyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMC44cmVtO1xuICAgICAgbGVmdDogMC43cmVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAwLjdyZW07XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH1cbiAgICAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGU6Zmlyc3Qtb2YtdHlwZTo6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICBsZWZ0OiAxcmVtOyB9XG4gICAgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtYWN0aXZlLCAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUudWktc3RhdGUtZm9jdXMge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kc2xpZGVyLS1ob3Jpem9udGFsX2hlaWdodDogMXJlbSAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfYmFja2dyb3VuZDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLS1ob3Jpem9udGFsX2JhY2tncm91bmQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLS1ob3Jpem9udGFsX2hlaWdodDtcbiAgICBtYXJnaW4tbGVmdDogKCRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemUgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6ICgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplIC8gMik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItLWhvcml6b250YWxfaGVpZ2h0O1xuXG4gICAgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgICAgICB3aWR0aDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1iYWNrZ3JvdW5kO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcywgYmFja2dyb3VuZCAwLjNzO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplIC8gMik7XG5cbiAgICAgICAgJi51aS1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJi51aS1zdGF0ZS1hY3RpdmUsXG4gICAgICAgICYudWktc3RhdGUtZm9jdXMge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvc2xpZGVyL3NsaWRlci5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kc2xpZGVyLS1ob3Jpem9udGFsX2hlaWdodDogMS4zcmVtO1xuJHNsaWRlci0taG9yaXpvbnRhbF9iYWNrZ3JvdW5kOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemU6IDEuM3JlbTtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLWJhY2tncm91bmQtYWN0aXZlOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbi51aS1zbGlkZXItaG9yaXpvbnRhbCB7XG4gICAgYmFja2dyb3VuZDogJHNsaWRlci0taG9yaXpvbnRhbF9iYWNrZ3JvdW5kO1xuICAgIGhlaWdodDogMC40cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAoJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAvIDIpO1xuICAgIG1hcmdpbi1yaWdodDogKCRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemUgLyAyKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci0taG9yaXpvbnRhbF9oZWlnaHQ7XG5cbiAgICAudWktc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgIHRvcDogLTFyZW07XG4gICAgICAgIHdpZHRoOiAoJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZSAqIDIpO1xuICAgICAgICBoZWlnaHQ6ICgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplICogMik7XG4gICAgICAgIGJhY2tncm91bmQ6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuOHJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDAuN3JlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43cmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICB9XG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICAgICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktc3RhdGUtaG92ZXIsXG4gICAgICAgICYudWktc3RhdGUtYWN0aXZlLFxuICAgICAgICAmLnVpLXN0YXRlLWZvY3VzIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNzLXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxLjVyZW0gMCAxLjVyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0ge1xuICAgIG1hcmdpbjogMCAwLjRlbTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAzLjVlbTtcbiAgICBtaW4td2lkdGg6IDRlbTtcbiAgICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2xpbms6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzE0MmI5ZTsgfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01NSUsIC01NSUsIDApO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDU1JTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0tZmIgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAwLjllbTtcbiAgICAgIGhlaWdodDogMS44ZW07IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLXR3IC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMi41ZW07XG4gICAgICBoZWlnaHQ6IDJlbTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0teXQgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAxLjhlbTtcbiAgICAgIGhlaWdodDogMi4xZW07IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLWdwIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMmVtO1xuICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwLjFlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtanVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X3BhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyIDAgJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tbWFyZ2luOiAwIDAuNGVtICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaGVpZ2h0OiAzLjVlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLW1pbi13aWR0aDogNGVtICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYmFja2dyb3VuZDogJGNvbG9yX21pbmVzaGFmdCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb246IGFic29sdXRlICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTUlLCAtNTUlLCAwKSAhZGVmYXVsdDtcblxuQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uID09IGFic29sdXRlIHtcbiAgICAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApICFkZWZhdWx0O1xufVxuXG4uI3skbnN9c29jaWFsLW1lZGlhLWxpc3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgZGlzcGxheTogJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXk7XG4gICAgcGFkZGluZzogJHNvY2lhbC1tZWRpYS1saXN0X3BhZGRpbmc7XG5cbiAgICBAaWYgJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXkgPT1cbiAgICAgICAgZmxleCBvclxuICAgICAgICAkc29jaWFsLW1lZGlhLWxpc3RfZGlzcGxheSA9PVxuICAgICAgICBpbmxpbmUtZmxleFxuICAgIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkc29jaWFsLW1lZGlhLWxpc3RfZmxleC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkc29jaWFsLW1lZGlhLWxpc3RfZmxleC1hbGlnbi1pdGVtcztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLW1hcmdpbjtcbiAgICAgICAgcGFkZGluZzogJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1kaXNwbGF5O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaGVpZ2h0O1xuICAgICAgICBtaW4td2lkdGg6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLW1pbi13aWR0aDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLXRyYW5zaXRpb247XG5cbiAgICAgICAgQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhvdmVyLWJhY2tncm91bmQgIT1cbiAgICAgICAgICAgICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmRcbiAgICAgICAge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb247XG4gICAgICAgIHRyYW5zZm9ybTogJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtO1xuXG4gICAgICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbiA9PSBhYnNvbHV0ZSB7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDU1JTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS1mYiAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAwLjllbTtcbiAgICAgICAgICAgIGhlaWdodDogMS44ZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tdHcgJiB7XG4gICAgICAgICAgICB3aWR0aDogMi41ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS15dCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjhlbTtcbiAgICAgICAgICAgIGhlaWdodDogMi4xZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tZ3AgJiB7XG4gICAgICAgICAgICB3aWR0aDogMmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjFlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3Mtc3Rhci1yYXRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDcuMnJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXN1bW1hcnkgLmNzLXN0YXItcmF0aW5nX19zdGFycyB7XG4gICAgICB3aWR0aDogMTByZW07XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1yZXZpZXcgLmNzLXN0YXItcmF0aW5nX19zdGFycyB7XG4gICAgICB3aWR0aDogNy4ycmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fc3Rhci0tYWN0aXZlIHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWhhbGYtYWN0aXZlIC5zdGFyLWxlZnQge1xuICAgICAgZmlsbDogI2ZjYjczOTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fc3Rhci0taGFsZi1hY3RpdmUgLnN0YXItcmlndGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1zdGFyLXJhdGluZy0tc3VtbWFyeSAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIge1xuICAgICAgd2lkdGg6IDJyZW07IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXJldmlldyAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIge1xuICAgICAgd2lkdGg6IDEuNXJlbTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fc3RhciBwYXRoIHtcbiAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgIGZpbGw6IGluaGVyaXQ7IH1cbiAgLmNzLXN0YXItcmF0aW5nIGltZyB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbGw6ICM4ODg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3Rhci0tYWN0aXZlIHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciBwYXRoIHtcbiAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgIGZpbGw6IGluaGVyaXQ7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcjpudGgtbGFzdC1vZi10eXBlKCkge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyczpob3ZlciAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXJzIGxhYmVsOmhvdmVyIH4gbGFiZWwgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDEuNXJlbSAqIDAuMSk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtLWNvdW50OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnKCc7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtLWNvdW50OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcpJzsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fdGV4dC0tZW1wdHkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlIC5jcy1zdGFyLXJhdGluZ19fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19sYWJlbCB7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKDEuNXJlbSAqIDAuMik7IH1cblxuLnJldmlldy1jb250cm9sLXZvdGUge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMSB7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMTpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTIge1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0zIHtcbiAgICB6LWluZGV4OiAzOyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0zOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNCB7XG4gICAgei1pbmRleDogNDsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNDpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTUge1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTU6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIGxhYmVsIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5yZXZpZXctY29udHJvbC12b3RlIGxhYmVsIHtcbiAgICAgICAgd2lkdGg6IDIuNnJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC42cmVtOyB9IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbDpsYXN0LWNoaWxkIHtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIGxhYmVsIHNwYW4ge1xuICAgICAgY2xpcDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXJzIHtcbiAgbWFyZ2luLXRvcDogLTNweDsgfVxuXG4uY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gIGZpbGw6IHRyYW5zcGFyZW50O1xuICBzdHJva2U6ICMzMzMzMzM7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXItLWFjdGl2ZSB7XG4gICAgZmlsbDogIzAwMzY2NjsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciAuc3Rhci1yaWdodCB7XG4gICAgc3Ryb2tlOiBub25lOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyczpob3ZlciAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgZmlsbDogIzAwMzY2NjsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcnMgbGFiZWw6aG92ZXIgfiBsYWJlbCAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgZmlsbDogdHJhbnNwYXJlbnQ7IH1cblxuLmNzLXN0YXItcmF0aW5nX19zdGFycyB7XG4gIHdpZHRoOiA5LjJyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07IH1cblxuLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gIHN0cm9rZTogIzMzMzMzMztcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgd2lkdGg6IDIuNXJlbSAhaW1wb3J0YW50OyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fc3RhciAuc3Rhci1yaWdodCB7XG4gICAgc3Ryb2tlOiBub25lOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fc3Rhci0tYWN0aXZlIHtcbiAgICBmaWxsOiAjMDAzNjY2OyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fc3Rhci0taGFsZi1hY3RpdmUgLnN0YXItbGVmdCB7XG4gICAgZmlsbDogcmdiYSgwLCA1NCwgMTAyLCAwLjUpOyB9XG5cbi5jcy1zdGFyLXJhdGluZ19fdGV4dCB7XG4gIG1pbi13aWR0aDogNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5jcy1zdGFyLXJhdGluZ19fbGFiZWwge1xuICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS40cmVtICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODc4Nzg3ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ibG9jazogMC4yNWVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4kc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlOiAkY29sb3JfcmV2aWV3LWFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTogJGNvbG9yX3Jldmlldy1pbmFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItYWN0aXZlOiAkY29sb3JfcmV2aWV3LWFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItaW5hY3RpdmU6ICRjb2xvcl9yZXZpZXctY29udHJvbC1pbmFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ190ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIGZsZXgganVzdGlmaWNhdGlvbiBvZiBzdGFyc1xuJHN0YXItcmF0aW5nX2p1c3RpZnk6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHdpZHRoIG9mIGEgc2luZ2xlIHN0YXJcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlld3Mtc3VtbWFyeTogMnJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldzogMS41cmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm06IDJyZW0gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHdpZHRoIG9mIHJldmlldyBzdGFycyBjb250YWluZXJcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtZGVmYXVsdDogNy4ycmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXdzLXN1bW1hcnk6IDEwcmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXc6IDcuMnJlbSAhZGVmYXVsdDtcbi8vIFBhZGRpbmcgZm9yIHJldmlldyBmb3JtIHN0YXJzXG4kc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtOiAwLjZyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTogMXJlbSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgcGFkZGluZyBydWxlc2V0XG4kc3Rhci1yYXRpbmdfcGFkZGluZy1kZWZhdWx0OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3cy1zdW1tYXJ5OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3LWZvcm06IDAgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHNjb3JlIGFuZCBjb3VudCB0ZXh0ZmllbGQgZGlzcGxheSBydWxlc2V0XG4kc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXBkcDogZmFsc2UgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXRpbGU6IGZhbHNlICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBkaXNwbGF5IHJ1bGVzZXQgZm9yIFwicmV2aWV3XCIgYW5ub3RhdGlvblxuJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi1wZHA6IGZhbHNlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi10aWxlOiB0cnVlICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyByYXRpbmcgbGFiZWwgZGV0YWlsc1xuJHN0YXItcmF0aW5nX2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtZm9udC1zaXplOiAwLjc1ZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4uI3skbnN9c3Rhci1yYXRpbmcge1xuICAgICRyb290OiAmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICZfX3N0YXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLWRlZmF1bHQ7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLWRlZmF1bHQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHN0YXItcmF0aW5nX2p1c3RpZnk7XG5cbiAgICAgICAgI3skcm9vdH0tLXN1bW1hcnkgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tcmV2aWV3ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3O1xuICAgICAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhbGYtYWN0aXZlIHtcbiAgICAgICAgICAgIC5zdGFyLWxlZnQge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zdGFyLXJpZ3RoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc3VtbWFyeSAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tcmV2aWV3ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldztcbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbC1vcGFjaXR5OiAxO1xuICAgICAgICAgICAgZmlsbDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fZm9ybS1zdGFycyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICB9XG5cbiAgICAmX19mb3JtLXN0YXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGZpbGw6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1sYXN0LW9mLXR5cGUoKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2Zvcm0tc3RhcnM6aG92ZXIgJiB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mb3JtLXN0YXJzIGxhYmVsOmhvdmVyIH4gbGFiZWwgJiB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRzdGFyLXJhdGluZ190ZXh0LWNvbG9yO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMSk7XG5cbiAgICAgICAgJi0tY291bnQge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLXRleHQtcGRwIHtcbiAgICAgICAgICAgIC4jeyRuc31idXlib3ggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXRpbGUge1xuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS1hbm5vdGF0aW9uLXBkcCB7XG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi10aWxlIHtcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkc3Rhci1yYXRpbmdfbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzdGFyLXJhdGluZ19sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRzdGFyLXJhdGluZ19sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMik7XG4gICAgfVxufVxuXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgIC5yYXRpbmctI3skaX0ge1xuICAgICAgICAgICAgei1pbmRleDogI3skaX07XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm0tbW9iaWxlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS12aXNpYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3N0YXItcmF0aW5nL3N0YXItcmF0aW5nLnNjc3NcIjtcblxuLiN7JG5zfXN0YXItcmF0aW5nIHtcbiAgICAkcm9vdDogJjtcbiAgICAmX19mb3JtLXN0YXJzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICB9XG4gICAgJl9fZm9ybS1zdGFyIHtcbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3JfYmx1ZTtcbiAgICAgICAgfVxuICAgICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgICAgc3Ryb2tlOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICAuc3Rhci1yaWdodCB7XG4gICAgICAgICAgICBzdHJva2U6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgI3skcm9vdH1fX2Zvcm0tc3RhcnM6aG92ZXIgJiB7XG4gICAgICAgICAgICBmaWxsOiAka21hX2NvbG9yX2JsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fZm9ybS1zdGFycyBsYWJlbDpob3ZlciB+IGxhYmVsICYge1xuICAgICAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fc3RhcnMge1xuICAgICAgICB3aWR0aDogOS4ycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgIH1cbiAgICAmX19zdGFyIHtcbiAgICAgICAgZmlsbDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHN0cm9rZTogJGttYV9jb2xvcl9ncmV5LTgwMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgd2lkdGg6IDIuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAuc3Rhci1yaWdodCB7XG4gICAgICAgICAgICBzdHJva2U6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGZpbGw6ICRrbWFfY29sb3JfYmx1ZTtcbiAgICAgICAgfVxuICAgICAgICAmLS1oYWxmLWFjdGl2ZSB7XG4gICAgICAgICAgICAuc3Rhci1sZWZ0IHtcbiAgICAgICAgICAgICAgICBmaWxsOiByZ2JhKCRrbWFfY29sb3JfYmx1ZSwgMC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190ZXh0IHtcbiAgICAgICAgbWluLXdpZHRoOiA0cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9ncmV5LTUwMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYmxvY2s6IDAuMjVlbTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSB7XG4gIGZvbnQtc2l6ZTogMC40NWVtO1xuICBtaW4taGVpZ2h0OiBjYWxjKCAxICogKDIuOGVtICsgOHB4KSk7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9IH1cbiAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXTplbXB0eSB7XG4gICAgb3BhY2l0eTogMDsgfVxuXG4uc3dhdGNoLW9wdCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07IH1cbiAgLnN3YXRjaC1vcHQgLm1hZ2UtZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDEwcmVtICsgMS41cmVtKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc3dhdGNoLW9wdCAubWFnZS1lcnJvciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCAxMXJlbSArIDEuNXJlbSk7IH0gfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc3dhdGNoLWF0dHJpYnV0ZS5zd2F0Y2gtbGF5ZXJlZCB7XG4gICAgZm9udC1zaXplOiAwLjhlbTsgfVxuICAuc3dhdGNoLWF0dHJpYnV0ZSArIC5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICBtYXJnaW4tdG9wOiAwLjhlbTsgfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKCAyLjhlbSAtIDZweCArIDAuMWVtKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgd2lkdGg6IDEwcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgICAgIHdpZHRoOiAxMXJlbTsgfSB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsOmFmdGVyIHtcbiAgICBjb250ZW50OiAnOiAnO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCAyLjhlbSAtIDZweCArIDAuMWVtKTsgfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1zZWxlY3RlZC1vcHRpb24ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqLyB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1sZWZ0OiAtMC4yZW07XG4gIG1hcmdpbi1ib3R0b206IC0wLjRlbTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiBjYWxjKCAxMDAlIC0gMS41cmVtIC0gMTByZW0pOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoIDEwMCUgLSAxLjVyZW0gLSAxMXJlbSk7IH0gfVxuXG4uc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQge1xuICBmb250LXNpemU6IDFlbTsgfVxuICAuc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQ6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uc3dhdGNoLW9wdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAzLjJlbTtcbiAgaGVpZ2h0OiAyLjhlbTtcbiAgcGFkZGluZzogMCAwLjM1ZW07XG4gIG1hcmdpbjogMXB4IGNhbGMoIDFweCArIDAuMmVtKSBjYWxjKDFweCArIDAuNGVtKTtcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgYm9yZGVyOiAzcHggc29saWQgI2YwZjBmMDtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoIDIuOGVtIC0gNnB4ICsgMC4xZW0pO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgYm9yZGVyLWNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcywgY29sb3IgMC4zcztcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuc3dhdGNoLW9wdGlvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC00cHg7XG4gICAgbGVmdDogLTRweDtcbiAgICByaWdodDogLTRweDtcbiAgICBib3R0b206IC00cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzOyB9XG4gIC5zd2F0Y2gtb3B0aW9uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3N3YXRjaGVzL2Rpc2FibGVkLnN2ZykgcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjUpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IGNhbGMoMi44ZW0gLSAxLjJlbSk7XG4gICAgaGVpZ2h0OiBjYWxjKDIuOGVtIC0gMS4yZW0pO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC42ZW07XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQsIC5zd2F0Y2gtb3B0aW9uLmJpcy1zZWxlY3RlZCB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQ6YmVmb3JlLCAuc3dhdGNoLW9wdGlvbi5iaXMtc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNDJiOWU7IH1cbiAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0OmJlZm9yZSwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkudGV4dDpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5pbWFnZTphZnRlciwgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5jb2xvcjphZnRlciwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuaW1hZ2U6YWZ0ZXIsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLmNvbG9yOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydDphZnRlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjU1KSB1cmwoLi4vaW1hZ2VzL2ljb25zL3B1c2gtbm90aWZpY2F0aW9uL2ljb25fbm90aWZpY2F0aW9uLW91dGxpbmUuc3ZnKSBjZW50ZXIvNjQlIG5vLXJlcGVhdDtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQudGV4dCB7XG4gICAgcGFkZGluZy1yaWdodDogMmVtOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydC50ZXh0OmFmdGVyIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMC4zNWVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnN3YXRjaC1vcHRpb246bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pOmhvdmVyLCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0OmhvdmVyIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuc3dhdGNoLW9wdGlvbjpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKTpub3QoW2Rpc2FibGVkXSk6aG92ZXI6YmVmb3JlLCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0OmhvdmVyOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzI0ZGNmOyB9XG5cbi5zd2F0Y2gtaW5wdXQge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqL1xuICBsZWZ0OiAtMTAwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc3dhdGNoLW1vcmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAsXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGNvbG9yOiAjODg4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogMC41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMnJlbTtcbiAgYm9yZGVyOiAwLjFyZW0gc29saWQgI2RjZGNkYzsgfVxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwIC5pbWFnZSxcbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDExMHB4O1xuICAgIGhlaWdodDogMTEwcHg7IH1cbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcCAuY29ybmVyOmFmdGVyLFxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQgLmNvcm5lcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMC4xcmVtIHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJpZ2h0OiAwLjFyZW0gc29saWQgI2RjZGNkYztcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCAtMC41cmVtICsgMC4xcmVtKTsgfVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwge1xuICBtYXgtd2lkdGg6IDQwcmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCAubWFnZS1lcnJvciB7XG4gICAgcGFkZGluZy10b3A6IDAuOHJlbTsgfVxuICAubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCAuc3dhdGNoLWF0dHJpYnV0ZSArIC5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3Quc2Nzcyc7XG5cbiRzd2F0Y2hlcy0tY2xpY2thYmxlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NhdGFsb2csXG4gICAgY29uZmlndXJhYmxlX3RpbGVfc3dhdGNoZXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuLy8gS2VlcCBpbiBzeW5jIHdpdGggcXVhbnRpdHkgd3JhcHBlciBpbiBidXlib3guXG4kc3dhdGNoZXNfbGFiZWwtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cDogMTFyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtZ3V0dGVyOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtZm9udC1zaXplOiAxLjFlbSAhZGVmYXVsdDtcbi8vIEtlZXAgaW4gc3luYyB3aWR0aCBxdWFudGl0eSB3cmFwcGVyIGluIGJ1eWJveCBlbmQuXG5cbi8vIFNjZW5hcmlvIHdpdGggc3dhdGNoZXMgYmVsb3cgbGFiZWwsIHdoaWNoIGlzIDEwMCUgd2lkZVxuLy8gd2l0aCB0aGlzIHZhcmlhYmxlIHNldCB0byB0cnVlICRzd2F0Y2hlc19sYWJlbC13aWR0aFxuLy8gYW5kICRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXAgd2lsbCBiZSBvdmVycmlkZW4gLSBhbHdheXMgMTAwJSB3aWR0aFxuJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWw6IGZhbHNlICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfZGlzYWJsZS1zaG93LW1vcmU6IHRydWUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWd1dHRlcjogMC40ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWhlaWdodDogMi44ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXdpZHRoOiAzLjJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZzogMCAwLjM1ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0OiAwLjFlbSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoOiAzcHggIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggc29saWRcbiAgICAkc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggc29saWRcbiAgICAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtLWJhY2tpbnN0b2NrLWJhY2tncm91bmQ6IHJnYmEoJGNvbG9yX2JhY2tncm91bmQtNjAwLCAwLjU1KVxuICAgIHVybCguLi9pbWFnZXMvaWNvbnMvcHVzaC1ub3RpZmljYXRpb24vaWNvbl9ub3RpZmljYXRpb24tb3V0bGluZS5zdmcpXG4gICAgY2VudGVyLzY0JSBuby1yZXBlYXQgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDogKFxuICAgICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICsgJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoXG4pICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWRcbiAgICAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWRcbiAgICAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19yb3dzLWd1dHRlcjogJHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgKiAyICFkZWZhdWx0O1xuXG4kc3dhdGNoZXMtLXRpbGVfZm9udC1zaXplOiAwLjQ1ZW0gIWRlZmF1bHQ7XG4vLyBUZWxscyBob3cgbWFueSByb3dzIG9mIHN3YXRjaGVzIHdpbGwgYmUgZGlzcGxheWVkIGluc2lkZSB0aWxlIGNvbXBvbmVudC5cbiRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93czogMSAhZGVmYXVsdDtcbi8vIENhbGN1bGF0ZXMgaG93IG11Y2ggc3BhY2Ugc2hvdWxkIGJlIHJlc2VydmVkIGluIHRpbGUgZm9yIHN3YXRjaGVzIHRvIHByZXZlbnQgY29udGVudCBmcm9tIGp1bXBpbmcuXG4kc3dhdGNoZXMtLXRpbGVfbWluLWhlaWdodDogY2FsYyhcbiAgICAjeyRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93c30gKiAoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQgKlxuICAgICAgICAgICAgICAgIDJ9KVxuKSAhZGVmYXVsdDtcbiRzd2F0Y2hlcy0tcGRwX2ZvbnQtc2l6ZTogMC45ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXMtLWZpbHRlcnNfZm9udC1zaXplOiAwLjhlbSAhZGVmYXVsdDtcblxuLy8gVG9vbHRpcHMgZm9yIHN3YXRjaGVzXG4kc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItcmFkaXVzOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZTogMC4xcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1taW4td2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaG93OiB0cnVlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14OiA1MCUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC10ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgbWVkaWEsXG4gICAgaW1hZ2VzLFxuICAgIGltYWdlLFxuICAgIHN3YXRjaF90aHVtYlxuKSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLXdpZHRoOiAje21hcC1nZXQoXG4gICAgICAgICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhLFxuICAgICAgICB3aWR0aFxuICAgICl9ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWhlaWdodDogI3ttYXAtZ2V0KFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YSxcbiAgICAgICAgaGVpZ2h0XG4gICAgKX0gIWRlZmF1bHQ7XG5cbi8vIENvbnRhaW5lciBzZWxlY3RvciBmb3Igc3dhdGNoZXMgaW4gdGlsZSBhbmQgZGFpbHkgZGVhbCB0ZWFzZXIuXG5bY2xhc3NePSdzd2F0Y2gtb3B0LSddIHtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tdGlsZV9mb250LXNpemU7XG4gICAgbWluLWhlaWdodDogJHN3YXRjaGVzLS10aWxlX21pbi1oZWlnaHQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBAaWYgJHN3YXRjaGVzLS1jbGlja2FibGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuXG4vLyBDb250YWluZXIgc2VsZWN0b3IgZm9yIHN3YXRjaGVzIG9uIFBEUFxuLnN3YXRjaC1vcHQge1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS1wZHBfZm9udC1zaXplO1xuXG4gICAgLy8gU2VsZWN0b3IgZm9yIGVycm9yIGNvbnRhaW5lciB3aGVuIHN3YXRjaGVzIGFyZSByZXF1aXJlZCBidXQgbm90IHNlbGVjdGVkLlxuICAgIC5tYWdlLWVycm9yIHtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygjeyRzd2F0Y2hlc19sYWJlbC13aWR0aH0gKyAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9KTtcblxuICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwfSArICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBUaGUgb25seSBzZWxlY3RvciB3ZSBoYXZlIHRvIHRlbGwgdGhhdCBzd2F0Y2hlcyBhcmUgaW5zaWRlIGFmdGVyc2VhcmNoIG5hdmlnYXRpb24uXG4gICAgJi5zd2F0Y2gtbGF5ZXJlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS1maWx0ZXJzX2ZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmICsgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzd2F0Y2hlc19yb3dzLWd1dHRlcjtcbiAgICB9XG59XG5cbi5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArICN7JHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldH1cbiAgICApO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAkc3dhdGNoZXNfbGFiZWwtZm9udC1zaXplO1xuICAgIHdpZHRoOiAkc3dhdGNoZXNfbGFiZWwtd2lkdGg7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3dhdGNoZXNfbGFiZWwtZ3V0dGVyO1xuXG4gICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgd2lkdGg6ICRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXA7XG5cbiAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnOiAnO1xuICAgICAgICBsaW5lLWhlaWdodDogY2FsYyhcbiAgICAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gI3skc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCAqIDJ9ICtcbiAgICAgICAgICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1zZWxlY3RlZC1vcHRpb24ge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tbGVmdDogLSN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfTtcbiAgICBtYXJnaW4tYm90dG9tOiAtI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn07XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLnN3YXRjaC1vcHQgJiB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICAgICAgICAxMDAlIC0gI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSAtICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRofVxuICAgICAgICApO1xuXG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLSAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9IC0gI3skc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBFbGVtZW50IGFkZGVkIGFzIGEgcGFyZW50IG9mIC5zd2F0Y2gtb3B0aW9uIGluIGZpbHRlcnMuXG4uc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4td2lkdGg6ICRzd2F0Y2hlc19zd2F0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dhdGNoZXNfc3dhdGNoLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aH0gY2FsYyhcbiAgICAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRofSArICN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfVxuICAgICAgICApIGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGh9ICsgI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn0pO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlcjtcbiAgICBjb2xvcjogJHN3YXRjaGVzX3N3YXRjaC1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gI3skc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCAqIDJ9ICsgI3skc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0fVxuICAgICk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgYm9yZGVyLWNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcyxcbiAgICAgICAgY29sb3IgMC4zcztcblxuICAgIEBpZiAkc3dhdGNoZXNfZGlzYWJsZS1zaG93LW1vcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgbGVmdDogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIHJpZ2h0OiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgYm90dG9tOiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3M7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29ucy9zd2F0Y2hlcy9kaXNhYmxlZC5zdmcpXG4gICAgICAgICAgICByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTYwMCwgMC41KSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAxLjJlbSk7XG4gICAgICAgIGhlaWdodDogY2FsYygjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtIDEuMmVtKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAwLjZlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICYuc2VsZWN0ZWQsXG4gICAgJi5iaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJvcmRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYmFja2dyb3VuZDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLW91dGxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCksXG4gICAgJltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgJi50ZXh0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtb3BhY2l0eTtcbiAgICAgICAgICAgIGNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaW1hZ2UsXG4gICAgICAgICYuY29sb3Ige1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tYmFja2luc3RvY2stYmFja2dyb3VuZDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLnRleHQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMmVtO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KCRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZywgJ3JpZ2h0Jyk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKTpub3QoW2Rpc2FibGVkXSksXG4gICAgJi5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLW91dGxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zd2F0Y2gtaW5wdXQge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuXG4gICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdHlsZXMgZnJvbSBNYWdlbnRvLlxuICAgIC8vIEl0IHByZXZlbnRzIGtleWJvYXJkIG9uIG1vYmlsZSB0byBiZSBzaG93biBhZnRlciBzd2F0Y2ggaXMgY2xpY2tlZFxuICAgIGxlZnQ6IC0xMDAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnN3YXRjaC1tb3JlIHtcbiAgICBAaWYgJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAsXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1hcmdpbjogJHN3YXRjaGVzX3Rvb2x0aXAtbWFyZ2luO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1yYWRpdXM7XG4gICAgY29sb3I6ICRzd2F0Y2hlc190b29sdGlwLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC1mb250LXdlaWdodDtcbiAgICBwYWRkaW5nOiAkc3dhdGNoZXNfdG9vbHRpcC1wYWRkaW5nO1xuICAgIHRleHQtYWxpZ246ICRzd2F0Y2hlc190b29sdGlwLXRleHQtYWxpZ247XG4gICAgbWluLXdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC1taW4td2lkdGg7XG5cbiAgICBAaWYgKFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgMCBhbmRcbiAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAnbm9uZSdcbiAgICApIHtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZVxuICAgICAgICAgICAgc29saWRcbiAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAuaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtd2lkdGggKyAncHgnO1xuICAgICAgICBoZWlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1oZWlnaHQgKyAncHgnO1xuICAgIH1cblxuICAgIC5jb3JuZXIge1xuICAgICAgICBAaWYgKCRzd2F0Y2hlc190b29sdGlwLWFycm93LXNob3cpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzd2F0Y2hlc190b29sdGlwLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgbGVmdDogJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctb2Zmc2V0LXg7XG4gICAgICAgICAgICAgICAgQGlmICh1bml0KCRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14KSA9PSAnJScpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0jeyRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14fSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgICAgICAgICAgICAgMCBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAgICAgICAgICAgICAnbm9uZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICAtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplIC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAyfSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLSN7JHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZSAvIDJ9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCB7XG4gICAgbWF4LXdpZHRoOiA0MHJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBcbiAgICAubWFnZS1lcnJvciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjhyZW07XG4gICAgfVxuXG4gICAgLnN3YXRjaC1hdHRyaWJ1dGUgKyAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy10b3BiYXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXRvcGJhciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgei1pbmRleDogMzAyOyB9IH1cbiAgLmNzLXRvcGJhcl9fd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAyLjdyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXRvcGJhcl9fd3JhcHBlciB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9IH1cbiAgLmNzLXRvcGJhcl9faXRlbSB7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy10b3BiYXJfX2l0ZW0tLXVzcHMge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgICAgLmNzLXRvcGJhcl9faXRlbS0tdXNwcyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmNzLXRvcGJhcl9faXRlbS0taG90bGluZSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleDogMTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAuY3MtdG9wYmFyX19pdGVtLS1sYW5ndWFnZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLXRvcGJhcl9fbGlzdCxcbiAgLmNzLXRvcGJhcl9faXRlbSA+IHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGhlaWdodDogMi43cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtdG9wYmFyX19saXN0LWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTtcbiAgICAgIHBhZGRpbmc6IDAgMC4zcmVtIDAgMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtdG9wYmFyX19saXN0LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nOiAwIDEuM3JlbSAwIDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMS43cmVtOyB9IH1cbiAgICAuY3MtdG9wYmFyX19saXN0LWl0ZW06bm90KDpsYXN0LWNoaWxkKTpiZWZvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJvcmRlci1yaWdodDogMC4ycmVtIHNvbGlkICNmZmY7IH1cbiAgLmNzLXRvcGJhcl9fdGV4dCB7XG4gICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLXRvcGJhcl9fbGluayB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07IH1cbiAgICAuY3MtdG9wYmFyX19saW5rLCAuY3MtdG9wYmFyX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtdG9wYmFyX19saW5rOmhvdmVyLCAuY3MtdG9wYmFyX19saW5rOmZvY3VzLCAuY3MtdG9wYmFyX19saW5rOmFjdGl2ZSwgLmNzLXRvcGJhcl9fbGluazp2aXNpdGVkOmhvdmVyLCAuY3MtdG9wYmFyX19saW5rOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICMxNDJiOWU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLXRvcGJhcl9faG90bGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy10b3BiYXJfX3Bob25lLW51bWJlciB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTsgfVxuICAgIC5jcy10b3BiYXJfX3Bob25lLW51bWJlciwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6aG92ZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjpmb2N1cywgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOmFjdGl2ZSwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOnZpc2l0ZWQ6aG92ZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5jcy1jb250YWluZXItLXRvcC1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cblxuLmNzLWNvbnRhaW5lci0tdG9wLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgLmNzLWNvbnRhaW5lci0tdG9wLWJhciAuY3MtdG9wYmFyIHtcbiAgICBtYXgtd2lkdGg6IDE2MHJlbTtcbiAgICB6LWluZGV4OiA2OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc5Ljk5ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLXRvcC1iYXIgLmNzLXRvcGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICAuY3MtY29udGFpbmVyLS10b3AtYmFyIC5jcy10b3BiYXJfX3dyYXBwZXIge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmNzLWNvbnRhaW5lci0tdG9wLWJhciAuY3MtdG9wYmFyX19pdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc5Ljk5ZW0pIHtcbiAgICAgICAgLmNzLWNvbnRhaW5lci0tdG9wLWJhciAuY3MtdG9wYmFyX19pdGVtIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lOyB9IH1cbiAgICAuY3MtY29udGFpbmVyLS10b3AtYmFyIC5jcy10b3BiYXIgZGl2W2RhdGEtY29udGVudC10eXBlPXRleHRdIHAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgIG1heC1oZWlnaHQ6IDQwcHg7IH1cbiAgICAuY3MtY29udGFpbmVyLS10b3AtYmFyIC5jcy10b3BiYXIgZGl2W2RhdGEtY29udGVudC10eXBlPXRleHRdIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDMwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiAzMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3B4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiR0b3BiYXJfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdG9wYmFyX2hlaWdodDogMi43cmVtICFkZWZhdWx0O1xuXG4kdG9wYmFyX2l0ZW0tZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kdG9wYmFyX2l0ZW0tdGV4dC1jb2xvcjogJGNvbG9yX21pbmVzaGFmdCAhZGVmYXVsdDtcbiR0b3BiYXJfZW5hYmxlLWJvcmRlcnM6IHRydWUgIWRlZmF1bHQ7XG4kdG9wYmFyX2l0ZW0tYm9yZGVyOiAwLjJyZW0gc29saWQgJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvcjogJGNvbG9yX2JsYWNrICFkZWZhdWx0O1xuXG4kdG9wYmFyX2xpbmstY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kdG9wYmFyX2xpbmstY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kdG9wYmFyX2xpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiR0b3BiYXJfbGluay1ob3Zlci1kZWNvcmF0aW9uOiAkdG9wYmFyX2xpbmstZGVjb3JhdGlvbiAhZGVmYXVsdDtcblxuJGNvbnRhaW5lcl9iYWNrZ3JvdW5kLXRvcC1iYXI6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfXRvcGJhciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyX2JhY2tncm91bmQ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6ICR0b3BiYXJfaXRlbS1mb250LXNpemU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHotaW5kZXg6IDMwMjtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogJHRvcGJhcl9oZWlnaHQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgY29sb3I6ICR0b3BiYXJfaXRlbS10ZXh0LWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICYtLXVzcHMge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhvdGxpbmUge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGFuZ3VhZ2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCxcbiAgICAmX19pdGVtID4gdWwge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2xpc3QtaXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogJHRvcGJhcl9oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAuM3JlbSAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuM3JlbSAwIDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHRvcGJhcl9lbmFibGUtYm9yZGVycykge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkdG9wYmFyX2l0ZW0tYm9yZGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBjb2xvcjogJHRvcGJhcl9pdGVtLXRleHQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAkY29sb3I6ICR0b3BiYXJfbGluay1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJHRvcGJhcl9saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgJGRlY29yYXRpb246ICR0b3BiYXJfbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICR0b3BiYXJfbGluay1ob3Zlci1kZWNvcmF0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07XG4gICAgfVxuXG4gICAgJl9faG90bGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcGhvbmUtbnVtYmVyIHtcbiAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICRjb2xvcjogJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvclxuICAgICAgICApO1xuXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45cmVtO1xuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tdG9wLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250YWluZXJfYmFja2dyb3VuZC10b3AtYmFyO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvdG9wYmFyL3RvcGJhci5zY3NzXCI7XG5cbi4jeyRuc31jb250YWluZXItLXRvcC1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG5cbiAgICAuI3skbnN9dG9wYmFyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAka21hX2NvbnRhaW5lcl9zaXplLWZ1bGw7XG4gICAgICAgIHotaW5kZXg6IDY7XG4gICAgXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxhcHRvcExnXCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgJl9faXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0yMDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BMZ1wiKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRpdltkYXRhLWNvbnRlbnQtdHlwZT10ZXh0XSB7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbmgxIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiA1LjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogNC4ycmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDMge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg0IHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDYge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5hLCBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlLCBhOnZpc2l0ZWQ6aG92ZXIsIGE6dmlzaXRlZDpmb2N1cyB7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxudWwsXG5vbCB7XG4gIG1hcmdpbjogMCAwIDIuNXJlbTtcbiAgcGFkZGluZzogMCAwIDAgNHJlbTsgfVxuICB1bCA+IGxpLFxuICBvbCA+IGxpIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbmgxIHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiA1LjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogNC4ycmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDMge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg0IHtcbiAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDYge1xuICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5hLCBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzMzMzMzMztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlLCBhOnZpc2l0ZWQ6aG92ZXIsIGE6dmlzaXRlZDpmb2N1cyB7XG4gIGNvbG9yOiAjMzMzMzMzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxudWwsXG5vbCB7XG4gIG1hcmdpbjogMCAwIDIuNXJlbTtcbiAgcGFkZGluZzogMCAwIDAgNHJlbTsgfVxuICB1bCA+IGxpLFxuICBvbCA+IGxpIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cbmJvZHkge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG5oMSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTEpO1xufVxuXG5oMiB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTIpO1xufVxuXG5oMyB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTMpO1xufVxuXG5oNCB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQpO1xufVxuXG5oNSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTUpO1xufVxuXG5oNiB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTYpO1xufVxuXG5hIHtcbiAgICBAaW5jbHVkZSBsaW5rKCk7XG59XG5cbnVsLFxub2wge1xuICAgIEBpbmNsdWRlIGxpc3QoKTtcblxuICAgID4gbGkge1xuICAgICAgICBAaW5jbHVkZSBsaXN0LWl0ZW0oKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LnNjc3MnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG5oMSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTEpO1xufVxuXG5oMiB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTIpO1xufVxuXG5oMyB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTMpO1xufVxuXG5oNCB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQpO1xufVxuXG5oNSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTUpO1xufVxuXG5oNiB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTYpO1xufVxuXG5hIHtcbiAgICBAaW5jbHVkZSBsaW5rKCk7XG59XG5cbnVsLFxub2wge1xuICAgIEBpbmNsdWRlIGxpc3QoKTtcblxuICAgID4gbGkge1xuICAgICAgICBAaW5jbHVkZSBsaXN0LWl0ZW0oKTtcbiAgICB9XG59XG5cbmJvZHkge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5jcy12aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqLyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbi4jeyRuc312aXN1YWxseS1oaWRkZW4ge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbjtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1zZWxlY3Qge1xuICBtaW4td2lkdGg6IDAuNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNTAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBvcGFjaXR5OiAwO1xuICBib3JkZXI6IG5vbmU7IH1cbiAgLmNzLXNlbGVjdC0tbW9iaWxlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA0OyB9XG5cbi5jcy1odG1sLXNlbGVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1pbi13aWR0aDogMTVyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHotaW5kZXg6IDI7IH1cbiAgLmNzLWh0bWwtc2VsZWN0Lm9wZW4ge1xuICAgIHotaW5kZXg6IDk5OyB9XG4gIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxM3JlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHotaW5kZXg6IDM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0LS1lcnJvciAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZjQ2NjY3O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0LS1vcGVuIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlcixcbiAgICAuY3MtaHRtbC1zZWxlY3Qub3BlbiAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMyNGRjZjtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDVkNWQ1OyB9XG4gIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci10ZXh0IHtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMnJlbTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6YmVmb3JlLCAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciwgcmlnaHQgMC4xNXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci1jYXJldC1hcnJvdzpob3ZlcjpiZWZvcmUsIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci1jYXJldC1hcnJvdzpob3ZlcjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0LS1vcGVuIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci1jYXJldC1hcnJvdzpiZWZvcmUsIC5jcy1odG1sLXNlbGVjdC0tb3BlbiAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjsgfVxuICAgIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci1jYXJldC1hcnJvdzpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgcmlnaHQ6IDEuN3JlbTsgfVxuICAgIC5jcy1odG1sLXNlbGVjdF9fdHJpZ2dlci1jYXJldC1hcnJvdzphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgcmlnaHQ6IDEuMnJlbTsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tb3BlbiAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3QtLW9wZW4gLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93OmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX21lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMyNGRjZjtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNXB4IDAgcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjIpO1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0LS1vcGVuIC5jcy1odG1sLXNlbGVjdF9fbWVudSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3QtLWF1dG9zdWdnZXN0Om5vdCguY3MtaHRtbC1zZWxlY3QtLW9wZW4pIC5jcy1odG1sLXNlbGVjdF9fbWVudSB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiBub25lOyB9XG4gIC5jcy1odG1sLXNlbGVjdF9fbWVudS1saXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1odG1sLXNlbGVjdF9fbWVudS1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItdG9wOiBub25lOyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0X19tZW51LWl0ZW0tLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1odG1sLXNlbGVjdF9fbWVudS1saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgIGhlaWdodDogMi44ZW07XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXIsIGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1odG1sLXNlbGVjdF9fbWVudS1pdGVtLS1zZWxlY3RlZCAuY3MtaHRtbC1zZWxlY3RfX21lbnUtbGluayB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzMjRkY2Y7IH1cbiAgICAuY3MtaHRtbC1zZWxlY3RfX21lbnUtbGluazpob3ZlciwgLmNzLWh0bWwtc2VsZWN0X19tZW51LWxpbms6Zm9jdXMsXG4gICAgLmNzLWh0bWwtc2VsZWN0X19tZW51LWl0ZW0tLWZvY3VzZWQgLmNzLWh0bWwtc2VsZWN0X19tZW51LWxpbmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX21lbnUtaXRlbS10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbiAgLmNzLWh0bWwtc2VsZWN0X190ZXh0LWltYWdlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtaHRtbC1zZWxlY3RfX3RodW1ibmFpbCB7XG4gICAgd2lkdGg6IDIuNXJlbTtcbiAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLWh0bWwtc2VsZWN0LS1hdXRvc3VnZ2VzdCB7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tYXV0b3N1Z2dlc3QgLmNzLWh0bWwtc2VsZWN0X19tZW51IHtcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgIG1heC1oZWlnaHQ6IDIyMHB4OyB9XG4gICAgLmNzLWh0bWwtc2VsZWN0LS1hdXRvc3VnZ2VzdCAuY3MtaHRtbC1zZWxlY3RfX21lbnUtbGlzdCB7XG4gICAgICBtYXgtaGVpZ2h0OiAyMjBweDsgfVxuICAgIC5jcy1odG1sLXNlbGVjdC0tYXV0b3N1Z2dlc3Q6bm90KC5jcy1odG1sLXNlbGVjdC0tYW5pbWF0ZSkgLmNzLWh0bWwtc2VsZWN0X19tZW51IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IG5vbmU7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtaHRtbC1zZWxlY3RfX21lbnUtaXRlbS0tc2VsZWN0ZWQgLmNzLWh0bWwtc2VsZWN0X19tZW51LWxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODc4Nzg3OyB9XG5cbi5jcy1odG1sLXNlbGVjdF9fbWVudS1saW5rOmhvdmVyLCAuY3MtaHRtbC1zZWxlY3RfX21lbnUtbGluazpmb2N1cyxcbi5jcy1odG1sLXNlbGVjdF9fbWVudS1pdGVtLS1mb2N1c2VkIC5jcy1odG1sLXNlbGVjdF9fbWVudS1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg3ODc4NzsgfVxuXG4uY3MtaHRtbC1zZWxlY3RfX21lbnUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDVkNWQ1OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluLnNjc3MnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuXG4kaHRtbC1zZWxlY3RfdHJpZ2dlci1mb250LXNpemU6ICRmaWVsZF9zZWxlY3QtZm9udC1zaXplICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItbGluZS1oZWlnaHQ6ICRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfdHJpZ2dlci1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItc2VsZWN0X2NvbG9yOiAkZmllbGRfc2VsZWN0LWNvbG9yICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItcGFkZGluZzogJGZpZWxkX3NlbGVjdC1wYWRkaW5nICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItcGFkZGluZy1yaWdodDogJGZpZWxkX3NlbGVjdC1wYWRkaW5nLXJpZ2h0ICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF90cmlnZ2VyLWJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXIgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfdHJpZ2dlci1ib3JkZXItYWN0aXZlOiAxcHggc29saWQgJGNvbG9yLXByaW1hcnlfNTAwICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X3RyaWdnZXItYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93ICFkZWZhdWx0O1xuXG4kaHRtbC1zZWxlY3RfY2FyZXQtY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X2NhcmV0LWFjdGl2ZS1jb2xvcjogJGNvbG9yLXByaW1hcnlfNTAwICFkZWZhdWx0O1xuXG4kaHRtbC1zZWxlY3RfaXRlbS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X2l0ZW0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGh0bWwtc2VsZWN0X2l0ZW0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF9pdGVtLXNlbGVjdGVkLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF9pdGVtLXNlbGVjdGVkLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRodG1sLXNlbGVjdF9tZW51LWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRodG1sLXNlbGVjdF9tZW51LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfbWVudS1ib3gtc2hhZG93OiAwIDFweCA1cHggMCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuMikgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfbWVudS1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbiRodG1sLXNlbGVjdF9pdGVtLWJvcmRlci10b3A6IG5vbmUgIWRlZmF1bHQ7XG4kaHRtbC1zZWxlY3RfaXRlbS1oZWlnaHQ6IDIuOGVtICFkZWZhdWx0O1xuXG4kaHRtbC1zZWxlY3RfZGlzYWJsZWQtb3BhY2l0eTogJGZpZWxkX3NlbGVjdC1kaXNhYmxlZC1vcGFjaXR5ICFkZWZhdWx0O1xuXG4vLyBzZWxlY3Rcbi8vIEN1c3RvbSBIVE1MIHNlbGVjdCB2ZXJzaW9uIG9mIG5hdGl2ZSBzZWxlY3Qgd2l0aCBuYXRpdmUgZmFsbGJhY2sgb24gbW9iaWxlc1xuLy9cbi8vIFNlZSBodHRwOi8vd2FycHNwaXJlLmNvbS9rc3MvIGZvciBkb2N1bWVudGF0aW9uIGd1aWRlbGluZXMuXG4vLyBWZXJzaW9uIDAuMC4xXG5cbi4jeyRuc31zZWxlY3Qge1xuICAgIG1pbi13aWR0aDogMC41cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmLS1tb2JpbGUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICB9XG59XG5cbi4jeyRuc31odG1sLXNlbGVjdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLXdpZHRoOiAxNXJlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAmLm9wZW4ge1xuICAgICAgICB6LWluZGV4OiA5OTtcbiAgICB9XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDEzcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXI6ICRodG1sLXNlbGVjdF90cmlnZ2VyLWJvcmRlcjtcbiAgICAgICAgcGFkZGluZzogJGh0bWwtc2VsZWN0X3RyaWdnZXItcGFkZGluZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGh0bWwtc2VsZWN0X3RyaWdnZXItcGFkZGluZy1yaWdodDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGh0bWwtc2VsZWN0X3RyaWdnZXItYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm94LXNoYWRvdzogJGh0bWwtc2VsZWN0X3RyaWdnZXItYm94LXNoYWRvdztcbiAgICAgICAgZm9udC1zaXplOiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1mb250LXNpemU7XG5cbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogJGh0bWwtc2VsZWN0X2Rpc2FibGVkLW9wYWNpdHk7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWVycm9yICYge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjZjQ2NjY3O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLW9wZW4gJixcbiAgICAgICAgI3skcm9vdH0ub3BlbiAmIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlcjogJGh0bWwtc2VsZWN0X3RyaWdnZXItYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRodG1sLXNlbGVjdF90cmlnZ2VyLWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RyaWdnZXItdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1zZWxlY3RfY29sb3I7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkaHRtbC1zZWxlY3RfdHJpZ2dlci1saW5lLWhlaWdodDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRodG1sLXNlbGVjdF90cmlnZ2VyLWZvbnQtd2VpZ2h0O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgZm9udC1zaXplOiAkZmllbGRfc2VsZWN0LWZvbnQtc2l6ZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgIH1cblxuICAgICZfX3RyaWdnZXItY2FyZXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIH1cblxuICAgICZfX3RyaWdnZXItY2FyZXQtYXJyb3cge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICdhcnJvdycsXG4gICAgICAgICAgICAkY29sb3I6ICRodG1sLXNlbGVjdF9jYXJldC1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1leHBhbmRlZDogJGh0bWwtc2VsZWN0X2NhcmV0LWFjdGl2ZS1jb2xvcixcbiAgICAgICAgICAgICR3aWR0aDogMC43cmVtLFxuICAgICAgICAgICAgJGhlaWdodDogMXB4LFxuICAgICAgICAgICAgJGFycm93LWRlZmF1bHQ6ICdkb3duJyxcbiAgICAgICAgICAgICRhcnJvdy1hY3RpdmU6ICd1cCcsXG4gICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDEuMnJlbSxcbiAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6IDEuN3JlbSxcbiAgICAgICAgICAgICRhY3RpdmUtc2VsZWN0b3I6ICcjeyRyb290fS0tb3BlbiAmJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX21lbnUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAkaHRtbC1zZWxlY3RfbWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci10b3A6ICRodG1sLXNlbGVjdF90cmlnZ2VyLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGh0bWwtc2VsZWN0X21lbnUtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRodG1sLXNlbGVjdF9tZW51LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRodG1sLXNlbGVjdF9tZW51LWJhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6ICRodG1sLXNlbGVjdF9tZW51LWJveC1zaGFkb3c7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxuICAgICAgICAjeyRyb290fS0tb3BlbiAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1hdXRvc3VnZ2VzdDpub3QoI3skcm9vdH0tLW9wZW4pICYge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lbnUtbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICB9XG5cbiAgICAmX19tZW51LWl0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci10b3A6ICRodG1sLXNlbGVjdF9pdGVtLWJvcmRlci10b3A7XG5cbiAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZW51LWxpbmsge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgICAgICBoZWlnaHQ6ICRodG1sLXNlbGVjdF9pdGVtLWhlaWdodDtcbiAgICAgICAgY29sb3I6ICRodG1sLXNlbGVjdF9pdGVtLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHRtbC1zZWxlY3RfaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyLCBjb2xvciAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgI3skcm9vdH1fX21lbnUtaXRlbS0tc2VsZWN0ZWQgJiB7XG4gICAgICAgICAgICBjb2xvcjogJGh0bWwtc2VsZWN0X2l0ZW0tc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHRtbC1zZWxlY3RfaXRlbS1zZWxlY3RlZC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgI3skcm9vdH1fX21lbnUtaXRlbS0tZm9jdXNlZCAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRodG1sLXNlbGVjdF9pdGVtLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBjb2xvcjogJGh0bWwtc2VsZWN0X2l0ZW0taG92ZXItY29sb3I7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVudS1pdGVtLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgJl9fdGV4dC1pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwge1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG5cbiAgICAmLS1hdXRvc3VnZ2VzdCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgI3skcm9vdH1fX21lbnUge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbWVudS1saXN0IHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoI3skcm9vdH0tLWFuaW1hdGUpICN7JHJvb3R9X19tZW51IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICd+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kaHRtbC1zZWxlY3RfaXRlbS1ob3Zlci1iYWNrZ3JvdW5kOiAka21hX2NvbG9yX3ByaW1hcnktNTAwO1xuJGh0bWwtc2VsZWN0X2l0ZW0tc2VsZWN0ZWQtYmFja2dyb3VuZDogJGttYV9jb2xvcl9wcmltYXJ5LTUwMDtcblxuLiN7JG5zfWh0bWwtc2VsZWN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX21lbnUtbGluayB7XG4gICAgICAgICN7JHJvb3R9X19tZW51LWl0ZW0tLXNlbGVjdGVkICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGh0bWwtc2VsZWN0X2l0ZW0tc2VsZWN0ZWQtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICN7JHJvb3R9X19tZW51LWl0ZW0tLWZvY3VzZWQgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaHRtbC1zZWxlY3RfaXRlbS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVudSB7XG4gICAgICAgIGJvcmRlcjogJGttYV9ib3JkZXJfYmFzZTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtdG9vbGJhciB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy10b29sYmFyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtdG9vbGJhcl9faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgIC5jcy10b29sYmFyX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgICAgLmNzLXRvb2xiYXJfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtLS1wYWdpbmF0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH0gfVxuICAgIC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLXRvb2xiYXJfX2l0ZW0tLW9mZmNhbnZhcyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICB6LWluZGV4OiAxOyB9XG4gIC5jcy10b29sYmFyIC5maWVsZCAubGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtdG9vbGJhciAuY3MtaHRtbC1zZWxlY3Qge1xuICAgIG1heC13aWR0aDogMjByZW07IH0gfVxuICAuY3MtdG9vbGJhciAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIge1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b24sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbltkaXNhYmxlZF0sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbiBzdmcge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsZWZ0OiAyLjNyZW07XG4gICAgbWF4LXdpZHRoOiAyLjNyZW07XG4gICAgbWF4LWhlaWdodDogMi4zcmVtOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLnRvb2xiYXItYW1vdW50IHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1zb3J0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXNvcnRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDVkNTsgfSB9XG4gIC5jcy1zb3J0ZXJfX2xhYmVsIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMCAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLmNzLXNvcnRlcl9fc2VsZWN0IHtcbiAgICB3aWR0aDogMHB4OyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1saW1pdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMXJlbSAwIDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1saW1pdGVyX19sYWJlbCxcbiAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5jcy1saW1pdGVyX19sYWJlbC0tcHJlZml4LFxuICAgIC5maWVsZCAuY3MtbGltaXRlcl9fbGFiZWwtLXByZWZpeCB7XG4gICAgICBwYWRkaW5nOiAwIDFyZW0gMCAxcmVtOyB9XG4gICAgLmNzLWxpbWl0ZXJfX2xhYmVsLS1zdWZmaXgsXG4gICAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbC0tc3VmZml4IHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cbiAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjRweDsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG4gIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMy41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjpob3ZlciwgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmZvY3VzLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6YWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyIHtcbiAgICAgIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtLS1jdXJyZW50IC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjpob3ZlciwgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbS0tY3VycmVudCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6Zm9jdXMsIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLmNzLWxpbWl0ZXIgLmNzLWh0bWwtc2VsZWN0LFxuICAuY3MtbGltaXRlciAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXIsXG4gIC5jcy1saW1pdGVyIHNlbGVjdCB7XG4gICAgbWluLXdpZHRoOiAzcmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTsgfVxuXG4uY3MtZGFzaGJvYXJkIC5saW1pdGVyLWxhYmVsLFxuLmNzLWRhc2hib2FyZCAubGltaXRlci10ZXh0IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG5cbi5jcy1kYXNoYm9hcmQgLmxpbWl0ZXItdGV4dCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLmNzLWRhc2hib2FyZCAubGltaXRlci1vcHRpb25zIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXBhZ2luYXRpb24ge1xuICAvKipcbiAgICAgKiBJbnB1dCBtb2RlXG4gICAgICovXG4gIC8qKlxuICAgICAqIEJ1bGxldCBwb2ludHMgbW9kZVxuICAgICAqLyB9XG4gIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXBhZ2luYXRpb25fX3ByZWZpeC1sYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbSAwIDA7IH1cbiAgLmNzLXBhZ2luYXRpb25fX3BhZ2UtcHJvdmlkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGdhcDogMCAwLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX3BhZ2UtcHJvdmlkZXItaW5wdXQuaW5wdXQtdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC1oZWlnaHQ6IDMuNXJlbTtcbiAgICB3aWR0aDogNC41ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtOyB9XG4gIC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuY3MtcGFnaW5hdGlvbl9faXRlbXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtcGFnaW5hdGlvbl9faXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyNHB4OyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG4gIC5jcy1wYWdpbmF0aW9uX19udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjNlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19udW1iZXIsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6aG92ZXIsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6Zm9jdXMsIC5jcy1wYWdpbmF0aW9uX19udW1iZXI6YWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxuICAgIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXIsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6aG92ZXIsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6Zm9jdXMsIC5jcy1wYWdpbmF0aW9uX19pdGVtLS1jdXJyZW50IC5jcy1wYWdpbmF0aW9uX19udW1iZXI6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3MtcGFnaW5hdGlvbl9fcHJldiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX25leHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24ge1xuICAgIHdpZHRoOiAyLjVyZW07XG4gICAgaGVpZ2h0OiAycmVtO1xuICAgIGZpbGw6ICMzMzMzMzM7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLS1kaXNhYmxlZCAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24gKiB7XG4gICAgICBmaWxsOiAjODc4Nzg3OyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbjpub3QoLmNzLXBhZ2luYXRpb25fX2FjdGlvbi0tZGlzYWJsZWQpOmhvdmVyIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24taWNvbiAqLFxuICAgIC5jcy1wYWdpbmF0aW9uX19hY3Rpb246bm90KC5jcy1wYWdpbmF0aW9uX19hY3Rpb24tLWRpc2FibGVkKTpmb2N1cyAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24gKixcbiAgICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uOm5vdCguY3MtcGFnaW5hdGlvbl9fYWN0aW9uLS1kaXNhYmxlZCk6YWN0aXZlIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24taWNvbiAqIHtcbiAgICAgIGZpbGw6ICNjMTI3MmY7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX2xhYmVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxcmVtIDAgMDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZXMge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfSB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjRweDsgfVxuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyNHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDI0cHg7IH1cbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMy41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuN2VtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuN2VtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpob3ZlciwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb24sIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmhvdmVyLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb246YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiB7XG4gICAgZmlsbDogY3VycmVudENvbG9yOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWljb24tLWdyaWQge1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIGhlaWdodDogMS4xcmVtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWljb24tLWxpc3Qge1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIGhlaWdodDogMS4xcmVtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uIHtcbiAgICAgIGZpbGw6ICMzMjRkY2Y7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiArIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1sYWJlbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19sYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMXJlbSAwIDA7IH1cbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogMCAxcmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGVzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07IH0gfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGU6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDI0cHg7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGU6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDMuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwLjNlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuN2VtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuN2VtOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpob3ZlciwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb24sIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmhvdmVyLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjpmb2N1cywgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb246YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiBwYXRoIHtcbiAgICBmaWxsOiAjMzMzMzMzOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uLS1ncmlkIHtcbiAgICB3aWR0aDogMi40cmVtO1xuICAgIGhlaWdodDogMi40cmVtOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uLS1saXN0IHtcbiAgICB3aWR0aDogMi40cmVtO1xuICAgIGhlaWdodDogMi40cmVtOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uOmhvdmVyIHBhdGgsXG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbiBwYXRoIHtcbiAgICBmaWxsOiAjYzEyNzJmOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uICsgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy10b29sYmFyIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXRvb2xiYXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy10b29sYmFyX19pdGVtIHtcbiAgICBtYXJnaW46IDAgMCAxLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXRvb2xiYXJfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgLmNzLXRvb2xiYXJfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtLS1wYWdpbmF0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuICAgIC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLXRvb2xiYXJfX2l0ZW0tLW9mZmNhbnZhcyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICB6LWluZGV4OiAxOyB9XG4gIC5jcy10b29sYmFyIC5maWVsZCAubGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy10b29sYmFyIC5jcy1odG1sLXNlbGVjdCB7XG4gICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0IHtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyIHtcbiAgICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMXJlbSAwLjhyZW0gMXJlbSAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuOHJlbSAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93IHtcbiAgICAgIHJpZ2h0OiAtMS4ycmVtOyB9XG4gICAgICAuY3MtdG9vbGJhciAuY3MtaHRtbC1zZWxlY3RfX3RyaWdnZXItY2FyZXQtYXJyb3c6OmJlZm9yZSwgLmNzLXRvb2xiYXIgLmNzLWh0bWwtc2VsZWN0X190cmlnZ2VyLWNhcmV0LWFycm93OjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICB3aWR0aDogMC45cmVtO1xuICAgICAgICBoZWlnaHQ6IDJweDsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b24sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbltkaXNhYmxlZF0sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbiBzdmcge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsZWZ0OiAyLjNyZW07XG4gICAgbWF4LXdpZHRoOiAyLjNyZW07XG4gICAgbWF4LWhlaWdodDogMi4zcmVtOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiR0b29sYmFyX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LWp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhZGVmYXVsdDtcbiR0b29sYmFyX2ZsZXgtd3JhcDogd3JhcCAhZGVmYXVsdDtcbiR0b29sYmFyX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHRvb2xiYXJfZm9udC13ZWlnaHQ6IGluaGVyaXQgIWRlZmF1bHQ7XG4kdG9vbGJhcl90ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9lbGVtZW50cy1wYWRkaW5nLXRhYmxldC11cDogMCAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbjogMCAwIDEuNXJlbSAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbi10YWJsZXQtdXA6IDAgMCAxLjVyZW0gIWRlZmF1bHQ7XG5cbiR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0OiAzLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbGJhcl9pbnB1dC1tYXgtaGVpZ2h0OiAkdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodCAhZGVmYXVsdDtcblxuJHRvb2xiYXJfc2VsZWN0cy1tYXgtd2lkdGgtdGFibGV0OiAyMHJlbSAhZGVmYXVsdDsgLy8gc2V0ICdub25lJyB0byBkaXNhYmxlXG5cbiR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50OiAoXG4gICAgYW1vdW50OiBsZWZ0LFxuICAgIHNvcnRlcjogbGVmdCxcbiAgICBsaW1pdGVyOiBsZWZ0LFxuICAgIHZpZXdtb2RlLXN3aXRjaGVyOiBsZWZ0LFxuICAgIHBhZ2luYXRpb246IHJpZ2h0LFxuKSAhZGVmYXVsdDtcblxuJHRvb2xiYXJfYW1vdW50LWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfc29ydGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfbGltaXRlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3ZpZXdtb2RlLXN3aXRjaGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfcGFnaW5hdGlvbi1hbGlnbjogcmlnaHQgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3M6ICdsZWZ0JyAhZGVmYXVsdDtcblxuLiN7JG5zfXRvb2xiYXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkdG9vbGJhcl9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICR0b29sYmFyX2ZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdG9vbGJhcl90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogJHRvb2xiYXJfZGlzcGxheTtcblxuICAgICAgICBAaWYgJHRvb2xiYXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdG9vbGJhcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdG9vbGJhcl9mbGV4LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogJHRvb2xiYXJfZmxleC13cmFwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW4tdGFibGV0LXVwO1xuICAgICAgICAgICAgcGFkZGluZzogJHRvb2xiYXJfZWxlbWVudHMtcGFkZGluZy10YWJsZXQtdXA7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVhY2ggJG1vZGlmaWVyLCAkdmFsdWUgaW4gJHRvb2xiYXJfY29tcG9uZW50cy1hbGlnbm1lbnQge1xuICAgICAgICAgICAgQGlmICR2YWx1ZSA9PSByaWdodCB7XG4gICAgICAgICAgICAgICAgJi0tI3skbW9kaWZpZXJ9IHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICR0b29sYmFyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saW1pdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQgLmxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICR0b29sYmFyX2ZvbnQtd2VpZ2h0O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAuI3skbnN9aHRtbC1zZWxlY3Qge1xuICAgICAgICBAaWYgJHRvb2xiYXJfc2VsZWN0cy1tYXgtd2lkdGgtdGFibGV0ICE9IG5vbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkdG9vbGJhcl9zZWxlY3RzLW1heC13aWR0aC10YWJsZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmlsdGVycy1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyLjNyZW07XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvYW1vdW50LnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL3NvcnRlci5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9saW1pdGVyLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL3BhZ2luYXRpb24uc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvdmlld21vZGUtc3dpdGNoZXIuc2Nzcyc7XG4iLCIudG9vbGJhci1hbW91bnQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHNvcnRlcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHNvcnRlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRzb3J0ZXJfbGFiZWwtcGFkZGluZzogMCAxcmVtIDAgMCAhZGVmYXVsdDtcbiRzb3J0ZXJfbGFiZWwtd2hpdGUtc3BhY2U6IG5vd3JhcCAhZGVmYXVsdDtcblxuLiN7JG5zfXNvcnRlciB7XG4gICAgZGlzcGxheTogJHNvcnRlcl9kaXNwbGF5O1xuXG4gICAgQGlmICRzb3J0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRzb3J0ZXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRrbWFfYm9yZGVyX2Jhc2U7XG4gICAgfVxuXG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6ICRzb3J0ZXJfbGFiZWwtcGFkZGluZztcbiAgICAgICAgd2hpdGUtc3BhY2U6ICRzb3J0ZXJfbGFiZWwtd2hpdGUtc3BhY2U7XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0IHtcbiAgICAgICAgd2lkdGg6IDBweDtcbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHBhZ2luYXRpb24tbGlzdC1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWhvb2soKSB7XG59XG5cbkBtaXhpbiBwYWdpbmF0aW9uLW51bWJlci1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29uZmlnL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwidmVuZG9ycy9pbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90b29sYmFyL21peGlucy5zY3NzXCI7XG5cbiRsaW1pdGVyX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kbGltaXRlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRsaW1pdGVyX2xhYmVscy13aGl0ZS1zcGFjZTogbm93cmFwICFkZWZhdWx0O1xuJGxpbWl0ZXJfbWFyZ2luOiAwIDFyZW0gMCAwO1xuJGxpbWl0ZXJfcHJlZml4LWxhYmVsLXBhZGRpbmc6IDAgMXJlbSAwIDFyZW0gIWRlZmF1bHQ7XG4kbGltaXRlcl9zdWZmaXgtbGFiZWwtcGFkZGluZzogMCAwIDAgMXJlbSAhZGVmYXVsdDtcblxuJHNvcnRlcl9zZWxlY3QtbWluLWhlaWdodDogJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQgIWRlZmF1bHQ7XG5cbi4jeyRuc31saW1pdGVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6ICRsaW1pdGVyX2Rpc3BsYXk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogJGxpbWl0ZXJfbWFyZ2luO1xuXG4gICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkbGltaXRlcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgICYsXG4gICAgICAgIC5maWVsZCAmIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiAkbGltaXRlcl9sYWJlbHMtd2hpdGUtc3BhY2U7XG5cbiAgICAgICAgICAgICYtLXByZWZpeCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGxpbWl0ZXJfcHJlZml4LWxhYmVsLXBhZGRpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXN1ZmZpeCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGxpbWl0ZXJfc3VmZml4LWxhYmVsLXBhZGRpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wYWdpbmF0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9fcGFnaW5hdGlvbi1pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtKCk7XG4gICAgfVxuXG4gICAgJl9fcGFnaW5hdGlvbi1udW1iZXIge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlcigpO1xuXG4gICAgICAgICN7JHJvb3R9X19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRuc31odG1sLXNlbGVjdCxcbiAgICAuI3skbnN9aHRtbC1zZWxlY3RfX3RyaWdnZXIsXG4gICAgc2VsZWN0IHtcbiAgICAgICAgbWluLXdpZHRoOiAzcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAkc29ydGVyX3NlbGVjdC1taW4taGVpZ2h0O1xuICAgIH1cbn1cblxuLy91c2VyIGFyZWEgbGltaXRlciBhZnRlciByZWZhY3RvclxuXG4uI3skbnN9ZGFzaGJvYXJkIHtcbiAgICAubGltaXRlci1sYWJlbCxcbiAgICAubGltaXRlci10ZXh0IHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIH1cblxuICAgIC5saW1pdGVyLXRleHQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC5saW1pdGVyLW9wdGlvbnMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvaG9va3Muc2Nzcyc7XG5cbiRwYWdpbmF0aW9uLWxpc3RfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWxpc3RfZmxleC1hbGlnbi1pdGVtczogc3RyZXRjaCAhZGVmYXVsdDtcbkBtaXhpbiBwYWdpbmF0aW9uLWxpc3Qge1xuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICBkaXNwbGF5OiAkcGFnaW5hdGlvbi1saXN0X2Rpc3BsYXk7XG5cbiAgICBAaWYgJGxpbWl0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRwYWdpbmF0aW9uLWxpc3RfZmxleC1hbGlnbi1pdGVtcztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWxpc3QtaG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1pdGVtX21hcmdpbjogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fcGFkZGluZzogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX2JvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX2JvcmRlcjogJHBhZ2luYXRpb24taXRlbS1ib3JkZXItd2lkdGggc29saWRcbiAgICAkcGFnaW5hdGlvbi1pdGVtLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXM6IHRydWUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWl0ZW1fYXMtY2lyY2xlOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIHBhZ2luYXRpb24taXRlbSB7XG4gICAgbWFyZ2luOiAkcGFnaW5hdGlvbi1pdGVtX21hcmdpbjtcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1pdGVtX3BhZGRpbmc7XG4gICAgYm9yZGVyOiAkcGFnaW5hdGlvbi1pdGVtX2JvcmRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taXRlbV9tYXJnaW4gPT1cbiAgICAgICAgMCBhbmRcbiAgICAgICAgJHBhZ2luYXRpb24taXRlbV9ib3JkZXItd2lkdGggIT1cbiAgICAgICAgMCBhbmRcbiAgICAgICAgJHBhZ2luYXRpb24taXRlbV9ib3JkZXIgIT1cbiAgICAgICAgbm9uZVxuICAgIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0jeyRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyLXdpZHRofTtcbiAgICB9XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcyB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMtcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkcGFnaW5hdGlvbi1pdGVtX2FzLWNpcmNsZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWl0ZW0taG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoOiAzLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi13aWR0aCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9wYWRkaW5nOiAwLjNlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl9jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRwYWdpbmF0aW9uLW51bWJlcl90ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9iYWNrZ3JvdW5kOiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb246IGluaGVyaXQgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4td2lkdGg7XG4gICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1udW1iZXJfcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXJfYmFja2dyb3VuZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC13ZWlnaHQ7XG4gICAgdHJhbnNpdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RyYW5zaXRpb247XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXJfY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RleHQtZGVjb3JhdGlvbjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2NvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2JhY2tncm91bmQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb247XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItaG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnRfY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50X2JhY2tncm91bmQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudC1ob29rKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MnO1xuXG4kcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9jb250ZW50LWZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb25fcHJlZml4LWxhYmVsLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3ByZWZpeC1sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LXdpZHRoOiA0LjVlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtZm9udC1zaXplOiAwLjg1ZW0gIWRlZmF1bHQ7XG5cbi8vIHByZXYvbmV4dCBhcnJvd3NcbiRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXdpZHRoOiAyLjVyZW07XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ6IDJyZW07XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1maWxsOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJHBhZ2luYXRpb25fYWN0aW9uLWljb24tdHJhbnNpdGlvbjogZmlsbCAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3Rpb24tLWhvdmVyX2ljb24tZmlsbDogJGttYV9jb2xvcl9zZWNvbmRhcnktNTAwO1xuJHBhZ2luYXRpb24tYWN0aW9uLS1kaXNhYmxlZF9pY29uLWZpbGw6ICRrbWFfY29sb3JfZ3JleS01MDA7XG5cbi4jeyRuc31wYWdpbmF0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiAkcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk7XG5cbiAgICAgICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJHBhZ2luYXRpb25fY29udGVudC1mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJlZml4LWxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtbWFyZ2luO1xuICAgICAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnB1dCBtb2RlXG4gICAgICovXG4gICAgJl9fcGFnZS1wcm92aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZ2FwOiAwIDAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWlucHV0LmlucHV0LXRleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6ICR0b29sYmFyX2lucHV0LW1heC1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL3Rvb2xiYXJcbiAgICAgICAgd2lkdGg6ICRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtd2lkdGg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1bGxldCBwb2ludHMgbW9kZVxuICAgICAqL1xuICAgICZfX2l0ZW1zIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbSgpO1xuICAgIH1cblxuICAgICZfX251bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJldiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBhZ2luYXRpb25fYWN0aW9uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmX19uZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLXdpZHRoOiAkcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoOyAvLyB2YXIgaW5oZXJpdGVkIGZyb20gLi9taXhpbnNcbiAgICAgICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL21peGluc1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ7XG4gICAgICAgIGZpbGw6ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLWZpbGw7XG4gICAgICAgIHRyYW5zaXRpb246ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXRyYW5zaXRpb247XG5cbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQgJiB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkcGFnaW5hdGlvbi1hY3Rpb24tLWRpc2FibGVkX2ljb24tZmlsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbjpub3QoI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQpOmhvdmVyICYsXG4gICAgICAgICN7JHJvb3R9X19hY3Rpb246bm90KCN7JHJvb3R9X19hY3Rpb24tLWRpc2FibGVkKTpmb2N1cyAmLFxuICAgICAgICAjeyRyb290fV9fYWN0aW9uOm5vdCgjeyRyb290fV9fYWN0aW9uLS1kaXNhYmxlZCk6YWN0aXZlICYge1xuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHBhZ2luYXRpb24tYWN0aW9uLS1ob3Zlcl9pY29uLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL21peGlucy5zY3NzJztcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2NvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLXgtYXhpcy1wYWRkaW5nOiAwLjdlbSAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWZpbGw6IGN1cnJlbnRDb2xvciAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi0tY3VycmVudC1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoOiAxLjVyZW0gIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ6IDEuMXJlbSAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LXdpZHRoOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC13aWR0aCAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LWhlaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtaGVpZ2h0ICFkZWZhdWx0O1xuXG4uI3skbnN9dmlld21vZGUtc3dpdGNoZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogJHZpZXdtb2RlLXN3aXRjaGVyX2Rpc3BsYXk7XG5cbiAgICBAaWYgJHNvcnRlcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogJHZpZXdtb2RlLXN3aXRjaGVyX2ZsZXgtYWxpZ24taXRlbXM7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6ICR2aWV3bW9kZS1zd2l0Y2hlcl9sYWJlbC1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX21vZGVzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLWxpc3QoKTtcbiAgICB9XG5cbiAgICAmX19tb2RlIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtKCk7XG4gICAgfVxuXG4gICAgJl9fbW9kZS1hY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlcigpO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gc2V0IGhlaWdodCBleHBsaWNpdGx5IGZvciBJRVxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG5cbiAgICAgICAgI3skcm9vdH1fX21vZGUtLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbW9kZS1pY29uIHtcbiAgICAgICAgZmlsbDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWZpbGw7XG5cbiAgICAgICAgJi0tZ3JpZCB7XG4gICAgICAgICAgICB3aWR0aDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpc3Qge1xuICAgICAgICAgICAgd2lkdGg6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbW9kZS0tY3VycmVudCAmIHtcbiAgICAgICAgICAgIGZpbGw6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi0tY3VycmVudC1maWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgKyAjeyRyb290fV9fbW9kZS1sYWJlbCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvdG9vbGJhci92aWV3bW9kZS1zd2l0Y2hlci5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImNvbmZpZy9icmVha3BvaW50c1wiO1xuXG4kdmlld21vZGUtc3dpdGNoZXJfZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2xhYmVsLXBhZGRpbmc6IDAgMXJlbSAwIDAgIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc6IDAuN2VtICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZmlsbDogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi0tY3VycmVudC1maWxsOiAka21hX2NvbG9yX3NlY29uZGFyeS01MDA7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoOiAka21hX2ljb25fc2l6ZS01MDA7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ6ICRrbWFfaWNvbl9zaXplLTUwMDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1saXN0LXdpZHRoOiAka21hX2ljb25fc2l6ZS01MDA7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC1oZWlnaHQ6ICRrbWFfaWNvbl9zaXplLTUwMDtcblxuLiN7JG5zfXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6ICR2aWV3bW9kZS1zd2l0Y2hlcl9kaXNwbGF5O1xuXG4gICAgQGlmICRzb3J0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICR2aWV3bW9kZS1zd2l0Y2hlcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkdmlld21vZGUtc3dpdGNoZXJfbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19tb2RlcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIiwgXCI8bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbGlzdCgpO1xuICAgICAgICBnYXA6IDAgMXJlbTtcbiAgICB9XG5cbiAgICAmX19tb2RlIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtKCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19tb2RlLWFjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gc2V0IGhlaWdodCBleHBsaWNpdGx5IGZvciBJRVxuICAgICAgICBwYWRkaW5nLWxlZnQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24teC1heGlzLXBhZGRpbmc7XG5cbiAgICAgICAgI3skcm9vdH1fX21vZGUtLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbW9kZS1pY29uIHtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZmlsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgd2lkdGg6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWxpc3QtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICN7JHJvb3R9X19tb2RlLS1jdXJyZW50ICYge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLS1jdXJyZW50LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICArICN7JHJvb3R9X19tb2RlLWxhYmVsIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kdG9vbGJhcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LXdyYXA6IHdyYXAgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuJHRvb2xiYXJfZm9udC13ZWlnaHQ6IDQwMDtcbiR0b29sYmFyX3RleHQtdHJhbnNmb3JtOiBub25lO1xuXG4kdG9vbGJhcl9lbGVtZW50cy1wYWRkaW5nLXRhYmxldC11cDogMCAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbjogMCAwIDEuNXJlbSAhZGVmYXVsdDtcbiR0b29sYmFyX2VsZW1lbnRzLW1hcmdpbi10YWJsZXQtdXA6IDAgMCAxLjVyZW0gIWRlZmF1bHQ7XG5cbiR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0OiAzLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbGJhcl9pbnB1dC1tYXgtaGVpZ2h0OiAkdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodCAhZGVmYXVsdDtcblxuJHRvb2xiYXJfc2VsZWN0cy1tYXgtd2lkdGgtdGFibGV0OiAyMHJlbSAhZGVmYXVsdDsgLy8gc2V0ICdub25lJyB0byBkaXNhYmxlXG5cbiR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50OiAoXG4gICAgYW1vdW50OiBsZWZ0LFxuICAgIHNvcnRlcjogbGVmdCxcbiAgICBsaW1pdGVyOiBsZWZ0LFxuICAgIHZpZXdtb2RlLXN3aXRjaGVyOiBsZWZ0LFxuICAgIHBhZ2luYXRpb246IHJpZ2h0LFxuKSAhZGVmYXVsdDtcblxuJHRvb2xiYXJfYW1vdW50LWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfc29ydGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfbGltaXRlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3ZpZXdtb2RlLXN3aXRjaGVyLWFsaWduOiBsZWZ0ICFkZWZhdWx0O1xuJHRvb2xiYXJfcGFnaW5hdGlvbi1hbGlnbjogcmlnaHQgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3M6ICdsZWZ0JyAhZGVmYXVsdDtcblxuLiN7JG5zfXRvb2xiYXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkdG9vbGJhcl9mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICR0b29sYmFyX2ZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdG9vbGJhcl90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogJHRvb2xiYXJfZGlzcGxheTtcblxuICAgICAgICBAaWYgJHRvb2xiYXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdG9vbGJhcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdG9vbGJhcl9mbGV4LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogJHRvb2xiYXJfZmxleC13cmFwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luOiAkdG9vbGJhcl9lbGVtZW50cy1tYXJnaW4tdGFibGV0LXVwO1xuICAgICAgICAgICAgcGFkZGluZzogJHRvb2xiYXJfZWxlbWVudHMtcGFkZGluZy10YWJsZXQtdXA7XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIC8vICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgLy8gICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRtb2RpZmllciwgJHZhbHVlIGluICR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50IHtcbiAgICAgICAgICAgIEBpZiAkdmFsdWUgPT0gcmlnaHQge1xuICAgICAgICAgICAgICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkdG9vbGJhcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGltaXRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9vbGJhcl9mb250LXdlaWdodDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC4jeyRuc31odG1sLXNlbGVjdCB7XG4gICAgICAgIEBpZiAkdG9vbGJhcl9zZWxlY3RzLW1heC13aWR0aC10YWJsZXQgIT0gbm9uZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6ICR0b29sYmFyX3NlbGVjdHMtbWF4LXdpZHRoLXRhYmxldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3RyaWdnZXIge1xuICAgICAgICAgICAgbWluLWhlaWdodDogJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjhyZW0gMXJlbSAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC44cmVtICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICYtY2FyZXQtYXJyb3cge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMS4ycmVtO1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMC45cmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWx0ZXJzLWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIuM3JlbTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIuM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpbHRlcnMtYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4uY3MtaWUxMS1tb2RhbC5tb2RhbC1zbGlkZSB7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1pZTExLW1vZGFsLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA3OHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAgIC5jcy1pZTExLW1vZGFsLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwIC5tb2RhbC1jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLWllMTEtbW9kYWwubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxLjhyZW0gMS44cmVtO1xuICAgIG1hcmdpbjogMi41cmVtOyB9XG4gIC5jcy1pZTExLW1vZGFsLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICBtYXJnaW46IDAgM3JlbTtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmNzLWllMTEtbW9kYWwuX3Nob3cgLmNzLWllMTEtbW9kYWxfX2lubmVyIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uY3MtaWUxMS1tb2RhbF9faW5uZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAwIDNyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogIzIxMjEyMTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG5cbi5jcy1pZTExLW1vZGFsX19oZWFkZXIsIC5jcy1pZTExLW1vZGFsX19ib2R5IHtcbiAgcGFkZGluZzogMnJlbSAwOyB9XG5cbi5jcy1pZTExLW1vZGFsX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5jcy1pZTExLW1vZGFsX19oZWFkZXItaWNvbiB7XG4gIHdpZHRoOiA3cmVtO1xuICBoZWlnaHQ6IDdyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cblxuLmNzLWllMTEtbW9kYWxfX2hlYWRlci10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMy41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmNzLWllMTEtbW9kYWxfX2JvZHkge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cblxuLmNzLWllMTEtbW9kYWxfX3BhcmFncmFwaCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAuY3MtaWUxMS1tb2RhbF9fcGFyYWdyYXBoLS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLmNzLWllMTEtbW9kYWxfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi5jcy1pZTExLW1vZGFsX19saXN0LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTMwJTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jcy1pZTExLW1vZGFsX19pdGVtLWxvZ28ge1xuICB3aWR0aDogMy44cmVtO1xuICBoZWlnaHQ6IDMuOHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiAwOyB9XG4gIC5pZTExIC5jcy1pZTExLW1vZGFsX19pdGVtLWxvZ28ge1xuICAgIHdpZHRoOiA0cmVtO1xuICAgIGhlaWdodDogNHJlbTsgfVxuXG4uY3MtaWUxMS1tb2RhbF9faXRlbS1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG4uaWUxMSAubW9kYWwtcG9wdXA6bm90KC5jcy12aWRlLXBsYXllcl9fbW9kYWwpIC5tb2RhbC1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTAwJTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiRpZTExX21vZGFsLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRpZTExX21vZGFsLXBhZGRpbmctLXZlcnRpY2FsOiAycmVtICFkZWZhdWx0O1xuJGllMTFfbW9kYWwtcGFkZGluZy0taG9yaXpvbnRhbDogM3JlbSAhZGVmYXVsdDtcbiRpZTExX21vZGFsLXNlY3Rpb24tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kaWUxMV9tb2RhbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGllMTFfbW9kYWwtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG5cbi5jcy1pZTExLW1vZGFsIHtcbiAgICAkcm9vdDogJjtcblxuICAgICYubW9kYWwtc2xpZGUge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA3OHJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpZTExX21vZGFsLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG5cbiAgICAgICAgICAgIC5tb2RhbC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1jbG9zZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEuOHJlbSAxLjhyZW07XG4gICAgICAgICAgICBtYXJnaW46IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tb2RhbC1mb290ZXIge1xuICAgICAgICAgICAgcGFkZGluZzogJGllMTFfbW9kYWwtcGFkZGluZy0tdmVydGljYWwgMDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAkaWUxMV9tb2RhbC1wYWRkaW5nLS1ob3Jpem9udGFsO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuX3Nob3cge1xuICAgICAgICAjeyRyb290fV9faW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMCAkaWUxMV9tb2RhbC1wYWRkaW5nLS1ob3Jpem9udGFsO1xuICAgICAgICBmb250LXNpemU6ICRpZTExX21vZGFsLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRpZTExX21vZGFsLWNvbG9yO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyLFxuICAgICZfX2JvZHkge1xuICAgICAgICBwYWRkaW5nOiAkaWUxMV9tb2RhbC1wYWRkaW5nLS12ZXJ0aWNhbCAwO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyLWljb24ge1xuICAgICAgICB3aWR0aDogN3JlbTtcbiAgICAgICAgaGVpZ2h0OiA3cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkaWUxMV9tb2RhbC1wYWRkaW5nLS12ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAmX19oZWFkZXItdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDMuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgICBib3JkZXItdG9wOiAkaWUxMV9tb2RhbC1zZWN0aW9uLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGllMTFfbW9kYWwtc2VjdGlvbi1ib3JkZXI7XG4gICAgfVxuXG4gICAgJl9fcGFyYWdyYXBoIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkaWUxMV9tb2RhbC1wYWRkaW5nLS12ZXJ0aWNhbDtcblxuICAgICAgICAmLS10aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogMTMwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX2l0ZW0tbG9nbyB7XG4gICAgICAgIHdpZHRoOiAzLjhyZW07XG4gICAgICAgIGhlaWdodDogMy44cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICBib3JkZXI6IDA7XG5cbiAgICAgICAgLmllMTEgJiB7XG4gICAgICAgICAgICB3aWR0aDogNHJlbTtcbiAgICAgICAgICAgIGhlaWdodDogNHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0tbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxufVxuXG4uaWUxMSAubW9kYWwtcG9wdXA6bm90KC5jcy12aWRlLXBsYXllcl9fbW9kYWwpIC5tb2RhbC1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcHdhLW5vdGlmaWNhdGlvbi5fc2hvdyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICB0b3A6IGF1dG87XG4gIGhlaWdodDogMTVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG92ZXJmbG93LXk6IHZpc2libGU7IH1cbiAgLmNzLXB3YS1ub3RpZmljYXRpb24uX3Nob3cgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLm1vZGFsLWlubmVyLXdyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1OyB9XG4gIC5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLm1vZGFsLWlubmVyLXdyYXA6YWZ0ZXIge1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyOiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNDIsIDI0MiwgMjQ3LCAwKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZjJmMmY3O1xuICAgIGJvcmRlci13aWR0aDogMS42cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS42cmVtOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLm1vZGFsLXRleHQtY29udGVudCB7XG4gIHBhZGRpbmc6IDAuNHJlbSAxLjRyZW0gMS4xcmVtOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUuX3Nob3cge1xuICBoZWlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEuNXJlbTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAuY3MtcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlLl9zaG93IC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjJmMmY3O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAwLjVyZW0gcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUuZGV2aWNlLWlQYWQge1xuICBib3R0b206IGF1dG87XG4gIHRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMS41cmVtO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAzOHJlbTsgfVxuICAuY3MtcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlLmRldmljZS1pUGFkIC5tb2RhbC1pbm5lci13cmFwOmFmdGVyIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICNmMmYyZjc7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTIuOHZ3OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUuZGV2aWNlLWlQYWQgLm1vZGFsLWlubmVyLXdyYXA6YWZ0ZXIge1xuICAgICAgICByaWdodDogMTF2dzsgfSB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX190aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMnJlbTtcbiAgZm9udC1zaXplOiAyLjRyZW07IH1cblxuLmNzLXB3YS1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICBwYWRkaW5nOiAwLjVyZW0gMnJlbSAxcmVtOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19pb3MtdHJhbnNmZXItaWNvbiB7XG4gIHdpZHRoOiAxLjhyZW07XG4gIGhlaWdodDogMi40cmVtO1xuICBtYXJnaW46IDAgMC4zcmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19mb290ZXIge1xuICBwYWRkaW5nOiAwLjVyZW0gMnJlbSAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC5jcy1wd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGUgLmNzLXB3YS1ub3RpZmljYXRpb25fX2Zvb3RlciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkOWQ5ZTc7IH1cblxuLmNzLXB3YS1ub3RpZmljYXRpb25fX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b24sIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMi42cmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLXB3YS1ub3RpZmljYXRpb25fX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wd2Etbm90aWZpY2F0aW9uX19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAuY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLXB3YS1ub3RpZmljYXRpb25fX2J1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuXG4uY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uIHNwYW4ge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4uY3MtcHdhLW5vdGlmaWNhdGlvbl9fYnV0dG9uLWljb24ge1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi5jcy1wd2Etbm90aWZpY2F0aW9uX19jbG9zZS1idXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDEuOHJlbTsgfVxuXG4uY3MtcHdhLW5vdGlmaWNhdGlvbiArIC5tb2RhbHMtb3ZlcmxheSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRwd2Etbm90aWZpY2F0aW9uX2JveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb25fYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb25fYnV0dG9uLXR5cGU6ICdwcmltYXJ5JyAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uX2hpZGUtbW9kYWwtb3ZlcmxheTogdHJ1ZSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uX2hlYWRsaW5lLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuXG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQ6ICNmMmYyZjcgIWRlZmF1bHQ7IC8vIGlvcy1saWtlIHN5c3RlbSBiYWNrZ3JvdW5kIGNvbG9yXG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2ZpbHRlci1zaGFkb3c6IDAgMCAwLjVyZW0gcmdiYSgwLCAwLCAwLCAwLjEpICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9ib3JkZXItcmFkaXVzOiA2cHggIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2xvY2FsaXphdGlvbi1hcnJvdy1zaXplOiAxLjZyZW0gIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX21vZGFsLWVkZ2UtcGFkZGluZzogMnJlbSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY29udGVudC1wYWRkaW5nOiAwLjRyZW0gMS40cmVtIDEuMXJlbSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uLS1pb3MtdHJhbnNmZXItaWNvbi13aWR0aDogMS44cmVtICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb24tLWlvcy10cmFuc2Zlci1pY29uLWhlaWdodDogMi40cmVtICFkZWZhdWx0O1xuJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9zZXBhcmF0b3ItY29sb3I6IGRhcmtlbihcbiAgICAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQsXG4gICAgOCVcbikgIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2Nsb3NlLWJ1dHRvbi1wYWRkaW5nOiAxLjhyZW0gIWRlZmF1bHQ7XG4kcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2Nsb3NlLWljb24td2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY2xvc2UtaWNvbi1oZWlnaHQ6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY2xvc2UtaWNvbi13aWR0aCAhZGVmYXVsdDtcblxuLiN7JG5zfXB3YS1ub3RpZmljYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgJi5fc2hvdyB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGhlaWdodDogMTVyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAgICAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHdhLW5vdGlmaWNhdGlvbl9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJHB3YS1ub3RpZmljYXRpb25fYm94LXNoYWRvdztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWlvcy1ndWlkZSB7XG4gICAgICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKCRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfYmFja2dyb3VuZCwgMCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9sb2NhbGl6YXRpb24tYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSN7JHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9sb2NhbGl6YXRpb24tYXJyb3ctc2l6ZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubW9kYWwtdGV4dC1jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY29udGVudC1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5fc2hvdyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9tb2RhbC1lZGdlLXBhZGRpbmc7XG5cbiAgICAgICAgICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9maWx0ZXItc2hhZG93KTtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5kZXZpY2UtaVBhZCB7XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX21vZGFsLWVkZ2UtcGFkZGluZztcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM4cmVtO1xuXG4gICAgICAgICAgICAubW9kYWwtaW5uZXItd3JhcDphZnRlciB7XG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMTAwJTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHdhLW5vdGlmaWNhdGlvbi0taW9zLWd1aWRlX2JhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogMTIuOHZ3O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMTF2dztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkcHdhLW5vdGlmaWNhdGlvbl9oZWFkbGluZS1mb250LXNpemU7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtIDFyZW07XG4gICAgfVxuXG4gICAgJl9faW9zLXRyYW5zZmVyLWljb24ge1xuICAgICAgICB3aWR0aDogJHB3YS1ub3RpZmljYXRpb24tLWlvcy10cmFuc2Zlci1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtdHJhbnNmZXItaWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbjogMCAwLjNyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDJyZW0gMnJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAjeyRyb290fS0taW9zLWd1aWRlICYge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfc2VwYXJhdG9yLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRwd2Etbm90aWZpY2F0aW9uX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcHdhLW5vdGlmaWNhdGlvbl9idXR0b24tdHlwZVxuICAgICAgICApO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRwd2Etbm90aWZpY2F0aW9uX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJHB3YS1ub3RpZmljYXRpb25fYnV0dG9uLXR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6ICRwd2Etbm90aWZpY2F0aW9uLS1pb3MtZ3VpZGVfY2xvc2UtaWNvbi13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9jbG9zZS1pY29uLWhlaWdodDtcbiAgICAgICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogJHB3YS1ub3RpZmljYXRpb24tLWlvcy1ndWlkZV9jbG9zZS1idXR0b24tcGFkZGluZztcbiAgICB9XG5cbiAgICBAaWYgKCRwd2Etbm90aWZpY2F0aW9uX2hpZGUtbW9kYWwtb3ZlcmxheSA9PSB0cnVlKSB7XG4gICAgICAgICYgKyAubW9kYWxzLW92ZXJsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1nb29nbGUtcmVjYXB0Y2hhIHtcbiAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX2JhZGdlLS1pbnZpc2libGUgLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmZvY3VzLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmFjdGl2ZSwgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICMxNDJiOWU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmZvY3VzLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmFjdGl2ZSwgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLWN1c3RvbWVyX2NyZWF0ZSB7XG4gICAgbWFyZ2luLXRvcDogLTJyZW07IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLWN1c3RvbWVyX2xvZ2luIC5nLXJlY2FwdGNoYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRnb29nbGUtcmVjYXB0Y2hhX21hcmdpbjogMXJlbSAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIG5ld3NsZXR0ZXJcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbWFyZ2luOiAxcmVtIDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3I6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbi1ob3ZlcjogdW5kZXJsaW5lICFkZWZhdWx0O1xuXG4uI3skbnN9Z29vZ2xlLXJlY2FwdGNoYSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX21hcmdpbjtcblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgJi0taW52aXNpYmxlIHtcbiAgICAgICAgICAgIC5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LW1hcmdpbjtcbiAgICAgICAgZm9udC1zaXplOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX3RleHQtY29sb3I7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJGRlY29yYXRpb246ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uLWhvdmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbmV3c2xldHRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1tYXJnaW47XG5cbiAgICAgICAgI3skcm9vdH1fX25vdGUge1xuICAgICAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtbWFyZ2luO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1jb2xvcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24taG92ZXJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY3VzdG9tZXJfY3JlYXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgfVxuXG4gICAgJi0tY3VzdG9tZXJfbG9naW4ge1xuICAgICAgICAuZy1yZWNhcHRjaGEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmxvYWRpbmctbWFzayB7XG4gICAgJltkYXRhLXJvbGU9J21haW4tY3NzLWxvYWRlciddIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy1kYXNoYm9hcmQge1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1kYXNoYm9hcmRfX2NvbHVtbnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkX19jb2x1bW5zOmJlZm9yZSwgLmNzLWRhc2hib2FyZF9fY29sdW1uczphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtZGFzaGJvYXJkX19tZXNzYWdlcyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgb3JkZXI6IDE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbSAwIDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQpO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDQpO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IH0gfVxuICAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICBvcmRlcjogMjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICgxMDAlIC8gMykpO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMCAwIDEuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDEwMCUgLyA0KSk7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwIDAgMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvIDQpKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDEwMCUgLyA0KSk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvIDQpKTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLXBhZ2UtY2F0ZWdvcnlfX21haW4tLXNlYXJjaC1uby1yZXN1bHQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2NvbHVtbnMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDNyZW0gMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19jb2x1bW5zIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDJyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMCAzLjVyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXgucGFnZS1sYXlvdXQtMWNvbHVtbiAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX3RvcCB7XG4gICAgcGFkZGluZzogMCAwIDNyZW07IH1cbiAgLmNzLWRhc2hib2FyZF9fcGFnZS10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAucGFnZS10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAxcmVtIDA7IH1cbiAgLmNzLWRhc2hib2FyZCAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLWRhc2hib2FyZCAubWVzc2FnZS1lcnJvcixcbiAgLmNzLWRhc2hib2FyZCAubWVzc2FnZS1zdWNjZXNzLFxuICAuY3MtZGFzaGJvYXJkIC5tZXNzYWdlLW5vdGljZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5jcy1kYXNoYm9hcmRfX2JvdHRvbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LWxpbmUge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIHtcbiAgICBtYXJnaW46IDAgMCAzcmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQge1xuICAgICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkLS1za2lwLXNwYWNpbmcge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LWd1ZXN0LWNvZGUge1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IH1cbiAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0IHtcbiAgICBtYXJnaW46IDAgMCAzcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3Qge1xuICAgICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QtLXNraXAtc3BhY2luZyB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QtaXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0LWl0ZW0ge1xuICAgICAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0LWl0ZW0ge1xuICAgICAgICAgIHdpZHRoOiAzMy4zMyU7IH0gfVxuICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0LWl0ZW06bnRoLWNoaWxkKG4gKyA0KSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZF9fbG9naW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19sb2dpbiB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkX19sb2dpbi1zZWN0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZF9fbG9naW4tc2VjdGlvbiB7XG4gICAgICAgICAgd2lkdGg6IDUwJTsgfVxuICAgICAgICAgIC5jcy1kYXNoYm9hcmRfX2xvZ2luLXNlY3Rpb246bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAgICAgICAuY3MtZGFzaGJvYXJkX19sb2dpbi1zZWN0aW9uOm50aC1jaGlsZCgybiArIDIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX2NvbnRhY3QtZm9ybSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDE1cmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IDQ1cmVtICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAubGltaXRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtZGFzaGJvYXJkIHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyM2Q1ZDVkNSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmNzLWRhc2hib2FyZCBzZWxlY3QubWFnZS1lcnJvciwgLmNzLWRhc2hib2FyZCBzZWxlY3QubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmNzLWRhc2hib2FyZCBzZWxlY3QucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuY3MtZGFzaGJvYXJkIHNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIHNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmQgc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjMzMzMzMzMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLWRhc2hib2FyZCBzZWxlY3Qgb3B0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogaW5pdGlhbDsgfVxuICAuY3MtZGFzaGJvYXJkIC5jaG9pY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jaG9pY2UgLmxhYmVsIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuY2hvaWNlIC5jaGVja2JveCB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGQtbmFtZS1wcmVmaXgge1xuICAgIG1heC13aWR0aDogMTJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbixcbiAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlIHtcbiAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b24sIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZCxcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGUsXG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uW2Rpc2FibGVkXSwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZVtkaXNhYmxlZF0sXG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gICAgLndpc2hsaXN0LWluZGV4LWluZGV4IC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b24sIC53aXNobGlzdC1pbmRleC1pbmRleFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZSB7XG4gICAgICB6LWluZGV4OiAxOyB9XG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbiBzcGFuLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b24uYWN0aW9uLnVwZGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5yZW1pbmQsXG4gIC5jcy1kYXNoYm9hcmQgLmJhY2sge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIG1hcmdpbi10b3A6IDAuN3JlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmNzLWRhc2hib2FyZCAuY291bnRlciB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFyZW0pO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmNvdW50ZXI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcoJzsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmNvdW50ZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyknOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDEuNXJlbSAwIDIuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAuYmxvY2sge1xuICAgICAgICBtYXJnaW46IDEuNXJlbSAwIDRyZW07IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSxcbiAgLmNzLWRhc2hib2FyZCAubGVnZW5kLFxuICAuY3MtZGFzaGJvYXJkIC5vcmRlci10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSBzdHJvbmcsXG4gICAgLmNzLWRhc2hib2FyZCAubGVnZW5kIHN0cm9uZyxcbiAgICAuY3MtZGFzaGJvYXJkIC5vcmRlci10aXRsZSBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSBhIHtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJveC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW46IDJyZW0gMCAwOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5zYWxlcy1vcmRlci1oaXN0b3J5IC5jcy1kYXNoYm9hcmQgLmJsb2NrLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1jb250ZW50Lm5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1uZXctY3VzdG9tZXIgLmJsb2NrLWNvbnRlbnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1uZXctY3VzdG9tZXIgLmJsb2NrLWNvbnRlbnQgLmZpZWxkc2V0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAuY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAuY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50Om50aC1jaGlsZCgxKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXJld2FyZC1oaXN0b3J5IC5wYWdlcyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbjogMC43cmVtIDAgMnJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXJld2FyZC1oaXN0b3J5IC5wYWdlczpudGgtY2hpbGQoMikge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXJld2FyZC1oaXN0b3J5IC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyOm50aC1jaGlsZCgzKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ib3gtYWN0aW9ucyBhICsgYTpiZWZvcmUsXG4gIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgYSArIGE6YmVmb3JlIHtcbiAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYSxcbiAgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyBhIHtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLXdyYXBwZXIsXG4gIC5jcy1kYXNoYm9hcmQgLm9yZGVycy1oaXN0b3J5LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLXdyYXBwZXIgKyAudG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyICsgLmFjdGlvbnMtdG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5vcmRlcnMtaGlzdG9yeSArIC50b29sYmFyLFxuICAgIC5jcy1kYXNoYm9hcmQgLm9yZGVycy1oaXN0b3J5ICsgLmFjdGlvbnMtdG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zICsgLnRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS13aXNobGlzdC1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtd3JhcHBlci5vcmRlci1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3Rvcnkub3JkZXItaXRlbXMgKyAuYWN0aW9ucy10b29sYmFyLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0td2lzaGxpc3QtaXRlbXMub3JkZXItaXRlbXMgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyICsgLnRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3RvcnkgKyAudG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zICsgLnRvb2xiYXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyIC5hY3Rpb24sXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3RvcnkgLmFjdGlvbixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIC5hY3Rpb24ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0td2lzaGxpc3QtaXRlbXMgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS13aXNobGlzdC1pdGVtcyAuYWN0aW9ucy10b29sYmFyIC5wcmltYXJ5IC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0tcHdhbm90aWZpY2F0aW9ucy1tYW5hZ2UgLmZpZWxkc2V0IHtcbiAgICBtYXgtd2lkdGg6IGluaXRpYWwgIWltcG9ydGFudDsgfVxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLXB3YW5vdGlmaWNhdGlvbnMtbWFuYWdlIC5maWVsZCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1wd2Fub3RpZmljYXRpb25zLW1hbmFnZSAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLXRvb2xiYXJfX2l0ZW0tLWFtb3VudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyOjphZnRlciwgLmNzLWRhc2hib2FyZCAudG9vbGJhcjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IGF1dG87IH1cbiAgICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbSBwIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQgKyAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIgLmNzLXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC50b29sYmFyLWFtb3VudCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5wYWdlcyB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAucGFnZXMge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5saW1pdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5saW1pdGVyIC5sYWJlbCB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyLndpc2hsaXN0LXRvb2xiYXIgYnIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zLXRvb2xiYXIgPiAuc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayxcbiAgLmNzLWRhc2hib2FyZCAuc2Vjb25kYXJ5IC5hY3Rpb24uZWRpdC1lbWFpbC1wcmVmZXJlbmNlcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ib3gsXG4gIC5jcy1kYXNoYm9hcmQgLmFkZHJlc3NlcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5ib3gsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5hZGRyZXNzZXMge1xuICAgICAgICB3aWR0aDogNDglOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuYm94LWNvbnRlbnQsXG4gIC5jcy1kYXNoYm9hcmQgLmFkZHJlc3NlcyAuaXRlbSB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBsaW5lLWhlaWdodDogMi41cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWRhc2hib2FyZCAudG9vbHRpcC53cmFwcGVyIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY2hvaWNlLnBlcnNpc3RlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAuY3MtdGFibGVfX2NvbDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLml0ZW1zLXF0eSxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAuY3MtY2FydC1pdGVtX19vcHRpb25zLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzonOyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLmNzLXRhYmxlX19jb2wuc3VidG90YWwge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICBmb250LXdlaWdodDogNDAwOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLml0ZW1zLXF0eSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5pdGVtcy1xdHkgLml0ZW0ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAuaXRlbXMtcXR5IC5pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMsXG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMsXG4gIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIsXG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLFxuICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWQsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcltkaXNhYmxlZF0sIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXJbZGlzYWJsZWRdLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXJbZGlzYWJsZWRdLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOjpiZWZvcmUsXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6OmJlZm9yZSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIgc3BhbixcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlciBzcGFuLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlciBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LFxuICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCxcbiAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50IHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC44cmVtOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZCxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnRbZGlzYWJsZWRdLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50W2Rpc2FibGVkXSxcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50W2Rpc2FibGVkXSxcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6YmVmb3JlLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OjpiZWZvcmUsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50IHNwYW4sXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQgc3BhbixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQgc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXZpZXdzLWRhc2hib2FyZCAucHJvZHVjdC1uYW1lIHtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnJhdGluZy1yZXN1bHQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLWRhc2hib2FyZCAucmF0aW5nLXJlc3VsdDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZCAucmF0aW5nLXN1bW1hcnkuaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcgLnByb2R1Y3QtbmFtZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcgLnJldmlldy10aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcudmlldyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldy52aWV3IC5yZXZpZXcudGl0bGUsXG4gICAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3LnZpZXcgLnJhdGluZ3Mtc3VtbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcudmlldyAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LWRldGFpbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LW1lZGlhIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgIG1heC13aWR0aDogMjguNXJlbTtcbiAgICB3aWR0aDogMzAlOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIC5pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAgIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcgLml0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LXRpdGxlIHtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmF0aW5nLXN1bW1hcnksXG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJldmlld3MtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS5jcmVhdGUuYWNjb3VudCxcbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQsXG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLnJlc2V0LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uLFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCxcbiAgLmNzLWRhc2hib2FyZCAjYXdfZ2lmdGNhcmRfX2NoZWNrX2NvZGVfZm9ybSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50LFxuICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWVkaXQtYWNjb3VudCxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uLFxuICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5mb3JnZXQsXG4gICAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCBicixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIGJyLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IGJyLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gYnIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmZ1bGxuYW1lIC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50IC5mdWxsbmFtZSAubGFiZWwsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZ1bGxuYW1lIC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmZ1bGxuYW1lIC5sYWJlbCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5mdWxsbmFtZSA+IC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZnVsbG5hbWUgPiAubGFiZWwsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5mdWxsbmFtZSA+IC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5mdWxsbmFtZSA+IC5sYWJlbCB7XG4gICAgICB3aWR0aDogMXB4OyB9XG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5jcmVhdGUuYWNjb3VudCAuZnVsbG5hbWUgLmNvbnRyb2wsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgLmZ1bGxuYW1lIC5jb250cm9sLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50IC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLnJlc2V0IC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCAuZnVsbG5hbWUgLmNvbnRyb2wsXG4gICAgLmNzLWRhc2hib2FyZCAjYXdfZ2lmdGNhcmRfX2NoZWNrX2NvZGVfZm9ybSAuZnVsbG5hbWUgLmNvbnRyb2wge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5hY3Rpb24ucHJpbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuYWN0aW9uLnByaW1hcnksXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5hY3Rpb24ucHJpbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5hY3Rpb24ucHJpbWFyeSB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuYmFjayxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIC5iYWNrLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5iYWNrLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmJhY2sge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmZpZWxkc2V0LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tYWRkcmVzcy1lZGl0IC5maWVsZHNldCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWVkaXQtYWNjb3VudCAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5zZW5kLmNvbmZpcm1hdGlvbiAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5mb3JnZXQgLmZpZWxkc2V0LFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmZpZWxkc2V0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5maWVsZHNldC1mdWxsbmFtZSxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZmllbGRzZXQtZnVsbG5hbWUsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5maWVsZHNldC1mdWxsbmFtZSxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5maWVsZHNldC1mdWxsbmFtZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmFkZHJlc3NlcyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stYWRkcmVzc2VzLWxpc3QgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1kYXNoYm9hcmQgLmJveC1iaWxsaW5nLWFkZHJlc3Mge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLWFkZGl0aW9uYWwtYWRkcmVzc2VzLWl0ZW1zIC5jb2wuc3RhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0aDpmaXJzdC1jaGlsZCxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtYWRkaXRpb25hbC1hZGRyZXNzZXMtaXRlbXMgdGg6bGFzdC1jaGlsZCxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzkuOTllbSkge1xuICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyAuYWN0aW9uLmRlbGV0ZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyAuYWN0aW9uLmRlbGV0ZTpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3OS45OWVtKSB7XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLWFkZGl0aW9uYWwtYWRkcmVzc2VzLWl0ZW1zIC5hY3Rpb24uZWRpdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1uZXdzbGV0dGVyLW1hbmFnZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLW5ld3NsZXR0ZXItbWFuYWdlIC5maWVsZHNldCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2J1dHRvbiwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtZGFzaGJvYXJkX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGFzaGJvYXJkX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGFzaGJvYXJkX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGFzaGJvYXJkX19idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgLmNzLWRhc2hib2FyZF9fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgLmNzLWRhc2hib2FyZF9fYnV0dG9uLXNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1ndWVzdCB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtZ3Vlc3QtY29weSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1ndWVzdC1jb3B5LWljb24ge1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBmaWxsOiAjNjk2OTY5O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4uY3MtY29udGFpbmVyLS1jcmVhdGUtYWNjb3VudC1wYWdlLCAuY3MtY29udGFpbmVyLS1sb2dpbi1wYWdlLCAuY3MtY29udGFpbmVyLS1zdWNjZXNzLXBhZ2UsIC5jcy1jb250YWluZXItLWxvZ291dC1wYWdlLCAuY3MtY29udGFpbmVyLS1jb250YWN0LXBhZ2Uge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyLS1jcmVhdGUtYWNjb3VudC1wYWdlLCAuY3MtY29udGFpbmVyLS1sb2dpbi1wYWdlLCAuY3MtY29udGFpbmVyLS1zdWNjZXNzLXBhZ2UsIC5jcy1jb250YWluZXItLWxvZ291dC1wYWdlLCAuY3MtY29udGFpbmVyLS1jb250YWN0LXBhZ2Uge1xuICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1teS1hY2NvdW50LXBhZ2Uge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfSB9XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5hY3Rpb24ge1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTsgfVxuXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuYWN0aW9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLmJsb2NrIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMDsgfVxuXG4uYmxvY2sgLmJveC1hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG5cbi5hY2NvdW50LnBhZ2UtcHJpbnQgLml0ZW1zLXF0eSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1kYXNoYm9hcmQge1xuICBwYWRkaW5nLWJvdHRvbTogODVweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jcy1kYXNoYm9hcmRfX2NvbHVtbnMge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX3RvcCB7XG4gICAgcGFkZGluZy1ibG9jazogMDsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX3RvcCAub3JkZXItZGV0YWlscy1pbnZvaWNlcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0cmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZF9fdG9wIGZvcm0gLmZpZWxkIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgICAgIC5jcy1kYXNoYm9hcmRfX3RvcCBmb3JtIC5maWVsZC10b29sdGlwIHtcbiAgICAgICAgZmxleC1ncm93OiAxOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkX190b3AgZm9ybSAuZmllbGQgLmNvbnRyb2wge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkX190b3AgZm9ybSAuZmllbGQgLm5vdGU6ZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2JvdHRvbSB7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBwYWRkaW5nLWJsb2NrOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQge1xuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogMzJyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0cmVtOyB9XG4gICAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDZyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmNob2ljZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtZGFzaGJvYXJkIC5ib3gtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jcy1kYXNoYm9hcmQgLmJveC1uZXdzbGV0dGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDVyZW07IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1jb250ZW50IGE6aG92ZXIge1xuICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXRpdGxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSAuY291bnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuYmxvY2stdGl0bGUgLmFjdGlvbi5lZGl0LFxuICAgIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXRpdGxlIC5hY3Rpb24udmlldyB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0NXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogM3B4OyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSAuYWN0aW9uLmVkaXQ6aG92ZXIsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSAuYWN0aW9uLnZpZXc6aG92ZXIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay10aXRsZSAuYWN0aW9uLmVkaXQ6OmFmdGVyLFxuICAgICAgLmNzLWRhc2hib2FyZCAuYmxvY2stdGl0bGUgLmFjdGlvbi52aWV3OjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzM0JyBoZWlnaHQ9JzI0JyBmaWxsPSclMjNjMTI3MmYnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnJTNFJTNDcGF0aCBkPSdNMzEuODgzIDEybC03LjUyNyA2LjIzNS42NDQuNzY1IDktNy41MjEtOS03LjQ3OS0uNjQ1Ljc2NCA3LjUyOSA2LjIzNmgtMzEuODg0djFoMjEuODgzeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICByaWdodDogLTQ1cHg7IH1cbiAgLmNzLWRhc2hib2FyZCAuYm94LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMtdG9vbGJhciAuc2Vjb25kYXJ5IHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ib3gtYWN0aW9ucyxcbiAgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogMC41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmJveC1hY3Rpb25zLFxuICAgICAgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50OyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ib3gtYWN0aW9ucyBhLnZpZXcsXG4gICAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYS5vcmRlcixcbiAgICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIGEudmlldyxcbiAgICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIGEub3JkZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBjb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYS52aWV3OmhvdmVyLFxuICAgICAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYS5vcmRlcjpob3ZlcixcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgYS52aWV3OmhvdmVyLFxuICAgICAgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyBhLm9yZGVyOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1kYXNoYm9hcmQgLmJveC1hY3Rpb25zIGEudmlldzpudGgtY2hpbGQoMiksXG4gICAgICAgIC5jcy1kYXNoYm9hcmQgLmJveC1hY3Rpb25zIGEub3JkZXI6bnRoLWNoaWxkKDIpLFxuICAgICAgICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIGEudmlldzpudGgtY2hpbGQoMiksXG4gICAgICAgIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgYS5vcmRlcjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7IH1cbiAgICAgICAgICAuY3MtZGFzaGJvYXJkIC5ib3gtYWN0aW9ucyBhLnZpZXc6bnRoLWNoaWxkKDIpOjpiZWZvcmUsXG4gICAgICAgICAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYS5vcmRlcjpudGgtY2hpbGQoMik6OmJlZm9yZSxcbiAgICAgICAgICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIGEudmlldzpudGgtY2hpbGQoMik6OmJlZm9yZSxcbiAgICAgICAgICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIGEub3JkZXI6bnRoLWNoaWxkKDIpOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJ8XCI7XG4gICAgICAgICAgICBoZWlnaHQ6IDEuOHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gICAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYS5lZGl0LFxuICAgIC5jcy1kYXNoYm9hcmQgLmJveC1hY3Rpb25zIGEuY2hhbmdlLXBhc3N3b3JkLFxuICAgIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgYS5lZGl0LFxuICAgIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgYS5jaGFuZ2UtcGFzc3dvcmQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAgIC5jcy1kYXNoYm9hcmQgLmJveC1hY3Rpb25zIGEuZWRpdDphZnRlcixcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmJveC1hY3Rpb25zIGEuY2hhbmdlLXBhc3N3b3JkOmFmdGVyLFxuICAgICAgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyBhLmVkaXQ6YWZ0ZXIsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIGEuY2hhbmdlLXBhc3N3b3JkOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGJhY2tncm91bmQ6IGNlbnRlciBuby1yZXBlYXQgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2VkaXQuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIGhlaWdodDogMS4zcmVtO1xuICAgICAgICB3aWR0aDogMS4zcmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNvbXBsYWludC1mb3JtLXN0ZXBzIC5maWVsZC5zdGVwX19kYXRlcGlja2VyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jb21wbGFpbnQtZm9ybS1zdGVwcyAuZmllbGQuc3RlcF9fZGF0ZXBpY2tlciBsYWJlbC5lcnJvciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0yNXB4O1xuICAgICAgbGVmdDogMTVweDsgfVxuICAuY3MtZGFzaGJvYXJkIC5jb21wbGFpbnQtZm9ybS1zdGVwcyAuc3RlcF9fZmllbGQuZmllbGQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jb21wbGFpbnQtZm9ybS1zdGVwcyAuc3RlcF9fZmllbGQuZmllbGQgLm1hZ2UtZXJyb3Ige1xuICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5jb21wbGFpbnQtZm9ybS1zdGVwcyAuc3RlcF9fdmFsaWRhdGlvbi1tc2cge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6ICNmZjcyMDA7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNvbXBsYWludC1mb3JtLXN0ZXBzICNzdGVwXzMgc3Bhbi5maWVsZDpub3QoLnN0ZXBfX2hlYWRpbmcpIHtcbiAgICBjb2xvcjogI2ZmNzIwMDsgfVxuICAuY3MtZGFzaGJvYXJkIC5maWVsZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuZmllbGQuc3RyZWV0IC5uZXN0ZWQuZmllbGRzZXQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjlyZW07XG4gICAgd2lkdGg6IDEuOXJlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Oi1tb3otZm9jdXMtaW5uZXIsIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzMzMzMzMycgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAgICAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQsIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkOmhvdmVyLCAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSxcbiAgICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1bZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXVtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPSclMjMzMzMzMzMnIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQgbGFiZWxbZm9yPVwiZl9kaWZmZXJlbnRfcmV0dXJuX2FkZHJlc3NcIl0ge1xuICAgIG1hcmdpbi1sZWZ0OiAzcmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQgbGFiZWxbZm9yPVwiZl9kaWZmZXJlbnRfcmV0dXJuX2FkZHJlc3NcIl0gKyAuY29udHJvbCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldC5oZG14X190aWNrZXQtaGlzdG9yeSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2std2lzaGxpc3QgLmJsb2NrLXRpdGxlIGEge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA0NXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay13aXNobGlzdCAuYmxvY2stdGl0bGUgYTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmJsb2NrLXdpc2hsaXN0IC5ibG9jay10aXRsZSBhOjphZnRlciB7XG4gICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPSczNCcgaGVpZ2h0PScyNCcgZmlsbD0nJTIzYzEyNzJmJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyUzRSUzQ3BhdGggZD0nTTMxLjg4MyAxMmwtNy41MjcgNi4yMzUuNjQ0Ljc2NSA5LTcuNTIxLTktNy40NzktLjY0NS43NjQgNy41MjkgNi4yMzZoLTMxLjg4NHYxaDIxLjg4M3onLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICB3aWR0aDogMzRweDtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICByaWdodDogLTQ1cHg7IH1cbiAgLmNzLWRhc2hib2FyZCAucmV2aWV3cyAudGFibGUtcmV2aWV3cyB7XG4gICAgaGVpZ2h0OiAxcHg7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5yZXZpZXdzIC50YWJsZS1yZXZpZXdzIC5wcm9kdWN0LW5hbWUge1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWRhc2hib2FyZCAucmV2aWV3cyAudGFibGUtcmV2aWV3cyAuY29sLmFjdGlvbnMge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0LjAxZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZCAucmV2aWV3cyAudGFibGUtcmV2aWV3cyAuY29sLmFjdGlvbnMgPiBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgIC5jcy1kYXNoYm9hcmQgLnJldmlld3MgLnRhYmxlLXJldmlld3MgLmNvbC5hY3Rpb25zID4gYTpudGgtY2hpbGQobiArIDIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfSB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC5yZXZpZXdzIC50YWJsZS1yZXZpZXdzIC5jb2wuYWN0aW9ucyA+IGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmNzLWRhc2hib2FyZCBhLmFjdGlvbjpob3ZlciB7XG4gICAgY29sb3I6ICNjMTI3MmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmNzLWRhc2hib2FyZCAjb3JkZXItYWRkaXRpb25hbC1jbXMtYmxvY2sge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCAjMDAwMDAwMDg7IH1cblxuLmNzLWNhcHRjaGFfX25vdGUge1xuICBtYXJnaW4tdG9wOiAxcmVtICFpbXBvcnRhbnQ7IH1cblxuLmNzLXBhZ2Utc3VjY2VzcyB7XG4gIG1hcmdpbjogMnJlbSAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXBhZ2Utc3VjY2VzcyB7XG4gICAgICBtYXJnaW46IDRyZW0gYXV0byAycmVtOyB9IH1cbiAgLmNzLXBhZ2Utc3VjY2Vzc19faW5uZXIge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZjBmMGYwO1xuICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3NfX2lubmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTsgfSB9XG4gIC5jcy1wYWdlLXN1Y2Nlc3NfX3NlY3Rpb24ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXBhZ2Utc3VjY2Vzc19fc2VjdGlvbjpudGgtY2hpbGQoMm4gKyAyKSB7XG4gICAgICBtYXJnaW4tdG9wOiAzcmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3NfX3NlY3Rpb24ge1xuICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgICAgICAuY3MtcGFnZS1zdWNjZXNzX19zZWN0aW9uOm50aC1jaGlsZCgybiArIDEpIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtOyB9XG4gICAgICAgIC5jcy1wYWdlLXN1Y2Nlc3NfX3NlY3Rpb246bnRoLWNoaWxkKDJuICsgMikge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtcGFnZS1zdWNjZXNzX19zZWN0aW9uOm50aC1jaGlsZCgybiArIDIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXBhZ2Utc3VjY2Vzc19fc2VjdGlvbjpudGgtY2hpbGQoMm4gKyAxKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07IH1cbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3NfX3NlY3Rpb246bnRoLWNoaWxkKDJuICsgMikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDZyZW07IH0gfVxuICAuY3MtcGFnZS1zdWNjZXNzX19zdWJoZWFkbGluZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuY3MtcGFnZS1zdWNjZXNzX19idXR0b24ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAuY3MtcGFnZS1zdWNjZXNzX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1wYWdlLXN1Y2Nlc3NfX2J1dHRvbiwgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1wYWdlLXN1Y2Nlc3NfX2J1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcGFnZS1zdWNjZXNzX19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgIC5jcy1wYWdlLXN1Y2Nlc3NfX2J1dHRvbi1zcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgLmNzLXBhZ2Utc3VjY2Vzc19fYnV0dG9uLWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAuZmllbGRzZXQge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5maWVsZHNldC5pbmZvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLmZpZWxkc2V0LmluZm8gLmxlZ2VuZCxcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLmZpZWxkc2V0LmluZm8gLmZpZWxkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLmZpZWxkc2V0LmFjY291bnQgLmZpZWxkOmZpcnN0LW9mLXR5cGUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLmZpZWxkc2V0LmFjY291bnQgLnBhc3N3b3JkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5maWVsZHNldC5hY2NvdW50ICNwYXNzd29yZC1zdHJlbmd0aC1tZXRlci1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5sZWdlbmQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAubGVnZW5kIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLmNob2ljZSAubGFiZWwge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSA+IGJ1dHRvbixcbiAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSAuY3JlYXRlIHtcbiAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSA+IGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5wcmltYXJ5IC5jcmVhdGU6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgPiBidXR0b24sIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZCxcbiAgICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5wcmltYXJ5IC5jcmVhdGUsXG4gICAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSAuY3JlYXRlOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSA+IGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgPiBidXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5wcmltYXJ5ID4gYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgPiBidXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSAuY3JlYXRlOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgLmNyZWF0ZTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5wcmltYXJ5IC5jcmVhdGU6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgLmNyZWF0ZTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgLmNyZWF0ZTp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgLmNyZWF0ZTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5wcmltYXJ5ID4gYnV0dG9uW2Rpc2FibGVkXSwgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSA+IGJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgLmNyZWF0ZVtkaXNhYmxlZF0sXG4gICAgICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5wcmltYXJ5IC5jcmVhdGU6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gICAgLmNzLXBhZ2Utc3VjY2VzcyAuZm9ybS1jcmVhdGUtYWNjb3VudCAucHJpbWFyeSA+IGJ1dHRvbiBzcGFuLFxuICAgIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgLmNyZWF0ZSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5jcy1wYWdlLXN1Y2Nlc3MgLmZvcm0tY3JlYXRlLWFjY291bnQgLnByaW1hcnkgPiBidXR0b24uYWN0aW9uLnVwZGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtcGFnZS1zdWNjZXNzIC5mb3JtLWNyZWF0ZS1hY2NvdW50IC5zZWNvbmRhcnkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3BhZ2VzL2xheW91dC8yY29sdW1ucy1sZWZ0L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kZGFzaGJvYXJkLWJ1dHRvbl90eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRkYXNoYm9hcmQtYnV0dG9uX3NlY29uZGFyeS10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2J1dHRvbl9mb3Jtcy1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmQtYnV0dG9uX3NtYWxsLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX21haW4tc2VwYXJhdG9yLWFwcGx5OiBmYWxzZSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfc2lkZWJhci1tYWluLXNwYWNlOiAzLjVyZW0gIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JvdHRvbS1ib3JkZXItdG9wOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2hlYWRsaW5lLWxpbmtzLXNlcGFyYXRvcjogMnB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF9sb2dpbi1zZWN0aW9ucy1zZXBhcmF0b3I6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGRhc2hib2FyZF9oZWFkbGluZS1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtcGFkZGluZy1ib3R0b206IDAuOHJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2hlYWRsaW5lLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2hlYWRsaW5lLWxpbmstZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhZGVmYXVsdDtcblxuJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JveC10aXRsZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF9ib3gtdGl0bGUtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGRhc2hib2FyZF90ZXh0LWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfdGV4dC1saW5lLWhlaWdodDogMi41cmVtICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX2xpbmtzLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuXG4vLyBGb3Igc2hvcHMgd2l0aCBkYXJrZXIgYmFja2dyb3VuZCBlbGVtZW50cyBpbiB1c2VyIGFyZWEgYXJlIHBsYWNlZCBpbiBzZXBhcmF0ZSBib3hlc1xuXG4vLyBWYWx1ZXMgc3BlY2lmaWMgZm9yIHNob3BzIHdpdGggYmFja2dyb3VuZFxuJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQ6IGZhbHNlICFkZWZhdWx0O1xuJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzOiBmYWxzZSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGlkZS10aXRsZXMtc2VwYXJhdG9yczogZmFsc2UgIWRlZmF1bHQ7XG4vLyBTZXQgdmFsdWUgaWYgJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgaXMgc2V0IHRvIHRydWVcbiRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZzogMCAhZGVmYXVsdDtcbi8vIEZvciBzaG9wcyB3aGl0ZSB3aGl0ZSBiYWNrZ3JvdW5kIGl0IGlzIGFsc28gbmVlZGVkIGFzIGl0IGlzIHBhcnQgb2Ygc3BhY2luZyBzeXN0ZW0uXG4vLyBGb3Igc2hvcHMgd2l0aCBkYXJrZXIgYmFja2dyb3VuZCB2YWx1ZSBoZXJlIGNhbiBiZSBzbWFsbGVyIG9mIGhpZ2hlclxuJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzOiAycmVtICFkZWZhdWx0O1xuXG4vLyBPcmRlciB0YWJsZVxuJGRhc2hib2FyZF9wcmljZS1mb250LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31kYXNoYm9hcmQge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgdHdvLWNvbHVtbnMtbGVmdCgkZGFzaGJvYXJkX21haW4tc2VwYXJhdG9yLWFwcGx5KTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICZfX2NvbHVtbnMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogM3JlbSAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2lkZWJhciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAkZGFzaGJvYXJkX3NpZGViYXItbWFpbi1zcGFjZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEd1ZXN0IHdpc2hsaXN0IHdpdGhvdXQgc2lkZWJhclxuICAgICAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXgucGFnZS1sYXlvdXQtMWNvbHVtbiAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG9wIHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAzcmVtO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDFyZW07XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGFnZS10aXRsZSB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxcmVtIDA7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5tZXNzYWdlLWVycm9yLFxuICAgIC5tZXNzYWdlLXN1Y2Nlc3MsXG4gICAgLm1lc3NhZ2Utbm90aWNlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGRhc2hib2FyZF9ib3R0b20tYm9yZGVyLXRvcDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3Qge1xuICAgICAgICAmLWxpbmUge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCB7XG4gICAgICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtZ3Vlc3QtY29kZSB7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgJl9fYm90dG9tLXdpc2hsaXN0IHtcbiAgICAgICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDMzLjMzJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQobiArIDQpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9naW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLXNlY3Rpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAoI3skZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXN9IC8gMikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRkYXNoYm9hcmRfbG9naW4tc2VjdGlvbnMtc2VwYXJhdG9yO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMm4gKyAyKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29udGFjdC1wYWdlIHtcbiAgICAgICAgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWN0LWZvcm0ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gR2VuZXJhbCBVc2VyIEFyZWEgc3R5bGVzXG5cbiAgICAuZmllbGRzZXQsXG4gICAgLmZvcm0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxNXJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5maWVsZHNldCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbWF4LXdpZHRoOiA0NXJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5maWVsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgLmxpbWl0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgIC5jaG9pY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRkYXNoYm9hcmRfbGlua3MtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmRfbGlua3MtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoZWNrYm94IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5maWVsZC1uYW1lLXByZWZpeCB7XG4gICAgICAgIG1heC13aWR0aDogMTJyZW07XG4gICAgfVxuXG4gICAgLnByaW1hcnkge1xuICAgICAgICA+IGJ1dHRvbixcbiAgICAgICAgLmNyZWF0ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbl9pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIC53aXNobGlzdC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBidXR0b24uYWN0aW9uLnVwZGF0ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJlbWluZCxcbiAgICAuYmFjayB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9saW5rcy1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuN3JlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5jb3VudGVyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYXNoYm9hcmRfbGlua3MtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXJlbSk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jayB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDEuNXJlbSAwIDIuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDEuNXJlbSAwIDRyZW07XG5cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay10aXRsZSxcbiAgICAubGVnZW5kLFxuICAgIC5vcmRlci10aXRsZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRkYXNoYm9hcmRfaGVhZGxpbmUtYm9yZGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX2hlYWRsaW5lLW1hcmdpbi1ib3R0b207XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZGFzaGJvYXJkX2hlYWRsaW5lLXBhZGRpbmctYm90dG9tO1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2hlYWRsaW5lLWZvbnQtc2l6ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtdGl0bGVzLXNlcGFyYXRvcnMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJsb2NrLXRpdGxlIGEge1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2hlYWRsaW5lLWxpbmstZm9udC1zaXplO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLmJveC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGFzaGJvYXJkX2JveC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICAuYmxvY2stY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXJnaW46IDJyZW0gMCAwO1xuXG4gICAgICAgIC5zYWxlcy1vcmRlci1oaXN0b3J5ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubm8tZGlzcGxheSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrLW5ldy1jdXN0b21lciAuYmxvY2stY29udGVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stcmV3YXJkLWhpc3Rvcnkge1xuICAgICAgICAuI3skbnN9dG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBvdGhlciB3YXkgdG8gcmVtb3ZlIHRvcCB0b29sYmFyIGVsZW1lbnRzXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC43cmVtIDAgMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9dG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWFjdGlvbnMsXG4gICAgLmFjdGlvbnMge1xuICAgICAgICBhICsgYSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuN3JlbSAwIDAuNXJlbTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRkYXNoYm9hcmRfaGVhZGxpbmUtbGlua3Mtc2VwYXJhdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRhYmxlcyBub3QgcGxhY2VkIGluc2lkZSBib3ggaW4gbWFya3VwXG4gICAgLnRhYmxlLXdyYXBwZXIsXG4gICAgLm9yZGVycy1oaXN0b3J5LFxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAudG9vbGJhcixcbiAgICAgICAgJiArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vcmRlci1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAudG9vbGJhciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9yZGVycy1oaXN0b3J5LFxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zLFxuICAgIC5yZXZpZXdzLFxuICAgIC50cmFuc2FjdGlvbnMge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgIC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tcHdhbm90aWZpY2F0aW9ucy1tYW5hZ2Uge1xuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGQge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRuc310b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC50b29sYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIsXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfXRvb2xiYXJfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFtb3VudCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICArIC4jeyRuc310b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWxpbWl0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50b29sYmFyLWFtb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5saW1pdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYud2lzaGxpc3QtdG9vbGJhciB7XG4gICAgICAgICAgICBiciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3Rpb25zLXRvb2xiYXIgPiAuc2Vjb25kYXJ5IC5hY3Rpb24uYmFjayxcbiAgICAuc2Vjb25kYXJ5IC5hY3Rpb24uZWRpdC1lbWFpbC1wcmVmZXJlbmNlcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLmJveCxcbiAgICAuYWRkcmVzc2VzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWNvbnRlbnQsXG4gICAgLmFkZHJlc3NlcyAuaXRlbSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX3RleHQtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZGFzaGJvYXJkX3RleHQtY29sb3I7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZGFzaGJvYXJkX3RleHQtbGluZS1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnRvb2x0aXAud3JhcHBlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9saW5rcy1mb250LXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLmNob2ljZS5wZXJzaXN0ZW50IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICAvLyBPcmRlciBzY3Rpb24gYW5kIHBhZ2VcbiAgICAudGFibGUtb3JkZXItaXRlbXMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIC4jeyRuc310YWJsZV9fY29sOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgICAgICAgICAgLml0ZW1zLXF0eSxcbiAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZGFzaGJvYXJkX3ByaWNlLWZvbnQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31jYXJ0LWl0ZW1fX29wdGlvbnMtbGFiZWwge1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9dGFibGVfX2NvbC5zdWJ0b3RhbCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW1zLXF0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgJixcbiAgICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgJixcbiAgICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50ICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcmRlciB7XG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItdmlldyAmLFxuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgJixcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmQtYnV0dG9uX3NtYWxsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJpbnQge1xuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgJixcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlICYsXG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fc2Vjb25kYXJ5LXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZC1idXR0b25fc21hbGwtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl9zZWNvbmRhcnktdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZpZXdzIHNlY3Rpb24gYW5kIHBhZ2VcbiAgICAuYmxvY2stcmV2aWV3cy1kYXNoYm9hcmQge1xuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhdGluZy1yZXN1bHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmF0aW5nLXN1bW1hcnkuaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5jdXN0b21lci1yZXZpZXcge1xuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRmb250LXNpemVfaGVhZGxpbmUtNCk7XG4gICAgICAgIH1cblxuICAgICAgICAucmV2aWV3LXRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRmb250LXNpemVfaGVhZGxpbmUtNCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYudmlldyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICAucmV2aWV3LnRpdGxlLFxuICAgICAgICAgICAgLnJhdGluZ3Mtc3VtbWFyeSxcbiAgICAgICAgICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1tZWRpYSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMyU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI4LjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucmV2aWV3LWRldGFpbHMgLnJldmlldy10aXRsZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXZpZXctZGV0YWlscyAucmV2aWV3LWNvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmF0aW5nLXN1bW1hcnksXG4gICAgICAgIC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmV2aWV3cy1hY3Rpb25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkcmVzcyBmb3JtcyBzZWN0aW9uc1xuICAgIC5mb3JtLmNyZWF0ZS5hY2NvdW50LFxuICAgIC5mb3JtLWFkZHJlc3MtZWRpdCxcbiAgICAuZm9ybS1lZGl0LWFjY291bnQsXG4gICAgLmZvcm0ucGFzc3dvcmQucmVzZXQsXG4gICAgLmZvcm0uc2VuZC5jb25maXJtYXRpb24sXG4gICAgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0LFxuICAgICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBiciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZ1bGxuYW1lIHtcbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSW4gdGhlbWUtZnJvbnRlbmQtYmxhbmsvTWFnZW50b19DdXN0b21lci93ZWIvY3NzL3NvdXJjZS9fbW9kdWxlLmxlc3MgdGhpcyBsYWJlbCBpcyB2aXN1YWxseSBoaWRkZW4sXG4gICAgICAgICAgICAvLyBhbmQgZmlyc3QgbGFiZWwgd2lkdGggbXVzdCBiZSAxcHggaGVyZVxuICAgICAgICAgICAgPiAubGFiZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250cm9sIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24ucHJpbWFyeSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmRfYnV0dG9uX2Zvcm1zLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5iYWNrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZHNldC1mdWxsbmFtZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tZWRpdC1hY2NvdW50LFxuICAgIC5mb3JtLWFkZHJlc3MtZWRpdCB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFkZHJlc3NlcyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5ibG9jay1hZGRyZXNzZXMtbGlzdCB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay1hZGRyZXNzZXMtbGlzdCArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwXG4gICAgICAgICAgICAgICAgJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nXG4gICAgICAgICAgICAgICAgJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJveC1iaWxsaW5nLWFkZHJlc3Mge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudGFibGUtYWRkaXRpb25hbC1hZGRyZXNzZXMtaXRlbXMge1xuICAgICAgICAuY29sLnN0YXRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24uZGVsZXRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcsICc8bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLmVkaXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJywgJzxsYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXdzbGV0dGVyIHNlY3Rpb25cbiAgICAuZm9ybS1uZXdzbGV0dGVyLW1hbmFnZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZHNldCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAub3JkZXItZGV0YWlscy1pdGVtcy5vcmRlcmVkIHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9yZGVyLWxpbmtzIHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWd1ZXN0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtZ3Vlc3QtY29weSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWd1ZXN0LWNvcHktaWNvbiB7XG4gICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgIGZpbGw6ICRkYXNoYm9hcmRfdGV4dC1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tY3JlYXRlLWFjY291bnQtcGFnZSxcbiAgICAmLS1sb2dpbi1wYWdlLFxuICAgICYtLXN1Y2Nlc3MtcGFnZSxcbiAgICAmLS1sb2dvdXQtcGFnZSxcbiAgICAmLS1jb250YWN0LXBhZ2Uge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW15LWFjY291bnQtcGFnZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5hY3Rpb24ge1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtO1xufVxuXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuYWN0aW9uOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLmJsb2NrIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uYmxvY2sgLmJveC1hY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5hY2NvdW50LnBhZ2UtcHJpbnQge1xuICAgIC5pdGVtcy1xdHkge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnfkNyZWF0aXZlc2hvcC9wYWdlcy9sYXlvdXQvMmNvbHVtbnMtbGVmdC9taXhpbi5zY3NzJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9jb2x1bW5zLXBlci1yb3c6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VTdWl0ZV9Db250ZW50Q29uc3RydWN0b3IsXG4gICAgY29sdW1ucyxcbiAgICBvbmUtY29sdW1uXG4pICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfd2FzLXNlcGFyYXRvci1jYWxsZWQteWV0OiBmYWxzZSAhZGVmYXVsdDtcblxuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLXRhYmxldDogJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItZGVza3RvcDogJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLXRhYmxldCAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci1kZXNrdG9wOiAyICpcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtc2VwYXJhdG9yLWFwcGx5OiB0cnVlICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtc2VwYXJhdG9yLWNvbG9yOiAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcblxuJGxheW91dC0yY29sLWxlZnRfbGF5b3V0LWFsaWduLWl0ZW1zOiBzdHJldGNoICFkZWZhdWx0O1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctdGFibGV0OiAwXG4gICAgJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLXRhYmxldCAwIDAgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctZGVza3RvcDogMFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci1kZXNrdG9wIDAgMCAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItYm9yZGVyLXJpZ2h0OiAycHggc29saWRcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1zZXBhcmF0b3ItY29sb3IgIWRlZmF1bHQ7XG5cbiRsYXlvdXQtMmNvbC1sZWZ0X21haW4tdG9wLXNwYWNpbmc6IDEuNXJlbSAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X21haW4tcGFkZGluZzogJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZyAwIDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nLXRhYmxldDogJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZyAwIDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nLWRlc2t0b3A6ICRsYXlvdXQtMmNvbC1sZWZ0X21haW4tdG9wLXNwYWNpbmcgMCAwXG4gICAgJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLWRlc2t0b3AgIWRlZmF1bHQ7XG5cbkBtaXhpbiB0d28tY29sdW1ucy1sZWZ0KCRhcHBseS1ib3JkZXI6IHRydWUpIHtcbiAgICAmX19jb2x1bW5zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiAkbGF5b3V0LTJjb2wtbGVmdF9sYXlvdXQtYWxpZ24taXRlbXM7XG5cbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2VzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fc2lkZWJhciB7XG4gICAgICAgIG9yZGVyOiAxO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGxheW91dC0yY29sLWxlZnRfY29sdW1ucy1wZXItcm93IHtcbiAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCAhPSBwaG9uZSBhbmQgJGJyZWFrcG9pbnQgIT0gcGhvbmVMZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAjeyRpdGVtc1BlclJvd30pO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkaXRlbXNQZXJSb3cgPlxuICAgICAgICAgICAgICAgICAgICAgICAgMSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICRsYXlvdXQtMmNvbC1sZWZ0X3dhcy1zZXBhcmF0b3ItY2FsbGVkLXlldCA9PVxuICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLWJvcmRlci1yaWdodCAhPVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9uZVxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgJGFwcGx5LWJvcmRlciA9PSB0cnVlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItYm9yZGVyLXJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRhcHBseS1ib3JkZXIgPT0gZmFsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJvcmRlci1yaWdodDogJGxheW91dC0yY29sLWxlZnRfc2lkZWJhci1ib3JkZXItcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGF5b3V0LTJjb2wtbGVmdF93YXMtc2VwYXJhdG9yLWNhbGxlZC15ZXQ6IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgPT0gJ3RhYmxldCcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJGxheW91dC0yY29sLWxlZnRfc2lkZWJhci1wYWRkaW5nLXRhYmxldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAnbGFwdG9wJyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctZGVza3RvcDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBvcmRlcjogMjtcblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRsYXlvdXQtMmNvbC1sZWZ0X2NvbHVtbnMtcGVyLXJvdyB7XG4gICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgIT0gcGhvbmUgYW5kICRicmVha3BvaW50ICE9IHBob25lTGcge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDEwMCUgLyAjeyRpdGVtc1BlclJvd30pKTtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgJGJyZWFrcG9pbnQgPT0gJ3RhYmxldCcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nLXRhYmxldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAnbGFwdG9wJyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctZGVza3RvcDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1wYWdlLWNhdGVnb3J5X19tYWluLS1zZWFyY2gtbm8tcmVzdWx0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIn5DcmVhdGl2ZXNob3AvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29uZmlnL21peGluc1wiO1xuQGltcG9ydCBcImNvbmZpZy9jb2xvcnNcIjtcblxuLiN7JG5zfWRhc2hib2FyZCB7XG4gIHBhZGRpbmctYm90dG9tOiAka21hX2Zvb3Rlci1wYWRkaW5nO1xuICAmX19jb2x1bW5zIHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdG9wIHtcbiAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgIC5vcmRlci1kZXRhaWxzLWludm9pY2VzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gICAgfVxuICAgIGZvcm0ge1xuICAgICAgLmZpZWxkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgJi10b29sdGlwIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRyb2wge1xuICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLm5vdGU6ZW1wdHkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19ib3R0b20ge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgcGFkZGluZy1ibG9jazogMDtcbiAgfVxuXG4gICZfX3dpc2hsaXN0IHtcbiAgICAmLXByb2R1Y3RzLWdyaWQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJlbSAhaW1wb3J0YW50O1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgICAgIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKSB7XG4gICAgICAgICAgaGVpZ2h0OiAzMnJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGVfX2FkZG9ucyB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRlbnQge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA2cmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1ncmlkIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmNob2ljZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5ib3gtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgfVxuXG4gIC5ib3gge1xuICAgICYtbmV3c2xldHRlciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJsb2NrLWNvbnRlbnQge1xuICAgIGEge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5ibG9jay10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC5jb3VudGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgfVxuICAgIC5hY3Rpb24uZWRpdCxcbiAgICAuYWN0aW9uLnZpZXcge1xuICAgICAgQGluY2x1ZGUga21hLWxpbms7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gICAgfVxuICB9XG5cbiAgLmJveC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgfVxuXG4gIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICAuc2Vjb25kYXJ5IHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuICB9XG5cbiAgLnRvb2xiYXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgfVxuICB9XG5cbiAgLmJveC1hY3Rpb25zLFxuICAuYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogMC41cmVtO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBhLnZpZXcsXG4gICAgYS5vcmRlciB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjw9bGFwdG9wXCIpIHtcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwifFwiO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjhyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGEuZWRpdCxcbiAgICBhLmNoYW5nZS1wYXNzd29yZCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYmFja2dyb3VuZDogY2VudGVyIG5vLXJlcGVhdCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZWRpdC5zdmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgaGVpZ2h0OiAxLjNyZW07XG4gICAgICAgIHdpZHRoOiAxLjNyZW07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5jb21wbGFpbnQtZm9ybS1zdGVwcyB7XG4gICAgLmZpZWxkLnN0ZXBfX2RhdGVwaWNrZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGFiZWwuZXJyb3Ige1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTI1cHg7XG4gICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5zdGVwX19maWVsZC5maWVsZCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgLm1hZ2UtZXJyb3Ige1xuICAgICAgICBtYXJnaW4tdG9wOiAtMC41cmVtO1xuICAgICAgfVxuICAgIH1cbiAgICAuc3RlcF9fdmFsaWRhdGlvbi1tc2cge1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGNvbG9yOiAka21hX2NvbG9yX29yYW5nZTtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICB9XG4gICAgI3N0ZXBfMyB7XG4gICAgICBzcGFuLmZpZWxkOm5vdCguc3RlcF9faGVhZGluZykge1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9vcmFuZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5maWVsZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICYuc3RyZWV0IHtcbiAgICAgIC5uZXN0ZWQuZmllbGRzZXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMnJlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmZpZWxkc2V0IHtcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3goKTtcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBsYWJlbFtmb3I9XCJmX2RpZmZlcmVudF9yZXR1cm5fYWRkcmVzc1wiXSB7XG4gICAgICBtYXJnaW4tbGVmdDogM3JlbTtcblxuICAgICAgKyAuY29udHJvbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5oZG14X190aWNrZXQtaGlzdG9yeSB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgLmJsb2NrLXdpc2hsaXN0IC5ibG9jay10aXRsZSBhIHtcbiAgICBAaW5jbHVkZSBrbWEtbGluaztcbiAgICBtYXJnaW4tYm90dG9tOiAzcHg7XG4gIH1cbiAgLnJldmlld3Mge1xuICAgIC50YWJsZS1yZXZpZXdzIHtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5jb2wuYWN0aW9ucyB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgJiA+IGEge1xuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmxhcHRvcFwiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGEuYWN0aW9uIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbiAgI29yZGVyLWFkZGl0aW9uYWwtY21zLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX3doaXRlO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgIzAwMDAwMDA4O1xuICB9XG59XG5cbi4jeyRuc31jYXB0Y2hhX19ub3RlIHtcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xufVxuIiwiLy8gIyMjIEJVVFRPTiAjIyMgXFxcXFxuXG5AbWl4aW4ga21hLWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICBib3JkZXItcmFkaXVzOiAyN3B4O1xuICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGFsbDtcbiAgICAmOmVuYWJsZWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG5AbWl4aW4ga21hLWJ1dHRvbi0tZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUga21hLWJ1dHRvbjtcbiAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgfVxufVxuXG5AbWl4aW4ga21hLWJ1dHRvbi0tcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUga21hLWJ1dHRvbjtcbiAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC04MDA7XG4gICAgfVxufVxuXG5AbWl4aW4ga21hLWJ1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgICBAaW5jbHVkZSBrbWEtYnV0dG9uO1xuICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS04MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgfVxufVxuXG4vLyAjIyMgTElOSyAjIyMgXFxcXFxuQG1peGluIGttYS1saW5rKCRhcnJvd0xlZnQ6IGZhbHNlKSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBhbGw7XG4gICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi1yaWdodDogNDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMzQnIGhlaWdodD0nMjQnIGZpbGw9JyUyM2MxMjcyZicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGNsaXAtcnVsZT0nZXZlbm9kZCclM0UlM0NwYXRoIGQ9J00zMS44ODMgMTJsLTcuNTI3IDYuMjM1LjY0NC43NjUgOS03LjUyMS05LTcuNDc5LS42NDUuNzY0IDcuNTI5IDYuMjM2aC0zMS44ODR2MWgyMS44ODN6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHJpZ2h0OiAtNDVweDtcbiAgICB9XG59XG5cbi8vICMjIyBcXFxcXFxcbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQnO1xuXG4kcGFnZS1zdWNjZXNzX3NlcGFyYXRvcjogMnB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJHBhZ2Utc3VjY2Vzc19zZWN0aW9ucy1zZXBhcmF0b3I6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRwYWdlLXN1Y2Nlc3Nfc3ViaGVhZGxpbmUtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWRlZmF1bHQ7XG4kcGFnZS1zdWNjZXNzX2NvbnRpbnVlLWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRwYWdlLXN1Y2Nlc3NfY29udGludWUtYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG4kcGFnZS1zdWNjZXNzX3JlZ2lzdGVyLWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRwYWdlLXN1Y2Nlc3NfcmVnaXN0ZXItYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG5cbiRwYWdlLXN1Y2Nlc3NfaGVhZGxpbmUtYm9yZGVyOiAkZGFzaGJvYXJkX2hlYWRsaW5lLWJvcmRlciAhZGVmYXVsdDtcbiRwYWdlLXN1Y2Nlc3NfaGVhZGxpbmUtbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9oZWFkbGluZS1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuJHBhZ2Utc3VjY2Vzc19oZWFkbGluZS1wYWRkaW5nLWJvdHRvbTogJGRhc2hib2FyZF9oZWFkbGluZS1wYWRkaW5nLWJvdHRvbSAhZGVmYXVsdDtcbiRwYWdlLXN1Y2Nlc3NfaGVhZGxpbmUtZm9udC13ZWlnaHQ6ICRkYXNoYm9hcmRfaGVhZGxpbmUtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcGFnZS1zdWNjZXNzX2hlYWRsaW5lLWZvbnQtc2l6ZTogJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXNpemUgIWRlZmF1bHQ7XG5cbiRwYWdlLXN1Y2Nlc3NfaGlkZS10aXRsZXMtc2VwYXJhdG9yczogJGRhc2hib2FyZF9oaWRlLXRpdGxlcy1zZXBhcmF0b3JzICFkZWZhdWx0O1xuXG4kcGFnZS1zdWNjZXNzX2xpbmtzLWZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHBhZ2Utc3VjY2Vzc19saW5rcy1mb250LXNpemU6ICRkYXNoYm9hcmRfbGlua3MtZm9udC1zaXplICFkZWZhdWx0O1xuXG4kcGFnZS1zdWNjZXNzX2hpZGUtcGVyc29uYWwtc2VjdGlvbjogdHJ1ZSAhZGVmYXVsdDtcbiRwYWdlLXN1Y2Nlc3Nfc2hvdy1kb2I6IGZhbHNlICFkZWZhdWx0O1xuJHBhZ2Utc3VjY2Vzc19oaWRlLWVtYWlsOiB0cnVlICFkZWZhdWx0O1xuJHBhZ2Utc3VjY2Vzc19oaWRlLXBhc3N3b3JkLXN0cmVuZ3RoOiB0cnVlICFkZWZhdWx0O1xuXG4uI3skbnN9cGFnZS1zdWNjZXNzIHtcbiAgICAkcm9vdDogJjtcbiAgICBtYXJnaW46IDJyZW0gMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luOiA0cmVtIGF1dG8gMnJlbTtcbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIGJvcmRlci10b3A6ICRwYWdlLXN1Y2Nlc3Nfc2VwYXJhdG9yO1xuICAgICAgICBwYWRkaW5nLXRvcDogMi41cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlY3Rpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDEpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRwYWdlLXN1Y2Nlc3Nfc2VjdGlvbnMtc2VwYXJhdG9yO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDZyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YmhlYWRsaW5lIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkcGFnZS1zdWNjZXNzX3N1YmhlYWRsaW5lLWZvbnQtc2l6ZSk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIC8vIENvbnRpbnVlIHNob3BwaW5nIGJ1dHRvblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkcGFnZS1zdWNjZXNzX2NvbnRpbnVlLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcGFnZS1zdWNjZXNzX2NvbnRpbnVlLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJHBhZ2Utc3VjY2Vzc19jb250aW51ZS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRwYWdlLXN1Y2Nlc3NfY29udGludWUtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkcGFnZS1zdWNjZXNzX2NvbnRpbnVlLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJHBhZ2Utc3VjY2Vzc19jb250aW51ZS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1jcmVhdGUtYWNjb3VudCB7XG4gICAgICAgIGJyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgICAgICAgICAgJi5pbmZvIHtcbiAgICAgICAgICAgICAgICBAaWYgJHBhZ2Utc3VjY2Vzc19oaWRlLXBlcnNvbmFsLXNlY3Rpb24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5sZWdlbmQsXG4gICAgICAgICAgICAgICAgICAgIC5maWVsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICRwYWdlLXN1Y2Nlc3Nfc2hvdy1kb2Ige1xuICAgICAgICAgICAgICAgICAgICAubGVnZW5kLFxuICAgICAgICAgICAgICAgICAgICAuZmllbGQtZG9iLFxuICAgICAgICAgICAgICAgICAgICAuZmllbGQtZG9iIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5maWVsZC1kb2Ige1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5hY2NvdW50IHtcbiAgICAgICAgICAgICAgICBAaWYgJHBhZ2Utc3VjY2Vzc19oaWRlLWVtYWlsIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2FkbHksIHRoZXJlIGlzIG5vIGJldHRlciB3YXkgb2YgdGFyZ2V0aW5nIHdob2xlIGVtYWlsIGZpZWxkLlxuICAgICAgICAgICAgICAgICAgICAuZmllbGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnBhc3N3b3JkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgJHBhZ2Utc3VjY2Vzc19oaWRlLXBhc3N3b3JkLXN0cmVuZ3RoIHtcbiAgICAgICAgICAgICAgICAgICAgI3Bhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxlZ2VuZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkcGFnZS1zdWNjZXNzX2hlYWRsaW5lLWJvcmRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRwYWdlLXN1Y2Nlc3NfaGVhZGxpbmUtbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkcGFnZS1zdWNjZXNzX2hlYWRsaW5lLXBhZGRpbmctYm90dG9tO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwYWdlLXN1Y2Nlc3NfaGVhZGxpbmUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwYWdlLXN1Y2Nlc3NfaGVhZGxpbmUtZm9udC1zaXplO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpZiAoJHBhZ2Utc3VjY2Vzc19oaWRlLXRpdGxlcy1zZXBhcmF0b3JzKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHBhZ2Utc3VjY2Vzc19oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2hvaWNlIHtcbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwYWdlLXN1Y2Nlc3NfbGlua3MtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcGFnZS1zdWNjZXNzX2xpbmtzLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmltYXJ5IHtcbiAgICAgICAgICAgID4gYnV0dG9uLFxuICAgICAgICAgICAgLmNyZWF0ZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJHBhZ2Utc3VjY2Vzc19yZWdpc3Rlci1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkcGFnZS1zdWNjZXNzX3JlZ2lzdGVyLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcGFnZS1zdWNjZXNzX3JlZ2lzdGVyLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkcGFnZS1zdWNjZXNzX3JlZ2lzdGVyLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBidXR0b24uYWN0aW9uLnVwZGF0ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWNvbmRhcnkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtY2FydC1wYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1jYXJ0LXBhZ2Uge1xuICAgICAgbWF4LXdpZHRoOiA0NXJlbTtcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgICAuY3MtY2FydC1wYWdlIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9IH1cbiAgLmNzLWNhcnQtcGFnZSAuY2FydC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07IH1cblxuLmNzLWNvbnRhaW5lci0tY2FydC1wYWdlIC5jcy1jb250YWluZXItLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5jcy1jb250YWluZXItLWNhcnQtcGFnZSAuY3MtY29udGFpbmVyLS1oZWFkbGluZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uY3MtY29udGFpbmVyX19jYXJ0LWNvdXBvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyX19jYXJ0LWNvdXBvbnMge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1jb250YWluZXItLWNhcnQtcGFnZSB7XG4gIHBhZGRpbmctYm90dG9tOiA4NXB4OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC5jcy1jYXJ0LXBhZ2UgLnBhZ2UtdGl0bGUge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLWJsb2NrOiAycmVtO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtOyB9IH1cblxuLmNzLWNhcnQtcGFnZSAuY2FydC1jb250YWluZXIgLnByaWNlLWV4Y2x1ZGluZy10YXg6OmJlZm9yZSxcbi5jcy1jYXJ0LXBhZ2UgLmNhcnQtY29udGFpbmVyIC5wcmljZS1pbmNsdWRpbmctdGF4OjpiZWZvcmUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQuMDFlbSkge1xuICAuY3MtY2FydC1wYWdlIC5jYXJ0LWNvbnRhaW5lciAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDcwJTsgfVxuICAuY3MtY2FydC1wYWdlIC5jYXJ0LWNvbnRhaW5lciAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDI4JTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MC4wMWVtKSB7XG4gIC5jcy1jYXJ0LXBhZ2UgLmNhcnQtY29udGFpbmVyIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICB3aWR0aDogNzIlOyB9XG4gIC5jcy1jYXJ0LXBhZ2UgLmNhcnQtY29udGFpbmVyIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMjYlOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLiN7JG5zfWNhcnQtcGFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIG1heC13aWR0aDogNDVyZW07XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FydC1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgJi0tY2FydC1wYWdlIHtcbiAgICAgICAgI3skcm9vdH0tLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0taGVhZGxpbmUge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhcnQtY291cG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL3BhZ2VzL2NhcnQvY2FydC5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG4uI3skbnN9Y29udGFpbmVyLS1jYXJ0LXBhZ2Uge1xuICAgIHBhZGRpbmctYm90dG9tOiAka21hX2Zvb3Rlci1wYWRkaW5nO1xufVxuXG4uI3skbnN9Y2FydC1wYWdlIHtcbiAgICAucGFnZS10aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6IDJyZW07XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMztcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FydC1jb250YWluZXIge1xuICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyOCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+bGFwdG9wTGdcIikge1xuICAgICAgICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiA3MiU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDI2JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4udWktZGF0ZXBpY2tlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTk5OSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4td2lkdGg6IDI1cmVtO1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDMzLCAzMywgMzMsIDAuMjgpO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG5cbi51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogI2ZlZDQwMDtcbiAgcGFkZGluZzogMS4ycmVtIDJyZW07XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDI0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG5cbi51aS1kYXRlcGlja2VyLXByZXYsXG4udWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJyZW07XG4gIHdpZHRoOiAxLjhlbTtcbiAgaGVpZ2h0OiAxLjhlbTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbixcbiAgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMC4ycmVtO1xuICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDsgfVxuXG4udWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgbGVmdDogMS41cmVtOyB9XG4gIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbiB7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbjpiZWZvcmUsIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogMnJlbTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwOyB9XG4gICAgLnVpLWRhdGVwaWNrZXItcHJldiBzcGFuOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAtMS4ycmVtO1xuICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwLjhyZW0gc29saWQgIzMyNGRjZjtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjhyZW07IH1cbiAgICAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW46YWZ0ZXIge1xuICAgICAgbGVmdDogLTFyZW07XG4gICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDAuNnJlbSBzb2xpZCAjZmVkNDAwO1xuICAgICAgbWFyZ2luLXRvcDogLTAuNnJlbTsgfVxuXG4udWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgcmlnaHQ6IDEuNXJlbTsgfVxuICAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW4ge1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW46YmVmb3JlLCAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW46YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7IH1cbiAgICAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW46YmVmb3JlIHtcbiAgICAgIHJpZ2h0OiAtMS4ycmVtO1xuICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDAuOHJlbSBzb2xpZCAjMzI0ZGNmO1xuICAgICAgbWFyZ2luLXRvcDogLTAuOHJlbTsgfVxuICAgIC51aS1kYXRlcGlja2VyLW5leHQgc3BhbjphZnRlciB7XG4gICAgICByaWdodDogLTFyZW07XG4gICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogMC42cmVtIHNvbGlkICNmZWQ0MDA7XG4gICAgICBtYXJnaW4tdG9wOiAtMC42cmVtOyB9XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgMS41cmVtOyB9XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgteWVhciB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi51aS1kYXRlcGlja2VyLW1vbnRoIHtcbiAgd2lkdGg6IDQ3JTtcbiAgbWFyZ2luLXJpZ2h0OiA2JTsgfVxuXG4udWktZGF0ZXBpY2tlci15ZWFyIHtcbiAgd2lkdGg6IDQ3JTsgfVxuXG4udWktZGF0ZXBpY2tlci10YWJsZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB9XG5cbi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgbWFyZ2luOiAxcmVtIDEuNXJlbSAxLjVyZW07XG4gIGJvcmRlci13aWR0aDogMDtcbiAgd2lkdGg6IDIzcmVtOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRkLFxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0aCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRoIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1kYXRlcGlja2VyLXdlZWstY29sIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgYSxcbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGggc3BhbixcbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCBhLFxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCBzcGFuIHtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktc3RhdGUtaG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMzMjRkY2Y7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgLnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1zdGF0ZS1kaXNhYmxlZCBzcGFuIHtcbiAgICAgIGNvbG9yOiAjZGNkY2RjOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1zdGF0ZS1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICMzMjRkY2Y7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBib3JkZXItdG9wOiAjZGNkY2RjIDFweCBzb2xpZDsgfVxuICAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIHtcbiAgZGlyZWN0aW9uOiBydGw7IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXYge1xuICByaWdodDogMnB4O1xuICBsZWZ0OiBhdXRvOyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgbGVmdDogMnB4O1xuICByaWdodDogYXV0bzsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldjpob3ZlciB7XG4gIHJpZ2h0OiAxcHg7XG4gIGxlZnQ6IGF1dG87IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQ6aG92ZXIge1xuICBsZWZ0OiAxcHg7XG4gIHJpZ2h0OiBhdXRvOyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHtcbiAgY2xlYXI6IHJpZ2h0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfVxuXG4udWktdGltZXBpY2tlci1kaXYge1xuICBwYWRkaW5nOiAxcmVtIDAgMC41cmVtIDA7IH1cbiAgLnVpLXRpbWVwaWNrZXItZGl2IC51aS13aWRnZXQtaGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07IH1cbiAgLnVpLXRpbWVwaWNrZXItZGl2IGRsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnVpLXRpbWVwaWNrZXItZGl2IGRsIGR0IHtcbiAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTIuMnJlbTsgfVxuICAgIC51aS10aW1lcGlja2VyLWRpdiBkbCAudWlfdHBpY2tlcl90aW1lX2xhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0yLjVyZW07IH1cbiAgICAudWktdGltZXBpY2tlci1kaXYgZGwgZGQge1xuICAgICAgbWFyZ2luOiAwIDAgMXJlbSA2LjVyZW07IH1cbiAgLnVpLXRpbWVwaWNrZXItZGl2IHRkIHtcbiAgICBmb250LXNpemU6IDkwJTsgfVxuXG4udWktdHBpY2tlci1ncmlkLWxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLnVpLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udWktc2xpZGVyLWhhbmRsZSB7XG4gIGhlaWdodDogMXJlbTtcbiAgd2lkdGg6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGJhY2tncm91bmQ6ICMzMjRkY2Y7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4udWktc2xpZGVyLWhvcml6b250YWwge1xuICBoZWlnaHQ6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDsgfVxuICAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtOyB9XG5cbi8qIElFNiBJRlJBTUUgRklYICh0YWtlbiBmcm9tIGRhdGVwaWNrZXIgMS41LjMgKi9cbi51aS1kYXRlcGlja2VyLWNvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKm11c3QgaGF2ZSovXG4gIHotaW5kZXg6IC0xO1xuICAvKm11c3QgaGF2ZSovXG4gIGZpbHRlcjogbWFzaygpO1xuICAvKm11c3QgaGF2ZSovXG4gIHRvcDogLTRweDtcbiAgLyptdXN0IGhhdmUqL1xuICBsZWZ0OiAtNHB4O1xuICAvKm11c3QgaGF2ZSovXG4gIHdpZHRoOiAyMDBweDtcbiAgLyptdXN0IGhhdmUqL1xuICBoZWlnaHQ6IDIwMHB4O1xuICAvKm11c3QgaGF2ZSovIH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJGNhbGVuZGFyX2JveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRjYWxlbmRhcl9ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2hlYWRlci1hcnJvdy1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl93ZWVrZGF5LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfZGF0ZS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2RhdGUtZGlzYWJsZWQtY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLnVpLWRhdGVwaWNrZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogOTk5OTk5ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAkY2FsZW5kYXJfYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRjYWxlbmRhcl9ib3JkZXItcmFkaXVzO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAyNXJlbTtcbiAgICBib3gtc2hhZG93OiAkY2FsZW5kYXJfYm94LXNoYWRvdztcbiAgICBiYWNrZ3JvdW5kOiAkY2FsZW5kYXJfYmFja2dyb3VuZC1jb2xvcjtcbn1cblxuLy8gSEVBREVSXG4udWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAkY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgcGFkZGluZzogMS4ycmVtIDJyZW07XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGNhbGVuZGFyX2JvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRjYWxlbmRhcl9ib3JkZXItcmFkaXVzO1xufVxuXG4udWktZGF0ZXBpY2tlci1wcmV2LFxuLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnJlbTtcbiAgICB3aWR0aDogMS44ZW07XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDAuMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxufVxuXG4udWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgICBsZWZ0OiAxLjVyZW07XG5cbiAgICBzcGFuIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDJyZW07XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IC0xLjJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDAuOHJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWFycm93LWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgbGVmdDogLTFyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDAuNnJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC42cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgICByaWdodDogMS41cmVtO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcmlnaHQ6IC0xLjJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC44cmVtIHNvbGlkICRjYWxlbmRhcl9oZWFkZXItYXJyb3ctY29sb3I7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC42cmVtIHNvbGlkICRjYWxlbmRhcl9oZWFkZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjZyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDEuNXJlbTtcbn1cblxuLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG59XG5cbnNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLXllYXIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udWktZGF0ZXBpY2tlci1tb250aCB7XG4gICAgd2lkdGg6IDQ3JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDYlO1xufVxuXG4udWktZGF0ZXBpY2tlci15ZWFyIHtcbiAgICB3aWR0aDogNDclO1xufVxuXG4udWktZGF0ZXBpY2tlci10YWJsZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG4vLyBDYWxlbmRhclxuLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luOiAxcmVtIDEuNXJlbSAxLjVyZW07XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAyM3JlbTtcblxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgdGgge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogJGNhbGVuZGFyX3dlZWtkYXktY29sb3I7XG4gICAgfVxuXG4gICAgLnVpLWRhdGVwaWNrZXItd2Vlay1jb2wge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgdGQgYSxcbiAgICB0aCBzcGFuLFxuICAgIHRkIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHRkIGEsXG4gICAgdGQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkY2FsZW5kYXJfZGF0ZS1jb2xvcjtcbiAgICB9XG5cbiAgICAudWktc3RhdGUtaG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY2FsZW5kYXJfZGF0ZS1zZWxlY3RlZC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtY29sb3I7XG4gICAgfVxuXG4gICAgLnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGNhbGVuZGFyX2RhdGUtZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudWktc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWNvbG9yO1xuICAgIH1cbn1cblxuLy8gQnV0dG9uc1xuLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBib3JkZXItdG9wOiAkY29sb3JfYm9yZGVyLTUwMCAxcHggc29saWQ7XG5cbiAgICBidXR0b24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLy8gUlRMXG4udWktZGF0ZXBpY2tlci1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldiB7XG4gICAgcmlnaHQ6IDJweDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gICAgbGVmdDogMnB4O1xuICAgIHJpZ2h0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldjpob3ZlciB7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpob3ZlciB7XG4gICAgbGVmdDogMXB4O1xuICAgIHJpZ2h0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gICAgY2xlYXI6IHJpZ2h0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50IHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG59XG5cbi8vIFRpbWVwaWNrZXJcbi51aS10aW1lcGlja2VyLWRpdiB7XG4gICAgcGFkZGluZzogMXJlbSAwIDAuNXJlbSAwO1xuXG4gICAgLnVpLXdpZGdldC1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gICAgfVxuXG4gICAgZGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIGR0IHtcbiAgICAgICAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51aV90cGlja2VyX3RpbWVfbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDFyZW0gNi41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICBmb250LXNpemU6IDkwJTtcbiAgICB9XG59XG5cbi51aS10cGlja2VyLWdyaWQtbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLyBTbGlkZXJcbi51aS1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udWktc2xpZGVyLWhhbmRsZSB7XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2JhY2tncm91bmQtY29sb3I7XG5cbiAgICAudWktc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgIH1cbn1cblxuLyogSUU2IElGUkFNRSBGSVggKHRha2VuIGZyb20gZGF0ZXBpY2tlciAxLjUuMyAqL1xuLnVpLWRhdGVwaWNrZXItY292ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyptdXN0IGhhdmUqL1xuICAgIHotaW5kZXg6IC0xOyAvKm11c3QgaGF2ZSovXG4gICAgZmlsdGVyOiBtYXNrKCk7IC8qbXVzdCBoYXZlKi9cbiAgICB0b3A6IC00cHg7IC8qbXVzdCBoYXZlKi9cbiAgICBsZWZ0OiAtNHB4OyAvKm11c3QgaGF2ZSovXG4gICAgd2lkdGg6IDIwMHB4OyAvKm11c3QgaGF2ZSovXG4gICAgaGVpZ2h0OiAyMDBweDsgLyptdXN0IGhhdmUqL1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1jYXJ0LWJvbnVzIHtcbiAgcGFkZGluZzogMS41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNhcnQtYm9udXMge1xuICAgICAgcGFkZGluZzogMS41cmVtIDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1jYXJ0LWJvbnVzIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgLmNzLWNhcnQtYm9udXMtLWVtcHR5LWJhc2tldCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5jcy1jYXJ0LWJvbnVzX19oZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzIxMjEyMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTsgfVxuICAuY3MtY2FydC1ib251c19fZ2lmdHMtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmNzLWNhcnQtYm9udXNfX2dpZnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIDEwMCU7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0IHtcbiAgICAgICAgZmxleC1iYXNpczogMTYuNjY2NjclOyB9IH1cbiAgICAuY3MtY2FydC1ib251c19fZ2lmdCArIC5jcy1jYXJ0LWJvbnVzX19naWZ0IHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0ICsgLmNzLWNhcnQtYm9udXNfX2dpZnQge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWNhcnQtYm9udXNfX2dpZnQgKyAuY3MtY2FydC1ib251c19fZ2lmdCAuY3MtY2FydC1ib251c19fcHJvZ3Jlc3Mtd3JhcHBlciB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwLjJyZW0gMC4ycmVtIDA7IH0gfVxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0LS1hd2FyZGVkIC5jcy1jYXJ0LWJvbnVzX19wcm9ncmVzcy1kb25lIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtY2FydC1ib251c19fZ2lmdDpudGgtb2YtdHlwZSgxKSAuY3MtY2FydC1ib251c19faWNvbi1ib3gtLWdpZnQgcGF0aCxcbiAgICAuY3MtY2FydC1ib251c19fZ2lmdDpudGgtb2YtdHlwZSgxKSAuY3MtY2FydC1ib251c19faWNvbi1ib3gtLXN0YXR1cyxcbiAgICAuY3MtY2FydC1ib251c19fZ2lmdDpudGgtb2YtdHlwZSgxKSAuY3MtY2FydC1ib251c19fbGFiZWwsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoMSkgLmNzLWNhcnQtYm9udXNfX3Rvb2x0aXAge1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC44czsgfVxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDEpIC5jcy1jYXJ0LWJvbnVzX19wcm9ncmVzcy1kb25lIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoMikgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1naWZ0IHBhdGgsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoMikgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1zdGF0dXMsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoMikgLmNzLWNhcnQtYm9udXNfX2xhYmVsLFxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDIpIC5jcy1jYXJ0LWJvbnVzX190b29sdGlwIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDEuNnM7IH1cbiAgICAuY3MtY2FydC1ib251c19fZ2lmdDpudGgtb2YtdHlwZSgyKSAuY3MtY2FydC1ib251c19fcHJvZ3Jlc3MtZG9uZSB7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjhzOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoMykgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1naWZ0IHBhdGgsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoMykgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1zdGF0dXMsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoMykgLmNzLWNhcnQtYm9udXNfX2xhYmVsLFxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDMpIC5jcy1jYXJ0LWJvbnVzX190b29sdGlwIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDIuNHM7IH1cbiAgICAuY3MtY2FydC1ib251c19fZ2lmdDpudGgtb2YtdHlwZSgzKSAuY3MtY2FydC1ib251c19fcHJvZ3Jlc3MtZG9uZSB7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAxLjZzOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNCkgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1naWZ0IHBhdGgsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNCkgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1zdGF0dXMsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNCkgLmNzLWNhcnQtYm9udXNfX2xhYmVsLFxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDQpIC5jcy1jYXJ0LWJvbnVzX190b29sdGlwIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDMuMnM7IH1cbiAgICAuY3MtY2FydC1ib251c19fZ2lmdDpudGgtb2YtdHlwZSg0KSAuY3MtY2FydC1ib251c19fcHJvZ3Jlc3MtZG9uZSB7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAyLjRzOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNSkgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1naWZ0IHBhdGgsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNSkgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1zdGF0dXMsXG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNSkgLmNzLWNhcnQtYm9udXNfX2xhYmVsLFxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDUpIC5jcy1jYXJ0LWJvbnVzX190b29sdGlwIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDRzOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNSkgLmNzLWNhcnQtYm9udXNfX3Byb2dyZXNzLWRvbmUge1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMy4yczsgfVxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDYpIC5jcy1jYXJ0LWJvbnVzX19pY29uLWJveC0tZ2lmdCBwYXRoLFxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDYpIC5jcy1jYXJ0LWJvbnVzX19pY29uLWJveC0tc3RhdHVzLFxuICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0Om50aC1vZi10eXBlKDYpIC5jcy1jYXJ0LWJvbnVzX19sYWJlbCxcbiAgICAuY3MtY2FydC1ib251c19fZ2lmdDpudGgtb2YtdHlwZSg2KSAuY3MtY2FydC1ib251c19fdG9vbHRpcCB7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiA0LjhzOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2dpZnQ6bnRoLW9mLXR5cGUoNikgLmNzLWNhcnQtYm9udXNfX3Byb2dyZXNzLWRvbmUge1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogNHM7IH1cbiAgLmNzLWNhcnQtYm9udXNfX3RvcC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNhcnQtYm9udXNfX3RvcC13cmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAuY3MtY2FydC1ib251c19faW5saW5lLWFtb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDAgMC44cmVtIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAjMzdiODQxOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWJvbnVzX19naWZ0LS1jdXJyZW50IC5jcy1jYXJ0LWJvbnVzX19pbmxpbmUtYW1vdW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC5jcy1jYXJ0LWJvbnVzX19pY29uLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1jYXJ0LWJvbnVzX19pY29uLXdyYXBwZXItLWF3YXJkZWQgLmNzLWNhcnQtYm9udXNfX2ljb24tLWdpZnQgcGF0aCB7XG4gICAgICBmaWxsOiAjMzdiODQxOyB9XG4gICAgICBbZGF0YS1tYWdlLWluaXRdIC5jcy1jYXJ0LWJvbnVzX19pY29uLXdyYXBwZXItLWF3YXJkZWQgLmNzLWNhcnQtYm9udXNfX2ljb24tLWdpZnQgcGF0aCB7XG4gICAgICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3MtY2FydC1ib251c19faWNvbi13cmFwcGVyLS1hd2FyZGVkIC5jcy1jYXJ0LWJvbnVzX19pY29uLWJveC0tc3RhdHVzIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICBbZGF0YS1tYWdlLWluaXRdIC5jcy1jYXJ0LWJvbnVzX19pY29uLXdyYXBwZXItLWF3YXJkZWQgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1zdGF0dXMge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7IH1cbiAgLmNzLWNhcnQtYm9udXNfX2ljb24tYm94LS1zdGF0dXMge1xuICAgIGJhY2tncm91bmQ6ICMzN2I4NDE7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjNyZW07XG4gICAgcmlnaHQ6IC0wLjZyZW07XG4gICAgYm90dG9tOiAtMC4xcmVtO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5LCB2aXNpYmlsaXR5IDAuM3M7IH1cbiAgLmNzLWNhcnQtYm9udXNfX2ljb24ge1xuICAgIHdpZHRoOiAyLjNyZW07XG4gICAgaGVpZ2h0OiAyLjFyZW07XG4gICAgdHJhbnNpdGlvbjogZmlsbCAwLjNzOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2ljb24tLWhlYWRsaW5lIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgICAgLmNzLWNhcnQtYm9udXNfX2ljb24tLWhlYWRsaW5lIHBhdGgge1xuICAgICAgICBmaWxsOiAjMjEyMTIxOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2ljb24tLWdpZnQgcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2ljb24tLXN0YXR1cyB7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAwLjdyZW07IH1cbiAgICAgIC5jcy1jYXJ0LWJvbnVzX19pY29uLS1zdGF0dXMgcGF0aCB7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWNhcnQtYm9udXNfX3Byb2dyZXNzLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjJyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2FydC1ib251c19fcHJvZ3Jlc3Mtd3JhcHBlciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbSAwIDAgMC4ycmVtOyB9IH1cbiAgLmNzLWNhcnQtYm9udXNfX3Byb2dyZXNzLXBvc3NpYmxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAwLjhyZW07XG4gICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgtNDVkZWcsICNkY2RjZGMsICNkY2RjZGMgMXB4LCB0cmFuc3BhcmVudCAxcHgsIHRyYW5zcGFyZW50IDVweCk7XG4gICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgIHRvcDogMC4ycmVtO1xuICAgIGxlZnQ6IDAuMnJlbTtcbiAgICByaWdodDogMC4ycmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuY3MtY2FydC1ib251c19fcHJvZ3Jlc3MtZG9uZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMC44cmVtO1xuICAgIGJhY2tncm91bmQ6ICMzN2I4NDE7XG4gICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuOHMgbGluZWFyO1xuICAgIHotaW5kZXg6IDI7IH1cbiAgICBbZGF0YS1tYWdlLWluaXRdIC5jcy1jYXJ0LWJvbnVzX19wcm9ncmVzcy1kb25lIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWNhcnQtYm9udXNfX2xhYmVsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzLjNyZW0pO1xuICAgIHRyYW5zaXRpb246IGNvbG9yOyB9XG4gICAgLmNzLWNhcnQtYm9udXNfX2xhYmVsLXdyYXBwZXItLXRvcCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuOHJlbTsgfVxuICAgIC5jcy1jYXJ0LWJvbnVzX19sYWJlbC13cmFwcGVyLS1ib3R0b20ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1jYXJ0LWJvbnVzX19sYWJlbC13cmFwcGVyLS1hd2FyZGVkIHtcbiAgICAgIGNvbG9yOiAjMzdiODQxOyB9XG4gICAgICBbZGF0YS1tYWdlLWluaXRdIC5jcy1jYXJ0LWJvbnVzX19sYWJlbC13cmFwcGVyLS1hd2FyZGVkIHtcbiAgICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNhcnQtYm9udXNfX2xhYmVsLXdyYXBwZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgICAgICAuY3MtY2FydC1ib251c19fbGFiZWwtd3JhcHBlci0tdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAgIC5jcy1jYXJ0LWJvbnVzX19sYWJlbC13cmFwcGVyLS1ib3R0b20ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmNzLWNhcnQtYm9udXNfX3Rvb2x0aXAge1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwLjhyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtMTAwJSwgMCkgc2NhbGVZKDEpO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWJvbnVzX190b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmNzLWNhcnQtYm9udXNfX3Rvb2x0aXA6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBtYXJnaW4tbGVmdDogLTAuNHJlbTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDAuNnJlbSAwLjRyZW0gMDtcbiAgICAgIGJvcmRlci1jb2xvcjogIzM3Yjg0MSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1jYXJ0LWJvbnVzX190b29sdGlwLS1lZGdlX2xlZnQgLmNzLWNhcnQtYm9udXNfX3Rvb2x0aXAtY29udGVudCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzUlKTsgfVxuICAgIC5jcy1jYXJ0LWJvbnVzX190b29sdGlwLS1lZGdlX3JpZ2h0IC5jcy1jYXJ0LWJvbnVzX190b29sdGlwLWNvbnRlbnQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNSUpOyB9XG4gICAgW2RhdGEtbWFnZS1pbml0XSAuY3MtY2FydC1ib251c19fdG9vbHRpcCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC0xMDAlLCAwKSBzY2FsZVkoMCk7IH1cbiAgLmNzLWNhcnQtYm9udXNfX3Rvb2x0aXAtY29udGVudCB7XG4gICAgYmFja2dyb3VuZDogIzM3Yjg0MTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjZyZW0gMC43cmVtIDAuNXJlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kY2FydC1ib251c19wcm9ncmVzcy1hbmltYXRpb246IHRydWUgIWRlZmF1bHQ7IC8vIFRlbGxzIGlmIGFsbCBwcm9ncmVzcyBhbmltYXRpb25zIHNob3VsZCBiZSBlbmFibGVkLlxuJGNhcnQtYm9udXNfcHJvZ3Jlc3MtZHVyYXRpb246IDAuOHMgIWRlZmF1bHQ7IC8vIEhvdyBtdWNoIHRpbWUgaXQgdGFrZXMgdG8gZmlsbCBzaW5nbGUgcHJvZ3Jlc3MgYmFyLlxuXG4kY2FydC1ib251c19ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGNhcnQtYm9udXNfaGVhZGxpbmUtdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGNhcnQtYm9udXNfaGVhZGxpbmUtaWNvbi1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kY2FydC1ib251c19wcm9ncmVzc2Jhci1iYWNrZ3JvdW5kOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgIC00NWRlZyxcbiAgICAkY29sb3JfYm9yZGVyLTUwMCxcbiAgICAkY29sb3JfYm9yZGVyLTUwMCAxcHgsXG4gICAgdHJhbnNwYXJlbnQgMXB4LFxuICAgIHRyYW5zcGFyZW50IDVweFxuKSAhZGVmYXVsdDtcbiRjYXJ0LWJvbnVzX3Byb2dyZXNzYmFyLWRvbmUtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuXG4kY2FydC1ib251c190b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRjYXJ0LWJvbnVzX3Rvb2x0aXAtdGV4dC1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuXG4kY2FydC1ib251c19pY29uLWdpZnQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRjYXJ0LWJvbnVzX2ljb24tZ2lmdC1hd2FyZGVkLWNvbG9yOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG5cbiRjYXJ0LWJvbnVzX2ljb24tY2hlY2ttYXJrLWNvbG9yOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kY2FydC1ib251c19pY29uLWNoZWNrbWFyay1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG5cbiRjYXJ0LWJvbnVzX2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kY2FydC1ib251c19sYWJlbC1hd2FyZGVkLWNvbG9yOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG5cbiRjYXJ0LWJvbnVzX2Ftb3VudC1jb2xvcjogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9Y2FydC1ib251cyB7XG4gICAgJHJvb3Q6ICY7XG4gICAgcGFkZGluZzogMS41cmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRjYXJ0LWJvbnVzX2JvcmRlcjtcbiAgICB9XG5cbiAgICAmLS1lbXB0eS1iYXNrZXQge1xuICAgICAgICBib3JkZXItdG9wOiAkY2FydC1ib251c19ib3JkZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxuXG4gICAgJl9faGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICRjYXJ0LWJvbnVzX2hlYWRsaW5lLXRleHQtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNzVyZW07XG4gICAgfVxuXG4gICAgJl9fZ2lmdHMtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJl9fZ2lmdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgY29sb3I6ICRjYXJ0LWJvbnVzX2xhYmVsLWNvbG9yO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6ICgxMDAlIC8gNik7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19wcm9ncmVzcy13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMC4ycmVtIDAuMnJlbSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWF3YXJkZWQge1xuICAgICAgICAgICAgI3skcm9vdH1fX3Byb2dyZXNzLWRvbmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJGNhcnQtYm9udXNfcHJvZ3Jlc3MtYW5pbWF0aW9uIHtcbiAgICAgICAgICAgIC8vIEhlcmUgd2UgYXJlIHNldHRpbmcgZGVsYXlzIHNvIHRoYXQgZXZlcnkgcHJvZ3Jlc3MgYmFyIHdhaXRzXG4gICAgICAgICAgICAvLyBmb3IgdGhlIHByZXZpb3VzIG9uZSB0byBmaW5pc2guXG4gICAgICAgICAgICBAZm9yICRlbGVtZW50LWluZGV4IGZyb20gMCB0byA2IHtcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKCN7JGVsZW1lbnQtaW5kZXggKyAxfSkge1xuICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9faWNvbi1ib3gtLWdpZnQgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2ljb24tYm94LS1zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX3Rvb2x0aXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LWluZGV4ICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhcnQtYm9udXNfcHJvZ3Jlc3MtZHVyYXRpb24gK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FydC1ib251c19wcm9ncmVzcy1kdXJhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19wcm9ncmVzcy1kb25lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC1pbmRleCAqICRjYXJ0LWJvbnVzX3Byb2dyZXNzLWR1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG9wLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5saW5lLWFtb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMCAwLjhyZW0gMCBhdXRvO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogJGNhcnQtYm9udXNfYW1vdW50LWNvbG9yO1xuXG4gICAgICAgICN7JHJvb3R9X19naWZ0LS1jdXJyZW50ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24td3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLS1hd2FyZGVkIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICAmLS1naWZ0IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkY2FydC1ib251c19pY29uLWdpZnQtYXdhcmRlZC1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICRjYXJ0LWJvbnVzX3Byb2dyZXNzLWFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtbWFnZS1pbml0XSAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJGNhcnQtYm9udXNfaWNvbi1naWZ0LWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24tYm94IHtcbiAgICAgICAgICAgICAgICAmLS1zdGF0dXMge1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkY2FydC1ib251c19wcm9ncmVzcy1hbmltYXRpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtbWFnZS1pbml0XSAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24tYm94IHtcbiAgICAgICAgJi0tc3RhdHVzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjYXJ0LWJvbnVzX2ljb24tY2hlY2ttYXJrLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zcmVtO1xuICAgICAgICAgICAgcmlnaHQ6IC0wLjZyZW07XG4gICAgICAgICAgICBib3R0b206IC0wLjFyZW07XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHksIHZpc2liaWxpdHkgMC4zcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuMXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAwLjNzO1xuXG4gICAgICAgICYtLWhlYWRsaW5lIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGNhcnQtYm9udXNfaGVhZGxpbmUtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdpZnQge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGNhcnQtYm9udXNfaWNvbi1naWZ0LWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RhdHVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuN3JlbTtcblxuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGNhcnQtYm9udXNfaWNvbi1jaGVja21hcmstY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcm9ncmVzcy13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXI6ICRjYXJ0LWJvbnVzX2JvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAuMnJlbTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjJyZW0gMCAwIDAuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Byb2dyZXNzLXBvc3NpYmxlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDAuOHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhcnQtYm9udXNfcHJvZ3Jlc3NiYXItYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgICAgICB0b3A6IDAuMnJlbTtcbiAgICAgICAgbGVmdDogMC4ycmVtO1xuICAgICAgICByaWdodDogMC4ycmVtO1xuICAgICAgICBib3JkZXI6ICRjYXJ0LWJvbnVzX2JvcmRlcjtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAmX19wcm9ncmVzcy1kb25lIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMC44cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY2FydC1ib251c19wcm9ncmVzc2Jhci1kb25lLWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMnJlbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRjYXJ0LWJvbnVzX3Byb2dyZXNzLWR1cmF0aW9uIGxpbmVhcjtcbiAgICAgICAgei1pbmRleDogMjtcblxuICAgICAgICBAaWYgJGNhcnQtYm9udXNfcHJvZ3Jlc3MtYW5pbWF0aW9uIHtcbiAgICAgICAgICAgIFtkYXRhLW1hZ2UtaW5pdF0gJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xhYmVsLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogJGNhcnQtYm9udXNfbGFiZWwtY29sb3I7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMy4zcmVtKTtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3I7XG5cbiAgICAgICAgJi0tdG9wIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYm90dG9tIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hd2FyZGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkY2FydC1ib251c19sYWJlbC1hd2FyZGVkLWNvbG9yO1xuXG4gICAgICAgICAgICBAaWYgJGNhcnQtYm9udXNfcHJvZ3Jlc3MtYW5pbWF0aW9uIHtcbiAgICAgICAgICAgICAgICBbZGF0YS1tYWdlLWluaXRdICYge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNhcnQtYm9udXNfbGFiZWwtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgICAgICAgJi0tdG9wIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG9vbHRpcCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMC44cmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTEwMCUsIDApIHNjYWxlWSgxKTtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTAuNHJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAuNnJlbSAwLjRyZW0gMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNhcnQtYm9udXNfdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yIHRyYW5zcGFyZW50XG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lZGdlIHtcbiAgICAgICAgICAgICZfbGVmdCB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3Rvb2x0aXAtY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNSUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9yaWdodCB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3Rvb2x0aXAtY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzUlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJGNhcnQtYm9udXNfcHJvZ3Jlc3MtYW5pbWF0aW9uIHtcbiAgICAgICAgICAgIFtkYXRhLW1hZ2UtaW5pdF0gJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtMTAwJSwgMCkgc2NhbGVZKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhcnQtYm9udXNfdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMC42cmVtIDAuN3JlbSAwLjVyZW07XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgY29sb3I6ICRjYXJ0LWJvbnVzX3Rvb2x0aXAtdGV4dC1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWNhcnQtaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDExcmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICBib3JkZXItdG9wOiBub25lOyB9IH1cbiAgdGJvZHk6bnRoLWNoaWxkKDMpIC5jcy1jYXJ0LWl0ZW0ge1xuICAgIGJvcmRlci10b3A6IG5vbmU7IH1cbiAgdGJvZHk6bGFzdC1jaGlsZCAuY3MtY2FydC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICB0Ym9keTpsYXN0LWNoaWxkIC5jcy1jYXJ0LWl0ZW0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtLS1uby1pY29ucyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgLmNzLWNhcnQtaXRlbSB0ZCB7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY2FydC1pdGVtIHRkIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX3Byb2R1Y3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmNzLWNhcnQtaXRlbV9faW1hZ2Uge1xuICAgIHdpZHRoOiAxM3JlbTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTByZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY2FydC1pdGVtX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxNXJlbTsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX2JyYW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMS41cmVtOyB9XG4gICAgLmNzLWNhcnQtaXRlbV9fYnJhbmQgKyAuY3MtY2FydC1pdGVtX19uYW1lIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5jcy1jYXJ0LWl0ZW1fX2JyYW5kLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1jYXJ0LWl0ZW1fX25hbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLWNhcnQtaXRlbV9fbmFtZSBhIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAgIC5jcy1jYXJ0LWl0ZW1fX25hbWUgYV9fbmFtZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAwOyB9XG4gICAgICAuY3MtY2FydC1pdGVtX19uYW1lIGFfX25hbWUgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gIC5jcy1jYXJ0LWl0ZW1fX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI0ZGNmO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWluLWhlaWdodDogMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuY3MtY2FydC1pdGVtX19iYWRnZTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICBmb250LXNpemU6IDA7IH1cbiAgICAuY3MtY2FydC1pdGVtX19iYWRnZS0tZnJlZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX2JhZGdlLS1mcmVlIC5jcy1jYXJ0LWl0ZW1fX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1jYXJ0LWl0ZW1fX2JhZGdlLS1mcmVlIC5jcy1jYXJ0LWl0ZW1fX2JhZGdlLXRleHQgKyAuY3MtY2FydC1pdGVtX19iYWRnZS0tZnJlZSAuY3MtY2FydC1pdGVtX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLWNhcnQtaXRlbV9fYmFkZ2UgKyAuY3MtY2FydC1pdGVtX19uYW1lIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07IH1cbiAgLmNzLWNhcnQtaXRlbV9fYmFkZ2UtdGV4dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5jcy1jYXJ0LWl0ZW1fX2JhZGdlLXRleHQgKyAuY3MtY2FydC1pdGVtX19iYWRnZS10ZXh0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLWNhcnQtaXRlbV9fZGV0YWlscyB7XG4gICAgcGFkZGluZzogMCAxcmVtIDFyZW0gMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkgYW5kIChtYXgtd2lkdGg6IDc5Ljk5ZW0pIHtcbiAgLmNzLWNhcnQtaXRlbV9fZGV0YWlscyB7XG4gICAgcGFkZGluZzogMCAwIDAgMnJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX2RldGFpbHMge1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW0gMCAycmVtOyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy1ncm91cCB7XG4gICAgbWFyZ2luOiAwIDJyZW0gMCAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX29wdGlvbnMtZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDAgMnJlbSAxcmVtIDA7IH0gfVxuICAuY3MtY2FydC1pdGVtX19vcHRpb25zLWxhYmVsIHtcbiAgICB3aWR0aDogN3JlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2FydC1pdGVtX19vcHRpb25zLWxhYmVsIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy12YWx1ZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy12YWx1ZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICBwYWRkaW5nOiAwLjRyZW0gMCAwLjRyZW0gMnJlbSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIHtcbiAgICAgICAgcGFkZGluZzogMC40cmVtIDEuNXJlbSAwLjRyZW0gMCAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9fcHJpY2Uge1xuICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMnJlbSAwLjRyZW0gMCAhaW1wb3J0YW50OyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgIHBhZGRpbmc6IDAuNHJlbSAycmVtIDAuNHJlbSAwICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMS41cmVtIDAuNHJlbSAwICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCB7XG4gICAgICAgIHBhZGRpbmc6IDAuNHJlbSAycmVtIDAuNHJlbSAwICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbS0tbm8taWNvbnMgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWNhcnQtaXRlbV9fcHJpY2UsIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsLCAuY3MtY2FydC1pdGVtX19xdHkge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAzMSU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIGhlaWdodDogOXJlbTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlOmJlZm9yZSwgLmNzLWNhcnQtaXRlbV9fc3VidG90YWw6YmVmb3JlLCAuY3MtY2FydC1pdGVtX19xdHk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAyLjFyZW0gIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlOmJlZm9yZSwgLmNzLWNhcnQtaXRlbV9fc3VidG90YWw6YmVmb3JlLCAuY3MtY2FydC1pdGVtX19xdHk6YmVmb3JlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtX19wcmljZSwgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwsIC5jcy1jYXJ0LWl0ZW1fX3F0eSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAuY3MtY2FydC1pdGVtX19xdHkge1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9fcXR5IHtcbiAgICAgICAgcGFkZGluZzogMC40cmVtIDEuNXJlbSAwLjRyZW0gMCAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9fcXR5IHtcbiAgICAgICAgcGFkZGluZzogMC40cmVtIDJyZW0gMC40cmVtIDAgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3F0eSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB3aWR0aDogMzYlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDlyZW07IH1cbiAgICAgICAgLmNzLWNhcnQtaXRlbV9fcXR5OmJlZm9yZSB7XG4gICAgICAgICAgcGFkZGluZzogMCAwIDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqLyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtX19pdGVtIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gICAgICAuY3MtY2FydC1pdGVtX19pdGVtOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi8gfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzkuOTllbSkge1xuICAuY3MtY2FydC1pdGVtX19pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX3F0eS1pbnB1dCB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwcmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3F0eS1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwtaW5uZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDIuNXJlbTsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX2J1dHRvbnMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzkuOTllbSkge1xuICAuY3MtY2FydC1pdGVtX19idXR0b25zIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICAuY3MtY2FydC1pdGVtX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3OS45OWVtKSB7XG4gIC5jcy1jYXJ0LWl0ZW1fX2xpbmsge1xuICAgIG1hcmdpbjogMCAwLjJyZW07IH0gfVxuICAgIC5jcy1jYXJ0LWl0ZW1fX2xpbmstLXJlbW92ZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC5jcy1jYXJ0LWl0ZW1fX2xpbmstLXdpc2hsaXN0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5jcy1jYXJ0LWl0ZW1fX2xpbmstd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDAgMC41cmVtOyB9XG4gICAgLmNzLWNhcnQtaXRlbV9fbGluay13cmFwcGVyOmhvdmVyIC5jcy1jYXJ0LWl0ZW1fX2xpbmstaWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICMxNDJiOWU7IH1cbiAgLmNzLWNhcnQtaXRlbV9fbGluay1pY29uIHtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgICAuY3MtY2FydC1pdGVtX19saW5rLWljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWNhcnQtaXRlbV9fYm90dG9tIHtcbiAgICAgIHBhZGRpbmc6IDAgMnJlbSAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqLyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtX19ib3R0b20ge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX2JvdHRvbTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqLyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWNhcnQtaXRlbSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDVkNWQ1OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmNzLWNhcnQtaXRlbSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9faXRlbS5jb2wuaXRlbSB7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBwYWRkaW5nOiAxLjRyZW0gMXJlbSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX2l0ZW0uY29sLml0ZW0ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9faW1hZ2Uge1xuICAgIHdpZHRoOiA5cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX2ltYWdlIHtcbiAgICAgICAgd2lkdGg6IDlyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY2FydC1pdGVtX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiA5cmVtOyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9fbmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMC4zcmVtIDA7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAuY3MtY2FydC1pdGVtX19uYW1lIGEge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gICAgLmNzLWNhcnQtaXRlbV9fbmFtZSBhX19uYW1lIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMS41cmVtIDA7IH1cbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX25hbWUgYV9fbmFtZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmNzLWNhcnQtaXRlbV9fc2t1IHtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAuY3MtY2FydC1pdGVtX19kZXRhaWxzIHtcbiAgICBtaW4td2lkdGg6IDIzcmVtOyB9XG4gIC5jcy1jYXJ0LWl0ZW1fX29wdGlvbnMtbGFiZWwge1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy12YWx1ZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy12YWx1ZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIC5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXByaWNlIC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtY2FydC1pdGVtX19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgLmNzLWNhcnQtaXRlbV9fcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXgsIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIC5wcmljZS1leGNsdWRpbmctdGF4LFxuICAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCAucHJpY2UtaW5jbHVkaW5nLXRheCwgLmNzLWNhcnQtaXRlbV9fcXR5IC5wcmljZS1leGNsdWRpbmctdGF4LFxuICAuY3MtY2FydC1pdGVtX19xdHkgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgIGxpbmUtaGVpZ2h0OiAyLjhyZW0gIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtY2FydC1pdGVtX19wcmljZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4LCAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4LCAuY3MtY2FydC1pdGVtX19xdHkgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgICAuY3MtY2FydC1pdGVtX19xdHkgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICBsaW5lLWhlaWdodDogMjRweCAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcbiAgICAgICAgLmNzLWNhcnQtaXRlbV9fcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggLnByaWNlLCAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2UsXG4gICAgICAgIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSwgLmNzLWNhcnQtaXRlbV9fcXR5IC5wcmljZS1leGNsdWRpbmctdGF4IC5wcmljZSxcbiAgICAgICAgLmNzLWNhcnQtaXRlbV9fcXR5IC5wcmljZS1pbmNsdWRpbmctdGF4IC5wcmljZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW0gIWltcG9ydGFudDsgfSB9XG4gIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXByaWNlIC5wcmljZSwgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXggLmNhcnQtcHJpY2UgLnByaWNlLCAuY3MtY2FydC1pdGVtX19xdHkgLnByaWNlLWV4Y2x1ZGluZy10YXggLmNhcnQtcHJpY2UgLnByaWNlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmNzLWNhcnQtaXRlbV9fcHJpY2UgLnByaWNlLWluY2x1ZGluZy10YXggLmNhcnQtcHJpY2UgLnByaWNlLCAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCAucHJpY2UtaW5jbHVkaW5nLXRheCAuY2FydC1wcmljZSAucHJpY2UsIC5jcy1jYXJ0LWl0ZW1fX3F0eSAucHJpY2UtaW5jbHVkaW5nLXRheCAuY2FydC1wcmljZSAucHJpY2Uge1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmNzLWNhcnQtaXRlbV9fcHJpY2UsIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsLCAuY3MtY2FydC1pdGVtX19xdHkge1xuICAgICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3ByaWNlOjpiZWZvcmUsIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsOjpiZWZvcmUsIC5jcy1jYXJ0LWl0ZW1fX3F0eTo6YmVmb3JlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHggIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH0gfVxuICAuY3MtY2FydC1pdGVtX19xdHktaW5wdXQge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LWl0ZW1fX3F0eS1pbnB1dCB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAuY3MtY2FydC1pdGVtX19xdHktaW5wdXQgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgd2lkdGg6IDhyZW07IH1cbiAgICAuY3MtY2FydC1pdGVtX19xdHktaW5wdXQgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1jYXJ0LWl0ZW1fX3N1YnRvdGFsLWlubmVyIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwtaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvOyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9fbGluay0td2lzaGxpc3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtX19saW5rLS1yZW1vdmUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAuY3MtY2FydC1pdGVtX19saW5rLS1yZW1vdmUgPiBhIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLmNzLWNhcnQtaXRlbV9fbGluay13cmFwcGVyOmhvdmVyIC5jcy1jYXJ0LWl0ZW1fX2xpbmstaWNvbiBwYXRoIHtcbiAgICBmaWxsOiAjYTIwMTA5OyB9XG4gIC5jcy1jYXJ0LWl0ZW1fX2xpbmstaWNvbiB7XG4gICAgd2lkdGg6IDIuNHJlbTtcbiAgICBoZWlnaHQ6IDIuNHJlbTsgfVxuICAgIC5jcy1jYXJ0LWl0ZW1fX2xpbmstaWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICMzMzMzMzM7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtX19wcmljZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA4MC4wMWVtKSB7XG4gICAgLmNzLWNhcnQtaXRlbV9fYm90dG9tIHtcbiAgICAgIHBhZGRpbmctaW5saW5lOiAwICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgIC5jcy1jYXJ0LWl0ZW1fX2JvdHRvbSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgcGFkZGluZy10b3A6IDJlbSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtY2FydC1pdGVtX19ib3R0b20ge1xuICAgICAgcGFkZGluZzogMmVtIDAgM2VtICFpbXBvcnRhbnQ7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlL21peGluJztcblxuJGNhcnQtaXRlbV9ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGNhcnQtaXRlbV9pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kY2FydC1pdGVtX2ljb24tY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRjYXJ0LWl0ZW1fYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kY2FydC1pdGVtX2JyYW5kLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRjYXJ0LWl0ZW1fbmFtZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGNhcnQtaXRlbV9wcmljZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kY2FydC1pdGVtX29wdGlvbnMtaW4tcm93OiBmYWxzZSAhZGVmYXVsdDtcbiRjYXJ0LWl0ZW1fb3B0aW9ucy1sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGNhcnQtaXRlbV9vcHRpb25zLXZhbHVlLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbiRjYXJ0LWl0ZW1fcXR5LWlucHV0LXdpZHRoOiAxMHJlbSAhZGVmYXVsdDtcbiRjYXJ0LWl0ZW1fcXR5LWlucHV0LXdpZHRoLS1sYXB0b3AtYW5kLXVwOiAxMXJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWNhcnQtaXRlbSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBib3JkZXItdG9wOiAkY2FydC1pdGVtX2JvcmRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDExcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICB9XG5cbiAgICB0Ym9keTpudGgtY2hpbGQoMykgJiB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgfVxuXG4gICAgdGJvZHk6bGFzdC1jaGlsZCAmIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGNhcnQtaXRlbV9ib3JkZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5vLWljb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRkIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTNyZW07XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDEwcmVtO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19icmFuZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMS41cmVtO1xuXG4gICAgICAgICsgI3skcm9vdH1fX25hbWUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19icmFuZC10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAkY2FydC1pdGVtX2JyYW5kLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRjYXJ0LWl0ZW1fYnJhbmQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbmFtZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkY2FydC1pdGVtX25hbWUtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbmFtZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRjYXJ0LWl0ZW1fbmFtZS1jb2xvcjtcblxuICAgICAgICAmX19uYW1lIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtIDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgIC8vIGZpeCBJRSBpc3N1ZSAtIHRleHQgdmVydGljYWwgYWxpZ25tZW50IGluc2lkZSBmbGV4Ym94IChub24tY29sdW1uKVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgbWluLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZyZWUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZnJlZScpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignZnJlZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyAjeyRyb290fV9fbmFtZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oKTtcbiAgICB9XG5cbiAgICAmX19kZXRhaWxzIHtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtIDFyZW0gMnJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJywgJzxsYXB0b3BMZycpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMXJlbSAwIDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zIHtcbiAgICAgICAgQGlmICgkY2FydC1pdGVtX29wdGlvbnMtaW4tcm93KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDAgMnJlbSAwIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDJyZW0gMXJlbSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICAgIHdpZHRoOiA3cmVtO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkY2FydC1pdGVtX29wdGlvbnMtbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXZhbHVlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJGNhcnQtaXRlbV9vcHRpb25zLXZhbHVlLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMCAwLjRyZW0gMnJlbSAhaW1wb3J0YW50O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNHJlbSAxLjVyZW0gMC40cmVtIDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgcGFkZGluZzogMC40cmVtIDJyZW0gMC40cmVtIDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YnRvdGFsIHtcbiAgICAgICAgcGFkZGluZzogMC40cmVtIDJyZW0gMC40cmVtIDAgIWltcG9ydGFudDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMS41cmVtIDAuNHJlbSAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNHJlbSAycmVtIDAuNHJlbSAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLW5vLWljb25zICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2UsXG4gICAgJl9fc3VidG90YWwsXG4gICAgJl9fcXR5IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDMxJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiA5cmVtO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMi4xcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHkge1xuICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMCAhaW1wb3J0YW50O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNHJlbSAxLjVyZW0gMC40cmVtIDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgcGFkZGluZzogMC40cmVtIDJyZW0gMC40cmVtIDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAzNiU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA5cmVtO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDFyZW0gIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJywgJzxsYXB0b3BMZycpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcXR5LWlucHV0IHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiAkY2FydC1pdGVtX3F0eS1pbnB1dC13aWR0aDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogJGNhcnQtaXRlbV9xdHktaW5wdXQtd2lkdGgtLWxhcHRvcC1hbmQtdXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbC1pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b25zIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnLCAnPGxhcHRvcExnJykge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcsICc8bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmVtb3ZlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW46IDAgMC41cmVtO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgI3skcm9vdH1fX2xpbmstaWNvbiB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjYXJ0LWl0ZW1faWNvbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluay1pY29uIHtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRjYXJ0LWl0ZW1faWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtIDJyZW0gIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2NhcnQvY2FydC1pdGVtL2NhcnQtaXRlbS5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG4kY2FydC1pdGVtX2JvcmRlcjogJGttYV9ib3JkZXJfYmFzZTtcblxuJGNhcnQtaXRlbV9pY29uLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuJGNhcnQtaXRlbV9pY29uLWNvbG9yLS1ob3ZlcjogJGttYV9jb2xvcl9zZWNvbmRhcnktODAwO1xuXG4kY2FydC1pdGVtX25hbWUtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kY2FydC1pdGVtX3ByaWNlLWNvbG9yOiAka21hX2NvbG9yX3ByaW1hcnktODAwO1xuXG4kY2FydC1pdGVtX29wdGlvbnMtbGFiZWwtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kY2FydC1pdGVtX29wdGlvbnMtdmFsdWUtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG5cbi4jeyRuc31jYXJ0LWl0ZW0ge1xuICAgICRyb290OiAmO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuXG4gICAgYm9yZGVyLXRvcDogJGNhcnQtaXRlbV9ib3JkZXI7XG5cbiAgICAmX19pdGVtLmNvbC5pdGVtIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgcGFkZGluZzogMS40cmVtIDFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogOXJlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogOXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49ZGVza3RvcFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogOXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMC4zcmVtIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkY2FydC1pdGVtX25hbWUtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbmFtZSBhIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJGNhcnQtaXRlbV9uYW1lLWNvbG9yO1xuXG4gICAgICAgICZfX25hbWUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NrdSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsO1xuICAgIH1cblxuICAgICZfX2RldGFpbHMge1xuICAgICAgICBtaW4td2lkdGg6IDIzcmVtO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNhcnQtaXRlbV9vcHRpb25zLWxhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXZhbHVlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJGNhcnQtaXRlbV9vcHRpb25zLXZhbHVlLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbCB7XG4gICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2UsXG4gICAgJl9fc3VidG90YWwsXG4gICAgJl9fcXR5IHtcbiAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyLjhyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IC5jYXJ0LXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaDtcbiAgICAgICAgfVxuICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAuY2FydC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHktaW5wdXQge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICAuI3skbnN9cXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICAmX19pbnB1dCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAka21hX2JvcmRlcl9iYXNlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDhyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmX19idXR0b24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWJ0b3RhbC1pbm5lciB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19saW5rIHtcbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAmLS1yZW1vdmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAmID4gYSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rLXdyYXBwZXIge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19saW5rLWljb24ge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkY2FydC1pdGVtX2ljb24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmstaWNvbiB7XG4gICAgICAgIHdpZHRoOiAka21hX2ljb25fc2l6ZS01MDA7XG4gICAgICAgIGhlaWdodDogJGttYV9pY29uX3NpemUtNTAwO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGNhcnQtaXRlbV9pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPmxhcHRvcExnXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDJlbSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJlbSAwIDNlbSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtY2FydC1zdW1tYXJ5IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbSAycmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jYXJ0LXN1bW1hcnkge1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSgzMywgMzMsIDMzLCAwLjI4KTsgfSB9XG4gIC5jcy1jYXJ0LXN1bW1hcnktLWVtcHR5IHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIHBhZGRpbmc6IDAgMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2FydC1zdW1tYXJ5LS1lbXB0eSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMDsgfSB9XG4gIC5jcy1jYXJ0LXN1bW1hcnlfX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46IDFyZW0gMCAycmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAuY3MtY2FydC1zdW1tYXJ5X190cmlnZ2VyIHtcbiAgICBwYWRkaW5nOiAxLjFyZW0gMC44cmVtIDEuMXJlbSAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RyaWdnZXIge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgICAgbWFyZ2luLXRvcDogMS4xcmVtOyB9IH1cbiAgLmNzLWNhcnQtc3VtbWFyeV9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgLmNzLWNhcnQtc3VtbWFyeV9fdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLWNhcnQtc3VtbWFyeV9fcmVtb3ZlIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG4gIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyB0aCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgICAuY3MtY2FydC1zdW1tYXJ5X190b3RhbHMgdGQge1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZ3JhbmQge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZ3JhbmQgdGgsXG4gICAgICAuY3MtY2FydC1zdW1tYXJ5X190b3RhbHMgLmdyYW5kIHRkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDEuNHJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNHJlbTtcbiAgICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgICAuY3MtY2FydC1zdW1tYXJ5X190b3RhbHMgLmRpc2NvdW50LmNvdXBvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1jYXJ0LXN1bW1hcnlfX3RheC1ub3RlLXJvdyB0aCxcbiAgLmNzLWNhcnQtc3VtbWFyeV9fdGF4LW5vdGUtcm93IHRkIHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWNhcnQtc3VtbWFyeV9fdGF4LW5vdGUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1jYXJ0LXN1bW1hcnlfX3RvLWNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtY2FydC1zdW1tYXJ5X190by1jaGVja291dC1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvLWNoZWNrb3V0LWJ1dHRvbiwgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1jYXJ0LXN1bW1hcnlfX3RvLWNoZWNrb3V0LWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2FydC1zdW1tYXJ5X190by1jaGVja291dC1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uW2Rpc2FibGVkXSwgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvLWNoZWNrb3V0LWJ1dHRvbi1zcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uLWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1jYXJ0LXN1bW1hcnkgLm11bHRpY2hlY2tvdXQsXG4gIC5jcy1jYXJ0LXN1bW1hcnkgLmNzLWNhcnQtc3VtbWFyeV9fc2hpcHBpbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWNhcnQtc3VtbWFyeSAuY2hlY2tvdXQtbWV0aG9kcy1pdGVtcyAuaXRlbSArIC5pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWNhcnQtc3VtbWFyeSAjYmxvY2stc2hpcHBpbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWNhcnQtc3VtbWFyeSAudG90YWxzLmdpZnRjYXJkIC5hY3Rpb24uZGVsZXRlIHtcbiAgICBmb250LXNpemU6IDA7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jbG9zZS5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFyZW0pOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWNhcnQtc3VtbWFyeSB7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMXJlbSAwIDAgMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jYXJ0LXN1bW1hcnkge1xuICAgICAgcGFkZGluZzogMnJlbSAwIDAgMDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmNzLWNhcnQtc3VtbWFyeSB7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggM3B4ICNlNWU1ZTU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jYXJ0LXN1bW1hcnktLWVtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMCAwIDA7IH0gfVxuICAuY3MtY2FydC1zdW1tYXJ5X190aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWNhcnQtc3VtbWFyeV9fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAudGFibGUtd3JhcHBlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIHRoIHtcbiAgICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtIDAuN3JlbSAycmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGNvbG9yOiAjMzMzMzMzOyB9XG4gICAgLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAuN3JlbSAycmVtIDAuN3JlbSAxcmVtO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIC50b3RhbHMtdGF4IHRoLFxuICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAudG90YWxzLXRheCB0ZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZ3JhbmQge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xuICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtICFpbXBvcnRhbnQ7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgICAgLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIC5ncmFuZCB0aCxcbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZ3JhbmQgdGQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMC43cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC43cmVtO1xuICAgICAgICBjb2xvcjogIzMzMzMzMzsgfVxuICAgICAgLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIC5ncmFuZC5leGNsIHRoLFxuICAgICAgLmNzLWNhcnQtc3VtbWFyeV9fdG90YWxzIC5ncmFuZC5leGNsIHRkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3RvdGFscyAuZ3JhbmQuZXhjbCAuY3MtY2FydC1zdW1tYXJ5X192YWx1ZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTsgfVxuICAuY3MtY2FydC1zdW1tYXJ5X190by1jaGVja291dC1idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXgtd2lkdGg6IDI0MHB4OyB9XG4gICAgLmNzLWNhcnQtc3VtbWFyeV9fdG8tY2hlY2tvdXQtYnV0dG9uID4gc3BhbiB7XG4gICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgcGFkZGluZzogMnJlbTsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMgLml0ZW0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnkgLmNoZWNrb3V0LW1ldGhvZHMtaXRlbXMgLml0ZW0gKyAuaXRlbSB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWNhcnQtc3VtbWFyeSAudG90YWxzIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAuY3MtY2FydC1zdW1tYXJ5IC50b3RhbHMgLmFtb3VudCB7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgY29sb3I6ICMzMzMzMzM7IH1cbiAgICAuY3MtY2FydC1zdW1tYXJ5IC50b3RhbHMuZ2lmdGNhcmQgLmFjdGlvbi5kZWxldGUge1xuICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcmVtKTsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnkgLnRvdGFscy5pbmNsIHRoLCAuY3MtY2FydC1zdW1tYXJ5IC50b3RhbHMuc2hpcHBpbmcgdGgsIC5jcy1jYXJ0LXN1bW1hcnkgLnRvdGFscy10YXggdGgge1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIC5jcy1jYXJ0LXN1bW1hcnkgLnRvdGFscy10YXgsXG4gICAgLmNzLWNhcnQtc3VtbWFyeSAudG90YWxzLXRheCA+IHRoIHtcbiAgICAgIGNvbG9yOiAjODc4Nzg3OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRjYXJ0LXN1bW1hcnlfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGNhcnQtc3VtbWFyeV9ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGNhcnQtc3VtbWFyeV9ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kY2FydC1zdW1tYXJ5X2JveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kY2FydC1zdW1tYXJ5X2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kY2FydC1zdW1tYXJ5X3ZhbHVlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kY2FydC1zdW1tYXJ5X2JvcmRlcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kY2FydC1zdW1tYXJ5X3RpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJGNhcnQtc3VtbWFyeV9uZXh0LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRjYXJ0LXN1bW1hcnlfbmV4dC1idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRjYXJ0LXN1bW1hcnlfaGVhZGxpbmVzLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuXG4kY2FydC1zdW1tYXJ5LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRjYXJ0LXN1bW1hcnktYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31jYXJ0LXN1bW1hcnkge1xuICAgICRyb290OiAmO1xuXG4gICAgYmFja2dyb3VuZDogJGNhcnQtc3VtbWFyeV9iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6ICRjYXJ0LXN1bW1hcnlfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbSAycmVtO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY2FydC1zdW1tYXJ5X2JvcmRlci1jb2xvcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogJGNhcnQtc3VtbWFyeV9ib3gtc2hhZG93O1xuICAgIH1cblxuICAgICYtLWVtcHR5IHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGNhcnQtc3VtbWFyeV90aXRsZS1mb250LXNpemUpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGNhcnQtc3VtbWFyeV9oZWFkbGluZXMtdGV4dC10cmFuc2Zvcm07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgcGFkZGluZzogMS4xcmVtIDAuOHJlbSAxLjFyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNhcnQtc3VtbWFyeV9ib3JkZXI7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogJGNhcnQtc3VtbWFyeV9sYWJlbC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX192YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogJGNhcnQtc3VtbWFyeV92YWx1ZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19yZW1vdmUge1xuICAgICAgICB3aWR0aDogMS4ycmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgJl9fdG90YWxzIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAkY2FydC1zdW1tYXJ5X2xhYmVsLWNvbG9yO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBjb2xvcjogJGNhcnQtc3VtbWFyeV9sYWJlbC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuZ3JhbmQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50OyAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW0gIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY2FydC1zdW1tYXJ5X2JvcmRlcjtcblxuICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS40cmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FydC1zdW1tYXJ5X3ZhbHVlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2NvdW50LmNvdXBvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGF4LW5vdGUtcm93IHtcbiAgICAgICAgdGgsXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RheC1ub3RlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtNDAwO1xuICAgIH1cblxuICAgICZfX3RvLWNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkY2FydC1zdW1tYXJ5X25leHQtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjYXJ0LXN1bW1hcnlfbmV4dC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkY2FydC1zdW1tYXJ5X25leHQtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkY2FydC1zdW1tYXJ5X25leHQtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkY2FydC1zdW1tYXJ5X25leHQtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkY2FydC1zdW1tYXJ5X25leHQtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm11bHRpY2hlY2tvdXQsXG4gICAgLiN7JG5zfWNhcnQtc3VtbWFyeV9fc2hpcHBpbmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jaGVja291dC1tZXRob2RzLWl0ZW1zIC5pdGVtICsgLml0ZW0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHNoaXBwaW5nIGVzdGltYXRpb24gZnJvbSBjYXJ0IHN1bW1hcnlcbiAgICAjYmxvY2stc2hpcHBpbmcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC50b3RhbHMuZ2lmdGNhcmQgLmFjdGlvbi5kZWxldGUge1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Nsb3NlLnN2ZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcmVtKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2NhcnQvY2FydC1zdW1tYXJ5L2NhcnQtc3VtbWFyeS5zY3NzXCI7XG5AaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuXG4kY2FydC1zdW1tYXJ5X2JhY2tncm91bmQ6ICRrbWFfY29sb3Jfd2hpdGU7XG4kY2FydC1zdW1tYXJ5X2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2JveDtcbiRjYXJ0LXN1bW1hcnlfYm94LXNoYWRvdzogJGthbV9ib3hfc2hhZG93O1xuJGNhcnQtc3VtbWFyeV9sYWJlbC1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRjYXJ0LXN1bW1hcnlfdmFsdWUtY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG4kY2FydC1zdW1tYXJ5X3RpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zO1xuXG4uI3skbnN9Y2FydC1zdW1tYXJ5IHtcbiAgICAkcm9vdDogJjtcblxuICAgIGJhY2tncm91bmQ6ICRjYXJ0LXN1bW1hcnlfYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkY2FydC1zdW1tYXJ5X2JvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogMXJlbSAwIDAgMDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICBwYWRkaW5nOiAycmVtIDAgMCAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZUxnXCIpIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggM3B4ICRrbWFfY29sb3JfZ3JleS0yMDA7XG4gICAgfVxuXG4gICAgJi0tZW1wdHkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMCAwIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGNhcnQtc3VtbWFyeV90aXRsZS1mb250LXNpemUpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRjYXJ0LXN1bW1hcnlfaGVhZGxpbmVzLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RvdGFscyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogJGNhcnQtc3VtbWFyeV9sYWJlbC1jb2xvcjtcblxuICAgICAgICAudGFibGUtd3JhcHBlciB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgcGFkZGluZzogMC43cmVtIDFyZW0gMC43cmVtIDJyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgY29sb3I6ICRjYXJ0LXN1bW1hcnlfbGFiZWwtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMnJlbSAwLjdyZW0gMXJlbTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50b3RhbHMtdGF4IHtcbiAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmdyYW5kIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGgtLXNtYWxsICFpbXBvcnRhbnQ7IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2JhY2tncm91bmQtMTAwO1xuXG4gICAgICAgICAgICB0aCxcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC43cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjdyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjYXJ0LXN1bW1hcnlfdmFsdWUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmV4Y2wge1xuICAgICAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jcy1jYXJ0LXN1bW1hcnlfX3ZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS00O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RvLWNoZWNrb3V0LWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMjQwcHg7XG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtbWV0aG9kcy1pdGVtcyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfYmFja2dyb3VuZC0xMDA7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfYmFja2dyb3VuZC0xMDA7XG4gICAgICAgIH1cbiAgICAgICAgLml0ZW0gKyAuaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudG90YWxzIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgIC5hbW91bnQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX2dyZXktODAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5naWZ0Y2FyZCAuYWN0aW9uLmRlbGV0ZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jbG9zZS5zdmdcIik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFyZW0pO1xuICAgICAgICB9XG4gICAgICAgICYuaW5jbCxcbiAgICAgICAgJi5zaGlwcGluZyxcbiAgICAgICAgJi10YXgge1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi10YXgge1xuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICYgPiB0aCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRrbWFfY29sb3JfZ3JleS01MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNhcnQtdGFibGUge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLWNhcnQtdGFibGU6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWNhcnQtdGFibGUge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cblxuLmNzLWNhcnQtdGFibGUtd3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1jYXJ0LXRhYmxlIC5jcy1jYXJ0LXRhYmxlX19oZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmNzLWNhcnQtdGFibGVfX3Rvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNhcnQtdGFibGVfX3Rvb2xiYXIge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNhcnQtdGFibGVfX3Rvb2xiYXItLXRvcCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWNhcnQtdGFibGVfX3Rvb2xiYXItLWJvdHRvbSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH0gfVxuXG4uY3MtY2FydC10YWJsZV9faGVhZCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjZGNkY2RjOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWNhcnQtdGFibGVfX2hlYWQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5jcy1jYXJ0LXRhYmxlX19oZWFkLWNvbCB7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBwYWRkaW5nOiAxLjNyZW0gMS41cmVtIDEuM3JlbSAwLjFyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzkuOTllbSkge1xuICAuY3MtY2FydC10YWJsZV9faGVhZC1jb2w6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSB9XG4gIC5jcy1jYXJ0LXRhYmxlX19oZWFkLWNvbC0tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1jYXJ0LXRhYmxlIC5jcy1jYXJ0LXRhYmxlX19jb2wge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBwYWRkaW5nOiAwLjJyZW07IH1cbiAgICAuY3MtY2FydC10YWJsZSAuY3MtY2FydC10YWJsZV9fY29sOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgLmNzLWNhcnQtdGFibGUgLmNzLWNhcnQtdGFibGVfX2NvbDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNhcnQtdGFibGUgLmNzLWNhcnQtdGFibGVfX2NvbDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgXCI6IFwiO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY2FydC10YWJsZSAuY3MtY2FydC10YWJsZV9fY29sLS1hY3Rpb25zIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1jYXJ0LXRhYmxlIC5jcy1jYXJ0LXRhYmxlX19jb2wtLWFjdGlvbnM6YmVmb3JlIHtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lICovXG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi9cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1saW5lICovIH0gfVxuXG4uY3MtY2FydC10YWJsZV9fY29sIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGNvbG9yOiAjMjEyMTIxO1xuICBmb250LXdlaWdodDogMzAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgcGFkZGluZzogMC44cmVtIDFyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtY2FydC10YWJsZTpub3QoLmNzLWNhcnQtdGFibGUtLW5vLWNoYW5nZS1tb2JpbGUpIC5jcy1jYXJ0LXRhYmxlX19jb2wge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwLjRyZW0gMnJlbTsgfVxuICAgICAgLmNzLWNhcnQtdGFibGU6bm90KC5jcy1jYXJ0LXRhYmxlLS1uby1jaGFuZ2UtbW9iaWxlKSAuY3MtY2FydC10YWJsZV9fY29sOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgICAgIC5jcy1jYXJ0LXRhYmxlOm5vdCguY3MtY2FydC10YWJsZS0tbm8tY2hhbmdlLW1vYmlsZSkgLmNzLWNhcnQtdGFibGVfX2NvbDpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWNhcnQtdGFibGU6bm90KC5jcy1jYXJ0LXRhYmxlLS1uby1jaGFuZ2UtbW9iaWxlKSAuY3MtY2FydC10YWJsZV9fY29sOmJlZm9yZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSBcIjogXCI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1jYXJ0LXRhYmxlX19jb2wge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuICAuY3MtY2FydC10YWJsZV9fY29sLS1hdHRlbnRpb24ge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtY2FydC10YWJsZV9fY29sLS1hY3Rpb25zIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtY2FydC10YWJsZV9fY29sLS1hY3Rpb25zOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBtYXJnaW46IC0xcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgLyogMSAqLyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtY2FydC10YWJsZV9fY29sLS1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtY2FydC10YWJsZV9fY29sLnByaWNlIC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAuY3MtY2FydC10YWJsZV9fY29sLnN1YnRvdGFsIC5wcmljZSwgLmNzLWNhcnQtdGFibGVfX2NvbC50b3RhbCAucHJpY2Uge1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLWNhcnQtdGFibGVfX2NvbC5xdHkgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmUgaW5zaWRlIG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWNhcnQtdGFibGVfX2NvbC5xdHkgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtY2FydC10YWJsZV9fYm9keTpsYXN0LWNoaWxkIC5jcy1jYXJ0LXRhYmxlX19jb2wsXG4uY3MtY2FydC10YWJsZV9fYm9keTpsYXN0LWNoaWxkIC5pdGVtLWluZm8ge1xuICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uY3MtY2FydC10YWJsZS13cmFwcGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogMCAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgfVxuXG4uY3MtY2FydC10YWJsZV9faGVhZCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMzMzMzMzICFpbXBvcnRhbnQ7IH1cblxuLmNzLWNhcnQtdGFibGVfX2hlYWQtY29sIHtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIHBhZGRpbmc6IDEuOHJlbSAxLjVyZW0gMS44cmVtIDAuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjRyZW0gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAuY3MtY2FydC10YWJsZV9faGVhZC1jb2w6bnRoLWxhc3QtY2hpbGQoMSkge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY2FydC10YWJsZSAuY3MtY2FydC10YWJsZV9fY29sOmJlZm9yZSB7XG4gICAgY29udGVudDogYXR0cihkYXRhLXRoKSBcIjogXCI7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogaW5pdGlhbDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1jYXJ0LXRhYmxlIC5jcy1jYXJ0LXRhYmxlX19jb2wtLWFjdGlvbnMge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDVkNWQ1OyB9IH1cblxuLmNzLWNhcnQtdGFibGVfX2NvbCB7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gIHBhZGRpbmc6IDAuOHJlbSAxcmVtOyB9XG4gIC5jcy1jYXJ0LXRhYmxlX19jb2wucHJpY2UsIC5jcy1jYXJ0LXRhYmxlX19jb2wuc3VidG90YWwge1xuICAgIHdpZHRoOiAzMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtY2FydC10YWJsZTpub3QoLmNzLWNhcnQtdGFibGUtLW5vLWNoYW5nZS1tb2JpbGUpIC5jcy1jYXJ0LXRhYmxlX19jb2w6YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpIFwiOiBcIjtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWNhcnQtdGFibGVfX2NvbC0tYWN0aW9ucyB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q1ZDVkNTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWNhcnQtdGFibGVfX2NvbC0tbGFiZWwge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgLmNzLWNhcnQtdGFibGVfX2NvbC5zdWJ0b3RhbCAucHJpY2UsIC5jcy1jYXJ0LXRhYmxlX19jb2wudG90YWwgLnByaWNlIHtcbiAgICBjb2xvcjogIzMzMzMzMzsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJGNhcnQtdGFibGVfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kY2FydC10YWJsZV9ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGNhcnQtdGFibGVfaGVhZGxpbmUtYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGNhcnQtdGFibGVfaGVhZGxpbmUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRjYXJ0LXRhYmxlX2l0ZW0tY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcblxuLiN7JG5zfWNhcnQtdGFibGUge1xuICAgICRyb290OiAmO1xuICAgICRyb290Tm9DaGFuZ2VNb2JpbGU6ICN7JHJvb3R9LS1uby1jaGFuZ2UtbW9iaWxlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY2FydC10YWJsZV9ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgJi13cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcnQtdGFibGVfYmFja2dyb3VuZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAjeyRyb290fV9faGVhZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Rvb2xiYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGNhcnQtdGFibGVfaGVhZGxpbmUtYm9yZGVyLWJvdHRvbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkLWNvbCB7XG4gICAgICAgIGNvbG9yOiAkY2FydC10YWJsZV9oZWFkbGluZS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogMS4zcmVtIDEuNXJlbSAxLjNyZW0gMC4xcmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnLCAnPGxhcHRvcExnJykge1xuICAgICAgICAgICAgLy8gU2Vjb25kIGNlbGwgZnJvbSB0aGUgZW5kIGlzIFN1YnRvdGFsLiBJbiBHZXJtYW4gbGFuZ3VhZ2UgWndpc2NoZW5zdW1tZSBpcyB0b28gbG9uZyBvbiBob3Jpem9udGFsIHRhYmxldHMvc21hbGwgbGFwdG9wc1xuICAgICAgICAgICAgLy8gVGhlIGxhc3QgY2VsbCBpcyBlbXB0eSBjbyB3aXRoIHBvc2l0aW9uIGFic29sdXRlIHRoaXMgdGV4dCB3aWxsIGJlIGZ1bGx5LCBidXQgY2VsbCB3b24ndCB0YWtlIHNwYWNlIHRoYXQgaXMgbmVlZGVkIGZvciBhY3Rpb24gaWNvbnNcbiAgICAgICAgICAgICY6bnRoLWxhc3QtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJpZ2h0IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2NvbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMnJlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpICc6ICc7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjYXJ0LXRhYmxlX2hlYWRsaW5lLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2FydC10YWJsZV9ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbGluZSAqL1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47IC8qIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb2wge1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgY29sb3I6ICRjYXJ0LXRhYmxlX2l0ZW0tY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2FydC10YWJsZV9ib3JkZXItY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuXG4gICAgICAgICN7JHJvb3R9Om5vdCgjeyRyb290Tm9DaGFuZ2VNb2JpbGV9KSAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjRyZW0gMnJlbTtcblxuICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpICc6ICc7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjYXJ0LXRhYmxlX2hlYWRsaW5lLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYXR0ZW50aW9uIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBjb2xvcjogJGNhcnQtdGFibGVfaXRlbS1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGlvbnMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjYXJ0LXRhYmxlX2JvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5wcmljZSB7XG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnN1YnRvdGFsLFxuICAgICAgICAmLnRvdGFsIHtcbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjYXJ0LXRhYmxlX2l0ZW0tY29sb3I7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYucXR5IHtcbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvY2FydC9jYXJ0LXRhYmxlL2NhcnQtdGFibGUuc2Nzc1wiO1xuQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcblxuJGNhcnQtdGFibGVfYmFja2dyb3VuZDogJGttYV9jb2xvcl93aGl0ZTtcbiRjYXJ0LXRhYmxlX3BhZGRpbmc6IDAgMS41cmVtO1xuJGNhcnQtdGFibGVfYm9yZGVyLWNvbG9yOiAka21hX2NvbG9yX2dyZXktMzAwO1xuJGNhcnQtdGFibGVfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYm94O1xuJGNhcnQtdGFibGVfaGVhZGxpbmUtYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS04MDA7XG4kY2FydC10YWJsZV9oZWFkbGluZS1jb2xvcjogJGttYV9jb2xvcl9wcmltYXJ5LTgwMDtcbiRjYXJ0LXRhYmxlX2l0ZW0tY29sb3I6ICRrbWFfY29sb3JfcHJpbWFyeS04MDA7XG5cbi4jeyRuc31jYXJ0LXRhYmxlIHtcbiAgICAkcm9vdDogJjtcbiAgICAkcm9vdE5vQ2hhbmdlTW9iaWxlOiAjeyRyb290fS0tbm8tY2hhbmdlLW1vYmlsZTtcblxuICAgICZfX2JvZHkge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgLmNzLWNhcnQtdGFibGVfX2NvbCxcbiAgICAgICAgICAgIC5pdGVtLWluZm8ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXdyYXBwZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FydC10YWJsZV9iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkY2FydC10YWJsZV9wYWRkaW5nO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkY2FydC10YWJsZV9ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICZfX2hlYWQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkY2FydC10YWJsZV9oZWFkbGluZS1ib3JkZXItYm90dG9tICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9faGVhZC1jb2wge1xuICAgICAgICBjb2xvcjogJGNhcnQtdGFibGVfaGVhZGxpbmUtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDEuOHJlbSAxLjVyZW0gMS44cmVtIDAuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaC0tc21hbGwgIWltcG9ydGFudDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAmOm50aC1sYXN0LWNoaWxkKDEpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN7JHJvb3R9X19jb2wge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgXCI6IFwiO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FydC10YWJsZV9oZWFkbGluZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBpbml0aWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2FydC10YWJsZV9ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb2wge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoLS1zbWFsbDtcbiAgICAgICAgY29sb3I6ICRjYXJ0LXRhYmxlX2l0ZW0tY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2FydC10YWJsZV9ib3JkZXItY29sb3I7XG4gICAgICAgIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuXG4gICAgICAgICYucHJpY2UsXG4gICAgICAgICYuc3VidG90YWwge1xuICAgICAgICAgICAgd2lkdGg6IDMwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH06bm90KCN7JHJvb3ROb0NoYW5nZU1vYmlsZX0pICYge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aCkgXCI6IFwiO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FydC10YWJsZV9oZWFkbGluZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3Rpb25zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjYXJ0LXRhYmxlX2JvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zdWJ0b3RhbCxcbiAgICAgICAgJi50b3RhbCB7XG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FydC10YWJsZV9pdGVtLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtY29udGFpbmVyLS1zdWNjZXNzLXBhZ2Uge1xuICBwYWRkaW5nLWJvdHRvbTogODVweDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLmNvbHVtbi5tYWluIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbi5jaGVja291dC1pbmRleC1pbmRleCAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi8gfVxuXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggYnV0dG9uLmFjdGlvbi5wcmltYXJ5LmFjdGlvbi1zYXZlLWFkZHJlc3Mge1xuICBvcmRlcjogMjsgfVxuXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLnBhZ2UtaGVhZGVyIHtcbiAgbWF4LXdpZHRoOiA5M3JlbTtcbiAgbWFyZ2luOiAwLjVyZW0gYXV0byAxcmVtO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jaGVja291dC1pbmRleC1pbmRleCAucGFnZS1oZWFkZXIge1xuICAgICAgbWFyZ2luOiAyLjVyZW0gYXV0byAxcmVtOyB9IH1cbiAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5wYWdlLWhlYWRlciAuY3MtbG9nbyB7XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAucGFnZS1oZWFkZXIgLmNzLWxvZ28ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLnBhZ2UtaGVhZGVyIC5oZWFkZXIuY29udGVudCB7XG4gICAgcGFkZGluZzogMCAwIDNyZW07IH1cblxuLmNoZWNrb3V0LWluZGV4LWluZGV4IC5jcy10b3BiYXIge1xuICBtYXgtd2lkdGg6IDkzcmVtOyB9XG4gIC5jaGVja291dC1pbmRleC1pbmRleCAuY3MtdG9wYmFyIC5jcy10b3BiYXJfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXBvcHVwIC5tb2RhbC1pbm5lci13cmFwIC5maWVsZCAubGFiZWxbZm9yPVwic2hpcHBpbmctc2F2ZS1pbi1hZGRyZXNzLWJvb2tcIl0ge1xuICB3aWR0aDogYXV0bzsgfVxuXG4uY3MtY2hlY2tvdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXgtd2lkdGg6IDQ1cmVtO1xuICBtYXJnaW46IDVyZW0gYXV0byAxLjVyZW0gYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jaGVja291dCB7XG4gICAgICBtYXgtd2lkdGg6IDkzcmVtOyB9IH1cbiAgLmNzLWNoZWNrb3V0X19wcm9ncmVzcy1iYXIge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jaGVja291dF9fcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAtMTNyZW07XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAuY3MtY2hlY2tvdXRfX21lc3NhZ2VzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jaGVja291dF9fbW9iaWxlLXN1bW1hcnkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1jaGVja291dF9fZ3JhbmQtdG90YWwtdGF4LW5vdGUtcm93IHRkLFxuICAuY3MtY2hlY2tvdXRfX2dyYW5kLXRvdGFsLXRheC1ub3RlLXJvdyB0aCB7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC5jcy1jaGVja291dF9fZ3JhbmQtdG90YWwtdGF4LW5vdGUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLmNzLWNoZWNrb3V0X19zaWRlYmFyLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtY2hlY2tvdXRfX3NpZGViYXItYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY2hlY2tvdXRfX3NpZGViYXItYnV0dG9uLCAuY3MtY2hlY2tvdXRfX3NpZGViYXItYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWNoZWNrb3V0X19zaWRlYmFyLWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dF9fc2lkZWJhci1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXRfX3NpZGViYXItYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dF9fc2lkZWJhci1idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dF9fc2lkZWJhci1idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dF9fc2lkZWJhci1idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICAgLmNzLWNoZWNrb3V0X19zaWRlYmFyLWJ1dHRvbltkaXNhYmxlZF0sIC5jcy1jaGVja291dF9fc2lkZWJhci1idXR0b246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jaGVja291dF9fc2lkZWJhci1idXR0b24ge1xuICAgICAgICBtaW4td2lkdGg6IDIwcmVtOyB9IH1cbiAgICAuY3MtY2hlY2tvdXRfX3NpZGViYXItYnV0dG9uLXNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAuY3MtY2hlY2tvdXRfX3NpZGViYXItYnV0dG9uLWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jaGVja291dF9fc2lkZWJhci1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1jaGVja291dF9fcGxhY2Utb3JkZXIge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RjZGNkYztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5tb2RhbC1pbm5lci13cmFwIC5jcy1jaGVja291dF9fcGxhY2Utb3JkZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0X19wbGFjZS1vcmRlciB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2hlY2tvdXRfX3BsYWNlLW9yZGVyIHtcbiAgICAgICAgYm9yZGVyOiBub25lOyB9IH1cbiAgICAuY3MtY2hlY2tvdXRfX3BsYWNlLW9yZGVyLWJ1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmNzLWNoZWNrb3V0X19wbGFjZS1vcmRlci1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLWNoZWNrb3V0X19wbGFjZS1vcmRlci1idXR0b24sIC5jcy1jaGVja291dF9fcGxhY2Utb3JkZXItYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAgIC5jcy1jaGVja291dF9fcGxhY2Utb3JkZXItYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0X19wbGFjZS1vcmRlci1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXRfX3BsYWNlLW9yZGVyLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXRfX3BsYWNlLW9yZGVyLWJ1dHRvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0X19wbGFjZS1vcmRlci1idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dF9fcGxhY2Utb3JkZXItYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgICAgLmNzLWNoZWNrb3V0X19wbGFjZS1vcmRlci1idXR0b25bZGlzYWJsZWRdLCAuY3MtY2hlY2tvdXRfX3BsYWNlLW9yZGVyLWJ1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgICAgLmNzLWNoZWNrb3V0X19wbGFjZS1vcmRlci1idXR0b24tc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgICAuY3MtY2hlY2tvdXRfX3BsYWNlLW9yZGVyLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IDEuNnJlbTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtY2hlY2tvdXQgLmZpZWxkc2V0IC5ub3RlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG4gIC5jcy1jaGVja291dCAuZmllbGRzZXQgLmxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3MtZm9ybSAuY2hvaWNlLmZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLWZvcm0gLmxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNoZWNrb3V0IC5mb3JtLXNoaXBwaW5nLWFkZHJlc3MgLmZpZWxkW25hbWUqPVwicG9zdGNvZGVcIl0ge1xuICAgICAgd2lkdGg6IDExLjVyZW07XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5mb3JtLXNoaXBwaW5nLWFkZHJlc3MgLmZpZWxkW25hbWUqPVwicG9zdGNvZGVcIl0gLmVycm9yLFxuICAgICAgLmNzLWNoZWNrb3V0IC5mb3JtLXNoaXBwaW5nLWFkZHJlc3MgLmZpZWxkW25hbWUqPVwicG9zdGNvZGVcIl0gLndhcm5pbmcge1xuICAgICAgICB3aWR0aDogY2FsYyggKCgxMDB2dyAtICgxLjVyZW0gKiAyKSkgKiAoMSAtIDAuNDQpKSAtICgycmVtICogMikgLSAwLjdyZW0pO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtYXJnaW4tdG9wOiAyLjdyZW07XG4gICAgICAgIGZsb2F0OiBsZWZ0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY2hlY2tvdXQgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRbbmFtZSo9XCJwb3N0Y29kZVwiXSAuZXJyb3IsXG4gICAgLmNzLWNoZWNrb3V0IC5mb3JtLXNoaXBwaW5nLWFkZHJlc3MgLmZpZWxkW25hbWUqPVwicG9zdGNvZGVcIl0gLndhcm5pbmcge1xuICAgICAgd2lkdGg6IGNhbGMoICg5M3JlbSAqICgxIC0gMC40NCkpIC0gKDJyZW0gKiAyKSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jaGVja291dCAuZm9ybS1zaGlwcGluZy1hZGRyZXNzIC5maWVsZFtuYW1lKj1cImNpdHlcIl0ge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDExLjVyZW0pO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0gfVxuICAuY3MtY2hlY2tvdXQgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGQuX3N1Y2Nlc3M6bm90KC5fd2Fybi1taXNzaW5nLXN0cmVldC1udW1iZXIpIC5jb250cm9sOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtY2hlY2tvdXQgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRbbmFtZT1cInNoaXBwaW5nQWRkcmVzcy5jdXN0b21fYXR0cmlidXRlcy5jdXN0b21lcl90eXBlXCJdIC5jb250cm9sOmFmdGVyLCAuY3MtY2hlY2tvdXQgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRbbmFtZT1cInNoaXBwaW5nQWRkcmVzcy5jb3VudHJ5X2lkXCJdIC5jb250cm9sOmFmdGVyLCAuY3MtY2hlY2tvdXQgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyAuZmllbGRbbmFtZT1cInNoaXBwaW5nQWRkcmVzcy5wcmVmaXhcIl0gLmNvbnRyb2w6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuY3MtY2hlY2tvdXQgLmJsb2NrIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLmJsb2NrIC50aXRsZSBzdHJvbmcge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1jaGVja291dCAub3BjLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgei1pbmRleDogMjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbG9hdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2hlY2tvdXQgLm9wYy13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQ0JSk7IH0gfVxuICAgIC5jcy1jaGVja291dCAub3BjLXdyYXBwZXIgLnN0ZXAtdGl0bGUsXG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtd3JhcHBlciAuYmxvY2stdGl0bGUge1xuICAgICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAgMCAycmVtOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtd3JhcHBlciAuYWN0aW9uLmNvbnRpbnVlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWNoZWNrb3V0IC5vcGMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmUgaW5zaWRlIG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWNoZWNrb3V0IC5jaGVja291dC1zaGlwcGluZy1hZGRyZXNzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1jaGVja291dF9fc2lkZWJhcixcbiAgLmNzLWNoZWNrb3V0X19zdGVwLXRhYnMgLmNzLXRhYnMsIC5jcy1jaGVja291dF9fc2hpcHBpbmctbWV0aG9kLXdyYXBwZXIsIC5jcy1jaGVja291dF9fc2hpcHBpbmctbWV0aG9kLFxuICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciwgLmNzLWNoZWNrb3V0X19wYXltZW50cywgLmNzLWNoZWNrb3V0X19hZnRlci1wYXltZW50cyxcbiAgLmNzLWNoZWNrb3V0ICNzdG9yZS1waWNrdXAsXG4gIC5jcy1jaGVja291dCAjc3RvcmUtc2VsZWN0b3Ige1xuICAgIG1hcmdpbjogMCAwIDMuNXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jaGVja291dF9fc2lkZWJhcixcbiAgICAgIC5jcy1jaGVja291dF9fc3RlcC10YWJzIC5jcy10YWJzLCAuY3MtY2hlY2tvdXRfX3NoaXBwaW5nLW1ldGhvZC13cmFwcGVyLCAuY3MtY2hlY2tvdXRfX3NoaXBwaW5nLW1ldGhvZCxcbiAgICAgIC5jcy1jaGVja291dCAub3BjLWVzdGltYXRlZC13cmFwcGVyLCAuY3MtY2hlY2tvdXRfX3BheW1lbnRzLCAuY3MtY2hlY2tvdXRfX2FmdGVyLXBheW1lbnRzLFxuICAgICAgLmNzLWNoZWNrb3V0ICNzdG9yZS1waWNrdXAsXG4gICAgICAuY3MtY2hlY2tvdXQgI3N0b3JlLXNlbGVjdG9yIHtcbiAgICAgICAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSgzMywgMzMsIDMzLCAwLjI4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0X19zaWRlYmFyLFxuICAgICAgLmNzLWNoZWNrb3V0X19zdGVwLXRhYnMgLmNzLXRhYnMsIC5jcy1jaGVja291dF9fc2hpcHBpbmctbWV0aG9kLXdyYXBwZXIsIC5jcy1jaGVja291dF9fc2hpcHBpbmctbWV0aG9kLFxuICAgICAgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIsIC5jcy1jaGVja291dF9fcGF5bWVudHMsIC5jcy1jaGVja291dF9fYWZ0ZXItcGF5bWVudHMsXG4gICAgICAuY3MtY2hlY2tvdXQgI3N0b3JlLXBpY2t1cCxcbiAgICAgIC5jcy1jaGVja291dCAjc3RvcmUtc2VsZWN0b3Ige1xuICAgICAgICBwYWRkaW5nOiAycmVtICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtY2hlY2tvdXRfX2d1ZXN0LW9yLWxvZ2luIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtY2hlY2tvdXQgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWNoZWNrb3V0X19zaGlwcGluZy1tZXRob2Qge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gICAgICBwYWRkaW5nOiAycmVtICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtY2hlY2tvdXRfX3NoaXBwaW5nLW1ldGhvZC13cmFwcGVyLCAuY3MtY2hlY2tvdXRfX3NoaXBwaW5nLW1ldGhvZCwgLmNzLWNoZWNrb3V0X19wYXltZW50cywgLmNzLWNoZWNrb3V0X19hZnRlci1wYXltZW50cyxcbiAgLmNzLWNoZWNrb3V0ICNzdG9yZS1zZWxlY3RvciB7XG4gICAgcGFkZGluZzogMnJlbSAwOyB9XG4gICAgLmNzLWNoZWNrb3V0X19zaGlwcGluZy1tZXRob2Qtd3JhcHBlci0taGlkZGVuLCAuY3MtY2hlY2tvdXRfX3NoaXBwaW5nLW1ldGhvZC0taGlkZGVuLCAuY3MtY2hlY2tvdXRfX3BheW1lbnRzLS1oaWRkZW4sIC5jcy1jaGVja291dF9fYWZ0ZXItcGF5bWVudHMtLWhpZGRlbixcbiAgICAuY3MtY2hlY2tvdXQgI3N0b3JlLXNlbGVjdG9yLS1oaWRkZW4ge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0X19zaGlwcGluZy1tZXRob2Qtd3JhcHBlciwgLmNzLWNoZWNrb3V0X19zaGlwcGluZy1tZXRob2QsIC5jcy1jaGVja291dF9fcGF5bWVudHMsIC5jcy1jaGVja291dF9fYWZ0ZXItcGF5bWVudHMsXG4gICAgICAuY3MtY2hlY2tvdXQgI3N0b3JlLXNlbGVjdG9yIHtcbiAgICAgICAgcGFkZGluZzogMnJlbTsgfSB9XG4gIC5jcy1jaGVja291dF9fc2hpcHBpbmctbWV0aG9kLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSgzMywgMzMsIDMzLCAwLjI4KTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1jaGVja291dF9fc3RlcC10YWJzIH4gLmNzLWNoZWNrb3V0X19zaGlwcGluZy1tZXRob2Qtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfSB9XG4gIC5jcy1jaGVja291dCAjc3RvcmUtc2VsZWN0b3Ige1xuICAgIHBhZGRpbmc6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0ICNzdG9yZS1zZWxlY3RvciB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1jaGVja291dF9fcGF5bWVudHMsIC5jcy1jaGVja291dF9fYWZ0ZXItcGF5bWVudHMge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5jcy1jaGVja291dF9fYWZ0ZXItcGF5bWVudHMgPiAucGF5bWVudC1vcHRpb246bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAuY3MtY2hlY2tvdXRfX3NpZGViYXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2hlY2tvdXRfX3NpZGViYXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiBjYWxjKDQ0JSAtIDMuNXJlbSk7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMy41cmVtO1xuICAgICAgICBvcmRlcjogMjsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jaGVja291dF9fc2lkZWJhciAuYWN0aW9uLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1jaGVja291dF9fc2lkZWJhci1pbm5lciAucHJpY2UtaW5jbHVkaW5nLXRheCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtY2hlY2tvdXRfX3NpZGViYXItaW5uZXIgLnByaWNlLWV4Y2x1ZGluZy10YXggLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWNoZWNrb3V0X19zaWRlYmFyLWJvdHRvbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0X19zaWRlYmFyLWJvdHRvbSB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07IH0gfVxuICAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4gLnByaW1hcnkgLmFjdGlvbixcbiAgLmNzLWNoZWNrb3V0IC5ibG9jay1hdXRoZW50aWNhdGlvbiAucHJpbWFyeSAuYWN0aW9uIHtcbiAgICBtaW4td2lkdGg6IDE1cmVtOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5wcmltYXJ5IC5hY3Rpb246Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLmNzLWNoZWNrb3V0IC5ibG9jay1hdXRoZW50aWNhdGlvbiAucHJpbWFyeSAuYWN0aW9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4gLnByaW1hcnkgLmFjdGlvbiwgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5wcmltYXJ5IC5hY3Rpb246dmlzaXRlZCxcbiAgICAuY3MtY2hlY2tvdXQgLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5wcmltYXJ5IC5hY3Rpb24sXG4gICAgLmNzLWNoZWNrb3V0IC5ibG9jay1hdXRoZW50aWNhdGlvbiAucHJpbWFyeSAuYWN0aW9uOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5wcmltYXJ5IC5hY3Rpb246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4gLnByaW1hcnkgLmFjdGlvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAuZm9ybS1sb2dpbiAucHJpbWFyeSAuYWN0aW9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAuZm9ybS1sb2dpbiAucHJpbWFyeSAuYWN0aW9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4gLnByaW1hcnkgLmFjdGlvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5wcmltYXJ5IC5hY3Rpb246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgLmNzLWNoZWNrb3V0IC5ibG9jay1hdXRoZW50aWNhdGlvbiAucHJpbWFyeSAuYWN0aW9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1jaGVja291dCAuYmxvY2stYXV0aGVudGljYXRpb24gLnByaW1hcnkgLmFjdGlvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAuY3MtY2hlY2tvdXQgLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5wcmltYXJ5IC5hY3Rpb246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1jaGVja291dCAuYmxvY2stYXV0aGVudGljYXRpb24gLnByaW1hcnkgLmFjdGlvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1jaGVja291dCAuYmxvY2stYXV0aGVudGljYXRpb24gLnByaW1hcnkgLmFjdGlvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgIC5jcy1jaGVja291dCAuYmxvY2stYXV0aGVudGljYXRpb24gLnByaW1hcnkgLmFjdGlvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4gLnByaW1hcnkgLmFjdGlvbltkaXNhYmxlZF0sIC5jcy1jaGVja291dCAuZm9ybS1sb2dpbiAucHJpbWFyeSAuYWN0aW9uOnZpc2l0ZWRbZGlzYWJsZWRdLFxuICAgICAgLmNzLWNoZWNrb3V0IC5ibG9jay1hdXRoZW50aWNhdGlvbiAucHJpbWFyeSAuYWN0aW9uW2Rpc2FibGVkXSxcbiAgICAgIC5jcy1jaGVja291dCAuYmxvY2stYXV0aGVudGljYXRpb24gLnByaW1hcnkgLmFjdGlvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5wcmltYXJ5IC5hY3Rpb24sXG4gICAgICAuY3MtY2hlY2tvdXQgLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5wcmltYXJ5IC5hY3Rpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gICAgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5wcmltYXJ5IC5hY3Rpb24gc3BhbixcbiAgICAuY3MtY2hlY2tvdXQgLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5wcmltYXJ5IC5hY3Rpb24gc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4gLmFjdGlvbnMtdG9vbGJhcixcbiAgLmNzLWNoZWNrb3V0IC5ibG9jay1hdXRoZW50aWNhdGlvbiAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSxcbiAgICAuY3MtY2hlY2tvdXQgLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5hY3Rpb25zLXRvb2xiYXIgLnNlY29uZGFyeSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgLmNzLWNoZWNrb3V0IC5mb3JtLWxvZ2luIC5maWVsZCxcbiAgLmNzLWNoZWNrb3V0IC5ibG9jay1hdXRoZW50aWNhdGlvbiAuZmllbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4gLmJsb2NrLXRpdGxlLFxuICAuY3MtY2hlY2tvdXQgLmJsb2NrLWF1dGhlbnRpY2F0aW9uIC5ibG9jay10aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmNzLWNoZWNrb3V0IC5hY3Rpb24ucmVtaW5kLFxuICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1yZW1pbmQge1xuICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLmZvcm0tbG9naW4ge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCB0ZCB7XG4gICAgICBwYWRkaW5nLXRvcDogMC44cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAuY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCB0ZCB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cbiAgICAgIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIHRkLmNvbC1tZXRob2Qge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAuY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAgIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIHRoZWFkIHRoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5yYWRpbyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEuOXJlbTtcbiAgICAgIHdpZHRoOiAxLjlyZW07XG4gICAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgICAgb3V0bGluZTogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAgIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5yYWRpbzo6LW1vei1mb2N1cy1pbm5lciwgLmNzLWNoZWNrb3V0IC50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgLnJhZGlvOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5yYWRpbzpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgLnJhZGlvOmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzMzMzMzMycgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gICAgICAgIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5yYWRpbzpjaGVja2VkLCAuY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAucmFkaW86Y2hlY2tlZDpob3ZlciwgLmNzLWNoZWNrb3V0IC50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgLnJhZGlvOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMzMzMzM7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgLnJhZGlvW2Rpc2FibGVkXSxcbiAgICAgIC5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgICAuY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAucmFkaW9bZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWNoZWNrb3V0IC5zaGlwLXRvLFxuICAuY3MtY2hlY2tvdXQgLnNoaXAtdmlhIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAuY3MtY2hlY2tvdXQgLnNoaXAtdG8ge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIC5jcy1jaGVja291dCAuc2hpcHBpbmctaW5mb3JtYXRpb24ge1xuICAgIHBhZGRpbmc6IDAgMCAycmVtOyB9XG4gIC5jcy1jaGVja291dCAuc2hpcHBpbmctaW5mb3JtYXRpb24tY29udGVudCB7XG4gICAgcGFkZGluZzogMCAycmVtOyB9XG4gIC5jcy1jaGVja291dCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1pbmZvcm1hdGlvbi10aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAycmVtIDJyZW0gMDsgfVxuICAgIC5jcy1jaGVja291dCAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUgYnV0dG9uLmFjdGlvbi5hY3Rpb24tZWRpdCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtY2hlY2tvdXQgLm1ldGhvZHMtc2hpcHBpbmcgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gMnJlbSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jaGVja291dCAubWV0aG9kcy1zaGlwcGluZyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDJyZW0pOyB9IH1cbiAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tc2hvdy1wb3B1cDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1jaGVja291dCAuYWN0aW9uLXNob3ctcG9wdXAsIC5jcy1jaGVja291dCAuYWN0aW9uLXNob3ctcG9wdXA6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgIC5jcy1jaGVja291dCAuYWN0aW9uLXNob3ctcG9wdXA6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXQgLmFjdGlvbi1zaG93LXBvcHVwOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5hY3Rpb24tc2hvdy1wb3B1cDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXQgLmFjdGlvbi1zaG93LXBvcHVwOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXQgLmFjdGlvbi1zaG93LXBvcHVwOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXQgLmFjdGlvbi1zaG93LXBvcHVwOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1zaG93LXBvcHVwW2Rpc2FibGVkXSwgLmNzLWNoZWNrb3V0IC5hY3Rpb24tc2hvdy1wb3B1cDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICBjdXJzb3I6IGF1dG87XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG4gIC5jcy1jaGVja291dCAjZGhsLXBhY2tzdGF0aW9uLnNlbGVjdGVkLXBhY2tzdGF0aW9uIH4gI3NoaXBwaW5nIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbXMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAgIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuZWRpdC1hZGRyZXNzLWxpbmssXG4gICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0ge1xuICAgICAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbXMgLmVkaXQtYWRkcmVzcy1saW5rOjotbW96LWZvY3VzLWlubmVyLFxuICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5lZGl0LWFkZHJlc3MtbGluaywgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5lZGl0LWFkZHJlc3MtbGluazp2aXNpdGVkLFxuICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0sXG4gICAgICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbXMgLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbTp2aXNpdGVkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbXMgLmVkaXQtYWRkcmVzcy1saW5rOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5lZGl0LWFkZHJlc3MtbGluazpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuZWRpdC1hZGRyZXNzLWxpbms6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5lZGl0LWFkZHJlc3MtbGluazp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5lZGl0LWFkZHJlc3MtbGluazp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5lZGl0LWFkZHJlc3MtbGluazp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgICAgIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW06Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbXMgLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbXMgLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW06dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgICAgIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5lZGl0LWFkZHJlc3MtbGlua1tkaXNhYmxlZF0sIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuZWRpdC1hZGRyZXNzLWxpbms6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgICAgIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtW2Rpc2FibGVkXSxcbiAgICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1zIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW06dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgICAgIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuZWRpdC1hZGRyZXNzLWxpbmsgc3BhbixcbiAgICAgIC5jcy1jaGVja291dCAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbSB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbjogMCAwIDEuNXJlbTtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW0ge1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAoMnJlbSAvIDIpKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnJlbTsgfSB9XG4gICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW0uc2VsZWN0ZWQtaXRlbSB7XG4gICAgICBib3JkZXItY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtY2hlY2tvdXQgLnNoaXBwaW5nLWFkZHJlc3MtaXRlbSBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5zaGlwcGluZy1hZGRyZXNzLWl0ZW1fX2FkZHJlc3MtYWN0aW9uIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLmVzdGltYXRlZC1ibG9jayB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciB7XG4gICAgcGFkZGluZzogMCAwIDJyZW07XG4gICAgei1pbmRleDogMjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAycmVtIDA7IH0gfVxuICAgIC5jcy1jaGVja291dCAub3BjLWVzdGltYXRlZC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1jaGVja291dCAub3BjLWVzdGltYXRlZC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQsIC5jcy1jaGVja291dCAub3BjLWVzdGltYXRlZC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQ6dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAub3BjLWVzdGltYXRlZC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0W2Rpc2FibGVkXSwgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmFjdGlvbi5zaG93Y2FydDp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0OmhvdmVyIC5jb3VudGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuYWN0aW9uLnNob3djYXJ0OmhvdmVyIC5jb3VudGVyLW51bWJlciB7XG4gICAgICBjb2xvcjogIzMyNGRjZjsgfVxuICAgIC5jcy1jaGVja291dCAub3BjLWVzdGltYXRlZC13cmFwcGVyIC5hY3Rpb24uc2hvd2NhcnQgLmNvdW50ZXItbnVtYmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIgLmNvdW50ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzI0ZGNmO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjJyZW07XG4gICAgICBwYWRkaW5nOiAwIDAuNnJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGhlaWdodDogMS44ZW07XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0wLjE1ZW07XG4gICAgICB0b3A6IC0wLjE1ZW07IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAuY291bnRlci1udW1iZXIge1xuICAgICAgbWluLXdpZHRoOiAxY2g7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAubWluaWNhcnQtd3JhcHBlcixcbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciAubWluaWNhcnQtd3JhcHBlciAuc2hvd2NhcnQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWNoZWNrb3V0IC5maWVsZC1zZWxlY3QtYmlsbGluZyBsYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1zYW1lLWFzLXNoaXBwaW5nLWJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3Mtc2FtZS1hcy1zaGlwcGluZy1ibG9jayBsYWJlbCBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEuMnJlbTsgfVxuICAgIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sgaW5wdXQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiAxLjlyZW07XG4gICAgICB3aWR0aDogMS45cmVtO1xuICAgICAgbWFyZ2luOiAtMC4wNjI1ZW0gY2FsYygwLjVlbSArIDFweCkgMCAwO1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICBtYXJnaW46IDAuMnJlbSAwLjNyZW0gMC4zcmVtIDA7IH1cbiAgICAgIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIsIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sgaW5wdXQ6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3Mtc2FtZS1hcy1zaGlwcGluZy1ibG9jayBpbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sgaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAgIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sgaW5wdXQ6Y2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzMzMzMzMzJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgICAgICAgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3Mtc2FtZS1hcy1zaGlwcGluZy1ibG9jayBpbnB1dDpjaGVja2VkLCAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1zYW1lLWFzLXNoaXBwaW5nLWJsb2NrIGlucHV0OmNoZWNrZWQ6aG92ZXIsIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sgaW5wdXQ6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1zYW1lLWFzLXNoaXBwaW5nLWJsb2NrIGlucHV0W2Rpc2FibGVkXSxcbiAgICAgIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLXNhbWUtYXMtc2hpcHBpbmctYmxvY2sgaW5wdXRbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgICAgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3Mtc2FtZS1hcy1zaGlwcGluZy1ibG9jayBpbnB1dFtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3Mtc2FtZS1hcy1zaGlwcGluZy1ibG9jayBpbnB1dDpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nJTIzMzMzMzMzJyBkPSdNNS4zMTMgMTAuMTA4SDUuMjRhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LS40MWwtMS45NDctMi41NWExLjA2NCAxLjAwNSAwIDAgMSAxLjcyMy0xLjE3NUw1LjQ2MyA3LjU2IDkuMDYgNC4xOWExLjA2NCAxLjAwNSAwIDAgMSAuNzUtLjI5N2guODQ2YTEuMDY0IDEuMDA1IDAgMCAxIDAgMi4wMDRoLS40NUw2LjA2NCA5LjgxYTEuMDY0IDEuMDA1IDAgMCAxLS43NS4yOTh6Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLWRldGFpbHMgLmFjdGlvbi1lZGl0LWFkZHJlc3Mge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIG1hcmdpbjogMS42cmVtIDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1kZXRhaWxzIC5hY3Rpb24tZWRpdC1hZGRyZXNzOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1kZXRhaWxzIC5hY3Rpb24tZWRpdC1hZGRyZXNzLCAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1kZXRhaWxzIC5hY3Rpb24tZWRpdC1hZGRyZXNzOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1kZXRhaWxzIC5hY3Rpb24tZWRpdC1hZGRyZXNzOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3MtZGV0YWlscyAuYWN0aW9uLWVkaXQtYWRkcmVzczpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLWRldGFpbHMgLmFjdGlvbi1lZGl0LWFkZHJlc3M6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3MtZGV0YWlscyAuYWN0aW9uLWVkaXQtYWRkcmVzczp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3MtZGV0YWlscyAuYWN0aW9uLWVkaXQtYWRkcmVzczp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5iaWxsaW5nLWFkZHJlc3MtZGV0YWlscyAuYWN0aW9uLWVkaXQtYWRkcmVzczp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgIC5jcy1jaGVja291dCAuYmlsbGluZy1hZGRyZXNzLWRldGFpbHMgLmFjdGlvbi1lZGl0LWFkZHJlc3NbZGlzYWJsZWRdLCAuY3MtY2hlY2tvdXQgLmJpbGxpbmctYWRkcmVzcy1kZXRhaWxzIC5hY3Rpb24tZWRpdC1hZGRyZXNzOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1jaGVja291dCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jaGVja291dCAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNoZWNrb3V0IC5jaGVja291dC1iaWxsaW5nLWFkZHJlc3MgYnV0dG9uLmFjdGlvbi5hY3Rpb24tdXBkYXRlIHtcbiAgICAgIG9yZGVyOiAyOyB9IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50X19tZXRob2Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnRfX21ldGhvZCAubWV0aG9kX19saXN0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X2NhcmQuX2FjdGl2ZSAuUDI0Rm9ybUNvbnRhaW5lci1mYWtlIGZvcm0ge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QtcHJ6ZWxld3kyNF9jYXJkLl9hY3RpdmUgLlAyNEZvcm1Db250YWluZXItZmFrZSBmb3JtID4gcCB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBmbGV4OiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QtcHJ6ZWxld3kyNF9jYXJkLl9hY3RpdmUgLlAyNEZvcm1Db250YWluZXItZmFrZSBmb3JtID4gcDpudGgtY2hpbGQoMykge1xuICAgICAgICBtYXgtd2lkdGg6IDQ1JTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X2NhcmQuX2FjdGl2ZSAuUDI0Rm9ybUNvbnRhaW5lci1mYWtlIGZvcm0gPiBwOm50aC1jaGlsZCg0KSB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kLXByemVsZXd5MjRfY2FyZC5fYWN0aXZlIC5QMjRGb3JtQ29udGFpbmVyLWZha2UgZm9ybSA+IGZvcm0gbGFiZWwge1xuICAgICAgZmxleDogMCAwIDE0MHB4OyB9XG4gICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X2NhcmQuX2FjdGl2ZSAuUDI0Rm9ybUNvbnRhaW5lci1mYWtlIGZvcm0gPiBidXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kLXByemVsZXd5MjRfY2FyZC5fYWN0aXZlIC5QMjRGb3JtQ29udGFpbmVyLWZha2UgLnByemVsZXd5MjQtcGF5LXdpdGgtY2FyZC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X2NhcmQuX2FjdGl2ZSAuUDI0Rm9ybUNvbnRhaW5lci1mYWtlIC5wcnplbGV3eTI0LXBheS13aXRoLWNhcmQtd3JhcHBlciAucHJ6ZWxld3kyNC1wYXktd2l0aC1jYXJkIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aWR0aDogMjhyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwLjhyZW0gMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBtYXJnaW46IDJyZW0gMDtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kLXByemVsZXd5MjRfX2FncmVlbWVudCB7XG4gICAgZ2FwOiAxcmVtOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X19hZ3JlZW1lbnQgaW5wdXQge1xuICAgICAgZmxleDogMDsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X19hZ3JlZW1lbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMS45cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuOXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAxLjlyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuOXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC1wcnplbGV3eTI0X19hZ3JlZW1lbnQgbGFiZWwge1xuICAgICAgZmxleDogNTsgfVxuICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QtcHJ6ZWxld3kyNF9fYWdyZWVtZW50IC5tYWdlLWVycm9yIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1jaGVja291dCAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIC5jcy1jaGVja291dCAuYWN0aW9ucy10b29sYmFyIGJ1dHRvbi5wcmltYXJ5IHtcbiAgICAgIHdpZHRoOiAyOHJlbTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDAuOHJlbSAycmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5hY3Rpb25zLXRvb2xiYXIgYnV0dG9uLnByaW1hcnk6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gIC5jcy1jaGVja291dCAuYWN0aW9uLWVkaXQtYWRkcmVzczo6LW1vei1mb2N1cy1pbm5lcixcbiAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tdXBkYXRlOjotbW96LWZvY3VzLWlubmVyLFxuICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1jYW5jZWw6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1lZGl0LWFkZHJlc3MsIC5jcy1jaGVja291dCAuYWN0aW9uLWVkaXQtYWRkcmVzczp2aXNpdGVkLFxuICAuY3MtY2hlY2tvdXQgLmFjdGlvbi11cGRhdGUsXG4gIC5jcy1jaGVja291dCAuYWN0aW9uLXVwZGF0ZTp2aXNpdGVkLFxuICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1jYW5jZWwsXG4gIC5jcy1jaGVja291dCAuYWN0aW9uLWNhbmNlbDp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tZWRpdC1hZGRyZXNzOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5hY3Rpb24tZWRpdC1hZGRyZXNzOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5hY3Rpb24tZWRpdC1hZGRyZXNzOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1jaGVja291dCAuYWN0aW9uLWVkaXQtYWRkcmVzczp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNoZWNrb3V0IC5hY3Rpb24tZWRpdC1hZGRyZXNzOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY2hlY2tvdXQgLmFjdGlvbi1lZGl0LWFkZHJlc3M6dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1jaGVja291dCAuYWN0aW9uLXVwZGF0ZTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tdXBkYXRlOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi11cGRhdGU6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi11cGRhdGU6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tdXBkYXRlOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1jaGVja291dCAuYWN0aW9uLXVwZGF0ZTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tY2FuY2VsOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1jYW5jZWw6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1jaGVja291dCAuYWN0aW9uLWNhbmNlbDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1jaGVja291dCAuYWN0aW9uLWNhbmNlbDp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1jYW5jZWw6dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tY2FuY2VsOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1lZGl0LWFkZHJlc3NbZGlzYWJsZWRdLCAuY3MtY2hlY2tvdXQgLmFjdGlvbi1lZGl0LWFkZHJlc3M6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tdXBkYXRlW2Rpc2FibGVkXSxcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi11cGRhdGU6dmlzaXRlZFtkaXNhYmxlZF0sXG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tY2FuY2VsW2Rpc2FibGVkXSxcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1jYW5jZWw6dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1jaGVja291dCAuYWN0aW9uLWVkaXQtYWRkcmVzcyxcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi11cGRhdGUsXG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tY2FuY2VsIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tY2FuY2VsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAuY3MtY2hlY2tvdXQgLmFjdGlvbi1lZGl0LWFkZHJlc3Mge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LmNjYXJkIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5jcy1jaGVja291dF9fYWdyZWVtZW50cyB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLm1vZGFsLWlubmVyLXdyYXAgLmNzLWNoZWNrb3V0X19hZ3JlZW1lbnRzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLWNoZWNrb3V0X19hZ3JlZW1lbnRzIC5jaGVja291dC1hZ3JlZW1lbnRzIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMCAwO1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1jaGVja291dF9fYWdyZWVtZW50cyAuY2hlY2tvdXQtYWdyZWVtZW50cyB7XG4gICAgICAgICAgcGFkZGluZzogMnJlbSAycmVtIDA7IH0gfVxuICAgIC5tb2RhbC5fc2hvdyAuY3MtY2hlY2tvdXRfX2FncmVlbWVudHMge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1jaGVja291dF9fYWdyZWVtZW50cyBhOmhvdmVyLCAuY3MtY2hlY2tvdXRfX2FncmVlbWVudHMgYTphY3RpdmUsIC5jcy1jaGVja291dF9fYWdyZWVtZW50cyBhOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5jcy1jaGVja291dCAub3BjLWJsb2NrLXN1bW1hcnkge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNoZWNrb3V0IC5vcGMtYmxvY2stc3VtbWFyeSAuYWN0aW9uLmNoZWNrb3V0LFxuICAgICAgLmNzLWNoZWNrb3V0IC5vcGMtYmxvY2stc3VtbWFyeSAuaXRlbXMtaW4tY2FydCxcbiAgICAgIC5jcy1jaGVja291dCAub3BjLWJsb2NrLXN1bW1hcnkgLnRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtYmxvY2stc3VtbWFyeSAudGl0bGUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1ibG9jay1zdW1tYXJ5ID4gLnRpdGxlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBjb2xvcjogIzMzMzMzMztcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1jaGVja291dCAub3BjLWJsb2NrLXN1bW1hcnkgPiAudGl0bGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1jaGVja291dCAub3BjLWJsb2NrLXN1bW1hcnkgLmRpc2NvdW50IC50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtYmxvY2stc3VtbWFyeSAuZGlzY291bnQuY291cG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1ibG9jay1zdW1tYXJ5IC5hdy1naWZ0Y2FyZC10b3RhbHMgLnRpdGxlIHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDJyZW07IH1cbiAgLmNzLWNoZWNrb3V0IC5pdGVtcy1pbi1jYXJ0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY2hlY2tvdXQgLml0ZW1zLWluLWNhcnQgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGNhbGMoMnJlbSAtIDJweCk7XG4gICAgICByaWdodDogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY2hlY2tvdXQgLml0ZW1zLWluLWNhcnQgLnRpdGxlIHN0cm9uZyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcmVtOyB9IH1cbiAgLmNzLWNoZWNrb3V0IC5taW5pY2FydC1pdGVtcy13cmFwcGVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1jaGVja291dCAudGFibGUtdG90YWxzIC50YWJsZS1jYXB0aW9uIHtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgZm9udC1mYW1pbHk6IFwiUG9wcGluc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH0gfVxuICAuY3MtY2hlY2tvdXQgLnRhYmxlLXRvdGFscyB0ZCxcbiAgLmNzLWNoZWNrb3V0IC50YWJsZS10b3RhbHMgdGgge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgcGFkZGluZzogMC44cmVtIDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0IC50YWJsZS10b3RhbHMgdGQsXG4gICAgICAuY3MtY2hlY2tvdXQgLnRhYmxlLXRvdGFscyB0aCB7XG4gICAgICAgIHBhZGRpbmc6IDAuOHJlbSAycmVtOyB9IH1cbiAgLmNzLWNoZWNrb3V0IC50YWJsZS10b3RhbHMgLmFtb3VudCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAuY3MtY2hlY2tvdXQgLnRhYmxlLXRvdGFscyAuZ3JhbmQgdGgsXG4gIC5jcy1jaGVja291dCAudGFibGUtdG90YWxzIC5ncmFuZCB0ZCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07IH1cbiAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tZWRpdCxcbiAgLmNzLWNoZWNrb3V0IC5hY3Rpb24udmlld2NhcnQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogI2MxMjcyZjtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9lZGl0X2NvbG9yZWQuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTklIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDEuN3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5hY3Rpb24tZWRpdDpob3ZlcixcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi52aWV3Y2FydDpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgIC5jcy1jaGVja291dCAuYWN0aW9uLWVkaXQgc3BhbixcbiAgICAuY3MtY2hlY2tvdXQgLmFjdGlvbi52aWV3Y2FydCBzcGFuIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIjsgfVxuICAuY3MtY2hlY2tvdXQgLmFjdGlvbi5kZWxldGUsXG4gIC5jcy1jaGVja291dCAudG90YWxzLmdpZnRjYXJkIC5hY3Rpb24ge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Nsb3NlLnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXJlbSk7IH1cbiAgLmNzLWNoZWNrb3V0IC5yZXdhcmQtcG9pbnRzLWJ1dHRvbnMtY29udGFpbmVyIGJ1dHRvbiBzcGFuIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIHtcbiAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0ge1xuICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWltYWdlLWNvbnRhaW5lciB7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5jcy1jaGVja291dCAubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaW1hZ2Utd3JhcHBlciB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1jaGVja291dCAubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1pbm5lciB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1jaGVja291dCAubWluaWNhcnQtaXRlbXMgLnByaWNlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAgIC5jcy1jaGVja291dCAubWluaWNhcnQtaXRlbXMgLml0ZW0tbmFtZS1ibG9jayB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIC5wcm9kdWN0LWl0ZW0tbmFtZS1ibG9jayB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1jaGVja291dCAubWluaWNhcnQtaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5taW5pY2FydC1pdGVtcyAuZGV0YWlscy1xdHkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBmb250LXNpemU6IDEuMnJlbTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5taW5pY2FydC1pdGVtcyAuZGV0YWlscy1xdHkgLmxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIC5zdWJ0b3RhbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW4tdG9wOiAwLjNyZW07IH1cbiAgICAgIC5jcy1jaGVja291dCAubWluaWNhcnQtaXRlbXMgLnN1YnRvdGFsIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLm1pbmljYXJ0LWl0ZW1zIC5zdWJ0b3RhbCAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgICAgLmNzLWNoZWNrb3V0IC5taW5pY2FydC1pdGVtcyAuc3VidG90YWwgLnByaWNlLWV4Y2x1ZGluZy10YXggLmNhcnQtcHJpY2Uge1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7IH1cbiAgICAgIC5jcy1jaGVja291dCAubWluaWNhcnQtaXRlbXMgLnN1YnRvdGFsID4gc3BhbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1jaGVja291dCAubW9kYWwtY3VzdG9tIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtY2hlY2tvdXQgLm1vZGFsLWN1c3RvbSAubW9kYWwtaW5uZXItd3JhcCAudGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtY2hlY2tvdXQgLm1vZGFsLWN1c3RvbSAubW9kYWwtaW5uZXItd3JhcCAudGFibGUtdG90YWxzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jaGVja291dCAubW9kYWwtY3VzdG9tIC5tb2RhbC1pbm5lci13cmFwIC5pdGVtcy1pbi1jYXJ0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIC5jcy1jaGVja291dCAubW9kYWwtY3VzdG9tIC5tb2RhbC1pbm5lci13cmFwIC5pdGVtcy1pbi1jYXJ0IC50aXRsZSBzdHJvbmcge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNoZWNrb3V0IC5tb2RhbC1jdXN0b20gLm1vZGFsLWlubmVyLXdyYXAgLml0ZW1zLWluLWNhcnQgLnRpdGxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH0gfVxuICAuY3MtY2hlY2tvdXQgLnBheW1lbnRzIC5sZWdlbmQsXG4gIC5jcy1jaGVja291dCAucGF5bWVudHMgLmZpZWxkc2V0ID4gaHIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWNoZWNrb3V0ICNyZWNhcHRjaGEtY2hlY2tvdXQtcGxhY2Utb3JkZXItd3JhcHBlciAuZmllbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAuYWN0aW9uLmNoZWNrb3V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDsgfSB9XG4gICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgaW5wdXQge1xuICAgICAgbWFyZ2luLXRvcDogMXB4OyB9XG4gICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gMS41cmVtIDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDRyZW0gMi41cmVtO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWwgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cImJhbmt0cmFuc2ZlclwiXSwgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cInBheW9uZV9hZHZhbmNlX3BheW1lbnRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9iYW5rX3RyYW5zZmVyLnN2Z1wiKTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cImJhcnpoYWxlblwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1iYXJ6aGFsZW4ucG5nXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yPVwiYmlsbHNhZmVcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9wYXltZW50LWxvZ28tYmlsbHNhZmUucG5nXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yPVwiY3JlZGl0Y2FyZFwiXSwgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cInBheW9uZV9jcmVkaXRjYXJkXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvY3JlZGl0Y2FyZC5zdmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJjYXNob25kZWxpdmVyeVwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL29uX2RlbGl2ZXJ5LnN2Z1wiKTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cImNoZWNrbW9cIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9tb25leV9vcmRlci5zdmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJnaXJvcGF5XCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvZ2lyb3BheS5zdmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJpZGVhbFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1pZGVhbC5qcGdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwYXlvbmVfb2J0X2lkZWFsXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcGF5b25lX29idF9pZGVhbC5zdmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJpbnZvaWNlXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvaW52b2ljZS5zdmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJlcHNcIl0sIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwYXlvbmVfb2J0X2Vwc1wiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1lcHMuanBnXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yPVwibGFzdHNjaHJpZnRcIl0sIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwYXlvbmVfZGViaXRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9sYXN0c2NocmlmdC5zdmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwYXlvbmVfaW52b2ljZVwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL2ludm9pY2Uuc3ZnXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yPVwicGF5b25lX2NyZWRpdGNhcmRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9jcmVkaXRjYXJkLnN2Z1wiKTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cInBheWRpcmVrdFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheWRpcmVrdC5zdmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwYXlvbHV0aW9uXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcGF5bWVudC1sb2dvLXBheW9sdXRpb24ucG5nXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yPVwicGF5ZW5naW5lY3dfY3JlZGl0Y2FyZFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL2NyZWRpdGNhcmQuc3ZnXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yKj1cInBheXBhbFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheXBhbC5zdmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxLjVyZW07IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwYXllbmdpbmVjd19wb3N0ZmluYW5jZWNhcmRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9wYXltZW50LWxvZ28tcG9zdGZpbmFuY2UtY2FyZC5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxLjdyZW07IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwb3N0ZmluYW5jZVwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1wb3N0ZmluYW5jZS5qcGdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwb3N0ZmluYW5jZS1jYXJkXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcGF5bWVudC1sb2dvLXBvc3RmaW5hbmNlLWNhcmQucG5nXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yPVwicHJ6ZWxld3kyNFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1wcnplbGV3eTI0LnBuZ1wiKTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cInBheXBhbC1hZ3JlZW1lbnRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9wYXltZW50LWxvZ28tcGF5cGFsLWFncmVlbWVudC5wbmdcIik7IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3I9XCJwdXJjaGFzZW9yZGVyXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcHVyY2hhc2Vfb3JkZXIuc3ZnXCIpOyB9XG4gICAgICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5wYXltZW50LW1ldGhvZC10aXRsZSAubGFiZWxbZm9yPVwicGF5b25lX29idF9zb2ZvcnR1ZWJlcndlaXN1bmdcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9rbGFybmFfYmFja2dyb3VuZF9sb2dvLnN2Z1wiKTsgfVxuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtdGl0bGUgLmxhYmVsW2Zvcj1cInR3aW50Y3dfdHdpbnRcIl0ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy90d2ludC5zdmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNC41cmVtIDNyZW07IH1cbiAgICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIC5sYWJlbFtmb3IqPVwia2xhcm5hXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3Mva2xhcm5hX2JhY2tncm91bmRfbG9nby5zdmdcIik7IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtYmlsbGluZy1hZGRyZXNzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtYmlsbGluZy1hZGRyZXNzIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZDpub3QoOmxhc3QtY2hpbGQpIC5wYXltZW50LW1ldGhvZC1iaWxsaW5nLWFkZHJlc3Mge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLmJpbGxpbmctYWRkcmVzcy1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAwIDAgMCAzcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIC5jaGVja291dC1hZ3JlZW1lbnRzLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLWNvbnRlbnQge1xuICAgIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGFkZGluZzogMCAwIDAgMnJlbTsgfVxuICAgIC5jcy1jaGVja291dCAucGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLWNvbnRlbnQgLnBheW9sdXRpb25fb3ZlcmxheSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZC5fYWN0aXZlIC5wYXltZW50LW1ldGhvZC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3MtY2hlY2tvdXQgLnBheW1lbnQtbWV0aG9kIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCBwOm5vdCg6ZW1wdHkpIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmNzLWNoZWNrb3V0IC5wYXltZW50LW1ldGhvZCAubnVtYmVyIHtcbiAgICB3aWR0aDogMjNyZW07XG4gICAgbWFyZ2luOiAycmVtIDAgMnJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwgKyAub3BjLXBheW1lbnQtYWRkaXRpb25hbCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLm9wYy1wYXltZW50LWFkZGl0aW9uYWw6bm90KC5yZXdhcmRwb2ludHMpIC5wYXltZW50LW9wdGlvbi10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1wYXltZW50LWFkZGl0aW9uYWw6bm90KC5yZXdhcmRwb2ludHMpIC5wYXltZW50LW9wdGlvbi10aXRsZTpiZWZvcmUsIC5jcy1jaGVja291dCAub3BjLXBheW1lbnQtYWRkaXRpb25hbDpub3QoLnJld2FyZHBvaW50cykgLnBheW1lbnQtb3B0aW9uLXRpdGxlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIsIHJpZ2h0IDAuMTVzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1wYXltZW50LWFkZGl0aW9uYWw6bm90KC5yZXdhcmRwb2ludHMpIC5wYXltZW50LW9wdGlvbi10aXRsZTpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC5jcy1jaGVja291dCAub3BjLXBheW1lbnQtYWRkaXRpb25hbDpub3QoLnJld2FyZHBvaW50cykgLnBheW1lbnQtb3B0aW9uLXRpdGxlOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICByaWdodDogMDsgfVxuICAgIC5jcy1jaGVja291dCAub3BjLXBheW1lbnQtYWRkaXRpb25hbDpub3QoLnJld2FyZHBvaW50cykgLnBheW1lbnQtb3B0aW9uLXRpdGxlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsOm5vdCgucmV3YXJkcG9pbnRzKSAucGF5bWVudC1vcHRpb24tdGl0bGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gIC5jcy1jaGVja291dCAub3BjLXBheW1lbnQtYWRkaXRpb25hbDpub3QoLnJld2FyZHBvaW50cykgLmFjdGlvbi10b2dnbGUge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5jcy1jaGVja291dCAucGF5bWVudC1vcHRpb24tY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAuY3MtY2hlY2tvdXQgLmF3LWdpZnRjYXJkLWNvZGUge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmNzLWNoZWNrb3V0IC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsLnJld2FyZHBvaW50cyB7XG4gICAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgICAuY3MtY2hlY2tvdXQgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwucmV3YXJkcG9pbnRzIC5wYXltZW50LW9wdGlvbi10aXRsZSB7XG4gICAgICBmb250LWZhbWlseTogXCJQb3BwaW5zXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgY29sb3I6ICMzMzMzMzM7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsLnJld2FyZHBvaW50cyAucGF5bWVudC1vcHRpb24tY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG4gICAgLmNzLWNoZWNrb3V0IC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsLnJld2FyZHBvaW50cyAucGF5bWVudC1vcHRpb24taW5uZXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cblxuLmN1c3RvbXdlYi1wYXllbmdpbmVjdy1wYXltZW50LWZvcm0gLmxhYmVsIHtcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5jdXN0b213ZWItcGF5ZW5naW5lY3ctcGF5bWVudC1mb3JtIC5jb250cm9sOm5vdCguc2VsZWN0LWZpZWxkKSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuLnBheXBhbC5jaGVja291dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucGF5cGFsLmNoZWNrb3V0LmFmdGVyOmJlZm9yZSwgLnBheXBhbC5jaGVja291dC5iZWZvcmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xuICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMXJlbSAwLjVyZW0gMC4ycmVtOyB9XG4gIC5wYXlwYWwuY2hlY2tvdXQgaW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4ucGF5cGFsLXJldmlldyAuaXRlbXMtcXR5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lIG5vbmU7IH1cbiAgLnBheXBhbC1yZXZpZXcgLml0ZW1zLXF0eSA+IGxpIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnBheXBhbC1yZXZpZXcgLml0ZW1zLXF0eSAuaXRlbSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXlwYWwtcmV2aWV3IC5pdGVtcy1xdHkgLnRpdGxlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgLnBheXBhbC1yZXZpZXcgLml0ZW1zLXF0eSAudGl0bGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiOiBcIjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXlwYWwtcmV2aWV3IC5pdGVtcy1xdHkgLmJsb2NrLWNvbnRlbnQgLmJveC1vcmRlci1zaGlwcGluZy1hZGRyZXNzLFxuICAgIC5wYXlwYWwtcmV2aWV3IC5pdGVtcy1xdHkgLmJsb2NrLWNvbnRlbnQgLmJveC1vcmRlci1zaGlwcGluZy1tZXRob2QsXG4gICAgLnBheXBhbC1yZXZpZXcgLml0ZW1zLXF0eSAuYmxvY2stY29udGVudCAuYm94LW9yZGVyLXNoaXBwaW5nLW1ldGhvZCArIC5ib3gtb3JkZXItYmlsbGluZy1hZGRyZXNzIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAzMyU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wYXlwYWwtcmV2aWV3IC5pdGVtcy1xdHkgLmJsb2NrLWNvbnRlbnQgLmJveC1vcmRlci1zaGlwcGluZy1hZGRyZXNzIHtcbiAgICAgIHBhZGRpbmc6IDAgNSU7XG4gICAgICB3aWR0aDogMzQlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGF5cGFsLXJldmlldyAuaXRlbXMtcXR5IC5jb2wuc3VidG90YWwsXG4gICAgLnBheXBhbC1yZXZpZXcgLml0ZW1zLXF0eSAubWFyayxcbiAgICAucGF5cGFsLXJldmlldyAuaXRlbXMtcXR5IC5hbW91bnQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0gfVxuXG4ucGF5cGFsLXJldmlldyAuYWN0aW9ucy10b29sYmFyIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4ucGF5cGFsLXJldmlldyAuaXRlbS1vcHRpb25zIGR0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5wYXlwYWwtcmV2aWV3IC5pdGVtLW9wdGlvbnMgZHQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiOiBcIjsgfVxuXG4ucGF5cGFsLXJldmlldyAuaXRlbS1vcHRpb25zIGRkIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5wYXlwYWwtcmV2aWV3IC5wcmltYXJ5IGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5wYXlwYWwtcmV2aWV3IC5wcmltYXJ5IGJ1dHRvbiwgLnBheXBhbC1yZXZpZXcgLnByaW1hcnkgYnV0dG9uOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gIC5wYXlwYWwtcmV2aWV3IC5wcmltYXJ5IGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5wYXlwYWwtcmV2aWV3IC5wcmltYXJ5IGJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5wYXlwYWwtcmV2aWV3IC5wcmltYXJ5IGJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAucGF5cGFsLXJldmlldyAucHJpbWFyeSBidXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5wYXlwYWwtcmV2aWV3IC5wcmltYXJ5IGJ1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLnBheXBhbC1yZXZpZXcgLnByaW1hcnkgYnV0dG9uOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgLnBheXBhbC1yZXZpZXcgLnByaW1hcnkgYnV0dG9uW2Rpc2FibGVkXSwgLnBheXBhbC1yZXZpZXcgLnByaW1hcnkgYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1OyB9XG5cbi5wYXlwYWwtcmV2aWV3IC5wcmltYXJ5IGJ1dHRvbiBzcGFuIHtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLnBheXBhbC1yZXZpZXcgLnNlY29uZGFyeSBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4ucGF5cGFsLXJldmlldyAuc2Vjb25kYXJ5IGJ1dHRvbiwgLnBheXBhbC1yZXZpZXcgLnNlY29uZGFyeSBidXR0b246dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMi42cmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLnBheXBhbC1yZXZpZXcgLnNlY29uZGFyeSBidXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAucGF5cGFsLXJldmlldyAuc2Vjb25kYXJ5IGJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5wYXlwYWwtcmV2aWV3IC5zZWNvbmRhcnkgYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5wYXlwYWwtcmV2aWV3IC5zZWNvbmRhcnkgYnV0dG9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAucGF5cGFsLXJldmlldyAuc2Vjb25kYXJ5IGJ1dHRvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLnBheXBhbC1yZXZpZXcgLnNlY29uZGFyeSBidXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgY29sb3I6ICNjMTI3MmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAucGF5cGFsLXJldmlldyAuc2Vjb25kYXJ5IGJ1dHRvbltkaXNhYmxlZF0sIC5wYXlwYWwtcmV2aWV3IC5zZWNvbmRhcnkgYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICBjb2xvcjogIzg3ODc4NztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3OyB9XG5cbi5wYXlwYWwtcmV2aWV3IC5zZWNvbmRhcnkgYnV0dG9uIHNwYW4ge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAxcHggc29saWQgI2RjZGNkYztcbiAgbWFyZ2luOiAycmVtIDA7IH1cbiAgLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrID4gLnRpdGxlIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMC43cmVtIDNyZW0gMC43cmVtIDAuNXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5wYXlwYWwtcmV2aWV3LWRpc2NvdW50IC5ibG9jayA+IC5jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnBheXBhbC1yZXZpZXctZGlzY291bnQgLmJsb2NrIC5maWVsZHNldCB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDAgMnJlbTsgfVxuXG4uYW1hem9uLXdpZGdldCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjVyZW07XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMjcpO1xuICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gIC5hbWF6b24td2lkZ2V0IGlmcmFtZSB7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFtYXpvbi1wYXltZW50LW1ldGhvZCAucGF5bWVudC1tZXRob2QtY29udGVudCxcbi5hbWF6b24tcGF5bWVudC1tZXRob2QgLnBheW1lbnQtbWV0aG9kLXRpdGxlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4jc3RvcmUtc2VsZWN0b3Ige1xuICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDMzLCAzMywgMzMsIDAuMjgpOyB9XG4gICNzdG9yZS1zZWxlY3RvciAuZm9ybS1sb2dpbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gICNzdG9yZS1zZWxlY3RvciAuZm9ybS1jb250aW51ZSB7XG4gICAgbWFyZ2luOiAycmVtIDAgMDsgfVxuICAjc3RvcmUtc2VsZWN0b3IgLnN0ZXAtdGl0bGUge1xuICAgIHBhZGRpbmc6IDAgMCAxcmVtOyB9XG4gICAgLmZvcm0tbG9naW4gfiAjc3RvcmUtc2VsZWN0b3IgLnN0ZXAtdGl0bGUge1xuICAgICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgI3N0b3JlLXNlbGVjdG9yIC5sb2NhdGlvbi1uYW1lIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsgfVxuICAjc3RvcmUtc2VsZWN0b3IgLnNlY29uZGFyeSAuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgI3N0b3JlLXNlbGVjdG9yIC5zZWNvbmRhcnkgLmJ1dHRvbiwgI3N0b3JlLXNlbGVjdG9yIC5zZWNvbmRhcnkgLmJ1dHRvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgI3N0b3JlLXNlbGVjdG9yIC5zZWNvbmRhcnkgLmJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksICNzdG9yZS1zZWxlY3RvciAuc2Vjb25kYXJ5IC5idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAjc3RvcmUtc2VsZWN0b3IgLnNlY29uZGFyeSAuYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksICNzdG9yZS1zZWxlY3RvciAuc2Vjb25kYXJ5IC5idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksICNzdG9yZS1zZWxlY3RvciAuc2Vjb25kYXJ5IC5idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksICNzdG9yZS1zZWxlY3RvciAuc2Vjb25kYXJ5IC5idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAgICNzdG9yZS1zZWxlY3RvciAuc2Vjb25kYXJ5IC5idXR0b25bZGlzYWJsZWRdLCAjc3RvcmUtc2VsZWN0b3IgLnNlY29uZGFyeSAuYnV0dG9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAjc3RvcmUtc2VsZWN0b3IgLnNlY29uZGFyeSAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgI3N0b3JlLXNlbGVjdG9yIC5zZWNvbmRhcnkgLmJ1dHRvbiBzcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAuc3RvcmUtc2VsZWN0b3ItcG9wdXAgLm1vZGFsLWNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9IH1cblxuLnN0b3JlLXNlbGVjdG9yLXBvcHVwIC5tb2RhbC10aXRsZSB7XG4gIGJvcmRlci1ib3R0b206IDA7IH1cblxuLnN0b3JlLXNlbGVjdG9yLXBvcHVwIC5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4jb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5ibG9jay1zZWFyY2gge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgcGFkZGluZzogMCAwIDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLmFjdGlvbi1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07IH1cbiAgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuc3RvcmUtc2VsZWN0b3Itc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgIHBhZGRpbmc6IDAgMCAxLjVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAubGFiZWw6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5zdG9yZS1zZWxlY3Rvci1zZWFyY2ggLmNvbnRyb2wge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuaW5wdXQtdGV4dCB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoNnJlbSArIDFlbSk7IH1cbiAgICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5zdG9yZS1zZWxlY3Rvci1zZWFyY2ggLmFjdGlvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB6LWluZGV4OiAyMjA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuNXJlbSk7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjRweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyNHB4OyB9XG4gICAgICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5zdG9yZS1zZWxlY3Rvci1zZWFyY2ggLmFjdGlvbnM6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybChcIi4uL2ltYWdlcy9pY29ucy9oZWFkZXItc2VhcmNoL2ljb24tc2VhcmNoLnN2Z1wiKSBuby1yZXBlYXQgNjAlIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAycmVtOyB9XG4gICAgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuc3RvcmUtc2VsZWN0b3Itc2VhcmNoIC5hY3Rpb24ge1xuICAgICAgd2lkdGg6IDZyZW07XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAuN3JlbSk7IH1cbiAgICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuYWN0aW9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuYWN0aW9uLCAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5zdG9yZS1zZWxlY3Rvci1zZWFyY2ggLmFjdGlvbjp2aXNpdGVkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjsgfVxuICAgICAgICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5zdG9yZS1zZWxlY3Rvci1zZWFyY2ggLmFjdGlvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuYWN0aW9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuc3RvcmUtc2VsZWN0b3Itc2VhcmNoIC5hY3Rpb246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuc3RvcmUtc2VsZWN0b3Itc2VhcmNoIC5hY3Rpb246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuYWN0aW9uOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5zdG9yZS1zZWxlY3Rvci1zZWFyY2ggLmFjdGlvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuYWN0aW9uW2Rpc2FibGVkXSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuc3RvcmUtc2VsZWN0b3Itc2VhcmNoIC5hY3Rpb246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuYWN0aW9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCAuYWN0aW9uIHNwYW4ge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9XG4gICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLnN0b3JlLXNlbGVjdG9yLXBvcHVwLXRhYmxlIHRib2R5IC5jb2wge1xuICAgIHBhZGRpbmctdG9wOiAxLjJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTsgfVxuICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5sb2NhdGlvbi1uYW1lIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxZW0gIWltcG9ydGFudDsgfVxuICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0ge1xuICAgIG1hcmdpbi10b3A6IDAuMjVyZW07IH1cbiAgICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOnZpc2l0ZWQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbTp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW06dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgICBjb2xvcjogI2MxMjcyZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtW2Rpc2FibGVkXSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLmFjdGlvbi1zZWxlY3Qtc2hpcHBpbmctaXRlbSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLmxvY2F0aW9uLXNlbGVjdGVkIC5hY3Rpb246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5sb2NhdGlvbi1zZWxlY3RlZCAuYWN0aW9uLCAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5sb2NhdGlvbi1zZWxlY3RlZCAuYWN0aW9uOnZpc2l0ZWQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5sb2NhdGlvbi1zZWxlY3RlZCAuYWN0aW9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAubG9jYXRpb24tc2VsZWN0ZWQgLmFjdGlvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLmxvY2F0aW9uLXNlbGVjdGVkIC5hY3Rpb246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAubG9jYXRpb24tc2VsZWN0ZWQgLmFjdGlvbjp2aXNpdGVkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAubG9jYXRpb24tc2VsZWN0ZWQgLmFjdGlvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAubG9jYXRpb24tc2VsZWN0ZWQgLmFjdGlvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYTIwMTA5O1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCAubG9jYXRpb24tc2VsZWN0ZWQgLmFjdGlvbltkaXNhYmxlZF0sICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAgLmxvY2F0aW9uLXNlbGVjdGVkIC5hY3Rpb246dmlzaXRlZFtkaXNhYmxlZF0ge1xuICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgIGNvbG9yOiAjODc4Nzg3O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAjb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIC5sb2NhdGlvbi1zZWxlY3RlZCAuYWN0aW9uIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG5cbiNzdG9yZS1waWNrdXAge1xuICBtYXJnaW46IDA7IH1cbiAgI3N0b3JlLXBpY2t1cC5zZWxlY3RlZC1zaGlwcGluZyB+ICNzdG9yZS1zZWxlY3RvciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAjc3RvcmUtcGlja3VwLnNlbGVjdGVkLXN0b3JlLXBpY2t1cCB+ICNzaGlwcGluZyxcbiAgI3N0b3JlLXBpY2t1cC5zZWxlY3RlZC1zdG9yZS1waWNrdXAgfiAjb3BjLXNoaXBwaW5nX21ldGhvZCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuXG4jZGVsaXZlcnktbWV0aG9kLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogZmxleDsgfVxuICAjZGVsaXZlcnktbWV0aG9kLXNlbGVjdG9yIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsgfVxuICAjZGVsaXZlcnktbWV0aG9kLXNlbGVjdG9yIC5hY3Rpb24tc2VsZWN0LXN0b3JlLXBpY2t1cCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwOyB9XG5cbi5sb2NhdGlvbi1kZXRhaWxzIC5sb2NhdGlvbi1uYW1lIHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLm1vZGFsLWNvbnRlbnQgI29wYy1zdG9yZS1zZWxlY3Rvci1wb3B1cCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zdG9yZS1zZWxlY3Rvci1wb3B1cC10YWJsZSB0aGVhZCB0aCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnN0b3JlLXNlbGVjdG9yLXBvcHVwLXRhYmxlIHRib2R5IC5sb2NhdGlvbiAubG9jYXRpb24tbmFtZSB7XG4gIGZvbnQtc2l6ZTogMS44cmVtOyB9XG5cbi5zdG9yZS1zZWxlY3Rvci1wb3B1cC10YWJsZSB0Ym9keSAubG9jYXRpb24gKyAubG9jYXRpb24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgMXB4IHNvbGlkICNkY2RjZGM7IH1cblxuLnN0b3JlLXNlbGVjdG9yLXBvcHVwLXRhYmxlIHRib2R5IC5jb2wtbG9jYXRpb24tZGV0YWlscyB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuICAuc3RvcmUtc2VsZWN0b3ItcG9wdXAtdGFibGUgdGJvZHkgLmNvbC1sb2NhdGlvbi1kZXRhaWxzIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uc3RvcmUtc2VsZWN0b3ItcG9wdXAtdGFibGUgdGJvZHkgLmNvbC1sb2NhdGlvbi1hY3Rpb25zIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuc3RvcmUtc2VsZWN0b3ItcG9wdXAtdGFibGUgdGJvZHkgLmNvbC1sb2NhdGlvbi1hY3Rpb25zIC5hY3Rpb24ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4uc3RvcmUtc2VsZWN0b3ItcG9wdXAtZW1wdHktcXVlcnksXG4uc3RvcmUtc2VsZWN0b3ItcG9wdXAtbm8tbG9jYXRpb25zIHtcbiAgbWFyZ2luOiAwIDAgMjBweDsgfVxuXG4uY3MtcGFnZS1zdWNjZXNzIHtcbiAgbWFyZ2luOiAwIGF1dG8gMnJlbTsgfVxuICAuY3MtcGFnZS1zdWNjZXNzIC5hY3Rpb24ucHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAuY3MtcGFnZS1zdWNjZXNzIC5hY3Rpb24ucHJpbnQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAuY3MtcGFnZS1zdWNjZXNzICsgI29yZGVyLWFkZGl0aW9uYWwtY21zLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIHdpZHRoOiA2MCU7XG4gICAgcGFkZGluZzogNHJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgICBtYXJnaW4tYm90dG9tOiA2cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1wYWdlLXN1Y2Nlc3MgKyAjb3JkZXItYWRkaXRpb25hbC1jbXMtYmxvY2sge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ1dGlscy92aXN1YWxseS1oaWRkZW5cIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcblxuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uL21peGluXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9xdHktY291bnRlci9taXhpblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZmllbGQvbWl4aW5cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW5cIjtcblxuJGNoZWNrb3V0X3BhZ2UtbWF4LXdpZHRoOiA5M3JlbSAhZGVmYXVsdDtcblxuLy8gUmlnaHQgc2lkZWJhciB3aWR0aCBmb3IgdGFibGV0cyBhbmQgZGVza3RvcHNcbiRjaGVja291dF9zaWRlYmFyLXdpZHRoOiA0NCUgIWRlZmF1bHQ7XG4vLyBTcGFjZSBiZXR3ZWVuIG1haW4gY29sdW1uIGFuZCBzaWRlYmFyIGZvciB0YWJsZXRzIGFuZCBkZXNrdG9wc1xuJGNoZWNrb3V0X21haW4tY29sdW1uLWFuZC1zaWRlYmFyLWdhcDogMy41cmVtICFkZWZhdWx0O1xuLy8gU3BhY2UgYmVsb3cgc3RlcHMgKGF1dGhlbnRpY2F0aW9uLCBzaGlwcGluZyBhZGRyZXNzIGV0Yy4pXG4kY2hlY2tvdXRfc3RlcHMtc3BhY2U6IDMuNXJlbSAhZGVmYXVsdDtcbi8vIEJhc2Ugc3BhY2UgZm9yIGNoZWNrb3V0IGVsZW1lbnRzIChwYWRkaW5ncyBiZXR3ZWVuIGJveGVzIGJvcmRlciBhbmQgaXRzIGNvbnRlbnQsIGhlYWRsaW5lIHNwYWNpbmcgZXRjLilcbiRjaGVja291dF9iYXNlLXNwYWNlOiAycmVtICFkZWZhdWx0O1xuXG4kY2hlY2tvdXRfYm94ZXMtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGNoZWNrb3V0X2JveGVzLWJveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfYm94ZXMtYm9yZGVyLXJhZGl1czogOHB4ICFkZWZhdWx0O1xuXG4vLyBUaGlzIGJvcmRlciBpcyB1c2VkIGFzIHNlcGFyYXRvciBiZXR3ZWVuIHNvbWUgc2VjdGlvbnNcbiRjaGVja291dF9lbGVtZW50cy1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGNoZWNrb3V0X3BsYWNlLW9yZGVyLWJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRjaGVja291dF9hY3RpdmUtZWxlbWVudHMtY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhZGVmYXVsdDtcblxuJGNoZWNrb3V0X3RleHRzLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGggIWRlZmF1bHQ7XG4kY2hlY2tvdXRfaGVhZGxpbmVzLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJGNoZWNrb3V0X2hlYWRsaW5lcy10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRjaGVja291dF9oZWFkbGluZXMtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRjaGVja291dF9oZWFkbGluZXMtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRjaGVja291dF9mb3JtLW5vdGVzLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuXG4kY2hlY2tvdXRfbmV4dC1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfbmV4dC1idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRjaGVja291dF9wbGFjZS1vcmRlci1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfcGxhY2Utb3JkZXItYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi8vIE1vdmUgbmV4dCBidXR0b24gdG8gdGhlIHNlcGFyYXRlIGJveFxuJGNoZWNrb3V0X25leHQtYnV0dG9uLW91dHNpZGU6IGZhbHNlICFkZWZhdWx0O1xuXG4kY2hlY2tvdXRfc2hvdy1jYXJ0LWJ1dHRvbi10eXBlOiBcInNlY29uZGFyeVwiICFkZWZhdWx0O1xuJGNoZWNrb3V0X3Nob3ctY2FydC1idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRjaGVja291dF9sb2dpbi1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfbG9naW4tYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfZXN0aW1hdGlvbi1idXR0b24tdHlwZTogXCJzZWNvbmRhcnlcIiAhZGVmYXVsdDtcbiRjaGVja291dF9lc3RpbWF0aW9uLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuJGNoZWNrb3V0X2JpbGxpbmctYWRkcmVzcy1idXR0b24tdHlwZTogXCJzZWNvbmRhcnlcIiAhZGVmYXVsdDtcbiRjaGVja291dF9iaWxsaW5nLWFkZHJlc3MtYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc2hvdy1wb3B1cC1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc2hvdy1wb3B1cC1idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRjaGVja291dF9hZGRyZXNzZXMtYnV0dG9uLXR5cGU6IFwic2Vjb25kYXJ5XCIgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfYWRkcmVzc2VzLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kY2hlY2tvdXRfc2hvdy1zdWNjZXNzLWljb24tb24tc2hpcHBpbmctZm9ybTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gcGF5cGFsIHJldmlldyBwYWdlXG4kY2hlY2tvdXRfcGF5cGFsLXByaW1hcnktYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGNoZWNrb3V0X3BheXBhbC1wcmltYXJ5LWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuJGNoZWNrb3V0X3BheXBhbC1zZWNvbmRhcnktYnV0dG9uLXR5cGU6IFwic2Vjb25kYXJ5XCIgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfcGF5cGFsLXNlY29uZGFyeS1idXR0b24taWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuLy8gU3RvcmUgcGlja3VwXG4kY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlbGVjdC1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlbGVjdC1idXR0b24taWNvbi1wb3M6IFwibm8taWNvblwiICFkZWZhdWx0O1xuJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1sb2NhdGlvbi1uYW1lLWZvbnQtc2l6ZTogMWVtICFpbXBvcnRhbnQgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaC1tb2RhbC1jbG9zZS1idXR0b24tYmFja2dyb3VuZC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaC1tYXJnaW46IDAgMCAxLjVyZW0gIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaC1wYWRkaW5nLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2gtYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2hfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2hfYnV0dG9uLXdpZHRoOiA2cmVtICFkZWZhdWx0O1xuJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2hfYnV0dG9uLWJvcmRlci1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaF9idXR0b24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAuN3JlbSkgIWRlZmF1bHQ7XG4kY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaF9idXR0b24tYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2hlYWRlci1zZWFyY2gvaWNvbi1zZWFyY2guc3ZnXCIpICFkZWZhdWx0O1xuJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2hfYnV0dG9uLWJhY2tncm91bmQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRjaGVja291dF9zdG9yZS1waWNrdXAtc2VsZWN0LWxvY2F0aW9uX2J1dHRvbi10eXBlOiBcInNlY29uZGFyeVwiICFkZWZhdWx0O1xuJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWxlY3RlZC1sb2NhdGlvbl9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb250YWluZXItLXN1Y2Nlc3MtcGFnZSB7XG4gICAgcGFkZGluZy1ib3R0b206ICRrbWFfZm9vdGVyLXBhZGRpbmc7XG59XG5cbi5jaGVja291dC1pbmRleC1pbmRleCB7XG4gICAgLmNvbHVtbi5tYWluIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgIGJ1dHRvbi5hY3Rpb24ucHJpbWFyeS5hY3Rpb24tc2F2ZS1hZGRyZXNzIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgfVxuXG4gICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkY2hlY2tvdXRfcGFnZS1tYXgtd2lkdGg7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIGF1dG8gMXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBtYXJnaW46IDIuNXJlbSBhdXRvIDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9bG9nbyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLmNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skbnN9dG9wYmFyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkY2hlY2tvdXRfcGFnZS1tYXgtd2lkdGg7XG5cbiAgICAgICAgLiN7JG5zfXRvcGJhcl9faXRlbSB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICAuZmllbGQgLmxhYmVsW2Zvcj1cInNoaXBwaW5nLXNhdmUtaW4tYWRkcmVzcy1ib29rXCJdIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y2hlY2tvdXQge1xuICAgICRyb290OiAmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWF4LXdpZHRoOiA0NXJlbTtcbiAgICBtYXJnaW46IDVyZW0gYXV0byAxLjVyZW0gYXV0bztcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICBtYXgtd2lkdGg6ICRjaGVja291dF9wYWdlLW1heC13aWR0aDtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmFsIGNoZWNrb3V0IGxheW91dCBhbmQgY2hlY2tvdXQgZm9ybXNcblxuICAgICZfX3Byb2dyZXNzLWJhciB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IC0xM3JlbTtcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZXMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19tb2JpbGUtc3VtbWFyeSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2dyYW5kLXRvdGFsLXRheC1ub3RlLXJvdyB7XG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2dyYW5kLXRvdGFsLXRheC1ub3RlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtNDAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC8vIEJ1dHRvbiBuZXh0IHN0ZXBcbiAgICAmX19zaWRlYmFyLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRjaGVja291dF9uZXh0LWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRjaGVja291dF9uZXh0LWJ1dHRvbi1pY29uLXBvcyk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDIwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkY2hlY2tvdXRfbmV4dC1idXR0b24tb3V0c2lkZSA9PSB0cnVlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJGNoZWNrb3V0X25leHQtYnV0dG9uLXR5cGUsICRpY29uX3BvczogJGNoZWNrb3V0X25leHQtYnV0dG9uLWljb24tcG9zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbigkdHlwZTogJGNoZWNrb3V0X25leHQtYnV0dG9uLXR5cGUsICRpY29uX3BvczogJGNoZWNrb3V0X25leHQtYnV0dG9uLWljb24tcG9zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGNoZWNrb3V0X25leHQtYnV0dG9uLW91dHNpZGUgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wbGFjZS1vcmRlciB7XG4gICAgICAgIHBhZGRpbmc6ICRjaGVja291dF9iYXNlLXNwYWNlIDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRjaGVja291dF9wbGFjZS1vcmRlci1ib3JkZXItYm90dG9tO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAubW9kYWwtaW5uZXItd3JhcCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogJGNoZWNrb3V0X3BsYWNlLW9yZGVyLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRjaGVja291dF9wbGFjZS1vcmRlci1idXR0b24taWNvbi1wb3MpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkY2hlY2tvdXRfcGxhY2Utb3JkZXItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGNoZWNrb3V0X3BsYWNlLW9yZGVyLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkY2hlY2tvdXRfcGxhY2Utb3JkZXItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGNoZWNrb3V0X3BsYWNlLW9yZGVyLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGb3Jtc1xuXG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgLm5vdGUge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmlsbGluZy1hZGRyZXNzLWZvcm0ge1xuICAgICAgICAuY2hvaWNlLmZpZWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tc2hpcHBpbmctYWRkcmVzcyB7XG4gICAgICAgIC5maWVsZFtuYW1lKj1cInBvc3Rjb2RlXCJdIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMS41cmVtO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgLmVycm9yLFxuICAgICAgICAgICAgICAgIC53YXJuaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICAoKDEwMHZ3IC0gKCN7JHBhZ2VfZWRnZS1ndXR0ZXJ9ICogMikpICogKDEgLSAjeyRjaGVja291dF9zaWRlYmFyLXdpZHRoIC8gMTAwJX0pKSAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCN7JGNoZWNrb3V0X2Jhc2Utc3BhY2V9ICogMikgLSAwLjdyZW1cbiAgICAgICAgICAgICAgICAgICAgKTsgLy8gN3B4IGZvciBzY3JvbGxiYXJcbiAgICAgICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMi43cmVtO1xuICAgICAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgICAgIC5lcnJvcixcbiAgICAgICAgICAgICAgICAud2FybmluZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCN7JGNoZWNrb3V0X3BhZ2UtbWF4LXdpZHRofSAqICgxIC0gI3skY2hlY2tvdXRfc2lkZWJhci13aWR0aCAvIDEwMCV9KSkgLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgjeyRjaGVja291dF9iYXNlLXNwYWNlfSAqIDIpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkW25hbWUqPVwiY2l0eVwiXSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTEuNXJlbSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN1Y2Nlc3MgaWNvbiAoZ3JlZW4gdGljaykgZGlzcGxheVxuICAgICAgICAuZmllbGQuX3N1Y2Nlc3M6bm90KC5fd2Fybi1taXNzaW5nLXN0cmVldC1udW1iZXIpIHtcbiAgICAgICAgICAgIC5jb250cm9sIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkY2hlY2tvdXRfc2hvdy1zdWNjZXNzLWljb24tb24tc2hpcHBpbmctZm9ybSA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvIG5vdCBzaG93IHN1Y2Nlc3MgaWNvbiBmb3IgY3VzdG9tZXIgdHlwZSBzZWxlY3QsIGNvdW50cnkgc2VsZWN0LCBwcmVmaXhcbiAgICAgICAgLmZpZWxkIHtcbiAgICAgICAgICAgICZbbmFtZT1cInNoaXBwaW5nQWRkcmVzcy5jdXN0b21fYXR0cmlidXRlcy5jdXN0b21lcl90eXBlXCJdLFxuICAgICAgICAgICAgJltuYW1lPVwic2hpcHBpbmdBZGRyZXNzLmNvdW50cnlfaWRcIl0sXG4gICAgICAgICAgICAmW25hbWU9XCJzaGlwcGluZ0FkZHJlc3MucHJlZml4XCJdIHtcbiAgICAgICAgICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb250YWluZXIgZm9yIG1haW4gY29sdW1uIG9mIHRoZSBjaGVja291dFxuICAgIC5vcGMtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAjeyRjaGVja291dF9zaWRlYmFyLXdpZHRofSk7XG4gICAgICAgIH1cblxuICAgICAgICAuc3RlcC10aXRsZSxcbiAgICAgICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGNoZWNrb3V0X2hlYWRsaW5lcy1mb250LXNpemUpO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRjaGVja291dF9oZWFkbGluZXMtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGNoZWNrb3V0X2hlYWRsaW5lcy1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkY2hlY2tvdXRfaGVhZGxpbmVzLWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24uY29udGludWUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIExpc3Qgd2l0aCBjaGVja291dCBzdGVwcyAoc2hpcHBpbmcsIHNoaXBwaW5nIG1ldGhvZHMsIHBheW1lbnRzKVxuICAgIC5vcGMge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5jaGVja291dC1zaGlwcGluZy1hZGRyZXNzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvLyBDaGVja291dCBib3hlc1xuICAgICZfX3NpZGViYXIsXG4gICAgJl9fc3RlcC10YWJzIC4jeyRuc310YWJzLFxuICAgICZfX3NoaXBwaW5nLW1ldGhvZC13cmFwcGVyLFxuICAgICZfX3NoaXBwaW5nLW1ldGhvZCxcbiAgICAub3BjLWVzdGltYXRlZC13cmFwcGVyLFxuICAgICZfX3BheW1lbnRzLFxuICAgICZfX2FmdGVyLXBheW1lbnRzLFxuICAgICNzdG9yZS1waWNrdXAsXG4gICAgI3N0b3JlLXNlbGVjdG9yIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgJGNoZWNrb3V0X3N0ZXBzLXNwYWNlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY2hlY2tvdXRfYm94ZXMtYmFja2dyb3VuZDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRjaGVja291dF9ib3hlcy1ib3gtc2hhZG93O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGNoZWNrb3V0X2JveGVzLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2d1ZXN0LW9yLWxvZ2luIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICBjb2xvcjogJGNvbG9yX2RvdmUtZ3JheTtcbiAgICB9XG5cbiAgICAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNoZWNrb3V0X2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zaGlwcGluZy1tZXRob2Qge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zaGlwcGluZy1tZXRob2Qtd3JhcHBlcixcbiAgICAmX19zaGlwcGluZy1tZXRob2QsXG4gICAgJl9fcGF5bWVudHMsXG4gICAgJl9fYWZ0ZXItcGF5bWVudHMsXG4gICAgI3N0b3JlLXNlbGVjdG9yIHtcbiAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0X2Jhc2Utc3BhY2UgMDtcblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2hpcHBpbmctbWV0aG9kLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgYm94LXNoYWRvdzogJGNoZWNrb3V0X2JveGVzLWJveC1zaGFkb3c7XG4gICAgfVxuXG4gICAgJl9fc3RlcC10YWJzIHtcbiAgICAgICAgfiAjeyRyb290fV9fc2hpcHBpbmctbWV0aG9kLXdyYXBwZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3N0b3JlLXNlbGVjdG9yIHtcbiAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGF5bWVudHMsXG4gICAgJl9fYWZ0ZXItcGF5bWVudHMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FmdGVyLXBheW1lbnRzIHtcbiAgICAgICAgPiAucGF5bWVudC1vcHRpb246bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKCN7JGNoZWNrb3V0X3NpZGViYXItd2lkdGh9IC0gI3skY2hlY2tvdXRfbWFpbi1jb2x1bW4tYW5kLXNpZGViYXItZ2FwfSk7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwICRjaGVja291dF9tYWluLWNvbHVtbi1hbmQtc2lkZWJhci1nYXA7XG4gICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGNoZWNrb3V0X25leHQtYnV0dG9uLW91dHNpZGUgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tY2xvc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NpZGViYXItaW5uZXIge1xuICAgICAgICBAaWYgKCRjaGVja291dF9uZXh0LWJ1dHRvbi1vdXRzaWRlID09IHRydWUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRjaGVja291dF9zdGVwcy1zcGFjZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY2hlY2tvdXRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAkY2hlY2tvdXRfYm94ZXMtYm94LXNoYWRvdztcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkY2hlY2tvdXRfYm94ZXMtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgICAgICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtbGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb250YWluZXIgZm9yIG5leHQgc3RlcCBidXR0b25cbiAgICAmX19zaWRlYmFyLWJvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGNoZWNrb3V0X25leHQtYnV0dG9uLW91dHNpZGUgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGNoZWNrb3V0X3N0ZXBzLXNwYWNlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNoZWNrb3V0X2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkY2hlY2tvdXRfYm94ZXMtYm94LXNoYWRvdztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja291dF9ib3hlcy1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6ICRjaGVja291dF9zdGVwcy1zcGFjZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEF1dGhlbnRpY2F0aW9uXG4gICAgLmZvcm0tbG9naW4sXG4gICAgLmJsb2NrLWF1dGhlbnRpY2F0aW9uIHtcbiAgICAgICAgLnByaW1hcnkgLmFjdGlvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRjaGVja291dF9sb2dpbi1idXR0b24tdHlwZSwgJGljb25fcG9zOiAkY2hlY2tvdXRfbG9naW4tYnV0dG9uLWljb24tcG9zKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKCR0eXBlOiAkY2hlY2tvdXRfbG9naW4tYnV0dG9uLXR5cGUsICRpY29uX3BvczogJGNoZWNrb3V0X2xvZ2luLWJ1dHRvbi1pY29uLXBvcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay10aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRjaGVja291dF9oZWFkbGluZXMtZm9udC1zaXplKTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkY2hlY2tvdXRfaGVhZGxpbmVzLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRjaGVja291dF9oZWFkbGluZXMtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJGNoZWNrb3V0X2hlYWRsaW5lcy1jb2xvcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9uLnJlbWluZCxcbiAgICAuYWN0aW9uLXJlbWluZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICAgICAgZm9udC1zaXplOiAkY2hlY2tvdXRfZm9ybS1ub3Rlcy1mb250LXNpemU7XG4gICAgfVxuXG4gICAgLmZvcm0tbG9naW4ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLy8gU2hpcHBpbmdcblxuICAgIC50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC44cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRjaGVja291dF9lbGVtZW50cy1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmNvbC1tZXRob2Qge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJhZGlvIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2hpcC10byxcbiAgICAuc2hpcC12aWEge1xuICAgICAgICBib3JkZXItdG9wOiAkY2hlY2tvdXRfZWxlbWVudHMtYm9yZGVyO1xuICAgIH1cblxuICAgIC5zaGlwLXRvIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgIH1cblxuICAgIC5zaGlwcGluZy1pbmZvcm1hdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICB9XG5cbiAgICAuc2hpcHBpbmctaW5mb3JtYXRpb24tY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG4gICAgfVxuXG4gICAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hpcHBpbmctaW5mb3JtYXRpb24tdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHBhZGRpbmc6ICRjaGVja291dF9iYXNlLXNwYWNlICRjaGVja291dF9iYXNlLXNwYWNlIDA7XG5cbiAgICAgICAgYnV0dG9uLmFjdGlvbi5hY3Rpb24tZWRpdCB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWV0aG9kcy1zaGlwcGluZyB7XG4gICAgICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjeyRjaGVja291dF9iYXNlLXNwYWNlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAjeyRjaGVja291dF9iYXNlLXNwYWNlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9uLXNob3ctcG9wdXAge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRjaGVja291dF9zaG93LXBvcHVwLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRjaGVja291dF9zaG93LXBvcHVwLWJ1dHRvbi1pY29uLXBvcyk7XG4gICAgfVxuXG4gICAgI2RobC1wYWNrc3RhdGlvbi5zZWxlY3RlZC1wYWNrc3RhdGlvbiB+ICNzaGlwcGluZyB7XG4gICAgICAgIC8vIEZpeDogREhMIHBhY2tzdGF0aW9uIHN0eWxlcyBoaWRlIHNoaXBwaW5nIHN0ZXAgKCNzaGlwcGluZyksIGJ1dCBjb250ZW50IGluc2lkZSBpcyBzdGlsbCB2aXNpYmxlXG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgIC8vIFNoaXBwaW5nIHNlY3Rpb24gZm9yIGxvZ2dlZCBpbiB1c2VyXG5cbiAgICAuc2hpcHBpbmctYWRkcmVzcy1pdGVtcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIiwgXCI8bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuZWRpdC1hZGRyZXNzLWxpbmssXG4gICAgICAgIC5hY3Rpb24tc2VsZWN0LXNoaXBwaW5nLWl0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkY2hlY2tvdXRfYWRkcmVzc2VzLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRjaGVja291dF9hZGRyZXNzZXMtYnV0dG9uLWljb24tcG9zKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkY2hlY2tvdXRfYWRkcmVzc2VzLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRjaGVja291dF9hZGRyZXNzZXMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2hpcHBpbmctYWRkcmVzcy1pdGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAkY2hlY2tvdXRfdGV4dHMtZm9udC1zaXplO1xuICAgICAgICBib3JkZXI6ICRjaGVja291dF9lbGVtZW50cy1ib3JkZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtICgjeyRjaGVja291dF9iYXNlLXNwYWNlfSAvIDIpKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3RlZC1pdGVtIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNoZWNrb3V0X2FjdGl2ZS1lbGVtZW50cy1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkY2hlY2tvdXRfdGV4dHMtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fYWRkcmVzcy1hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXN0aW1hdGlvbiBibG9ja1xuXG4gICAgLmVzdGltYXRlZC1ibG9jayB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkY2hlY2tvdXRfYmFzZS1zcGFjZSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi5zaG93Y2FydCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRjaGVja291dF9zaG93LWNhcnQtYnV0dG9uLXR5cGUsICRpY29uX3BvczogJGNoZWNrb3V0X3Nob3ctY2FydC1idXR0b24taWNvbi1wb3MpO1xuXG4gICAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRjaGVja291dF9zaG93LWNhcnQtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGNoZWNrb3V0X3Nob3ctY2FydC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAuY291bnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY291bnRlci1udW1iZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvdW50ZXItbnVtYmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvdW50ZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXIoKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgICAgIGNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTAuMTVlbTtcbiAgICAgICAgICAgIHRvcDogLTAuMTVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb3VudGVyLW51bWJlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAubWluaWNhcnQtd3JhcHBlcixcbiAgICAgICAgLm1pbmljYXJ0LXdyYXBwZXIgLnNob3djYXJ0IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmlsbGluZ1xuXG4gICAgLmZpZWxkLXNlbGVjdC1iaWxsaW5nIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5iaWxsaW5nLWFkZHJlc3Mtc2FtZS1hcy1zaGlwcGluZy1ibG9jayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgICAgIGxhYmVsIHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRjaGVja291dF90ZXh0cy1mb250LXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94KCk7XG5cbiAgICAgICAgICAgIG1hcmdpbjogMC4ycmVtIDAuM3JlbSAwLjNyZW0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5iaWxsaW5nLWFkZHJlc3MtZGV0YWlscyB7XG4gICAgICAgIC5hY3Rpb24tZWRpdC1hZGRyZXNzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogZGVmYXVsdCwgJGljb25fcG9zOiBcIm5vLWljb25cIik7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMS42cmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY2hlY2tvdXQtYmlsbGluZy1hZGRyZXNzIHtcbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uLmFjdGlvbi5hY3Rpb24tdXBkYXRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBheW1lbnRfX21ldGhvZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAubWV0aG9kX19saXN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGF5bWVudC1tZXRob2QtcHJ6ZWxld3kyNF9jYXJkLl9hY3RpdmUge1xuICAgICAgICAuUDI0Rm9ybUNvbnRhaW5lci1mYWtlIHtcbiAgICAgICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICAmID4gcCB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDUlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJiA+IGZvcm0gbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBmbGV4OiAwIDAgMTQwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYgPiBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcnplbGV3eTI0LXBheS13aXRoLWNhcmQtd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICAucHJ6ZWxld3kyNC1wYXktd2l0aC1jYXJkIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjhyZW07XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC44cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJGttYV90cmFuc2l0aW9uX3RpbWUgYWxsO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBheW1lbnQtbWV0aG9kLXByemVsZXd5MjRfX2FncmVlbWVudCB7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZmxleDogMDtcbiAgICAgICAgICAgICZbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEuOXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuOXJlbTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEuOXJlbTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAxLjlyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZmxleDogNTtcbiAgICAgICAgfVxuICAgICAgICAubWFnZS1lcnJvciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIGJ1dHRvbi5wcmltYXJ5IHtcbiAgICAgICAgICAgIHdpZHRoOiAyOHJlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAycmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRrbWFfdHJhbnNpdGlvbl90aW1lIGFsbDtcbiAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtODAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbi1lZGl0LWFkZHJlc3MsXG4gICAgLmFjdGlvbi11cGRhdGUsXG4gICAgLmFjdGlvbi1jYW5jZWwge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGNoZWNrb3V0X2JpbGxpbmctYWRkcmVzcy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNoZWNrb3V0X2JpbGxpbmctYWRkcmVzcy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3Rpb24tY2FuY2VsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9uLWVkaXQtYWRkcmVzcyB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgIH1cblxuICAgIC5wYXltZW50LmNjYXJkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG4gICAgfVxuXG4gICAgLy8gQWdyZWVtZW50c1xuXG4gICAgJl9fYWdyZWVtZW50cyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuXG4gICAgICAgIC5tb2RhbC1pbm5lci13cmFwICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNoZWNrb3V0LWFncmVlbWVudHMge1xuICAgICAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0X2Jhc2Utc3BhY2UgMCAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGNoZWNrb3V0X3BsYWNlLW9yZGVyLWJvcmRlci1ib3R0b207XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRjaGVja291dF9iYXNlLXNwYWNlICRjaGVja291dF9iYXNlLXNwYWNlIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubW9kYWwuX3Nob3cgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN1bW1hcnkgKHNpZGViYXIgb24gZGVza3RvcCBhbmQgdGFibGV0cylcblxuICAgIC5vcGMtYmxvY2stc3VtbWFyeSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgLmFjdGlvbi5jaGVja291dCxcbiAgICAgICAgLml0ZW1zLWluLWNhcnQsXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2lkZWJhciBoZWFkbGluZVxuICAgICAgICAmID4gLnRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGNoZWNrb3V0X2hlYWRsaW5lcy1mb250LXNpemUpO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRjaGVja291dF9oZWFkbGluZXMtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGNoZWNrb3V0X2hlYWRsaW5lcy1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkY2hlY2tvdXRfaGVhZGxpbmVzLWNvbG9yO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmRpc2NvdW50IHtcbiAgICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kaXNjb3VudC5jb3Vwb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hdy1naWZ0Y2FyZC10b3RhbHMge1xuICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLml0ZW1zLWluLWNhcnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IGNhbGMoI3skY2hlY2tvdXRfYmFzZS1zcGFjZX0gLSAycHgpO1xuICAgICAgICAgICAgcmlnaHQ6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHN0cm9uZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5taW5pY2FydC1pdGVtcy13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxuXG4gICAgLnRhYmxlLXRvdGFscyB7XG4gICAgICAgIC50YWJsZS1jYXB0aW9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktdmlzaWJsZSgpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGNoZWNrb3V0X2hlYWRsaW5lcy1mb250LXNpemUpO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiAkY2hlY2tvdXRfaGVhZGxpbmVzLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkY2hlY2tvdXRfaGVhZGxpbmVzLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2hlY2tvdXRfaGVhZGxpbmVzLWNvbG9yO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkY2hlY2tvdXRfdGV4dHMtZm9udC1zaXplO1xuICAgICAgICAgICAgcGFkZGluZzogMC44cmVtIDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hbW91bnQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmdyYW5kIHtcbiAgICAgICAgICAgIHRoLFxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbi1lZGl0LFxuICAgIC5hY3Rpb24udmlld2NhcnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogJGNoZWNrb3V0X2FjdGl2ZS1lbGVtZW50cy1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9lZGl0X2NvbG9yZWQuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5OSUgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEuN3JlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMi41cmVtO1xuICAgICAgICBmb250LXNpemU6ICRjaGVja291dF90ZXh0cy1mb250LXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRmb250X2ZhbWlseS1wcmltYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbi5kZWxldGUsXG4gICAgLnRvdGFscy5naWZ0Y2FyZCAuYWN0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcmVtKTtcbiAgICB9XG5cbiAgICAucmV3YXJkLXBvaW50cy1idXR0b25zLWNvbnRhaW5lciBidXR0b24ge1xuICAgICAgICAvLyBEbyBub3QgYXBwbHkgYnV0dG9uIHNwYW4gc3R5bGVzIGZvciBhZGRpdGlvbmFsIHNwYW4gaW5zaWRlIHJld2FyZCBwb2ludHMgYnV0dG9uXG4gICAgICAgIHNwYW4gc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWluaWNhcnQtaXRlbXMge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgLnByb2R1Y3QtaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGNoZWNrb3V0X2VsZW1lbnRzLWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1pbWFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWl0ZW0tZGV0YWlscyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LWl0ZW0taW5uZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGNoZWNrb3V0X3RleHRzLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5pdGVtLW5hbWUtYmxvY2sge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lLWJsb2NrIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmRldGFpbHMtcXR5IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN1YnRvdGFsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcblxuICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgLmNhcnQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1vZGFsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja291dF9ib3hlcy1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50YWJsZS10b3RhbHMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW1zLWluLWNhcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAvLyBTdW1tYXJ5IGFtb3VudCBvZiBwcm9kdWN0IChtYWdlbnRvIG1hcmt1cClcbiAgICAgICAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUGF5bWVudHNcbiAgICAucGF5bWVudHMge1xuICAgICAgICAubGVnZW5kLFxuICAgICAgICAuZmllbGRzZXQgPiBociB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3JlY2FwdGNoYS1jaGVja291dC1wbGFjZS1vcmRlci13cmFwcGVyIHtcbiAgICAgICAgLmZpZWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGF5bWVudC1tZXRob2Qge1xuICAgICAgICAuYWN0aW9uLmNoZWNrb3V0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBheW1lbnQtbWV0aG9kLXRpdGxlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRjaGVja291dF9lbGVtZW50cy1ib3JkZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49bGFwdG9wXCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtIDEuNXJlbSAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0cmVtIDIuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2Zvcj1cImJhbmt0cmFuc2ZlclwiXSxcbiAgICAgICAgICAgICAgICAmW2Zvcj1cInBheW9uZV9hZHZhbmNlX3BheW1lbnRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9iYW5rX3RyYW5zZmVyLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2Zvcj1cImJhcnpoYWxlblwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1iYXJ6aGFsZW4ucG5nXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yPVwiYmlsbHNhZmVcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9wYXltZW50LWxvZ28tYmlsbHNhZmUucG5nXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yPVwiY3JlZGl0Y2FyZFwiXSxcbiAgICAgICAgICAgICAgICAmW2Zvcj1cInBheW9uZV9jcmVkaXRjYXJkXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvY3JlZGl0Y2FyZC5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJjYXNob25kZWxpdmVyeVwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL29uX2RlbGl2ZXJ5LnN2Z1wiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2Zvcj1cImNoZWNrbW9cIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9tb25leV9vcmRlci5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJnaXJvcGF5XCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvZ2lyb3BheS5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJpZGVhbFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1pZGVhbC5qcGdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwYXlvbmVfb2J0X2lkZWFsXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcGF5b25lX29idF9pZGVhbC5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJpbnZvaWNlXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvaW52b2ljZS5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJlcHNcIl0sXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwYXlvbmVfb2J0X2Vwc1wiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1lcHMuanBnXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yPVwibGFzdHNjaHJpZnRcIl0sXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwYXlvbmVfZGViaXRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9sYXN0c2NocmlmdC5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwYXlvbmVfaW52b2ljZVwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL2ludm9pY2Uuc3ZnXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yPVwicGF5b25lX2NyZWRpdGNhcmRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9jcmVkaXRjYXJkLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2Zvcj1cInBheWRpcmVrdFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheWRpcmVrdC5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwYXlvbHV0aW9uXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcGF5bWVudC1sb2dvLXBheW9sdXRpb24ucG5nXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yPVwicGF5ZW5naW5lY3dfY3JlZGl0Y2FyZFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL2NyZWRpdGNhcmQuc3ZnXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yKj1cInBheXBhbFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheXBhbC5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwYXllbmdpbmVjd19wb3N0ZmluYW5jZWNhcmRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9wYXltZW50LWxvZ28tcG9zdGZpbmFuY2UtY2FyZC5wbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byAxLjdyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwb3N0ZmluYW5jZVwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1wb3N0ZmluYW5jZS5qcGdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwb3N0ZmluYW5jZS1jYXJkXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcGF5bWVudC1sb2dvLXBvc3RmaW5hbmNlLWNhcmQucG5nXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yPVwicHJ6ZWxld3kyNFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9wYXltZW50LWxvZ29zL3BheW1lbnQtbG9nby1wcnplbGV3eTI0LnBuZ1wiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2Zvcj1cInBheXBhbC1hZ3JlZW1lbnRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9wYXltZW50LWxvZ28tcGF5cGFsLWFncmVlbWVudC5wbmdcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3I9XCJwdXJjaGFzZW9yZGVyXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3MvcHVyY2hhc2Vfb3JkZXIuc3ZnXCIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZm9yPVwicGF5b25lX29idF9zb2ZvcnR1ZWJlcndlaXN1bmdcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy9rbGFybmFfYmFja2dyb3VuZF9sb2dvLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2Zvcj1cInR3aW50Y3dfdHdpbnRcIl0ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvcGF5bWVudC1sb2dvcy90d2ludC5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNC41cmVtIDNyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltmb3IqPVwia2xhcm5hXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3BheW1lbnQtbG9nb3Mva2xhcm5hX2JhY2tncm91bmRfbG9nby5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnBheW1lbnQtbWV0aG9kLWJpbGxpbmctYWRkcmVzcyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkgLnBheW1lbnQtbWV0aG9kLWJpbGxpbmctYWRkcmVzcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG4gICAgICAgIH1cblxuICAgICAgICAuYmlsbGluZy1hZGRyZXNzLWRldGFpbHMge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgM3JlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNoZWNrb3V0LWFncmVlbWVudHMtYmxvY2sge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXltZW50LW1ldGhvZC1jb250ZW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNTAlO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwICRjaGVja291dF9iYXNlLXNwYWNlO1xuXG4gICAgICAgICAgICAucGF5b2x1dGlvbl9vdmVybGF5IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLl9hY3RpdmUgLnBheW1lbnQtbWV0aG9kLWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJGNoZWNrb3V0X2Jhc2Utc3BhY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubnVtYmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAyM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbjogJGNoZWNrb3V0X2Jhc2Utc3BhY2UgMCAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIERpc2NvdW50cyBhcmVhIHN0eWxpbmdcblxuICAgIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsICsgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICB9XG5cbiAgICAub3BjLXBheW1lbnQtYWRkaXRpb25hbDpub3QoLnJld2FyZHBvaW50cykge1xuICAgICAgICAucGF5bWVudC1vcHRpb24tdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6IFwiYXJyb3dcIixcbiAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogXCJkb3duXCIsXG4gICAgICAgICAgICAgICAgJGFycm93LWFjdGl2ZTogXCJ1cFwiLFxuICAgICAgICAgICAgICAgICR3aWR0aDogMC43cmVtLFxuICAgICAgICAgICAgICAgICRoZWlnaHQ6IDFweCxcbiAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAwLjVyZW0sXG4gICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAwXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi10b2dnbGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkY2hlY2tvdXRfdGV4dHMtZm9udC1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGF5bWVudC1vcHRpb24tY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgIH1cblxuICAgIC5hdy1naWZ0Y2FyZC1jb2RlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgICAub3BjLXBheW1lbnQtYWRkaXRpb25hbC5yZXdhcmRwb2ludHMge1xuICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcblxuICAgICAgICAucGF5bWVudC1vcHRpb24tdGl0bGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkY2hlY2tvdXRfaGVhZGxpbmVzLWZvbnQtc2l6ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucGF5bWVudC1vcHRpb24tY29udGVudCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBheW1lbnQtb3B0aW9uLWlubmVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBTdHlsZSBwYXltZW50IG1ldGhvZHMgdGhhdCBhcmUgZ2VuZXJhdGVkIGZyb20gcGhwIHNjcmlwdHNcblxuLmN1c3RvbXdlYi1wYXllbmdpbmVjdy1wYXltZW50LWZvcm0ge1xuICAgIC5sYWJlbCB7XG4gICAgICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY29udHJvbDpub3QoLnNlbGVjdC1maWVsZCkge1xuICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLnBheXBhbC5jaGVja291dCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJi5hZnRlcixcbiAgICAmLmJlZm9yZSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCk7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtIDAuNXJlbSAwLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wYXlwYWwtcmV2aWV3IHtcbiAgICAuaXRlbXMtcXR5IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lIG5vbmU7XG5cbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRjaGVja291dF9lbGVtZW50cy1ib3JkZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiOiBcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgICAgIC5ib3gtb3JkZXItc2hpcHBpbmctYWRkcmVzcyxcbiAgICAgICAgICAgIC5ib3gtb3JkZXItc2hpcHBpbmctbWV0aG9kLFxuICAgICAgICAgICAgLmJveC1vcmRlci1zaGlwcGluZy1tZXRob2QgKyAuYm94LW9yZGVyLWJpbGxpbmctYWRkcmVzcyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzMlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJveC1vcmRlci1zaGlwcGluZy1hZGRyZXNzIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCA1JTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDM0JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLnN1YnRvdGFsLFxuICAgICAgICAubWFyayxcbiAgICAgICAgLmFtb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cblxuICAgIC5pdGVtLW9wdGlvbnMge1xuICAgICAgICBkdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiOiBcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmltYXJ5IHtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJGNoZWNrb3V0X3BheXBhbC1wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGNoZWNrb3V0X3BheXBhbC1wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkY2hlY2tvdXRfcGF5cGFsLXByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGNoZWNrb3V0X3BheXBhbC1wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJGNoZWNrb3V0X3BheXBhbC1zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkY2hlY2tvdXRfcGF5cGFsLXNlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGNoZWNrb3V0X3BheXBhbC1zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGNoZWNrb3V0X3BheXBhbC1zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBheXBhbC1yZXZpZXctZGlzY291bnQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2hlY2tvdXRfZWxlbWVudHMtYm9yZGVyO1xuICAgIG1hcmdpbjogMnJlbSAwO1xuXG4gICAgLmJsb2NrIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICA+IC50aXRsZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNoZWNrb3V0X2VsZW1lbnRzLWJvcmRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgcGFkZGluZzogMC43cmVtIDNyZW0gMC43cmVtIDAuNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLmNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwIDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vQW1hem9uIFBheSAtIHBheW1lbnQgbWV0aG9kXG5cbi8vU3R5bGUgQW1hem9uIHdpZGdldCB3cmFwcGVyIGZvciBpZnJhbWUvIGFuZCBpZnJhbWUgZWxlbWVudFxuXG4uYW1hem9uLXdpZGdldCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMjVyZW07XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI3KTtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uYW1hem9uLXBheW1lbnQtbWV0aG9kIHtcbiAgICAucGF5bWVudC1tZXRob2QtY29udGVudCxcbiAgICAucGF5bWVudC1tZXRob2QtdGl0bGUge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbn1cblxuLy8gIFN0eWxlcyBmb3Igc3RvcmUgcGlja3VwXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4jc3RvcmUtc2VsZWN0b3Ige1xuICAgIGJveC1zaGFkb3c6ICRjaGVja291dF9ib3hlcy1ib3gtc2hhZG93O1xuXG4gICAgLmZvcm0tbG9naW4ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuZm9ybS1jb250aW51ZSB7XG4gICAgICAgIG1hcmdpbjogMnJlbSAwIDA7XG5cbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICAuYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAmLnByaW1hcnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBidXR0b25cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RlcC10aXRsZSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAjeyRjaGVja291dF9iYXNlLXNwYWNlIC8gMn07XG5cbiAgICAgICAgLmZvcm0tbG9naW4gfiAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sb2NhdGlvbi1uYW1lIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6ICRjaGVja291dF9zdG9yZS1waWNrdXAtbG9jYXRpb24tbmFtZS1mb250LXNpemU7XG4gICAgfVxuXG4gICAgLnNlY29uZGFyeSAuYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VsZWN0LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlbGVjdC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlbGVjdC1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VsZWN0LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gTW9kYWwgY29udGVudFxuLnN0b3JlLXNlbGVjdG9yLXBvcHVwIHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxwaG9uZUxnXCIpIHtcbiAgICAgICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkY2hlY2tvdXRfYmFzZS1zcGFjZTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRjaGVja291dF9iYXNlLXNwYWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLXRpdGxlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAubW9kYWwtaGVhZGVyIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxufVxuXG4jb3BjLXN0b3JlLXNlbGVjdG9yLXBvcHVwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgLmJsb2NrLXNlYXJjaCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICAgICAgcGFkZGluZzogMCAwIDEwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY2hlY2tvdXRfZWxlbWVudHMtYm9yZGVyO1xuICAgIH1cblxuICAgIC5hY3Rpb24tY2xvc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VhcmNoLW1vZGFsLWNsb3NlLWJ1dHRvbi1iYWNrZ3JvdW5kLXNpemU7XG4gICAgfVxuXG4gICAgLnN0b3JlLXNlbGVjdG9yLXNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAkY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaC1tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6IDAgMCAkY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaC1wYWRkaW5nLWJvdHRvbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2gtYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubGFiZWw6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmlucHV0LXRleHQge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2hfYnV0dG9uLXdpZHRofSArIDFlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IDIyMDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaC1wYWRkaW5nLWJvdHRvbX0pO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VhcmNoX2J1dHRvbi1iYWNrZ3JvdW5kLWltYWdlIG5vLXJlcGVhdCA2MCUgY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWFyY2hfYnV0dG9uLWJhY2tncm91bmQtc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaF9idXR0b24tdHlwZSwgJGljb25fcG9zOiBcIm9ubHktaWNvblwiKTtcblxuICAgICAgICAgICAgd2lkdGg6ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VhcmNoX2J1dHRvbi13aWR0aDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiAkY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlYXJjaF9idXR0b24tdHJhbnNmb3JtO1xuXG4gICAgICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3RvcmUtc2VsZWN0b3ItcG9wdXAtdGFibGUgdGJvZHkge1xuICAgICAgICAuY29sIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxLjJyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxvY2F0aW9uLW5hbWUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1sb2NhdGlvbi1uYW1lLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZy1pdGVtIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkY2hlY2tvdXRfc3RvcmUtcGlja3VwLXNlbGVjdC1sb2NhdGlvbl9idXR0b24tdHlwZSwgJGljb24tcG9zOiBcIm5vLWljb25cIik7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJGNoZWNrb3V0X3N0b3JlLXBpY2t1cC1zZWxlY3QtbG9jYXRpb25fYnV0dG9uLXR5cGUsICRpY29uLXBvczogXCJuby1pY29uXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxvY2F0aW9uLXNlbGVjdGVkIC5hY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VsZWN0ZWQtbG9jYXRpb25fYnV0dG9uLXR5cGUsICRpY29uLXBvczogXCJuby1pY29uXCIpO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oJHR5cGU6ICRjaGVja291dF9zdG9yZS1waWNrdXAtc2VsZWN0ZWQtbG9jYXRpb25fYnV0dG9uLXR5cGUsICRpY29uLXBvczogXCJuby1pY29uXCIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBTdHlsZSBiZWxvdyBhcmUgbW92ZWQgZnJvbSBtb2R1bGUtaW52ZW50b3J5LWluLXN0b3JlLXBpY2t1cCBpbiBvcmRlciB0byBhdm9pZCBpbmNsdWRpbmcgdGhlbSBpbiBldmVyeSBlbnRyeVxuI3N0b3JlLXBpY2t1cCB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgJi5zZWxlY3RlZC1zaGlwcGluZyB7XG4gICAgICAgIH4gI3N0b3JlLXNlbGVjdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLXN0b3JlLXBpY2t1cCB7XG4gICAgICAgIH4gI3NoaXBwaW5nLFxuICAgICAgICB+ICNvcGMtc2hpcHBpbmdfbWV0aG9kIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jZGVsaXZlcnktbWV0aG9kLXNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLmFjdGlvbiB7XG4gICAgICAgIC8vIEJVVFRPTlxuXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgLy8gQlVUVE9OIHNlbGVjdGVkXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9uLXNlbGVjdC1zaGlwcGluZyB7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG5cbiAgICAuYWN0aW9uLXNlbGVjdC1zdG9yZS1waWNrdXAge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICB9XG59XG5cbi5sb2NhdGlvbi1kZXRhaWxzIHtcbiAgICAubG9jYXRpb24tbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbn1cblxuLm1vZGFsLWNvbnRlbnQge1xuICAgICNvcGMtc3RvcmUtc2VsZWN0b3ItcG9wdXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5zdG9yZS1zZWxlY3Rvci1wb3B1cC10YWJsZSB7XG4gICAgdGhlYWQge1xuICAgICAgICB0aCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHkge1xuICAgICAgICAubG9jYXRpb24ge1xuICAgICAgICAgICAgLmxvY2F0aW9uLW5hbWUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICArIC5sb2NhdGlvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjaGVja291dF9lbGVtZW50cy1ib3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLWxvY2F0aW9uLWRldGFpbHMge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2wtbG9jYXRpb24tYWN0aW9ucyB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgLmFjdGlvbiB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3RvcmUtc2VsZWN0b3ItcG9wdXAtZW1wdHktcXVlcnksXG4uc3RvcmUtc2VsZWN0b3ItcG9wdXAtbm8tbG9jYXRpb25zIHtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xufVxuXG4uI3skbnN9cGFnZS1zdWNjZXNzIHtcbiAgICBtYXJnaW46IDAgYXV0byAycmVtO1xuICAgIC5hY3Rpb24ucHJpbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIuNnJlbTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMi4zcmVtO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiAka21hX3RyYW5zaXRpb25fdGltZSBhbGw7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtODAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICYgKyAjb3JkZXItYWRkaXRpb25hbC1jbXMtYmxvY2sge1xuICAgICAgICBiYWNrZ3JvdW5kOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICBwYWRkaW5nOiA0cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDFweCAzcHggM3JlbSAwIHJnYmEoJGttYV9jb2xvcl9ibGFjaywgMC4yOCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDZyZW07XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8qIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1kaXNjb3VudCB7XG4gIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZGlzY291bnQge1xuICAgICAgcGFkZGluZzogMS41cmVtIDJyZW0gMCAwO1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIHdpZHRoOiAzMHJlbTsgfSB9XG4gIC5jcy1jYXJ0LXBhZ2UgLmNzLWRpc2NvdW50Om5vdCg6b25seS1jaGlsZCkge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jYXJ0LXBhZ2UgLmNzLWRpc2NvdW50Om5vdCg6b25seS1jaGlsZCkge1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjVyZW0pOyB9IH1cbiAgLmNzLWRpc2NvdW50LmF3LWdpZnRjYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNoZWNrb3V0LWluZGV4LWluZGV4IC5jcy1kaXNjb3VudC0tZ2lmdCB7XG4gICAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH0gfVxuICAuY3MtZGlzY291bnRfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwIDFyZW07XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGlzY291bnRfX3RpdGxlLFxuICAuY3MtZGlzY291bnQgLnRpdGxlIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRpc2NvdW50X190aXRsZSxcbiAgICAgIC5jcy1kaXNjb3VudCAudGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9IH1cbiAgICAuY3MtZGlzY291bnRbZGF0YS1jb2xsYXBzaWJsZT0ndHJ1ZSddIC5jcy1kaXNjb3VudF9fdGl0bGUsIC5jcy1kaXNjb3VudFtkYXRhLWNvbGxhcHNpYmxlPSd0cnVlJ11cbiAgICAuY3MtZGlzY291bnQgLnRpdGxlIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5jcy1kaXNjb3VudF9fdGl0bGUtdGV4dCxcbiAgICAuY3MtZGlzY291bnQgLnRpdGxlLXRleHQge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAuY3MtZGlzY291bnRfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gIC5jcy1kaXNjb3VudF9fdHJpZ2dlci1pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogMC44cmVtO1xuICAgIGhlaWdodDogNnB4O1xuICAgIHdpZHRoOiAxLjJyZW07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1kaXNjb3VudF9fdHJpZ2dlci1pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1kaXNjb3VudC5hY3RpdmUgLmNzLWRpc2NvdW50X190cmlnZ2VyLWljb24tLWFuaW1hdGlvbiB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTsgfVxuICAgIC5jcy1kaXNjb3VudFtkYXRhLWNvbGxhcHNpYmxlPSd0cnVlJ10gLmNzLWRpc2NvdW50X190cmlnZ2VyLWljb24ge1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9XG5cbi5jcy1kaXNjb3VudCBidXR0b24uYWN0aW9uLFxuLm9wYy1wYXltZW50LWFkZGl0aW9uYWwgYnV0dG9uLmFjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmNzLWRpc2NvdW50IGJ1dHRvbi5hY3Rpb246Oi1tb3otZm9jdXMtaW5uZXIsXG4gIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsIGJ1dHRvbi5hY3Rpb246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtZGlzY291bnQgYnV0dG9uLmFjdGlvbiwgLmNzLWRpc2NvdW50IGJ1dHRvbi5hY3Rpb246dmlzaXRlZCxcbiAgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwgYnV0dG9uLmFjdGlvbixcbiAgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwgYnV0dG9uLmFjdGlvbjp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWRpc2NvdW50IGJ1dHRvbi5hY3Rpb246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGlzY291bnQgYnV0dG9uLmFjdGlvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1kaXNjb3VudCBidXR0b24uYWN0aW9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1kaXNjb3VudCBidXR0b24uYWN0aW9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGlzY291bnQgYnV0dG9uLmFjdGlvbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWRpc2NvdW50IGJ1dHRvbi5hY3Rpb246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsIGJ1dHRvbi5hY3Rpb246aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsIGJ1dHRvbi5hY3Rpb246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsIGJ1dHRvbi5hY3Rpb246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAub3BjLXBheW1lbnQtYWRkaXRpb25hbCBidXR0b24uYWN0aW9uOnZpc2l0ZWQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsIGJ1dHRvbi5hY3Rpb246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwgYnV0dG9uLmFjdGlvbjp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWRpc2NvdW50IGJ1dHRvbi5hY3Rpb25bZGlzYWJsZWRdLCAuY3MtZGlzY291bnQgYnV0dG9uLmFjdGlvbjp2aXNpdGVkW2Rpc2FibGVkXSxcbiAgICAub3BjLXBheW1lbnQtYWRkaXRpb25hbCBidXR0b24uYWN0aW9uW2Rpc2FibGVkXSxcbiAgICAub3BjLXBheW1lbnQtYWRkaXRpb25hbCBidXR0b24uYWN0aW9uOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgLmNzLWRpc2NvdW50IGJ1dHRvbi5hY3Rpb24gc3BhbixcbiAgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwgYnV0dG9uLmFjdGlvbiBzcGFuIHtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtZGlzY291bnQgYnV0dG9uLmFjdGlvbiBzdmcsXG4gIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsIGJ1dHRvbi5hY3Rpb24gc3ZnIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjZyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1kaXNjb3VudCB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmNzLWRpc2NvdW50IHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxcmVtIDAgMDsgfSB9XG4gIC5jcy1kaXNjb3VudF9fY29udGVudCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAgMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWRpc2NvdW50X19jb250ZW50IC5maWVsZHNldC5jb3Vwb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogMCAycmVtOyB9XG4gICAgICAuY3MtZGlzY291bnRfX2NvbnRlbnQgLmZpZWxkc2V0LmNvdXBvbiAuZmllbGQge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICBnYXA6IDAgMnJlbTsgfVxuICAgICAgICAuY3MtZGlzY291bnRfX2NvbnRlbnQgLmZpZWxkc2V0LmNvdXBvbiAuZmllbGQgLmxhYmVsIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uIC5maWVsZCAubGFiZWw6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiOlwiOyB9XG4gICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uIC5maWVsZCAuY29udHJvbCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uLFxuICAgICAgICAuY3MtZGlzY291bnRfX2NvbnRlbnQgLmZpZWxkc2V0LmNvdXBvbiAuZmllbGQge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAgICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uIC5jb250cm9sLFxuICAgICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uIC5maWVsZCAuY29udHJvbCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07IH1cbiAgICAgICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uIC5jb250cm9sID4gaW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgLmNzLWRpc2NvdW50X19jb250ZW50IC5maWVsZHNldC5jb3Vwb24gLmZpZWxkIC5jb250cm9sID4gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMCAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgLmNzLWRpc2NvdW50X19jb250ZW50IC5maWVsZHNldC5jb3Vwb24gLmFjdGlvbnMtdG9vbGJhcixcbiAgICAgICAgICAuY3MtZGlzY291bnRfX2NvbnRlbnQgLmZpZWxkc2V0LmNvdXBvbiAuZmllbGQgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDJlbSAwOyB9XG4gICAgICAgICAgICAuY3MtZGlzY291bnRfX2NvbnRlbnQgLmZpZWxkc2V0LmNvdXBvbiAuYWN0aW9ucy10b29sYmFyIC5hcHBseSxcbiAgICAgICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uIC5maWVsZCAuYWN0aW9ucy10b29sYmFyIC5hcHBseSB7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAuNjVlbSAyLjVlbTsgfVxuICAgICAgICAgICAgICAuY3MtZGlzY291bnRfX2NvbnRlbnQgLmZpZWxkc2V0LmNvdXBvbiAuYWN0aW9ucy10b29sYmFyIC5hcHBseSxcbiAgICAgICAgICAgICAgLmNzLWRpc2NvdW50X19jb250ZW50IC5maWVsZHNldC5jb3Vwb24gLmFjdGlvbnMtdG9vbGJhciAuYXBwbHkgPiBzcGFuLFxuICAgICAgICAgICAgICAuY3MtZGlzY291bnRfX2NvbnRlbnQgLmZpZWxkc2V0LmNvdXBvbiAuZmllbGQgLmFjdGlvbnMtdG9vbGJhciAuYXBwbHksXG4gICAgICAgICAgICAgIC5jcy1kaXNjb3VudF9fY29udGVudCAuZmllbGRzZXQuY291cG9uIC5maWVsZCAuYWN0aW9ucy10b29sYmFyIC5hcHBseSA+IHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH0gfVxuICAuY3MtZGlzY291bnRfX3RpdGxlLFxuICAuY3MtZGlzY291bnQgLnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmNzLWNoZWNrb3V0X19kaXNjb3VudHMgLm9wYy1wYXltZW50LWFkZGl0aW9uYWwgYnV0dG9uLmFjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIGJvcmRlci1jb2xvcjogI2MxMjcyZjtcbiAgY29sb3I6ICNjMTI3MmY7XG4gIHRyYW5zaXRpb246IDAuM3MgYWxsOyB9XG4gIC5jcy1jaGVja291dF9fZGlzY291bnRzIC5vcGMtcGF5bWVudC1hZGRpdGlvbmFsIGJ1dHRvbi5hY3Rpb246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGRpc2NvdW50X3RpdGxlLXRleHQ6ICRjb2xvcl9kb3ZlLWdyYXkgIWRlZmF1bHQ7XG4kZGlzY291bnRfY29udGVudC10ZXh0OiAkY29sb3JfZG92ZS1ncmF5ICFkZWZhdWx0O1xuJGRpc2NvdW50X2JvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3JfYWx0byAhZGVmYXVsdDtcbiRkaXNjb3VudF90aXRsZS1pY29uLWNvbG9yOiAkY29sb3JfZ3JheSAhZGVmYXVsdDtcblxuJGRpc2NvdW50X2J1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRkaXNjb3VudF9idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuLiN7JG5zfWRpc2NvdW50IHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gMDtcbiAgICBib3JkZXItdG9wOiAkZGlzY291bnRfYm9yZGVyLXRvcDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcGFkZGluZzogMS41cmVtIDJyZW0gMCAwO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB3aWR0aDogMzByZW07XG4gICAgfVxuXG4gICAgLiN7JG5zfWNhcnQtcGFnZSAmOm5vdCg6b25seS1jaGlsZCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjVyZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5hdy1naWZ0Y2FyZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi0tZ2lmdCB7XG4gICAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMCAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX3RpdGxlLFxuICAgIC50aXRsZSB7XG4gICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9W2RhdGEtY29sbGFwc2libGU9J3RydWUnXSAmIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkZGlzY291bnRfdGl0bGUtdGV4dDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgY29sb3I6ICRkaXNjb3VudF9jb250ZW50LXRleHQ7XG4gICAgfVxuXG4gICAgJl9fdHJpZ2dlci1pY29uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGRpc2NvdW50X3RpdGxlLWljb24tY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbmltYXRpb24ge1xuICAgICAgICAgICAgI3skcm9vdH0uYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1bZGF0YS1jb2xsYXBzaWJsZT0ndHJ1ZSddICYge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9ZGlzY291bnQsXG4ub3BjLXBheW1lbnQtYWRkaXRpb25hbCB7XG4gICAgYnV0dG9uLmFjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkZGlzY291bnRfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRkaXNjb3VudF9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRkaXNjb3VudF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkaXNjb3VudF9idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRkaXNjb3VudF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkaXNjb3VudF9idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL2Rpc2NvdW50L2Rpc2NvdW50LnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5cbi4jeyRuc31kaXNjb3VudCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDAgMDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDAgMXJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcblxuICAgICAgICAuZmllbGRzZXQuY291cG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IDAgMnJlbTtcbiAgICAgICAgICAgIC5maWVsZCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBnYXA6IDAgMnJlbTtcblxuICAgICAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiOlwiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5jb250cm9sIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lTGdcIikge1xuICAgICAgICAgICAgICAgICYsXG4gICAgICAgICAgICAgICAgLmZpZWxkIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgICAgICAgICAgICAgIC5jb250cm9sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICYgPiBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJlbSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjY1ZW0gMi41ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUsXG4gICAgLnRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLiN7JG5zfWNoZWNrb3V0IHtcbiAgICAmX19kaXNjb3VudHMge1xuICAgICAgICAub3BjLXBheW1lbnQtYWRkaXRpb25hbCB7XG4gICAgICAgICAgICBidXR0b24uYWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogJGttYV90cmFuc2l0aW9uX3RpbWUgYWxsO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy1wcm9ncmVzcy1iYXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGNvdW50ZXItcmVzZXQ6IHByb2dyZXNzLWJhcjtcbiAgZGlzcGxheTogZmxleDsgfVxuICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtIHtcbiAgICB3aWR0aDogMThyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jcy1wcm9ncmVzcy1iYXJfX2l0ZW06YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDAuOHJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDAuOXJlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAtMTsgfVxuICAgIC5jcy1wcm9ncmVzcy1iYXJfX2l0ZW06Zmlyc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cbiAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDsgfVxuICAgIC5jcy1wcm9ncmVzcy1iYXJfX2l0ZW0uX2FjdGl2ZTphZnRlciwgLmNzLXByb2dyZXNzLWJhcl9faXRlbS5fY29tcGxldGU6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2MxMjcyZjsgfVxuICAgIC5jcy1wcm9ncmVzcy1iYXJfX2l0ZW0uX2FjdGl2ZSAuY3MtcHJvZ3Jlc3MtYmFyX19pbmRpY2F0b3Itd3JhcHBlciwgLmNzLXByb2dyZXNzLWJhcl9faXRlbS5fY29tcGxldGUgLmNzLXByb2dyZXNzLWJhcl9faW5kaWNhdG9yLXdyYXBwZXIge1xuICAgICAgYmFja2dyb3VuZDogI2MxMjcyZjsgfVxuICAgIC5jcy1wcm9ncmVzcy1iYXJfX2l0ZW0uX2NvbXBsZXRlIC5jcy1wcm9ncmVzcy1iYXJfX2luZGljYXRvcjpiZWZvcmUge1xuICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NoZWNrLnN2Z1wiKTtcbiAgICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xuICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgIGhlaWdodDogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtOmhvdmVyIC5jcy1wcm9ncmVzcy1iYXJfX2luZGljYXRvci13cmFwcGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2EyMDEwOTsgfVxuICAgICAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtOmhvdmVyIC5jcy1wcm9ncmVzcy1iYXJfX2luZGljYXRvci13cmFwcGVyOmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2EyMDEwOTsgfSB9XG4gIC5jcy1wcm9ncmVzcy1iYXJfX2luZGljYXRvci13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDMuM3JlbTtcbiAgICBoZWlnaHQ6IDIuN3JlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jcy1wcm9ncmVzcy1iYXJfX2luZGljYXRvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLmNzLXByb2dyZXNzLWJhcl9faXRlbS5fYWN0aXZlIC5jcy1wcm9ncmVzcy1iYXJfX2luZGljYXRvcixcbiAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtLl9jb21wbGV0ZSAuY3MtcHJvZ3Jlc3MtYmFyX19pbmRpY2F0b3Ige1xuICAgICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBwcm9ncmVzcy1iYXI7XG4gICAgICBjb250ZW50OiBjb3VudGVyKHByb2dyZXNzLWJhcik7XG4gICAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtLXRleHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBtYXJnaW4tdG9wOiAwLjNyZW07IH1cbiAgICAuY3MtcHJvZ3Jlc3MtYmFyX19pdGVtLl9hY3RpdmUgLmNzLXByb2dyZXNzLWJhcl9faXRlbS10ZXh0LFxuICAgIC5jcy1wcm9ncmVzcy1iYXJfX2l0ZW0uX2NvbXBsZXRlIC5jcy1wcm9ncmVzcy1iYXJfX2l0ZW0tdGV4dCB7XG4gICAgICBjb2xvcjogIzIxMjEyMTsgfVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJ1dGlscy9yZXNldC1saXN0LXN0eWxlXCI7XG5cbiRwcm9ncmVzcy1iYXJfaXRlbS13aWR0aDogMThyZW0gIWRlZmF1bHQ7XG5cbiRwcm9ncmVzcy1iYXJfdW5jb21wbGV0ZWQtc3RlcC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFyX2NvbXBsZXRlZC1zdGVwLWJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXJfc3RlcC1iYWNrZ3JvdW5kLWhvdmVyLWNvbG9yOiAka21hX2NvbG9yX3JlZC04MDAgIWRlZmF1bHQ7XG5cbi8vIENoZWNrbWFyayBvciBvdGhlciBzeW1ib2wgaW5kaWNhdGluZyBjb21wbGV0ZWQgc3RlcFxuJHByb2dyZXNzLWJhcl9jb21wbGV0ZWQtc3RlcC1pbmRpY2F0b3ItY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NoZWNrLnN2Z1wiKSAhZGVmYXVsdDtcblxuJHByb2dyZXNzLWJhcl9pbmRpY2F0b3Itd2lkdGg6IDMuM3JlbSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXJfaW5kaWNhdG9yLWhlaWdodDogMi43cmVtICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhcl9pbmRpY2F0b3ItZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFyX2luZGljYXRvci1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4kcHJvZ3Jlc3MtYmFyX2luZGljYXRvci1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhcl9pbmRpY2F0b3ItYWN0aXZlLW9yLWNvbXBsZXRlZC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHByb2dyZXNzLWJhcl9pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcblxuJHByb2dyZXNzLWJhcl9iYXItaGVpZ2h0OiAwLjhyZW0gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFyX2Jhci1ib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4kcHJvZ3Jlc3MtYmFyX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXJfYWN0aXZlLW9yLWNvbXBsZXRlZC10ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmFyX3RleHQtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31wcm9ncmVzcy1iYXIge1xuICAgICRyb290OiAmO1xuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICBjb3VudGVyLXJlc2V0OiBwcm9ncmVzcy1iYXI7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogJHByb2dyZXNzLWJhcl9pdGVtLXdpZHRoO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZ3Jlc3MtYmFyX2Jhci1oZWlnaHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFyX3VuY29tcGxldGVkLXN0ZXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMC45cmVtO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcHJvZ3Jlc3MtYmFyX2Jhci1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRwcm9ncmVzcy1iYXJfYmFyLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRwcm9ncmVzcy1iYXJfYmFyLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRwcm9ncmVzcy1iYXJfYmFyLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLl9hY3RpdmUsXG4gICAgICAgICYuX2NvbXBsZXRlIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmVzcy1iYXJfY29tcGxldGVkLXN0ZXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2luZGljYXRvci13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFyX2NvbXBsZXRlZC1zdGVwLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLl9jb21wbGV0ZSB7XG4gICAgICAgICAgICAjeyRyb290fV9faW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICRwcm9ncmVzcy1iYXJfY29tcGxldGVkLXN0ZXAtaW5kaWNhdG9yLWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sYXB0b3BcIikge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2luZGljYXRvci13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByb2dyZXNzLWJhcl9zdGVwLWJhY2tncm91bmQtaG92ZXItY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFyX3N0ZXAtYmFja2dyb3VuZC1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFyX3N0ZXAtYmFja2dyb3VuZC1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbmRpY2F0b3Itd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogJHByb2dyZXNzLWJhcl9pbmRpY2F0b3Itd2lkdGg7XG4gICAgICAgIGhlaWdodDogJHByb2dyZXNzLWJhcl9pbmRpY2F0b3ItaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3Jlc3MtYmFyX3VuY29tcGxldGVkLXN0ZXAtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9ncmVzcy1iYXJfaW5kaWNhdG9yLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICRwcm9ncmVzcy1iYXJfaW5kaWNhdG9yLWZvbnQtc2l6ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcHJvZ3Jlc3MtYmFyX2luZGljYXRvci1ib3JkZXItcmFkaXVzO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJl9faW5kaWNhdG9yIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJHByb2dyZXNzLWJhcl9pbmRpY2F0b3ItY29sb3I7XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0uX2FjdGl2ZSAmLFxuICAgICAgICAjeyRyb290fV9faXRlbS5fY29tcGxldGUgJiB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2dyZXNzLWJhcl9pbmRpY2F0b3ItYWN0aXZlLW9yLWNvbXBsZXRlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBwcm9ncmVzcy1iYXI7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKHByb2dyZXNzLWJhcik7XG4gICAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0tdGV4dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkcHJvZ3Jlc3MtYmFyX3RleHQtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2dyZXNzLWJhcl90ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4zcmVtO1xuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLl9hY3RpdmUgJixcbiAgICAgICAgI3skcm9vdH1fX2l0ZW0uX2NvbXBsZXRlICYge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9ncmVzcy1iYXJfYWN0aXZlLW9yLWNvbXBsZXRlZC10ZXh0LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy10YWJzIHtcbiAgYm94LXNoYWRvdzogMXB4IDNweCAzcmVtIDAgcmdiYSgzMywgMzMsIDMzLCAwLjI4KTsgfVxuICAuY3MtdGFicy0tc3RvcmUtcGlja3VwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLXRhYnMtLXN0b3JlLXBpY2t1cDphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3gtc2hhZG93OiAxcHggM3B4IDNyZW0gMCByZ2JhKDMzLCAzMywgMzMsIDAuMjgpO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgY29udGVudDogXCJcIjsgfSB9XG4gIC5jcy10YWJzLS1iYXIge1xuICAgIG1hcmdpbjogMCAwIDAgLTEuNXJlbTtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC5jcy10YWJzX190cmlnZ2VycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RyaWdnZXJzIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgICNzdG9yZS1waWNrdXAgfiAjc2hpcHBpbmcgLmNzLXRhYnNfX3RyaWdnZXJzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXRhYnNfX3RpdGxlIHtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNXB4IDAgIzY5Njk2OTtcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICBwYWRkaW5nLXRvcDogMC4ycmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC4ycmVtOyB9XG4gICAgLmNzLXRhYnNfX3RpdGxlLS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluayB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rIHtcbiAgICAgICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgICAgICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluazphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgei1pbmRleDogMzsgfVxuICAgICAgICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLS1hY3RpdmUgLmNzLXRhYnNfX3RpdGxlLWxpbms6dmlzaXRlZCwgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluazpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAgICAgICAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluazp2aXNpdGVkLCAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluazpob3ZlciwgLmNzLXRhYnNfX3RpdGxlLS1hY3RpdmUgLmNzLXRhYnNfX3RpdGxlLWxpbms6YWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtLWFjdGl2ZSAuY3MtdGFic19fdGl0bGUtbGluazp2aXNpdGVkLCAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rOmhvdmVyLCAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS0tYWN0aXZlIC5jcy10YWJzX190aXRsZS1saW5rOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogIzIxMjEyMTsgfVxuICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhciwgY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZTpub3QoLmNzLXRhYnNfX3RpdGxlLS1hY3RpdmUpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZDsgfVxuICAgICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGU6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7IH1cbiAgICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4OyB9XG4gIC5jcy10YWJzX190aXRsZS1saW5rIHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDRyZW07XG4gICAgaGVpZ2h0OiA0cmVtO1xuICAgIHBhZGRpbmc6IDAuMXJlbSAxcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy10YWJzX190aXRsZS1saW5rIHtcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDJyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtdGFic19fdGl0bGUtbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogNS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDUuNXJlbTsgfSB9XG4gICAgLmNzLXRhYnNfX3RpdGxlLWxpbms6aG92ZXIsIC5jcy10YWJzX190aXRsZS1saW5rOmFjdGl2ZSwgLmNzLXRhYnNfX3RpdGxlLWxpbms6Zm9jdXMsIC5jcy10YWJzX190aXRsZS1saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtdGFic19fdGl0bGUtbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS1saW5rIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBwYWRkaW5nOiAwLjZyZW0gMC41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLWxpbmsge1xuICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAxLjVyZW07IH0gfVxuICAgICAgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtbGluazpob3ZlciwgLmNzLXRhYnMtLWJhciAuY3MtdGFic19fdGl0bGUtbGluazphY3RpdmUsIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLWxpbms6Zm9jdXMsIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLWxpbms6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC5jcy10YWJzLS1iYXIgLmNzLXRhYnNfX3RpdGxlLXNwYW46bm90KDplbXB0eSk6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIihcIjsgfVxuICAuY3MtdGFicy0tYmFyIC5jcy10YWJzX190aXRsZS1zcGFuOm5vdCg6ZW1wdHkpOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIilcIjsgfVxuICAuY3MtdGFic19fY29udGVudCB7XG4gICAgcGFkZGluZzogMnJlbTsgfVxuXG4jc3RvcmUtcGlja3VwIH4gI3NoaXBwaW5nICN0YWItY3VzdG9tZXIge1xuICBkaXNwbGF5OiBub25lOyB9XG4iLCJAaW1wb3J0IFwiY29uZmlnL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcInZlbmRvcnMvaW5jbHVkZS1tZWRpYVwiO1xuXG4kdGFic19ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJHRhYnNfaW5zZXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDVweCAwICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiR0YWJzX2JvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHRhYnNfdGFiLXRpdGxlLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiR0YWJzX3RhYi10aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHRhYnNfdGFiLXRpdGxlLWZvbnQtc2l6ZTogMS44cmVtICFkZWZhdWx0O1xuJHRhYnNfdGFiLXRpdGxlLWZvbnQtc2l6ZS1tb2JpbGU6IDEuMnJlbSAhZGVmYXVsdDtcbiR0YWJzX3RhYi1hY3RpdmUtdGl0bGUtY29sb3I6ICRrbWFfY29sb3JfYmxhY2sgIWltcG9ydGFudCAhZGVmYXVsdDtcbiR0YWJzX3RhYi10aXRsZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuJHRhYnNfdGFiLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiR0YWJzX2NvbnRlbnQtcGFkZGluZzogMnJlbSAhZGVmYXVsdDtcblxuJHRhYnNfaGVpZ2h0OiA1LjVyZW0gIWRlZmF1bHQ7XG4kdGFic19oZWlnaHQtbW9iaWxlOiA0cmVtICFkZWZhdWx0O1xuXG4kdGFicy0tYmFyX21hcmdpbjogMCAwIDAgLSN7JHBhZ2VfZWRnZS1ndXR0ZXJ9ICFkZWZhdWx0O1xuJHRhYnMtLWJhcl9wYWRkaW5nOiAwICRwYWdlX2VkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJHRhYnMtLWJhcl90YWItdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiR0YWJzLS1iYXJfdGFiLXRpdGxlLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kdGFicy0tYmFyX3RhYi10aXRsZS1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiR0YWJzLS1iYXJfdGFiLWJvcmRlci10b3AtcmFkaXVzOiA1cHggIWRlZmF1bHQ7XG5cbi4jeyRuc310YWJzIHtcbiAgICAkcm9vdDogJjtcbiAgICBib3gtc2hhZG93OiAkdGFic19ib3gtc2hhZG93O1xuXG4gICAgJi0tc3RvcmUtcGlja3VwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpZiAkdGFic19ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICR0YWJzX2JveC1zaGFkb3c7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWJhciB7XG4gICAgICAgIG1hcmdpbjogJHRhYnMtLWJhcl9tYXJnaW47XG4gICAgICAgIHBhZGRpbmc6ICR0YWJzLS1iYXJfcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHRhYnNfYm9yZGVyO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgICZfX3RyaWdnZXJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICN7JHJvb3R9LS1iYXIgJiB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAjc3RvcmUtcGlja3VwIH4gI3NoaXBwaW5nICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZmxleC1iYXNpczogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkdGFic190YWItdGl0bGUtYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogJHRhYnNfaW5zZXQtYm94LXNoYWRvdztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMC4ycmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuMnJlbTtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHRhYnNfdGFiLWFjdGl2ZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X190aXRsZS1saW5rIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0YWJzX3RhYi1hY3RpdmUtdGl0bGUtY29sb3I7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fS0tYmFyICYge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRhYnMtLWJhcl90YWItdGl0bGUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJzX3RhYi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFicy0tYmFyX3RhYi10aXRsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0YWJzX3RhYi1hY3RpdmUtdGl0bGUtY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH0tLWJhciAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFicy0tYmFyX3RhYi10aXRsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1iYXIgJiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogJHRhYnNfYm9yZGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyLCBjb2xvciAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgICAgICY6bm90KCN7JHJvb3R9X190aXRsZS0tYWN0aXZlKTpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkdGFic190YWItdGl0bGUtYmFja2dyb3VuZCwgNSUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICR0YWJzLS1iYXJfdGFiLWJvcmRlci10b3AtcmFkaXVzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkdGFicy0tYmFyX3RhYi1ib3JkZXItdG9wLXJhZGl1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RpdGxlLWxpbmsge1xuICAgICAgICBjb2xvcjogJHRhYnNfdGFiLXRpdGxlLWNvbG9yO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkdGFic19oZWlnaHQtbW9iaWxlO1xuICAgICAgICBoZWlnaHQ6ICR0YWJzX2hlaWdodC1tb2JpbGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBmb250LXdlaWdodDogJHRhYnNfdGFiLXRpdGxlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBmb250LXNpemU6ICR0YWJzX3RhYi10aXRsZS1mb250LXNpemUtbW9iaWxlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXBob25lTGdcIikge1xuICAgICAgICAgICAgcGFkZGluZzogMC4xcmVtICR0YWJzX2NvbnRlbnQtcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkdGFic190YWItdGl0bGUtZm9udC1zaXplO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJzX2hlaWdodDtcbiAgICAgICAgICAgIGhlaWdodDogJHRhYnNfaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHRhYnNfdGFiLXRpdGxlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tYmFyICYge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgICAgICAgICBmb250LXNpemU6ICR0YWJzLS1iYXJfdGFiLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHRhYnMtLWJhcl90YWItdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49cGhvbmVMZ1wiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC44cmVtIDEuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6YWN0aXZlLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0YWJzLS1iYXJfdGFiLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUtc3Bhbjpub3QoOmVtcHR5KSB7XG4gICAgICAgICN7JHJvb3R9LS1iYXIgJiB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIoXCI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiKVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6ICR0YWJzX2NvbnRlbnQtcGFkZGluZztcbiAgICB9XG59XG5cbiNzdG9yZS1waWNrdXAgfiAjc2hpcHBpbmcgI3RhYi1jdXN0b21lciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5jcy1xdHktaW5jcmVtZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLmNzLXF0eS1pbmNyZW1lbnQtLXdpc2hsaXN0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgY29sb3I6ICMzMzMzMzM7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB3aWR0aDogMDtcbiAgICBtaW4td2lkdGg6IDJjaDtcbiAgICBmbGV4OiAxO1xuICAgIG9yZGVyOiAyOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dC5tYWdlLWVycm9yLCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmYwMDE4OyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0LnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGNvbG9yOiAjMzMzMzMzO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0LCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZGNkY2RjOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0Lm1hZ2UtZXJyb3Ige1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZTQxZjEyICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dC5tYWdlLWVycm9yIH4gLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2U0MWYxMiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0ICsgLm1hZ2UtZXJyb3Ige1xuICAgICAgb3JkZXI6IDM7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXM7XG4gICAgbWF4LXdpZHRoOiAzcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZsZXg6IDEgMSAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOnZpc2l0ZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246dmlzaXRlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmZvY3VzICoge1xuICAgICAgICBmaWxsOiAjMzI0ZGNmOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjpob3ZlciwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNGRjZjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMjRkY2Y7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246aG92ZXIgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUgKiB7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kZWNyZW1lbnQge1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0taW5jcmVtZW50IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6aG92ZXIsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOnZpc2l0ZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6aG92ZXIgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6dmlzaXRlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpmb2N1cyAqIHtcbiAgICAgICAgICBmaWxsOiAjZGNkY2RjOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2ljb24tLWRlY3JlbWVudCB7XG4gICAgICB3aWR0aDogMS4ycmVtO1xuICAgICAgaGVpZ2h0OiAwLjNyZW07IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faWNvbi0taW5jcmVtZW50IHtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDEuMnJlbTsgfVxuXG4uY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjtcbiAgYm9yZGVyLWNvbG9yOiAjYzEyNzJmOyB9XG5cbi5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkIHN2ZyBwYXRoIHtcbiAgZmlsbDogI2Q1ZDVkNSAhaW1wb3J0YW50OyB9XG5cbi5jcy1xdHktaW5jcmVtZW50IHN2ZyBwYXRoIHtcbiAgZmlsbDogIzAwMDAwMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4kcXR5LWluY3JlbWVudC0taW4td2lzaGxpc3RfaGlkZTogdHJ1ZSAhZGVmYXVsdDtcblxuJHF0eS1pbmNyZW1lbnRfaW5wdXQtZm9udC1zaXplOiBpbmhlcml0ICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWVycm9yLWJvcmRlci1jb2xvcjogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2lucHV0LS1ob3Zlci1ib3JkZXI6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9idXR0b24tcG9zaXRpb24tb2Zmc2V0OiAxcHggIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24td2lkdGg6IDNyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJhY2tncm91bmQ6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1ib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXIgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2ljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDogJGNvbG9yX2JhY2tncm91bmQtNjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtaGVpZ2h0OiAwLjNyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC1oZWlnaHQ6ICRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcblxuLiN7JG5zfXF0eS1pbmNyZW1lbnQge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgQGlmICRxdHktaW5jcmVtZW50LS1pbi13aXNobGlzdF9oaWRlIHtcbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgZm9udC1zaXplOiAkcXR5LWluY3JlbWVudF9pbnB1dC1mb250LXNpemU7XG4gICAgICAgIHRleHQtYWxpZ246ICRxdHktaW5jcmVtZW50X2lucHV0LXRleHQtYWxpZ247XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBtaW4td2lkdGg6IDJjaDtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3JkZXI6IDI7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgICAgICY6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXR5LWluY3JlbWVudF9pbnB1dC0taG92ZXItYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWVycm9yLWJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICB+ICN7JHJvb3R9X19idXR0b24ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWVycm9yLWJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyAubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBib3JkZXItY29sb3IgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgZmlsbCAkcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIG1heC13aWR0aDogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLXdpZHRoO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgZmxleDogMSAxICgjeyRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aCAtIDF9KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkcXR5LWluY3JlbWVudF9pY29uLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkcXR5LWluY3JlbWVudF9pY29uLS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGVjcmVtZW50IHtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluY3JlbWVudCB7XG4gICAgICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1vcGFjaXR5O1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICAmLS1kZWNyZW1lbnQge1xuICAgICAgICAgICAgd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluY3JlbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ+Q3JlYXRpdmVzaG9wL2NvbXBvbmVudHMvcXR5LWluY3JlbWVudC9xdHktaW5jcmVtZW50XCI7XG5cbi4jeyRuc31xdHktaW5jcmVtZW50IHtcbiAgICAmX19idXR0b24ge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICB9XG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIHN2ZyBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAka21hX2NvbG9yX2dyZXktMzAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ZnIHBhdGgge1xuICAgICAgICBmaWxsOiAka21hX2NvbG9yX2JsYWNrO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWZvcm0sIC5jcy1mb3JtX19maWVsZHNldCB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jcy1mb3JtX19maWVsZCArIC5jcy1mb3JtX19maWVsZCB7XG4gIG1hcmdpbi10b3A6IDFlbTsgfVxuXG4uY3MtZm9ybS0tZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjY7IH1cblxuLmNzLWZvcm1fX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5jcy1mb3JtX19idXR0b24sIC5jcy1mb3JtX19idXR0b246dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMi42cmVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1mb3JtX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZm9ybV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIC5jcy1mb3JtX19idXR0b246dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1mb3JtX19idXR0b246dmlzaXRlZDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1mb3JtX19idXR0b246dmlzaXRlZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2EyMDEwOTsgfVxuICAuY3MtZm9ybV9fYnV0dG9uW2Rpc2FibGVkXSwgLmNzLWZvcm1fX2J1dHRvbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuXG4uY3MtZm9ybV9fYnV0dG9uLXNwYW4ge1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4uY3MtZm9ybV9fYnV0dG9uLWljb24ge1xuICBtYXgtd2lkdGg6IDFlbTtcbiAgbWF4LWhlaWdodDogMS42cmVtO1xuICB6LWluZGV4OiAyO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5mb3JtLFxuLmZvcm0gLmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmZvcm0gLmZpZWxkICsgLmZpZWxkIHtcbiAgbWFyZ2luLXRvcDogMWVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGZvcm1fYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGZvcm1fYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31mb3JtIHtcbiAgICAmLFxuICAgICZfX2ZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuLmZvcm0ge1xuICAgICYsXG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmZpZWxkIHtcbiAgICAgICAgKyAuZmllbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1zdGlja3ktYmxvY2sge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXN0aWNreS1ibG9jayB7XG4gICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgei1pbmRleDogMTA7XG4gICAgICB0b3A6IDFlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXN0aWNreS1ibG9jay0tcGRwIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMTVweCAtIDAuNXJlbSk7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlIC5jcy1zdGlja3ktYmxvY2stLXBkcCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXN0aWNreS1ibG9jay0tcGRwIHtcbiAgICAgIHRvcDogM3JlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTVweDsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgLmNzLXN0aWNreS1ibG9jay0tcGRwIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIzMHB4KSB7XG4gICAgLmNzLXN0aWNreS1ibG9jay0tcGRwIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXN0aWNreS1ibG9jay0tbm8tbW9iaWxlIHtcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICB0b3A6IDguNXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXN0aWNreS1ibG9jay0tbm8tbW9iaWxlIHtcbiAgICAgIHRvcDogMS41cmVtOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvc3RpY2t5LWJsb2NrL21peGluJztcblxuLiN7JG5zfXN0aWNreS1ibG9jayB7XG4gICAgQGluY2x1ZGUgc3RpY2t5QmxvY2s7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICYtLXBkcCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMTVweCAtIDAuNXJlbSk7XG5cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtYnVuZGxlICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHRvcDogM3JlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcblxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIzMHB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1uby1tb2JpbGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICAgICAgdG9wOiA4LjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgdG9wOiAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gc3RpY2t5QmxvY2soKSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgdG9wOiAxZW07XG4gICAgfVxufVxuIiwiLyoqIFN0eWxlcyBmb3JtIF90YWJsZXMubGVzcyBvZiB0aGVtZSBibGFuayBhcmUgbW92ZWQgaGVyZS5cbiAgICogRm9yIHNvbWUgdGFibGVzIHRoZXJlIGlzIG1vYmlsZSBsYXlvdXQgYXBwbGllZCBhbHNvIGZvciB0YWJsZXQgcmVzb2x1dGlvbnNcbiAgICogVmFyaWFibGVzIGZvciB0eXBvZ3JhcHksIGNvbG9ycywgYm9yZGVyIGV0Yy4gYXJlIGFkZGVkXG4qL1xuXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUvbWl4aW4nO1xuXG4kdGFibGVfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdGFibGVfYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kdGFibGVfcm93LWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHRhYmxlX2NvbHVtbi1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kdGFibGVfZXZlbi1yb3ctYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiR0YWJsZV9oZWFkLWJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZC1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtNSAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZF9mb250LXNpemUtLW1vYmlsZTogMS40cmVtICFkZWZhdWx0O1xuJHRhYmxlX2hlYWRfbW92ZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG5cbiR0YWJsZV9pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kdGFibGVfaXRlbS1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFkZWZhdWx0O1xuJHRhYmxlX2l0ZW0tZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiR0YWJsZV9pdGVtLWxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuJHRhYmxlX2l0ZW0tcGFkZGluZzogMC44cmVtIDFyZW0gIWRlZmF1bHQ7XG4kdGFibGVfYWN0aW9ucy1saW5rcy1zZXBhcmF0b3I6IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXG4udGFibGUtd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYuY2FydCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgJiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZ3JvdXBlZCB7XG4gICAgICAgIHRib2R5Omxhc3QtY2hpbGQge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50YWJsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlX2JvcmRlci1ib3R0b207XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZV9iYWNrZ3JvdW5kO1xuXG4gICAgJiA+IGNhcHRpb24ge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogJHRhYmxlX2l0ZW0tcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICR0YWJsZV9oZWFkLWJvcmRlci1ib3R0b207XG5cbiAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICR0YWJsZV9oZWFkLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJHRhYmxlX2hlYWQtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0YWJsZV9oZWFkLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFibGVfaXRlbS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHRhYmxlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlX3Jvdy1ib3JkZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR0YWJsZV9jb2x1bW4tYm9yZGVyO1xuXG4gICAgICAgICAgICAgICAgJi5hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGVfcm93LWJvcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGEgKyBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkdGFibGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR0YWJsZV9hY3Rpb25zLWxpbmtzLXNlcGFyYXRvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgICAgICAgLmFjY291bnQgJiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR0YWJsZV9ldmVuLXJvdy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRmb290IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfZ2FsbGVyeTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1hcmsge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAuYW1vdW50IHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWV4Y2x1ZGluZy10YXgsXG4gICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgLml0ZW1zLXF0eSxcbiAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICBmb250LXNpemU6ICR0YWJsZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICR0YWJsZV9pdGVtLWxpbmUtaGVpZ2h0O1xuICAgIH1cbn1cblxuLy8gIE1vYmlsZSBsYXlvdXRcbkBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgIC50YWJsZS13cmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCk7XG5cbiAgICAgICAgLnRhYmxlIHtcbiAgICAgICAgICAgICY6bm90KC5jb21wYXJpc29uKSB7XG4gICAgICAgICAgICAgICAgJjpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdGFibGUtbW9iaWxlLWxheW91dChcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX2NvbG9yOiAkdGFibGVfaGVhZC1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX21vdmUtb24tbW9iaWxlOiAkdGFibGVfaGVhZF9tb3ZlLW9uLW1vYmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlOiAkdGFibGVfaGVhZF9mb250LXNpemUtLW1vYmlsZVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJHRhYmxlX2hlYWRfbW92ZS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0Ym9keSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHtcbiAgICAgICAgdGhlYWQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRib2R5IHRoIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkgdGgsXG4gICAgICAgIHRib2R5IHRkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU29tZSB0YWJsZXMgZGlzcGxheSBtb2JpbGUgbGF5b3V0IGFsc28gb24gdGFibGV0IHJlc29sdXRpb25cbi50YWJsZS13cmFwcGVyLmNhcnQsXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCk7XG5cbiAgICAudGFibGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLyoqIFN0eWxlcyBmb3JtIF90YWJsZXMubGVzcyBvZiB0aGVtZSBibGFuayBhcmUgbW92ZWQgaGVyZS5cbiAgICogRm9yIHNvbWUgdGFibGVzIHRoZXJlIGlzIG1vYmlsZSBsYXlvdXQgYXBwbGllZCBhbHNvIGZvciB0YWJsZXQgcmVzb2x1dGlvbnNcbiAgICogVmFyaWFibGVzIGZvciB0eXBvZ3JhcHksIGNvbG9ycywgYm9yZGVyIGV0Yy4gYXJlIGFkZGVkXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4udGFibGUtd3JhcHBlciB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAudGFibGUtd3JhcHBlciB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUtd3JhcHBlci5jYXJ0IHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7IH0gfVxuICAudGFibGUtd3JhcHBlci5ncm91cGVkIHRib2R5Omxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLnRhYmxlIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC50YWJsZSA+IGNhcHRpb24ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRkIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDAuOHJlbSAxcmVtOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGhlYWQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRoZWFkIHRoIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzIxMjEyMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zIGEgKyBhOmJlZm9yZSB7XG4gICAgICAgIG1hcmdpbjogMCAwLjdyZW0gMCAwLjVyZW07XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5hY2NvdW50IC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsgfSB9XG4gICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCAubWFyayB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCAuYW1vdW50IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG4gIC50YWJsZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgLnRhYmxlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAudGFibGUgLml0ZW1zLXF0eSxcbiAgLnRhYmxlIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLnRhYmxlLXdyYXBwZXIge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjJyZW07IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpiZWZvcmUge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSBcIjogXCI7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zOmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIC8qIDEgKi8gfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0aCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIHdpZHRoOiA3MCU7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0ZCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICB3aWR0aDogMzAlOyB9XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgdHIge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICAgICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHRib2R5IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwLjVyZW07IH1cbiAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kYXRhLXRhYmxlLWRlZmluaXRpb24tbGlzdCB0Ym9keSB0aCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRoLFxuICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3QgdGJvZHkgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLnRhYmxlLXdyYXBwZXIuY2FydCxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSxcbiAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlOmxhc3QtY2hpbGQsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTsgfVxuICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRoZWFkLFxuICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGJvZHkgdGQsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBwYWRkaW5nOiAwLjJyZW07IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZDpiZWZvcmUsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQ6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSBcIjogXCI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICMyMTIxMjE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkLmFjdGlvbnMsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQuYWN0aW9ucyB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZC5hY3Rpb25zOmJlZm9yZSxcbiAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Ym9keSB0ZC5hY3Rpb25zOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Zm9vdCxcbiAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRoLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRoIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgd2lkdGg6IDcwJTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdGQsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3QgdGQge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgd2lkdGg6IDMwJTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdHIsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3QgdHIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGQsXG4gICAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTsgfSB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnRhYmxlLXdyYXBwZXIgLmFjdGlvbnMge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC50YWJsZS13cmFwcGVyIC5hY3Rpb25zIC5hY3Rpb24ge1xuICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC50YWJsZS13cmFwcGVyIC5hY3Rpb25zIC5hY3Rpb246OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5oZG14X190aWNrZXRzIC5tZXNzYWdlLmluZm8uZW1wdHkge1xuICBwYWRkaW5nOiAxLjFyZW0gNC41cmVtIDEuMXJlbTsgfVxuXG4uaGRteF9fdGlja2V0LXJlcGx5IC5hY3Rpb25zLXRvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMzBlbSkge1xuICAgIC5oZG14X190aWNrZXQtcmVwbHkgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAyMHB4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG5cbi5oZG14X190aWNrZXQtcmVwbHkgLnNlY29uZGFyeSA+IGJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxLjJyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDI3cHg7XG4gIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICBjb2xvcjogIzMzMzMzMztcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIG1pbi13aWR0aDogMTJyZW07IH1cbiAgLmhkbXhfX3RpY2tldC1yZXBseSAuc2Vjb25kYXJ5ID4gYnV0dG9uOmVuYWJsZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuaGRteF9fdGlja2V0LXJlcGx5IC5zZWNvbmRhcnkgPiBidXR0b246aG92ZXIsIC5oZG14X190aWNrZXQtcmVwbHkgLnNlY29uZGFyeSA+IGJ1dHRvbjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjYzEyNzJmO1xuICAgIGNvbG9yOiAjYzEyNzJmOyB9XG4gIC53aXNobGlzdC1pbmRleC1pbmRleCAuaGRteF9fdGlja2V0LXJlcGx5IC5zZWNvbmRhcnkgPiBidXR0b24ge1xuICAgIHotaW5kZXg6IDE7IH1cblxuLmhkbXhfX3RpY2tldC1yZXBseSA+IGJ1dHRvbi5hY3Rpb24udXBkYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uaGRteF9fdGlja2V0LXN1bW1hcnkge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogNjUlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgLmhkbXhfX3RpY2tldC1zdW1tYXJ5IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmhkbXhfX3RpY2tldC1zdW1tYXJ5IHRoIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5oZG14X190aWNrZXQtc3VtbWFyeSB0ZCB7XG4gICAgd2lkdGg6IDUwJTtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyB9XG5cbi5oZG14X19tZXNzYWdlIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggM3B4ICNlNWU1ZTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDEuNXJlbTsgfVxuXG4uaGRteC1tZXNzYWdlX19ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtIDAgIWltcG9ydGFudDsgfVxuXG4uaGRteF9fdGlja2V0cy10YWJsZSB7XG4gIG1hcmdpbi10b3A6IDNyZW07IH1cbiAgLmhkbXhfX3RpY2tldHMtdGFibGUgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjODc4Nzg3OyB9XG4gICAgLmhkbXhfX3RpY2tldHMtdGFibGUgdHI6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgLmhkbXhfX3RpY2tldHMtdGFibGUgdGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfSB9XG4gIC5oZG14X190aWNrZXRzLXRhYmxlIC5zdWJqZWN0IHtcbiAgICB3aWR0aDogMTg1cHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLnN1YmplY3Qge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5oZG14X190aWNrZXRzLXRhYmxlIC5kZXRhaWxzIHtcbiAgICB3aWR0aDogMTUwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLmRldGFpbHM6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLmRldGFpbHMgYSB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIHRyYW5zaXRpb246IDAuM3MgYWxsO1xuICAgICAgY29sb3I6ICNjMTI3MmY7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0NXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuaGRteF9fdGlja2V0cy10YWJsZSAuZGV0YWlscyBhOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLmhkbXhfX3RpY2tldHMtdGFibGUgLmRldGFpbHMgYTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPSczNCcgaGVpZ2h0PScyNCcgZmlsbD0nJTIzYzEyNzJmJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGwtcnVsZT0nZXZlbm9kZCcgY2xpcC1ydWxlPSdldmVub2RkJyUzRSUzQ3BhdGggZD0nTTMxLjg4MyAxMmwtNy41MjcgNi4yMzUuNjQ0Ljc2NSA5LTcuNTIxLTktNy40NzktLjY0NS43NjQgNy41MjkgNi4yMzZoLTMxLjg4NHYxaDIxLjg4M3onLyUzRSUzQy9zdmclM0VcIik7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgcmlnaHQ6IC00NXB4OyB9XG5cbi5oZG14X190aWNrZXQtdmlldyAuYmFjay1saW5rIGEge1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgdHJhbnNpdGlvbjogMC4zcyBhbGw7XG4gIGNvbG9yOiAjYzEyNzJmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBtYXJnaW4tcmlnaHQ6IDQ1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaGRteF9fdGlja2V0LXZpZXcgLmJhY2stbGluayBhOmhvdmVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2MxMjcyZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmhkbXhfX3RpY2tldC12aWV3IC5iYWNrLWxpbmsgYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzM0JyBoZWlnaHQ9JzI0JyBmaWxsPSclMjNjMTI3MmYnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnJTNFJTNDcGF0aCBkPSdNMzEuODgzIDEybC03LjUyNyA2LjIzNS42NDQuNzY1IDktNy41MjEtOS03LjQ3OS0uNjQ1Ljc2NCA3LjUyOSA2LjIzNmgtMzEuODg0djFoMjEuODgzeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgcmlnaHQ6IC00NXB4OyB9XG4gIC5oZG14X190aWNrZXQtdmlldyAuYmFjay1saW5rIGEgc21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNhcmRfX2FjdGlvbiBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIGNvbG9yOiAjYzEyNzJmICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiB0YWJsZS1tb2JpbGUtbGF5b3V0LWhvb2soKSB7XG59XG5cbkBtaXhpbiB0YWJsZS13cmFwcGVyLW1vYmlsZS1sYXlvdXQtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUvaG9vayc7XG5cbiRoZWFkX2NvbG9yOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJGhlYWRfbW92ZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kaGVhZF9mb250LXNpemUtLW1vYmlsZTogMS40cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gdGFibGUtbW9iaWxlLWxheW91dChcbiAgICAkaGVhZF9jb2xvcjogJGhlYWRfY29sb3IsXG4gICAgJGhlYWRfbW92ZS1vbi1tb2JpbGU6ICRoZWFkX21vdmUtb24tbW9iaWxlLFxuICAgICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlOiAkaGVhZF9mb250LXNpemUtLW1vYmlsZVxuKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgIH1cblxuICAgIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICB0Ym9keSB0ZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogJGhlYWRfZm9udC1zaXplLS1tb2JpbGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMnJlbTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaGVhZF9tb3ZlLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGgpICc6ICc7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRoZWFkX2NvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aW9ucyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX2FsdG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRmb290IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICB9XG4gICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICB0aCxcbiAgICAgICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQtaG9vaygpO1xufVxuXG5AbWl4aW4gdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCkge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gVG8gaGlkZSB1bm5lY2Vzc2FyeSBob3Jpem9udGFsIHNjcm9sbGJhciBpbiBTYWZhcmlcblxuICAgIEBpbmNsdWRlIHRhYmxlLXdyYXBwZXItbW9iaWxlLWxheW91dC1ob29rKCk7XG59XG4iLCJAaW1wb3J0IFwifkNyZWF0aXZlc2hvcC9jb21wb25lbnRzL3RhYmxlL3RhYmxlLnNjc3NcIjtcbkBpbXBvcnQgXCJjb25maWcvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29uZmlnL2NvbG9yc1wiO1xuQGltcG9ydCBcImNvbmZpZy9taXhpbnNcIjtcblxuLnRhYmxlLXdyYXBwZXIge1xuICAuYWN0aW9ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAuYWN0aW9uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFpnxYJvc3plbmlhIC0gcHJvZmlsIHXFvHl0a293bmlrYVxuLmhkbXgge1xuICAmX190aWNrZXRzIHtcbiAgICAubWVzc2FnZS5pbmZvLmVtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDEuMXJlbSA0LjVyZW0gMS4xcmVtO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpY2tldC1yZXBseSB7XG4gICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjBweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2Vjb25kYXJ5ID4gYnV0dG9uIHtcbiAgICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IDEuMnJlbSAhaW1wb3J0YW50O1xuICAgICAgQGluY2x1ZGUga21hLWJ1dHRvbi0tc2Vjb25kYXJ5O1xuICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgLndpc2hsaXN0LWluZGV4LWluZGV4ICYge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gYnV0dG9uLmFjdGlvbi51cGRhdGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX190aWNrZXQtc3VtbWFyeSB7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB3aWR0aDogNjUlO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIHRoIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuICAgIHRkIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbiAgfVxuXG4gICZfX21lc3NhZ2Uge1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggNXB4IDNweCAka21hX2NvbG9yX2dyZXktMjAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICB9XG5cbiAgJi1tZXNzYWdlX19ib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMC41cmVtIDAgIWltcG9ydGFudDtcbiAgfVxuXG4gICZfX3RpY2tldHMtdGFibGUge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG5cbiAgICB0ciB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGttYV9jb2xvcl9ncmV5LTUwMDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICB9XG4gICAgfVxuICAgIC5zdWJqZWN0IHtcbiAgICAgIHdpZHRoOiAxODVweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1sYXB0b3BcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmRldGFpbHMge1xuICAgICAgd2lkdGg6IDE1MHB4O1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PWxhcHRvcFwiKSB7XG4gICAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUga21hLWxpbms7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fdGlja2V0LXZpZXcge1xuICAgIC5iYWNrLWxpbmsgYSB7XG4gICAgICBAaW5jbHVkZSBrbWEtbGluaztcblxuICAgICAgc21hbGwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2FyZF9fYWN0aW9uIGJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIFxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWxvZ2luLW9yLWd1ZXN0IC5jcy1jaGVja291dF9fc3RlcC10YWJzIC5jcy10YWJzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1sb2dpbi1vci1ndWVzdCAuY3MtY2hlY2tvdXRfX3N0ZXAtdGFicyAuY3MtdGFic19fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLmNzLWxvZ2luLW9yLWd1ZXN0IC5jcy1jaGVja291dF9fc3RlcC10YWJzIC5jcy10YWJzX190cmlnZ2VycyB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmNzLWNoZWNrb3V0X19zaWRlYmFyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAub3BjLXdyYXBwZXIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5ibG9jay1jdXN0b21lci1sb2dpbiB7XG4gIG1hcmdpbi10b3A6IDRyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5ibG9jay1jdXN0b21lci1sb2dpbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cblxuLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmxvZ2luLWNvbnRhaW5lciAuZmllbGRzZXQgPiAuZmllbGQgPiAuY29udHJvbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmZpZWxkc2V0OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNvbnRpbnVlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNvbnRpbnVlOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jb250aW51ZSwgLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmxvZ2luLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY29udGludWU6dmlzaXRlZCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMi42cmVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMXJlbSAyLjNyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIHotaW5kZXg6IDU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzEyNzJmOyB9XG4gICAgICAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jb250aW51ZTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNvbnRpbnVlOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmxvZ2luLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY29udGludWU6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmxvZ2luLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uY29udGludWU6dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNvbnRpbnVlOnZpc2l0ZWQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jb250aW51ZTp2aXNpdGVkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhMjAxMDk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTIwMTA5OyB9XG4gICAgICAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5jb250aW51ZVtkaXNhYmxlZF0sIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNvbnRpbnVlOnZpc2l0ZWRbZGlzYWJsZWRdIHtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlNWU1O1xuICAgICAgICBjb2xvcjogIzg3ODc4NztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTVlNTsgfVxuICAgIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmNvbnRpbnVlIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmxvZ2luLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uYWN0aW9uLWxvZ2luIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmxvZ2luLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uYWN0aW9uLWxvZ2luOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5hY3Rpb24tbG9naW4sIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmFjdGlvbi1sb2dpbjp2aXNpdGVkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuM3JlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7IH1cbiAgICAgIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmFjdGlvbi1sb2dpbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmFjdGlvbi1sb2dpbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmFjdGlvbi1sb2dpbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5hY3Rpb24tbG9naW46dmlzaXRlZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmFjdGlvbi1sb2dpbjp2aXNpdGVkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLmxvZ2luLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIC5hY3Rpb24uYWN0aW9uLWxvZ2luOnZpc2l0ZWQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2EyMDEwOTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhMjAxMDk7IH1cbiAgICAgIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmFjdGlvbi1sb2dpbltkaXNhYmxlZF0sIC5jcy1sb2dpbi1vci1ndWVzdC0tYWN0aXZlIC5sb2dpbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLmFjdGlvbi1sb2dpbjp2aXNpdGVkW2Rpc2FibGVkXSB7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtcbiAgICAgICAgY29sb3I6ICM4Nzg3ODc7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNWU1ZTU7IH1cbiAgICAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5hY3Rpb24tbG9naW4gc3BhbiB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuY3MtbG9naW4tb3ItZ3Vlc3QtLWFjdGl2ZSAubG9naW4tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5hY3Rpb24tcmVtaW5kIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cblxuLmNzLWxvZ2luLW9yLWd1ZXN0LS1hY3RpdmUgLm9wYy1lc3RpbWF0ZWQtd3JhcHBlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJGxvZ2luLW9yLWd1ZXN0X2d1ZXN0LWJ1dHRvbi10eXBlOiAncHJpbWFyeScgIWRlZmF1bHQ7XG4kbG9naW4tb3ItZ3Vlc3RfZ3Vlc3QtYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG5cbiRsb2dpbi1vci1ndWVzdF9sb2dpbi1idXR0b24tdHlwZTogJ3ByaW1hcnknICFkZWZhdWx0O1xuJGxvZ2luLW9yLWd1ZXN0X2xvZ2luLWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuXG4uY3MtbG9naW4tb3ItZ3Vlc3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgLmNzLWNoZWNrb3V0IHtcbiAgICAgICAgJl9fc3RlcC10YWJzIHtcbiAgICAgICAgICAgIC5jcy10YWJzIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICZfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZfX3RyaWdnZXJzIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICAuY3MtY2hlY2tvdXQge1xuICAgICAgICAgICAgJl9fc2lkZWJhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE1ha2UgbWFpbiBjb2x1bW4gZmlsbCB0aGUgc3BhY2UgbGVmdCBieSBzaWRlYmFyLlxuICAgICAgICAub3BjLXdyYXBwZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubG9naW4tY29udGFpbmVyIHtcbiAgICAgICAgICAgIC5ibG9jay1jdXN0b21lci1sb2dpbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNHJlbTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5maWVsZHNldCB7XG4gICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGlucHV0cyBhcmUgbm90IHRvIG5hcnJvdy5cbiAgICAgICAgICAgICAgICA+IC5maWVsZCB7XG4gICAgICAgICAgICAgICAgICAgID4gLmNvbnRyb2wge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSGlkZSByZXF1aXJlZCBmaWVsZHMgaW5mbyB0byBhbGlnbiB3aXRoIG5vcm1hbCBsb2dpbiBmb3JtLlxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgICAgICAuYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgJi5jb250aW51ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRsb2dpbi1vci1ndWVzdF9ndWVzdC1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWNvbi1wb3M6ICRsb2dpbi1vci1ndWVzdF9ndWVzdC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRsb2dpbi1vci1ndWVzdF9ndWVzdC1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGljb24tcG9zOiAkbG9naW4tb3ItZ3Vlc3RfZ3Vlc3QtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuYWN0aW9uLWxvZ2luIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGxvZ2luLW9yLWd1ZXN0X2xvZ2luLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpY29uLXBvczogJGxvZ2luLW9yLWd1ZXN0X2xvZ2luLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbG9naW4tb3ItZ3Vlc3RfbG9naW4tYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpY29uLXBvczogJGxvZ2luLW9yLWd1ZXN0X2xvZ2luLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLmFjdGlvbi1yZW1pbmQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5vcGMtZXN0aW1hdGVkLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7O0FDRUE7QUNGQTs7O0FETUE7QURJQTtBQWdCQTs7QUNoQkE7QURWQTs7QUNhQTtBQ2JBOzs7QURpQkE7QURQQTtBQWdCQTs7QUNMQTtBRWZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7O0FBR0E7QUFDQTtBQUVBO0FDakJBO0FEbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7OztBQUlBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFBQTtBQUFBO0FBREE7QUFLQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFRQTtBQVRBO0FBSUE7QUFDQTtBQUNBO0FBTkE7QUFjQTtBQUNBO0FIbEVBOztBQ29FQTtBQ3BFQTs7O0FEd0VBO0FEOURBO0FBZ0JBOztBQ2tEQTtBSTVFQTs7Ozs7Ozs7QUpxRkE7QUtyRkE7QUFTQTtBTlRBOztBQzBGQTtBQzFGQTs7O0FEOEZBO0FEcEZBO0FBZ0JBOztBQ3dFQTtBTTlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBR0E7QUMyQkE7QUFDQTtBQUNBO0FBQ0E7QUQ5QkE7QUNrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUQ5REE7QUM0RUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FEcEZBO0FDZ0dBO0FBR0E7QUFDQTtBQUNBOztBUmpJQTs7QVNFQTtBUEZBOzs7QU9NQTtBVElBO0FBZ0JBOztBU2hCQTtBQ21pQkE7QUMxaUJBO0FBRUE7QUFBQTtBQUNBO0FEdWlCQTtBQ3BpQkE7QUFFQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBWC9CQTs7QVN1Q0E7QVB2Q0E7OztBTzJDQTtBVGpDQTtBQWdCQTs7QVNxQkE7QVQvQ0E7O0FTa0RBO0FQbERBOzs7QU9zREE7QVQ1Q0E7QUFnQkE7O0FTZ0NBO0FUMURBOztBUzZEQTtBUDdEQTs7O0FPaUVBO0FUdkRBO0FBZ0JBOztBUzJDQTtBR25FQTs7QUhzRUE7QUdsRUE7OztBSHNFQTtBRzdEQTs7O0FIaUVBO0FHdkRBOztBSDBEQTtBVG5GQTs7QVNzRkE7QVB0RkE7OztBTzBGQTtBVGhGQTtBQWdCQTs7QVNvRUE7QUkzRkE7O0FKOEZBO0FJMUZBOzs7QUo4RkE7QUlyRkE7OztBSnlGQTtBSS9FQTs7QUprRkE7QUt4R0E7QURRQTtBQUNBO0FDTEE7QUFDQTtBQUNBO0FBRUE7QURrQkE7QUFDQTtBQUNBO0FDbEJBO0FBRkE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FKb2hCQTtBSXJoQkE7QUFJQTtBSmloQkE7QUlyaEJBO0FBUUE7QUo2Z0JBO0FJcmhCQTtBQVlBO0FBSUE7QUFDQTtBQUNBO0FKbWdCQTtBSXJnQkE7QUFLQTtBSmdnQkE7QUlyZ0JBO0FBU0E7QUo0ZkE7QUlyZ0JBO0FBYUE7QUFDQTtBSnVmQTtBSXBmQTtBQUVBO0FBS0E7QUFDQTtBSjRlQTtBSTdlQTtBQUlBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBSmllQTtBSW5lQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBZDlGQTs7QVM4S0E7QVA5S0E7OztBT2tMQTtBVHhLQTtBQWdCQTs7QVM0SkE7QU1uTEE7QUFHQTtBRk1BO0FBQ0E7QUVKQTtBQUNBO0FBQ0E7QUFFQTtBRmlCQTtBQUNBO0FBQ0E7QUVqQkE7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUxtaEJBO0FLcGhCQTtBQUlBO0FMZ2hCQTtBS3BoQkE7QUFRQTtBTDRnQkE7QUtwaEJBO0FBWUE7QUFJQTtBQUNBO0FBQ0E7QUxrZ0JBO0FLcGdCQTtBQUtBO0FMK2ZBO0FLcGdCQTtBQVNBO0FMMmZBO0FLcGdCQTtBQWFBO0FBQ0E7QUxzZkE7QUtuZkE7QUFFQTtBQUtBO0FBQ0E7QUwyZUE7QUs1ZUE7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUxnZUE7QUtsZUE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QWYvRkE7O0FTeVBBO0FQelBBOzs7QU82UEE7QVRuUEE7QUFnQkE7O0FTdU9BO0FUalFBOztBU29RQTtBUHBRQTs7O0FPd1FBO0FUOVBBO0FBZ0JBOztBU2tQQTtBTzVRQTtBQVlBO0FoQlpBOztBU2lSQTtBUGpSQTs7O0FPcVJBO0FUM1FBO0FBZ0JBOztBUytQQTtBVHpSQTs7QVM0UkE7QVA1UkE7OztBT2dTQTtBVHRSQTtBQWdCQTs7QVMwUUE7QVE5UkE7O0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBUGloQkE7QU9uaEJBO0FBS0E7QUFDQTtBQUNBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBUDZmQTtBT2pnQkE7QUFPQTtBQUNBO0FBR0E7QUFDQTtBUHFmQTtBT3RmQTtBQUlBO0FBQ0E7QUFHQTtBQUVBO0FQNGVBO0FPOWVBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QVBzZUE7QU85ZUE7QUFZQTtBQUNBO0FQaWVBO0FPNWRBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUN6REE7QUFDQTtBQUNBO0FEdURBO0FDaERBO0FBQ0E7QUFDQTtBRHFEQTtBQUNBO0FBQ0E7QVB5Y0E7QU90Y0E7QUFFQTtBQUNBO0FQbWNBO0FPaGNBO0FBR0E7QUFIQTtBQU9BO0FBQ0E7QVB3YkE7QU9oY0E7QUFZQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FQOFpBO0FPbmFBO0FBUUE7QUFSQTtBQVlBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FQNllBO0FPblpBO0FBU0E7QUFUQTtBQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QVA4WEE7QU9uWkE7QUF3QkE7QUF4QkE7QUE0QkE7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBUDhXQTtBT25YQTs7QUFRQTtBUDJXQTtBT25YQTs7QUFZQTtBQVpBOzs7QUFpQkE7QUFDQTtBQUNBO0FQZ1dBO0FPblhBOzs7QUFzQkE7QUFDQTtBQUNBO0FBQ0E7QVAwVkE7QU9uWEE7OztBQTZCQTtBQTdCQTs7QUFrQ0E7QVBpVkE7QU9uWEE7O0FBb0NBO0FQK1VBO0FPblhBOztBQXdDQTtBQUNBO0FQMFVBO0FPblhBOztBQTZDQTtBUHNVQTtBT25YQTs7QUFtREE7QVBnVUE7QU8xVEE7QUFJQTtBQUNBO0FBQ0E7QVp6UEE7Ozs7Ozs7O0FJZ2VBO0FIaGVBO0FBU0E7QU5UQTs7QVNxZUE7QVByZUE7OztBT3llQTtBVC9kQTtBQWdCQTs7QVNtZEE7QVUxZUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QVRtaUJBO0FTamlCQTtBQUVBO0FBQ0E7QVQ4aEJBO0FTamlCQTtBQU1BO0FBQ0E7QUFDQTtBQUlBOzs7QUFJQTtBQUNBO0FUZ2hCQTtBUzdnQkE7QUFLQTtBQUNBO0FUdWdCQTtBUzdnQkE7QUFVQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFSQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkE7QUFvQkE7QUFDQTtBQXJCQTtBQXdCQTtBQUNBO0FBQ0E7QUFDQTtBQUtBOztBQUdBO0FUMmRBO0FTOWRBOztBQUtBO0FBTEE7O0FYeEJBO0FBQ0E7QUFDQTtBV3NCQTs7O0FYakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FXakJBOzs7Ozs7O0FYeUJBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBV3ZDQTs7O0FYNkNBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QVcxQ0E7Ozs7OztBQU9BO0FBQ0E7QUFFQTs7QUFHQTtBQUNBO0FUaWNBO0FTcmNBO0FBT0E7QUFDQTtBVDZiQTtBUzFiQTtBQUlBO0FBQ0E7QVRxYkE7QVNsYkE7QUFHQTtBQUhBO0FBS0E7QUFDQTtBVDRhQTtBU3hhQTtBQUdBO0FBSEE7QUFNQTtBQU5BO0FBUUE7QUFDQTtBQU9BO0FBRUE7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQU5BO0FBUUE7QUFDQTtBQVRBO0FBV0E7QUFDQTtBQUNBO0FBYkE7QUFnQkE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQU1BO0FBQ0E7QUFEQTs7QUFLQTtBQUxBO0FBU0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FUdVZBO0FTbFZBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FuQnJPQTs7QVMwckJBO0FQMXJCQTs7O0FPOHJCQTtBVHByQkE7QUFnQkE7O0FTd3FCQTtBV2hzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBV0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FyQjdDQTs7QXNCRUE7QXBCRkE7OztBb0JNQTtBdEJJQTtBQWdCQTs7QXNCaEJBO0F0QlZBOztBc0JhQTtBcEJiQTs7O0FvQmlCQTtBdEJQQTtBQWdCQTs7QXNCTEE7QXRCckJBOztBc0J3QkE7QXBCeEJBOzs7QW9CNEJBO0F0QmxCQTtBQWdCQTs7QXNCTUE7QU5oQ0E7QUFZQTtBaEJaQTs7QXNCcUNBO0FwQnJDQTs7O0FvQnlDQTtBdEIvQkE7QUFnQkE7O0FzQm1CQTtBdEI3Q0E7O0FzQmdEQTtBcEJoREE7OztBb0JvREE7QXRCMUNBO0FBZ0JBOztBc0I4QkE7QUM1Q0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FiMGhCQTtBYWppQkE7QUFVQTtBQUNBO0FBWEE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQVFBO0FBQ0E7QUFUQTtBTERBO0FBQ0E7QUtBQTtBTFFBO0FBQ0E7QUtUQTtBQWNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BOztBdkI3REE7O0F3QkVBO0F0QkZBOzs7QXNCTUE7QXhCSUE7QUFnQkE7O0F3QmhCQTtBeEJWQTs7QXdCYUE7QXRCYkE7OztBc0JpQkE7QXhCUEE7QUFnQkE7O0F3QkxBO0FabkJBOztBWXNCQTtBWmxCQTs7O0FZc0JBO0FaYkE7OztBWWlCQTtBWlBBOztBWVVBO0F4Qm5DQTs7QXdCc0NBO0F0QnRDQTs7O0FzQjBDQTtBeEJoQ0E7QUFnQkE7O0F3Qm9CQTtBWDNDQTs7QVc4Q0E7QVgxQ0E7OztBVzhDQTtBWHJDQTs7O0FXeUNBO0FYL0JBOztBV2tDQTtBbkI1REE7Ozs7Ozs7O0FtQnFFQTtBbEJyRUE7QUFTQTtBTlRBOztBd0IwRUE7QXRCMUVBOzs7QXNCOEVBO0F4QnBFQTtBQWdCQTs7QXdCd0RBO0F4QmxGQTs7QXdCcUZBO0F0QnJGQTs7O0FzQnlGQTtBeEIvRUE7QUFnQkE7O0F3Qm1FQTtBQ2hFQTtBQWtXQTtBQStDQTtBQTlZQTtBQUVBO0FBR0E7QUFMQTtBQU1BO0FBQUE7QUFLQTtBakJZQTtBQUNBO0FBQ0E7QWlCZEE7QWpCbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpQi9DQTtBakI2REE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpQnJFQTtBakJpRkE7QUFHQTtBQUNBO0FBQ0E7QWlCdEZBO0FBT0E7QUFQQTtBQWVBO0FBZkE7QUFvQkE7QUFwQkE7QUF5QkE7QUF6QkE7QUE4QkE7QUFNQTtBakJoQ0E7QWlCdUNBO0FBR0E7QUMwVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBRDNWQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBSUE7QUFHQTtBQUNBO0FBR0E7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUFBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBSUE7QUFHQTtBQUVBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7QVpwTEE7QUFDQTtBQUNBO0FZcUxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QUFlQTtBQWZBO0FBb0JBO0FBT0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQUE7QUFaQTtBQWdCQTtBQUlBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QWZnU0E7QWVuU0E7QUFNQTtBZjZSQTtBZW5TQTtBQVVBO0FBQ0E7QUFYQTtBQWVBO0FBQ0E7QUExQkE7QUErQkE7QUFDQTtBQUlBO0FBR0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFBQTtBQUtBO0FBRUE7QUFGQTtBQU1BO0FBTkE7QUFTQTtBQVNBO0FBRUE7QUFGQTtBQU1BO0FBQ0E7QUFJQTtBQUVBO0FBRkE7QUFNQTtBQUNBO0FBSUE7O0FBR0E7QUFIQTtBQU9BO0FBUEE7QUFXQTtBQVhBO0FBZUE7QUFmQTs7QUFxQkE7QUFFQTtBQXZCQTs7QUE0QkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFUQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBTkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBTkE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQTlZQTtBQW9aQTs7QXpCamJBOztBMkJFQTtBekJGQTs7O0F5Qk1BO0EzQklBO0FBZ0JBOztBMkJoQkE7QTNCVkE7O0EyQmFBO0F6QmJBOzs7QXlCaUJBO0EzQlBBO0FBZ0JBOztBMkJMQTtBM0JyQkE7O0EyQndCQTtBekJ4QkE7OztBeUI0QkE7QTNCbEJBO0FBZ0JBOztBMkJNQTtBQ2hDQTtBQVNBO0FDVEE7Ozs7QUZ1Q0E7QUdVQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEJrZkE7QW9CNWZBO0FBd0JBO0FBeEJBO0FBK0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEJxZEE7QW9CNWZBO0FBeUNBO0FBekNBO0FBOENBO0FBQ0E7QUEvQ0E7QUFtREE7QUFuREE7QUF1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBNURBO0FBZ0VBO0FBQ0E7QUFqRUE7QUFxRUE7QUFDQTtBQUNBO0FBdkVBO0FBMEVBO0FBQ0E7QUFDQTtBQUNBO0FBN0VBO0FBaUZBO0FBakZBO0FBc0ZBO0FBQ0E7QUF2RkE7QUEyRkE7QUFDQTtBQUNBO0FBN0ZBO0FBaUdBO0FBQ0E7QUFsR0E7QUF1R0E7QUF2R0E7QUEwR0E7QUFDQTtBQUNBO0FBQ0E7QXBCK1lBO0FvQjVmQTtBQW1IQTtBQW5IQTtBQTBIQTtBQUNBO0FBQ0E7QUFDQTtBcEIrWEE7QW9CNWZBO0FBaUlBO0FBaklBO0FBb0lBO0FBcElBO0FBc0lBO0FBQ0E7QUFDQTtBQXhJQTtBQTRJQTtBQTVJQTtBQThJQTtBQUNBO0FBQ0E7QUFoSkE7QUF3SkE7QUFDQTtBQUNBO0FBMUpBO0FBK0pBO0FBL0pBO0FBb0tBO0FBcEtBO0FBdUtBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FDcE1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEd0xBO0FBSUE7QUFHQTtBQ3pLQTtBQUNBO0FEd0tBO0FDeElBO0FEd0lBO0FDcklBO0FENklBO0FDdExBO0FBQ0E7QURxTEE7QUNoSkE7QURnSkE7QUM3SUE7QURzSkE7QUN6SkE7QUR5SkE7QUN0SkE7QXJCZ2NBO0FvQjFTQTtBQUlBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBTEE7QUFTQTtBQVRBO0FBYUE7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFvQkE7QUFwQkE7QUF3QkE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBWUE7QUFaQTtBQWlCQTs7QUUzVEE7QWhDQUE7O0FnQ0dBO0E5QkhBOzs7QThCT0E7QWhDR0E7QUFnQkE7O0FnQ2ZBO0FoQ1hBOztBZ0NjQTtBOUJkQTs7O0E4QmtCQTtBaENSQTtBQWdCQTs7QWdDSkE7QUN0QkE7O0FEeUJBO0E5QnpCQTs7O0E4QjZCQTtBRUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QURoQ0E7QUFDQTtBQUNBO0FDa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFYQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBTkE7QUFVQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QXhCdWNBO0F3QjFjQTtBQU1BO0FBQ0E7QUFDQTtBbEMzR0E7O0FnQ3NGQTtBOUJ0RkE7OztBOEIwRkE7QWhDaEZBO0FBZ0JBOztBZ0NvRUE7QUd2RUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUYxQkE7QUFDQTtBQUNBO0FFNEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBQ0E7QUFYQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBTkE7QUFVQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QXpCNmNBO0F5QmhkQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBRUE7O0FuQzNHQTs7QW9DRUE7QWxDRkE7OztBa0NNQTtBcENJQTtBQWdCQTs7QW9DaEJBO0FwQ1ZBOztBb0NhQTtBbENiQTs7O0FrQ2lCQTtBcENQQTtBQWdCQTs7QW9DTEE7QXBDckJBOztBb0N3QkE7QWxDeEJBOzs7QWtDNEJBO0FwQ2xCQTtBQWdCQTs7QW9DTUE7QXBDaENBOztBb0NtQ0E7QWxDbkNBOzs7QWtDdUNBO0FwQzdCQTtBQWdCQTs7QW9DaUJBO0EvQjNDQTs7Ozs7Ozs7QStCb0RBO0E5QnBEQTtBQVNBO0FOVEE7O0FvQ3lEQTtBbEN6REE7OztBa0M2REE7QXBDbkRBO0FBZ0JBOztBb0N1Q0E7QUNyREE7QTdCMkNBO0FBQ0E7QUFDQTtBQUNBO0E2QjlDQTtBN0JrREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTZCOUVBO0E3QjRGQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTZCcEdBO0E3QmdIQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0E2QmhIQTtBN0I2QkE7QUFDQTtBNkJ2QkE7QVgwWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBQUNBO0FXNVpBO0FDM0JBO0FEa0NBO0FBQ0E7QUFDQTtBQVRBO0E3QnNCQTtBQUNBO0FBQ0E7QTZCeEJBO0E3QjZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNkJ6REE7QTdCdUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNkIvRUE7QTdCMkZBO0FBR0E7QUFDQTtBQUNBO0FFNGFBO0EyQjVnQkE7QUNqQkE7QUFLQTtBQUNBO0FEc0JBO0E3QkdBO0E2QklBO0FYZ1dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QVdsWUE7QUFFQTtBQUZBO0FBS0E7O0FyQy9EQTs7QXVDRUE7QXJDRkE7OztBcUNNQTtBdkNJQTtBQWdCQTs7QXVDaEJBO0F2Q1ZBOztBdUNhQTtBckNiQTs7O0FxQ2lCQTtBdkNQQTtBQWdCQTs7QXVDTEE7QXZDckJBOztBdUN3QkE7QXJDeEJBOzs7QXFDNEJBO0F2Q2xCQTtBQWdCQTs7QXVDTUE7QTNCOUJBOztBMkJpQ0E7QTNCN0JBOzs7QTJCaUNBO0EzQnhCQTs7O0EyQjRCQTtBM0JsQkE7O0EyQnFCQTtBdkM5Q0E7O0F1Q2lEQTtBckNqREE7OztBcUNxREE7QXZDM0NBO0FBZ0JBOztBdUMrQkE7QTFCdERBOztBMEJ5REE7QTFCckRBOzs7QTBCeURBO0ExQmhEQTs7O0EwQm9EQTtBMUIxQ0E7O0EwQjZDQTtBekJuRUE7QURRQTtBQUNBO0FDTEE7QUFDQTtBQUNBO0FBRUE7QURrQkE7QUFDQTtBQUNBO0FDbEJBO0FBRkE7QUFNQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FKb2hCQTtBSXJoQkE7QUFJQTtBSmloQkE7QUlyaEJBO0FBUUE7QUo2Z0JBO0FJcmhCQTtBQVlBO0FBSUE7QUFDQTtBQUNBO0FKbWdCQTtBSXJnQkE7QUFLQTtBSmdnQkE7QUlyZ0JBO0FBU0E7QUo0ZkE7QUlyZ0JBO0FBYUE7QUFDQTtBSnVmQTtBSXBmQTtBQUVBO0FBS0E7QUFDQTtBSjRlQTtBSTdlQTtBQUlBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBSmllQTtBSW5lQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBZDlGQTs7QXVDeUlBO0FyQ3pJQTs7O0FxQzZJQTtBdkNuSUE7QUFnQkE7O0F1Q3VIQTtBeEI5SUE7QUFHQTtBRk1BO0FBQ0E7QUVKQTtBQUNBO0FBQ0E7QUFFQTtBRmlCQTtBQUNBO0FBQ0E7QUVqQkE7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUxtaEJBO0FLcGhCQTtBQUlBO0FMZ2hCQTtBS3BoQkE7QUFRQTtBTDRnQkE7QUtwaEJBO0FBWUE7QUFJQTtBQUNBO0FBQ0E7QUxrZ0JBO0FLcGdCQTtBQUtBO0FMK2ZBO0FLcGdCQTtBQVNBO0FMMmZBO0FLcGdCQTtBQWFBO0FBQ0E7QUxzZkE7QUtuZkE7QUFFQTtBQUtBO0FBQ0E7QUwyZUE7QUs1ZUE7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUxnZUE7QUtsZUE7QUFLQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBOztBZjlGQTs7QXdDRUE7QXRDRkE7OztBc0NNQTtBeENJQTtBQWdCQTs7QXdDaEJBO0F4Q1ZBOztBd0NhQTtBdENiQTs7O0FzQ2lCQTtBeENQQTtBQWdCQTs7QXdDTEE7QW5DckJBOzs7Ozs7OztBbUM4QkE7QWxDOUJBO0FBU0E7QU5UQTs7QXdDbUNBO0F0Q25DQTs7O0FzQ3VDQTtBeEM3QkE7QUFnQkE7O0F3Q2lCQTtBeEMzQ0E7O0F3QzhDQTtBdEM5Q0E7OztBc0NrREE7QXhDeENBO0FBZ0JBOztBd0M0QkE7QXhCdERBO0FBWUE7QWhCWkE7O0F3QzJEQTtBdEMzREE7OztBc0MrREE7QXhDckRBO0FBZ0JBOztBd0N5Q0E7QXhDbkVBOztBd0NzRUE7QXRDdEVBOzs7QXNDMEVBO0F4Q2hFQTtBQWdCQTs7QXdDb0RBO0FDNURBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0JpZkE7QStCdmZBO0FBU0E7QUFJQTtBQUNBO0EvQnllQTtBK0IxZUE7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUZBOztBQU1BO0FBQ0E7QUFQQTtBdkJ6Q0E7QUFDQTtBdUJ3Q0E7QXZCaENBO0FBQ0E7QXVCaURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EvQjBjQTtBK0JoZEE7QUFTQTtBQUNBO0FBSUE7QUFNQTtBQUNBO0FBUEE7QWpDcERBO0FBQ0E7QUFDQTtBaUNrREE7QWpDN0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpQ2lCQTtBakNIQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWlDTEE7QWpDaUJBO0FBR0E7QUFDQTtBQUNBO0FFNGFBO0ErQmxjQTtBQVVBO0FBQ0E7QUFJQTtBakMzRUE7QWlDa0ZBO0Fma1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7O0ExQjViQTs7QTBDRUE7QXhDRkE7OztBd0NNQTtBMUNJQTtBQWdCQTs7QTBDaEJBO0ExQ1ZBOztBMENhQTtBeENiQTs7O0F3Q2lCQTtBMUNQQTtBQWdCQTs7QTBDTEE7QWhDd2hCQTtBaUN6aUJBO0FBRUE7QUFDQTtBakNzaUJBO0FpQ25pQkE7QUFFQTs7QTNDWkE7O0E0Q0VBO0ExQ0ZBOzs7QTBDTUE7QTVDSUE7QUFnQkE7O0E0Q2hCQTtBNUNWQTs7QTRDYUE7QTFDYkE7OztBMENpQkE7QTVDUEE7QUFnQkE7O0E0Q0xBO0E1Q3JCQTs7QTRDd0JBO0ExQ3hCQTs7O0EwQzRCQTtBNUNsQkE7QUFnQkE7O0E0Q01BO0FYaENBOztBV21DQTtBNUNuQ0E7O0E0Q3NDQTtBMUN0Q0E7OztBMEMwQ0E7QTVDaENBO0FBZ0JBOztBNENvQkE7QUM5Q0E7QUFNQTtBQzRDQTtBQUdBO0FBQ0E7QUFDQTtBcENzZkE7QW9DM2ZBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FwQ3llQTtBb0MzZkE7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUExQkE7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXBDd2RBO0FvQ3BkQTtBQUdBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwQ3NjQTtBb0NwY0E7QUFFQTtBcENrY0E7QW9DM2ZBO0FBaUVBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDcEZBO0FEK0VBO0FDM0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUE7QUFpQkE7QUFBQTtBRHdDQTtBQ2JBO0FBQ0E7QURZQTtBQ0dBO0FBQ0E7QURKQTtBQ29EQTtBRHBEQTtBQ2dFQTtBckNzWEE7QW9DdGJBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNqSEE7QUQrRUE7QUMzRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFZQTtBQWlCQTtBQUFBO0FEd0NBO0FDYkE7QUFDQTtBRFlBO0FDR0E7QUFDQTtBREpBO0FDb0RBO0FEcERBO0FDZ0VBO0FEaEVBO0FBNERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcENxWEE7QW9DdGJBO0FBb0VBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBYmpNQTtBQUNBO0FBQ0E7QWFpTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FwQzZWQTtBb0N2V0E7QUFhQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFDQTtBcEN5VUE7QW9DalZBO0FBWUE7QUFDQTtBcENvVUE7QW9DalZBO0FBaUJBO0FBQ0E7QUFDQTtBRTVPQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBU0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFZQTtBQUNBO0FBQ0E7QXRDaWhCQTtBc0MvaEJBO0FBa0JBO0FBR0E7QUFFQTtBdEN3Z0JBO0FzQzFnQkE7QUFJQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0F0Q3lmQTtBc0M1ZkE7QUFLQTtBQUNBO0FBTkE7QUFTQTtBQVRBO0FBWUE7QUFaQTtBQWdCQTtBQUNBO0FBakJBO0FBb0JBO0FBcEJBO0FBdUJBO0FBckVBO0FBeUVBO0FBQ0E7QUExRUE7QUE2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEN5ZEE7QXNDMWlCQTtBQW1GQTtBQUNBO0FBR0E7QUFDQTs7QWhEM0ZBOztBaURFQTtBL0NGQTs7O0ErQ01BO0FqRElBO0FBZ0JBOztBaURoQkE7QTVDVkE7Ozs7Ozs7O0E0Q21CQTtBM0NuQkE7QUFTQTtBTlRBOztBaUR3QkE7QS9DeEJBOzs7QStDNEJBO0FqRGxCQTtBQWdCQTs7QWlETUE7QUNoQ0E7QUFtREE7QUNXQTtBbkQ5REE7O0FpRHNDQTtBL0N0Q0E7OztBK0MwQ0E7QWpEaENBO0FBZ0JBOztBaURvQkE7QUc1Q0E7QUFHQTs7QUNnRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEbkZBOztBQ3NIQTtBRGxIQTs7QUM2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEL0ZBOztBQ3NHQTtBQUNBO0FBQ0E7QURuR0E7OztBQ2dIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEN0hBOzs7OztBQ2tJQTtBQUNBO0FEbklBOzs7OztBQ2dLQTtBRGhLQTs7O0FDNElBO0FENUlBO0FDZ0pBO0FBQ0E7QUFDQTtBQUNBO0FEbkpBO0FDZ0pBO0FBQ0E7QUFDQTtBQUNBO0FEbkpBOzs7QUNnSkE7QUFDQTtBQUNBO0FBQ0E7QURuSkE7OztBQ3VKQTtBRHZKQTs7Ozs7QUNnS0E7QUR2SkE7O0FDdU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEM05BOzs7QUN1SkE7QUR2SkE7O0FDa09BO0FEbE9BOzs7QUN3T0E7QUFDQTtBRHpPQTs7O0FDK09BO0FBQ0E7QUFDQTtBRGpQQTs7QUNzUEE7QUR0UEE7O0FDMFBBO0FBQ0E7QUR2UEE7O0FDeVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRDVSQTs7O0FDa1NBO0FBQ0E7QURuU0E7OztBQ3lTQTtBQUNBO0FBQ0E7QUQzU0E7O0FDZ1RBO0FBQ0E7QURqVEE7Ozs7QUNzVEE7QUFDQTtBQUNBO0FEeFRBOzs7Ozs7QUMrVEE7QURyVEE7O0FDK1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWlEQTtBQUNBO0FBQ0E7QURyVUE7OztBQ3dSQTtBQUNBO0FEelJBOzs7QUMrUkE7QUFDQTtBQUNBO0FEalNBOztBQ3NTQTtBQUNBO0FEdlNBOzs7O0FDNFNBO0FBQ0E7QUFDQTtBRDlTQTs7Ozs7O0FDcVRBO0FEclRBOztBQ3dVQTtBRHhVQTs7O0FDeUlBO0FEM0hBOztBQ2tJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURuSUE7O0FDNklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQ3SUE7O0FDeUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQUNBO0FEakpBO0FDYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEckJBO0FBS0E7QUFMQTtBQ3FIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBRHBIQTtBQVRBO0FDd0RBO0FEeERBO0FDOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQzRUE7QUNnRkE7QUFDQTtBRGpGQTtBQzhHQTtBRDlHQTtBQzBGQTtBRDFGQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQ3FHQTtBRHJHQTtBQ21DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUR4Q0E7QUMrQ0E7QUFDQTtBQUNBO0FEakRBO0FBc0NBO0FBdENBO0FDOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQzRUE7QUNnRkE7QUFDQTtBRGpGQTtBQzhHQTtBRDlHQTtBQzBGQTtBRDFGQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQ3FHQTtBRHJHQTtBQzhHQTtBRDlHQTtBQW9EQTtBQXBEQTtBQzhKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRGxMQTtBQzhHQTtBRDlHQTtBQ3lMQTtBRHpMQTtBQytMQTtBQUNBO0FEaE1BO0FDc01BO0FBQ0E7QUFDQTtBRHhNQTtBQzZNQTtBRDdNQTtBQ2lOQTtBQUNBO0FEbE5BO0FDb09BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWlEQTtBQUNBO0FBQ0E7QUQxU0E7QUM2UEE7QUFDQTtBRDlQQTtBQ29RQTtBQUNBO0FBQ0E7QUR0UUE7QUMyUUE7QUFDQTtBRDVRQTtBQ2lSQTtBQUNBO0FBQ0E7QURuUkE7OztBQzBSQTtBRDFSQTtBQzZTQTtBRDdTQTtBQzhHQTtBRDlHQTtBQ29PQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUR2UEE7QUM2UEE7QUFDQTtBRDlQQTtBQ29RQTtBQUNBO0FBQ0E7QUR0UUE7QUMyUUE7QUFDQTtBRDVRQTtBQ2lSQTtBQUNBO0FBQ0E7QURuUkE7OztBQzBSQTtBRDFSQTtBQzhKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRGxMQTtBQzhHQTtBRDlHQTtBQ3lMQTtBRHpMQTtBQytMQTtBQUNBO0FEaE1BO0FDc01BO0FBQ0E7QUFDQTtBRHhNQTtBQzZNQTtBRDdNQTtBQ2lOQTtBQUNBO0FEbE5BO0FDOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQzRUE7QUNnRkE7QUFDQTtBRGpGQTtBQzhHQTtBRDlHQTtBQzBGQTtBRDFGQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQzhGQTtBQUNBO0FBQ0E7QUFDQTtBRGpHQTtBQ3FHQTtBRHJHQTtBQzhHQTtBRDlHQTtBNUNqQkE7QUFDQTtBQUNBO0E0Q2VBO0E1Q1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E0Q3hCQTtBNUNnQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E0QzlDQTtBNUNvREE7QUFTQTtBQUNBO0FBQ0E7QTRDL0RBO0E1Q3pCQTtBNEN5QkE7OztBQzhHQTtBRDlHQTtBQW1HQTtBQUNBO0FBcEdBO0FBd0dBO0FBeEdBOztBQTRHQTtBQTVHQTtBQWdIQTtBQUNBO0FBQ0E7QUNrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRHhJQTtBQXdIQTtBQXhIQTtBQ29JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURQQTs7QUNFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFDQTtBRFZBO0FFN01BO0FBRUE7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVVBO0FBQ0E7QUFFQTtBQUNBOztBQ2hCQTs7O0FDR0E7QXhESEE7O0F3RE1BO0F0RE5BOzs7QXNEVUE7QXhEQUE7QUFnQkE7O0F3RFpBO0F4RGRBOztBd0RpQkE7QXREakJBOzs7QXNEcUJBO0F4RFhBO0FBZ0JBOztBd0REQTtBQ3pCQTs7Ozs7Ozs7O0FEbUNBO0F4RG5DQTs7QXdEc0NBO0F0RHRDQTs7O0FzRDBDQTtBeERoQ0E7QUFnQkE7O0F3RG9CQTtBWDlDQTtBQU1BO0E3Q05BOztBd0RtREE7QXREbkRBOzs7QXNEdURBO0F4RDdDQTtBQWdCQTs7QXdEaUNBO0F4QzNEQTtBQVlBO0FoQlpBOztBd0RnRUE7QXREaEVBOzs7QXNEb0VBO0F4RDFEQTtBQWdCQTs7QXdEOENBO0F4RHhFQTs7QXdEMkVBO0F0RDNFQTs7O0FzRCtFQTtBeERyRUE7QUFnQkE7O0F3RHlEQTtBRG5EQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBRUE7QUFDQTtBN0NtZ0JBO0E2QzdnQkE7QUFhQTtBQWJBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFyQkE7QUEyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0MyZUE7QTZDN2dCQTtBQXNDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBMUNBO0FBK0NBO0FBL0NBO0FBbURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0NrZEE7QTZDN2dCQTtBQTZEQTtBQTdEQTtBQWlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXZFQTtBQTBFQTtBQUNBO0E3Q2tjQTtBNkM3Z0JBO0FBNkVBO0FBQ0E7QUE5RUE7QUFrRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3Q3NiQTtBNkM3Z0JBO0FBeUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoR0E7QUFzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3QytaQTtBNkM3Z0JBO0FBZ0hBO0FBQ0E7QUFqSEE7QUF1SEE7QUF2SEE7QUE0SEE7QUE1SEE7QUFnSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0SUE7QUEwSUE7QUFDQTtBQUNBO0E3Q2lZQTtBNkM3Z0JBO0FBOElBO0FBOUlBO0FBa0pBO0FBQ0E7QUFDQTtBN0N5WEE7QTZDN2dCQTtBQXNKQTtBQXRKQTtBQXlKQTtBQUNBO0FBMUpBOztBQTZKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaktBO0FBb0tBO0E3Q3lXQTtBNkM3Z0JBO0FBc0tBO0FBdEtBO0FBeUtBO0FBQ0E7QUExS0E7QUErS0E7QUEvS0E7QUFrTEE7QUFDQTtBQUNBO0E3Q3lWQTtBNkM3Z0JBO0FBc0xBO0FBQ0E7QUFDQTtBQUNBO0FBekxBO0FBNkxBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3QzBVQTtBNkM3Z0JBO0FBcU1BO0FBck1BO0FBdU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN01BO0FBZ05BO0FBaE5BO0FBa05BO0FBQ0E7QUFuTkE7QUEyTkE7QUEzTkE7QUE2TkE7QUFDQTtBQUNBO0FBL05BO0FBaU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXpPQTtBQThPQTtBQTlPQTtBQWlQQTtBQWpQQTtBQW9QQTtBQXBQQTtBQXdQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3UEE7QUFpUUE7QTdDNFFBO0E2QzdnQkE7QUFtUUE7QUFuUUE7QUF3UUE7QUF4UUE7QUE2UUE7QUE3UUE7QUFnUkE7QUFoUkE7QUFxUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXpSQTtBQTRSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaFNBO0FBb1NBO0FBcFNBO0FBdVNBO0FBQ0E7QUFDQTtBQUNBO0E3Q21PQTtBNkM3Z0JBO0FBNFNBO0FBQ0E7QTdDZ09BO0E2QzdnQkE7QUFpVEE7QUFqVEE7QUFzVEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTdUQTtBQWlVQTtBQUNBO0FBbFVBO0FBcVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1VUE7QUErVUE7QUFLQTtBQUNBO0E3Q3dMQTtBNkN6TEE7QUFHQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0F2RGhZQTs7QTBERUE7QXhERkE7OztBd0RNQTtBMURJQTtBQWdCQTs7QTBEaEJBO0ExRFZBOztBMERhQTtBeERiQTs7O0F3RGlCQTtBMURQQTtBQWdCQTs7QTBETEE7QXpCckJBOztBeUJ3QkE7QTFEeEJBOztBMEQyQkE7QXhEM0JBOzs7QXdEK0JBO0ExRHJCQTtBQWdCQTs7QTBEU0E7QTFDbkNBO0FBWUE7QWhCWkE7O0EwRHdDQTtBeER4Q0E7OztBd0Q0Q0E7QTFEbENBO0FBZ0JBOztBMERzQkE7QTFEaERBOztBMERtREE7QXhEbkRBOzs7QXdEdURBO0ExRDdDQTtBQWdCQTs7QTBEaUNBO0FDNUNBO0ExQlZBO0FBQ0E7QUFDQTtBMEJhQTtBQUNBO0FBTkE7QXpDbUJBO0FBQ0E7QXlDcEJBO0F6QzRCQTtBQUNBO0F5QzdCQTtBQW1CQTtBQUNBO0FBQ0E7QWpEeWdCQTtBaUQ5aEJBO0FBd0JBO0FBQ0E7O0EzRHhDQTs7QTRERUE7QTFERkE7OztBMERNQTtBNURJQTtBQWdCQTs7QTREaEJBO0E1RFZBOztBNERhQTtBMURiQTs7O0EwRGlCQTtBNURQQTtBQWdCQTs7QTRETEE7QTVEckJBOztBNER3QkE7QTFEeEJBOzs7QTBENEJBO0E1RGxCQTtBQWdCQTs7QTRETUE7QTVEaENBOztBNERtQ0E7QTFEbkNBOzs7QTBEdUNBO0E1RDdCQTtBQWdCQTs7QTREaUJBO0E1RDNDQTs7QTREOENBO0ExRDlDQTs7O0EwRGtEQTtBNUR4Q0E7QUFnQkE7O0E0RDRCQTtBNUR0REE7O0E0RHlEQTtBMUR6REE7OztBMEQ2REE7QTVEbkRBO0FBZ0JBOztBNER1Q0E7QTVEakVBOztBNERvRUE7QTFEcEVBOzs7QTBEd0VBO0E1RDlEQTtBQWdCQTs7QTREa0RBO0FDNUVBO0FBU0E7QUNKQTtBQ2NBO0FBQ0E7QUFDQTtBQUNBO0FEZEE7QUFDQTtBeEJIQTtBNUJ1aUJBO0FvRHhpQkE7QXhCV0E7QUFLQTtBQUNBO0F3QlRBO0FDc0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEbWdCQTtBb0RoaUJBO0FDZ0NBO0FEaENBO0FDc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEc2ZBO0FvRGhpQkE7QUM2Q0E7QUQ3Q0E7QUNrREE7QURsREE7QUNzREE7QURsREE7QUMrREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJEdWRBO0FvRDVoQkE7QUN3RUE7QUFDQTtBckRtZEE7QW9EdmhCQTtBQUlBO0FBQ0E7QUFDQTtBQU5BOzs7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFwQkE7Ozs7O0FBdUJBO0FBQ0E7QXBEK2ZBO0FvRHZoQkE7QUE4QkE7QUFDQTtBQUNBO0FBQ0E7QUFqQ0E7QUF1Q0E7QXBEZ2ZBO0FvRHZoQkE7QUF5Q0E7QUFDQTtBQUNBO0FBM0NBO0FBaURBO0FBQ0E7QUFDQTtBQUNBOztBOUQxRUE7O0FnRUVBO0E5REZBOzs7QThETUE7QWhFSUE7QUFnQkE7O0FnRWhCQTtBaEVWQTs7QWdFYUE7QTlEYkE7OztBOERpQkE7QWhFUEE7QUFnQkE7O0FnRUxBO0FoRXJCQTs7QWdFd0JBO0E5RHhCQTs7O0E4RDRCQTtBaEVsQkE7QUFnQkE7O0FnRU1BO0FoRWhDQTs7QWdFbUNBO0E5RG5DQTs7O0E4RHVDQTtBaEU3QkE7QUFnQkE7O0FnRWlCQTtBcER6Q0E7O0FvRDRDQTtBcER4Q0E7OztBb0Q0Q0E7QXBEbkNBOzs7QW9EdUNBO0FwRDdCQTs7QW9EZ0NBO0FoRXpEQTs7QWdFNERBO0E5RDVEQTs7O0E4RGdFQTtBaEV0REE7QUFnQkE7O0FnRTBDQTtBbkRqRUE7O0FtRG9FQTtBbkRoRUE7OztBbURvRUE7QW5EM0RBOzs7QW1EK0RBO0FuRHJEQTs7QW1Ed0RBO0E5RGxGQTs7O0E4RHNGQTtBQ3pEQTs7OztBRDhEQTtBdERrZEE7QXVEdmdCQTtBQUVBO0FBQ0E7QUFDQTtBQU9BOzs7QURtREE7QXREeWNBO0F1RHhmQTtBQUVBO0FBQ0E7QXZEcWZBO0F1RHhmQTtBQU1BO0FBQ0E7QXZEaWZBO0F1RDdlQTtBQUVBO0FBQ0E7QUFDQTtBQUVBOzs7QUQrQ0E7QUMzQ0E7O0FBRUE7QUFDQTtBdkRnZUE7QXVEN2VBO0FBaUJBO0FBQ0E7QUFLQTtBQUdBO0FBTUE7QXZENmNBO0F1RHRkQTtBQWFBO0F2RHljQTtBdUR0ZEE7QUFrQkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkR3YkE7QXVEamNBO0FBcUJBO0F2RDRhQTtBdURqY0E7QUF5QkE7QUFDQTtBdkR1YUE7QXVEamNBO0FBOEJBO0FBSUE7QUFDQTtBQUNBO0F2RDZaQTtBdUQvWkE7QUFTQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkQ2WUE7QXVEbFpBO0FBUUE7QXZEMFlBO0F1RGxaQTtBQVlBO0FBQ0E7QUFHQTtBcEQ3SUE7QUFDQTtBQUNBO0FvRDZJQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0F2RGtXQTtBdURwWEE7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUE7QUFDQTtBdkQyVUE7QXVEcFhBO0FBbURBO0F2RGlVQTtBdURwWEE7QUEwREE7QUFDQTtBQUNBO0FBNkJBO0FBQ0E7QUFDQTtBQUNBO0F2RHdSQTtBdUQzUkE7QUFZQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZEa1FBO0F1RHpRQTtBQVVBO0F2RCtQQTtBdUR6UUE7QUFjQTtBQUlBO0FBQ0E7QUFDQTtBdkRxUEE7QXVEdlBBO0FBS0E7QUFDQTtBQ2pUQTtBQUVBO0FBRkE7QUFJQTtBQUpBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeER3aEJBO0F3RGxpQkE7QUFZQTtBQVpBO0FBZUE7QUFDQTtBQWhCQTtBQW1CQTtBQW5CQTtBQXVCQTtBQXZCQTtBQXlCQTtBeER5Z0JBO0F3RGxpQkE7QUE4QkE7QUE5QkE7O0FBaUNBO0FBakNBO0FBc0NBO0FBdENBO0FBMkNBO0FBQ0E7QUE1Q0E7QUFrREE7QUFDQTtBQW5EQTtBQXVEQTtBQUNBO0FBQ0E7QUF6REE7QUErREE7QUFDQTtBQWhFQTtBQWtFQTtBQWxFQTtBQXVFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBM0VBO0FBNkVBO0FBN0VBO0FBbUZBO0FBbkZBO0FBd0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvRkE7QUFpR0E7QUFDQTtBQWxHQTtBQXVHQTtBQUNBO0FBQ0E7QUF6R0E7QUErR0E7QUEvR0E7QUFrSEE7QUFDQTtBQUNBO0FBQ0E7QUFySEE7QUF1SEE7QUFDQTtBQUNBO0FBekhBO0FBMkhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvSEE7QUFrSUE7QUFsSUE7QUFxSUE7QXhENlpBO0F3RGxpQkE7QUE2SUE7QUFDQTtBQTlJQTtBQWdKQTtBQWhKQTtBQW1KQTtBQUNBO0FBcEpBO0FBc0pBO0FBQ0E7QUF2SkE7QUF5SkE7QUF6SkE7QUE0SkE7QUE1SkE7QUErSkE7QUFDQTtBQUNBO0FBQ0E7QUFsS0E7QUF3S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaExBO0FBbUxBO0FBbkxBOztBQXVMQTtBQXZMQTtBQTBMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhNQTtBQWtNQTtBQWxNQTtBQXNNQTtBQXRNQTtBQTBNQTtBQTFNQTtBQTRNQTtBQTVNQTtBQThNQTtBQTlNQTtBQWdOQTtBQUNBO0FBQ0E7QUFDQTtBQW5OQTtBQXFOQTtBQUNBO0FBdE5BO0FBVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQThOQTtBQTNOQTtBQVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFvT0E7QUFqT0E7QUFxT0E7QUFDQTtBQXRPQTtBQTZPQTtBQUNBO0FBOU9BO0FBaVBBO0FBalBBO0FBbVBBO0FBQ0E7QUFDQTtBQUNBO0FBdFBBO0FBd1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhRQTtBQWtRQTtBQWxRQTtBQXNRQTtBQUNBO0FBdlFBO0FBeVFBO0FBQ0E7QUExUUE7QUErUUE7QUEvUUE7QUFpUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXJSQTtBQXVSQTtBQXZSQTtBQTBSQTtBQUNBO0FBM1JBO0FBK1JBO0FBQ0E7QUFoU0E7QUFrU0E7QUFDQTtBQUNBO0FBcFNBO0FBMFNBO0FBQ0E7QUEzU0E7QUE2U0E7QUFDQTtBQUNBO0FBL1NBO0FBaVRBO0FBalRBOztBQXVUQTtBQXZUQTs7QUF5VEE7QUF6VEE7O0FBMlRBO0FBM1RBOztBQTZUQTtBQTdUQTs7QUFpVUE7QUFDQTtBQWxVQTs7QUFvVUE7QUFwVUE7O0FBc1VBO0FBQ0E7QUF2VUE7QUE4VUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFwVkE7QUFzVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1VkE7QUErVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcFdBO0FBeVdBO0FBeldBO0FBNFdBO0FBNVdBO0FBK1dBO0FBQ0E7QUFDQTtBQWpYQTtBQXVYQTtBQXZYQTtBQXlYQTtBQXpYQTs7OztBQWdZQTtBQWhZQTtBQW1ZQTtBQW5ZQTtBQXdZQTtBQUNBO0FBQ0E7QUExWUE7QUE4WUE7QUFDQTtBQS9ZQTtBQW9aQTtBQUNBO0FBclpBO0FBeVpBO0FBQ0E7QUFDQTtBQUNBO0FBNVpBO0FBOFpBO0FBQ0E7QUEvWkE7QUFvYUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXhhQTtBQTJhQTtBQTNhQTtBQTZhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5iQTtBQXFiQTtBQXJiQTs7QUF3YkE7QUF4YkE7O0FBNGJBO0FBNWJBO0FBZ2NBO0FBQ0E7QUFDQTtBQWxjQTtBQW9jQTtBQXBjQTtBQXNjQTtBQXRjQTtBQXdjQTtBQXhjQTtBQThjQTtBQUNBO0FBQ0E7QUFDQTtBQWpkQTtBQW1kQTtBQW5kQTtBQXFkQTtBQXJkQTtBQXlkQTtBQXpkQTtBQStkQTtBQUNBO0FBQ0E7QXhEaUVBO0F3RGxpQkE7QUFtZUE7QUFuZUE7QUF5ZUE7QUFDQTtBQUNBO0F4RHVEQTtBd0RsaUJBO0FBNmVBO0FBN2VBO0FBcWZBO0FBcmZBO0FBd2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBOWZBO0FBaWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0Z0JBO0FBeWdCQTtBQXpnQkE7QUE2Z0JBO0FBQ0E7QUE5Z0JBO0FBaWhCQTtBQWpoQkE7QUF1aEJBO0FBQ0E7QUF4aEJBO0FBMmhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXZpQkE7QUF5aUJBO0FBemlCQTtBQTZpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbGpCQTtBQXFqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXpqQkE7QUE0akJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbGtCQTtBQXNrQkE7QUF0a0JBO0FBMmtCQTtBQUNBO0F4RDFDQTtBd0RvREE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBSUE7QUFTQTtBQUtBO0FBTEE7QUFRQTtBQUNBO0FBTUE7QUFLQTtBQUxBO0FBUUE7QUFDQTtBQU1BO0FBS0E7QUFMQTtBQVFBO0FBQ0E7QUFDQTtBQzlvQkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU1BO0FBTkE7QUFTQTtBekR1Z0JBO0F5RGhoQkE7QUFZQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekRvZkE7QXlEMWZBOztBQVVBO0F6RGdmQTtBeUQxZkE7QUFjQTtBekQ0ZUE7QXlEemVBO0FBRUE7QXpEdWVBO0F5RDlmQTtBQTRCQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekR1ZEE7QXlEL2RBO0FBV0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXpEeWNBO0F5RDVjQTtBQUtBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QXpEaWNBO0F5RHBjQTtBQUtBO0FBTEE7QUFRQTtBQUNBO0FBVEE7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQWZBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0QkE7QUF3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTVCQTtBQStCQTtBQUNBO0FBaENBO0FBb0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFOQTtBQVNBO0FBVEE7QUFTQTtBQVRBO0FBU0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekQrWEE7QXlEeFlBO0FBWUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBUEE7QUFLQTtBQUNBO0FBQ0E7QUFQQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBekR1VkE7QXlEL1ZBO0FBVUE7QUFDQTtBQVhBO0FBY0E7QUFDQTtBQUNBO0FBaEJBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0QkE7QUEyQkE7QUFDQTtBQTVCQTtBQThCQTtBQTlCQTtBQWdDQTtBQUNBO0FBQ0E7QUFDQTtBQW5DQTs7O0FBdUNBO0FBdkNBOzs7QUF5Q0E7QUF6Q0E7QUE2Q0E7QUE3Q0E7QUFnREE7QUFoREE7QUFtREE7QUFuREE7QUFxREE7QUFDQTtBekR5U0E7QXlEL1ZBO0FBOERBO0FBOURBO0FBbUVBO0FBbkVBO0FBc0VBO0FBQ0E7QUFDQTtBQXhFQTtBQTBFQTtBQUNBO0FBM0VBO0FBK0VBO0FBQ0E7QUFoRkE7QUFvRkE7QUFDQTtBQUNBO0FBQ0E7QUF2RkE7QUEwRkE7QUFDQTtBQUNBO0FBNUZBO0FBOEZBO0FBQ0E7QUFDQTtBQWhHQTtBQXFHQTtBQXJHQTtBQXVHQTtBQUNBO0FBdlFBO0FBaVJBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FuRXpVQTs7QW9FRUE7QWxFRkE7OztBa0VNQTtBcEVJQTtBQWdCQTs7QW9FaEJBO0FwRVZBOztBb0VhQTtBbEViQTs7O0FrRWlCQTtBcEVQQTtBQWdCQTs7QW9FTEE7QVhyQkE7Ozs7Ozs7OztBVytCQTtBcEUvQkE7O0FvRWtDQTtBbEVsQ0E7OztBa0VzQ0E7QXBFNUJBO0FBZ0JBOztBb0VnQkE7QS9EMUNBOzs7Ozs7OztBK0RtREE7QTlEbkRBO0FBU0E7QU5UQTs7QW9Fd0RBO0FsRXhEQTs7O0FrRTREQTtBcEVsREE7QUFnQkE7O0FvRXNDQTtBbEJoRUE7QUFtREE7QUNXQTtBbkQ5REE7O0FvRXNFQTtBbEV0RUE7OztBa0UwRUE7QXBFaEVBO0FBZ0JBOztBb0VvREE7QS9EOUVBOzs7Ozs7OztBK0R1RkE7QTlEdkZBO0FBU0E7QU5UQTs7QW9FNEZBO0FsRTVGQTs7O0FrRWdHQTtBcEV0RkE7QUFnQkE7O0FvRTBFQTtBQ2hFQTtBQUdBO0EzRHNnQkE7QTJEemdCQTtBQU9BO0FBSUE7QUFDQTtBQUdBO0FadkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FZbUNBO0FBQ0E7QUFEQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFlQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFwQkE7QUF3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBR0E7QUFNQTtBaEJzQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBZ0JoREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FoQndEQTtBQUNBO0FnQnpEQTtBaEJzRkE7QWdCdEZBO0FoQmtFQTtBZ0JsRUE7QWhCc0VBO0FBQ0E7QUFDQTtBQUNBO0FnQnpFQTtBaEJzRUE7QUFDQTtBQUNBO0FBQ0E7QWdCekVBO0FoQnNFQTtBQUNBO0FBQ0E7QUFDQTtBZ0J6RUE7QWhCNkVBO0EzQ2dZQTtBMkQ3Y0E7QUFVQTtBQUtBO0FBRUE7QUFDQTtBQUhBO0FBT0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0EzRHVaQTtBMkRqYUE7QUFvQkE7QUFwQkE7QUEwQkE7QUFJQTtBWjlKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBWTBKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBWkE7QTdEM0lBO0FBQ0E7QUFDQTtBNkR5SUE7QTdEcElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E2RHdHQTtBN0QxRkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E2RGtGQTtBN0R0RUE7QUFHQTtBQUNBO0FBQ0E7QTZEaUVBO0FBZUE7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QVo1TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QVl3TkE7QUFDQTtBQUNBO0FBQ0E7QTNEOFRBO0EyRGpVQTtBQU1BO0FBSUE7QTNEdVRBO0EyRGpVQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QXJFaFFBOztBc0VFQTtBcEVGQTs7O0FvRU1BO0F0RUlBO0FBZ0JBOztBc0VoQkE7QXRFVkE7O0FzRWFBO0FwRWJBOzs7QW9FaUJBO0F0RVBBO0FBZ0JBOztBc0VMQTtBdEVyQkE7O0FzRXdCQTtBcEV4QkE7OztBb0U0QkE7QXRFbEJBO0FBZ0JBOztBc0VNQTtBYmhDQTs7Ozs7Ozs7O0FhMENBO0F0RTFDQTs7QXNFNkNBO0FwRTdDQTs7O0FvRWlEQTtBdEV2Q0E7QUFnQkE7O0FzRTJCQTtBQ3JEQTtBQVNBO0FDeUJBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QTlEcWdCQTtBOEQzZ0JBO0FBU0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0E5RGlmQTtBOEQvZkE7QUFtQkE7QTlENGVBO0E4RHhlQTtBQVVBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBVUE7QUFWQTtBQWNBO0FBZEE7QUFtQkE7QUFJQTtBQUVBO0FBS0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWY3SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QS9DeWhCQTtBOEQxYUE7QWYzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBZTJIQTtBQ25JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FEd0hBO0FBQ0E7QUFDQTtBQUNBO0FBcUJBO0E5RHdYQTtBOERuWkE7QUFhQTtBQWlCQTtBQzVJQTtBQUNBO0FEK0lBO0FDM0lBO0FBQ0E7QUQ4SUE7QUMxSUE7QUFDQTtBRDZJQTtBQUNBO0FBd0JBO0FDL0pBO0FBQ0E7QUM1REE7QUFHQTtBQUNBO0FoRXNpQkE7QWdFMWlCQTtBQU1BO0FBQ0E7QWhFbWlCQTtBZ0UxaUJBO0FBVUE7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBaEVnZkE7QWdFbGZBO0FBSUE7QWhFOGVBO0FnRWxmQTtBQU9BO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFaQTtBQWlCQTtBQWpCQTtBQXFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFFQTtBQUNBO0FoRTRjQTtBZ0UxaUJBO0FBa0dBOztBQ3JHQTs7O0FBSUE7QUFDQTtBQUVBOztBQUVBO0FBQ0E7O0EzRVZBOztBNEVFQTtBMUVGQTs7O0EwRU1BO0E1RUlBO0FBZ0JBOztBNEVoQkE7QUNBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFKQTtBQVFBO0FBUkE7QUFXQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBR0E7QUFFQTtBQUlBO0FBRUE7QUFDQTtBN0VoRkE7O0E0RXdEQTtBMUV4REE7OztBMEU0REE7QTVFbERBO0FBZ0JBOztBNEVzQ0E7QUVyREE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUlBO0FBSkE7QUFRQTtBQVJBO0FBV0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBUUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUdBO0FBRUE7QUFGQTtBQU1BO0FBS0E7QUFFQTtBQUZBO0FBTUE7O0E5RXpGQTs7QStFRUE7QTdFRkE7OztBNkVNQTtBL0VJQTtBQWdCQTs7QStFaEJBO0EvRVZBOztBK0VhQTtBN0ViQTs7O0E2RWlCQTtBL0VQQTtBQWdCQTs7QStFTEE7QS9FckJBOztBK0V3QkE7QTdFeEJBOzs7QTZFNEJBO0EvRWxCQTtBQWdCQTs7QStFTUE7QUM3QkE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBdEVnaUJBO0FzRXBpQkE7QUFRQTtBQUlBO0FBQ0E7QXRFdWhCQTtBc0V4aEJBO0FBSUE7QUFHQTtBQUNBO0FBQ0E7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2RXFpQkE7QXVFdmlCQTtBQUlBOztBakZWQTs7QWtGRUE7QWhGRkE7OztBZ0ZNQTtBbEZJQTtBQWdCQTs7QWtGaEJBO0FDU0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBS0E7QUFDQTs7QW5GMUVBOztBb0ZFQTtBbEZGQTs7O0FrRk1BO0FwRklBO0FBZ0JBOztBb0ZoQkE7QXBGVkE7O0FvRmFBO0FsRmJBOzs7QWtGaUJBO0FwRlBBO0FBZ0JBOztBb0ZMQTtBcEZyQkE7O0FvRndCQTtBbEZ4QkE7OztBa0Y0QkE7QXBGbEJBO0FBZ0JBOztBb0ZNQTtBL0VoQ0E7Ozs7Ozs7O0ErRXlDQTtBOUV6Q0E7QUFTQTtBTlRBOztBb0Y4Q0E7QWxGOUNBOzs7QWtGa0RBO0FwRnhDQTtBQWdCQTs7QW9GNEJBO0FsRnREQTs7O0FrRjBEQTtBcEYxREE7O0FvRjZEQTtBbEY3REE7OztBa0ZpRUE7QXBGdkRBO0FBZ0JBOztBb0YyQ0E7QXZDckVBO0FBTUE7QXdDdUNBO0FBaUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV0E7QUE3QkE7QUF1QkE7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBdEN2RUE7QXNDa0ZBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QXRDbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbUJBO0FBVUE7QUFBQTtBc0NnQ0E7QXRDekJBO0FzQ3lCQTtBdENoQkE7QXNDZ0JBO0F0Q3FJQTtBQUNBO0FzQ3RJQTtBdEMwSUE7QXNDMUlBO0F0QytJQTtBQUNBO0FzQ2hKQTtBdENvSkE7QUFDQTtBc0NwSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFtQkE7QUFDQTtBQXJCQTtBQUtBO0FBTEE7QUFTQTtBQUlBO0FBRUE7QUFDQTtBQVNBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QTNFOFZBO0EyRWpXQTtBQU1BO0FBRUE7QUFDQTtBQUNBO0FBMkJBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QUFWQTtBQU1BO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQU1BO0FBTkE7QTdFclBBO0FBQ0E7QUFDQTtBNkVtUEE7QTdFOU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E2RWtOQTtBN0VwTUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E2RTRMQTtBN0VoTEE7QUFHQTtBQUNBO0FBQ0E7QTZFbUxBO0E3RXJRQTtBNkUwUUE7QUFHQTtBM0R1RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBMkQzSEE7QUFDQTtBQUdBO0FBTUE7QUFOQTtBN0U5UUE7QUFDQTtBQUNBO0E2RTRRQTtBN0V2UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QTZFcU9BO0E3RTdOQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QTZFK01BO0E3RXpNQTtBQVNBO0FBQ0E7QUFDQTtBNkVzTUE7QTdFOVJBO0E2RW1TQTtBQUdBO0EzRDhEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0EyRGxHQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBN0V2U0E7QUFDQTtBQUNBO0FBQ0E7QTZFb1NBO0E3RWhTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBNkU4UEE7QTdFdFBBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBNkV3T0E7QTdFbE9BO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QTZFME9BO0E3RW5VQTtBNkV3VUE7QUFDQTtBQUVBO0EzRHlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0EyRDdEQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0EzRTRIQTtBMkV6SEE7QUFFQTtBM0V1SEE7QTJFaEpBO0FBOEJBO0EzRWtIQTtBMkVoSkE7QUFrQ0E7QUFDQTtBQW5DQTtBQWdEQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFqRkE7QUFzRkE7QUFDQTtBQUNBO0FBd0VBO0FBRUE7QUFDQTtBQ2xpQkE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpCQTtBQW9CQTtBQXBCQTtBQXdCQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFXQTtBQTdCQTtBQXVCQTtBQUNBO0FBQ0E7QUFRQTtBdkNyQ0E7QXVDZ0RBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QXZDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbUJBO0FBVUE7QUFBQTtBdUNGQTtBdkNTQTtBdUNUQTtBdkNrQkE7QXVDbEJBO0F2Q3VLQTtBQUNBO0F1Q3hLQTtBdkM0S0E7QXVDNUtBO0F2Q2lMQTtBQUNBO0F1Q2xMQTtBdkNzTEE7QXVDcktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBbUJBO0FBQ0E7QUFyQkE7QUFLQTtBQUxBO0FBU0E7QUFJQTtBQUVBO0FBVUE7QUFDQTtBQURBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBNUU0WUE7QTRFOVlBO0FBSUE7QUFUQTtBQWNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBNUV5WEE7QTRFNVhBO0FBTUE7QUFFQTtBQUNBO0FBNEJBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFiQTtBQU1BO0E1RWlWQTtBNEV2VkE7QUFRQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVdBO0E1RXNUQTtBNEV0VUE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBZUE7QUFDQTtBQUdBO0FBbkJBO0FBeUJBO0FBQ0E7QUFHQTtBQTdCQTtBQWlDQTtBQUNBO0FBQ0E7QUFNQTtBQUdBO0FBSEE7QTlFclFBO0FBQ0E7QUFDQTtBOEVtUUE7QTlFOVBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E4RWtPQTtBOUVwTkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E4RTRNQTtBOUVoTUE7QUFHQTtBQUNBO0FBQ0E7QThFZ01BO0E5RWxSQTtBOEVvUkE7QUFHQTtBNUQ2RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBNERwSEE7QUFJQTtBQUdBO0FBSEE7QTlFclJBO0FBQ0E7QUFDQTtBOEVtUkE7QTlFOVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E4RTRPQTtBOUVwT0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E4RXNOQTtBOUVoTkE7QUFTQTtBQUNBO0FBQ0E7QThFME1BO0E5RWxTQTtBOEVvU0E7QUFHQTtBNUQ2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBNERwR0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QTlFclNBO0FBQ0E7QUFDQTtBOEVtU0E7QTlFOVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E4RTRQQTtBOUVwUEE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0E4RXNPQTtBOUVoT0E7QUFTQTtBQUNBO0FBQ0E7QThFcU9BO0E5RTdUQTtBOEUrVEE7QUFHQTtBNURrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBNER6RUE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNUU2SUE7QTRFMUpBO0FBZ0JBO0FBaEJBO0FBb0JBO0E1RXNJQTtBNEUxSkE7QUF5QkE7QUFJQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0E1RXNIQTtBNEVuSEE7QUFFQTtBNUVpSEE7QTRFMUpBO0FBOENBO0E1RTRHQTtBNEUxSkE7QUFrREE7QUFDQTtBQW5EQTtBQWdFQTtBQUNBO0FBakVBO0FBbUVBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUF0R0E7QUEyR0E7QUFDQTtBQUNBO0FBaUVBO0FBRUE7QUFGQTtBQUlBOztBdEZwakJBOztBdUZFQTtBckZGQTs7O0FxRk1BO0F2RklBO0FBZ0JBOztBdUZoQkE7QXZGVkE7O0F1RmFBO0FyRmJBOzs7QXFGaUJBO0F2RlBBO0FBZ0JBOztBdUZMQTtBbEZyQkE7Ozs7Ozs7O0FrRjhCQTtBakY5QkE7QUFTQTtBTlRBOztBdUZtQ0E7QXJGbkNBOzs7QXFGdUNBO0F2RjdCQTtBQWdCQTs7QXVGaUJBO0F2RjNDQTs7QXVGOENBO0FyRjlDQTs7O0FxRmtEQTtBdkZ4Q0E7QUFnQkE7O0F1RjRCQTtBbEZ0REE7Ozs7Ozs7O0FrRitEQTtBakYvREE7QUFTQTtBTlRBOztBdUZvRUE7QXJGcEVBOzs7QXFGd0VBO0F2RjlEQTtBQWdCQTs7QXVGa0RBO0FyQzVFQTtBQW1EQTtBQ1dBO0FuRDlEQTs7QXVGa0ZBO0FyRmxGQTs7O0FxRnNGQTtBdkY1RUE7QUFnQkE7O0F1RmdFQTtBOUIxRkE7Ozs7Ozs7OztBOEJvR0E7QXJGcEdBOzs7QXFGd0dBO0FDakRBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBT0E7QTlFbWNBO0E4RTljQTtBQU9BO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QUFqQkE7QUFXQTtBQUNBO0FBU0E7QUFFQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBSkE7O0FBVUE7QUFWQTtBQWNBO0FBS0E7QUFFQTtBQUdBO0FBSUE7QUFDQTtBQUNBO0FBV0E7QUFDQTtBQWxCQTtBQVVBO0FBQ0E7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBS0E7QUFDQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQVNBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QW5DL0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW1DcUpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBbkM3SUE7QUFDQTtBbUM0SUE7QW5DL0dBO0FtQytHQTtBbkNuSUE7QW1DbUlBO0FuQy9IQTtBQUNBO0FBQ0E7QUFDQTtBbUM0SEE7QW5DL0hBO0FBQ0E7QUFDQTtBQUNBO0FtQzRIQTtBbkMvSEE7QUFDQTtBQUNBO0FBQ0E7QW1DNEhBO0FuQ3hIQTtBbUNxSUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FoRjNQQTtBQUNBO0FBQ0E7QWdGeVBBO0FoRnBQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBZ0Z3TkE7QWhGMU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBZ0ZrTUE7QWhGdExBO0FBR0E7QUFDQTtBQUNBO0FnRjZMQTtBaEYvUUE7QWdGc1JBO0E5RDhFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFDQTtBOEQvRUE7OztBQU1BO0FBTUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBR0E7QUFJQTtBL0JuV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QStCZ1dBO0FBSUE7QUFNQTtBQUVBO0FBQ0E7QXhGallBOztBdUZxV0E7QXJGcldBOzs7QXFGeVdBO0F2Ri9WQTtBQWdCQTs7QXVGbVZBO0FFM1ZBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBL0U4ZUE7QStFeGZBO0FBTUE7QUFRQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QUFqQkE7QUFXQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUdBO0FBQ0E7QUFDQTtBQUxBO0FBU0E7QUFUQTs7QUFlQTtBQUNBO0FBQ0E7QUFqQkE7O0FBbUJBO0FBQ0E7QUFDQTtBQXJCQTs7QUF3QkE7QUF4QkE7QUE4QkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBOztBQUVBO0FBQ0E7QUFDQTtBL0U4WUE7QStFbFpBOztBQU1BO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QXBDcENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW9DMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBcENsQkE7QUFDQTtBb0NpQkE7QXBDWUE7QW9DWkE7QXBDUkE7QW9DUUE7QXBDSkE7QUFDQTtBQUNBO0FBQ0E7QW9DQ0E7QXBDSkE7QUFDQTtBQUNBO0FBQ0E7QW9DQ0E7QXBDSkE7QUFDQTtBQUNBO0FBQ0E7QW9DQ0E7QXBDR0E7QW9DVUE7QWpGaElBO0FBQ0E7QUFDQTtBaUY4SEE7QWpGekhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpRjZGQTtBakYvRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpRnVFQTtBakYzREE7QUFHQTtBQUNBO0FBQ0E7QWlGc0RBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFNQTtBakYxSkE7QWlGaUtBO0EvRG1NQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFDQTtBK0RwTUE7OztBQU1BO0FBTUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBR0E7QUFJQTtBaEM5T0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QWdDMk9BO0FBSUE7QUFNQTtBQUVBOztBekYzUUE7O0EwRkVBO0F4RkZBOzs7QXdGTUE7QTFGSUE7QUFnQkE7O0EwRmhCQTtBQ3lCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7QTNGaEhBOztBNEZFQTtBMUZGQTs7O0EwRk1BO0E1RklBO0FBZ0JBOztBNEZoQkE7QTVGVkE7O0E0RmFBO0ExRmJBOzs7QTBGaUJBO0E1RlBBO0FBZ0JBOztBNEZMQTtBNUVyQkE7QUFZQTtBaEJaQTs7QTRGMEJBO0ExRjFCQTs7O0EwRjhCQTtBNUZwQkE7QUFnQkE7O0E0RlFBO0E1RmxDQTs7QTRGcUNBO0ExRnJDQTs7O0EwRnlDQTtBNUYvQkE7QUFnQkE7O0E0Rm1CQTtBdkY3Q0E7Ozs7Ozs7O0F1RnNEQTtBdEZ0REE7QUFTQTtBTlRBOztBNEYyREE7QTFGM0RBOzs7QTBGK0RBO0E1RnJEQTtBQWdCQTs7QTRGeUNBO0FuQ25FQTs7Ozs7Ozs7O0FtQzZFQTtBNUY3RUE7O0E0RmdGQTtBMUZoRkE7OztBMEZvRkE7QTVGMUVBO0FBZ0JBOztBNEY4REE7QUNuRUE7QUFFQTs7O0FBS0E7QUFDQTtBQU5BOzs7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7OztBQWlCQTtBQUNBO0FBQ0E7QUFDQTtBQXBCQTs7O0FBdUJBO0FBQ0E7QUFDQTtBQXpCQTs7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXZDQTs7O0FwQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FvQ0dBOzs7QUE4Q0E7QUFDQTtBQS9DQTs7O0FBbURBO0FBQ0E7QUFDQTtBQUNBO0FuRmdlQTtBbUZ0aEJBOzs7QUF5REE7QUF6REE7Ozs7OztBQWtFQTtBQWxFQTs7Ozs7O0FyRmdDQTtBQUNBO0FBQ0E7QXFGbENBOzs7Ozs7Ozs7OztBckZ1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXFGbkVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FyRmlGQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXFGekZBOzs7Ozs7Ozs7OztBckZxR0E7QUFHQTtBQUNBO0FBQ0E7QUU0YUE7QW1GdGhCQTs7Ozs7O0FBcUVBO0FBckVBOzs7Ozs7QXJGd0JBO0FxRnhCQTs7Ozs7O0FBc0ZBO0FBdEZBOzs7Ozs7QXJGZ0NBO0FBQ0E7QUFDQTtBcUZsQ0E7Ozs7Ozs7Ozs7O0FyRnVDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBcUZ6RUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QXJGaUZBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBcUYvRkE7Ozs7Ozs7Ozs7O0FyRnFHQTtBQVNBO0FBQ0E7QUFDQTtBRXNhQTtBbUZ0aEJBOzs7Ozs7QUF5RkE7QUFDQTtBQTFGQTs7Ozs7O0FyRndCQTtBcUY2RUE7Ozs7OztBQUtBO0FBTEE7Ozs7OztBckZyRUE7QUFDQTtBQUNBO0FxRm1FQTs7Ozs7Ozs7Ozs7QXJGOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FxRjRCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBckZwQkE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FxRk1BOzs7Ozs7Ozs7OztBckZBQTtBQVNBO0FBQ0E7QUFDQTtBcUZYQTs7Ozs7O0FyRjdFQTtBcUZ4QkE7OztBQTBIQTtBQTFIQTs7O0FyRmdDQTtBQUNBO0FBQ0E7QXFGbENBOzs7OztBckZ1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXFGbkVBOzs7Ozs7Ozs7Ozs7O0FyRmlGQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXFGekZBOzs7OztBckZxR0E7QUFHQTtBQUNBO0FBQ0E7QXFGMUdBOzs7QXJGd0JBO0FBQ0E7QXFGekJBOzs7QXpGbkJBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EyRXlJQTtBQUNBO0FBQ0E7QUFDQTtBbkY0WUE7QW1GellBO0FBR0E7QUFDQTtBbkZxWUE7QW1GallBO0FBR0E7QUFDQTtBbkY2WEE7QW1GallBOztBQVNBO0FBQ0E7QW5GdVhBO0FtRmpZQTs7QUFnQkE7QUFDQTtBQUNBO0FBS0E7QUFFQTtBQUNBO0FuRnVXQTtBbUYxV0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRUE7O0E3RnROQTs7QThGRUE7QTVGRkE7OztBNEZNQTtBOUZJQTtBQWdCQTs7QThGaEJBO0E5RlZBOztBOEZhQTtBNUZiQTs7O0E0RmlCQTtBOUZQQTtBQWdCQTs7QThGTEE7QXpGckJBOzs7Ozs7OztBeUY4QkE7QXhGOUJBO0FBU0E7QU5UQTs7QThGbUNBO0E1Rm5DQTs7O0E0RnVDQTtBOUY3QkE7QUFnQkE7O0E4RmlCQTtBQ2xDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckZrZ0JBO0FxRnZnQkE7QUFRQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJGcWZBO0FxRjFmQTtBQVFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckZ3ZUE7QXFGN2VBO0FBUUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0F2RnpCQTtBQUNBO0FBQ0E7QUFDQTtBdUZzQkE7QXZGbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0F1RlZBO0F2RndCQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXVGaENBO0F2RjRDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0F1RjNDQTtBdkZ4Q0E7QUFDQTtBdUY4Q0E7QXJFcVRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7O0ExQjViQTs7QWdHRUE7QTlGRkE7OztBOEZNQTtBaEdJQTtBQWdCQTs7QWdHaEJBO0FDVkE7Ozs7Ozs7Ozs7QURxQkE7QWhHckJBOztBZ0d3QkE7QTlGeEJBOzs7QThGNEJBO0FoR2xCQTtBQWdCQTs7QWdHTUE7QUVQQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFEQTtBQUlBO0FBcENBO0FBMENBO0FBMUNBO0FBOENBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUtBO0FBa0JBO0FBQ0E7QUFDQTtBQUZBO0FBTUE7QUFOQTtBQVlBO0FBS0E7QUFDQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUlBO0FBQ0E7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFJQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBUUE7QUFSQTtBQVlBO0FBQ0E7QUFiQTtBQWlCQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBQUtBO0FBRUE7QUFGQTtBQU1BO0FBcE5BO0FBMk5BO0FBM05BO0FBOE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQVhBO0FBZUE7QUFJQTtBQW5CQTtBQW9CQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQVJBO0FBWUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUR2VEE7QUN1VEE7QURwVEE7QUFDQTtBQUNBO0FBQ0E7QUNpVEE7QUQ3U0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQ2dUQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUR4VUE7QUN3VUE7QURyVUE7QUNxVUE7QURqVUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FDb1VBO0FBQ0E7QXhGbUxBO0F3RnBMQTtBQUlBOztBbEc3WEE7O0FtR0VBO0FqR0ZBOzs7QWlHTUE7QW5HSUE7QUFnQkE7O0FtR2hCQTtBbkdWQTs7QW1HYUE7QWpHYkE7OztBaUdpQkE7QW5HUEE7QUFnQkE7O0FtR0xBO0ExQ3JCQTs7Ozs7Ozs7O0EwQytCQTtBbkcvQkE7O0FtR2tDQTtBakdsQ0E7OztBaUdzQ0E7QW5HNUJBO0FBZ0JBOztBbUdnQkE7QTlGMUNBOzs7Ozs7OztBOEZtREE7QTdGbkRBO0FBU0E7QU5UQTs7QW1Hd0RBO0FqR3hEQTs7O0FpRzREQTtBbkdsREE7QUFnQkE7O0FtR3NDQTtBakRoRUE7QUFtREE7QUNXQTtBbkQ5REE7O0FtR3NFQTtBakd0RUE7OztBaUcwRUE7QW5HaEVBO0FBZ0JBOztBbUdvREE7QTlGOUVBOzs7Ozs7OztBOEZ1RkE7QTdGdkZBO0FBU0E7QU5UQTs7QW1HNEZBO0FqRzVGQTs7O0FpR2dHQTtBbkd0RkE7QUFnQkE7O0FtRzBFQTtBQzlFQTtBQUNBO0FBQ0E7QTFGcWhCQTtBMEZ2aEJBO0FBS0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExRjJnQkE7QTBGL2dCQTtBQU9BO0ExRndnQkE7QTBGL2dCQTtBQVdBO0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QTNDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0EyQzRDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBTUE7QUFDQTtBQVBBO0E1RmZBO0FBQ0E7QUFDQTtBNEZhQTtBNUZSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNEZwQkE7QTVGa0NBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNEYxQ0E7QTVGc0RBO0FBR0E7QUFDQTtBQUNBO0E0RmpEQTtBMUVtVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBQ0E7QTBFM1VBO0FBQ0E7QUFDQTs7QXBHeEZBOztBcUdFQTtBbkdGQTs7O0FtR01BO0FyR0lBO0FBZ0JBOztBcUdoQkE7QXJHVkE7O0FxR2FBO0FuR2JBOzs7QW1HaUJBO0FyR1BBO0FBZ0JBOztBcUdMQTtBckdyQkE7O0FxR3dCQTtBbkd4QkE7OztBbUc0QkE7QXJHbEJBO0FBZ0JBOztBcUdNQTtBckdoQ0E7O0FxR21DQTtBbkduQ0E7OztBbUd1Q0E7QXJHN0JBO0FBZ0JBOztBcUdpQkE7QXJHM0NBOztBcUc4Q0E7QW5HOUNBOzs7QW1Ha0RBO0FyR3hDQTtBQWdCQTs7QXFHNEJBO0FyR3REQTs7QXFHeURBO0FuR3pEQTs7O0FtRzZEQTtBckduREE7QUFnQkE7O0FxR3VDQTtBNUNqRUE7Ozs7Ozs7OztBNEMyRUE7QXJHM0VBOztBcUc4RUE7QW5HOUVBOzs7QW1Ha0ZBO0FyR3hFQTtBQWdCQTs7QXFHNERBO0E5QnRGQTtBQVNBO0FDeUJBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QTlEcWdCQTtBOEQzZ0JBO0FBU0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVFBO0E5RGlmQTtBOEQvZkE7QUFtQkE7QTlENGVBO0E4RHhlQTtBQVVBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBVUE7QUFWQTtBQWNBO0FBZEE7QUFtQkE7QUFJQTtBQUVBO0FBS0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWY3SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QS9DeWhCQTtBOEQxYUE7QWYzR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBZTJIQTtBQ25JQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FEd0hBO0FBQ0E7QUFDQTtBQUNBO0FBcUJBO0E5RHdYQTtBOERuWkE7QUFhQTtBQWlCQTtBQzVJQTtBQUNBO0FEK0lBO0FDM0lBO0FBQ0E7QUQ4SUE7QUMxSUE7QUFDQTtBRDZJQTtBQUNBO0FBd0JBO0FDL0pBO0FBQ0E7QUM1REE7QUFHQTtBQUNBO0FoRXNpQkE7QWdFMWlCQTtBQU1BO0FBQ0E7QWhFbWlCQTtBZ0UxaUJBO0FBVUE7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBaEVnZkE7QWdFbGZBO0FBSUE7QWhFOGVBO0FnRWxmQTtBQU9BO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFaQTtBQWlCQTtBQWpCQTtBQXFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFFQTtBQUNBO0FoRTRjQTtBZ0UxaUJBO0FBa0dBO0FBQ0E7QTRCeEZBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUEyQkE7QUFDQTtBQUNBO0FBQ0E7QUE5QkE7QUFrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFJQTtBQUtBO0FBTEE7QUFTQTtBQVRBO0FBYUE7QUFiQTtBQWtCQTtBQWxCQTtBQXVCQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBaUJBO0FBQ0E7QUFDQTtBQW5CQTtBQXVCQTtBQUNBO0FBeEJBO0FBNEJBO0FBQ0E7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0E1Rm9aQTtBNEZoYUE7QUFnQkE7QUFDQTtBQzNKQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBS0E7QUFDQTtBQU5BO0FBWUE7QUFDQTtBQUlBO0FBSUE7O0F2R2hDQTs7QXdHRUE7QXRHRkE7OztBc0dNQTtBeEdJQTtBQWdCQTs7QXdHaEJBO0F4R1ZBOztBd0dhQTtBdEdiQTs7O0FzR2lCQTtBeEdQQTtBQWdCQTs7QXdHTEE7QW5HckJBOzs7Ozs7OztBbUc4QkE7QXhHOUJBOztBd0dpQ0E7QXRHakNBOzs7QXNHcUNBO0F4RzNCQTtBQWdCQTs7QXdHZUE7QTNEekNBO0FBTUE7QTNDTkE7OztBc0crQ0E7QUNDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFHQTtBQUVBO0FBR0E7QUFHQTtBQTVCQTtBQWtDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBdENBO0FBOENBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQVBBO0FBV0E7QUFHQTtBQUVBO0FBQ0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVRBO0FBYUE7QUFiQTtBQWlCQTtBQVdBO0FBRUE7QUFGQTtBQU1BO0FBTkE7QUFVQTtBQVZBO0FBY0E7QUFkQTtBQW9CQTtBQUNBO0FBQ0E7QUF0QkE7QUE0QkE7QUFLQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBREE7QUFJQTtBQU9BO0FBQ0E7QUFEQTtBQUlBO0FBUUE7QTFEMUxBO0EwRDBMQTtBMUR0TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE2QkE7QUFBQTtBMERtSkE7QTFEbklBO0EwRG1JQTtBMUQzSEE7QUFDQTtBMEQwSEE7QTFEM0dBO0FBQ0E7QTBEMEdBO0ExRHpGQTtBQUNBO0EwRHdGQTtBMUQ1RUE7QUFDQTtBMEQ2RkE7QTFENU1BO0EwRDRNQTtBMUR4TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE2QkE7QUFBQTtBMERxS0E7QTFEckpBO0EwRHFKQTtBMUR2SUE7QUFDQTtBMERzSUE7QTFEdkhBO0FBQ0E7QTBEc0hBO0ExRGxEQTtBQUNBO0EwRGlEQTtBMURyQ0E7QUFDQTtBMERvQ0E7QUFlQTtBQW5OQTtBQThOQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBekd2U0E7O0EwR0VBO0F4R0ZBOzs7QXdHTUE7QTFHSUE7QUFnQkE7O0EwR2hCQTtBMUdWQTs7QTBHYUE7QXhHYkE7OztBd0dpQkE7QTFHUEE7QUFnQkE7O0EwR0xBO0FDUkE7QUFHQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FqR2doQkE7QWlHMWhCQTtBQWNBO0FBQ0E7QWpHMmdCQTtBaUcxaEJBO0FBbUJBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QWpHc2ZBO0FpRzlmQTtBQVdBO0FBR0E7QUFDQTtBQWpEQTtBQXVEQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFNQTtBQUNBO0FBQ0E7QUFoR0E7QUF1R0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzRy9IQTs7QTBHdUZBO0F4R3ZGQTs7O0F3RzJGQTtBMUdqRkE7QUFnQkE7O0EwR3FFQTtBRXpGQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBNUdYQTs7QTZHRUE7QTNHRkE7OztBMkdNQTtBN0dJQTtBQWdCQTs7QTZHaEJBO0E3R1ZBOztBNkdhQTtBM0diQTs7O0EyR2lCQTtBN0dQQTtBQWdCQTs7QTZHTEE7QTdGckJBO0FBWUE7QWhCWkE7O0E2RzBCQTtBM0cxQkE7OztBMkc4QkE7QTdHcEJBO0FBZ0JBOztBNkdRQTtBN0dsQ0E7O0E2R3FDQTtBM0dyQ0E7OztBMkd5Q0E7QTdHL0JBO0FBZ0JBOztBNkdtQkE7QUNyQ0E7QTFHSkE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTRGWEE7O0E5R1ZBOztBK0dFQTtBN0dGQTs7O0E2R01BO0EvR0lBO0FBZ0JBOztBK0doQkE7QS9HVkE7O0ErR2FBO0E3R2JBOzs7QTZHaUJBO0EvR1BBO0FBZ0JBOztBK0dMQTtBQ2ZBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEdnaUJBO0FzR3ZpQkE7QUFVQTtBQUNBO0F0RzRoQkE7QXNHdmlCQTtBQWVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXRHbWZBO0FzR3hmQTtBQVFBO0FBQ0E7QXRHK2VBO0FzR3hmQTtBQWFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QXRHcWVBO0FzR3ZlQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBUkE7QUFXQTtBdEc0ZEE7QXNHdmVBO0FBZ0JBO0FBQ0E7QUFqQkE7QUFvQkE7QUFLQTtBQUNBO0F0RzZjQTtBc0c5Y0E7QUFJQTtBQUNBO0FBQ0E7QXRHd2NBO0FzRzljQTtBQVVBO0FBQ0E7QUFJQTtBQUNBO0F0RzhiQTtBc0cvYkE7QUFLQTtBQUNBO0F0R3liQTtBc0cvYkE7QUFVQTtBdEdxYkE7QXNHL2JBO0FBY0E7QXRHaWJBO0FzRzdhQTtBQUdBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBdEdzWkE7QXNHelpBO0FBTUE7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBckVBO0FBeUVBO0FBQ0E7QUFLQTtBQUNBOztBaEhwT0E7O0FpSEVBO0EvR0ZBOzs7QStHTUE7QWpISUE7QUFnQkE7O0FpSGhCQTtBcEZWQTs7OztBb0ZlQTtBeERmQTs7Ozs7Ozs7O0F3RHlCQTtBQ2hCQTtBQ0hBO0FER0E7QUNBQTtBQUNBO0FEREE7QUNJQTtBREpBO0FDVUE7QUFDQTtBRFhBO0FDZ0JBO0FEaEJBO0FDcUJBO0FEckJBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQW9CQTtBQUlBOzs7QXpEckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0F5RFhBO0FBeUNBO0FBekNBOztBQThDQTtBQUNBO0FBQ0E7QUFoREE7O0FBbURBO0FBbkRBOztBQXVEQTtBQUNBO0FBeERBO0FBOERBO0FBQ0E7QUFDQTtBQUNBO0FBakVBO0FBdUVBO0FBQ0E7QUFDQTtBQUNBO0FBMUVBO0FBK0VBO0FBL0VBO0FBcUZBO0FBR0E7QUFFQTtBQTFGQTtBQWdHQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FsSGhJQTs7QWlIcUhBO0EvR3JIQTs7O0ErR3lIQTtBakgvR0E7QUFnQkE7O0FpSG1HQTtBakg3SEE7O0FpSGdJQTtBL0doSUE7OztBK0dvSUE7QWpIMUhBO0FBZ0JBOztBaUg4R0E7QUdoSUE7QUFFQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFSQTtBQWFBO0FBQ0E7QUFDQTtBQWZBO0FBb0JBO0FBQ0E7QUFyQkE7QUF1QkE7QUFDQTtBQXhCQTtBQTZCQTtBQUNBO0FBQ0E7QUFDQTtBQWhDQTtBQW1DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF4Q0E7QUE0Q0E7QUFJQTtBM0Q1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTJEWkE7QUErREE7QUFDQTtBQWhFQTs7QUFxRUE7QUFDQTtBQUNBO0FBdkVBOztBQTBFQTtBQTFFQTs7QUE4RUE7QUFDQTtBQS9FQTtBQW9GQTtBQUNBO0FBckZBO0FBdUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEzRkE7QUE4RkE7QUFDQTtBQS9GQTtBQWtHQTtBQUNBO0FBQ0E7QUFDQTtBQXJHQTtBQTJHQTtBQUNBO0FBNUdBO0FBK0dBO0FBQ0E7QUFDQTtBQUNBO0FBbEhBO0FBc0hBO0FBQ0E7QUFDQTtBQXhIQTs7QUE4SEE7QUE5SEE7QUFrSUE7QUFDQTtBQW5JQTtBQXdJQTtBQXhJQTtBQThJQTtBQUdBO0FBRUE7QUFuSkE7QUF5SkE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExRzBXQTtBMEdsWEE7O0FBVUE7O0FwSHJNQTs7QXFIRUE7QW5IRkE7OztBbUhNQTtBckhJQTtBQWdCQTs7QXFIaEJBO0FySFZBOztBcUhhQTtBbkhiQTs7O0FtSGlCQTtBckhQQTtBQWdCQTs7QXFITEE7QXJIckJBOztBcUh3QkE7QW5IeEJBOzs7QW1INEJBO0FySGxCQTtBQWdCQTs7QXFITUE7QXpGaENBO0FBU0E7QUNUQTs7OztBd0Z1Q0E7QW5IdkNBOzs7QW1IMkNBO0FwQjNDQTs7Ozs7Ozs7OztBb0JzREE7QUN0REE7Ozs7OztBRDZEQTtBcEY3REE7O0FvRmdFQTtBNURoRUE7Ozs7Ozs7OztBNEQwRUE7QTNHbWVBO0E2R2hZQTtBQUdBO0FBQ0E7QTdHNFhBO0E2R2hZQTtBQU1BO0FBQ0E7QTdHeVhBO0E2R2hZQTtBQVNBO0FBQ0E7QUFJQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHMldBO0E2R2xYQTtBQVdBO0FBSUE7QUFFQTtBQUlBOztBQUdBO0FBSUE7QUFDQTtBQURBO0FBYUE7QUFJQTtBQUlBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFGQTtBQUlBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFhQTtBQUNBO0E3R3dTQTtBNkd0VEE7QUFnQkE7QUFDQTtBQUNBO0FBbEJBO0FBb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF4QkE7QUE2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0d5UUE7QTZHalJBO0FBYUE7QUFDQTtBQWRBO0FBaUJBO0E3R2dRQTtBNkdqUkE7QUFtQkE7QUFDQTtBN0c2UEE7QTZHalJBO0FBdUJBO0FBQ0E7QTdHeVBBO0E2R2pSQTtBQTZCQTtBN0dvUEE7QTZHalJBO0FBa0NBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QTdHME5BO0E2RzVOQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0E3R29OQTtBNkd0TkE7QUFJQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0E3R2lNQTtBNkdwTUE7QUFNQTtBQUlBO0FBQ0E7QTdHeUxBO0E2RzFMQTtBQUlBO0FBdkJBO0FBK0JBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdEJsWUE7QXNCOFhBO0F0QjNYQTtBQUNBO0FBQ0E7QUFDQTtBc0J3WEE7QXRCcFhBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QXNCa1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0dxSUE7QTZHMUlBO0FBUUE7QUFSQTtBQVlBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3RzRHQTtBNkdoSEE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBN0dtR0E7QTZHckdBO0FBSUE7QUFLQTtBdEY1Y0E7QUFDQTtBQUNBO0FzRjZjQTtBQUNBO0FBR0E7QUFDQTtBQUtBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFJQTtBQUNBO0FBT0E7QUFTQTtBeEZ6ZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckJ5ZkE7QTZHN0NBO0FBR0E7QUFHQTtBeEZ4YkE7QUFDQTtBd0Z1YkE7QXhGNVpBO0F3RjRaQTtBeEZ6WkE7QXdGaWFBO0F4RnBkQTtBQUNBO0F3Rm1kQTtBeEZwYUE7QXdGb2FBO0F4RmphQTtBd0Z5YUE7QXhGbGRBO0FBQ0E7QXdGaWRBO0F4RjVhQTtBd0Y0YUE7QXhGemFBO0F3RmliQTtBeEZyZEE7QUFDQTtBd0ZvZEE7QXhGcGJBO0F3Rm9iQTtBeEZqYkE7QXdGeWJBO0F4RjljQTtBQUNBO0F3RjZjQTtBeEY1YkE7QXdGNGJBO0F4RnpiQTtBd0ZrY0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFUQTtBQWFBO0FBSUE7QXhGdGRBO0F3RnNkQTtBeEZuZEE7QXdGd2RBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QTdHdENBO0E2R21DQTtBQUtBO0FBQ0E7QTdHekNBO0E2R21DQTtBQVNBO0FBQ0E7QTdHN0NBO0E2R21DQTtBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QTdHMURBO0E2R3VEQTtBQU1BO0FBSUE7QUFDQTtBN0dsRUE7QTZHaUVBO0FBSUE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUVBO0FBRUE7QUFHQTtBQXhCQTtBQXlCQTtBN0dyR0E7QTZHNEVBO0FBMkJBO0E3R3ZHQTtBNkc0RUE7QUFnQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3R25JQTtBNkc2SEE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFkQTtBQWlCQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QTdHNUpBO0E2R29KQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0dwS0E7QTZHb0pBO0FBbUJBO0E3R3ZLQTtBNkdvSkE7QUFzQkE7QTdHMUtBO0E2RzhLQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBTUE7QUFaQTtBQWFBO0FBQ0E7QUFkQTs7QUFvQkE7QUFLQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0d2TkE7QTZHZ05BO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QTdHOU5BO0E2R2dOQTtBQWlCQTtBN0dqT0E7QTZHZ05BO0FBb0JBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFFQTtBQUNBO0E3RzFQQTtBNkd5UEE7QUFJQTtBQUlBO0FBQ0E7QTdHbFFBO0E2R2lRQTtBQUlBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFrQkE7QUFLQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBN0c1VEE7QTZHMFRBO0FBS0E7QTdHL1RBO0E2RzBUQTtBQVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBN0d0VkE7QTZHK1VBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTdHaldBO0E2RytVQTtBQXVCQTtBQUtBO0FBQ0E7QUExRUE7QUErRUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFNQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBTkE7QUFVQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QTdHcGJBO0E2R2liQTtBQU1BO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QTdHbGNBO0E2R2djQTtBQUtBO0FBSUE7QUFDQTtBN0cxY0E7QTZHeWNBO0FBSUE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7O0FBV0E7QUFLQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBTEE7O0FBV0E7QUFTQTtBQUVBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0czaEJBO0E2R3VoQkE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBN0c1akJBO0E2RzJqQkE7QUFHQTtBQUNBO0E3Ry9qQkE7QTZHMmpCQTtBQU9BO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3R2psQkE7QTZHNmtCQTtBQU9BO0E3R3BsQkE7QTZHc2xCQTtBQUVBO0FBS0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUF0QkE7QUF5QkE7QUF6QkE7QUE2QkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0E3R3JwQkE7QTZHMm9CQTtBQVlBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHM3FCQTtBNkdncUJBO0FBY0E7QUEvQ0E7QUFvREE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHbnNCQTtBNkd3ckJBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBN0dodEJBO0E2RzZzQkE7QUFNQTtBQUNBO0FBQ0E7QTdHcnRCQTtBNkd3ckJBO0FBbUNBO0FBTUE7QUFDQTtBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBN0c5dUJBO0E2R3d1QkE7QUFVQTtBQVZBO0FBYUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQURBO0FBR0E7QUF0Q0E7QUEyQ0E7QUEzQ0E7QUE2Q0E7QUFJQTs7QUFFQTtBQW5EQTtBQXVEQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUFDQTtBN0d0eUJBO0E2R3F5QkE7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFYQTtBQVlBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBOURuMkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0E4RGcyQ0E7QTlEeDJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBOERxMkNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdHaDFCQTtBNkc0MEJBO0FBT0E7QTdHbjFCQTtBNkc0MEJBO0FBV0E7QUFDQTtBQUNBO0E3R3oxQkE7QTZHNDBCQTtBQWlCQTtBQWpCQTtBQTJCQTtBQUNBO0FBNUJBO0FBOEJBO0FBOUJBO0FBa0NBO0FBbENBO0FBb0NBO0FBcENBO0FBdUNBO0FBQ0E7QUFPQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBN0dyNEJBO0E2R200QkE7QUFJQTtBQUNBO0FBTEE7QUFTQTtBN0c1NEJBO0E2R200QkE7QUFlQTtBQUNBO0FBaEJBO0FBaUJBO0FBQ0E7QUFDQTtBQUNBO0FBekJBOztBQWlDQTtBN0cvNUJBO0E2RzgzQkE7O0FBbUNBO0FBQ0E7QTdHbDZCQTtBNkc4M0JBO0FBMENBO0E3R3g2QkE7QTZHODNCQTtBQWlEQTtBQWpEQTtBQW9EQTtBN0dsN0JBO0E2RzgzQkE7QUE0REE7QUFDQTtBQU1BO0FBQ0E7QTdHbDhCQTtBNkdnOEJBO0FBT0E7QUFQQTtBQVNBO0FBQ0E7QTdHMThCQTtBNkdnOEJBO0FBZ0JBO0FBQ0E7QTdHajlCQTtBNkdnOEJBOztBQXlCQTtBQUNBO0E3RzE5QkE7QTZHZzhCQTtBQStCQTtBQS9CQTtBQWlDQTtBN0dqK0JBO0E2R2c4QkE7QUF3Q0E7QUE3R0E7QUFxSEE7QUFDQTtBQUNBO0FBdkhBO0FBNEhBO0E3R3YvQkE7QTZHMjNCQTtBQWtJQTtBQUNBO0FBbklBO0FBdUlBO0FBQ0E7QUFDQTtBQXpJQTtBQThJQTtBN0d6Z0NBO0E2RzIzQkE7QUFpSkE7QUFqSkE7QUFxSkE7QUFDQTtBQUNBO0FBQ0E7QTdHbmhDQTtBNkcyM0JBO0FBNEpBO0FBNUpBO0FBZ0tBO0FBQ0E7QUFDQTtBN0c3aENBO0E2RzIzQkE7QUF1S0E7QUF2S0E7QUEyS0E7QUFDQTtBQUNBO0FBN0tBO0FBbUxBO0E3RzlpQ0E7QTZHK2lDQTtBQUVBO0FBQ0E7QUF2TEE7QUEyTEE7QUFDQTtBQTVMQTtBQStMQTtBN0cxakNBO0E2RzIzQkE7QUFpTUE7QUFDQTtBQUNBO0FBbk1BO0FBc01BO0E3R2prQ0E7QTZHMjNCQTtBQTRNQTtBQTVNQTtBQWdOQTtBQUNBO0FBak5BO0FBc05BO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFnREE7QUFnQ0E7QTdHdnFDQTtBNkdxbENBO0FBSUE7QUFKQTtBQVNBO0FBQ0E7QTdHL2xDQTtBNkdxbENBO0FBZUE7QUFmQTtBQW1CQTtBN0d4bUNBO0E2R3FsQ0E7QUEwQkE7QUExQkE7QUFxREE7QUFyREE7QUEyREE7QTdHaHBDQTtBNkdxbENBO0FBc0ZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFvQ0E7QUF2Q0E7QUFPQTtBQVBBO0FBU0E7QTdHenJDQTtBNkdnckNBO0FBY0E7QUFDQTtBQWZBO0FBc0JBO0FBQ0E7QUFDQTtBQXhCQTtBQTJCQTtBN0czc0NBO0E2R2dyQ0E7QUFpQ0E7QUFqQ0E7QUEwQ0E7QUExQ0E7QUE4Q0E7QUFrRUE7QUFFQTtBQUZBO0FBTUE7QTdHdHlDQTtBNkcweUNBO0FBSUE7QTdHOXlDQTtBNkcweUNBOztBQVVBO0E3R3B6Q0E7QTZHMHlDQTtBQWdCQTtBN0cxekNBO0E2RzB5Q0E7QUF1QkE7QUFDQTtBQXhCQTtBQTBCQTtBQTFCQTtBQTZCQTs7QXZIcDNEQTs7QXdIRUE7QXRIRkE7OztBc0hNQTtBeEhJQTtBQWdCQTs7QXdIaEJBO0F2RlZBOztBdUZhQTtBeEhiQTs7QXdIZ0JBO0F0SGhCQTs7O0FzSG9CQTtBeEhWQTtBQWdCQTs7QXdIRkE7QUNoQkE7QXhGSEE7QUFDQTtBQUNBO0F3Rk1BO0FBQ0E7QUFOQTtBQVdBO0FBQ0E7QUFaQTtBQWVBO0EvR3NoQkE7QStHamhCQTtBQUdBO0FBQ0E7QUFKQTtBQU9BOztBekhuQ0E7O0EwSEVBO0F4SEZBOzs7QXdITUE7QTFISUE7QUFnQkE7O0EwSGhCQTtBMUhWQTs7QTBIYUE7QXhIYkE7OztBd0hpQkE7QTFIUEE7QUFnQkE7O0EwSExBO0FqRXJCQTs7Ozs7Ozs7O0FpRStCQTtBckgvQkE7Ozs7Ozs7O0FxSHdDQTtBckh4Q0E7Ozs7Ozs7O0FxSGlEQTtBcEhqREE7QUFTQTtBTlRBOztBMEhzREE7QXhIdERBOzs7QXdIMERBO0ExSGhEQTtBQWdCQTs7QTBIb0NBO0FDR0E7QUFHQTtBQUhBO0FBTUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FqSCtjQTtBaUhoZEE7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFBQTtBQU9BO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QWpIc2JBO0FpSDNiQTtBQVNBO0FBS0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QWpIdVpBO0FpSDdaQTtBQVVBO0FBQ0E7QWpIa1pBO0FpSDdaQTtBQWVBO0FqSDhZQTtBaUgxWUE7QUFFQTtBQUZBO0FBTUE7QWpIb1lBO0FpSDFZQTtBQVNBO0FBR0E7QUFDQTtBQVVBO0FuSG5JQTtBQUNBO0FBQ0E7QW1IaUlBO0FuSDVIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBbUgwRkE7QW5IbEZBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBbUhvRUE7QW5IOURBO0FBU0E7QUFDQTtBQUNBO0FtSG1EQTtBbkgzSUE7QW1IMklBO0FqR3lOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FpRzlPQTtBbkh2SkE7QUFDQTtBQUNBO0FtSHFKQTtBbkhoSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QW1Ib0hBO0FuSHRHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QW1IOEZBO0FuSGxGQTtBQUdBO0FBQ0E7QUFDQTtBbUg2RUE7QW5IL0pBO0FtSCtKQTtBakdxTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBaUdyTkE7QW5IaExBO0FBQ0E7QUFDQTtBbUg4S0E7QW5IektBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FtSHVJQTtBbkgvSEE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FtSGlIQTtBbkgzR0E7QUFTQTtBQUNBO0FBQ0E7QW1IZ0dBO0FuSHhMQTtBbUh3TEE7QWpHNEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QWlHL0xBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBakh3UUE7QWlIN1FBO0FBWUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1QkE7QUFpQ0E7QUFDQTtBQUtBO0FBQ0E7O0FBRUE7QUFFQTs7QUFFQTtBQUVBOztBQUVBO0FBQ0E7QUFaQTtBQUNBOztBQUVBO0FBRUE7O0FBRUE7QUFFQTs7QUFFQTs7QTNIbFZBOztBNEhFQTtBMUhGQTs7O0EwSE1BO0E1SElBO0FBZ0JBOztBNEhoQkE7QUNGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQXFCQTtBQUNBO0FBQ0E7QTdIL0JBOztBNEhpQ0E7QTFIakNBOzs7QTBIcUNBO0E1SDNCQTtBQWdCQTs7QTRIZUE7QUVoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckJBO0FBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBakNBO0FBcUNBO0FBQ0E7QUF0Q0E7QUE2Q0E7QUFDQTs7QTlIdkRBOztBK0hFQTtBN0hGQTs7O0E2SE1BO0EvSElBO0FBZ0JBOztBK0hoQkE7QS9IVkE7O0ErSGFBO0E3SGJBOzs7QTZIaUJBO0EvSFBBO0FBZ0JBOztBK0hMQTtBOUZyQkE7O0E4RndCQTtBQ0dBO0EvRnRCQTtBQUNBO0FBQ0E7QStGeUJBO0FBQ0E7QUFPQTtBQUNBO0F0SG9nQkE7QXNIbGhCQTtBQWlCQTtBdEhpZ0JBO0FzSGxoQkE7QUFzQkE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBY0E7QUFLQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FoSXhHQTs7QWlJRUE7QS9IRkE7OztBK0hNQTtBaklJQTtBQWdCQTs7QWlJaEJBO0FqSVZBOztBaUlhQTtBL0hiQTs7O0ErSGlCQTtBaklQQTtBQWdCQTs7QWlJTEE7QXhFckJBOzs7Ozs7Ozs7QXdFK0JBO0FDU0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFFQTtBQUZBO0FBTUE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQXpCQTtBQTZCQTtBQUNBO0FBcERBO0FBeURBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFOQTtBQVVBO0FBQ0E7QUFYQTtBQWVBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBRkE7QUFNQTtBQWdCQTtBQUNBO0FBSUE7QUFDQTtBQWFBO0FBSkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQUtBO0FBTEE7QUFRQTtBQVJBO0FBS0E7QUFMQTtBQVFBO0FBUkE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQWNBO0FBZEE7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0F4SG9WQTtBd0g1V0E7QUEyQkE7QUFFQTtBQTdCQTtBQWlDQTtBQUNBO0FBbENBO0F6RXpLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTBFNUJBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUpBO0FBQ0E7QUFGQTtBQU9BO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FBTUE7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QW5JdkRBOztBb0lFQTtBbElGQTs7O0FrSU1BO0FwSUlBO0FBZ0JBOztBb0loQkE7QTNFVkE7Ozs7Ozs7OztBMkVvQkE7QXBJcEJBOztBb0l1QkE7QWxJdkJBOzs7QWtJMkJBO0FwSWpCQTtBQWdCQTs7QW9JS0E7QWxJL0JBOzs7QWtJbUNBO0EvSG5DQTs7Ozs7Ozs7QStINENBO0E5SDVDQTtBQVNBO0FOVEE7O0FvSWlEQTtBbElqREE7OztBa0lxREE7QXBJM0NBO0FBZ0JBOztBb0krQkE7QS9IekRBOzs7Ozs7OztBK0hrRUE7QUFDQTtBQ2lEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0EzSHFiQTtBMEhuZUE7QUNrREE7QURoREE7QUNxREE7QUFDQTtBQUlBO0FBQ0E7QUFEQTtBQUtBO0FBQ0E7QUFDQTtBM0hnYUE7QTJIdmFBO0FBY0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBU0E7QUFUQTtBQWFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBM0hxWEE7QTJIN1hBO0FBZUE7QUFmQTtBQXVCQTtBQUNBO0FBQ0E7QUFNQTtBNUVuTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBNEU4TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QTNIMlVBO0EySDlVQTtBQVlBO0FBQ0E7QUFXQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QUF0QkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbENBO0FBc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWxEQTtBQXVEQTtBQUNBO0FBeERBO0FBMkRBO0FBM0RBO0FBaUVBO0FBakVBO0FBb0VBO0FBQ0E7QUFDQTtBQXRFQTtBQXlFQTtBQXpFQTtBQWdGQTtBQWhGQTtBQXVGQTtBQUNBO0FBeEZBO0FBNEZBO0FBNUZBO0FBK0ZBO0FBQ0E7QUFDQTtBQUNBO0FBbEdBO0FBMEdBO0FBQ0E7QUEzR0E7QUE4R0E7QUFDQTtBQUtBO0E1RXZXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBNEVvV0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQXJCQTs7QUEyQkE7QUFDQTtBQUNBO0FBQ0E7QUE5QkE7O0FBb0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQVlBO0FBR0E7QUFJQTtBQUNBO0FBY0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUxBO0FBU0E7O0FySS9kQTs7QXNJRUE7QXBJRkE7OztBb0lNQTtBdElJQTtBQWdCQTs7QXNJaEJBO0F0SVZBOztBc0lhQTtBcEliQTs7O0FvSWlCQTtBdElQQTtBQWdCQTs7QXNJTEE7QXRJckJBOztBc0l3QkE7QXBJeEJBOzs7QW9JNEJBO0F0SWxCQTtBQWdCQTs7QXNJTUE7QXRJaENBOztBc0ltQ0E7QXBJbkNBOzs7QW9JdUNBO0F0STdCQTtBQWdCQTs7QXNJaUJBO0F0SDNDQTtBQVlBO0FoQlpBOztBc0lnREE7QXBJaERBOzs7QW9Jb0RBO0F0STFDQTtBQWdCQTs7QXNJOEJBO0F0SXhEQTs7QXNJMkRBO0FwSTNEQTs7O0FvSStEQTtBdElyREE7QUFnQkE7O0FzSXlDQTtBckduRUE7O0FxR3NFQTtBQ2pEQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0E3SGtoQkE7QTZIeGhCQTtBQVNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdIc2dCQTtBNkgzZ0JBO0FBUUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QTdIc2ZBO0E2SHhmQTtBQUtBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7O0F0R3BFQTtBQUNBO0FBQ0E7QXNHc0VBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBUUE7QUFDQTtBN0hrZEE7QTZIM2RBO0FBYUE7QUFDQTtBQWRBO0FBb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFHQTtBQVFBO0FBUkE7QXJIbkZBO0FBQ0E7QXFIa0ZBO0FySDFFQTtBQUNBO0FxSG9GQTtBQUNBO0FBQ0E7QUFHQTtBQU1BO0FBQ0E7QUFQQTtBckhuR0E7QUFDQTtBcUhrR0E7QXJIMUZBO0FBQ0E7QUFDQTtBcUhvR0E7QUFDQTtBQUNBO0FBQ0E7QUNqSkE7QUFDQTtBQURBO0FBSUE7QUFDQTtBOUhxaUJBO0E4SDFpQkE7QUFRQTtBQVJBO0FBWUE7QUFaQTtBQWdCQTtBQUNBO0FBQ0E7QTlId2hCQTtBOEgxaUJBO0FBb0JBO0FBcEJBO0FBMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9CQTtBQW1DQTtBQUNBO0FBQ0E7O0F4SXhDQTs7QXlJRUE7QXZJRkE7OztBdUlNQTtBeklJQTtBQWdCQTs7QXlJaEJBO0F6SVZBOztBeUlhQTtBdkliQTs7O0F1SWlCQTtBeklQQTtBQWdCQTs7QXlJTEE7QXpIckJBO0FBWUE7QWhCWkE7O0F5STBCQTtBdkkxQkE7OztBdUk4QkE7QXpJcEJBO0FBZ0JBOztBeUlRQTtBeklsQ0E7O0F5SXFDQTtBdklyQ0E7OztBdUl5Q0E7QXpJL0JBO0FBZ0JBOztBeUltQkE7QUMxQ0E7QXRJQ0E7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0hmQTtBdElIQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F3SFhBO0F0SVBBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXdIUEE7QXRJWEE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0hIQTtBdElmQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F3SENBO0F0SW5CQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F3SEtBO0F4SE9BO0FBQ0E7QUFDQTtBd0hUQTtBeEhnQkE7QUFDQTtBQUNBO0F3SGRBOztBeEhvQkE7QUFDQTtBd0hyQkE7O0F4SDJCQTtBQUNBO0FsQjNEQTs7QXlJc0hBO0F2SXRIQTs7O0F1STBIQTtBekloSEE7QUFnQkE7O0F5SW9HQTtBekk5SEE7O0F5SWlJQTtBdklqSUE7OztBdUlxSUE7QXpJM0hBO0FBZ0JBOztBeUkrR0E7QXpIeklBO0FBWUE7QWhCWkE7O0F5SThJQTtBdkk5SUE7OztBdUlrSkE7QXpJeElBO0FBZ0JBOztBeUk0SEE7QXpJdEpBOztBeUl5SkE7QXZJekpBOzs7QXVJNkpBO0F6SW5KQTtBQWdCQTs7QXlJdUlBO0FFN0pBO0F2SUFBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXlIZEE7QXZJSkE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBeUhWQTtBdklSQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F5SE5BO0F2SVpBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXlIRkE7QXZJaEJBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXlIRUE7QXZJcEJBO0FjWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXlITUE7QXpITUE7QUFDQTtBQUNBO0F5SFJBO0F6SGVBO0FBQ0E7QUFDQTtBeUhiQTs7QXpIbUJBO0FBQ0E7QXlIcEJBOztBekgwQkE7QUFDQTtBeUhsQkE7QUFDQTs7QTNJMUNBOztBNElFQTtBMUlGQTs7O0EwSU1BO0E1SUlBO0FBZ0JBOztBNEloQkE7QW5GVkE7Ozs7Ozs7OztBbUZvQkE7QUNqQkE7QXBGU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7O0F6RHBCQTs7QThJRUE7QTVJRkE7OztBNElNQTtBOUlJQTtBQWdCQTs7QThJaEJBO0E5SVZBOztBOElhQTtBNUliQTs7O0E0SWlCQTtBOUlQQTtBQWdCQTs7QThJTEE7QTlJckJBOztBOEl3QkE7QTVJeEJBOzs7QTRJNEJBO0E5SWxCQTtBQWdCQTs7QThJTUE7QXpJaENBOzs7Ozs7OztBeUl5Q0E7QXhJekNBO0FBU0E7QU5UQTs7QThJOENBO0E1STlDQTs7O0E0SWtEQTtBOUl4Q0E7QUFnQkE7O0E4STRCQTtBNUZ0REE7QUFtREE7QUNXQTtBbkQ5REE7O0E4STREQTtBNUk1REE7OztBNElnRUE7QTlJdERBO0FBZ0JBOztBOEkwQ0E7QTdHcEVBOztBNkd1RUE7QTlJdkVBOztBOEkwRUE7QTVJMUVBOzs7QTRJOEVBO0E5SXBFQTtBQWdCQTs7QThJd0RBO0FqR2xGQTtBQU1BO0FrR3NDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBaEcvRkE7QWdHOEZBO0FoRzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVlBO0FBaUJBO0FBQUE7QWdHdURBO0FoR2hEQTtBQUtBO0FBSUE7QWdHdUNBO0FoRzVCQTtBQUNBO0FnRzJCQTtBaEdaQTtBQUNBO0FBVUE7QUFzQ0E7QUF0Q0E7QUFrREE7QWdHaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBOUcvS0E7QUFDQTtBQUNBO0E4R2lMQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQWJBOztBQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUxBO0FBU0E7QUFUQTtBQWFBO0FBQ0E7QUFDQTtBL0k5UEE7O0E4SW9RQTtBNUlwUUE7OztBNEl3UUE7QTlJOVBBO0FBZ0JBOztBOElrUEE7QUVsUUE7QUFDQTtBQUNBO0FBSEE7O0FBUUE7QUFDQTtBQUdBO0FBQ0E7O0FoSnRCQTs7QWlKRUE7QS9JRkE7OztBK0lNQTtBakpJQTtBQWdCQTs7QWlKaEJBO0FqSlZBOztBaUphQTtBL0liQTs7O0ErSWlCQTtBakpQQTtBQWdCQTs7QWlKTEE7QWpKckJBOztBaUp3QkE7QS9JeEJBOzs7QStJNEJBO0FqSmxCQTtBQWdCQTs7QWlKTUE7QTVJaENBOzs7Ozs7OztBNEl5Q0E7QTNJekNBO0FBU0E7QU5UQTs7QWlKOENBO0EvSTlDQTs7O0ErSWtEQTtBakp4Q0E7QUFnQkE7O0FpSjRCQTtBQ2ZBO0FBR0E7QUFDQTtBQUNBO0F4SWlnQkE7QXdJdGdCQTtBQVFBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBeElvZkE7QXdJcmZBO0FBSUE7QUFDQTtBQUxBO0FBUUE7QUFSQTtBQVlBO0F4SXllQTtBd0luZUE7QUFHQTtBQVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQXREQTtBQTJEQTtBQUNBO0FBQ0E7QXhJeWNBO0F3SXRnQkE7QUFrRUE7QUFsRUE7QUF1RUE7QUFJQTtBMUkzREE7QUFDQTtBQUNBO0EwSXlEQTtBMUlwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QTBJa0JBO0ExSVZBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBMElKQTtBMUlVQTtBQVNBO0FBQ0E7QUFDQTtBMElyQkE7QXhIaVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUF5QkE7QUFDQTtBd0h4VEE7QUFDQTtBQUlBO0ExSXBGQTtBQUNBO0EySWhEQTtBQUNBO0FBQ0E7QUFDQTtBbkpIQTs7QWlKMEpBO0EvSTFKQTs7O0ErSThKQTtBakpwSkE7QUFnQkE7O0FpSndJQTtBakpsS0E7O0FpSnFLQTtBL0lyS0E7OztBK0l5S0E7QWpKL0pBO0FBZ0JBOztBaUptSkE7QWpKN0tBOztBaUpnTEE7QS9JaExBOzs7QStJb0xBO0FqSjFLQTtBQWdCQTs7QWlKOEpBO0FHOUtBO0FBQ0E7QUFHQTtBMUkraEJBO0EwSW5pQkE7QUFRQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBcEo3QkE7O0FpSnVNQTtBL0l2TUE7OztBK0kyTUE7QWpKak1BO0FBZ0JBOztBaUpxTEE7QWpKL01BOztBaUprTkE7QS9JbE5BOzs7QStJc05BO0FqSjVNQTtBQWdCQTs7QWlKZ01BO0FqSjFOQTs7QWlKNk5BO0EvSTdOQTs7O0ErSWlPQTtBakp2TkE7QUFnQkE7O0FpSjJNQTtBakpyT0E7O0FpSndPQTtBL0l4T0E7OztBK0k0T0E7QWpKbE9BO0FBZ0JBOztBaUpzTkE7QWpKaFBBOztBaUptUEE7QS9JblBBOzs7QStJdVBBO0FqSjdPQTtBQWdCQTs7QWlKaU9BO0FqSjNQQTs7QWlKOFBBO0EvSTlQQTs7O0ErSWtRQTtBakp4UEE7QUFnQkE7O0FpSjRPQTtBaEh0UUE7O0FnSHlRQTtBSXpRQTtBQVlBO0FDR0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7O0FBR0E7QUFFQTs7QUFDQTtBQUdBOztBQUNBO0FBS0E7QXJIckNBO0FBQ0E7QUFDQTtBc0hHQTtBQUdBO0FEaUNBO0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBREFBO0FDR0E7QUFDQTtBREpBO0FDUUE7QUFDQTtBRExBO0FDOEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUQzQ0E7QUMrQ0E7QUFDQTtBRGhEQTtBQ3NEQTtBQUNBO0FBQ0E7QUFDQTtBRHREQTtBQUVBO0FBRkE7QUNtRUE7QUFDQTtBQUNBO0FEM0dBOzs7QUErQ0E7QUFDQTtBQUNBO0FBS0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFWQTtBQWFBO0FBQ0E7QXRKbkZBOztBaUorVkE7QS9JL1ZBOzs7QStJbVdBO0FqSnpWQTtBQWdCQTs7QWlKNlVBO0FqSnZXQTs7QWlKMFdBO0EvSTFXQTs7O0ErSThXQTtBakpwV0E7QUFnQkE7O0FpSndWQTtBakpsWEE7O0FpSnFYQTtBL0lyWEE7OztBK0l5WEE7QWpKL1dBO0FBZ0JBOztBaUptV0E7QWpKN1hBOztBaUpnWUE7QS9JaFlBOzs7QStJb1lBO0FqSjFYQTtBQWdCQTs7QWlKOFdBO0E1SXhZQTs7Ozs7Ozs7QTRJaVpBO0EzSWpaQTtBQVNBO0FOVEE7O0FpSnNaQTtBL0l0WkE7OztBK0kwWkE7QWpKaFpBO0FBZ0JBOztBaUpvWUE7QS9GOVpBO0FBbURBO0FDV0E7QW5EOURBOztBaUpvYUE7QS9JcGFBOzs7QStJd2FBO0FqSjlaQTtBQWdCQTs7QWlKa1pBO0FqSjVhQTs7QWlKK2FBO0EvSS9hQTs7O0ErSW1iQTtBakp6YUE7QUFnQkE7O0FpSjZaQTtBakp2YkE7O0FpSjBiQTtBL0kxYkE7OztBK0k4YkE7QWpKcGJBO0FBZ0JBOztBaUp3YUE7QWpKbGNBOztBaUpxY0E7QS9JcmNBOzs7QStJeWNBO0FqSi9iQTtBQWdCQTs7QWlKbWJBO0FoSDdjQTs7QWdIZ2RBO0FJaGRBO0FBWUE7QUdZQTtBQWdCQTs7QVA4YUE7QU9yWkE7O0FQd1pBO0FPOWJBO0FBQ0E7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBTUE7QXZIL0RBO0FBQ0E7QUFDQTtBc0hHQTtBQUdBO0FDMkRBO0FEMUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQ3FCQTtBRElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUN0Q0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUtBOzs7QUFJQTtBQUNBO0F4SnRIQTs7QWlKc2pCQTtBL0l0akJBOzs7QStJMGpCQTtBakpoakJBO0FBZ0JBOztBaUpvaUJBO0FqSjlqQkE7O0FpSmlrQkE7QS9JamtCQTs7O0ErSXFrQkE7QWpKM2pCQTtBQWdCQTs7QWlKK2lCQTtBakp6a0JBOztBaUo0a0JBO0EvSTVrQkE7OztBK0lnbEJBO0FqSnRrQkE7QUFnQkE7O0FpSjBqQkE7QWpKcGxCQTs7QWlKdWxCQTtBL0l2bEJBOzs7QStJMmxCQTtBakpqbEJBO0FBZ0JBOztBaUpxa0JBO0FqSi9sQkE7O0FpSmttQkE7QS9JbG1CQTs7O0ErSXNtQkE7QWpKNWxCQTtBQWdCQTs7QWlKZ2xCQTtBakoxbUJBOztBaUo2bUJBO0EvSTdtQkE7OztBK0lpbkJBO0FqSnZtQkE7QUFnQkE7O0FpSjJsQkE7QWhIcm5CQTs7QWdId25CQTtBSXhuQkE7QUFZQTtBSVNBO0FBR0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0F4SDlCQTtBQUNBO0FBQ0E7QXNIR0E7QUFHQTtBQUNBO0E3SStoQkE7QStJMWdCQTtBQUVBO0FBTUE7QUZiQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUVSQTtBRmlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FFM0NBO0FBQ0E7QUFDQTtBRjJDQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUUvREE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFkQTtBQWtCQTtBQUNBO0F6SjlFQTs7QWlKcXNCQTtBL0lyc0JBOzs7QStJeXNCQTtBakovckJBO0FBZ0JBOztBaUptckJBO0FqSjdzQkE7O0FpSmd0QkE7QS9JaHRCQTs7O0ErSW90QkE7QWpKMXNCQTtBQWdCQTs7QWlKOHJCQTtBU3BzQkE7QUFHQTtBQUdBO0FoSm1oQkE7QWdKemhCQTtBQVVBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QXpIakNBO0FBQ0E7QUFDQTtBc0hHQTtBQUdBO0FHK0JBO0FBQ0E7QWhKZ2dCQTtBZ0p2Z0JBO0FBRUE7QUFPQTtBSGpCQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBSUE7QUdHQTtBQUNBO0FIRkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FHRkE7QUgyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBR3RDQTtBQUNBO0FBQ0E7QUFDQTtBSHFDQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUd6REE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQVpBOztBQWlCQTtBQWpCQTtBQXNCQTtBQUNBO0ExSnhGQTs7QWlKMnlCQTtBL0kzeUJBOzs7QStJK3lCQTtBakpyeUJBO0FBZ0JBOztBaUp5eEJBO0FVOXdCQTtBQUdBO0FBQ0E7QUFDQTtBakptZ0JBO0FpSnhnQkE7QUFRQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QWpKc2ZBO0FpSnZmQTtBQUlBO0FBQ0E7QUFMQTtBQVFBO0FqSitlQTtBaUpwZUE7QUFHQTtBQVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQXZEQTtBQTREQTtBQUNBO0FBQ0E7QUFDQTtBakp5Y0E7QWlKeGdCQTtBQW9FQTtBakpvY0E7QWlKeGdCQTtBQXdFQTtBQUNBO0FBekVBO0FBNkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqRkE7QUFvRkE7QUFwRkE7QUF1RkE7QUFDQTtBQUNBO0FBTUE7QW5KN0VBO0FBQ0E7QUFDQTtBbUoyRUE7QW5KdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FtSm9DQTtBbko1QkE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FtSmNBO0FuSlJBO0FBU0E7QUFDQTtBQUNBO0FtSkhBO0FqSStRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBeUJBO0FBQ0E7QWlJdFNBO0FBQ0E7QUFJQTtBbkp0R0E7O0FSL0NBOztBNEpFQTtBMUpGQTs7O0EwSk1BO0E1SklBO0FBZ0JBOztBNEpoQkE7QTVKVkE7O0E0SmFBO0ExSmJBOzs7QTBKaUJBO0E1SlBBO0FBZ0JBOztBNEpMQTtBM0hyQkE7O0EySHdCQTtBQ2JBO0FBSUE7QUFDQTtBQUxBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkE7QUFnQkE7QUFoQkE7QUFxQkE7QUFDQTtBQXRCQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvQkE7QUFvQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBNUg5RkE7QUFDQTtBQUNBO0E0SCtGQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7O0E3SnBJQTs7QThKRUE7QTVKRkE7OztBNEpNQTtBOUpJQTtBQWdCQTs7QThKaEJBO0F6SlZBOzs7Ozs7OztBeUptQkE7QXhKbkJBO0FBU0E7QU5UQTs7QThKd0JBO0E1SnhCQTs7O0E0SjRCQTtBOUpsQkE7QUFnQkE7O0E4Sk1BO0E5SmhDQTs7QThKbUNBO0E1Sm5DQTs7O0E0SnVDQTtBOUo3QkE7QUFnQkE7O0E4SmlCQTtBOUkzQ0E7QUFZQTtBaEJaQTs7QThKZ0RBO0E1SmhEQTs7O0E0Sm9EQTtBOUoxQ0E7QUFnQkE7O0E4SjhCQTtBOUp4REE7O0E4SjJEQTtBNUozREE7OztBNEorREE7QTlKckRBO0FBZ0JBOztBOEp5Q0E7QTlKbkVBOztBOEpzRUE7QTVKdEVBOzs7QTRKMEVBO0E5SmhFQTtBQWdCQTs7QThKb0RBO0FDbkRBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVhBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRCQTtBQTBCQTtBQUNBO0FBM0JBO0FBOEJBO0FBQ0E7QUFDQTtBQUNBO0FBakNBO0FBb0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF4Q0E7QUE0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5EQTtBQXNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJKa2NBO0FxSjdmQTtBQThEQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QXZKOUZBO0FBQ0E7QUFDQTtBQUNBO0F1SjJGQTtBdkp2RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXVKMkRBO0F2SjdDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXVKcUNBO0F2SnpCQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0F1Sm1CQTtBdkp0R0E7QUFDQTtBdUprSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5KQTtBQXVKQTs7QS9KbExBOztBZ0tFQTtBOUpGQTs7O0E4Sk1BO0FoS0lBO0FBZ0JBOztBZ0toQkE7QWhLVkE7O0FnS2FBO0E5SmJBOzs7QThKaUJBO0FoS1BBO0FBZ0JBOztBZ0tMQTtBaEpyQkE7QUFZQTtBaEJaQTs7QWdLMEJBO0E5SjFCQTs7O0E4SjhCQTtBaEtwQkE7QUFnQkE7O0FnS1FBO0FoS2xDQTs7QWdLcUNBO0E5SnJDQTs7O0E4SnlDQTtBaEsvQkE7QUFnQkE7O0FnS21CQTtBQ3ZCQTtBQUdBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBL0lKQTtBQUNBO0ErSUdBO0EvSUtBO0FBQ0E7QStJVUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFQQTtBL0lwQkE7QUFDQTtBK0ltQkE7QS9JWEE7QUFDQTtBK0krQkE7QUFDQTtBQUdBO0FBRUE7O0FDakZBO0FBRUE7O0FsS0ZBOztBbUtFQTtBaktGQTs7O0FpS01BO0FuS0lBO0FBZ0JBOztBbUtoQkE7QW5LVkE7O0FtS2FBO0FqS2JBOzs7QWlLaUJBO0FuS1BBO0FBZ0JBOztBbUtMQTtBbktyQkE7O0FtS3dCQTtBakt4QkE7OztBaUs0QkE7QW5LbEJBO0FBZ0JBOztBbUtNQTtBbkpoQ0E7QUFZQTtBaEJaQTs7QW1LcUNBO0FqS3JDQTs7O0FpS3lDQTtBbksvQkE7QUFnQkE7O0FtS21CQTtBbks3Q0E7O0FtS2dEQTtBaktoREE7OztBaUtvREE7QW5LMUNBO0FBZ0JBOztBbUs4QkE7QTlKeERBOzs7Ozs7OztBOEppRUE7QTdKakVBO0FBU0E7QU5UQTs7QW1Lc0VBO0FqS3RFQTs7O0FpSzBFQTtBbktoRUE7QUFnQkE7O0FtS29EQTtBbks5RUE7O0FtS2lGQTtBaktqRkE7OztBaUtxRkE7QW5LM0VBO0FBZ0JBOztBbUsrREE7QW5LekZBOztBbUs0RkE7QWpLNUZBOzs7QWlLZ0dBO0FuS3RGQTtBQWdCQTs7QW1LMEVBO0E5SnBHQTs7Ozs7Ozs7QThKNkdBO0E3SjdHQTtBQVNBO0FOVEE7O0FtS2tIQTtBaktsSEE7OztBaUtzSEE7QW5LNUdBO0FBZ0JBOztBbUtnR0E7QW5LMUhBOztBbUs2SEE7QWpLN0hBOzs7QWlLaUlBO0FuS3ZIQTtBQWdCQTs7QW1LMkdBO0FuS3JJQTs7QW1Ld0lBO0FqS3hJQTs7O0FpSzRJQTtBbktsSUE7QUFnQkE7O0FtS3NIQTtBaktoSkE7OztBaUtvSkE7QW5LcEpBOztBbUt1SkE7QWpLdkpBOzs7QWlLMkpBO0FuS2pKQTtBQWdCQTs7QW1LcUlBO0FuSy9KQTs7QW1La0tBO0FqS2xLQTs7O0FpS3NLQTtBbks1SkE7QUFnQkE7O0FtS2dKQTtBOUoxS0E7Ozs7Ozs7O0E4Sm1MQTtBN0puTEE7QUFTQTtBTlRBOztBbUt3TEE7QWpLeExBOzs7QWlLNExBO0FuS2xMQTtBQWdCQTs7QW1Lc0tBO0FqSGhNQTtBQW1EQTtBQ1dBO0FuRDlEQTs7QW1Lc01BO0FqS3RNQTs7O0FpSzBNQTtBbktoTUE7QUFnQkE7O0FtS29MQTtBbks5TUE7O0FtS2lOQTtBaktqTkE7OztBaUtxTkE7QW5LM01BO0FBZ0JBOztBbUsrTEE7QW5Kek5BO0FBWUE7QWhCWkE7O0FtSzhOQTtBaks5TkE7OztBaUtrT0E7QW5LeE5BO0FBZ0JBOztBbUs0TUE7QW5LdE9BOztBbUt5T0E7QWpLek9BOzs7QWlLNk9BO0FuS25PQTtBQWdCQTs7QW1LdU5BO0FuS2pQQTs7QW1Lb1BBO0FqS3BQQTs7O0FpS3dQQTtBbks5T0E7QUFnQkE7O0FtS2tPQTtBbks1UEE7O0FtSytQQTtBaksvUEE7OztBaUttUUE7QW5LelBBO0FBZ0JBOztBbUs2T0E7QW5LdlFBOztBbUswUUE7QWpLMVFBOzs7QWlLOFFBO0FuS3BRQTtBQWdCQTs7QW1Ld1BBO0FsSWxSQTs7QWtJcVJBO0FDOU5BO0FBSUE7QTFKa2ZBO0EySnhnQkE7QUFFQTtBQUNBO0FBQ0E7QUFKQTtBQVFBO0FBS0E7QUFDQTtBQUdBO0FBQ0E7QTNKc2ZBO0EySnZmQTtBQU1BO0FBZ0JBO0FBT0E7QTNKMGRBO0EySnZmQTtBQU1BO0FBZ0JBO0FBV0E7QTNKc2RBO0EySnZmQTtBQU1BO0FBZ0JBO0EzSmllQTtBMkp2ZkE7QUFNQTtBQWdCQTtBM0ppZUE7QTJKdmZBO0FBTUE7QUFnQkE7QUFrQkE7QUFDQTtBM0o4Y0E7QTJKL2NBO0FBTUE7QUFHQTtBM0pzY0E7QTJKL2NBO0FBTUE7QUFPQTtBM0prY0E7QTJKL2NBO0FBTUE7QTNKeWNBO0EySi9jQTtBQU1BO0EzSnljQTtBMkovY0E7QUFNQTtBRDdDQTtBQzREQTtBRHREQTtBQUNBO0FBQ0E7QTFKOGVBO0EwSmhmQTtBQUtBO0ExSjJlQTtBMEp2ZUE7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0ExSjhkQTtBMEpqZUE7QUFNQTtBQUNBO0ExSjBkQTtBMEpsZEE7QUFFQTtBQUtBO0FBR0E7QUFhQTtBQUVBO0FBN0RBO0FBa0VBO0FBRUE7QUFwRUE7QUEyRUE7QUEzRUE7OztBQWlGQTtBQWpGQTtBQXFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBMUptWkE7QTBKelpBO0FBYUE7QUFFQTtBQVFBO0FBQ0E7QUFJQTtBOUgxS0E7QTVCdWlCQTtBMEo3WEE7QTlIaEtBO0FBS0E7QUFDQTtBOEg4SkE7QUFDQTtBQUdBO0E5SGxMQTtBOEhxTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBMUo4V0E7QTBKclhBO0E5SHhLQTtBQUtBO0FBQ0E7QThIMktBO0FBQ0E7QTFKMldBO0EwSjVXQTtBQUlBO0ExSndXQTtBMEo1V0E7QUFRQTtBQVJBO0FBWUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBMUp3VkE7QTBKM1ZBO0FBTUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTFKNlVBO0EwSmpWQTtBQWdCQTtBQWhCQTtBQXNCQTtBQU9BO0FBN0JBO0FBbUNBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNOQTs7QUFzT0E7QUFDQTtBQXZPQTtBQTJPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBL09BO0FBbVBBO0FBblBBO0FBdVBBO0FBdlBBO0EvRytLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBK0duTUE7QS9HK0hBO0ErRy9IQTtBL0cwTUE7QStHMU1BO0EvR2dOQTtBQUNBO0ErR2pOQTtBL0d1TkE7QUFDQTtBQUNBO0ErR3pOQTtBL0c4TkE7QStHOU5BO0EvR2tPQTtBQUNBO0ErR25PQTtBQStQQTtBQUNBO0FBQ0E7QUFqUUE7QUFvUUE7QUFDQTtBQUNBO0FBdFFBO0FBMFFBO0FBMVFBO0FBK1FBO0FBL1FBOztBQXlSQTtBNUoxUkE7O0FBQ0E7QUFDQTtBQUNBO0FBR0E7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBWUE7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFXQTs7O0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QTRKaU5BOztBQUNBO0FBNVJBOztBNUpSQTtBNEpRQTtBQXdTQTtBQXhTQTs7QUE4U0E7QUFDQTtBQUNBO0FBaFRBO0FBb1RBO0FBQ0E7QUFDQTtBQXRUQTtBQXlUQTtBQXpUQTtBQTZUQTtBQTdUQTtBQWtVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0ExSmdMQTtBMEp0ZkE7QUE2VUE7QUE3VUE7OztBQXdWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE3VkE7OztBQW9XQTtBQUNBO0FBcldBO0FBMFdBO0FBMVdBO0FBOFdBO0FBQ0E7QUFDQTtBQUNBO0FBalhBO0FBcVhBO0FBQ0E7QUFDQTtBQXZYQTtBQTJYQTtBQUNBO0FBQ0E7QUFDQTtBMUp3SEE7QTBKdEhBO0FBRUE7QUFsWUE7QUF1WUE7QUF2WUE7QUE0WUE7QUE1WUE7QUErWUE7QTFKdUdBO0EwSnRmQTtBQXNaQTtBQUNBO0FBdlpBO0FBNFpBO0ExSjBGQTtBMEp0ZkE7QUFrYUE7QUFDQTtBQUNBO0FBQ0E7QUFyYUE7QUF5YUE7QTFKNkVBO0EwSnRmQTtBQSthQTtBQS9hQTtBQW1iQTtBQW5iQTs7QUE0YkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBamNBOztBQXNjQTtBQXRjQTs7O0FBOGNBO0FBOWNBOzs7Ozs7QUFzZEE7QUFDQTtBQXZkQTs7O0FBMmRBO0FBM2RBOzs7QUErZEE7QUEvZEE7OztBQW1lQTtBQW5lQTtBQWtmQTtBMUpJQTtBMEp0ZkE7QUFxZkE7QUFDQTtBQUNBO0FBdmZBO0FBMGZBO0FBMWZBO0FBa2dCQTtBQWxnQkE7QUFzZ0JBO0FBdGdCQTtBQTBnQkE7QUExZ0JBO0FBK2dCQTtBQUNBO0FBaGhCQTtBQW9oQkE7QUFDQTtBQUNBO0ExSmhDQTtBMEp0ZkE7QUF5aEJBO0ExSm5DQTtBMEp0ZkE7QUE2aEJBO0FBN2hCQTtBQWtpQkE7QTFKNUNBO0EwSnRmQTtBQXVpQkE7QUFDQTtBQUNBO0FBemlCQTtBQTRpQkE7QUE1aUJBO0FBaWpCQTtBMUozREE7QTBKdGZBO0FBb2pCQTtBMUo5REE7QTBKdGZBO0FBd2pCQTtBQXhqQkE7QUE0akJBO0ExSnRFQTtBMEp0ZkE7QUFra0JBO0ExSjVFQTtBMEp0ZkE7QUFza0JBO0FBdGtCQTtBQTRrQkE7QTFKdEZBO0EwSnRmQTtBQWlsQkE7QTFKM0ZBO0EwSnRmQTtBQXFsQkE7QUFDQTtBQUNBO0FBQ0E7QTFKbEdBO0EwSnRmQTtBQThsQkE7QUFDQTtBMUp6R0E7QTBKdGZBO0FBb21CQTtBQXBtQkE7QUEybUJBO0FBM21CQTs7QUF1bkJBO0FBdm5CQTs7QUE0bkJBO0FBQ0E7QTFKdklBO0EwSnRmQTs7QUFnb0JBO0FBaG9CQTs7QUFzb0JBO0FBQ0E7QUFDQTtBQUNBO0FBem9CQTtBQTZvQkE7QUFDQTtBQUNBO0FBL29CQTtBQW1wQkE7QTFKN0pBO0EwSnRmQTtBQTBwQkE7QUExcEJBOzs7O0FBaXFCQTtBQUNBO0FBQ0E7QUFDQTtBQXBxQkE7QUF3cUJBO0FBQ0E7QUFDQTtBQTFxQkE7QUE2cUJBO0FBN3FCQTtBQWtyQkE7QUFsckJBO0FBc3JCQTtBQXRyQkE7QW5JbERBO0FBQ0E7QUFDQTtBbUlnREE7QUE4ckJBO0FBOXJCQTtBQWlzQkE7QUFPQTs7O0FBR0E7QUFDQTtBQUNBO0FBSUE7OztBQU9BO0FBQ0E7QUFDQTtBNUozdEJBOzs7QUFDQTtBQUNBO0FBQ0E7QUFHQTs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQVlBOzs7Ozs7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBV0E7Ozs7O0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QTRKdW9CQTs7O0FBWUE7QUFaQTs7O0E1Snp0QkE7QTRKa3ZCQTs7O0FBT0E7QUFDQTtBQUNBO0E1SnB2QkE7OztBQUNBO0FBQ0E7QUFDQTtBQUdBOzs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBTUE7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QUFLQTs7Ozs7QUFDQTtBQVNBO0FBQ0E7QUFDQTtBNEowcEJBOzs7QUFZQTtBQVpBOzs7QTVKbHZCQTtBNEpRQTtBQXN3QkE7QUF0d0JBO0FBMndCQTtBQUNBO0FBNXdCQTtBQSt3QkE7QUEvd0JBO0FBb3hCQTtBQUNBO0FBcnhCQTtBaEtuREE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWtKa0NBO0FoS25EQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBa0ppMEJBO0FBL3hCQTtBQW15QkE7QUFueUJBOzs7QUF3eUJBO0FBeHlCQTtBQTZ5QkE7QUE3eUJBO0FBaXpCQTtBQUNBO0FBQ0E7QUFDQTtBQXB6QkE7QUF3ekJBO0FBeHpCQTtBQTJ6QkE7QUEzekJBO0FBOHpCQTtBQTl6QkE7QUFvMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF4MEJBO0FBNDBCQTtBQTUwQkE7O0FBaTFCQTtBQWoxQkE7Ozs7Ozs7QUE2MUJBO0FBQ0E7QTFKeFdBO0EwSnRmQTs7Ozs7OztBQWkyQkE7QUFqMkJBOzs7Ozs7O0FBcTJCQTtBQXIyQkE7Ozs7Ozs7QUEwMkJBO0FBQ0E7QUEzMkJBOzs7Ozs7O0FBaTNCQTtBQWozQkE7Ozs7Ozs7QUFxM0JBO0FBcjNCQTs7Ozs7OztBQTAzQkE7QUExM0JBOzs7Ozs7O0FBODNCQTtBQTkzQkE7Ozs7Ozs7QUFrNEJBO0FBbDRCQTs7Ozs7OztBQXM0QkE7QUF0NEJBO0FBazVCQTtBQWw1QkE7QUFpNkJBO0ExSjNhQTtBMEp0ZkE7QUE2NkJBO0FBNzZCQTtBQW03QkE7QTFKN2JBO0EwSnRmQTs7QUEwN0JBO0ExSnBjQTtBMEp0ZkE7O0FBZzhCQTtBQUNBO0ExSjNjQTtBMEp0ZkE7QUF1OEJBO0FBdjhCQTtBQTA4QkE7QUFDQTtBMUpyZEE7QTBKdGZBO0FBaTlCQTtBQUNBO0FBbDlCQTtBQXk5QkE7QUF6OUJBO0FBaStCQTtBNUpsK0JBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQVlBO0FBRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBV0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBNEprNkJBO0E1SnAvQkE7QTRKMi9CQTtBMUl2cEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QTBJOG9CQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFLQTtBQUNBO0ExSnJqQkE7QTBKK2lCQTtBQVNBO0FBQ0E7QUFDQTtBMUoxakJBO0EwSjZqQkE7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBbklqb0NBO0FBQ0E7QUFDQTtBQUNBO0FqQ1JBOztBbUt3c0NBO0FqS3hzQ0E7OztBaUs0c0NBO0FuS2xzQ0E7QUFnQkE7O0FtS3NyQ0E7QUczc0NBO0FBQ0E7QTVKdWlCQTtBNEp0aUJBO0FBRUE7QUFJQTtBQUNBO0FBREE7QUFHQTtBQUhBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFWQTtBQVlBO0FBWkE7QUFlQTtBQWZBO0FBa0JBO0FBTUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUdBO0FBUEE7QUFRQTtBNUowZkE7QTRKbGdCQTtBQWFBO0E1SnFmQTtBNEpsZ0JBO0FBaUJBO0FBakJBO0FBbUJBO0E1SitlQTtBNEpsZ0JBO0FBd0JBO0FBOURBO0FBcUVBO0FBckVBO0FBeUVBO0E1SitkQTtBNEp4aUJBO0FBK0VBO0FBL0VBO0FBdUZBO0FBQ0E7QUF4RkE7QUE4RkE7QUFDQTtBQUNBO0FBaEdBO0FBa0dBO0FBbEdBOztBQzZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURxREE7QUF2R0E7O0FDcURBO0FBQ0E7QUR0REE7O0FDMERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRGxFQTtBQTRHQTtBQTVHQTtBQWdIQTtBQWhIQTtBQWtIQTtBNUpzYkE7QTRKeGlCQTtBQXdIQTtBQXhIQTs7QUE4SEE7QUFDQTtBQUNBO0E1SndhQTtBNEp4aUJBOztBQWtJQTtBQUNBO0FBbklBOzs7O0FBdUlBO0FBQ0E7QUF4SUE7Ozs7QUEwSUE7QTVKOFpBO0E0SnhpQkE7Ozs7QUE4SUE7QUE5SUE7Ozs7QUFnSkE7QUFDQTtBQUNBO0FBbEpBOzs7O0FBeUpBO0FBQ0E7QUExSkE7Ozs7QUE0SkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFsS0E7QUF3S0E7QUF4S0E7QUEwS0E7QUFDQTtBQUNBO0FBNUtBO0FBZ0xBO0FBaExBO0FBa0xBO0FBbExBO0FBc0xBO0FBQ0E7QUFDQTtBQXhMQTtBQTRMQTtBQTVMQTtBQWlNQTtBQWpNQTtBQW9NQTtBQXBNQTtBakh1U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaURBO0FBQ0E7QUFDQTtBaUhsS0E7QUEzTUE7QWpIZ1VBO0FBQ0E7QWlIalVBO0FqSHVVQTtBQUNBO0FBQ0E7QWlIelVBO0FqSDhVQTtBQUNBO0FpSC9VQTtBakhvVkE7QUFDQTtBQUNBO0FpSHRWQTs7O0FqSDZWQTtBaUg3VkE7QWpIZ1hBO0FpSGhYQTtBQStNQTtBQS9NQTtBQWtOQTtBQUNBO0FBQ0E7QUFwTkE7QUF3TkE7QUF4TkE7QUM2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEMktBO0FBN05BO0FDcURBO0FBQ0E7QUR0REE7QUMwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEbEVBO0FBaU9BO0FBak9BO0FBbU9BO0FBbk9BO0FBc09BO0FBQ0E7QTVKaVVBO0E0SnhpQkE7QUEwT0E7QUExT0E7QUE0T0E7QUE1T0E7QUFnUEE7QUFDQTtBQWpQQTtBQXlQQTtBQUNBO0FBMVBBO0FBOFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBRS9PQTtBQUVBO0E5SjZnQkE7QThKL2dCQTtBQUtBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlKaWdCQTtBOEp2Z0JBO0FBU0E7QUFJQTtBQUNBO0FBREE7QUFJQTtBOUpzZkE7QThKMWZBO0FBUUE7QUFDQTtBQUNBO0FBVkE7QUFhQTtBQWJBO0FBaUJBO0FBQ0E7QUFDQTtBOUp1ZUE7QThKMWZBO0FBc0JBO0E5Sm9lQTtBOEoxZkE7QUE2QkE7QUE3QkE7QUFpQ0E7QUFLQTtBcEtyRkE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXNKc0VBO0FBSUE7QUFLQTtBQUxBO0FoS3hDQTtBQUNBO0FBQ0E7QWdLc0NBO0FoS2pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBZ0tEQTtBaEtTQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QWdLdkJBO0FoSzZCQTtBQVNBO0FBQ0E7QUFDQTtBZ0tqQ0E7QWhLdkRBO0FnSzhEQTtBOUlzU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBOEk5WkE7QUF5RkE7QUF6RkE7QUE2RkE7QUE3RkE7QUFpR0E7QUFqR0E7O0FBcUdBO0FBckdBO0FBMEhBO0FBMUhBO0FBOEhBO0FBOUhBO0FBb0lBO0FBcElBO0FBMklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhKQTtBQXVKQTtBQUNBO0FBeEpBO0FBOEpBO0FBQ0E7QUFDQTtBQWhLQTs7QUEyS0E7QUEzS0E7O0FoS3lCQTtBQUNBO0FBQ0E7QWdLM0JBOzs7QWhLZ0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FnSzVEQTs7Ozs7OztBaEswRUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FnS2xGQTs7O0FoSzhGQTtBQUdBO0FBQ0E7QUFDQTtBZ0tuR0E7O0FoS2lCQTtBZ0tqQkE7QUFzTEE7QUF0TEE7QUEyTEE7O0F4S3pOQTs7QXlLRUE7QXZLRkE7OztBdUtNQTtBektJQTtBQWdCQTs7QXlLaEJBO0F6S1ZBOztBeUthQTtBdktiQTs7O0F1S2lCQTtBektQQTtBQWdCQTs7QXlLTEE7QUNsQkE7QUFDQTtBQUNBO0FoS3dpQkE7QWdLMWlCQTtBQUtBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFWQTtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU1BO0FBRUE7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QWhLa2dCQTtBZ0twZ0JBO0FBS0E7QUFDQTtBQUNBO0ExS2hEQTs7QXlLeURBO0F2S3pEQTs7O0F1SzZEQTtBektuREE7QUFnQkE7O0F5S3VDQTtBRTlEQTtBQUNBO0FBQ0E7QWpLd2lCQTtBaUt0aUJBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTs7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBakt1aEJBO0FpS3RpQkE7QUFtQkE7QUFuQkE7QUFzQkE7QUFDQTtBaksrZ0JBO0FpS3RpQkE7QUEyQkE7QUEzQkE7QUE4QkE7O0EzS3JDQTs7QTRLRUE7QTFLRkE7OztBMEtNQTtBNUtJQTtBQWdCQTs7QTRLaEJBO0E1S1ZBOztBNEthQTtBMUtiQTs7O0EwS2lCQTtBNUtQQTtBQWdCQTs7QTRLTEE7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7O0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFMQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF0QkE7QUEwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQURBO0FBSUE7QUFDQTtBQUxBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXRCQTtBQTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWJBO0FBaUJBO0FBQ0E7QUFsQkE7QUFzQkE7QUF0QkE7OztBQTRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXJDQTs7QUEwQ0E7QUExQ0E7QUE4Q0E7QUFDQTtBQS9DQTtBQW1EQTtBQW5EQTtBQXNEQTtBQXREQTtBQTJEQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFOQTtBQVVBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFJQTtBQUpBO0FBUUE7QUFSQTtBQVdBO0FBQ0E7QUFaQTtBQWdCQTtBQWhCQTtBQW9CQTtBQXBCQTtBQXlCQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU9BO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTs7QTdLdFdBOztBOEtFQTtBNUtGQTs7O0E0S01BO0E5S0lBO0FBZ0JBOztBOEtoQkE7QTlLVkE7O0E4S2FBO0E1S2JBOzs7QTRLaUJBO0E5S1BBO0FBZ0JBOztBOEtMQTtBQ2FBO0FBRUE7QXJLeWdCQTtBcUszZ0JBO0FBS0E7QXJLc2dCQTtBcUszZ0JBO0FBU0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcktvZUE7QXFLMWVBO0FBU0E7QUFUQTtBQWFBO0FySzZkQTtBcUsxZUE7QUFnQkE7QXJLMGRBO0FxSzFlQTtBQXFCQTtBQUNBO0FBS0E7QUFFQTtBQTdCQTs7OztBQTBDQTtBQTFDQTtBQWtEQTtBQWxEQTs7OztBQTBDQTtBQTFDQTtBQWtEQTtBQWxEQTs7OztBQTBDQTtBQTFDQTtBQWtEQTtBQWxEQTs7OztBQTBDQTtBQTFDQTtBQWtEQTtBQWxEQTs7OztBQTBDQTtBQTFDQTtBQWtEQTtBQWxEQTs7OztBQTBDQTtBQTFDQTtBQWtEQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBckswYUE7QXFLL2FBO0FBUUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FySytaQTtBcUs3WkE7QUFFQTtBQUtBO0FBQ0E7QUFFQTtBQUlBO0FEN0JBO0FDaUNBO0FBUkE7QUFpQkE7QUFDQTtBRHRDQTtBQzBDQTtBQUNBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFJQTtBQUlBO0FBRUE7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQUtBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcks2VEE7QXFLcFVBO0FBVUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEdEVBO0FDMEVBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBRGpGQTtBQ3FGQTtBcktrUUE7QXFLeFJBO0FBNEJBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXJLcU9BO0FxSzlPQTtBQVlBO0FBWkE7QUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFFQTtBQUlBO0FBRUE7QUR4R0E7QUMrR0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QS9LelhBOztBZ0xFQTtBOUtGQTs7O0E4S01BO0FoTElBO0FBZ0JBOztBZ0xoQkE7QWhMVkE7O0FnTGFBO0E5S2JBOzs7QThLaUJBO0FoTFBBO0FBZ0JBOztBZ0xMQTtBaExyQkE7O0FnTHdCQTtBOUt4QkE7OztBOEs0QkE7QWhMbEJBO0FBZ0JBOztBZ0xNQTtBcEpoQ0E7QUFTQTtBcUpjQTtBQUdBO0FBQ0E7QXZLa2hCQTtBdUt0aEJBO0FBT0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QXZLcWdCQTtBdUt0Z0JBO0FBSUE7QXZLa2dCQTtBdUs5ZkE7QUFFQTtBQTFCQTtBQStCQTtBdkt1ZkE7QXVLdGhCQTtBQWtDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZLdWVBO0F1SzVlQTtBQU9BO0F2S3FlQTtBdUs1ZUE7QUFVQTtBQUlBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBUkE7QUFXQTtBQUtBO0FsSjlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBa0prRUE7QUFLQTtBQUNBO0FBQ0E7QUFHQTtBbEpoRUE7QUFDQTtBa0orREE7QWxKckJBO0FrSnFCQTtBbEpsQkE7QWtKUUE7QUFtQkE7QUFJQTtBbEpsQ0E7QWtKa0NBO0FsSi9CQTtBa0ptQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZLdVpBO0F1SzdaQTtBQVFBO0F2S3FaQTtBdUs3WkE7QUFZQTtBQVlBO0FBQ0E7QXZLb1lBO0F1S3JZQTtBQUlBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2S3dYQTtBdUs3WEE7QUFRQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdks0V0E7QXVLaFhBO0FBT0E7QUFDQTtBQUlBO0FBQ0E7QXZLbVdBO0F1S3BXQTtBQUlBO0F2S2dXQTtBdUtwV0E7QUFRQTtBdks0VkE7QXVLcFdBO0FBWUE7QUFJQTtBQUNBO0F2S21WQTtBdUtwVkE7QUFJQTtBdktnVkE7QXVLcFZBO0FBUUE7QXZLNFVBO0F1S3BWQTtBQVlBO0F2S3dVQTtBdUtyVUE7QUFFQTtBdkttVUE7QXVLOVRBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVJBO0FBV0E7QUFDQTtBQUNBO0FBQ0E7QXZLZ1RBO0F1SzlUQTtBQW1CQTtBdksyU0E7QXVLOVRBO0FBeUJBO0FBSUE7QUFDQTtBdktnU0E7QXVLalNBO0FBSUE7QXZLNlJBO0F1S2pTQTtBQVFBO0F2S3lSQTtBdUtqU0E7QUFZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqQkE7QUFvQkE7QUFBQTtBdks2UUE7QXVLeFFBO0FBRUE7QUFGQTtBQUtBO0FBQUE7QUFDQTtBdktrUUE7QXVLeFFBO0FBVUE7QUFJQTtBQUNBO0FBQ0E7QXZLd1BBO0F1SzFQQTtBQUtBO0F2S3FQQTtBdUtqUEE7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2S2tPQTtBdUt6T0E7QUFTQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXZLd05BO0F1SzVOQTtBQU1BO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFGQTtBQU9BO0FBTUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBdkt3TEE7QXVLcExBO0FBRUE7QUFBQTtBdktrTEE7QXVLcExBO0FBTUE7QUFDQTtBQVBBO0FBV0E7QUFBQTtBQUNBO0FqTHJZQTs7QWdMc1NBO0E5S3RTQTs7O0E4SzBTQTtBaExoU0E7QUFnQkE7O0FnTG9SQTtBRWhTQTtBQVFBO0F4S3VoQkE7QXdLL2hCQTtBQUdBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBeEttaEJBO0F3S3JoQkE7QUFJQTtBQUlBO0FBQ0E7QXhLNGdCQTtBd0s3Z0JBO0FBR0E7QXhLMGdCQTtBd0s3Z0JBO0FBTUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBUkE7QUFXQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4S3lkQTtBd0s3ZEE7QUFPQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0F4SzhjQTtBd0tqZEE7QUFNQTtBQUNBO0FBSUE7Ozs7QUFLQTtBeEtpY0E7QXdLdGNBOzs7O0FBT0E7QUFQQTs7OztBQVNBO0FBVEE7QUFjQTtBQUNBO0F4S3ViQTtBd0t0Y0E7QUFvQkE7QXhLa2JBO0F3S3RjQTtBQXlCQTtBQXpCQTtBQTJCQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBeEtpYUE7QXdLbmFBO0FBS0E7QUFMQTtBQVNBO0FBQ0E7QUFDQTtBQVhBO0FBY0E7QUFLQTtBQUNBO0FBQ0E7QXhLOFlBO0F3S2haQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBeEtvWUE7QXdLbFlBO0FBRUE7QUFGQTtBQUlBO0FBTUE7QUFJQTtBQU1BO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QXhLeVdBO0F3S3JXQTtBQUVBO0F4S21XQTtBd0svVkE7QUFFQTtBeEs2VkE7QXdLL1ZBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QXhLdVZBO0F3Sy9WQTtBQVdBOztBbEx6TkE7O0FtTEVBO0FqTEZBOzs7QWlMTUE7QW5MSUE7QUFnQkE7O0FtTGhCQTtBbkxWQTs7QW1MYUE7QWpMYkE7OztBaUxpQkE7QW5MUEE7QUFnQkE7O0FtTExBO0FuTHJCQTs7QW1Md0JBO0FqTHhCQTs7O0FpTDRCQTtBbkxsQkE7QUFnQkE7O0FtTE1BO0FuS2hDQTtBQVlBO0FoQlpBOztBbUxxQ0E7QWpMckNBOzs7QWlMeUNBO0FuTC9CQTtBQWdCQTs7QW1MbUJBO0FuTDdDQTs7QW1MZ0RBO0FqTGhEQTs7O0FpTG9EQTtBbkwxQ0E7QUFnQkE7O0FtTDhCQTtBOUt4REE7Ozs7Ozs7O0E4S2lFQTtBN0tqRUE7QUFTQTtBTlRBOztBbUxzRUE7QWpMdEVBOzs7QWlMMEVBO0FuTGhFQTtBQWdCQTs7QW1Mb0RBO0FDekRBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QTFLa2hCQTtBMEt4aEJBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QTFLdWdCQTtBMEt6Z0JBO0FBS0E7QUFDQTtBQUlBO0FoTDFDQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBa0syQkE7QTFLNmZBO0EwSy9mQTtBQUtBO0FBSUE7QUFDQTtBMUtxZkE7QTBLdGZBO0FBSUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQUNBO0FBQ0E7QUFSQTtBQVlBO0FBQ0E7QUFDQTtBQWRBO0FBa0JBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFwQkE7O0FBd0JBO0FBQ0E7QUFDQTtBQTFCQTtBQStCQTtBQUlBOztBQUdBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUtBO0FBTEE7QTVLM0VBO0FBQ0E7QUFDQTtBNEt5RUE7QTVLcEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E0S3dDQTtBNUsxQkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E0S2tCQTtBNUtOQTtBQUdBO0FBQ0E7QUFDQTtBNEtRQTtBNUsxRkE7QTRLaUdBO0ExSm1RQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0EwSnZhQTs7QUFxSUE7QUFySUE7QUF5SUE7QUF6SUE7QUE4SUE7QUE5SUE7QUFrSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcEw5S0E7O0FtTG1PQTtBakxuT0E7OztBaUx1T0E7QW5MN05BO0FBZ0JBOztBbUxpTkE7QUVqT0E7QUFHQTtBQUNBO0FBQ0E7QTNLOGhCQTtBMktuaUJBO0FBUUE7QTNLMmhCQTtBMktuaUJBO0FBWUE7QUFDQTtBM0tzaEJBO0EyS25oQkE7QUFFQTtBQUlBO0FqTDVCQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbUthQTtBQUNBO0FBQ0E7QUFDQTtBM0t3Z0JBO0EySzdnQkE7QUFPQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFNQTtBQU5BO0FBVUE7QUFDQTtBQUNBO0FBWkE7QUFnQkE7QUFDQTtBQUNBO0FBbEJBOztBQXdCQTtBQXhCQTtBQTZCQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFoQ0E7O0FBb0NBO0FBQ0E7QUFDQTtBQXRDQTs7QUEyQ0E7QUFDQTtBQTVDQTtBQStDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBNUZBO0FBaUdBO0FBQ0E7QUFsR0E7QUFvR0E7QUFwR0E7QUF1R0E7QUF2R0E7QUE0R0E7QUE1R0E7QUErR0E7QUFDQTtBQWhIQTtBQW9IQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTFIQTtBQWdJQTtBQWhJQTs7QUFzSUE7O0FyTGhKQTs7QXNMRUE7QXBMRkE7OztBb0xNQTtBdExJQTtBQWdCQTs7QXNMaEJBO0E3SFZBOzs7Ozs7Ozs7QTZIb0JBO0F0THBCQTs7QXNMdUJBO0FwTHZCQTs7O0FvTDJCQTtBdExqQkE7QUFnQkE7O0FzTEtBO0E1SzhnQkE7QTZLbmlCQTtBQUtBO0FBQ0E7QUFDQTtBQVBBO0FBVUE7QUFDQTtBN0t3aEJBO0E2S25pQkE7QUFlQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QTdLOGdCQTtBNktuaUJBO0FBeUJBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E3SytmQTtBNkt0Z0JBO0FBVUE7QUFDQTtBN0syZkE7QTZLeGZBO0FBRUE7QTdLc2ZBO0E2S2xmQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QTdLeWVBO0E2SzFlQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0s0ZEE7QTZLbGVBO0FBV0E7QUFJQTtBQUNBO0FBQ0E7QTdLaWRBO0E2S25pQkE7QUF1RkE7QUFDQTtBQUNBO0FBQ0E7QUExRkE7QUE2RkE7QUE3RkE7QUFpR0E7QUFDQTtBN0tpY0E7QTZLbmlCQTtBQXVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdLdWJBO0E2S25pQkE7QUFpSEE7QUFDQTtBN0tpYkE7QTZLbmlCQTtBQXNIQTtBOUhwSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QThINkdBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTdLaWFBO0E2Sy9aQTtBQUVBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFQQTtBQVdBO0E3S29aQTtBNksvWkE7QUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBN0swWUE7QTZLdGFBO0FBa0NBO0FBR0E7QUFDQTtBQUNBO0E3SytYQTtBNks1WEE7QUFFQTtBN0swWEE7QTZLNVhBO0E5SHJLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBL0N5aEJBO0E2S2hYQTtBQUVBO0FBeERBO0FBOERBO0FBQ0E7QUEvREE7QUFzRUE7QUFDQTtBQUNBO0FBeEVBO0FBOEVBO0FBQ0E7QUFDQTtBQWhGQTtBQW9GQTtBQUNBO0F2TDVOQTs7QXNMK0xBO0FwTC9MQTs7O0FvTG1NQTtBdEx6TEE7QUFnQkE7O0FzTDZLQTtBRXhMQTs7QUFJQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBU0E7QUFDQTtBOUsrZkE7QThLbGlCQTtBQXlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBOUttZkE7QThLbGlCQTtBQW9EQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFTQTtBQUNBO0E5SytkQTtBOEs1ZEE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5S3FkQTtBOEtoZEE7QUFFQTtBOUs4Y0E7QThLMWNBO0FBRUE7QUFqQ0E7QUF3Q0E7O0F4TDVHQTs7QXlMRUE7QXZMRkE7OztBdUxNQTtBekxJQTtBQWdCQTs7QXlMaEJBO0FoSVZBOzs7Ozs7Ozs7QWdJb0JBO0F6THBCQTs7QXlMdUJBO0F2THZCQTs7O0F1TDJCQTtBekxqQkE7QUFnQkE7O0F5TEtBO0FwTC9CQTs7Ozs7Ozs7QW9Md0NBO0FuTHhDQTtBQVNBO0FOVEE7O0F5TDZDQTtBdkw3Q0E7OztBdUxpREE7QXpMdkNBO0FBZ0JBOztBeUwyQkE7QXpMckRBOztBeUx3REE7QXZMeERBOzs7QXVMNERBO0F6TGxEQTtBQWdCQTs7QXlMc0NBO0FsSGhFQTtBQVNBO0F2RVRBOztBeUxxRUE7QXZMckVBOzs7QXVMeUVBO0F6TC9EQTtBQWdCQTs7QXlMbURBO0F6SzdFQTtBQVlBO0FoQlpBOztBeUxrRkE7QXZMbEZBOzs7QXVMc0ZBO0F6TDVFQTtBQWdCQTs7QXlMZ0VBO0F6TDFGQTs7QXlMNkZBO0F2TDdGQTs7O0F1TGlHQTtBekx2RkE7QUFnQkE7O0F5TDJFQTtBekxyR0E7O0F5THdHQTtBdkx4R0E7OztBdUw0R0E7QXpMbEdBO0FBZ0JBOztBeUxzRkE7QXBMaEhBOzs7Ozs7OztBb0x5SEE7QW5MekhBO0FBU0E7QU5UQTs7QXlMOEhBO0F2TDlIQTs7O0F1TGtJQTtBekx4SEE7QUFnQkE7O0F5TDRHQTtBdkl0SUE7QUFtREE7QUNXQTtBbkQ5REE7O0F5TDRJQTtBdkw1SUE7OztBdUxnSkE7QXpMdElBO0FBZ0JBOztBeUwwSEE7QXpMcEpBOztBeUx1SkE7QXZMdkpBOzs7QXVMMkpBO0F6TGpKQTtBQWdCQTs7QXlMcUlBO0E1SS9KQTtBQU1BO0E2SThFQTtBQUNBO0FBQ0E7QWhMdWRBO0FnTHJkQTtBQUdBO0FBQ0E7QUFKQTtBakk1RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBaUltRUE7QUFZQTtBQUNBO0FBYkE7QUFnQkE7QUFDQTtBQUNBO0FoTG1jQTtBZ0xyZEE7QUFxQkE7QUFyQkE7QUF5QkE7QWhMNGJBO0FnTHJkQTtBQTRCQTtBQTVCQTtBQWlDQTtBQUNBO0FBbENBO0FBc0NBO0FBdENBO0FBMENBO0FBQ0E7QUFDQTtBQUNBO0FBN0NBO0FBbURBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaExzWkE7QWdMN1pBO0FBVUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEx3WUE7QWdMOVlBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QWhMNFhBO0FnTHpYQTtBQUVBO0FBSUE7O0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBREE7QWxMbkpBO0FBQ0E7QUFDQTtBa0xpSkE7QWxMNUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTGdIQTtBbExsR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTDBGQTtBbEw5RUE7QUFHQTtBQUNBO0FBQ0E7QUU0YUE7QWdMbldBO0FBS0E7QUFPQTtBbEx2S0E7QWtMMktBO0FoS3lMQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FoQmlIQTtBZ0xuV0E7QUFxQkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoTGtVQTtBZ0xoVUE7QUFFQTtBaEw4VEE7QWdMdFVBO0FBYUE7QWhMeVRBO0FnTHRVQTtBQWlCQTtBQUdBO0FBRUE7QUFGQTtBbExwTUE7QUFDQTtBQUNBO0FrTGtNQTtBbEw3TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWtMaUtBO0FsTG5KQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWtMMklBO0FsTC9IQTtBQUdBO0FBQ0E7QUFDQTtBa0w4SEE7QWxMaE5BO0FrTHVOQTtBaEs2SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXFDQTtBZ0s1U0E7QUFtSUE7QXJJdkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXFJaEVBO0FBd0lBO0FBeElBO0FBOElBO0FBQ0E7QUEvSUE7QUFtSkE7QWhMMFFBO0FnTDdaQTtBQTBKQTtBQUNBO0FBM0pBOztBQStKQTtBQUlBO0FBQ0E7QUFDQTtBaEx3UEE7QWdMN1pBOztBQTRLQTtBaExpUEE7QWdMN1pBO0FBc0xBO0FBQ0E7QUFDQTtBQUNBO0FBekxBO0FBa01BO0FBbE1BO0FBK01BO0FBL01BO0FBdU5BO0FBdk5BO0FBME5BO0FBMU5BO0FBaU9BO0FBQ0E7QUFDQTtBQUNBO0FoTHlMQTtBZ0w3WkE7QUF1T0E7QUF2T0E7O0F0TDVJQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0t3V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBbFBBO0FBc1BBO0FBdFBBO0FBNFBBO0FBQ0E7QUFDQTtBQUNBO0FBL1BBO0FBbVFBO0FBSUE7Ozs7O0FBU0E7QUFDQTtBaEw0SUE7QWdMdEpBOzs7OztBQWFBO0FBQ0E7QWhMd0lBO0FnTHRKQTs7Ozs7QUFrQkE7QUFJQTtBQUNBO0FBQ0E7QWhMOEhBO0FnTDdaQTtBQW9TQTtBaEx5SEE7QWdMckhBO0FBRUE7QUFDQTtBQUlBOztBQUtBO0FBRUE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaExrR0E7QWdMOUdBOztBQWdCQTtBQUlBO0FBQ0E7QUFDQTtBaEx3RkE7QWdMckZBO0FBR0E7QUFDQTtBQUNBO0FBN1VBO0FBbVZBO0FoTDBFQTtBZ0w3WkE7QUFzVkE7QWhMdUVBO0FnTG5FQTtBQUdBO0FBSUE7QUFFQTtBQUlBO0FBQ0E7QUFDQTtBaExvREE7QWdMdERBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEw2Q0E7QWdMdERBO0FBcUJBO0FBS0E7QUFZQTtBQVpBO0FBa0JBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QWhMQ0E7QWdMSkE7QUFNQTtBQS9aQTs7QUFvYkE7QUFwYkE7O0FsTHpGQTtBQUNBO0FBQ0E7QWtMdUZBOzs7QWxMbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTHNEQTs7Ozs7OztBbEx4Q0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTGdDQTs7O0FsTHBCQTtBQUdBO0FBQ0E7QUFDQTtBRTRhQTtBZ0w3WkE7O0FBdWJBO0FBdmJBOztBbExqR0E7QWtMaUdBOztBQWdjQTtBQWhjQTs7QUFrY0E7QUFsY0E7O0FBdWNBO0FBdmNBOztBdEw1SUE7QWNZQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXdLdWtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaGRBOztBQXNkQTtBQUNBO0FBdmRBO0FBMmRBO0FBM2RBO0FBaWVBO0FBamVBO0FBb2VBO0FBQ0E7QUFDQTtBaEx6RUE7QWdMN1pBO0FBeWVBO0FBemVBO0FBNmVBO0FBN2VBO0FBbWZBO0FBbmZBO0FBd2ZBO0FBQ0E7QUF6ZkE7QUE0ZkE7QUE1ZkE7QXJJNEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBcUkvS0E7QXJJcUxBO0FBQ0E7QXFJdExBO0FySTRMQTtBQUNBO0FBQ0E7QXFJOUxBO0FySW1NQTtBQUNBO0FxSXBNQTtBckl5TUE7QUFDQTtBQUNBO0FxSTNNQTs7O0FySWtOQTtBcUlsTkE7O0FBdWdCQTtBQXZnQkE7QUEyZ0JBO0FBM2dCQTtBQStnQkE7QUEvZ0JBO0FBbWhCQTtBQW5oQkE7QUF1aEJBO0FBdmhCQTtBQTJoQkE7QUFDQTtBQUNBO0FBQ0E7QUE5aEJBO0FBaWlCQTtBaExwSUE7QWdMN1pBO0FBd2lCQTtBaEwzSUE7QWdMN1pBO0FBMmlCQTtBQTNpQkE7QWxMekZBO0FBQ0E7QUFDQTtBa0x1RkE7QWxMbEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTHNEQTtBbEx4Q0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTGdDQTtBbExwQkE7QUFHQTtBQUNBO0FBQ0E7QWtMZUE7QWpJcElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FpSTRIQTtBQTRqQkE7QUFDQTtBQUNBO0FBQ0E7QWhMbEtBO0FnTDdaQTtBQWlrQkE7QUFqa0JBOztBQXVrQkE7QUF2a0JBOztBbEx6RkE7QUFDQTtBQUNBO0FrTHVGQTs7O0FsTGxGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBa0xnREE7Ozs7Ozs7QWxMeENBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBa0wwQkE7OztBbExwQkE7QUFTQTtBQUNBO0FBQ0E7QWtMU0E7O0FsTGpHQTtBa0xpR0E7QUFrbEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEw3TEE7QWdMN1pBO0FBNmxCQTtBQUNBO0FBOWxCQTtBQWttQkE7QUFsbUJBO0FBc21CQTtBQXRtQkE7QUEwbUJBO0FBMW1CQTtBQWluQkE7QUFqbkJBO0FBcW5CQTtBQUNBO0FBQ0E7QUFDQTtBaEwzTkE7QWdMN1pBO0FBMm5CQTtBQUNBO0FBNW5CQTtBbEx6RkE7QUFDQTtBQUNBO0FrTHVGQTtBbExsRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QWtMZ0RBO0FsTHhDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QWtMMEJBO0FsTHBCQTtBQVNBO0FBQ0E7QUFDQTtBa0xTQTtBbExqR0E7QWtMaUdBO0FBMm9CQTtBQTNvQkE7QUErb0JBO0FBL29CQTtBQW9wQkE7QUFwcEJBO0FqSHpIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FpSHF3QkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQS9wQkE7QWpIbEZBO0FpSGtGQTs7QUF3cUJBO0FBeHFCQTtBQWdyQkE7QUFockJBO0FBcXJCQTtBQUNBO0FBdHJCQTtBQXlyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTdyQkE7QXJJNEpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWlEQTtBQUNBO0FBQ0E7QXFJaWVBO0FBbnNCQTtBcklxTEE7QUFDQTtBcUl0TEE7QXJJNExBO0FBQ0E7QUFDQTtBcUk5TEE7QXJJbU1BO0FBQ0E7QXFJcE1BO0FySXlNQTtBQUNBO0FBQ0E7QXFJM01BOzs7QXJJa05BO0FxSWxOQTtBcklxT0E7QXFJck9BO0FBMHNCQTtBQUNBO0FBM3NCQTtBbEx6RkE7QUFDQTtBQUNBO0FrTHVGQTtBbExsRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWtMNERBO0FsTHhDQTtBQUNBO0FBQ0E7QWtMc0NBO0FsTHBCQTtBa0xvQkE7QUFpdEJBO0FBQ0E7QUFDQTtBQUNBO0FoTHZUQTtBZ0w3WkE7QUF1dEJBO0FoTDFUQTtBZ0w3WkE7QUE2dEJBO0FBN3RCQTtBQW11QkE7QUFDQTtBQXB1QkE7QUFzdUJBO0FBQ0E7QUF2dUJBO0FBOHVCQTtBQTl1QkE7QUFndkJBO0FBQ0E7QUFDQTtBQWx2QkE7QUFvdkJBO0FBcHZCQTtBQXV2QkE7QUF2dkJBO0FBMnZCQTtBQTN2QkE7QUE4dkJBO0FBOXZCQTtBQWt3QkE7QUFsd0JBO0FBb3dCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWh4QkE7QUF1eEJBO0FBdnhCQTtBQXl4QkE7QUF6eEJBO0FBMnhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWp5QkE7QUFxeUJBO0FBcnlCQTtBQXd5QkE7QUF4eUJBO0FBNHlCQTtBQTV5QkE7QUE4eUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXp6QkE7QUEyekJBO0FBM3pCQTs7O0FsTHpGQTtBQUNBO0FBQ0E7QWtMdUZBOzs7OztBbExsRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QWtMZ0RBOzs7Ozs7Ozs7Ozs7O0FsTHhDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QWtMMEJBOzs7OztBbExwQkE7QUFTQTtBQUNBO0FBQ0E7QUVzYUE7QWdMN1pBOzs7QUF5MEJBO0FBQ0E7QWhMN2FBO0FnTDdaQTtBQWcxQkE7QUFoMUJBO0FBcTFCQTtBQXIxQkE7QUF5MUJBO0FBS0E7QUFDQTtBaExsY0E7QWdMb2NBO0FBRUE7QUFMQTtBQVVBO0FBQ0E7QWhMNWNBO0FnTGljQTtBQWNBO0FBSUE7QUFDQTtBQW5CQTtBQTBCQTtBQXgzQkE7QUFnNEJBO0FoTG5lQTtBZ0w3WkE7OztBQXM0QkE7QUF0NEJBO0FBMjRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoNUJBO0F0TDVJQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0tpaENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEw5ZkE7QWdMN1pBO0FBODVCQTtBQTk1QkE7QUFvNkJBO0FBcDZCQTtBQXk2QkE7QUF6NkJBO0FBODZCQTtBQTk2QkE7QUFvN0JBO0FBcDdCQTtBQXU3QkE7QUFDQTtBQUNBO0FoTDVoQkE7QWdMN1pBO0FBODdCQTtBQTk3QkE7QUFvOEJBO0FBQ0E7QUFDQTtBQUNBO0FoTDFpQkE7QWdMN1pBO0FqSXhIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FyRDNCQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0swa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFuOUJBOztBQXk5QkE7QUFDQTtBQUNBO0FoTDlqQkE7QWdMN1pBOztBQTg5QkE7QUE5OUJBO0FBbStCQTtBQUNBO0FBcCtCQTs7QUEwK0JBO0FBMStCQTs7QUFpL0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTUvQkE7O0FBOC9CQTtBQTkvQkE7O0FBa2dDQTtBQWxnQ0E7O0FBd2dDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTlnQ0E7QUFvaENBO0FBcGhDQTtBQXloQ0E7QUFDQTtBQUNBO0FBQ0E7QUE1aENBO0FBK2hDQTtBQUNBO0FBQ0E7QUFqaUNBO0FBcWlDQTtBQXJpQ0E7QUF5aUNBO0FBQ0E7QUExaUNBO0FBOGlDQTtBQTlpQ0E7QUFrakNBO0FBbGpDQTtBQXNqQ0E7QUFDQTtBQXZqQ0E7QUEyakNBO0FBQ0E7QUE1akNBO0FBZ2tDQTtBQWhrQ0E7QUFva0NBO0FBQ0E7QUFDQTtBQUNBO0FBdmtDQTtBQTJrQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9rQ0E7QUFtbENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF2bENBO0FBMGxDQTtBQUNBO0FBQ0E7QUE1bENBO0FBaW1DQTtBQUNBO0FBQ0E7QUFDQTtBQXBtQ0E7QUF1bUNBO0FBQ0E7QUFDQTtBQXptQ0E7QUE2bUNBO0FBQ0E7QUE5bUNBO0FBZ25DQTtBQWhuQ0E7QUFxbkNBO0FBcm5DQTtBQTRuQ0E7QUFDQTtBaExodUJBO0FnTDdaQTtBQWlvQ0E7QUFDQTtBaExydUJBO0FnTDdaQTtBQXdvQ0E7QWhMM3VCQTtBZ0w3WkE7QUE4b0NBO0FBOW9DQTtBQW9wQ0E7QWhMdnZCQTtBZ0w3WkE7QUF3cENBO0FBeHBDQTs7QUFrcUNBO0FBbHFDQTtBQXdxQ0E7QUF4cUNBO0FqSXBJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBaUk0SEE7QUFrckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaEwxeEJBO0FnTDdaQTtBQTByQ0E7QUExckNBO0FBOHJDQTtBQTlyQ0E7QUFrc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUF6c0NBO0FBNHNDQTtBQTVzQ0E7QUFpdENBO0FBanRDQTtBQXF0Q0E7QUFydENBO0FBeXRDQTtBQXp0Q0E7QUE4dENBO0FBOXRDQTtBQWt1Q0E7QUFsdUNBO0FBc3VDQTtBQXR1Q0E7QUEwdUNBO0FBMXVDQTtBQTh1Q0E7QUE5dUNBO0FBa3ZDQTtBQWx2Q0E7QUFzdkNBO0FBdHZDQTtBQTJ2Q0E7QUEzdkNBO0FBZ3dDQTtBQWh3Q0E7QUFvd0NBO0FBcHdDQTtBQXd3Q0E7QUF4d0NBO0FBNHdDQTtBQTV3Q0E7QUFneENBO0FBaHhDQTtBQW94Q0E7QUFweENBO0FBd3hDQTtBQUNBO0FBenhDQTtBQTZ4Q0E7QUFDQTtBQTl4Q0E7QUFreUNBO0FBbHlDQTtBQXN5Q0E7QUF0eUNBO0FBMHlDQTtBQTF5Q0E7QUE4eUNBO0FBOXlDQTtBQWt6Q0E7QUFsekNBO0FBc3pDQTtBQXR6Q0E7QUEwekNBO0FBQ0E7QUEzekNBO0FBK3pDQTtBQS96Q0E7QUFxMENBO0FoTHg2QkE7QWdMN1pBO0FBdzBDQTtBQXgwQ0E7QUE2MENBO0FBNzBDQTtBQWkxQ0E7QUFDQTtBQUNBO0FBbjFDQTtBQXUxQ0E7QUF2MUNBO0FBMjFDQTtBQUNBO0FBQ0E7QUE3MUNBO0FBZzJDQTtBQUNBO0FBQ0E7QUFDQTtBQW4yQ0E7QUF3MkNBO0FBeDJDQTtBQTQyQ0E7QUFDQTtBQTcyQ0E7QUFpM0NBO0FBajNDQTtBQW8zQ0E7QUFwM0NBO0FBeTNDQTtBQUNBO0FBMTNDQTtBQWk0Q0E7QUFqNENBO0FBczRDQTtBQUNBO0FBQ0E7QTNJaC9DQTtBMkl3R0E7QTNJcEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUE7QUFpQkE7QUFBQTtBMklpRUE7QTNJdENBO0FBQ0E7QTJJcUNBO0EzSXRCQTtBQUNBO0EySXFCQTtBM0kyQkE7QTJJM0JBO0EzSXVDQTtBMkl2Q0E7QUFzNUNBO0FBQ0E7QUF2NUNBO0FBNDVDQTtBQTU1Q0E7QUFnNkNBO0FBaDZDQTtBQW82Q0E7QUFwNkNBO0F0TDVJQTtBY1lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0sySEE7QUEyNkNBO0FBMzZDQTtBQSs2Q0E7QUFDQTtBQU1BO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQVFBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFlQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUpBO0FBT0E7QUFQQTtBQVdBO0FoTHRrQ0E7QWdMMmpDQTtBQWdCQTtBQWhCQTtBQW9CQTtBaEwva0NBO0FnTDJqQ0E7OztBQTZCQTtBQUNBO0FBQ0E7QWhMMWxDQTtBZ0wyakNBO0FBcUNBO0FBQ0E7QWhMam1DQTtBZ0wyakNBOzs7QUErQ0E7QUFDQTtBQWhEQTtBQXFEQTtBQUNBO0FBdERBO0FBMERBO0FBMURBO0FBNkRBO0FBQ0E7QUE5REE7QUFrRUE7QUFDQTtBQW5FQTtBbExqakRBO0FBQ0E7QUFDQTtBQUNBO0FrTDhpREE7QWxMMWlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBa0w4Z0RBO0FsTGhnREE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTHcvQ0E7QWxMNStDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FrTHMrQ0E7QWxMempEQTtBQUNBO0FrTHdqREE7QWxMampEQTtBQUNBO0FBQ0E7QUFDQTtBa0w4aURBO0FsTDFpREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QWtMd2dEQTtBbExoZ0RBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBa0xrL0NBO0FsTDUrQ0E7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBa0xnK0NBO0FsTHpqREE7QUFDQTtBa0wrcERBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFMQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhCQTtBQW9CQTtBQXBCQTtBQXdCQTtBQUNBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFHQTs7QUFHQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQU5BO0FBVUE7QUFWQTtBQXNCQTtBQUVBO0FBQ0E7QUF6QkE7QUE4QkE7QUFDQTtBQS9CQTtBbExodERBO0FBQ0E7QUFDQTtBa0w4c0RBO0FsTHpzREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWtMNnFEQTtBbEwvcERBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBa0x1cERBO0FsTDNvREE7QUFHQTtBQUNBO0FBQ0E7QUU0YUE7QWdMMHRDQTtBQXlDQTtBQXpDQTtBbEx4dERBO0FBQ0E7QUU2ZkE7QWdMZ3hDQTtBQUdBO0FBQ0E7QUFDQTtBQUxBO0FBU0E7QUFDQTtBQVZBO0FBYUE7QUFDQTtBQUdBO0FBQ0E7QUFEQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFSQTtBQVlBO0FBWkE7QUFnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXBCQTtBQXVCQTtBQXZCQTtBQTJCQTtBQUNBO0FBNUJBO0FBZ0NBO0FBQ0E7QUFDQTtBQWxDQTtBQXNDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBaERBO0FBbURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTNEQTtBQWtFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUF6RUE7QWxMdnhEQTtBQUNBO0FBQ0E7QWtMcXhEQTtBbExoeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTG92REE7QWxMdHVEQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWtMOHREQTtBbExsdERBO0FBR0E7QUFDQTtBQUNBO0FrTDZzREE7QUE0RUE7QUE1RUE7QWpJbDBEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBaUkwekRBO0FBdUZBO0FBQ0E7QUF4RkE7QUE2RkE7QUFDQTtBQTlGQTtBQW1HQTtBQW5HQTtBbEx2eERBO0FBQ0E7QUFDQTtBa0xxeERBO0FsTGh4REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QWtMOHVEQTtBbEx0dURBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBa0x3dERBO0FsTGx0REE7QUFTQTtBQUNBO0FBQ0E7QWtMdXNEQTtBbEwveERBO0FrTCt4REE7QWxMdnhEQTtBQUNBO0FBQ0E7QWtMcXhEQTtBbExoeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FrTG92REE7QWxMdHVEQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWtMOHREQTtBbExsdERBO0FBR0E7QUFDQTtBQUNBO0FrTDZzREE7QWxML3hEQTtBQUNBO0FrTGs1REE7QUFDQTtBQURBO0FBS0E7QUFMQTs7QWpJdDdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FpSTg3REE7QUFDQTtBQURBO0FBWUE7QUFDQTtBQWJBO0FBaUJBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFKQTtBQVVBO0FBQ0E7QUFYQTtBQWNBO0FBQ0E7QUFmQTtBQW1CQTtBQW5CQTtBQXVCQTtBQUNBO0FBeEJBO0FBNkJBO0FBQ0E7QUE5QkE7QUFpQ0E7QUFDQTtBQUtBOztBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQXhCQTtBQTBCQTtBQTFCQTtBQThCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWhMemhEQTtBZ0xzL0NBO0FBcUNBO0FBQ0E7QUFHQTs7QTFMNWtFQTs7QTJMRUE7QXpMRkE7OztBeUxNQTtBM0xJQTtBQWdCQTs7QTJMaEJBO0EzTFZBOztBMkxhQTtBekxiQTs7O0F5TGlCQTtBM0xQQTtBQWdCQTs7QTJMTEE7QXRMckJBOzs7Ozs7OztBc0w4QkE7QXJMOUJBO0FBU0E7QU5UQTs7QTJMbUNBO0F6TG5DQTs7O0F5THVDQTtBM0w3QkE7QUFnQkE7O0EyTGlCQTtBQy9CQTtBQUdBO0FBQ0E7QWxMNmhCQTtBa0xqaUJBO0FBT0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBbExvaEJBO0FrTHJoQkE7QUFJQTtBQWhCQTtBQXFCQTtBbEw0Z0JBO0FrTHhnQkE7QUFFQTtBQUtBO0FBQ0E7QUFDQTtBQUdBOztBQUVBO0FBQ0E7QWxMeWZBO0FrTDVmQTs7QUFNQTtBQUdBOztBQUNBO0FBR0E7O0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBUUE7QUFJQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBSUE7O0FBUUE7QUFSQTs7QXBMekNBO0FBQ0E7QUFDQTtBb0x1Q0E7OztBcExsQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFVQTtBQUNBO0FBQ0E7QW9MQUE7Ozs7Ozs7QXBMUUE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FvTHRCQTs7O0FwTDRCQTtBQVNBO0FBQ0E7QUFDQTtBb0x2Q0E7O0FwTGpEQTtBb0xpREE7O0FsS21UQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBcUNBO0FBQ0E7QTFCN2JBOztBMkxtS0E7QXpMbktBOzs7QXlMdUtBO0EzTDdKQTtBQWdCQTs7QTJMaUpBO0FFeEtBO0FBRUE7QW5Md2lCQTtBbUwxaUJBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQU5BO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVpBO0FBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQW5CQTtBQXNCQTtBQXRCQTtBQTBCQTtBbkx3Z0JBO0FtTGxpQkE7O0FBZ0NBO0FBQ0E7QUFDQTtBQWxDQTs7QUFvQ0E7QUFwQ0E7QUF1Q0E7QUFDQTtBQXhDQTtBQXVDQTtBQUNBO0FBeENBOztBQXVDQTtBQUNBO0FBeENBOztBQTZDQTtBQUNBO0FBQ0E7QUEvQ0E7O0FBaURBO0FBakRBOzs7O0FBb0RBO0FBU0E7O0FBRUE7QUFDQTtBQUlBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVFBO0FBQ0E7O0E3THhGQTs7QThMRUE7QTVMRkE7OztBNExNQTtBOUxJQTtBQWdCQTs7QThMaEJBO0E5TFZBOztBOExhQTtBNUxiQTs7O0E0TGlCQTtBOUxQQTtBQWdCQTs7QThMTEE7QTdKckJBOztBNkp3QkE7QUNLQTtBOUp4QkE7QUFDQTtBQUNBO0E4SnlCQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpCQTtBQXNCQTtBQUNBO0FBdkJBO0FBNkJBO0FBQ0E7QUE5QkE7QUFxQ0E7QUFyQ0E7QUF5Q0E7QUF6Q0E7QUFnREE7QUFDQTtBQUNBO0FBQ0E7QXJMdWRBO0FxTDFnQkE7QUEwREE7QUExREE7QUE2REE7QUE3REE7QUFrRUE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQU5BO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTs7QS9MbkpBOztBZ01FQTtBOUxGQTs7O0E4TE1BO0FoTUlBO0FBZ0JBOztBZ01oQkE7QWhNVkE7O0FnTWFBO0E5TGJBOzs7QThMaUJBO0FoTVBBO0FBZ0JBOztBZ01MQTtBQ0tBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2TDJnQkE7QXVML2dCQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFPQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWkE7QUFpQkE7QUEzQkE7QUFrQ0E7QUFFQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQVlBO0FBWkE7QUFnQkE7QUFDQTtBQWpCQTtBQXFCQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdkwyWUE7QXVMdFpBO0FBY0E7QXZMd1lBO0F1THRaQTtBQWtCQTtBQUNBO0FBQ0E7QUFwQkE7QUEyQkE7QUEzQkE7QUErQkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F2TDZXQTtBdUxwWEE7QUFVQTtBQVZBO0FBaUJBO0FBTUE7QUFFQTtBQUZBO0FBTUE7QUFLQTtBQUNBO0FBQ0E7QUFHQTtBQUNBOztBak1qT0E7O0FrTUVBO0FoTUZBOzs7QWdNTUE7QWxNSUE7QUFnQkE7O0FrTWhCQTtBbE1WQTs7QWtNYUE7QWhNYkE7OztBZ01pQkE7QWxNUEE7QUFnQkE7O0FrTUxBO0FsTXJCQTs7QWtNd0JBO0FoTXhCQTs7O0FnTTRCQTtBbE1sQkE7QUFnQkE7O0FrTU1BO0FsTWhDQTs7QWtNbUNBO0FoTW5DQTs7O0FnTXVDQTtBbE03QkE7QUFnQkE7O0FrTWlCQTtBN0wzQ0E7Ozs7Ozs7O0E2TG9EQTtBNUxwREE7QUFTQTtBTlRBOztBa015REE7QWhNekRBOzs7QWdNNkRBO0FsTW5EQTtBQWdCQTs7QWtNdUNBO0FoSmpFQTtBQW1EQTtBQ1dBO0FuRDlEQTs7QWtNdUVBO0FoTXZFQTs7O0FnTTJFQTtBbE1qRUE7QUFnQkE7O0FrTXFEQTtBekkvRUE7Ozs7Ozs7OztBeUl5RkE7QUN6REE7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBMUk1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTBJeUJBO0ExSWpDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBMEk2QkE7QTlJcUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QThJaEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QTlJdUdBO0FBQ0E7QThJeEdBO0E5SXFJQTtBOElySUE7QTlJaUhBO0E4SWpIQTtBOUlxSEE7QUFDQTtBQUNBO0FBQ0E7QThJeEhBO0E5SXFIQTtBQUNBO0FBQ0E7QUFDQTtBOEl4SEE7QTlJcUhBO0FBQ0E7QUFDQTtBQUNBO0E4SXhIQTtBOUk0SEE7QThJNUhBO0FBZ0JBO0FBQ0E7QUFDQTtBQWxCQTtBQXNCQTtBQXRCQTtBQXlCQTtBQXpCQTtBQThCQTtBQUNBO0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QUFlQTtBQUNBO0FBaEJBO0FBbUJBO0FBbkJBO0FBeUJBO0FBQ0E7QUFDQTtBQTNCQTtBQThCQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFPQTtBQUNBO0FBQ0E7QUFUQTtBQVlBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FDOUpBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBVEE7QUFhQTs7QXBNaEJBOztBcU1FQTtBbk1GQTs7O0FtTU1BO0FyTUlBO0FBZ0JBOztBcU1oQkE7QWhNVkE7Ozs7Ozs7O0FnTW1CQTtBL0xuQkE7QUFTQTtBTlRBOztBcU13QkE7QW5NeEJBOzs7QW1NNEJBO0FyTWxCQTtBQWdCQTs7QXFNTUE7QUMxQkE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0E5TCtCQTtBQUNBO0FBQ0E7QUFDQTtBOExsQ0E7QTlMc0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E4TGxFQTtBOUxnRkE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E4THhGQTtBOUxvR0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBOExuR0E7QTlMZ0JBO0FBQ0E7QThMVkE7QTVLNldBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFxQ0E7QUFDQTtBNEsvWUE7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQVVBOztBdE14REE7O0F1TUVBO0FyTUZBOzs7QXFNTUE7QXZNSUE7QUFnQkE7O0F1TWhCQTtBdk1WQTs7QXVNYUE7QXJNYkE7OztBcU1pQkE7QXZNUEE7QUFnQkE7O0F1TUxBO0FDakJBO0FBRUE7QTlMdWlCQTtBOEx6aUJBO0FDRkE7QUFDQTtBQUNBO0EvTHlpQkE7QThMcmlCQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QTlMOGhCQTtBOExyaUJBO0FBWUE7QUFDQTtBQUVBO0FBQ0E7QUFJQTtBQXBCQTtBQXFCQTtBOUxnaEJBO0E4TDVnQkE7QUFFQTtBQUNBO0E5THlnQkE7QThMNWdCQTtBQU1BOztBRXZDQTs7O0FDR0E7QTNNSEE7O0EyTU1BO0F6TU5BOzs7QXlNVUE7QTNNQUE7QUFnQkE7O0EyTVpBO0EzTWRBOztBMk1pQkE7QXpNakJBOzs7QXlNcUJBO0EzTVhBO0FBZ0JBOztBMk1EQTtBbEp6QkE7Ozs7Ozs7OztBa0ptQ0E7QTNNbkNBOztBMk1zQ0E7QXpNdENBOzs7QXlNMENBO0EzTWhDQTtBQWdCQTs7QTJNb0JBO0EzTDlDQTtBQVlBO0FoQlpBOztBMk1tREE7QXpNbkRBOzs7QXlNdURBO0EzTTdDQTtBQWdCQTs7QTJNaUNBO0EzTTNEQTs7QTJNOERBO0F6TTlEQTs7O0F5TWtFQTtBM014REE7QUFnQkE7O0EyTTRDQTtBbEp0RUE7Ozs7Ozs7OztBa0pnRkE7QTNNaEZBOztBMk1tRkE7QXpNbkZBOzs7QXlNdUZBO0EzTTdFQTtBQWdCQTs7QTJNaUVBO0FDM0ZBO0FBTUE7QUYwQkE7QUFFQTtBQUNBO0FoTTBnQkE7QWdNM2dCQTtBQUlBO0FBQ0E7QWhNc2dCQTtBZ01qZ0JBO0FBQ0E7QUFYQTtBQW1CQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0FqSi9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBaUp1Q0E7QUFXQTtBQVhBO0FBY0E7QUFDQTtBQWZBO0FBbUJBO0FBbkJBO0FBc0JBO0FBQ0E7QUFDQTtBQXhCQTtBQThCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FoTWdkQTtBZ01sZkE7QUFzQ0E7QUF0Q0E7QUEwQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoREE7QUFxREE7QWhNNmJBO0FnTXhiQTtBQUVBO0FBNURBO0FBbUVBO0FBbkVBO0FBeUVBO0FoTXlhQTtBZ01sZkE7QUE0RUE7QUE1RUE7QUFnRkE7QWhNa2FBO0FnTWxmQTtBQXFGQTtBQXJGQTs7OztBQStGQTtBQUNBO0FBQ0E7QWhNaVpBO0FnTTVZQTtBRzNEQTtBQUNBO0FBQ0E7QUFDQTtBSHdEQTtBR3BKQTtBQUNBO0FBQ0E7QUhrSkE7QUcvSUE7QUgrSUE7QUczSUE7QUgySUE7QUd2SUE7QUFDQTtBQUNBO0FBQ0E7QUhvSUE7QUdqSUE7QUhpSUE7QUc3SEE7QW5NeWdCQTtBZ001WUE7QUd2SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuTThmQTtBZ001WUE7QUczR0E7QW5NdWZBO0FnTTVZQTtBakpySkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBL0N3aEJBO0FnTTVZQTtBRy9GQTtBSCtGQTtBRzVGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUh1RkE7QUduRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FIOEVBO0FHMUVBO0FIMEVBOztBR3JFQTtBSHFFQTtBQWdCQTtBQWhCQTtBQXFCQTtBQUNBO0FBV0E7QUFFQTtBQUZBO0FBTUE7QUFOQTs7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUtBOztBRy9HQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuTW1jQTtBZ014VkE7O0FHeE1BO0FBQ0E7QUFDQTtBSHNNQTs7QUduTUE7QUhtTUE7O0FHL0xBO0FIK0xBOztBRzNMQTtBQUNBO0FBQ0E7QUFDQTtBSHdMQTs7QUdyTEE7QUhxTEE7O0FHakxBO0FuTXlnQkE7QWdNeFZBOztBRzNLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5NOGZBO0FnTXhWQTs7QUcvSkE7QW5NdWZBO0FnTXhWQTs7QWpKek1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QS9Dd2hCQTtBZ014VkE7O0FHbkpBO0FIbUpBOztBR2hKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUgySUE7O0FHdklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBSGtJQTs7QUc5SEE7QUg4SEE7Ozs7QUd6SEE7QUFDQTtBSG1JQTtBMU1oT0E7O0EyTTZWQTtBek03VkE7OztBeU1pV0E7QTNNdlZBO0FBZ0JBOztBMk0yVUE7QUdoV0E7QUFFQTtBQUZBO0FBSUE7QXBNb2lCQTtBb014aUJBO0FBT0E7QUFDQTtBQVFBO0FBRUE7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FwTThnQkE7QW9NbGhCQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBVkE7QUFjQTtBQUNBO0FBQ0E7QXZDeENBO0FBQ0E7QUFDQTtBQWlDQTtBQUNBO0FBQ0E7QXVDS0E7QUFsQkE7QXZDcEJBO0F1Q29CQTtBdkNnQkE7QUFDQTtBdUNHQTtBQUNBO0FBQ0E7QUF0QkE7QUEwQkE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBcE1rZkE7QW9NcGZBO0FBSUE7QUFKQTtBQU9BO0FBUEE7QUFVQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFEQTtBQUlBO0FBSkE7QUFNQTtBcE1tZEE7QW9NemRBO0FBWUE7QUFaQTtBQWdCQTtBcE15Y0E7QW9NemRBO0FBa0JBO0FBbEJBO0FBc0JBO0FwTW1jQTtBb016ZEE7QUF5QkE7QUF6QkE7QXZDbENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdUM2QkE7QXZDMUJBO0FBQ0E7QXVDeUJBO0F2Q3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdUM4Q0E7QXZDcEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBdUMrREE7QXZDNURBO0FBQ0E7QXVDMkRBO0F2Q3ZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QXVDK0NBO0FBS0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTs7QTlNbklBOztBK01FQTtBN01GQTs7O0E2TU1BO0EvTUlBO0FBZ0JBOztBK01oQkE7QTFNVkE7Ozs7Ozs7O0EwTW1CQTtBek1uQkE7QUFTQTtBTlRBOztBK013QkE7QTdNeEJBOzs7QTZNNEJBO0EvTWxCQTtBQWdCQTs7QStNTUE7QS9NaENBOztBK01tQ0E7QTdNbkNBOzs7QTZNdUNBO0EvTTdCQTtBQWdCQTs7QStNaUJBO0FyTWtnQkE7QXNNbmlCQTtBQU9BO0FBQ0E7QUFSQTtBQVdBO0FBQ0E7QUFDQTtBQWJBO0FBaUJBO0FBQ0E7QUFLQTtBQUdBO0FBQ0E7QUFKQTtBQVNBO0FBQ0E7QUFWQTtBQWNBO0F0TThmQTtBc001Z0JBO0FBaUJBO0FBQ0E7QUFsQkE7QUF5QkE7QUFDQTtBQTFCQTtBQThCQTtBQUNBO0FBL0JBO0FBbUNBO0FBQ0E7QUFDQTtBQXJDQTtBQThDQTtBQTlDQTtBeE1zQkE7QUFDQTtBQUNBO0F3TXhCQTtBeE02QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXdNekRBO0F4TXVFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QXdNL0VBO0F4TTJGQTtBQUdBO0FBQ0E7QUFDQTtBd01oR0E7QXhNY0E7QXdNZEE7QUE4REE7QUE5REE7QXhNc0JBO0FBQ0E7QUFDQTtBd014QkE7QXhNNkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0F3TXpEQTtBeE11RUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0F3TS9FQTtBeE0yRkE7QUFHQTtBQUNBO0FBQ0E7QXdNaEdBO0F4TWNBO0F3TWRBO0FBeUVBO0FBQ0E7QUFDQTtBQUNBO0FBNUVBO0FBa0ZBOzsiLCJzb3VyY2VSb290IjoiIn0=*/