/*!
Theme Name: Kagency scss
Author: Kromi
Author URI: https:/kromi.fr
Description: Kagency scss
Version: 1.0
License: GNU General Public License
License URI: https://www.gnu.org/licenses/gpl.html
Tags: 
*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

body {
  line-height: 1;
}

button {
  outline: 0;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

q {
  display: inline;
  font-style: italic;
}

q:before {
  content: '"';
  font-style: normal;
}

q:after {
  content: '"';
  font-style: normal;
}

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

table {
  border-collapse: collapse;
  border-spacing: 0;
}

th, td {
  padding: 2px;
}

big {
  font-size: 120%;
}

small, sup, sub {
  font-size: 80%;
}

sup {
  vertical-align: super;
}

sub {
  vertical-align: sub;
}

dd {
  margin-left: 20px;
}

kbd, tt {
  font-family: courier;
  font-size: 12px;
}

ins {
  text-decoration: underline;
}

del, strike, s {
  text-decoration: line-through;
}

dt {
  font-weight: bold;
}

address, cite, var {
  font-style: italic;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
}

.overflow-visible {
  overflow: visible !important;
}

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

.hide-dektop {
  display: none !important;
}

.primary-color {
  color: #6A7756;
}

.secondary-color {
  color: #CEC5AF;
}

.column-spacer {
  display: inline-block;
}
.column-spacer--horizontal {
  width: 80px;
  height: 2px;
}
.column-spacer--primary {
  background: #6A7756;
}
.column-spacer--secondary {
  background: #CEC5AF;
}
.column-spacer--white {
  background: white;
}

@media screen and (max-width: 770px) {
  .hidden-sm {
    display: none !important;
  }
}
body {
  overflow-x: hidden;
}

.content-section {
  width: 100%;
  margin: 0 auto;
  padding: 50px 0;
}
.content-section ~ .content-section {
  padding-top: 25px;
}
.content-section--no-pt {
  padding-top: 0 !important;
}
.content-section--no-pb {
  padding-bottom: 0 !important;
}

@media screen and (max-width: 1420px) {
  .container {
    padding: 0 20px;
  }
}
@media screen and (max-width: 1024px) {
  .content-section {
    padding: 40px 0 20px 0;
  }
}
body {
  font-family: "Montserrat", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1,
.h1 {
  font-size: 55px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  color: white;
  margin-bottom: 30px;
}

h2,
.h2 {
  font-size: 45px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 16px;
  color: #6A7756;
}

h3,
.h3 {
  font-size: 28px;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  margin-bottom: 20px;
  color: #6A7756;
}

h4,
.h4 {
  font-size: 24px;
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  margin-bottom: 20px;
  color: #6A7756;
}

.content-edito {
  color: black;
}
.content-edito p {
  font-size: 16px;
  line-height: 25px;
  font-family: "Montserrat", sans-serif;
  color: inherit;
  padding-bottom: 25px;
}
.content-edito p em {
  font-style: italic;
}
.content-edito p strong, .content-edito p b {
  font-weight: 700;
}
.content-edito p:last-child {
  padding-bottom: 0;
}
.content-edito ul {
  margin-bottom: 20px;
}
.content-edito ul li {
  padding-left: 15px;
  position: relative;
  margin-bottom: 5px;
  color: inherit;
}
.content-edito ul li strong, .content-edito ul li b {
  font-weight: 700;
}
.content-edito ul li:before {
  content: "";
  position: absolute;
  top: 6px;
  left: 0;
  display: inline-block;
  line-height: 1;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #6A7756;
}
.content-edito ol {
  margin-bottom: 20px;
  counter-reset: ol-counter;
}
.content-edito ol strong, .content-edito ol b {
  font-weight: 700;
}
.content-edito ol li {
  counter-increment: ol-counter;
  margin-bottom: 5px;
}
.content-edito ol li:before {
  content: counter(ol-counter) ". ";
  color: inherit;
  font-weight: bold;
  font-size: 13px;
}
.content-edito p + ul,
.content-edito p + ol {
  margin-top: -10px;
}
.content-edito a:not(.btn) {
  color: #6A7756;
}

@media screen and (max-width: 500px) {
  h1 {
    font-size: 36.6666666667px;
    word-wrap: break-word;
  }
  h2 {
    font-size: 30px;
  }
  h3 {
    font-size: 21.5384615385px;
  }
}
.form__field {
  position: relative;
  margin-bottom: 30px;
  width: 100%;
}
.form__field label {
  color: black;
}
.form__field label a {
  color: #6A7756;
  text-decoration: none;
}
.form__field label a:hover {
  text-decoration: underline;
}
.form__field--text, .form__field--email, .form__field--tel, .form__field--textarea {
  padding: 10px 10px 0;
  border: 1px solid #6A7756;
}
.form__field--text input,
.form__field--text textarea, .form__field--email input,
.form__field--email textarea, .form__field--tel input,
.form__field--tel textarea, .form__field--textarea input,
.form__field--textarea textarea {
  width: 100%;
  padding: 8px 0;
  font-size: 16px;
  font-family: "Montserrat", sans-serif;
  color: #6A7756;
  border: none;
  -webkit-transition: border-color 250ms;
  transition: border-color 250ms;
  background-color: transparent;
}
.form__field--text input:focus,
.form__field--text textarea:focus, .form__field--email input:focus,
.form__field--email textarea:focus, .form__field--tel input:focus,
.form__field--tel textarea:focus, .form__field--textarea input:focus,
.form__field--textarea textarea:focus {
  outline: none;
}
.form__field--text input::-webkit-input-placeholder, .form__field--text textarea::-webkit-input-placeholder, .form__field--email input::-webkit-input-placeholder, .form__field--email textarea::-webkit-input-placeholder, .form__field--tel input::-webkit-input-placeholder, .form__field--tel textarea::-webkit-input-placeholder, .form__field--textarea input::-webkit-input-placeholder, .form__field--textarea textarea::-webkit-input-placeholder {
  color: transparent;
}
.form__field--text input::-moz-placeholder, .form__field--text textarea::-moz-placeholder, .form__field--email input::-moz-placeholder, .form__field--email textarea::-moz-placeholder, .form__field--tel input::-moz-placeholder, .form__field--tel textarea::-moz-placeholder, .form__field--textarea input::-moz-placeholder, .form__field--textarea textarea::-moz-placeholder {
  color: transparent;
}
.form__field--text input:-ms-input-placeholder, .form__field--text textarea:-ms-input-placeholder, .form__field--email input:-ms-input-placeholder, .form__field--email textarea:-ms-input-placeholder, .form__field--tel input:-ms-input-placeholder, .form__field--tel textarea:-ms-input-placeholder, .form__field--textarea input:-ms-input-placeholder, .form__field--textarea textarea:-ms-input-placeholder {
  color: transparent;
}
.form__field--text input::-ms-input-placeholder, .form__field--text textarea::-ms-input-placeholder, .form__field--email input::-ms-input-placeholder, .form__field--email textarea::-ms-input-placeholder, .form__field--tel input::-ms-input-placeholder, .form__field--tel textarea::-ms-input-placeholder, .form__field--textarea input::-ms-input-placeholder, .form__field--textarea textarea::-ms-input-placeholder {
  color: transparent;
}
.form__field--text input::placeholder,
.form__field--text textarea::placeholder, .form__field--email input::placeholder,
.form__field--email textarea::placeholder, .form__field--tel input::placeholder,
.form__field--tel textarea::placeholder, .form__field--textarea input::placeholder,
.form__field--textarea textarea::placeholder {
  color: transparent;
}
.form__field--text input::-webkit-contacts-auto-fill-button,
.form__field--text textarea::-webkit-contacts-auto-fill-button, .form__field--email input::-webkit-contacts-auto-fill-button,
.form__field--email textarea::-webkit-contacts-auto-fill-button, .form__field--tel input::-webkit-contacts-auto-fill-button,
.form__field--tel textarea::-webkit-contacts-auto-fill-button, .form__field--textarea input::-webkit-contacts-auto-fill-button,
.form__field--textarea textarea::-webkit-contacts-auto-fill-button {
  visibility: hidden;
  pointer-events: none;
  position: absolute;
}
.form__field--text input:not(:-moz-placeholder-shown) + label, .form__field--text textarea:not(:-moz-placeholder-shown) + label, .form__field--email input:not(:-moz-placeholder-shown) + label, .form__field--email textarea:not(:-moz-placeholder-shown) + label, .form__field--tel input:not(:-moz-placeholder-shown) + label, .form__field--tel textarea:not(:-moz-placeholder-shown) + label, .form__field--textarea input:not(:-moz-placeholder-shown) + label, .form__field--textarea textarea:not(:-moz-placeholder-shown) + label {
  transform: translateY(-100%) scale(0.75);
}
.form__field--text input:not(:-ms-input-placeholder) + label, .form__field--text textarea:not(:-ms-input-placeholder) + label, .form__field--email input:not(:-ms-input-placeholder) + label, .form__field--email textarea:not(:-ms-input-placeholder) + label, .form__field--tel input:not(:-ms-input-placeholder) + label, .form__field--tel textarea:not(:-ms-input-placeholder) + label, .form__field--textarea input:not(:-ms-input-placeholder) + label, .form__field--textarea textarea:not(:-ms-input-placeholder) + label {
  transform: translateY(-100%) scale(0.75);
}
.form__field--text input:focus + label, .form__field--text input:not(:placeholder-shown) + label,
.form__field--text textarea:focus + label,
.form__field--text textarea:not(:placeholder-shown) + label, .form__field--email input:focus + label, .form__field--email input:not(:placeholder-shown) + label,
.form__field--email textarea:focus + label,
.form__field--email textarea:not(:placeholder-shown) + label, .form__field--tel input:focus + label, .form__field--tel input:not(:placeholder-shown) + label,
.form__field--tel textarea:focus + label,
.form__field--tel textarea:not(:placeholder-shown) + label, .form__field--textarea input:focus + label, .form__field--textarea input:not(:placeholder-shown) + label,
.form__field--textarea textarea:focus + label,
.form__field--textarea textarea:not(:placeholder-shown) + label {
  -webkit-transform: translateY(-100%) scale(0.75);
          transform: translateY(-100%) scale(0.75);
}
.form__field--text label, .form__field--email label, .form__field--tel label, .form__field--textarea label {
  position: absolute;
  top: 16px;
  left: 10px;
  color: #6A7756;
  font-family: "Montserrat", sans-serif;
  pointer-events: none;
  -webkit-transform-origin: left center;
          transform-origin: left center;
  -webkit-transition: -webkit-transform 250ms;
  transition: -webkit-transform 250ms;
  transition: transform 250ms;
  transition: transform 250ms, -webkit-transform 250ms;
}
.form__field--file {
  height: 51px;
  border: 1px solid #6A7756;
}
.form__field--file input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
}
.form__field--file input:hover {
  cursor: pointer;
}
.form__field--file label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: 51px;
  padding: 10px;
  color: #CEC5AF;
  line-height: 1.7;
}
.form__field--file label:after {
  content: attr(data-browse);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(100% - 2px);
  padding: 10px;
  line-height: 1.7;
  color: white;
  background: #6A7756;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.form__field--file:hover label:after {
  background: #CEC5AF;
}

.btn-container--centered {
  text-align: center;
}
.btn-container--right {
  text-align: right;
}

.btn {
  display: inline-block;
  padding: 13px 20px;
  margin-bottom: 10px;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  letter-spacing: 1.65px;
  text-decoration: none;
  border: 1px solid;
}
.btn:after {
  content: "";
  display: inline-block;
  width: 26px;
  height: 9px;
  margin-left: 20px;
  -webkit-transition: -webkit-transform 0.3s ease-out;
  transition: -webkit-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
}
.btn:hover {
  cursor: pointer;
}
.btn:hover:after {
  -webkit-transform: translateX(10px);
          transform: translateX(10px);
}
.btn--primary {
  background-color: #6A7756;
  color: white;
  border-color: #6A7756;
}
.btn--primary:after {
  background: transparent url("../img/arrow-btn-right-white.svg") center no-repeat;
  background-size: contain;
}
.btn--primary:hover {
  background-color: #969C7B;
  color: white;
  border-color: #969C7B;
}
.btn--primary-alt {
  background-color: white;
  color: #6A7756;
  border-color: #6A7756;
}
.btn--primary-alt:after {
  background: transparent url("../img/arrow-btn-right-primary.svg") center no-repeat;
  background-size: contain;
}
.btn--primary-alt:hover {
  background-color: #6A7756;
  color: white;
}
.btn--primary-alt:hover:after {
  background: transparent url("../img/arrow-btn-right-white.svg") center no-repeat;
  background-size: contain;
}
.btn--primary-alt-white {
  background-color: transparent;
  color: white;
  border-color: white;
}
.btn--primary-alt-white:after {
  background: transparent url("../img/arrow-btn-right-white.svg") center no-repeat;
  background-size: contain;
}
.btn--primary-alt-white:hover {
  background-color: white;
  color: #6A7756;
}
.btn--primary-alt-white:hover:after {
  background: transparent url("../img/arrow-btn-right-primary.svg") center no-repeat;
  background-size: contain;
}
.btn--fullwidth {
  width: 100%;
}
.btn--big {
  padding: 25px;
}

.container {
  width: 100%;
  max-width: 1420px;
  margin-left: auto;
  margin-right: auto;
}
.container--fullwidth {
  max-width: none;
}

.row {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
}
.row--equal-height {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.row--flex-center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.row--flex-start {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.row--flex-end {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}
.row--no-gutter [class^=col-] {
  margin: 0 !important;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.row [class^=col-] {
  margin: 0 10px;
  min-height: 0.125rem;
}
@media only screen and (min-width: 770px) {
  .row [class^=col-]:first-of-type {
    margin-left: 0;
  }
  .row [class^=col-]:last-of-type {
    margin-right: 0;
  }
}

.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12 {
  width: 100%;
}

.col-1-sm {
  width: calc(8.3333333333% - 9.1666666667px);
}

.col-2-sm {
  width: calc(16.6666666667% - 8.3333333333px);
}

.col-3-sm {
  width: calc(25% - 7.5px);
}

.col-4-sm {
  width: calc(33.3333333333% - 6.6666666667px);
}

.col-5-sm {
  width: calc(41.6666666667% - 5.8333333333px);
}

.col-6-sm {
  width: calc(50% - 5px);
}

.col-7-sm {
  width: calc(58.3333333333% - 4.1666666667px);
}

.col-8-sm {
  width: calc(66.6666666667% - 3.3333333333px);
}

.col-9-sm {
  width: calc(75% - 2.5px);
}

.col-10-sm {
  width: calc(83.3333333333% - 1.6666666667px);
}

.col-11-sm {
  width: calc(91.6666666667% - 0.8333333333px);
}

.col-12-sm {
  width: 100%;
}

@media only screen and (min-width: 770px) {
  .row {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .col-1 {
    width: calc(8.3333333333% - 9.1666666667px);
  }
  .col-2 {
    width: calc(16.6666666667% - 8.3333333333px);
  }
  .col-3 {
    width: calc(25% - 7.5px);
  }
  .col-4 {
    width: calc(33.3333333333% - 6.6666666667px);
  }
  .col-5 {
    width: calc(41.6666666667% - 5.8333333333px);
  }
  .col-6 {
    width: calc(50% - 5px);
  }
  .col-7 {
    width: calc(58.3333333333% - 4.1666666667px);
  }
  .col-8 {
    width: calc(66.6666666667% - 3.3333333333px);
  }
  .col-9 {
    width: calc(75% - 2.5px);
  }
  .col-10 {
    width: calc(83.3333333333% - 1.6666666667px);
  }
  .col-11 {
    width: calc(91.6666666667% - 0.8333333333px);
  }
  .col-12 {
    width: 100%;
  }
  .hidden-sm {
    display: block;
  }
}
.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2000;
  width: 100%;
  background: #969C7B;
}
.header__main {
  padding: 15px clamp(20px, 5vw, 80px);
}
.header__logo {
  display: block;
  max-width: 295px;
  -webkit-transition: max-width 0.3s linear;
  transition: max-width 0.3s linear;
}
.header__main-nav-wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.header__main-nav:not(.mobile-menu .header__main-nav) {
  width: 100%;
  max-width: 1100px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-right: 50px;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item {
  display: inline-block;
  position: relative;
  z-index: 2;
  margin: 0 5px;
  padding: 10px 0;
  max-width: 250px;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item:first-of-type {
  margin-left: 0;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item:last-of-type {
  margin-right: 0;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item__link {
  display: inline-block;
  padding: 6px 9px;
  position: relative;
  color: white;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 600;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item__link:before {
  content: "";
  display: inline-block;
  width: 0;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: #6A7756;
  -webkit-transition: width 0.3s ease-out;
  transition: width 0.3s ease-out;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item__submenu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 2;
  display: inline-block !important;
  min-width: 200px;
  background: #6A7756;
  opacity: 0;
  pointer-events: none;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item__subitem {
  display: inline-block;
  width: 100%;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item__subitem.active a {
  background: #CEC5AF;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item__sublink {
  display: inline-block;
  width: 100%;
  padding: 10px 20px;
  color: white;
  text-decoration: none;
  font-size: 13px;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item__sublink:hover {
  background: #CEC5AF;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item:hover .nav-item__submenu {
  opacity: 1;
  pointer-events: initial;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item:hover .nav-item__link:before {
  width: 100%;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item.active .nav-item__link:before {
  width: 25px;
}
.header__main-nav:not(.mobile-menu .header__main-nav) .nav-item.active:hover .nav-item__link:before {
  width: 100%;
}
.header__socials {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.header.fixed-header .header__main {
  padding: 10px clamp(20px, 5vw, 80px);
}
.header.fixed-header .header__logo {
  max-width: 200px;
}

@media screen and (max-width: 1420px) {
  .header {
    background: #969C7B;
  }
  .header__main {
    padding: 5px 0;
  }
  .header__logo {
    max-width: 200px;
    width: 100%;
    height: auto;
  }
  .header__main-nav {
    padding: 20px 0;
  }
  .header__main-nav-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
  .header__mobile-trigger {
    display: inline-block;
    width: 30px;
    height: 30px;
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    margin-left: 20px;
    background: transparent url("../img/menu-white.svg") center no-repeat;
    background-size: contain;
  }
  .header .mobile-menu {
    position: fixed;
    right: 0;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
    z-index: 10;
    width: 100%;
    max-width: 400px;
    -webkit-transition: -webkit-transform 0.3s linear;
    transition: -webkit-transform 0.3s linear;
    transition: transform 0.3s linear;
    transition: transform 0.3s linear, -webkit-transform 0.3s linear;
    background: #CEC5AF;
  }
  .header .mobile-menu.menuopen {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  .header .mobile-menu .nav-item {
    display: block;
  }
  .header .mobile-menu .nav-item.active > a, .header .mobile-menu .nav-item.active > span {
    font-weight: 700;
  }
  .header .mobile-menu .nav-item__link {
    position: relative;
    display: inline-block;
    width: 100%;
    padding: 10px 30px;
    color: white;
    text-decoration: none;
  }
  .header .mobile-menu .nav-item__navtrigger {
    position: absolute;
    right: 20px;
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(180deg);
            transform: translateY(-50%) rotate(180deg);
    z-index: 10;
    display: inline-block;
    width: 25px;
    height: 25px;
    background: transparent url("../img/angle-up-white.svg") center no-repeat;
    background-size: 60%;
    -webkit-transition: -webkit-transform 0.3s linear;
    transition: -webkit-transform 0.3s linear;
    transition: transform 0.3s linear;
    transition: transform 0.3s linear, -webkit-transform 0.3s linear;
  }
  .header .mobile-menu .nav-item__submenu {
    padding-left: 20px;
  }
  .header .mobile-menu .nav-item__subitem.active a {
    font-weight: 700;
  }
  .header .mobile-menu .nav-item__sublink {
    display: inline-block;
    width: 100%;
    padding: 10px 30px;
    color: white;
    text-decoration: none;
  }
  .header .mobile-menu .nav-item.sub-open .nav-item__navtrigger {
    -webkit-transform: translateY(-50%) rotate(0);
            transform: translateY(-50%) rotate(0);
  }
  .header.fixed-header .header__main {
    padding: 5px 0;
  }
  .header__socials {
    display: none;
  }
}
@media screen and (max-width: 770px) {
  .header .mobile-menu {
    overflow-y: scroll;
  }
}
.page-hero {
  padding-top: 200px;
  position: relative;
  width: 100%;
  overflow: hidden;
}
.page-hero__bg-container {
  position: absolute;
  top: 60px;
  left: 0;
  width: 100%;
  height: 100%;
}
.page-hero__bg-container img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.page-hero__bg-container:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: transparent url("../img/page-header-shade.png") top left;
  mix-blend-mode: soft-light;
}
.Collections .page-hero__bg-container:after {
  content: none;
}
.page-hero__content-container {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.page-hero__content-container h1 {
  position: relative;
  margin-bottom: 50px;
}
.page-hero__breadcrumb {
  color: white;
  font-size: 13px;
}
.page-hero__breadcrumb a {
  color: white;
  text-decoration: none;
}
.page-hero__breadcrumb a:hover {
  text-decoration: underline;
}
.page-hero__breadcrumb-item {
  display: inline-block;
}
.page-hero__date {
  display: block;
  margin: -50px 0 50px;
  color: white;
  font-size: 20px;
  font-style: italic;
}

.page-intro {
  text-align: center;
  margin-bottom: 50px;
}
.page-intro p {
  font-size: 20px;
}

.home-hero {
  height: 75vh;
  position: relative;
  margin-bottom: 160px;
}
.home-hero__slider {
  height: 100%;
}
.home-hero__swiper {
  height: 100%;
}
.home-hero__slide {
  height: 100%;
}
.home-hero__slide-bg-container {
  height: 100%;
}
.home-hero__slide-bg-container img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.home-hero__content-container {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.home-hero__title {
  margin-bottom: 18px;
}
.home-hero__subtitle {
  font-family: "Montserrat", sans-serif;
  font-size: 24px;
  font-weight: 400;
  color: white;
  margin-bottom: 50px;
}

.home-collections .content-edito p {
  font-weight: 500;
}
.home-collections__swiper-nav {
  margin: 30px 0;
}
.home-collections__swiper-nav-btn {
  display: inline-block;
  width: 48px;
  height: 48px;
  border: 1px solid black;
  margin-right: 5px;
}
.home-collections__swiper-nav-btn:last-of-type {
  margin-right: 0;
}
.home-collections__swiper-nav-btn--prev {
  background: transparent url("../img/arrow-left-black.svg") center no-repeat;
  background-size: 70%;
}
.home-collections__swiper-nav-btn--next {
  background: transparent url("../img/arrow-right-black.svg") center no-repeat;
  background-size: 70%;
}
.home-collections__swiper-nav-btn:hover {
  cursor: pointer;
}
.home-collections .post-item {
  aspect-ratio: 0.81;
}

.home-shops__column-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.home-shops__column {
  width: 50%;
  padding-right: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.home-shops__item {
  position: relative;
  overflow: hidden;
  margin-bottom: 10px;
}
.home-shops__item:after {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 100%;
  left: 0;
  background: rgba(106, 119, 86, 0.9);
  -webkit-transition: top 0.3s ease-in-out;
  transition: top 0.3s ease-in-out;
}
.home-shops__item:hover:after {
  top: 0;
}
.home-shops__item:hover .home-shops { /* Rien ici NameHolder*/ }
.home-shops__item:hover .home-shops__item-content {
  top: 0;
}
.home-shops__item:last-of-type {
  margin-bottom: 0;
}
.home-shops__item-bg-container {
  height: 100%;
  width: 100%;
}
.home-shops__item-bg-container img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.home-shops__item-content {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  color: white;
  -webkit-transition: top 0.3s ease-in-out;
  transition: top 0.3s ease-in-out;
  -webkit-transition-delay: 0.1s;
          transition-delay: 0.1s;
}
.home-shops__item-content h3 {
  color: white;
  width: 100%;
  text-align: center;
}
.home-shops__item-content p {
  width: 100%;
  text-align: center;
}
.home-shops__about {
  padding: 100px calc((100vw - 1420px) / 2) 100px 110px;
  height: 100%;
  text-align: right;
  background: #CEC5AF;
}
.home-shops__about h2 {
  font-size: 55px;
  color: black;
  margin-bottom: 50px;
}
.home-shops__about p {
  margin-bottom: 25px;
  font-weight: 500;
}

@media screen and (max-width: 770px) {
  .home-hero {
    margin-bottom: 80px;
  }
  .home-shops__column-container {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .home-shops__column {
    width: 100%;
    margin-bottom: 10px;
    padding-right: 0;
  }
  .home-shops__about {
    padding: 40px;
  }
  .brands__header {
    padding: 0 20px !important;
    text-align: center;
    margin-bottom: 20px;
  }
  .brands__header h2 {
    margin-bottom: 20px !important;
  }
  .brands__header a {
    position: static;
  }
  .home-collections {
    overflow: hidden;
  }
}
.post-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.post-list.swiper {
  overflow: visible;
  margin-bottom: 20px;
}
.post-list.swiper:before {
  content: "";
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 2;
  display: inline-block;
  width: 50vw;
  height: 102%;
  background: white;
}
.post-list.swiper:before {
  right: 100%;
}

.post-item {
  overflow: hidden;
  position: relative;
  width: calc((100% - 50px) / 3);
  margin-right: 25px;
  margin-bottom: 25px;
  text-decoration: none;
}
.post-item:nth-child(3n) {
  margin-right: 0;
}
.post-item:after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(106, 119, 86, 0.85);
  -webkit-transition: top 0.3s ease-in-out;
  transition: top 0.3s ease-in-out;
}
.post-item__wrapper {
  position: relative;
}
.post-item__bg-container {
  position: relative;
}
.post-item__bg-container img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.post-item__bg-container:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: inline-block;
  width: 100%;
  height: 50%;
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.9)), to(rgba(115, 115, 115, 0)));
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.9) 0%, rgba(115, 115, 115, 0) 100%);
}
.post-item__content {
  position: absolute;
  top: 60%;
  left: 0;
  z-index: 2;
  height: 100%;
  width: 100%;
  padding: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: top 0.3s ease-in-out;
  transition: top 0.3s ease-in-out;
  -webkit-transition-delay: 0.1s;
          transition-delay: 0.1s;
}
.post-item__title {
  color: white;
  min-height: 65px;
  text-align: center;
}
.post-item__date {
  color: white;
  font-size: 20px;
  font-style: italic;
  margin-bottom: 10px;
  opacity: 0;
  -webkit-transition: all 0s linear;
  transition: all 0s linear;
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.post-item__desc {
  color: white;
  text-align: center;
  line-height: 25px;
  margin-bottom: 50px;
  opacity: 0;
  height: 125px;
  -webkit-transition: all 0s linear;
  transition: all 0s linear;
  -webkit-transition-delay: 0.2s;
          transition-delay: 0.2s;
}
.post-item__plus {
  display: inline-block;
  width: 38px;
  height: 38px;
  background: transparent url("../img/plus-white.svg") center no-repeat;
  background-size: contain;
  opacity: 0;
  -webkit-transition: opacity 0s linear;
  transition: opacity 0s linear;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}
.post-item:hover {
  cursor: pointer;
}
.post-item:hover .post-item { /* Rien ici NameHolder*/ }
.post-item:hover .post-item__desc, .post-item:hover .post-item__plus, .post-item:hover .post-item__date {
  opacity: 1;
}
.post-item:hover .post-item__desc {
  height: auto;
  -webkit-transition: all 0.3s linear;
  transition: all 0.3s linear;
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
}
.post-item:hover .post-item__plus {
  -webkit-transition-delay: 0.1s;
          transition-delay: 0.1s;
}
.post-item:hover .post-item__plus:hover {
  -webkit-transform: scale(1.2);
          transform: scale(1.2);
  -webkit-transition: -webkit-transform 0.1s linear;
  transition: -webkit-transform 0.1s linear;
  transition: transform 0.1s linear;
  transition: transform 0.1s linear, -webkit-transform 0.1s linear;
}
.post-item:hover .post-item__content {
  top: 0;
}
.post-item:hover:after {
  top: 0;
}

.page-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.page-item {
  width: calc((100% - 50px) / 3);
  margin-right: 25px;
  margin-bottom: 25px;
  text-decoration: none;
}
.page-item:nth-child(3n) {
  margin-right: 0;
}

@media screen and (max-width: 1024px) {
  .post-item {
    width: calc((100% - 25px) / 2);
    margin-right: 25px;
  }
  .post-item:nth-child(3n) {
    margin-right: 25px;
  }
  .post-item:nth-child(2n) {
    margin-right: 0;
  }
}
@media screen and (max-width: 1024px) {
  .post-item {
    width: 100%;
    margin-right: 0;
  }
}
.collection__nav {
  width: 100%;
  text-align: center;
}
.collection__nav-item {
  display: inline-block;
  margin-right: 20px;
}
.collection__nav-item:last-of-type {
  margin-right: 0;
}
.collection__nav-item-link {
  position: relative;
  display: inline-block;
  padding: 10px 20px;
  text-decoration: none;
  color: #6A7756;
  border: 1px solid #6A7756;
}
.collection__nav-item-link:before {
  content: "";
  display: inline-block;
  width: 0;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: #6A7756;
  -webkit-transition: width 0.3s ease-out;
  transition: width 0.3s ease-out;
}
.collection__nav-item-link.active {
  font-weight: 700;
}
.collection__nav-item-link:hover {
  color: white;
  cursor: pointer;
}
.collection__nav-item-link:hover:before {
  width: 100%;
}
.collection__products-list {
  position: relative;
  z-index: 1;
}
.collection__cta {
  position: relative;
  z-index: 2;
  background: #CEC5AF;
  padding: 100px 0 100px !important;
}
.collection__cta h2 {
  text-align: center;
  color: white;
}
.collection__cta-bg-container {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.collection__cta-bg-container:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  mix-blend-mode: darken;
}
.collection__cta-bg-container img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.product {
  padding: 1.5rem;
  text-decoration: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.product--sticky {
  width: 100vw;
  height: 100vh;
  position: sticky;
  top: 0;
}
.product--half {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 3vh;
  text-align: center;
}
.product--half:nth-child(odd) {
  margin-left: auto;
}
.product__img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.product__content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 20px;
  background: rgba(106, 119, 86, 0.9);
}
.product__title {
  grid-area: content-title;
  line-height: 1;
  font-weight: normal;
  font-size: 55px;
  font-weight: 700;
  color: white;
  margin: 0;
  margin-bottom: 20px;
}
.product__text {
  margin: 0 auto;
  max-width: 80%;
  padding: 0 1rem;
  grid-area: content-text;
  text-align: center;
  line-height: 1.5;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  color: white;
  margin-bottom: 20px;
}
.product__text--narrow {
  max-width: 300px;
}
.product__plus {
  display: inline-block;
  width: 38px;
  height: 38px;
  background: transparent url("../img/plus-white.svg") center no-repeat;
  background-size: contain;
}
.product:nth-child(1n) {
  background-color: #e7eae2;
}
.product:nth-child(6n) {
  background-color: #e7eae2;
}
.product:nth-child(2n) {
  background-color: #f5f3ee;
}
.product:nth-child(7n) {
  background-color: #f5f3ee;
}
.product:nth-child(3n) {
  background-color: #b6bfa7;
}
.product:nth-child(8n) {
  background-color: #b6bfa7;
}
.product:nth-child(4n) {
  background-color: #e1dccf;
}
.product:nth-child(9n) {
  background-color: #e1dccf;
}
.product:nth-child(5n) {
  background-color: #f3f5f1;
}
.product:nth-child(10n) {
  background-color: #f3f5f1;
}

@media screen and (max-width: 1024px) {
  .collection__nav-item {
    margin-bottom: 10px;
  }
}
@media screen and (min-width: 770px) {
  .product--half {
    width: 50%;
  }
  .product__img--large {
    width: 160%;
  }
  .product__img--left {
    justify-self: end;
  }
  .product__text--left {
    text-align: left;
    -ms-flex-item-align: start;
        align-self: start;
  }
}
.brands__header {
  position: relative;
  padding: 0 160px;
}
.brands__header h2 {
  text-align: center;
  margin-bottom: 50px;
}
.brands__view-all {
  position: absolute;
  bottom: 0;
  right: 0;
  color: #6A7756;
  margin-bottom: 10px;
}
.brands__view-all:hover {
  text-decoration: none;
}
.brands__swiper .swiper-wrapper {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.brands__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.brands__item {
  display: block;
  width: calc((100% - 60px) / 5);
  margin-bottom: 30px;
  margin-right: 15px;
  text-align: center;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 0.6;
  -webkit-transition: all 0.2s linear;
  transition: all 0.2s linear;
}
.brands__item img {
  -o-object-fit: contain;
     object-fit: contain;
  height: auto;
  max-width: 100%;
}
.brands__item:nth-child(5n) {
  margin-right: 0;
}
.brands__item:hover {
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
  opacity: 1;
}
.brands__swiper-nav {
  margin: 30px 0;
  text-align: center;
}
.brands__swiper-nav-btn {
  display: inline-block;
  width: 48px;
  height: 48px;
  border: 1px solid black;
  margin-right: 5px;
}
.brands__swiper-nav-btn:last-of-type {
  margin-right: 0;
}
.brands__swiper-nav-btn--prev {
  background: transparent url("../img/arrow-left-black.svg") center no-repeat;
  background-size: 70%;
}
.brands__swiper-nav-btn--next {
  background: transparent url("../img/arrow-right-black.svg") center no-repeat;
  background-size: 70%;
}
.brands__swiper-nav-btn:hover {
  cursor: pointer;
}

@media screen and (max-width: 770px) {
  .brands__item {
    width: calc((100% - 15px) / 2);
  }
  .brands__item:nth-child(5n) {
    margin-right: 15px;
  }
  .brands__item:nth-child(2n) {
    margin-right: 0;
  }
}
.bloc-bandeau h2 {
  color: white;
}
.bloc-bandeau__band {
  position: relative;
  z-index: -1;
  background: #6A7756;
  padding: 40px 0;
  margin-bottom: -40px;
  text-align: center;
}
.bloc-bandeau__content {
  background: white;
  padding: 40px;
}
.bloc-bandeau__content .content {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}

.bloc-img-txt h2,
.bloc-img-txt h3 {
  color: #6A7756;
}
.bloc-img-txt .image {
  position: relative;
}
.bloc-img-txt .image img {
  max-width: 100%;
  height: auto;
  position: relative;
  z-index: 2;
}
.bloc-img-txt .text {
  margin-bottom: 20px;
}
.bloc-img-txt .video-container {
  aspect-ratio: 16/9;
}
.bloc-img-txt .video-container iframe {
  width: 100%;
  height: 100%;
}
.bloc-img-txt--left .col-5 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
.bloc-img-txt--left .col-1 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}
.bloc-img-txt--left .col-6 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}
.bloc-img-txt--right .col-5 {
  -webkit-box-ordinal-group: 4;
      -ms-flex-order: 3;
          order: 3;
}
.bloc-img-txt--right .col-1 {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}
.bloc-img-txt--right .col-6 {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}
.bloc-img-txt--no-image .content {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  width: 100%;
}
.bloc-img-txt--no-image .col-1,
.bloc-img-txt--no-image .image {
  display: none;
}

.bloc-shop {
  background-color: #CEC5AF;
  padding: 0 !important;
  margin-bottom: 25px;
}
.bloc-shop .content {
  padding-left: calc((100vw - 1420px) / 2);
}
.bloc-shop .shops__socials {
  margin-bottom: 0;
}
.bloc-shop .shops__item-link {
  display: none;
}
.bloc-shop .map-container {
  aspect-ratio: 16/9;
}
.bloc-shop .map-container .map {
  height: 100%;
}

.bloc-gallery__thumbnails {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.bloc-gallery__item {
  position: relative;
  width: 20%;
  border: 1px solid #CEC5AF;
  padding-top: 20%;
}
.bloc-gallery__item:after {
  content: "";
  display: none;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
}
.bloc-gallery__item--img:after {
  background: transparent url("../img/magnifier-white.svg") center no-repeat;
  background-size: 50px 50px;
}
.bloc-gallery__item--video:after {
  background: transparent url("../img/play-white.svg") center no-repeat;
  background-size: 50px 50px;
}
.bloc-gallery__item:hover {
  cursor: pointer;
}
.bloc-gallery__item:hover .bloc-gallery__item-bg-solid {
  opacity: 0.5;
}
.bloc-gallery__item:hover:after {
  display: inline-block;
}
.bloc-gallery__item-img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  mix-blend-mode: soft-light;
}
.bloc-gallery__item-bg-solid {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0;
  -webkit-transition: opacity 0.3s linear;
  transition: opacity 0.3s linear;
}

.lg-outer,
.lg-backdrop {
  z-index: 3000;
}

@media screen and (max-width: 770px) {
  .bloc-shop {
    padding: 20px 0 !important;
  }
  .bloc-shop .map-container {
    margin-top: 20px;
  }
}
.pagination {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 30px auto;
  width: 100%;
}
.pagination__item {
  margin-right: 5px;
  border: 1px solid #6A7756;
}
.pagination__item::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1) * 0.5em);
}
.pagination__item:last-or-type {
  margin-right: 0;
}
.pagination__item-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 30px;
  height: 30px;
  padding: 5px;
  text-decoration: none;
  color: #6A7756;
}
.pagination__item-link:hover, .pagination__item-link.active {
  background: #6A7756;
  color: white;
}
.pagination__item-link.disabled {
  pointer-events: none;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 0.5;
}
.pagination__item-link--prev {
  background: transparent url("../img/arrow-left-primary.svg") center no-repeat;
  background-size: 50%;
}
.pagination__item-link--prev:hover {
  background: #6A7756 url("../img/arrow-left-white.svg") center no-repeat;
  background-size: 50%;
}
.pagination__item-link--next {
  background: transparent url("../img/arrow-right-primary.svg") center no-repeat;
  background-size: 50%;
}
.pagination__item-link--next:hover {
  background: #6A7756 url("../img/arrow-right-white.svg") center no-repeat;
  background-size: 50%;
}

.contact__item {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  margin-bottom: 10px;
}
.contact__item i {
  display: inline-block;
  width: 25px;
  height: 25px;
  margin-right: 10px;
}
.contact__item a {
  color: white;
  text-decoration: none;
}
.contact__item--tel i {
  background: transparent url("../img/tel.svg") center no-repeat;
  background-size: contain;
}
.contact__item--mail i {
  background: transparent url("../img/mail.svg") center no-repeat;
  background-size: contain;
}
.contact__item--dark a {
  color: #CEC5AF;
}
.contact__map-container {
  aspect-ratio: 32/9;
}
.contact__map-container .map {
  height: 100%;
}

.footer-main {
  background: #6A7756;
  padding: 50px 0 80px;
}

.footer-after {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 15px 0;
}
.footer-after__menu-legal a {
  display: inline-block;
  margin-right: 10px;
  color: black;
  text-decoration: none;
  font-size: 14px;
}
.footer-after__menu-legal a:hover {
  text-decoration: underline;
}
.footer-after__menu-legal a::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.1) * 0.5em);
}
.footer-after__kagency {
  display: inline-block;
  width: 70px;
  height: 20px;
}
.footer-after__kagency img {
  width: 100%;
  height: auto;
}

.back-top {
  width: 40px;
  height: 40px;
  position: fixed;
  bottom: 100px;
  right: 0;
  z-index: 1000;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  background: #6A7756 url("../img/arrow-up-white.svg") center no-repeat;
  background-size: 30%;
  -webkit-transition: -webkit-transform 0.3s linear;
  transition: -webkit-transform 0.3s linear;
  transition: transform 0.3s linear;
  transition: transform 0.3s linear, -webkit-transform 0.3s linear;
}
.back-top.hide {
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.socials__list-item {
  display: inline-block;
  padding-right: 5px;
}
.socials__list-item:last-of-type {
  padding-right: 0;
}
.socials__list-item-link {
  display: inline-block;
  width: 30px;
  height: 30px;
  margin-right: 5px;
  border-radius: 50%;
  overflow: hidden;
}
.socials__list-item-link:last-of-type {
  margin-right: 0;
}
.socials__list-item-link--x {
  background: white url("../img/x-primary.svg") center no-repeat;
  background-size: 70%;
}
.socials__list-item-link--x:hover {
  background: #6A7756 url("../img/x-white.svg") center no-repeat;
  background-size: 70%;
}
.socials__list-item-link--facebook {
  background: white url("../img/facebook-primary.svg") center no-repeat;
  background-size: 80%;
}
.socials__list-item-link--facebook:hover {
  background: #6A7756 url("../img/facebook-white.svg") center no-repeat;
  background-size: 80%;
}
.socials__list-item-link--youtube {
  background: white url("../img/youtube-primary.svg") center no-repeat;
  background-size: 60%;
}
.socials__list-item-link--youtube:hover {
  background: #6A7756 url("../img/youtube-white.svg") center no-repeat;
  background-size: 60%;
}
.socials__list-item-link--instagram {
  background: white url("../img/instagram-primary.svg") center no-repeat;
  background-size: 80%;
}
.socials__list-item-link--instagram:hover {
  background: #6A7756 url("../img/instagram-white.svg") center no-repeat;
  background-size: 80%;
}
.socials__list-item-link--linkedin {
  background: white url("../img/linkedin-primary.svg") center no-repeat;
  background-size: 60%;
}
.socials__list-item-link--linkedin:hover {
  background: #6A7756 url("../img/linkedin-white.svg") center no-repeat;
  background-size: 60%;
}

.shops {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.shops__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  max-width: 320px;
}
.shops__item-logo-container {
  width: 100%;
  height: 85px;
  margin-bottom: 15px;
}
.shops__item-logo {
  max-width: 230px;
}
.shops__item-infos {
  margin-bottom: 20px;
}
.footer .shops__item-infos {
  color: white;
}
.shops__item-opening-hours {
  font-style: italic;
  font-size: 15px !important;
  line-height: 20px !important;
  max-width: 400px;
}
.shops__socials {
  width: 100%;
  margin-bottom: 40px;
}
.shops__item-link {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

@media screen and (max-width: 770px) {
  .shops {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    width: 100%;
  }
  .shops__item {
    width: 100%;
    margin-bottom: 20px;
    max-width: 100%;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
  }
}
.justify-content-md-center,
.justify-content-sm-center,
.justify-content-xs-center,
.justify-content-lg-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.jconfirm-box .jconfirm-content {
  overflow: hidden !important;
}
.jconfirm-box .btn:after {
  content: none;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJzY3NzL2Jhc2UvX3Jlc2V0LnNjc3MiLCJzY3NzL2Jhc2UvX2hlbHBlcnMuc2NzcyIsInNjc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsInNjc3MvYmFzZS9fbGF5b3V0LnNjc3MiLCJzY3NzL2Jhc2UvX3R5cG8uc2NzcyIsInNjc3MvYmFzZS9fZm9ybXMuc2NzcyIsInNjc3MvYmFzZS9fYnRuLnNjc3MiLCJzY3NzL2xpYnMvX3NpbXBsZS1ncmlkLnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2hlYWRlci5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19wYWdlLWhlYWRlci5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19ob21lLnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX3Bvc3RzLWxpc3Quc2NzcyIsInNjc3MvYWJzdHJhY3RzL19mYW1pbHkuc2NzcyIsInNjc3MvY29tcG9uZW50cy9fY29sbGVjdGlvbi5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19icmFuZHMuc2NzcyIsInNjc3MvY29tcG9uZW50cy9fYmxvY3Muc2NzcyIsInNjc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwic2Nzcy9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19jb250YWN0LnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19iYWNrLXRvcC5zY3NzIiwic2Nzcy9jb21wb25lbnRzL19zb2NpYWxzLnNjc3MiLCJzY3NzL2NvbXBvbmVudHMvX3Nob3BzLnNjc3MiLCJzY3NzL292ZXJyaWRlcy9fb3ZlcnJpZGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUNBQTtFQUEyWjtFQUFTO0VBQVU7RUFBUztFQUFlO0VBQWE7OztBQUF3QjtFQUFLOzs7QUFBYztFQUFPOzs7QUFBVTtF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QWM7O0FBQ2xEO0VBQWM7O0FBQ2Q7RUFBZ0I7O0FBQ1o7RUFBVzs7QUFHZjtFQUF3QjtFQUFvQjtFQUFtQztFQUE4Qjs7QUFDN0c7RUFBWTtFQUFhOztBQUN6QjtFQUFlOzs7QUFLbkI7RUFDSTtJQUFRO0lBQWdCOztFQUNwQjtJQUFTO0lBQWE7SUFBb0I7SUFBaUI7SUFBeUI7OztBQ2pCNUY7QUFBQTtBQUFBO0FBQUE7RUFHNEI7OztBQUd4QjtFQUFtQjs7QUFFZjtFQUFTIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxyXG5UaGVtZSBOYW1lOiBLYWdlbmN5IHNjc3NcclxuQXV0aG9yOiBLcm9taVxyXG5BdXRob3IgVVJJOiBodHRwczova3JvbWkuZnJcclxuRGVzY3JpcHRpb246IEthZ2VuY3kgc2Nzc1xyXG5WZXJzaW9uOiAxLjBcclxuTGljZW5zZTogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcclxuTGljZW5zZSBVUkk6IGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWxcclxuVGFnczogXHJcbiovXHJcblxyXG5cclxuLy8gSGVscGVyc1xyXG5AaW1wb3J0ICdzY3NzL2Fic3RyYWN0cy9mYW1pbHknO1xyXG5AaW1wb3J0ICdzY3NzL2Fic3RyYWN0cy9taXhpbnMnO1xyXG5AaW1wb3J0ICdzY3NzL2Fic3RyYWN0cy9mb250cyc7XHJcbkBpbXBvcnQgJ3Njc3MvYWJzdHJhY3RzL3ZhcmlhYmxlcyc7XHJcblxyXG5cclxuLy8gQmFzZVxyXG5AaW1wb3J0ICdzY3NzL2Jhc2UvcmVzZXQnO1xyXG5AaW1wb3J0ICdzY3NzL2Jhc2UvaGVscGVycyc7XHJcbkBpbXBvcnQgJ3Njc3MvYmFzZS9sYXlvdXQnO1xyXG5AaW1wb3J0ICdzY3NzL2Jhc2UvdHlwbyc7XHJcbkBpbXBvcnQgJ3Njc3MvYmFzZS9mb3Jtcyc7XHJcbkBpbXBvcnQgJ3Njc3MvYmFzZS9idG4nO1xyXG5cclxuLy8gTGlic1xyXG5AaW1wb3J0ICdzY3NzL2xpYnMvc2ltcGxlLWdyaWQnO1xyXG5cclxuLy8gQ29tcG9uZW50c1xyXG5AaW1wb3J0ICdzY3NzL2NvbXBvbmVudHMvaGVhZGVyJztcclxuQGltcG9ydCAnc2Nzcy9jb21wb25lbnRzL3BhZ2UtaGVhZGVyJztcclxuQGltcG9ydCAnc2Nzcy9jb21wb25lbnRzL2hvbWUnO1xyXG5AaW1wb3J0ICdzY3NzL2NvbXBvbmVudHMvcG9zdHMtbGlzdCc7XHJcbkBpbXBvcnQgJ3Njc3MvY29tcG9uZW50cy9jb2xsZWN0aW9uJztcclxuQGltcG9ydCAnc2Nzcy9jb21wb25lbnRzL2JyYW5kcyc7XHJcbkBpbXBvcnQgJ3Njc3MvY29tcG9uZW50cy9ibG9jcyc7XHJcbkBpbXBvcnQgJ3Njc3MvY29tcG9uZW50cy9wYWdpbmF0aW9uJztcclxuQGltcG9ydCAnc2Nzcy9jb21wb25lbnRzL2NvbnRhY3QnO1xyXG5AaW1wb3J0ICdzY3NzL2NvbXBvbmVudHMvZm9vdGVyJztcclxuQGltcG9ydCAnc2Nzcy9jb21wb25lbnRzL2JhY2stdG9wJztcclxuQGltcG9ydCAnc2Nzcy9jb21wb25lbnRzL3NvY2lhbHMnO1xyXG5AaW1wb3J0ICdzY3NzL2NvbXBvbmVudHMvc2hvcHMnO1xyXG5cclxuLy9vdmVycmlkZXNcclxuQGltcG9ydCAnc2Nzcy9vdmVycmlkZXMvb3ZlcnJpZGVzJzsiLCJodG1sLGJvZHksZGl2LHNwYW4sYXBwbGV0LG9iamVjdCxpZnJhbWUsaDEsaDIsaDMsaDQsaDUsaDYscCxibG9ja3F1b3RlLHByZSxhLGFiYnIsYWNyb255bSxhZGRyZXNzLGJpZyxjaXRlLGNvZGUsZGVsLGRmbixlbSxpbWcsaW5zLGtiZCxxLHMsc2FtcCxzbWFsbCxzdHJpa2Usc3Ryb25nLHN1YixzdXAsdHQsdmFyLGIsdSxpLGNlbnRlcixkbCxkdCxkZCxvbCx1bCxsaSxmaWVsZHNldCxmb3JtLGxhYmVsLGxlZ2VuZCx0YWJsZSxjYXB0aW9uLHRib2R5LHRmb290LHRoZWFkLHRyLHRoLHRkLGFydGljbGUsYXNpZGUsY2FudmFzLGRldGFpbHMsZW1iZWQsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWVudSxuYXYsb3V0cHV0LHJ1Ynksc2VjdGlvbixzdW1tYXJ5LHRpbWUsbWFyayxhdWRpbyx2aWRlb3ttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Zm9udC1zaXplOjEwMCU7Zm9udDppbmhlcml0O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfWJvZHl7bGluZS1oZWlnaHQ6MX1idXR0b257b3V0bGluZTowfW9sLHVse2xpc3Qtc3R5bGU6bm9uZX1ibG9ja3F1b3RlLHF7cXVvdGVzOm5vbmV9YmxvY2txdW90ZTpiZWZvcmUsYmxvY2txdW90ZTphZnRlcixxOmJlZm9yZSxxOmFmdGVye2NvbnRlbnQ6Jyc7Y29udGVudDpub25lfXF7ZGlzcGxheTppbmxpbmU7Zm9udC1zdHlsZTppdGFsaWN9cTpiZWZvcmV7Y29udGVudDonXCInO2ZvbnQtc3R5bGU6bm9ybWFsfXE6YWZ0ZXJ7Y29udGVudDonXCInO2ZvbnQtc3R5bGU6bm9ybWFsfXRleHRhcmVhLGlucHV0W3R5cGU9XCJ0ZXh0XCJdLGlucHV0W3R5cGU9XCJidXR0b25cIl0saW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxpbnB1dFt0eXBlPVwicmVzZXRcIl0saW5wdXRbdHlwZT1cInNlYXJjaFwiXSxpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl17LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2JvcmRlci1yYWRpdXM6MH10YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLXNwYWNpbmc6MH10aCx0ZHtwYWRkaW5nOjJweH1iaWd7Zm9udC1zaXplOjEyMCV9c21hbGwsc3VwLHN1Yntmb250LXNpemU6ODAlfXN1cHt2ZXJ0aWNhbC1hbGlnbjpzdXBlcn1zdWJ7dmVydGljYWwtYWxpZ246c3VifWRke21hcmdpbi1sZWZ0OjIwcHh9a2JkLHR0e2ZvbnQtZmFtaWx5OmNvdXJpZXI7Zm9udC1zaXplOjEycHh9aW5ze3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9ZGVsLHN0cmlrZSxze3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2h9ZHR7Zm9udC13ZWlnaHQ6Ym9sZH1hZGRyZXNzLGNpdGUsdmFye2ZvbnQtc3R5bGU6aXRhbGljfWFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtZW51LG5hdixzZWN0aW9ue2Rpc3BsYXk6YmxvY2t9Kntib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fVxyXG4uc3RpY2t5e30uYnlwb3N0YXV0aG9ye30ud3AtY2FwdGlvbnt9LndwLWNhcHRpb24tdGV4dHt9LmdhbGxlcnktY2FwdGlvbnt9LmFsaWducmlnaHR7fS5hbGlnbmxlZnR7fS5hbGlnbmNlbnRlcnt9LnNjcmVlbi1yZWFkZXItdGV4dHtjbGlwOnJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50fVxyXG4iLCIub3ZlcmZsb3ctdmlzaWJsZSB7b3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDt9XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY29udGVudDpcIiBcIjtcbiAgICBkaXNwbGF5OnRhYmxlO1xuICAgIGNsZWFyOmJvdGg7XG59XG5cbi5oaWRlLWRla3RvcCB7ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O31cblxuLnByaW1hcnktY29sb3Ige2NvbG9yOiRwcmltYXJ5O31cbi5zZWNvbmRhcnktY29sb3Ige2NvbG9yOiRzZWNvbmRhcnk7fVxuXG4uY29sdW1uLXNwYWNlciB7ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICYtLWhvcml6b250YWwge3dpZHRoOiA4MHB4OyBoZWlnaHQ6IDJweDt9XG4gICAgJi0tcHJpbWFyeSB7YmFja2dyb3VuZDogJHByaW1hcnk7fVxuICAgICYtLXNlY29uZGFyeSB7YmFja2dyb3VuZDogJHNlY29uZGFyeTt9XG4gICAgJi0td2hpdGUge2JhY2tncm91bmQ6IHdoaXRlO31cbn1cblxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRzbWFsbC1zY3JlZW4pIHtcbiAgICAuaGlkZGVuLXNtIHtkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7fVxuICB9XG4gICIsIi8vY291bGV1cnMgZHUgcHJvamV0XG4kcHJpbWFyeTogIzZBNzc1NjtcbiRwcmltYXJ5LWxpZ2h0ZXI6ICM5NjlDN0I7XG4kc2Vjb25kYXJ5OiAjQ0VDNUFGO1xuXG5cbiRib3JkZXItY29sb3I6ICNEMUQzRDM7XG5cbiR0ZXh0LWNvbG9yOiBibGFjaztcblxuJHNoYWRvdzogIzAwMDAwMDFBO1xuXG5cbi8vIEZvbnQgc2l6ZXNcbiRmei0taDE6IDU1cHg7XG4kZnotLWgyOiA0NXB4O1xuJGZ6LS1oMzogMjhweDtcbiRmei0taDQ6IDI0cHg7XG4kZnotLXRleHQ6IDE2cHg7XG4kZnotLXRleHQtLWJpZzogMjBweDtcbiRmei0tdGV4dC0tc21hbGw6IDEzcHg7XG4kZnotLWJ1dHRvbjogMTVweDtcblxuLy8gQm9yZGVyIHJhZGl1cyBzaXplc1xuJGJyLXNpemUgOiAwO1xuJGJyLXNpemUtLXNtYWxsIDogMDtcblxuLy8gU2NyZWVuIHNpemVzXG4keC1sYXJnZS1zY3JlZW46IDE0MjBweDtcbiRsYXJnZS1zY3JlZW46IDEyODBweCA7XG4kbWVkaXVtLXNjcmVlbjogMTAyNHB4IDtcbiRzbWFsbC1zY3JlZW46IDc3MHB4O1xuJHgtc21hbGwtc2NyZWVuOiA1MDBweDtcbiIsImJvZHkge292ZXJmbG93LXg6IGhpZGRlbjt9XHJcblxyXG4uY29udGVudC1zZWN0aW9uIHsgd2lkdGg6IDEwMCU7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiA1MHB4IDA7XHJcbiAgfiAuY29udGVudC1zZWN0aW9uIHsgcGFkZGluZy10b3A6IDI1cHg7fVxyXG4gICYtLW5vLXB0IHtwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O31cclxuICAmLS1uby1wYiB7cGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDt9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR4LWxhcmdlLXNjcmVlbikge1xyXG4gIC5jb250YWluZXIge3BhZGRpbmc6IDAgMjBweDt9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtZWRpdW0tc2NyZWVuKSB7XHJcbiAgLmNvbnRlbnQtc2VjdGlvbiB7IHBhZGRpbmc6IDQwcHggMCAyMHB4IDA7fVxyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkc21hbGwtc2NyZWVuKSB7XHJcblxyXG59XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkeC1zbWFsbC1zY3JlZW4pIHtcclxuXHJcbn1cclxuIiwiYm9keSB7Zm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmOyAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTt9XG5cbmgxLFxuLmgxIHtmb250LXNpemU6ICRmei0taDE7IGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgICAgZm9udC13ZWlnaHQ6IDcwMDsgbGluZS1oZWlnaHQ6IDEuMjsgY29sb3I6d2hpdGU7XG4gICAgIG1hcmdpbi1ib3R0b206IDMwcHg7fVxuaDIsXG4uaDIgeyBmb250LXNpemU6ICRmei0taDI7IGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiBmb250LXdlaWdodDogNzAwOyBsaW5lLWhlaWdodDogMS4xNTsgbWFyZ2luLWJvdHRvbTogMTZweDsgY29sb3I6ICRwcmltYXJ5fVxuaDMsXG4uaDMgeyBmb250LXNpemU6ICRmei0taDM7IGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogMjBweDsgY29sb3I6JHByaW1hcnk7fVxuaDQsXG4uaDQgeyBmb250LXNpemU6ICRmei0taDQ7IGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IDQwMDsgbWFyZ2luLWJvdHRvbTogMjBweDsgY29sb3I6JHByaW1hcnk7fVxuXG5cbi5jb250ZW50LWVkaXRvIHtjb2xvcjokdGV4dC1jb2xvcjtcbiAgcCB7IGZvbnQtc2l6ZTogJGZ6LS10ZXh0OyBsaW5lLWhlaWdodDogMjVweDsgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmOyBjb2xvcjppbmhlcml0O1xuICAgICAgcGFkZGluZy1ib3R0b206IDI1cHg7XG4gICAgZW0geyBmb250LXN0eWxlOiBpdGFsaWM7fVxuICAgIHN0cm9uZywgYiB7IGZvbnQtd2VpZ2h0OiA3MDA7fVxuICAgICY6bGFzdC1jaGlsZCB7IHBhZGRpbmctYm90dG9tOiAwO31cblxuICB9XG4gIHVsIHsgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBsaSB7IHBhZGRpbmctbGVmdDogMTVweDsgcG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOiA1cHg7IGNvbG9yOiBpbmhlcml0O1xuICAgICAgc3Ryb25nLCBiIHsgZm9udC13ZWlnaHQ6IDcwMDt9XG4gICAgICAmOmJlZm9yZSB7IGNvbnRlbnQ6Jyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA2cHg7IGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBvbCB7IG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgY291bnRlci1yZXNldDogb2wtY291bnRlcjtcbiAgICBzdHJvbmcsIGIgeyBmb250LXdlaWdodDogNzAwO31cbiAgICBsaSB7Y291bnRlci1pbmNyZW1lbnQ6IG9sLWNvdW50ZXI7IG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogY291bnRlcihvbC1jb3VudGVyKSBcIi4gXCI7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyBmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAkZnotLXRleHQtLXNtYWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwICsgdWwsXG4gIHAgKyBvbCB7IG1hcmdpbi10b3A6IC0xMHB4O31cbiAgYTpub3QoLmJ0bikge2NvbG9yOiRwcmltYXJ5O31cbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkeC1zbWFsbC1zY3JlZW4pIHtcbiAgaDEgeyBmb250LXNpemU6IGNhbGMoJGZ6LS1oMS8xLjUpOyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7fVxuICBoMiB7IGZvbnQtc2l6ZTogY2FsYygkZnotLWgyLzEuNSk7fVxuICBoMyB7IGZvbnQtc2l6ZTogY2FsYygkZnotLWgzLzEuMyk7fVxufVxuXG4iLCIuZm9ybSB7XHJcbiAgJl9fZmllbGQge3Bvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogMzBweDsgd2lkdGg6IDEwMCU7XHJcbiAgICBsYWJlbCB7IGNvbG9yOiR0ZXh0LWNvbG9yO1xyXG4gICAgICBhIHtjb2xvcjokcHJpbWFyeTsgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgICY6aG92ZXIge3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi0tdGV4dCxcclxuICAgICYtLWVtYWlsLFxyXG4gICAgJi0tdGVsLFxyXG4gICAgJi0tdGV4dGFyZWEge3BhZGRpbmc6IDEwcHggMTBweCAwOyBib3JkZXI6MXB4IHNvbGlkICRwcmltYXJ5O1xyXG4gICAgICBpbnB1dCxcclxuICAgICAgdGV4dGFyZWEge3dpZHRoOiAxMDAlOyBwYWRkaW5nOiA4cHggMDtcclxuICAgICAgICBmb250LXNpemU6ICRmei0tdGV4dDsgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmOyBjb2xvcjogJHByaW1hcnk7XHJcbiAgICAgICAgYm9yZGVyOiBub25lO1xyXG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAyNTBtcztcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxyXG5cclxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7IGNvbG9yOiB0cmFuc3BhcmVudDsgfVxyXG5cclxuICAgICAgICAvLyBIaWRlIFNhZmFyaSdzIGF1dG9maWxsIGJ1dHRvblxyXG4gICAgICAgICY6Oi13ZWJraXQtY29udGFjdHMtYXV0by1maWxsLWJ1dHRvbiB7IHZpc2liaWxpdHk6IGhpZGRlbjsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxyXG4gICAgICAgICY6Zm9jdXMgKyBsYWJlbCxcclxuICAgICAgICAmOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKSBzY2FsZSgwLjc1KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbGFiZWwge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxNnB4OyBsZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5OyBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XHJcbiAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjUwbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICYtLWZpbGUge2hlaWdodDogNTFweDsgYm9yZGVyOjFweCBzb2xpZCAkcHJpbWFyeTtcclxuICAgICAgaW5wdXQge3Bvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjtcclxuICAgICAgICAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICBtYXJnaW46IDA7IG9wYWNpdHk6IDA7XHJcbiAgICAgICAgJjpob3ZlcntjdXJzb3I6cG9pbnRlcjt9XHJcbiAgICAgIH1cclxuICAgICAgbGFiZWwge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgbGVmdDogMDsgei1pbmRleDogMTtcclxuICAgICAgICAgICAgIGhlaWdodDogNTFweDsgcGFkZGluZzogMTBweDtcclxuICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5OyBsaW5lLWhlaWdodDoxLjc7XHJcbiAgICAgICAgJjphZnRlciB7Y29udGVudDogYXR0cihkYXRhLWJyb3dzZSk7XHJcbiAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IHotaW5kZXg6IDM7XHJcbiAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IGhlaWdodDpjYWxjKDEwMCUgLSAycHgpOyBwYWRkaW5nOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7IGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiRwcmltYXJ5O1xyXG4gICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICB9IFxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBsYWJlbDphZnRlciB7YmFja2dyb3VuZDokc2Vjb25kYXJ5O31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBcclxufVxyXG4iLCIuYnRuLWNvbnRhaW5lciB7XG4gICYtLWNlbnRlcmVkIHsgdGV4dC1hbGlnbjogY2VudGVyO31cbiAgJi0tcmlnaHQge3RleHQtYWxpZ246IHJpZ2h0O31cbn1cblxuLmJ0biB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRkaW5nOiAxM3B4IDIwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXplOiAkZnotLWJ1dHRvbjsgbGluZS1oZWlnaHQ6IDE7IGxldHRlci1zcGFjaW5nOiAxLjY1cHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjoxcHggc29saWQ7XG4gICAgJjphZnRlciB7Y29udGVudDonJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDI2cHg7IGhlaWdodDogOXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0O1xuICAgIH1cbiAgICAmOmhvdmVyIHtjdXJzb3I6cG9pbnRlcjtcbiAgICAgICY6YWZ0ZXIge3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwcHgpO31cbiAgICB9XG4gICYtLXByaW1hcnkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeTsgY29sb3I6d2hpdGU7IGJvcmRlci1jb2xvcjogJHByaW1hcnk7XG4gICAgJjphZnRlciB7YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy9hcnJvdy1idG4tcmlnaHQtd2hpdGUuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO31cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktbGlnaHRlcjsgY29sb3I6d2hpdGU7IGJvcmRlci1jb2xvcjogJHByaW1hcnktbGlnaHRlcjsgfVxuICB9XG4gICYtLXByaW1hcnktYWx0IHsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGNvbG9yOiRwcmltYXJ5OyBib3JkZXItY29sb3I6ICRwcmltYXJ5O1xuICAgICY6YWZ0ZXIge2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKCcuLi9pbWcvYXJyb3ctYnRuLXJpZ2h0LXByaW1hcnkuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO31cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnk7IGNvbG9yOndoaXRlO1xuICAgICAgJjphZnRlciB7YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy9hcnJvdy1idG4tcmlnaHQtd2hpdGUuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO31cbiAgICB9XG4gIH1cbiAgJi0tcHJpbWFyeS1hbHQtd2hpdGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgY29sb3I6d2hpdGU7IGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgJjphZnRlciB7YmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy9hcnJvdy1idG4tcmlnaHQtd2hpdGUuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO31cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IGNvbG9yOiRwcmltYXJ5OyBcbiAgICAgICY6YWZ0ZXIge2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgdXJsKCcuLi9pbWcvYXJyb3ctYnRuLXJpZ2h0LXByaW1hcnkuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO31cbiAgICB9XG4gIH1cbiAgJi0tZnVsbHdpZHRoIHsgd2lkdGg6IDEwMCU7fVxuICAmLS1iaWcgeyBwYWRkaW5nOiAyNXB4O31cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHNtYWxsLXNjcmVlbikge31cbiIsIi8vIGdyaWRcblxuJHdpZHRoOiAxMDAlO1xuJGd1dHRlcjogMTBweDtcbiRicmVha3BvaW50LXNtYWxsOiAkeC1zbWFsbC1zY3JlZW47IC8vIDUwMFxuJGJyZWFrcG9pbnQtbWVkOiAkc21hbGwtc2NyZWVuOyAvLyA3NjhcbiRicmVha3BvaW50LWxhcmdlOiAkbWVkaXVtLXNjcmVlbjsgLy8gOTgwXG4kYnJlYWtwb2ludC14bGFyZ2U6ICRsYXJnZS1zY3JlZW47IC8vIDEyMDBcblxuLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6ICR4LWxhcmdlLXNjcmVlbjtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgJi0tZnVsbHdpZHRoIHsgbWF4LXdpZHRoOiBub25lO31cbn1cblxuLnJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTpmbGV4O1xuICBmbGV4LXdyYXA6d3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gICYtLWVxdWFsLWhlaWdodCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgJi0tZmxleC1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgJi0tZmxleC1zdGFydCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgJi0tZmxleC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuICAmLS1uby1ndXR0ZXIge1xuICAgIFtjbGFzc149XCJjb2wtXCJdIHttYXJnaW46IDAgIWltcG9ydGFudDsgZmxleC1ncm93OjE7fVxuICB9XG59XG5cbi5yb3cgW2NsYXNzXj1cImNvbC1cIl0ge1xuICBtYXJnaW46IDAgJGd1dHRlcjtcbiAgbWluLWhlaWdodDogMC4xMjVyZW07XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWVkKSB7XG4gICAgJjpmaXJzdC1vZi10eXBlIHsgbWFyZ2luLWxlZnQ6IDA7fVxuICAgICY6bGFzdC1vZi10eXBlIHsgbWFyZ2luLXJpZ2h0OiAwO31cblxuICB9XG59XG5cbi5jb2wtMSxcbi5jb2wtMixcbi5jb2wtMyxcbi5jb2wtNCxcbi5jb2wtNSxcbi5jb2wtNixcbi5jb2wtNyxcbi5jb2wtOCxcbi5jb2wtOSxcbi5jb2wtMTAsXG4uY29sLTExLFxuLmNvbC0xMiB7XG4gIHdpZHRoOiAkd2lkdGg7XG59XG5cbi5jb2wtMS1zbSB7IHdpZHRoOmNhbGMoY2FsYygkd2lkdGggLyAxMikgLSBjYWxjKCRndXR0ZXIgKiAxMSAvIDEyKSk7IH1cbi5jb2wtMi1zbSB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gNikgLSBjYWxjKCRndXR0ZXIgKiAxMCAvIDEyKSk7IH1cbi5jb2wtMy1zbSB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gNCkgLSBjYWxjKCRndXR0ZXIgKiA5IC8gMTIpKTsgfVxuLmNvbC00LXNtIHsgd2lkdGg6IGNhbGMoY2FsYygkd2lkdGggLyAzKSAtIGNhbGMoJGd1dHRlciAqIDggLyAxMikpOyB9XG4uY29sLTUtc20geyB3aWR0aDogY2FsYyhjYWxjKCR3aWR0aCAvICgxMiAvIDUpKSAtIGNhbGMoJGd1dHRlciAqIDcgLyAxMikpOyB9XG4uY29sLTYtc20geyB3aWR0aDogY2FsYyhjYWxjKCR3aWR0aCAvIDIpIC0gY2FsYygkZ3V0dGVyICogNiAvIDEyKSk7IH1cbi5jb2wtNy1zbSB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gKDEyIC8gNykpIC0gY2FsYygkZ3V0dGVyICogNSAvIDEyKSk7IH1cbi5jb2wtOC1zbSB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gKDEyIC8gOCkpIC0gY2FsYygkZ3V0dGVyICogNCAvIDEyKSk7IH1cbi5jb2wtOS1zbSB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gKDEyIC8gOSkpIC0gY2FsYygkZ3V0dGVyICogMyAvIDEyKSk7IH1cbi5jb2wtMTAtc20geyB3aWR0aDogY2FsYyhjYWxjKCR3aWR0aCAvICgxMiAvIDEwKSkgLSBjYWxjKCRndXR0ZXIgKiAyIC8gMTIpKTsgfVxuLmNvbC0xMS1zbSB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gKDEyIC8gMTEpKSAtIGNhbGMoJGd1dHRlciAqIDEgLyAxMikpOyB9XG4uY29sLTEyLXNtIHsgd2lkdGg6ICR3aWR0aDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRicmVha3BvaW50LW1lZCkge1xuICAucm93IHsgZmxleC13cmFwOiBub3dyYXA7fVxuICAuY29sLTEgeyB3aWR0aDpjYWxjKGNhbGMoJHdpZHRoIC8gMTIpIC0gY2FsYygkZ3V0dGVyICogMTEgLyAxMikpOyB9XG4gIC5jb2wtMiB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gNikgLSBjYWxjKCRndXR0ZXIgKiAxMCAvIDEyKSk7IH1cbiAgLmNvbC0zIHsgd2lkdGg6IGNhbGMoY2FsYygkd2lkdGggLyA0KSAtIGNhbGMoJGd1dHRlciAqIDkgLyAxMikpOyB9XG4gIC5jb2wtNCB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gMykgLSBjYWxjKCRndXR0ZXIgKiA4IC8gMTIpKTsgfVxuICAuY29sLTUgeyB3aWR0aDogY2FsYyhjYWxjKCR3aWR0aCAvICgxMiAvIDUpKSAtIGNhbGMoJGd1dHRlciAqIDcgLyAxMikpOyB9XG4gIC5jb2wtNiB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gMikgLSBjYWxjKCRndXR0ZXIgKiA2IC8gMTIpKTsgfVxuICAuY29sLTcgeyB3aWR0aDogY2FsYyhjYWxjKCR3aWR0aCAvICgxMiAvIDcpKSAtIGNhbGMoJGd1dHRlciAqIDUgLyAxMikpOyB9XG4gIC5jb2wtOCB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gKDEyIC8gOCkpIC0gY2FsYygkZ3V0dGVyICogNCAvIDEyKSk7IH1cbiAgLmNvbC05IHsgd2lkdGg6IGNhbGMoY2FsYygkd2lkdGggLyAoMTIgLyA5KSkgLSBjYWxjKCRndXR0ZXIgKiAzIC8gMTIpKTsgfVxuICAuY29sLTEwIHsgd2lkdGg6IGNhbGMoY2FsYygkd2lkdGggLyAoMTIgLyAxMCkpIC0gY2FsYygkZ3V0dGVyICogMiAvIDEyKSk7IH1cbiAgLmNvbC0xMSB7IHdpZHRoOiBjYWxjKGNhbGMoJHdpZHRoIC8gKDEyIC8gMTEpKSAtIGNhbGMoJGd1dHRlciAqIDEgLyAxMikpOyB9XG4gIC5jb2wtMTIgeyB3aWR0aDogJHdpZHRoOyB9XG5cbiAgLmhpZGRlbi1zbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiIsIi5oZWFkZXIge3Bvc2l0aW9uOiBmaXhlZDsgdG9wOiAwOyBsZWZ0OiAwOyB6LWluZGV4OiAyMDAwO1xuICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeS1saWdodGVyO1xuICAgICZfX21haW4ge3BhZGRpbmc6IDE1cHggY2xhbXAoMjBweCwgNXZ3LCA4MHB4KTt9XG4gICAgJl9fbG9nbyB7IGRpc3BsYXk6IGJsb2NrOyBtYXgtd2lkdGg6IDI5NXB4O1xuICAgICAgICAgICAgIHRyYW5zaXRpb246IG1heC13aWR0aCAuM3MgbGluZWFyO1xuICAgIH1cbiAgICAmX19tYWluLW5hdi13cmFwcGVyIHtkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO31cbiAgICAmX19tYWluLW5hdjpub3QoLm1vYmlsZS1tZW51IC5oZWFkZXJfX21haW4tbmF2KSB7d2lkdGg6IDEwMCU7IG1heC13aWR0aDogMTEwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgICAubmF2LWl0ZW0ge2Rpc3BsYXk6IGlubGluZS1ibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyOyBtYXJnaW46IDAgNXB4OyBwYWRkaW5nOiAxMHB4IDA7IG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge21hcmdpbi1sZWZ0OiAwO31cbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHttYXJnaW4tcmlnaHQ6IDA7fVxuICAgICAgICAgICAgXG4gICAgICAgICAgICAmX19saW5rIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6NnB4IDlweDsgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgY29sb3I6d2hpdGU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgZm9udC1zaXplOiAkZnotLXRleHQtLXNtYWxsOyBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtjb250ZW50OicnO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAwOyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIC4zcyBlYXNlLW91dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmX19zdWJtZW51IHtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDoxMDAlOyBsZWZ0OiAwOyB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcHJpbWFyeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czpub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJl9fc3ViaXRlbSB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSBhIHtiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZfX3N1Ymxpbmsge2Rpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMCU7cGFkZGluZzogMTBweCAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjp3aGl0ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lO2ZvbnQtc2l6ZTogJGZ6LS10ZXh0LS1zbWFsbDtcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIC5uYXYtaXRlbV9fc3VibWVudSB7b3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6aW5pdGlhbDt9ICAgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAubmF2LWl0ZW1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7d2lkdGg6IDEwMCU7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAubmF2LWl0ZW1fX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7d2lkdGg6IDI1cHg7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgLm5hdi1pdGVtX19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHt3aWR0aDogMTAwJTt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fc29jaWFscyB7ZmxleC1zaHJpbms6IDA7fVxuICAgIFxuICAgICYuZml4ZWQtaGVhZGVyIHtcbiAgICAgICAgLmhlYWRlciB7XG4gICAgICAgICAgICAmX19tYWluIHtwYWRkaW5nOiAxMHB4IGNsYW1wKDIwcHgsIDV2dywgODBweCk7fVxuICAgICAgICAgICAgJl9fbG9nbyB7bWF4LXdpZHRoOiAyMDBweDt9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR4LWxhcmdlLXNjcmVlbikge1xuICAgIC5oZWFkZXIge2JhY2tncm91bmQ6ICRwcmltYXJ5LWxpZ2h0ZXI7XG4gICAgICAgICZfX21haW4ge3BhZGRpbmc6IDVweCAwO31cbiAgICAgICAgJl9fbG9nbyB7bWF4LXdpZHRoOiAyMDBweDsgd2lkdGg6IDEwMCU7aGVpZ2h0OiBhdXRvO31cbiAgICAgICAgJl9fbWFpbi1uYXYge3BhZGRpbmc6IDIwcHggMDt9XG4gICAgICAgICZfX21haW4tbmF2LXdyYXBwZXIge2Rpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDt9XG4gICAgICAgICZfX21vYmlsZS10cmlnZ2VyIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAzMHB4O2hlaWdodDogMzBweDsgb3JkZXI6MzsgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy9tZW51LXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgfVxuICAgICAgICAubW9iaWxlLW1lbnUge3Bvc2l0aW9uOiBmaXhlZDtyaWdodDogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGxpbmVhcjtcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xuICAgICAgICAgICAgJi5tZW51b3BlbiB7dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO31cbiAgICAgICAgICAgIC5uYXYtaXRlbSB7ZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAmID4gYSxcbiAgICAgICAgICAgICAgICAgICAgJiA+IHNwYW4ge2ZvbnQtd2VpZ2h0OiA3MDA7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmX19saW5rIHtwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO3dpZHRoOiAxMDAlOyBwYWRkaW5nOiAxMHB4IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6d2hpdGU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJl9fbmF2dHJpZ2dlciB7cG9zaXRpb246IGFic29sdXRlOyByaWdodDogMjBweDsgdG9wOiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTsgei1pbmRleDogMTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMjVweDsgaGVpZ2h0OiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vaW1nL2FuZ2xlLXVwLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNjAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgbGluZWFyO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJl9fc3VibWVudSB7cGFkZGluZy1sZWZ0OiAyMHB4O31cbiAgICAgICAgICAgICAgICAmX19zdWJpdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgYSB7Zm9udC13ZWlnaHQ6IDcwMDt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJl9fc3VibGluayB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTAwJTsgcGFkZGluZzogMTBweCAzMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOndoaXRlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7fVxuICAgICAgICAgICAgICAgICYuc3ViLW9wZW4ge1xuICAgICAgICAgICAgICAgICAgICAubmF2LWl0ZW1fX25hdnRyaWdnZXIge3RyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMCk7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpeGVkLWhlYWRlciB7XG4gICAgICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAmX19tYWluIHtwYWRkaW5nOiA1cHggMDt9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9fc29jaWFscyB7ZGlzcGxheTogbm9uZTt9XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkc21hbGwtc2NyZWVuKSB7XG4gICAgLmhlYWRlciB7XG4gICAgICAgIC5tb2JpbGUtbWVudSB7IG92ZXJmbG93LXk6IHNjcm9sbDt9XG4gICAgfVxufSIsIi5wYWdlLWhlcm8ge3BhZGRpbmctdG9wOiAyMDBweDsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAmX19iZy1jb250YWluZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA2MHB4OyBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICAgICAgaW1nIHt3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3Zlcjt9XG4gICAgICAgICY6YWZ0ZXIge2NvbnRlbnQ6Jyc7XG4gICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9pbWcvcGFnZS1oZWFkZXItc2hhZGUucG5nJykgdG9wIGxlZnQ7XG4gICAgICAgICAgICAgICAgIG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIC5Db2xsZWN0aW9ucyAmIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge2NvbnRlbnQ6bm9uZTt9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fY29udGVudC1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgICAgIGgxIHtwb3NpdGlvbjogcmVsYXRpdmU7IG1hcmdpbi1ib3R0b206IDUwcHg7fVxuICAgIH1cbiAgICAmX19icmVhZGNydW1iIHsgY29sb3I6d2hpdGU7IGZvbnQtc2l6ZTogJGZ6LS10ZXh0LS1zbWFsbDtcbiAgICAgICAgYSB7Y29sb3I6d2hpdGU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICY6aG92ZXIge3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO30gXG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fYnJlYWRjcnVtYi1pdGVtIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxuICAgICZfX2RhdGUge2Rpc3BsYXk6IGJsb2NrO21hcmdpbjogLTUwcHggMCA1MHB4O1xuICAgICAgICAgICAgIGNvbG9yOndoaXRlOyBmb250LXNpemU6ICRmei0tdGV4dC0tYmlnOyBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxufVxuXG4ucGFnZS1pbnRybyB7dGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIHAge2ZvbnQtc2l6ZTogJGZ6LS10ZXh0LS1iaWc7fVxufSIsIi5ob21lLWhlcm8geyBoZWlnaHQ6IDc1dmg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbTogMTYwcHg7XG4gICAgJl9fc2xpZGVyIHtoZWlnaHQ6IDEwMCU7fVxuICAgICZfX3N3aXBlciB7aGVpZ2h0OiAxMDAlO31cbiAgICAmX19zbGlkZSAge2hlaWdodDogMTAwJTt9XG4gICAgJl9fc2xpZGUtYmctY29udGFpbmVyIHtoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGltZyB7d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY292ZXI7fVxuICAgICAgICAvLyAmOmFmdGVyIHtjb250ZW50OicnO1xuICAgICAgICAvLyAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7XG4gICAgICAgIC8vICAgICBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICAgICAgLy8gICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgICAgICAvLyAgICAgbWl4LWJsZW5kLW1vZGU6IHNvZnQtbGlnaHQ7XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgJl9fY29udGVudC1jb250YWluZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwOyB6LWluZGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7XG4gICAgfVxuICAgICZfX3RpdGxlIHttYXJnaW4tYm90dG9tOiAxOHB4O31cbiAgICAmX19zdWJ0aXRsZSB7Zm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmOyBmb250LXNpemU6ICRmei0taDQ7IGZvbnQtd2VpZ2h0OiA0MDA7IGNvbG9yOndoaXRlO1xuICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgIH1cblxufVxuXG4uaG9tZS1jb2xsZWN0aW9ucyB7XG4gICAgLmNvbnRlbnQtZWRpdG8ge1xuICAgICAgICBwIHtmb250LXdlaWdodDogNTAwO31cbiAgICB9XG4gICAgJl9fc3dpcGVyLW5hdiB7bWFyZ2luOiAzMHB4IDA7fVxuICAgICZfX3N3aXBlci1uYXYtYnRuIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiA0OHB4OyBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7bWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge21hcmdpbi1yaWdodDogMDt9XG4gICAgICAgICYtLXByZXYge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vaW1nL2Fycm93LWxlZnQtYmxhY2suc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiA3MCU7fVxuICAgICAgICAmLS1uZXh0IHtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy9hcnJvdy1yaWdodC1ibGFjay5zdmcnKSBjZW50ZXIgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IDcwJTt9XG4gICAgICAgICY6aG92ZXIge2N1cnNvcjpwb2ludGVyO31cbiAgICB9XG4gICAgLnBvc3QtaXRlbSB7YXNwZWN0LXJhdGlvOiAuODE7fVxufVxuXG4uaG9tZS1zaG9wcyB7XG4gICAgJl9fY29sdW1uLWNvbnRhaW5lciB7ZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7fVxuICAgICZfX2NvbHVtbiB7d2lkdGg6IDUwJTsgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICAmX19pdGVtIHtwb3NpdGlvbjogcmVsYXRpdmU7IG92ZXJmbG93OiBoaWRkZW47IG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICY6YWZ0ZXIge2NvbnRlbnQ6Jyc7XG4gICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwMCU7IGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRwcmltYXJ5LCAuMSk7XG4gICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOmFmdGVyIHt0b3A6IDA7fVxuICAgICAgICAgICAgLmhvbWUtc2hvcHMgeyAvKiBSaWVuIGljaSBOYW1lSG9sZGVyKi9cbiAgICAgICAgICAgICAgICAmX19pdGVtLWNvbnRlbnQge3RvcDogMDtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7bWFyZ2luLWJvdHRvbTogMDt9XG4gICAgfVxuICAgICZfX2l0ZW0tYmctY29udGFpbmVyIHsgaGVpZ2h0OiAxMDAlO3dpZHRoOiAxMDAlO1xuICAgICAgICBpbWcge3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6Y292ZXI7fVxuICAgIH1cbiAgICAmX19pdGVtLWNvbnRlbnQge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDAlOyBsZWZ0OiAwOyB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgY29sb3I6d2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgLjNzIGVhc2UtaW4tb3V0OyB0cmFuc2l0aW9uLWRlbGF5OiAuMXM7XG4gICAgICAgIGgzIHtjb2xvcjp3aGl0ZTsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGNlbnRlcjt9XG4gICAgICAgIHAge3dpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxuICAgIH1cbiAgICAmX19hYm91dCB7cGFkZGluZzoxMDBweCBjYWxjKCgxMDB2dyAtICR4LWxhcmdlLXNjcmVlbikgLyAyKSAxMDBweCAxMTBweDtoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xuICAgICAgICBoMiB7Zm9udC1zaXplOiAkZnotLWgxOyBjb2xvcjpibGFjazsgbWFyZ2luLWJvdHRvbTogNTBweDt9XG4gICAgICAgIHAge21hcmdpbi1ib3R0b206IDI1cHg7IGZvbnQtd2VpZ2h0OiA1MDA7fVxuICAgIH1cbn1cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiRzbWFsbC1zY3JlZW4pIHtcbiAgICAuaG9tZS1oZXJvIHsgbWFyZ2luLWJvdHRvbTogODBweDt9XG4gICAgLmhvbWUtc2hvcHMge1xuICAgICAgICAmX19jb2x1bW4tY29udGFpbmVyIHtmbGV4LXdyYXA6d3JhcDt9XG4gICAgICAgICZfX2NvbHVtbiB7d2lkdGg6IDEwMCU7IG1hcmdpbi1ib3R0b206IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDA7fVxuICAgICAgICAmX19hYm91dCB7cGFkZGluZzogNDBweDt9XG4gICAgfVxuXG4gICAgLmJyYW5kcyB7XG4gICAgICAgICZfX2hlYWRlciB7IHBhZGRpbmc6IDAgMjBweCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICBoMiB7bWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O31cbiAgICAgICAgICAgIGEge3Bvc2l0aW9uOiBzdGF0aWM7fVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ob21lLWNvbGxlY3Rpb25ze292ZXJmbG93OiBoaWRkZW47fVxufVxuIiwiLnBvc3QtbGlzdCB7ZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICYuc3dpcGVyIHtvdmVyZmxvdzogdmlzaWJsZTsgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgJjpiZWZvcmUge2NvbnRlbnQ6Jyc7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7dG9wOiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDUwdnc7IGhlaWdodDogMTAyJTtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6d2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgJjpiZWZvcmUge3JpZ2h0OiAxMDAlO31cbiAgICB9XG59XG5cbi5wb3N0LWl0ZW0ge292ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKGNhbGMoMTAwJSAtIDUwcHgpLzMpOyBtYXJnaW4tcmlnaHQ6IDI1cHg7IG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgQGluY2x1ZGUgZWFjaCgzKSB7bWFyZ2luLXJpZ2h0OiAwO31cbiAgICAmOmFmdGVyIHtjb250ZW50OicnO1xuICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMDAlOyBsZWZ0OiAwO1xuICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRwcmltYXJ5LCAuMTUpO1xuICAgICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgfVxuICAgICZfX3dyYXBwZXIge3Bvc2l0aW9uOiByZWxhdGl2ZTt9XG4gICAgJl9fYmctY29udGFpbmVyIHsgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpbWcge3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyO31cbiAgICAgICAgJjphZnRlciB7Y29udGVudDonJztcbiAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7bGVmdDogMDtcbiAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2JhKDAsIDAsIDAsIDAuOTApIDAlLCByZ2JhKDExNSwgMTE1LCAxMTUsIDAuMDApIDEwMCUpO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2NvbnRlbnQge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA2MCU7IGxlZnQ6IDA7ei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBwYWRkaW5nOiA0MHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAuM3MgZWFzZS1pbi1vdXQ7IHRyYW5zaXRpb24tZGVsYXk6IC4xcztcbiAgICB9XG4gICAgJl9fdGl0bGUge2NvbG9yOndoaXRlO21pbi1oZWlnaHQ6IDY1cHg7IHRleHQtYWxpZ246IGNlbnRlcjt9XG4gICAgJl9fZGF0ZSB7Y29sb3I6d2hpdGU7IGZvbnQtc2l6ZTogJGZ6LS10ZXh0LS1iaWc7IGZvbnQtc3R5bGU6IGl0YWxpYzsgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7IHRyYW5zaXRpb24tZGVsYXk6IC4ycztcbiAgICB9IFxuICAgICZfX2Rlc2Mge2NvbG9yOndoaXRlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGxpbmUtaGVpZ2h0OiAyNXB4OyBtYXJnaW4tYm90dG9tOiA1MHB4O1xuICAgICAgICAgICAgIG9wYWNpdHk6IDA7IGhlaWdodDogMTI1cHg7XG4gICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjsgdHJhbnNpdGlvbi1kZWxheTogLjJzO1xuICAgIH1cbiAgICAmX19wbHVzIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHdpZHRoOiAzOHB4OyBoZWlnaHQ6IDM4cHg7IFxuICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vaW1nL3BsdXMtd2hpdGUuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgIG9wYWNpdHk6IDA7dHJhbnNpdGlvbjogb3BhY2l0eSAwcyBsaW5lYXI7IHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIH1cbiAgICAmOmhvdmVyIHsgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAucG9zdC1pdGVtIHsgLyogUmllbiBpY2kgTmFtZUhvbGRlciovXG4gICAgICAgICAgICAmX19kZXNjLFxuICAgICAgICAgICAgJl9fcGx1cyxcbiAgICAgICAgICAgICZfX2RhdGUge29wYWNpdHk6IDE7fVxuICAgICAgICAgICAgJl9fZGVzYyB7aGVpZ2h0OiBhdXRvOyB0cmFuc2l0aW9uOiBhbGwgLjNzIGxpbmVhcjsgdHJhbnNpdGlvbi1kZWxheTowczt9XG4gICAgICAgICAgICAmX19wbHVzIHt0cmFuc2l0aW9uLWRlbGF5Oi4xczsgXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7dHJhbnNmb3JtOiBzY2FsZSgxLjIpO3RyYW5zaXRpb246IHRyYW5zZm9ybSAuMXMgbGluZWFyO31cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZfX2NvbnRlbnQge3RvcDogMDt9XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7dG9wOiAwO31cbiAgICB9XG59XG5cbi5wYWdlLWxpc3Qge2Rpc3BsYXk6ZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGlnbi1pdGVtczogc3RyZXRjaDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7fVxuXG4ucGFnZS1pdGVtIHsgd2lkdGg6IGNhbGMoY2FsYygxMDAlIC0gNTBweCkvMyk7IG1hcmdpbi1yaWdodDogMjVweDsgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5AaW5jbHVkZSBlYWNoKDMpIHttYXJnaW4tcmlnaHQ6IDA7fVxuICAgIFxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiRtZWRpdW0tc2NyZWVuKSB7XG4gICAucG9zdC1pdGVtIHt3aWR0aDogY2FsYyhjYWxjKDEwMCUgLSAyNXB4KS8yKTsgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICAgICAgICBAaW5jbHVkZSBlYWNoKDMpIHttYXJnaW4tcmlnaHQ6IDI1cHg7fVxuICAgICAgICBAaW5jbHVkZSBlYWNoKDIpIHttYXJnaW4tcmlnaHQ6IDA7fVxuICAgIH1cbiAgXG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6JG1lZGl1bS1zY3JlZW4pIHtcbiAgICAucG9zdC1pdGVtIHt3aWR0aDogMTAwJTsgbWFyZ2luLXJpZ2h0OiAwIH1cbiAgIFxuIH0iLCIvLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBmcm9tIHRoZSBmaXJzdCB0byBgJG51bWAuXHJcbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXHJcbkBtaXhpbiBmaXJzdCgkbnVtKSB7XHJcbiAgQGlmICRudW0gPT0gMSB7XHJcbiAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAmOm50aC1jaGlsZCgtbiArICN7JG51bX0pIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2VsZWN0IGFsbCBjaGlsZHJlbiBmcm9tIHRoZSBsYXN0IHRvIGAkbnVtYC5cclxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcclxuQG1peGluIGxhc3QoJG51bSkge1xyXG4gICY6bnRoLWxhc3QtY2hpbGQoLW4gKyAjeyRudW19KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGFmdGVyIHRoZSBmaXJzdCB0byBgJG51bWAuXHJcbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXHJcbkBtaXhpbiBhZnRlci1maXJzdCgkbnVtKSB7XHJcbiAgJjpudGgtY2hpbGQobiArICN7JG51bSArIDF9KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGJlZm9yZSBgJG51bWAgZnJvbSB0aGUgbGFzdC5cclxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW0gLSBpZCBvZiB0aGUgY2hpbGRcclxuQG1peGluIGZyb20tZW5kKCRudW0pIHtcclxuICAmOm50aC1sYXN0LWNoaWxkKCN7JG51bX0pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNlbGVjdCBhbGwgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cclxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG5AbWl4aW4gYmV0d2VlbigkZmlyc3QsICRsYXN0KSB7XHJcbiAgJjpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNlbGVjdCBhbGwgZXZlbiBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxyXG4vLy8gQGdyb3VwIHdpdGgtYXJndW1lbnRzXHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbkBtaXhpbiBldmVuLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xyXG4gICY6bnRoLWNoaWxkKGV2ZW4pOm50aC1jaGlsZChuICsgI3skZmlyc3R9KTpudGgtY2hpbGQoLW4gKyAjeyRsYXN0fSkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2VsZWN0IGFsbCBvZGQgY2hpbGRyZW4gYmV0d2VlbiBgJGZpcnN0YCBhbmQgYCRsYXN0YC5cclxuLy8vIEBncm91cCB3aXRoLWFyZ3VtZW50c1xyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG5AbWl4aW4gb2RkLWJldHdlZW4oJGZpcnN0LCAkbGFzdCkge1xyXG4gICY6bnRoLWNoaWxkKG9kZCk6bnRoLWNoaWxkKG4gKyAjeyRmaXJzdH0pOm50aC1jaGlsZCgtbiArICN7JGxhc3R9KSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTZWxlY3QgYWxsIGAkbnVtYCBjaGlsZHJlbiBiZXR3ZWVuIGAkZmlyc3RgIGFuZCBgJGxhc3RgLlxyXG4vLy8gQGdyb3VwIHdpdGgtYXJndW1lbnRzXHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbkBtaXhpbiBuLWJldHdlZW4oJG51bSwgJGZpcnN0LCAkbGFzdCkge1xyXG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKTpudGgtY2hpbGQobiArICN7JGZpcnN0fSk6bnRoLWNoaWxkKC1uICsgI3skbGFzdH0pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGJ1dCBgJG51bWAuXHJcbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXHJcbkBtaXhpbiBhbGwtYnV0KCRudW0pIHtcclxuICAmOm5vdCg6bnRoLWNoaWxkKCN7JG51bX0pKSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTZWxlY3QgY2hpbGRyZW4gZWFjaCBgJG51bWAuXHJcbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXHJcbi8vLyBAYWxpYXMgZXZlcnlcclxuQG1peGluIGVhY2goJG51bSkge1xyXG4gICY6bnRoLWNoaWxkKCN7JG51bX1uKSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTZWxlY3QgY2hpbGRyZW4gZWFjaCBgJG51bWAuXHJcbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXHJcbkBtaXhpbiBldmVyeSgkbnVtKSB7XHJcbiAgJjpudGgtY2hpbGQoI3skbnVtfW4pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNlbGVjdCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIHN0YXJ0IGFuZCB0aGUgYCRudW1gIGNoaWxkIGZyb20gdGhlIGxhc3QuXHJcbi8vLyBAZ3JvdXAgd2l0aC1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gaWQgb2YgdGhlIGNoaWxkXHJcbkBtaXhpbiBmcm9tLWZpcnN0LWxhc3QoJG51bSkge1xyXG4gICY6bnRoLWNoaWxkKCN7JG51bX0pLFxyXG4gICY6bnRoLWxhc3QtY2hpbGQoI3skbnVtfSkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8vIFNlbGVjdCB0aGUgaXRlbSBpbiB0aGUgbWlkZGxlIG9mIGAkbnVtYCBjaGlsZC4gT25seSB3b3JrcyB3aXRoIG9kZCBudW1iZXJcclxuLy8vIGNoYWluLlxyXG4vLy8gQGdyb3VwIHdpdGgtYXJndW1lbnRzXHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxyXG5AbWl4aW4gbWlkZGxlKCRudW0pIHtcclxuICAmOm50aC1jaGlsZCgje3JvdW5kKCRudW0gLyAyKX0pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vLyBTZWxlY3QgYWxsIGNoaWxkcmVuIGJldHdlZW4gdGhlIGAkbnVtYCBmaXJzdCBhbmQgdGhlIGAkbnVtYCBsYXN0LlxyXG4vLy8gQGdyb3VwIHdpdGgtYXJndW1lbnRzXHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bSAtIGlkIG9mIHRoZSBjaGlsZFxyXG5AbWl4aW4gYWxsLWJ1dC1maXJzdC1sYXN0KCRudW0pIHtcclxuICAmOm50aC1jaGlsZChuICsgI3skbnVtfSk6bnRoLWxhc3QtY2hpbGQobiArICN7JG51bX0pIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vLyBUaGlzIHF1YW50aXR5LXF1ZXJ5IG1peGluIHdpbGwgb25seSBzZWxlY3QgdGhlIGZpcnN0IG9mIGAkbGltaXRgIGl0ZW1zLiBJdCB3aWxsIG5vdFxyXG4vLy8gd29yayBpZiB0aGVyZSBpcyBub3QgYXMgbXVjaCBhcyBpdGVtIGFzIHlvdSBzZXQgaW4gYCRsaW1pdGAuXHJcbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xyXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRsaW1pdFxyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG5AbWl4aW4gZmlyc3Qtb2YoJGxpbWl0KSB7XHJcbiAgJjpudGgtbGFzdC1jaGlsZCgjeyRsaW1pdH0pOmZpcnN0LWNoaWxkIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFRoaXMgcXVhbnRpdHktcXVlcnkgbWl4aW4gd2lsbCBvbmx5IHNlbGVjdCB0aGUgbGFzdCBvZiBgJGxpbWl0YCBpdGVtcy4gSXQgd2lsbCBub3RcclxuLy8vIGlmIHRoZXJlIGlzIG5vdCBhcyBtdWNoIGFzIGl0ZW0gYXMgeW91IHNldCBpbiBgJGxpbWl0YC5cclxuLy8vIEBncm91cCBRdWFudGl0eSBxdWVyaWVzXHJcbi8vLyBAcGFyYW0ge251bWJlcn0gJGxpbWl0XHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbkBtaXhpbiBsYXN0LW9mKCRsaW1pdCkge1xyXG4gICY6bnRoLW9mLXR5cGUoI3skbGltaXR9KTpudGgtbGFzdC1vZi10eXBlKDEpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFRoaXMgcXVhbnRpdHktcXVlcnkgbWl4aW4gd2lsbCBzZWxlY3QgZXZlcnkgaXRlbXMgaWYgdGhlcmUgaXMgYXQgbGVhc3QgYCRudW1gIGl0ZW1zLiBJdCB3aWxsIG5vdFxyXG4vLy8gaWYgdGhlcmUgaXMgbm90IGFzIG11Y2ggYXMgaXRlbSBhcyB5b3Ugc2V0IGluIGAkbnVtYC5cclxuLy8vIEBncm91cCBRdWFudGl0eSBxdWVyaWVzXHJcbi8vLyBAcGFyYW0ge251bWJlcn0gJGxpbWl0XHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbkBtaXhpbiBhdC1sZWFzdCgkbnVtKSB7XHJcbiAgJHNlbGVjdG9yOiAmO1xyXG4gICRjaGlsZDogbnRoKG50aCgkc2VsZWN0b3IsIC0xKSwgLTEpO1xyXG5cclxuICAmOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSxcclxuICAmOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRudW19KSB+ICN7JGNoaWxkfSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBUaGlzIHF1YW50aXR5LXF1ZXJ5IG1peGluIHdpbGwgc2VsZWN0IGV2ZXJ5IGl0ZW1zIGlmIHRoZXJlIGlzIGF0IG1vc3QgYCRudW1gIGl0ZW1zLiBJdCB3aWxsIG5vdFxyXG4vLy8gaWYgdGhlcmUgaXMgbm90IGFzIG11Y2ggYXMgaXRlbSBhcyB5b3Ugc2V0IGluIGAkbnVtYC5cclxuLy8vIEBncm91cCBRdWFudGl0eSBxdWVyaWVzXHJcbi8vLyBAcGFyYW0ge251bWJlcn0gJGxpbWl0XHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbkBtaXhpbiBhdC1tb3N0KCRudW0pIHtcclxuICAkc2VsZWN0b3I6ICY7XHJcbiAgJGNoaWxkOiBudGgobnRoKCRzZWxlY3RvciwgLTEpLCAtMSk7XHJcblxyXG4gICY6bnRoLWxhc3QtY2hpbGQoLW4gKyAjeyRudW19KTpmaXJzdC1jaGlsZCxcclxuICAmOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbnVtfSk6Zmlyc3QtY2hpbGQgfiAjeyRjaGlsZH0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gVGhpcyBxdWFudGl0eS1xdWVyeSBtaXhpbiB3aWxsIHNlbGVjdCBldmVyeSBpdGVtcyBvbmx5IGlmIHRoZXJlIGlzIGJldHdlZW4gYCRtaW5gIGFuZCBgJG1heGAgaXRlbXMuXHJcbi8vLyBAZ3JvdXAgUXVhbnRpdHkgcXVlcmllc1xyXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRsaW1pdFxyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG5AbWl4aW4gaW4tYmV0d2VlbigkbWluLCAkbWF4KSB7XHJcbiAgJHNlbGVjdG9yOiAmO1xyXG4gICRjaGlsZDogbnRoKG50aCgkc2VsZWN0b3IsIC0xKSwgLTEpO1xyXG5cclxuICAmOm50aC1sYXN0LWNoaWxkKG4gKyAjeyRtaW59KTpudGgtbGFzdC1jaGlsZCgtbiArICN7JG1heH0pOmZpcnN0LWNoaWxkLFxyXG4gICY6bnRoLWxhc3QtY2hpbGQobiArICN7JG1pbn0pOm50aC1sYXN0LWNoaWxkKC1uICsgI3skbWF4fSk6Zmlyc3QtY2hpbGQgfiAjeyRjaGlsZH0ge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2VsZWN0IHRoZSBmaXJzdCBleGFjdCBjaGlsZFxyXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG5AbWl4aW4gZmlyc3QtY2hpbGQoKSB7XHJcbiAgJjpmaXJzdC1vZi10eXBlIHtcclxuICAgIEBjb250ZW50XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2VsZWN0IHRoZSBsYXN0IGV4YWN0IGNoaWxkXHJcbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbkBtaXhpbiBsYXN0LWNoaWxkKCkge1xyXG4gICY6bGFzdC1vZi10eXBlIHtcclxuICAgIEBjb250ZW50XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gU2VsZWN0IGFsbCBldmVuIGNoaWxkcmVuLlxyXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG5AbWl4aW4gZXZlbigpIHtcclxuICAmOm50aC1jaGlsZChldmVuKSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBTZWxlY3QgYWxsIG9kZCBjaGlsZHJlbi5cclxuLy8vIEBncm91cCBuby1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuQG1peGluIG9kZCgpIHtcclxuICAmOm50aC1jaGlsZChvZGQpIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFNlbGVjdCBvbmx5IHRoZSBmaXJzdCBhbmQgbGFzdCBjaGlsZC5cclxuLy8vIEBncm91cCBuby1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuQG1peGluIGZpcnN0LWxhc3QoKSB7XHJcbiAgJjpmaXJzdC1jaGlsZCxcclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLy8gV2lsbCBvbmx5IHNlbGVjdCB0aGUgY2hpbGQgaWYgaXTigJlzIHVuaXF1ZS5cclxuLy8vIEBncm91cCBuby1hcmd1bWVudHNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBhbGlhcyBvbmx5XHJcbkBtaXhpbiB1bmlxdWUoKSB7XHJcbiAgJjpvbmx5LWNoaWxkIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8vIFdpbGwgb25seSBzZWxlY3QgdGhlIGNoaWxkIGlmIGl04oCZcyB1bmlxdWUuXHJcbi8vLyBAZ3JvdXAgbm8tYXJndW1lbnRzXHJcbi8vLyBAY29udGVudCBbV3JpdGUgdGhlIHN0eWxlIHlvdSB3YW50IHRvIGFwcGx5IHRvIHRoZSBjaGlsZHJlbiwgYW5kIGl0IHdpbGwgYmUgYWRkZWQgd2l0aGluIHRoZSBAY29udGVudCBkaXJlY3RpdmVdXHJcbkBtaXhpbiBvbmx5KCkge1xyXG4gICY6b25seS1jaGlsZCB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vLyBXaWxsIG9ubHkgc2VsZWN0IGNoaWxkcmVuIGlmIHRoZXkgYXJlIG5vdCB1bmlxdWUuIE1lYW5pbmcgaWYgdGhlcmUgaXMgYXRcclxuLy8vIGxlYXN0IDIgY2hpbGRyZW4sIHRoZSBzdHlsZSBpcyBhcHBsaWVkLlxyXG4vLy8gQGdyb3VwIG5vLWFyZ3VtZW50c1xyXG4vLy8gQGNvbnRlbnQgW1dyaXRlIHRoZSBzdHlsZSB5b3Ugd2FudCB0byBhcHBseSB0byB0aGUgY2hpbGRyZW4sIGFuZCBpdCB3aWxsIGJlIGFkZGVkIHdpdGhpbiB0aGUgQGNvbnRlbnQgZGlyZWN0aXZlXVxyXG5AbWl4aW4gbm90LXVuaXF1ZSgpIHtcclxuICAmOm5vdCg6b25seS1jaGlsZCkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8vIFRoaXMgbWl4aW4gaXMgdXNlZCB0byBhdXRvbWF0aWNhbGx5IHNvcnQgei1pbmRleCBpbiBudW1lcmljYWwgb3JkZXIuIEJ1dCBpdFxyXG4vLy8gY2FuIGFsc28gc29ydCB0aGVtIGluIGFudGktbnVtZXJpY2FsIG9yZGVyLCBkZXBlbmRpbmcgdGhlIHBhcmFtZXRlcnMgeW91IHVzZS5cclxuLy8vIEBncm91cCB1c2luZyBmdW5jdGlvbnNcclxuLy8vIEBjb250ZW50IFtXcml0ZSB0aGUgc3R5bGUgeW91IHdhbnQgdG8gYXBwbHkgdG8gdGhlIGNoaWxkcmVuLCBhbmQgaXQgd2lsbCBiZSBhZGRlZCB3aXRoaW4gdGhlIEBjb250ZW50IGRpcmVjdGl2ZV1cclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gTnVtYmVyIG9mIGNoaWxkcmVuXHJcbi8vLyBAcGFyYW0ge3N0cmluZ30gJGRpcmVjdGlvbiBbZm9yd2FyZF0gLSBEaXJlY3Rpb24gb2YgdGhlIHNvcnRcclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkaW5kZXggWzBdIC0gSW5kZXggb2YgdGhlIHNvcnRpbmdcclxuQG1peGluIGNoaWxkLWluZGV4KCRudW0sICRkaXJlY3Rpb246ICdmb3J3YXJkJywgJGluZGV4OiAwKSB7XHJcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbnVtIHtcclxuICAgIEBpZiAoJGRpcmVjdGlvbiA9PSAnZm9yd2FyZCcpIHtcclxuICAgICAgJjpudGgtY2hpbGQoI3skaX0pIHtcclxuICAgICAgICB6LWluZGV4OiBvcmRlci1pbmRleCgkaSwgJGluZGV4KTtcclxuICAgICAgICBAY29udGVudDtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSAnYmFja3dhcmQnKSB7XHJcbiAgICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pIHtcclxuICAgICAgICB6LWluZGV4OiBvcmRlci1pbmRleCgkaSwgJGluZGV4KTtcclxuICAgICAgICBAY29udGVudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8vIFVzZWQgYnkgdGhlIGNoaWxkLWluZGV4IG1peGluLiBJdCB3aWxsIHJldHVybmVkIHRoZSBwcm9wZXIgc29ydGVkIG51bWJlcnNcclxuLy8vIGRlcGVuZGluZyBvbiB0aGUgYCRpbmRleGAgdmFsdWUuXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtIC0gTnVtYmVyIG9mIGNoaWxkcmVuXHJcbi8vLyBAcGFyYW0ge251bWJlcn0gJGluZGV4IC0gSW5kZXggb2YgdGhlIHNvcnRpbmdcclxuQGZ1bmN0aW9uIG9yZGVyLWluZGV4KCRpLCAkaW5kZXgpIHtcclxuICBAcmV0dXJuICgkaW5kZXggKyAkaSk7XHJcbn1cclxuIiwiLmNvbGxlY3Rpb24ge1xuXHQmX19uYXYge3dpZHRoOiAxMDAlO3RleHQtYWxpZ246IGNlbnRlcjt9XG5cdCZfX25hdi1pdGVtIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IG1hcmdpbi1yaWdodDogMjBweDtcblx0XHQmOmxhc3Qtb2YtdHlwZSB7bWFyZ2luLXJpZ2h0OiAwO31cblx0fVxuXHQmX19uYXYtaXRlbS1saW5rIHtwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDEwcHggMjBweDtcblx0XHRcdFx0XHQgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6JHByaW1hcnk7XG5cdFx0XHRcdFx0ICBib3JkZXI6MXB4IHNvbGlkICRwcmltYXJ5O1xuXHRcdCY6YmVmb3JlIHtjb250ZW50OicnO1xuXHRcdFx0XHQgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDA7IGhlaWdodDogMTAwJTtcblx0XHRcdFx0ICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogLTE7XG5cdFx0XHRcdCAgYmFja2dyb3VuZDogJHByaW1hcnk7XG5cdFx0XHRcdCAgdHJhbnNpdGlvbjogd2lkdGggLjNzIGVhc2Utb3V0O1xuXHRcdH1cblx0XHQmLmFjdGl2ZSB7Zm9udC13ZWlnaHQ6IDcwMDt9XG5cdFx0Jjpob3ZlciB7Y29sb3I6d2hpdGU7XG5cdFx0XHRcdCBjdXJzb3I6cG9pbnRlcjtcblx0XHRcdCY6YmVmb3JlIHt3aWR0aDogMTAwJTt9XG5cdFx0fVxuXHR9XG5cdCZfX3Byb2R1Y3RzLWxpc3Qge3Bvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTt9XG5cdCZfX2N0YSB7cG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyOyBiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5OyBwYWRkaW5nOiAxMDBweCAwIDEwMHB4ICFpbXBvcnRhbnQ7XG5cdFx0aDIge3RleHQtYWxpZ246IGNlbnRlcjsgY29sb3I6d2hpdGU7fVxuXHR9XG5cdCZfX2N0YS1iZy1jb250YWluZXIge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwO2xlZnQ6IDA7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7XG5cdFx0JjphZnRlciB7Y29udGVudDonJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudGl6ZShibGFjaywgLjYgKTtcbiAgICAgICAgICAgIG1peC1ibGVuZC1tb2RlOiBkYXJrZW47XG4gICAgICAgIH1cblx0XHRpbWcge3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6Y292ZXI7fVxuXHR9XG59XG4ucHJvZHVjdCB7cGFkZGluZzoxLjVyZW07IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdCAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdCYtLXN0aWNreSB7d2lkdGg6IDEwMHZ3OyBoZWlnaHQ6IDEwMHZoO1xuXHRcdFx0ICAgcG9zaXRpb246IHN0aWNreTsgdG9wOiAwO1xuXHR9XG5cdCYtLWhhbGYge2Rpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3ZoO1xuXHRcdFx0IHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHQmOm50aC1jaGlsZChvZGQpIHttYXJnaW4tbGVmdDogYXV0bzt9XG5cdH1cblx0Jl9faW1nIHtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDtcblx0XHRcdHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6Y292ZXI7XG5cdH1cblx0Jl9fY29udGVudCB7cG9zaXRpb246IGFic29sdXRlO2JvdHRvbTogMDsgbGVmdDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50aXplKCRwcmltYXJ5LCAuMSk7XG5cdH1cblx0Jl9fdGl0bGUge2dyaWQtYXJlYTogY29udGVudC10aXRsZTtcblx0XHRcdCAgbGluZS1oZWlnaHQ6IDE7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc2l6ZTogJGZ6LS1oMTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6d2hpdGU7XG5cdFx0XHQgIG1hcmdpbjogMDsgbWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxuXHQmX190ZXh0IHttYXJnaW46IDAgYXV0bzsgbWF4LXdpZHRoOiA4MCU7cGFkZGluZzogMCAxcmVtO1xuXHRcdFx0IGdyaWQtYXJlYTogY29udGVudC10ZXh0O1xuXHRcdFx0IHRleHQtYWxpZ246IGNlbnRlcjsgbGluZS1oZWlnaHQ6IDEuNTsgXG5cdFx0XHQgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0IGNvbG9yOndoaXRlOyBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdCYtLW5hcnJvdyB7bWF4LXdpZHRoOiAzMDBweDt9XG5cdH1cblx0Jl9fcGx1cyB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy9wbHVzLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcblx0XHRcblx0fVxuXHRAaW5jbHVkZSBldmVyeSgxKSB7YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJpbWFyeSwgNTAlKTt9XG5cdEBpbmNsdWRlIGV2ZXJ5KDYpIHtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRwcmltYXJ5LCA1MCUpO31cblx0QGluY2x1ZGUgZXZlcnkoMikge2JhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHNlY29uZGFyeSwgMjAlKTt9XG5cdEBpbmNsdWRlIGV2ZXJ5KDcpIHtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnksIDIwJSk7fVxuXHRAaW5jbHVkZSBldmVyeSgzKSB7YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJpbWFyeSwgMzAlKTt9XG5cdEBpbmNsdWRlIGV2ZXJ5KDgpIHtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRwcmltYXJ5LCAzMCUpO31cblx0QGluY2x1ZGUgZXZlcnkoNCkge2JhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHNlY29uZGFyeSwgMTAlKTt9XG5cdEBpbmNsdWRlIGV2ZXJ5KDkpIHtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRzZWNvbmRhcnksIDEwJSk7fVxuXHRAaW5jbHVkZSBldmVyeSg1KSB7YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJpbWFyeSwgNTUlKTt9XG5cdEBpbmNsdWRlIGV2ZXJ5KDEwKSB7YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcHJpbWFyeSwgNTUlKTt9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRtZWRpdW0tc2NyZWVuKSB7XG5cdC5jb2xsZWN0aW9uIHtcblx0XHQmX19uYXYtaXRlbSB7bWFyZ2luLWJvdHRvbTogMTBweDt9XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHNtYWxsLXNjcmVlbikge1xuXHQucHJvZHVjdCB7XG5cdFx0Ji0taGFsZiB7d2lkdGg6IDUwJTt9XG5cdFx0Jl9faW1nIHtcblx0XHRcdCYtLWxhcmdlIHt3aWR0aDogMTYwJTt9XG5cdFx0XHQmLS1sZWZ0IHtqdXN0aWZ5LXNlbGY6IGVuZDt9XG5cdFx0fVxuXHRcdCZfX3RleHQge1xuXHRcdFx0Ji0tbGVmdCB7dGV4dC1hbGlnbjogbGVmdDsgYWxpZ24tc2VsZjogc3RhcnQ7fVxuXHRcdH1cblx0fVxufSIsIlxuLmJyYW5kcyB7XG4gICZfX2hlYWRlciB7cG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOiAwIDE2MHB4O1xuICAgICAgaDIge3RleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogNTBweDt9XG4gIH1cbiAgJl9fdmlldy1hbGwge3Bvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAwO3JpZ2h0OiAwO1xuICAgICAgICAgICAgICAgY29sb3I6JHByaW1hcnk7IG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAmOmhvdmVyIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7fVxuICB9XG4gICZfX3N3aXBlciB7XG4gICAgICAuc3dpcGVyLXdyYXBwZXIge2FsaWduLWl0ZW1zOiBjZW50ZXI7fVxuICB9XG4gICZfX2xpc3Qge2Rpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IGFsaWduLWl0ZW1zOiBjZW50ZXI7fVxuICAmX19pdGVtIHtkaXNwbGF5OiBibG9jazsgd2lkdGg6IGNhbGMoKDEwMCUgLSA2MHB4KSAvIDUpOyBtYXJnaW4tYm90dG9tOiAzMHB4OyBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpOyBvcGFjaXR5OiAwLjY7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjphbGwgLjJzIGxpbmVhcjtcbiAgICBpbWcge29iamVjdC1maXQ6Y29udGFpbjsgaGVpZ2h0OiBhdXRvOyBtYXgtd2lkdGg6IDEwMCU7fVxuICAgIEBpbmNsdWRlIGVhY2goNSkge21hcmdpbi1yaWdodDogMDt9XG4gICAgJjpob3ZlciB7ZmlsdGVyOiBncmF5c2NhbGUoMCk7IG9wYWNpdHk6IDE7fVxuICB9XG4gICZfX3N3aXBlci1uYXYge21hcmdpbjogMzBweCAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxuICAmX19zd2lwZXItbmF2LWJ0biB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNDhweDsgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7bWFyZ2luLXJpZ2h0OiAwO31cbiAgICAgICYtLXByZXYge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vaW1nL2Fycm93LWxlZnQtYmxhY2suc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiA3MCU7fVxuICAgICAgJi0tbmV4dCB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9pbWcvYXJyb3ctcmlnaHQtYmxhY2suc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiA3MCU7fVxuICAgICAgJjpob3ZlciB7Y3Vyc29yOnBvaW50ZXI7fVxuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRzbWFsbC1zY3JlZW4pIHtcbiAgLmJyYW5kcyB7XG4gICAgJl9faXRlbSB7d2lkdGg6IGNhbGMoKDEwMCUgLSAxNXB4KSAvIDIpO1xuICAgICAgQGluY2x1ZGUgZWFjaCg1KSB7IG1hcmdpbi1yaWdodDogMTVweDt9XG4gICAgICBAaW5jbHVkZSBlYWNoKDIpIHsgbWFyZ2luLXJpZ2h0OiAwO31cbiAgICB9XG4gIH1cbn0iLCIuYmxvYy1iYW5kZWF1IHtcbiAgICBoMiB7Y29sb3I6d2hpdGU7fVxuICAgICZfX2JhbmQge3Bvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnk7IHBhZGRpbmc6IDQwcHggMDsgbWFyZ2luLWJvdHRvbTogLTQwcHg7XG4gICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAmX19jb250ZW50IHsgYmFja2dyb3VuZDogd2hpdGU7IHBhZGRpbmc6IDQwcHg7XG4gICAgICAgIC5jb250ZW50IHtmbGV4LWdyb3c6IDE7fVxuICAgIH1cbn1cblxuLmJsb2MtaW1nLXR4dCB7XG4gICAgaDIsXG4gICAgaDMge2NvbG9yOiAkcHJpbWFyeTt9XG4gICAgLmltYWdlIHsgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpbWcge21heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvO3Bvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjt9XG4gICAgfVxuICAgIC50ZXh0IHsgbWFyZ2luLWJvdHRvbTogMjBweDt9XG4gICAgLnZpZGVvLWNvbnRhaW5lciB7YXNwZWN0LXJhdGlvOjE2Lzk7XG4gICAgICAgIGlmcmFtZSB7d2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTt9XG4gICAgfVxuICAgICYtLWxlZnQge1xuICAgICAgICAuY29sLTUge29yZGVyOjE7fVxuICAgICAgICAuY29sLTEge29yZGVyOjI7fVxuICAgICAgICAuY29sLTYge29yZGVyOjM7fVxuICAgIH1cbiAgICAmLS1yaWdodCB7XG4gICAgICAgIC5jb2wtNSB7b3JkZXI6Mzt9XG4gICAgICAgIC5jb2wtMSB7b3JkZXI6Mjt9XG4gICAgICAgIC5jb2wtNiB7b3JkZXI6MTt9XG4gICAgfVxuICAgICYtLW5vLWltYWdlIHtcbiAgICAgICAgLmNvbnRlbnR7ZmxleC1ncm93OiAxOyB3aWR0aDogMTAwJTt9XG4gICAgICAgIC5jb2wtMSxcbiAgICAgICAgLmltYWdlIHtkaXNwbGF5OiBub25lO31cbiAgICB9XG59XG5cbi5ibG9jLXNob3Age2JhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnk7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgIC5jb250ZW50IHtwYWRkaW5nLWxlZnQ6ICBjYWxjKCgxMDB2dyAtICR4LWxhcmdlLXNjcmVlbikgLyAyKX1cbiAgICAuc2hvcHNfX3NvY2lhbHMge21hcmdpbi1ib3R0b206IDA7fVxuICAgIC5zaG9wc19faXRlbS1saW5rIHtkaXNwbGF5OiBub25lO31cbiAgICAubWFwLWNvbnRhaW5lciB7YXNwZWN0LXJhdGlvOiAxNi85O1xuICAgICAgICAubWFwIHtoZWlnaHQ6IDEwMCU7fVxuICAgIH1cbn1cblxuLmJsb2MtZ2FsbGVyeSB7XG4gICAgJl9fdGh1bWJuYWlscyB7ZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDt9XG4gICAgJl9faXRlbSB7cG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNlY29uZGFyeTtcbiAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMjAlO1xuICAgICAgICAmOmFmdGVyIHtjb250ZW50OicnO1xuICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogMztcbiAgICAgICAgfVxuICAgICAgICAmLS1pbWcge1xuICAgICAgICAgICAgJjphZnRlciB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9pbWcvbWFnbmlmaWVyLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNTBweCA1MHB4O31cbiAgICAgICAgfVxuICAgICAgICAmLS12aWRlbyB7XG4gICAgICAgICAgICAmOmFmdGVyIHtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy9wbGF5LXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNTBweCA1MHB4O31cbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7XG4gICAgICAgICAgICAuYmxvYy1nYWxsZXJ5X19pdGVtLWJnLXNvbGlkIHtvcGFjaXR5OiAwLjU7fVxuICAgICAgICAgICAgJjphZnRlciB7ZGlzcGxheTogaW5saW5lLWJsb2NrO31cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pdGVtLWltZyB7cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6Y292ZXI7XG4gICAgICAgIG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0O1xuICAgIH1cbiAgICAmX19pdGVtLWJnLXNvbGlkIHtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBibGFjaztcbiAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGxpbmVhcjtcbiAgICB9XG59XG5cbi5sZy1vdXRlcixcbi5sZy1iYWNrZHJvcCB7ei1pbmRleDogMzAwMDt9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6JHNtYWxsLXNjcmVlbikge1xuICAgIC5ibG9jLXNob3Age3BhZGRpbmc6IDIwcHggMCAhaW1wb3J0YW50O1xuICAgICAgICAubWFwLWNvbnRhaW5lciB7bWFyZ2luLXRvcDogMjBweDt9XG4gICAgfVxufSIsIi5wYWdpbmF0aW9uIHtkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luOiAzMHB4IGF1dG87XG4gICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgJl9faXRlbSB7IFxuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAkcHJpbWFyeTtcbiAgICAgICAgQGluY2x1ZGUgbGhDcm9wKDEpO1xuICAgICAgICAmOmxhc3Qtb3ItdHlwZSB7IG1hcmdpbi1yaWdodDogMDt9XG4gICAgfVxuICAgICZfX2l0ZW0tbGluayB7ZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7IHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6JHByaW1hcnk7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuYWN0aXZlIHtiYWNrZ3JvdW5kOiAkcHJpbWFyeTsgY29sb3I6d2hpdGU7fVxuICAgICAgICAmLmRpc2FibGVkIHtwb2ludGVyLWV2ZW50czpub25lO2ZpbHRlcjogZ3JheXNjYWxlKDEpOyBvcGFjaXR5OiAwLjU7IH1cbiAgICAgICAgJi0tcHJldiB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9pbWcvYXJyb3ctbGVmdC1wcmltYXJ5LnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNTAlO1xuICAgICAgICAgICAgJjpob3ZlciB7YmFja2dyb3VuZDogJHByaW1hcnkgdXJsKCcuLi9pbWcvYXJyb3ctbGVmdC13aGl0ZS5zdmcnKSBjZW50ZXIgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IDUwJTt9XG4gICAgICAgIH1cbiAgICAgICAgJi0tbmV4dCB7YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9pbWcvYXJyb3ctcmlnaHQtcHJpbWFyeS5zdmcnKSBjZW50ZXIgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IDUwJTtcbiAgICAgICAgICAgICY6aG92ZXIge2JhY2tncm91bmQ6ICRwcmltYXJ5IHVybCgnLi4vaW1nL2Fycm93LXJpZ2h0LXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNTAlO31cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvLyBsaENyb3AgbWl4aW4gLSBjcm9wIHRvcCBzcGFjZSBvbiB0ZXh0IGVsZW1lbnRzXHJcbkBtaXhpbiBsaENyb3AoJGxpbmUtaGVpZ2h0LCAkY2FwaXRhbC1sZXR0ZXI6IDEpIHtcclxuICAmOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIGhlaWdodDogMDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogY2FsYygoI3skY2FwaXRhbC1sZXR0ZXJ9IC0gI3skbGluZS1oZWlnaHR9KSAqIDAuNWVtKTtcclxuICB9XHJcbn1cclxuIiwiLmNvbnRhY3Qge1xuICAgICZfX2l0ZW0geyBkaXNwbGF5OmlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyB3aWR0aDogMTAwJTsgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgaSB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMjVweDsgaGVpZ2h0OiAyNXB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7fVxuICAgICAgICBhIHsgY29sb3I6d2hpdGU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTt9XG4gICAgICAgICYtLXRlbCB7XG4gICAgICAgICAgICBpIHtiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltZy90ZWwuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO31cbiAgICAgICAgfVxuICAgICAgICAmLS1tYWlsIHtcbiAgICAgICAgICAgIGkge2JhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vaW1nL21haWwuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiBjb250YWluO31cbiAgICAgICAgfVxuICAgICAgICAmLS1kYXJrIHtcbiAgICAgICAgICAgIGEge2NvbG9yOiRzZWNvbmRhcnk7fVxuICAgICAgICB9XG4gICAgfVxuICAgICZfX21hcC1jb250YWluZXIge2FzcGVjdC1yYXRpbzogMzIvOTtcbiAgICAgICAgLm1hcCB7aGVpZ2h0OiAxMDAlO31cbiAgICB9XG59IiwiLmZvb3Rlci1tYWluIHsgYmFja2dyb3VuZDogJHByaW1hcnk7IHBhZGRpbmc6IDUwcHggMCA4MHB4O1xuICAgIFxufVxuXG4uZm9vdGVyLWFmdGVyIHtkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IHBhZGRpbmc6IDE1cHggMDtcbiAgICAmX19tZW51LWxlZ2FsIHtcbiAgICAgICAgYSB7ZGlzcGxheTogaW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDogMTBweDsgY29sb3I6YmxhY2s7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgJjpob3ZlciB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgICAgICAgICAgQGluY2x1ZGUgbGhDcm9wKDEuMSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9fa2FnZW5jeSB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogNzBweDsgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBpbWcge3dpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87fVxuICAgIH1cbn1cblxuIiwiLmJhY2stdG9wIHsgd2lkdGg6IDQwcHg7aGVpZ2h0OiA0MHB4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgYm90dG9tOiAxMDBweDsgcmlnaHQ6IDA7IHotaW5kZXg6IDEwMDA7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO1xuICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5IHVybCgnLi4vaW1nL2Fycm93LXVwLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogMzAlO1xuICAgIHRyYW5zaXRpb246dHJhbnNmb3JtIC4zcyBsaW5lYXI7XG4mLmhpZGUgeyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTt9XG59XG4iLCIuc29jaWFscyB7XG4gICAgJl9fbGlzdC1pdGVtIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge3BhZGRpbmctcmlnaHQ6IDA7fVxuICAgIH1cbiAgICAmX19saXN0LWl0ZW0tbGluayB7ZGlzcGxheTogaW5saW5lLWJsb2NrOyB3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4OyBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czo1MCU7IG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICY6bGFzdC1vZi10eXBlIHttYXJnaW4tcmlnaHQ6IDA7fVxuICAgICAgICAmLS14IHtiYWNrZ3JvdW5kOiB3aGl0ZSB1cmwoJy4uL2ltZy94LXByaW1hcnkuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiA3MCU7XG4gICAgICAgICAgICAmOmhvdmVyIHtiYWNrZ3JvdW5kOiAkcHJpbWFyeSB1cmwoJy4uL2ltZy94LXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNzAlO31cbiAgICAgICAgfVxuICAgICAgICAmLS1mYWNlYm9vayB7YmFja2dyb3VuZDogd2hpdGUgdXJsKCcuLi9pbWcvZmFjZWJvb2stcHJpbWFyeS5zdmcnKSBjZW50ZXIgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IDgwJTtcbiAgICAgICAgICAgICY6aG92ZXIge2JhY2tncm91bmQ6ICRwcmltYXJ5IHVybCgnLi4vaW1nL2ZhY2Vib29rLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogODAlO31cbiAgICAgICAgfVxuICAgICAgICAmLS15b3V0dWJlIHtiYWNrZ3JvdW5kOiB3aGl0ZSB1cmwoJy4uL2ltZy95b3V0dWJlLXByaW1hcnkuc3ZnJykgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOiA2MCU7XG4gICAgICAgICAgICAmOmhvdmVyIHtiYWNrZ3JvdW5kOiAkcHJpbWFyeSB1cmwoJy4uL2ltZy95b3V0dWJlLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNjAlO31cbiAgICAgICAgfVxuICAgICAgICAmLS1pbnN0YWdyYW0ge2JhY2tncm91bmQ6IHdoaXRlIHVybCgnLi4vaW1nL2luc3RhZ3JhbS1wcmltYXJ5LnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogODAlO1xuICAgICAgICAgICAgJjpob3ZlciB7YmFja2dyb3VuZDogJHByaW1hcnkgdXJsKCcuLi9pbWcvaW5zdGFncmFtLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogODAlO31cbiAgICAgICAgfVxuICAgICAgICAmLS1saW5rZWRpbiB7YmFja2dyb3VuZDogd2hpdGUgdXJsKCcuLi9pbWcvbGlua2VkaW4tcHJpbWFyeS5zdmcnKSBjZW50ZXIgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6IDYwJTtcbiAgICAgICAgICAgICY6aG92ZXIge2JhY2tncm91bmQ6ICRwcmltYXJ5IHVybCgnLi4vaW1nL2xpbmtlZGluLXdoaXRlLnN2ZycpIGNlbnRlciBuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTogNjAlO31cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuc2hvcHMge2Rpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgJl9faXRlbSB7ZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDttYXgtd2lkdGg6IDMyMHB4O31cbiAgICAmX19pdGVtLWxvZ28tY29udGFpbmVyIHt3aWR0aDogMTAwJTtoZWlnaHQ6IDg1cHg7IG1hcmdpbi1ib3R0b206IDE1cHg7fVxuICAgICZfX2l0ZW0tbG9nbyB7bWF4LXdpZHRoOiAyMzBweDt9XG4gICAgJl9faXRlbS1pbmZvcyB7IG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIC5mb290ZXIgJiB7Y29sb3I6d2hpdGU7fVxuICAgIH1cbiAgICAmX19pdGVtLWFkcmVzcyB7fVxuICAgICZfX2l0ZW0tb3BlbmluZy1ob3VycyB7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1zaXplOiAkZnotLWJ1dHRvbiAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50OyBtYXgtd2lkdGg6IDQwMHB4O31cbiAgICAmX19zb2NpYWxzIHt3aWR0aDogMTAwJTsgbWFyZ2luLWJvdHRvbTogNDBweDt9XG4gICAgJl9faXRlbS1saW5rIHsgYWxpZ24tc2VsZjogZmxleC1lbmQ7fVxuICAgIFxufVxuXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6JHNtYWxsLXNjcmVlbikge1xuICAgIC5zaG9wcyB7ZmxleC13cmFwOndyYXA7IHdpZHRoOiAxMDAlO1xuICAgICAgICAmX19pdGVtIHt3aWR0aDogMTAwJTsgbWFyZ2luLWJvdHRvbTogMjBweDttYXgtd2lkdGg6IDEwMCU7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB0ZXh0LWFsaWduOiBjZW50ZXI7fVxuICAgIH1cbn0iLCIuanVzdGlmeS1jb250ZW50LW1kLWNlbnRlcixcbi5qdXN0aWZ5LWNvbnRlbnQtc20tY2VudGVyLFxuLmp1c3RpZnktY29udGVudC14cy1jZW50ZXIsXG4uanVzdGlmeS1jb250ZW50LWxnLWNlbnRlciB7anVzdGlmeS1jb250ZW50OiBjZW50ZXI7fVxuXG4uamNvbmZpcm0tYm94IHtcbiAgICAuamNvbmZpcm0tY29udGVudCB7b3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O31cbiAgICAuYnRuIHtcbiAgICAgICAgJjphZnRlciB7Y29udGVudDpub25lO31cbiAgICB9XG59Il19 */
