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

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/
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; }

img {
  display: block;
  width: 100%; }

h1, h2, h3, h4, h5, h6 {
  font: 32px "Abel", sans-serif;
  line-height: 1.4; }

ul, li {
  list-style: none; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, svg, picture {
  display: block; }

body {
  font: 400 16px "Montserrat", sans-serif;
  color: #1a1a1a;
  line-height: 1.2;
  position: relative; }

a {
  text-decoration: none; }

p {
  line-height: 1.4;
  margin-bottom: 12px; }
  p em {
    font-style: italic; }
  p:last-child {
    margin: 0; }

strong {
  font-weight: 600; }

input, textarea, select {
  display: block;
  width: 100%;
  background: transparent;
  padding: 16px;
  margin-bottom: 24px;
  border: 1px #fff solid;
  color: #fff;
  font-family: "Abel", sans-serif;
  font-size: 16px;
  transition: all .2s ease-in-out; }
  input:-ms-input-placeholder, textarea:-ms-input-placeholder, select:-ms-input-placeholder {
    color: #fff; }
  input::placeholder, textarea::placeholder, select::placeholder {
    color: #fff; }
  input::-moz-placeholder, textarea::-moz-placeholder, select::-moz-placeholder {
    opacity: 1; }
  input:focus, textarea:focus, select:focus {
    background-color: #999999; }
    input:focus:-ms-input-placeholder, textarea:focus:-ms-input-placeholder, select:focus:-ms-input-placeholder {
      color: #fff; }
    input:focus::placeholder, textarea:focus::placeholder, select:focus::placeholder {
      color: #fff; }
  input.error, textarea.error, select.error {
    border-color: red; }

a.button {
  display: block;
  overflow: hidden;
  width: 130px;
  font-family: "Abel", sans-serif;
  color: #ed1c24;
  border: 2px solid;
  border-color: #ed1c24;
  background: transparent;
  vertical-align: middle;
  position: relative;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  -moz-osx-font-smoothing: grayscale;
  cursor: pointer;
  text-align: center; }
  a.button:before, a.button > span {
    transition: transform 0.3s;
    transition-timing-function: ease;
    transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
    padding: 18px 0px; }
  a.button > span {
    display: block;
    vertical-align: middle;
    color: #ed1c24; }
  a.button:before {
    color: #090914;
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #ed1c24;
    transform: translate3d(-100%, 0, 0); }
  a.button:hover:before {
    transform: translate3d(0, 0, 0); }
  a.button:hover > span {
    transform: translate3d(0, 100%, 0); }

select {
  appearance: none;
  background: url("../img/arrow.svg");
  background-repeat: no-repeat;
  background-size: 10px;
  background-position: calc(100% - 12px) center;
  padding-right: 36px; }

input.button:hover {
  background: #fff;
  color: #ed1c24;
  cursor: pointer; }

iframe {
  display: block; }

.grecaptcha-badge {
  opacity: 0; }

.whatsapp-button {
  width: 58px;
  height: 58px;
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 999999; }
  .whatsapp-button .icon {
    transition: all 400ms ease;
    transform: scale(1); }
  .whatsapp-button:hover .icon {
    transform: scale(1.1); }
  @media (min-width: 1024px) {
    .whatsapp-button {
      width: 52px;
      height: 52px;
      bottom: 42px;
      right: 42px; }
      .whatsapp-button .icon {
        filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.4)); } }

.jquery-modal {
  z-index: 13; }
  .jquery-modal .modal {
    padding: 10px;
    border-radius: 0;
    max-width: 80%; }
  @media (min-width: 1200px) {
    .jquery-modal .modal {
      max-width: 65%;
      z-index: 14; }
      .jquery-modal .modal iframe {
        height: 70vh; } }

@media (min-width: 1200px) {
  .come-in {
    transform: translateY(250px);
    animation: come-in 0.8s ease forwards; }
  .come-in:nth-child(odd) {
    animation-duration: 0.6s; }
  .already-visible {
    transform: translateY(0);
    animation: none; } }

@keyframes come-in {
  to {
    transform: translateY(0); } }

.header {
  background: #1a1a1a;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
  -ms-flex-align: center;
      align-items: center;
  width: 100%;
  position: absolute;
  z-index: 11;
  padding: 20px; }
  .header .logo-optimus {
    width: auto;
    height: 35px;
    display: block; }
  .header__toggle {
    width: 27px; }
    .gracias .header__toggle {
      display: none; }
  .header__toggle-line {
    display: block;
    background: #fff;
    width: 100%;
    height: 4px;
    margin-bottom: 4px;
    opacity: 1;
    transition: opacity 600ms ease 200ms, top 300ms ease, left 300ms ease, background 300ms ease, transform 300ms ease 450ms; }
    .header__toggle-line:nth-child(1) {
      transform-origin: center; }
    .header__toggle-line:nth-child(3) {
      transform-origin: center; }
  .header.is-active {
    position: fixed;
    z-index: 12; }
    .header.is-active .header__toggle-line:nth-child(1) {
      transform: translateY(8px) rotate(45deg);
      /*background: $white;*/ }
    .header.is-active .header__toggle-line:nth-child(2) {
      /*background: $white;*/
      opacity: 0; }
    .header.is-active .header__toggle-line:nth-child(3) {
      transform: translateY(-8px) rotate(-45deg);
      /*background: $white;*/ }
    .header.is-active .button__rayen {
      display: none; }
  .header.fixed {
    padding: 12px 18px;
    position: fixed;
    animation: headerFix .5s ease-out; }
  @media (min-width: 1024px) {
    .header {
      padding: 12px 30px; }
      .header .logo-optimus {
        width: 140px;
        height: auto; }
      .header__toggle {
        display: none; }
      .header.fixed {
        position: absolute; }
      .header.is-active {
        position: absolute;
        z-index: 10; } }
  @media (min-width: 1200px) {
    .header .logo-optimus {
      width: 160px; } }

section.menu {
  background: #fff;
  position: fixed;
  top: 0;
  left: 100%;
  z-index: 12;
  width: 100%;
  height: 100%;
  opacity: 0;
  padding-top: 80px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-align: center;
      align-items: center;
  transition: opacity 400ms ease, left 100ms ease 600ms;
  pointer-events: none; }
  section.menu.is-visible {
    left: 0;
    opacity: 1;
    transition: left 100ms ease, opacity 400ms ease 200ms;
    overflow: hidden; }
  section.menu .menu-inner {
    margin: 0;
    text-align: center;
    width: 70%; }
    section.menu .menu-inner .menu-list {
      list-style: none;
      margin: 0;
      padding: 0; }
      section.menu .menu-inner .menu-list li {
        font-size: 22px;
        margin-bottom: 22px; }
        section.menu .menu-inner .menu-list li span {
          line-height: 38px; }
        section.menu .menu-inner .menu-list li a {
          line-height: 38px;
          color: #090914;
          font-family: "Abel", sans-serif;
          pointer-events: auto; }
  .gracias section.menu {
    display: none; }
  @media (max-width: 767px) and (orientation: landscape) {
    section.menu .menu-inner .menu-list li {
      margin-bottom: 0;
      padding: 10px 0; } }
  @media (min-width: 1024px) {
    section.menu {
      position: absolute;
      left: 0;
      top: 23px;
      z-index: 12;
      opacity: 1;
      background: none;
      padding: 0;
      padding-right: 20px;
      height: auto;
      -ms-flex-direction: row;
          flex-direction: row;
      -ms-flex-align: center;
          align-items: center;
      -ms-flex-pack: end;
          justify-content: flex-end; }
      section.menu .menu-inner {
        display: -ms-flexbox;
        display: flex;
        width: initial; }
        section.menu .menu-inner .menu-list {
          display: -ms-flexbox;
          display: flex; }
          section.menu .menu-inner .menu-list li {
            font-size: 16px;
            line-height: 1.6;
            margin: 0;
            padding: 0; }
            section.menu .menu-inner .menu-list li a {
              color: #fff;
              line-height: 32px;
              padding: 0 10px;
              transition: color 400ms ease; }
              section.menu .menu-inner .menu-list li a:hover {
                color: #ed1c24; }
      section.menu.fixed {
        top: 0;
        padding: 14px 20px;
        background: #1a1a1a url("../img/logo-optimus.svg") no-repeat 20px center;
        background-size: 100px;
        background-position: 20px;
        position: fixed;
        animation: headerFix .5s ease-out; } }
  @media (min-width: 1200px) {
    section.menu {
      padding-right: 20px;
      top: 25px; }
      section.menu .menu-inner .menu-list li a {
        padding: 0 20px !important; }
      section.menu.fixed {
        padding: 20px;
        background-size: 140px; } }

@keyframes headerFix {
  0% {
    top: -100px; }
  100% {
    top: 0; } }

@keyframes headerFixModel {
  0% {
    top: 0px; }
  100% {
    top: 72; } }

.footer {
  background: linear-gradient(rgba(0, 0, 0, 0.9)), url("../img/bg-footer.jpg") no-repeat;
  background-size: cover;
  padding: 60px; }
  .footer .logo-footer {
    width: 140px;
    margin: 0 auto 48px; }
  .footer .nav-social {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    width: 120px;
    margin: auto; }
    .footer .nav-social .icon {
      width: 42px;
      height: 42px; }
  .footer_us {
    padding: 6px;
    text-align: center;
    margin: 0;
    background: #000; }
    .footer_us a {
      font-size: 14px;
      color: #fff;
      transition: all .3s ease; }
      .footer_us a:hover {
        color: #1a1a1a; }
  @media (min-width: 1024px) {
    .footer {
      padding: 90px 0; }
      .footer .logo-footer {
        width: 140px;
        margin: 0 auto 36px; }
      .footer .nav-social {
        width: 100px; }
        .footer .nav-social .icon {
          width: 28px;
          height: 28px; } }
  @media (min-width: 1200px) {
    .footer {
      padding: 60px; }
      .footer .address {
        margin: 0; }
        .footer .address a {
          background-size: contain;
          padding: 8px 0 8px 52px;
          transition: all .3s ease; }
          .footer .address a:hover.phone {
            color: red; }
          .footer .address a:hover.mail {
            color: red; }
      .footer .icon {
        transition: all .3s ease; }
        .footer .icon:hover {
          fill: #1a1a1a; } }

video {
  object-fit: cover;
  width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1; }
  @media (min-width: 1024px) {
    video {
      display: block; } }

.hero {
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.8) 55%, rgba(0, 0, 0, 0) 70%);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding: 66px 20px 0px;
  min-height: 100vh;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: center;
      justify-content: center;
  -ms-flex-align: center;
      align-items: center; }
  .hero h1 {
    color: rgba(255, 255, 255, 0.6);
    text-align: center;
    font-size: 22px;
    animation: slide-in-left 0.3s cubic-bezier(0.39, 0.575, 0.565, 1) both 0.4s;
    letter-spacing: 8px; }
    .hero h1 span {
      color: #ed1c24;
      font-size: 42px;
      display: block; }
  .hero .button {
    width: 210px;
    color: #fff;
    border-color: #fff; }
    .hero .button > span {
      color: #fff; }
    .hero .button:before {
      color: #090914;
      background-color: #fff; }
  .hero.modelo {
    background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.8)), url("../img/hero-modelo-417-m.jpg"); }
    .hero.modelo h1 {
      color: #ed1c24;
      font-size: 42px;
      margin-bottom: 60px; }
      .hero.modelo h1 span {
        color: #fff; }
  .hero.error, .hero.gracias {
    -ms-flex-align: center;
        align-items: center; }
    .hero.error h1, .hero.gracias h1 {
      color: #fff;
      font-size: 28px;
      letter-spacing: 0;
      text-align: left; }
  @media (min-width: 1024px) {
    .hero {
      background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.8) 70%);
      padding: 90px 60px 0 50%; }
      .hero h1 span {
        display: block; }
      .hero.modelo {
        background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.8) 90%), url("../img/hero-modelo-417.jpg"); }
      .hero.error, .hero.gracias {
        background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.8)), url("../img/hero.jpg"); } }
  @media (min-width: 1200px) {
    .hero h1 {
      font-size: 28px;
      letter-spacing: 16px; }
      .hero h1 span {
        font-size: 56px; }
    .hero.error h1, .hero.gracias h1 {
      font-size: 42px; } }
  @media (min-width: 1440px) {
    .hero {
      background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.8) 70%); }
      .hero.modelo {
        background-image: linear-gradient(to right, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, 0.8) 90%), url("../img/hero-modelo-417-h.jpg"); }
        .hero.modelo h1 {
          font-size: 60px; }
      .hero.error, .hero.gracias {
        background-image: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.8)), url("../img/hero-h.jpg"); } }

@keyframes slide-in-left {
  0% {
    transform: translateX(-20px);
    opacity: 0; }
  100% {
    transform: translateX(0);
    opacity: 1; } }

.history {
  background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url("../img/bg-history-m.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding: 40px 20px 80%;
  color: #fff; }
  .history h2 {
    font-size: 22px;
    letter-spacing: 8px;
    margin-bottom: 26px; }
    .history h2 span {
      font-size: 42px;
      display: block; }
  @media (min-width: 768px) {
    .history {
      background-image: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url("../img/bg-history.jpg"); } }
  @media (min-width: 1024px) {
    .history {
      background-image: linear-gradient(to right, rgba(0, 0, 0, 0.6) 40%, rgba(0, 0, 0, 0) 70%), url("../img/bg-history.jpg");
      display: -ms-flexbox;
      display: flex;
      height: 70vh;
      padding: 0 90px; }
      .history article {
        max-width: 1180px;
        margin: auto;
        padding-right: 60%; } }
  @media (min-width: 1200px) {
    .history h2 {
      font-size: 28px;
      letter-spacing: 16px; }
      .history h2 span {
        font-size: 56px; }
    .history article {
      padding-right: 50%; } }

.us {
  background-color: #000;
  color: #999999;
  padding: 60px 20px;
  text-align: center; }
  .us h2 {
    font-size: 22px;
    background: url("../img/bg-us-h2.png") no-repeat center top;
    background-size: 38px;
    padding-top: 42px;
    color: #ed1c24;
    margin-bottom: 18px;
    letter-spacing: 8px; }
  .us p {
    max-width: 660px;
    margin: 0 auto 12px; }
    .us p:last-child {
      margin: 0 auto; }
  .us .swiper-container-us {
    position: relative;
    width: 70%;
    margin: 0 auto 42px; }
    .us .swiper-container-us .swiper {
      overflow: hidden; }
    .us .swiper-container-us picture img {
      transition: 0.2s linear;
      cursor: pointer; }
    .us .swiper-container-us picture:hover img {
      transform: scale(1.05); }
    .us .swiper-container-us .swiper-button:after {
      content: none; }
    .us .swiper-container-us .swiper-button-prev {
      left: -40px; }
      .us .swiper-container-us .swiper-button-prev svg {
        transform: rotate(0.5turn); }
    .us .swiper-container-us .swiper-button-next {
      right: -40px; }
  .us .popup-image {
    position: fixed;
    background-color: rgba(0, 0, 0, 0.9);
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    z-index: 100;
    display: none; }
    .us .popup-image span {
      position: absolute;
      top: 10px;
      right: 20px;
      font-size: 60px;
      font-weight: 800;
      color: #fff;
      cursor: pointer;
      z-index: inherit; }
    .us .popup-image img {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      border: 5px solid #fff;
      border-radius: 5px;
      width: 90%;
      object-fit: cover; }
  .us.press {
    display: none; }
    .us.press .swiper-container-us {
      margin: 42px auto; }
      .us.press .swiper-container-us span {
        display: block;
        color: white;
        line-height: 1.4;
        margin-top: 12px; }
      .us.press .swiper-container-us:hover img {
        transform: none; }
  @media (min-width: 1024px) {
    .us {
      padding: 0 90px 90px;
      background: none;
      position: relative; }
      .us:before {
        content: '';
        background-color: #000;
        width: 100%;
        height: 100%;
        position: absolute;
        top: 42px;
        left: 0;
        z-index: -1; }
      .us .swiper-container-us {
        margin-top: -42px;
        max-width: 1180px;
        width: 100%; }
        .us .swiper-container-us .swiper-button svg {
          width: 22px; }
      .us.press {
        padding: 90px 110px 90px;
        background: #000; }
        .us.press:before {
          content: none; }
        .us.press picture {
          position: relative; }
          .us.press picture span {
            position: absolute;
            bottom: 0;
            left: 0;
            text-align: left;
            padding: 0 12px 12px; }
          .us.press picture:before {
            content: '';
            background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 20%, rgba(0, 0, 0, 0));
            position: absolute;
            bottom: 0;
            height: 60%;
            z-index: 0;
            left: 0;
            width: 100%;
            pointer-events: none; }
        .us.press .swiper-container-us {
          margin: 68px auto 0; } }
  @media (min-width: 1200px) {
    .us h2 {
      font-size: 34px; }
    .us .swiper-container-us {
      margin-bottom: 82px; }
    .us .popup-image img {
      width: 1024px; }
    .us.press picture span {
      padding: 0 26px 20px; } }

.product {
  background: url("../img/bg-kit-m.jpg") no-repeat bottom;
  background-size: cover;
  color: #fff;
  padding: 40px 20px 80%; }
  .product h2 {
    color: #ed1c24;
    margin-bottom: 36px;
    letter-spacing: 8px; }
  .product .button {
    margin-top: 42px; }
  .product.postventa {
    background-image: url("../img/bg-postventa-m.jpg"); }
  @media (min-width: 1024px) {
    .product {
      background-image: url("../img/bg-kit.jpg");
      display: -ms-flexbox;
      display: flex;
      padding: 30px 90px; }
      .product article {
        max-width: 1180px;
        margin: auto;
        padding-right: 40%; }
      .product.postventa {
        background-image: url("../img/bg-postventa.jpg"); }
        .product.postventa article {
          padding: 0 0 0 40%; } }
  @media (min-width: 1200px) {
    .product {
      height: 85vh; } }
  @media (min-width: 1440px) {
    .product {
      background-image: url("../img/bg-kit-h.jpg"); }
      .product.postventa {
        background-image: url("../img/bg-postventa-h.jpg"); } }

.contact {
  text-align: center;
  color: #fff;
  font-family: "Abel", sans-serif;
  font-size: 18px;
  background-color: #ed1c24; }
  .contact .wrapper {
    padding: 60px 20px; }
  .contact h2 {
    font-size: 42px;
    letter-spacing: 8px;
    margin-bottom: 26px; }
  .contact strong {
    display: block; }
  .contact a {
    color: #fff;
    text-decoration: underline; }
    .contact a:hover {
      text-decoration: none; }
  .contact p {
    margin-bottom: 28px; }
    .contact p:last-child {
      margin: 0; }
  .contact #formContactBottom {
    margin: 64px 0; }
    .contact #formContactBottom .button {
      margin: 0 auto;
      width: 180px; }
  @media (min-width: 768px) {
    .contact {
      -ms-flex-align: start;
          align-items: start;
      text-align: left; }
      .contact .wrapper {
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: auto 60%;
            grid-template-columns: auto 60%;
        gap: 30px; }
      .contact #formContactBottom {
        margin: 0; } }
  @media (min-width: 1024px) {
    .contact .wrapper {
      padding: 90px; }
    .contact h2 {
      margin-bottom: 12px; }
    .contact p {
      margin-bottom: 12px; }
    .contact #formContactBottom {
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: (1fr)[2];
          grid-template-columns: repeat(2, 1fr);
      gap: 16px;
      -ms-grid-row-align: center;
          align-self: center; }
      .contact #formContactBottom input, .contact #formContactBottom textarea, .contact #formContactBottom select {
        margin: 0; }
      .contact #formContactBottom textarea {
        grid-column: 1 / 3; }
      .contact #formContactBottom .button {
        margin: 28px 0 0; } }
  @media (min-width: 1440px) {
    .contact .wrapper {
      max-width: 1180px;
      margin: auto;
      width: 100%;
      padding: 100px 0; }
    .contact h2 {
      font-size: 54px; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxzL19iYXNlLnNjc3MiLCJ1dGlscy9fdmFyaWFibGVzLnNjc3MiLCJ1dGlscy9fbWl4aW5zLnNjc3MiLCJ1dGlscy9fc2Nyb2xsYm94LnNjc3MiLCJsYXlvdXRzL19oZWFkZXIuc2NzcyIsImxheW91dHMvX2Zvb3Rlci5zY3NzIiwibW9kdWxlcy9faGVyby5zY3NzIiwibW9kdWxlcy9fY29udGVudC5zY3NzIiwibW9kdWxlcy9fY29udGFjdC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQXVCLHVCQUFzQixFQUFJOztBQUVqRDs7O0VBR0U7QUFFRjs7OztFQUlDLFVBQVM7RUFDVCxXQUFVO0VBQ1YsVUFBUztFQUNULGdCQUFlO0VBQ2YsY0FBYTtFQUNiLHlCQUF3QixFQUN4Qjs7QUFDRDtFQUNDLGVBQWM7RUFDZCxZQUFXLEVBQ1g7O0FBQ0Q7RUFDQyw4QkN0QjhCO0VEdUI5QixpQkFBZ0IsRUFDaEI7O0FBQ0Q7RUFDQyxpQkFBZ0IsRUFDaEI7O0FBQ0QsaURBQWlEO0FBQ2pEO0VBQ0MsZUFBYyxFQUNkOztBQUNEO0VBQ0Msd0NDaENtQztFRGlDbkMsZUM1QmE7RUQ2QmIsaUJBQWdCO0VBQ2hCLG1CQUFrQixFQUNsQjs7QUFDRDtFQUNDLHNCQUFxQixFQUNyQjs7QUFDRDtFQUNDLGlCQUFnQjtFQUNoQixvQkFBbUIsRUFTbkI7RUFYRDtJQUtFLG1CQUFrQixFQUNsQjtFQU5GO0lBU0UsVUFBUyxFQUNUOztBQUVGO0VBQ0MsaUJBQWdCLEVBQ2hCOztBQUNEO0VBQ0MsZUFBYztFQUNkLFlBQVc7RUFDWCx3QkFBdUI7RUFDdkIsY0FBYTtFQUNiLG9CQUFtQjtFQUNuQix1QkFBd0I7RUFDeEIsWUMzRFc7RUQ0RFgsZ0NDaEU4QjtFRGlFOUIsZ0JBQWU7RUFDZixnQ0FBK0IsRUFrQi9CO0VBNUJEO0lBYUUsWUNqRVUsRURrRVY7RUFkRjtJQWFFLFlDakVVLEVEa0VWO0VBZEY7SUFnQkcsV0FBVSxFQUNYO0VBakJGO0lBbUJFLDBCQ2pF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a0IsRUFhckI7TUE3RlQ7UUFtRmdCLFVBQVMsRUFDWjtNQXBGYjtRQXVGZ0IsbUJBQWtCLEVBQ3JCO01BeEZiO1FBMkZnQixpQkFBZ0IsRUFDbkIsRUFBQTtFTnZGWDtJTUxGO01BbUdZLGtCQUFpQjtNQUNqQixhQUFZO01BQ1osWUFBVztNQUNYLGlCQUFnQixFQUNuQjtJQXZHVDtNQTBHWSxnQkFBZSxFQUNsQixFQUFBIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XHJcblxyXG4vKiBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0LyBcclxuICAgdjIuMCB8IDIwMTEwMTI2XHJcbiAgIExpY2Vuc2U6IG5vbmUgKHB1YmxpYyBkb21haW4pXHJcbiovXHJcblxyXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxyXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXHJcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcclxubWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XHJcblx0bWFyZ2luOiAwO1xyXG5cdHBhZGRpbmc6IDA7XHJcblx0Ym9yZGVyOiAwO1xyXG5cdGZvbnQtc2l6ZTogMTAwJTtcclxuXHRmb250OiBpbmhlcml0O1xyXG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5pbWcge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG59XHJcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xyXG5cdGZvbnQ6IDMycHggJGZvbnQtdGl0bGU7XHJcblx0bGluZS1oZWlnaHQ6IDEuNDtcclxufVxyXG51bCwgbGkge1xyXG5cdGxpc3Qtc3R5bGU6IG5vbmU7XHJcbn1cclxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xyXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN2ZywgcGljdHVyZSB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcbn1cclxuYm9keSB7XHJcblx0Zm9udDogNDAwIDE2cHggJGZvbnQtYmFzZTtcclxuXHRjb2xvcjogJGJsdWU7XHJcblx0bGluZS1oZWlnaHQ6IDEuMjtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuYSB7XHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG59XHJcbnAge1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XHJcblx0bWFyZ2luLWJvdHRvbTogMTJweDtcclxuXHRcclxuXHRlbSB7XHJcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XHJcblx0fVxyXG5cclxuXHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdH1cclxufVxyXG5zdHJvbmcge1xyXG5cdGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xyXG5cdGRpc3BsYXk6IGJsb2NrO1xyXG5cdHdpZHRoOiAxMDAlO1x0XHJcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcblx0cGFkZGluZzogMTZweDtcclxuXHRtYXJnaW4tYm90dG9tOiAyNHB4O1xyXG5cdGJvcmRlcjogMXB4ICR3aGl0ZSBzb2xpZDtcclxuXHRjb2xvcjogJHdoaXRlO1xyXG5cdGZvbnQtZmFtaWx5OiAkZm9udC10aXRsZTtcclxuXHRmb250LXNpemU6IDE2cHg7XHJcblx0dHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluLW91dDtcclxuXHRcclxuXHQmOjpwbGFjZWhvbGRlciB7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdH1cdFxyXG5cdCY6Oi1tb3otcGxhY2Vob2xkZXIge1xyXG5cdCAgb3BhY2l0eTogMTtcclxuXHR9XHJcblx0Jjpmb2N1cyB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleS1saWdodDsgXHJcblxyXG5cdFx0Jjo6cGxhY2Vob2xkZXIge1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLmVycm9yIHtcclxuXHRcdGJvcmRlci1jb2xvcjpyZWQ7XHJcblx0fVxyXG59XHJcbmEuYnV0dG9uIHtcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHRvdmVyZmxvdzogaGlkZGVuO1x0XHJcblx0Ly8gcGFkZGluZzogMThweCAwcHg7XHJcblx0d2lkdGg6IDEzMHB4O1xyXG5cdGZvbnQtZmFtaWx5OiAkZm9udC10aXRsZTtcclxuXHRjb2xvcjogJGdvbGQ7XHJcblx0Ym9yZGVyOiAycHggc29saWQ7XHJcblx0Ym9yZGVyLWNvbG9yOiAkZ29sZDtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG4gXHJcblx0JjpiZWZvcmUsICYgPiBzcGFuIHtcclxuXHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xyXG5cdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XHJcblx0XHR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzUsIDAsIDAuMTI1LCAxKTtcclxuXHRcdHBhZGRpbmc6IDE4cHggMHB4O1xyXG5cdH0gICAgXHJcblx0XHJcblx0JiA+IHNwYW4ge1xyXG5cdCAgICBkaXNwbGF5OiBibG9jaztcclxuXHQgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdGNvbG9yOiAkZ29sZDtcclxuXHR9XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbG9yOiAkYmx1ZS1kYXJrO1xyXG5cdFx0Y29udGVudDogYXR0cihkYXRhLXRleHQpO1xyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0dG9wOiAwO1xyXG5cdFx0bGVmdDogMDtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0YmFja2dyb3VuZDogJGdvbGQ7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcclxuXHRcdC8vIHBhZGRpbmc6IDVweCAwcHg7XHQgICAgXHJcblxyXG5cdH1cclxuXHJcblx0Jjpob3ZlciB7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0ICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XHJcblx0XHR9XHJcblx0XHQmID4gc3BhbiB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5zZWxlY3Qge1xyXG5cdGFwcGVhcmFuY2U6IG5vbmU7XHJcblx0YmFja2dyb3VuZDogdXJsKCcuLi9pbWcvYXJyb3cuc3ZnJyk7XHJcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IDEwcHg7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMTJweCkgY2VudGVyO1xyXG5cdHBhZGRpbmctcmlnaHQ6IDM2cHg7IFxyXG59XHJcblxyXG5pbnB1dC5idXR0b24ge1xyXG5cclxuXHQmOmhvdmVyIHtcclxuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRcdGNvbG9yOiAkZ29sZDtcclxuXHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHR9XHJcbn1cclxuXHJcbmlmcmFtZSB7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbi5ncmVjYXB0Y2hhLWJhZGdlIHtcclxuXHRvcGFjaXR5OiAwO1xyXG59XHJcblxyXG4ud2hhdHNhcHAtYnV0dG9uIHtcclxuXHR3aWR0aDogNThweDtcclxuXHRoZWlnaHQ6IDU4cHg7XHJcblx0cG9zaXRpb246IGZpeGVkO1xyXG5cdGJvdHRvbTogMzBweDtcclxuXHRyaWdodDogMzBweDtcclxuXHR6LWluZGV4OiA5OTk5OTk7IFxyXG5cclxuXHQuaWNvbiB7XHJcblx0XHR0cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZTtcclxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcblx0fVxyXG5cclxuICAgICY6aG92ZXIgLmljb24ge1xyXG4gICAgXHR0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgICB9XHRcdFxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHR3aWR0aDogNTJweDtcclxuXHRcdGhlaWdodDogNTJweDtcclxuXHRcdGJvdHRvbTogNDJweDtcclxuXHRcdHJpZ2h0OiA0MnB4O1xyXG5cclxuXHRcdC5pY29uIHtcclxuXHRcdFx0ZmlsdGVyOiBkcm9wLXNoYWRvdygycHggMnB4IDRweCByZ2JhKDAsMCwwLC40KSk7XHJcblx0XHR9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5qcXVlcnktbW9kYWwge1xyXG5cdHotaW5kZXg6IDEzO1xyXG5cclxuXHQubW9kYWwge1xyXG5cdFx0cGFkZGluZzogMTBweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRtYXgtd2lkdGg6IDgwJTtcclxuXHR9XHJcblx0XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuXHRcdFxyXG5cdFx0Lm1vZGFsIHtcclxuXHRcdFx0bWF4LXdpZHRoOiA2NSU7XHJcblx0XHRcdHotaW5kZXg6IDE0O1xyXG5cclxuXHRcdFx0aWZyYW1lIHtcclxuXHRcdFx0XHRoZWlnaHQ6IDcwdmg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn0gIiwiLy8gRm9udHNcclxuJGZvbnQtdGl0bGU6ICdBYmVsJywgc2Fucy1zZXJpZjtcclxuJGZvbnQtYmFzZTpcdCdNb250c2VycmF0Jywgc2Fucy1zZXJpZjtcclxuXHJcbi8vIENvbG9yc1xyXG4kd2hpdGU6ICNmZmY7XHJcbiRibGFjazogIzAwMDtcclxuJGJsdWU6ICMxYTFhMWE7XHJcbiRibHVlLWRhcms6ICMwOTA5MTQ7XHJcbiRnb2xkOiAjZWQxYzI0O1xyXG4kZ3JleTogIzRkNGQ0ZDtcclxuJGdyZXktbGlnaHQ6ICM5OTk5OTk7XHJcbiRncmV5LWRhcms6ICMxYTFhMWE7IiwiQG1peGluIGJyZWFrcG9pbnQoJHBvaW50KSB7XHJcblx0QGlmICRwb2ludCA9PSBiaWdkZXNrdG9wIHtcclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHsgQGNvbnRlbnQgOyB9XHJcblx0fVxyXG5cdEBpZiAkcG9pbnQgPT0gZGVza3RvcCB7XHJcblx0XHRAbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7IEBjb250ZW50IDsgfVxyXG5cdH1cclxuXHRAZWxzZSBpZiAkcG9pbnQgPT0gbGFwdG9wIHtcclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsgQGNvbnRlbnQgOyB9XHJcblx0fVxyXG5cdEBlbHNlIGlmICRwb2ludCA9PSB0YWJsZXQge1xyXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IHBoYWJsZXQge1xyXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSAgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IG1vYmlsZWxhbmRzY2FwZSB7XHJcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IG1vYmlsZW9ubHkge1xyXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSAgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IG1vYmlsZXNtYWxsIHtcclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDc2NnB4KSAgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblxyXG59IiwiQGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuICAgICAgICBcclxuICAgIC5jb21lLWluIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwcHgpO1xyXG4gICAgICAgIGFuaW1hdGlvbjogY29tZS1pbiAwLjhzIGVhc2UgZm9yd2FyZHM7XHJcbiAgICB9XHJcbiAgICAuY29tZS1pbjpudGgtY2hpbGQob2RkKSB7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjZzO1xyXG4gICAgfVxyXG4gICAgLmFscmVhZHktdmlzaWJsZSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBjb21lLWluIHtcclxuICAgIHRvIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XHJcbn0iLCIuaGVhZGVyIHtcclxuXHRiYWNrZ3JvdW5kOiAkYmx1ZTsgXHJcblx0ZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0ei1pbmRleDogMTE7XHJcblx0cGFkZGluZzogMjBweDtcclxuXHRcclxuXHQubG9nby1vcHRpbXVzIHtcclxuXHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0aGVpZ2h0OiAzNXB4O1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0fVxyXG5cclxuXHQmX190b2dnbGUge1xyXG5cdCAgICB3aWR0aDogMjdweDtcclxuXHJcblx0ICAgIC5ncmFjaWFzICYge1xyXG5cdCAgICBcdGRpc3BsYXk6IG5vbmU7XHJcblx0ICAgIH1cclxuXHR9XHJcblxyXG5cdCZfX3RvZ2dsZS1saW5lIHtcclxuXHQgICAgZGlzcGxheTogYmxvY2s7XHJcblx0ICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHQgICAgd2lkdGg6IDEwMCU7XHJcblx0ICAgIGhlaWdodDogNHB4O1xyXG5cdCAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcblx0ICAgIG9wYWNpdHk6IDE7IFxyXG5cdCAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDYwMG1zIGVhc2UgMjAwbXMsIHRvcCAzMDBtcyBlYXNlLCBsZWZ0IDMwMG1zIGVhc2UsIGJhY2tncm91bmQgMzAwbXMgZWFzZSwgdHJhbnNmb3JtIDMwMG1zIGVhc2UgNDUwbXM7ICAgIFxyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCgxKSB7XHJcblx0XHQgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xyXG5cdFx0fVxyXG5cdFx0JjpudGgtY2hpbGQoMykge1xyXG5cdFx0ICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuXHRcdH1cclxuXHR9ICAgIFxyXG5cclxuXHQmLmlzLWFjdGl2ZSB7XHJcblx0ICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuXHQgICAgei1pbmRleDogMTI7XHJcblx0XHRcclxuXHRcdC5oZWFkZXJfX3RvZ2dsZS1saW5lIHtcclxuXHJcblx0XHRcdCY6bnRoLWNoaWxkKDEpIHtcclxuXHRcdFx0ICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdCAgICAvKmJhY2tncm91bmQ6ICR3aGl0ZTsqL1xyXG5cdFx0XHR9XHJcblx0XHRcdCY6bnRoLWNoaWxkKDIpIHtcclxuXHRcdFx0ICAgIC8qYmFja2dyb3VuZDogJHdoaXRlOyovXHJcblx0XHRcdCAgICBvcGFjaXR5OiAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdCY6bnRoLWNoaWxkKDMpIHtcclxuXHRcdFx0ICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSByb3RhdGUoLTQ1ZGVnKTtcclxuXHRcdFx0ICAgIC8qYmFja2dyb3VuZDogJHdoaXRlOyovXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuYnV0dG9uX19yYXllbntcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuZml4ZWQge1xyXG5cdCAgICBwYWRkaW5nOiAxMnB4IDE4cHg7XHJcblx0ICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuXHQgICAgYW5pbWF0aW9uOiBoZWFkZXJGaXggLjVzIGVhc2Utb3V0O1xyXG5cdH1cdFxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0cGFkZGluZzogMTJweCAzMHB4O1xyXG5cclxuXHRcdC5sb2dvLW9wdGltdXMge1x0XHRcdFxyXG5cdFx0XHR3aWR0aDogMTQwcHg7XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jl9fdG9nZ2xlIHtcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cdFx0XHJcblx0XHRcclxuXHRcdCYuZml4ZWQge1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuaXMtYWN0aXZlIHtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ICAgIHotaW5kZXg6IDEwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcHRvcCkge1xyXG5cdFx0XHRcclxuXHRcdC5sb2dvLW9wdGltdXMge1xyXG5cdFx0XHR3aWR0aDogMTYwcHg7IFxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuc2VjdGlvbi5tZW51IHtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDEwMCU7XHJcbiAgICB6LWluZGV4OiAxMjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgb3BhY2l0eTogMDsgIFxyXG4gICAgcGFkZGluZy10b3A6IDgwcHg7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2UsIGxlZnQgMTAwbXMgZWFzZSA2MDBtcztcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFxyXG5cdCYuaXMtdmlzaWJsZSB7XHJcblx0ICAgIGxlZnQ6IDA7XHJcblx0ICAgIG9wYWNpdHk6IDE7XHJcblx0ICAgIHRyYW5zaXRpb246IGxlZnQgMTAwbXMgZWFzZSwgb3BhY2l0eSA0MDBtcyBlYXNlIDIwMG1zO1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHR9XHJcbiBcdFxyXG5cdC5tZW51LWlubmVyIHtcclxuXHQgICAgbWFyZ2luOiAwO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0d2lkdGg6NzAlO1xyXG5cdFx0XHJcblx0XHQubWVudS1saXN0IHtcclxuXHRcdCAgICBsaXN0LXN0eWxlOiBub25lO1xyXG5cdFx0ICAgIG1hcmdpbjogMDtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0XHJcblx0XHRcdGxpIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRcdCAgICBtYXJnaW4tYm90dG9tOiAyMnB4O1xyXG5cdFx0XHQgICAgXHJcblx0XHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0ICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHQgICAgbGluZS1oZWlnaHQ6IDM4cHg7XHJcblx0XHRcdFx0XHRjb2xvcjogJGJsdWUtZGFyaztcclxuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAkZm9udC10aXRsZTtcclxuXHRcdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmdyYWNpYXMgJiB7IGRpc3BsYXk6IG5vbmU7fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZWxhbmRzY2FwZSkge1xyXG5cclxuXHRcdC5tZW51LWlubmVyIC5tZW51LWxpc3Qge1xyXG5cclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRcdFx0cGFkZGluZzoxMHB4IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0dG9wOiAyM3B4O1xyXG5cdFx0ei1pbmRleDogMTI7XHJcblx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0YmFja2dyb3VuZDogbm9uZTtcclxuXHRcdHBhZGRpbmc6IDA7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xyXG5cdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG5cdFx0XHJcblx0XHQubWVudS1pbm5lciB7XHJcblx0XHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdHdpZHRoOmluaXRpYWw7XHJcblx0XHRcdFxyXG5cdFx0XHQubWVudS1saXN0IHtcclxuXHRcdFx0ICAgIGRpc3BsYXk6IGZsZXg7XHJcblx0XHRcdCAgICBcclxuXHRcdFx0XHRsaSB7XHJcblx0XHRcdFx0ICAgIGZvbnQtc2l6ZTogMTZweDsgICBcclxuXHRcdFx0XHQgICAgbGluZS1oZWlnaHQ6IDEuNjtcclxuXHRcdFx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRcdFx0ICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG5cdFx0XHRcdFx0ICAgIHBhZGRpbmc6IDAgMTBweDtcclxuXHRcdFx0XHRcdCAgICB0cmFuc2l0aW9uOiBjb2xvciA0MDBtcyBlYXNlO1xyXG5cdFx0XHRcdFx0ICAgIFxyXG5cdFx0XHRcdFx0ICAgICY6aG92ZXIge1xyXG5cdFx0XHRcdFx0ICAgIFx0Y29sb3I6ICRnb2xkOyBcclxuXHRcdFx0XHRcdCAgICB9IFxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmLmZpeGVkIHtcclxuXHRcdCAgICB0b3A6IDA7XHJcblx0XHRcdHBhZGRpbmc6IDE0cHggMjBweDtcclxuXHRcdFx0YmFja2dyb3VuZDogJGdyZXktZGFyayB1cmwoJy4uL2ltZy9sb2dvLW9wdGltdXMuc3ZnJykgbm8tcmVwZWF0IDIwcHggY2VudGVyO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMHB4OyBcclxuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xyXG5cdFx0XHRhbmltYXRpb246IGhlYWRlckZpeCAuNXMgZWFzZS1vdXQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFwdG9wKSB7XHRcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcblx0XHR0b3A6IDI1cHg7XHRcdFxyXG5cclxuXHRcdC5tZW51LWlubmVyIHtcclxuXHRcdFx0XHJcblx0XHRcdC5tZW51LWxpc3Qge1xyXG5cdFx0XHQgICAgXHJcblx0XHRcdFx0bGkge1xyXG5cclxuXHRcdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0ICAgIHBhZGRpbmc6IDAgMjBweCAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYuZml4ZWQge1xyXG5cdFx0XHRwYWRkaW5nOiAyMHB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDE0MHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBoZWFkZXJGaXgge1xyXG4gIDAlICAgeyB0b3A6IC0xMDBweDsgfVxyXG4gIDEwMCUgeyB0b3A6IDA7IH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBoZWFkZXJGaXhNb2RlbCB7XHJcbiAgMCUgICB7IHRvcDogMHB4OyB9XHJcbiAgMTAwJSB7IHRvcDogNzI7IH1cclxufSIsIi5mb290ZXIge1xyXG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCggcmdiYSgwLDAsMCwuOSkgKSAsIHVybChcIi4uL2ltZy9iZy1mb290ZXIuanBnXCIpIG5vLXJlcGVhdDtcclxuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdHBhZGRpbmc6IDYwcHg7XHJcblxyXG5cdC5sb2dvLWZvb3RlciB7XHJcblx0XHR3aWR0aDogMTQwcHg7XHJcblx0XHRtYXJnaW46IDAgYXV0byA0OHB4O1xyXG5cdH1cclxuXHJcblx0Lm5hdi1zb2NpYWwge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0d2lkdGg6IDEyMHB4O1xyXG5cdFx0bWFyZ2luOiBhdXRvO1xyXG5cclxuXHRcdC5pY29uIHtcclxuXHRcdFx0d2lkdGg6IDQycHg7XHJcblx0XHRcdGhlaWdodDogNDJweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCZfdXMge1xyXG5cdFx0cGFkZGluZzo2cHg7XHJcblx0ICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHQgICAgbWFyZ2luOiAwO1xyXG5cdFx0YmFja2dyb3VuZDogJGJsYWNrO1xyXG5cclxuXHQgICAgYSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcclxuXHQgICAgXHRjb2xvcjogJHdoaXRlO1xyXG5cdCAgICBcdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxuXHJcblx0ICAgIFx0Jjpob3ZlciB7XHJcblx0ICAgIFx0XHRjb2xvcjogJGJsdWU7XHJcblx0ICAgIFx0fVxyXG5cdCAgICB9XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0cGFkZGluZzogOTBweCAwO1xyXG5cdFxyXG5cdFx0LmxvZ28tZm9vdGVyIHtcclxuXHRcdFx0d2lkdGg6IDE0MHB4O1xyXG5cdFx0XHRtYXJnaW46IDAgYXV0byAzNnB4O1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Lm5hdi1zb2NpYWwge1xyXG5cdFx0XHR3aWR0aDogMTAwcHg7XHJcblx0XHJcblx0XHRcdC5pY29uIHtcclxuXHRcdFx0XHR3aWR0aDogMjhweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDI4cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFwdG9wKSB7XHJcblx0XHRwYWRkaW5nOiA2MHB4O1xyXG5cclxuXHRcdC5hZGRyZXNzIHtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb250YWluO1xyXG5cdFx0XHRcdHBhZGRpbmc6IDhweCAwIDhweCA1MnB4O1xyXG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxuXHJcblx0XHRcdFx0Jjpob3ZlciB7XHJcblxyXG5cdFx0XHRcdFx0Ji5waG9uZSB7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiByZWQ7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Ji5tYWlsIHtcclxuXHRcdFx0XHRcdFx0Y29sb3I6IHJlZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuaWNvbiB7XHJcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTtcclxuXHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdGZpbGw6ICRibHVlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59ICIsInZpZGVvIHtcclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMHZoO1xyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHR6LWluZGV4OiAtMTtcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdH1cclxufVxyXG5cclxuLmhlcm8ge1xyXG5cdGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMCkgNDAlLCByZ2JhKDAsIDAsIDAsIDAuOCkgNTUlLCByZ2JhKDAsIDAsIDAsIDApIDcwJSApO1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IFxyXG5cdHBhZGRpbmc6IDY2cHggMjBweCAwcHg7XHJcblx0bWluLWhlaWdodDogMTAwdmg7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG5cdGgxIHtcclxuXHRcdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRhbmltYXRpb246IHNsaWRlLWluLWxlZnQgLjNzIGN1YmljLWJlemllcigwLjM5MCwgMC41NzUsIDAuNTY1LCAxLjAwMCkgYm90aCAuNHM7IFxyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDhweDtcclxuXHJcblx0XHRzcGFuIHtcclxuXHRcdFx0Y29sb3I6ICRnb2xkO1xyXG5cdFx0XHRmb250LXNpemU6IDQycHg7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmJ1dHRvbiB7XHJcblx0XHR3aWR0aDogMjEwcHg7XHJcblx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAkd2hpdGU7XHJcblx0XHRcclxuXHRcdCYgPiBzcGFuIHtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6ICRibHVlLWRhcms7XHRcdFxyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLm1vZGVsbyB7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjYpLCByZ2JhKDAsIDAsIDAsIDAuOCkpLCB1cmwoJy4uL2ltZy9oZXJvLW1vZGVsby00MTctbS5qcGcnKTtcclxuXHJcblx0XHRoMSB7XHJcblx0XHRcdGNvbG9yOiAkZ29sZDtcclxuXHRcdFx0Zm9udC1zaXplOiA0MnB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiA2MHB4O1xyXG5cclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5lcnJvciwgJi5ncmFjaWFzIHtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRcclxuXHRcdGgxIHtcclxuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcdFx0Zm9udC1zaXplOiAyOHB4O1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMDtcclxuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHRcdH1cclxuXHR9ICBcclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdC8vIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwKSA0NSUsIHJnYmEoMCwgMCwgMCwgMC44KSA3MCUpLCB1cmwoJy4uL2ltZy9oZXJvLmpwZycpO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApIDQ1JSwgcmdiYSgwLCAwLCAwLCAwLjgpIDcwJSk7XHJcblx0XHRwYWRkaW5nOiA5MHB4IDYwcHggMCA1MCU7IFxyXG5cdFx0XHJcblx0XHRoMSB7XHJcblxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYubW9kZWxvIHtcclxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApIDQ1JSwgcmdiYSgwLCAwLCAwLCAwLjgpIDkwJSksIHVybCgnLi4vaW1nL2hlcm8tbW9kZWxvLTQxNy5qcGcnKTtcclxuXHRcdH1cdFx0XHJcblxyXG5cdFx0Ji5lcnJvciwgJi5ncmFjaWFzIHtcdFx0XHRcclxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC42KSwgcmdiYSgwLCAwLCAwLCAwLjgpKSwgdXJsKCcuLi9pbWcvaGVyby5qcGcnKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFwdG9wKSB7XHJcblx0XHRcclxuXHRcdGgxIHtcclxuXHRcdFx0Zm9udC1zaXplOiAyOHB4O1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMTZweDtcclxuXHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogNTZweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYuZXJyb3IsICYuZ3JhY2lhcyB7XHJcblx0XHRcdFxyXG5cdFx0XHRoMSB7XHJcblx0XHRcdFx0Zm9udC1zaXplOiA0MnB4O1xyXG5cdFx0XHR9XHJcblx0XHR9IFxyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChkZXNrdG9wKSB7XHJcblx0XHQvLyBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMCkgNDUlLCByZ2JhKDAsIDAsIDAsIDAuOCkgNzAlKSwgdXJsKCcuLi9pbWcvaGVyby1oLmpwZycpO1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApIDQ1JSwgcmdiYSgwLCAwLCAwLCAwLjgpIDcwJSk7XHJcblxyXG5cclxuXHRcdCYubW9kZWxvIHtcclxuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDApIDQ1JSwgcmdiYSgwLCAwLCAwLCAwLjgpIDkwJSksIHVybCgnLi4vaW1nL2hlcm8tbW9kZWxvLTQxNy1oLmpwZycpO1xyXG5cdFx0XHRcclxuXHRcdFx0aDEge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogNjBweDtcclxuXHRcdFx0fVx0XHRcdFxyXG5cdFx0fVx0XHRcclxuXHJcblx0XHQmLmVycm9yLCAmLmdyYWNpYXMge1x0XHRcdFxyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjYpLCByZ2JhKDAsIDAsIDAsIDAuOCkpLCB1cmwoJy4uL2ltZy9oZXJvLWguanBnJyk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuQGtleWZyYW1lcyBzbGlkZS1pbi1sZWZ0IHtcclxuICAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufSIsIi5oaXN0b3J5IHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuNCksIHJnYmEoMCwgMCwgMCwgMC40KSksIHVybChcIi4uL2ltZy9iZy1oaXN0b3J5LW0uanBnXCIpO1xyXG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcblx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IFxyXG4gICAgcGFkZGluZzogNDBweCAyMHB4IDgwJTsgIFxyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IDhweDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNnB4O1xyXG4gICAgICAgIFxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGZvbnQtc2l6ZTogNDJweDtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjQpLCByZ2JhKDAsIDAsIDAsIDAuNCkpLCB1cmwoXCIuLi9pbWcvYmctaGlzdG9yeS5qcGdcIik7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIC42KSA0MCUsIHJnYmEoMCwgMCwgMCwgMCkgNzAlKSwgdXJsKFwiLi4vaW1nL2JnLWhpc3RvcnkuanBnXCIpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgaGVpZ2h0OiA3MHZoO1xyXG4gICAgICAgIHBhZGRpbmc6IDAgOTBweDsgICAgICAgIFxyXG5cclxuICAgICAgICBhcnRpY2xlIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTgwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bzsgXHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDYwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcHRvcCkge1xyXG5cdFx0XHJcblx0XHRoMiB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMjhweDtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDE2cHg7XHJcblxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDU2cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcbiAgICAgICAgYXJ0aWNsZSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDUwJTtcclxuICAgICAgICB9ICAgICAgICBcclxuXHR9XHJcbn1cclxuXHJcbi51cyB7IFxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrOyBcclxuICAgIGNvbG9yOiAkZ3JleS1saWdodDtcclxuICAgIHBhZGRpbmc6IDYwcHggMjBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2JnLXVzLWgyLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgdG9wO1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMzhweDtcclxuICAgICAgICBwYWRkaW5nLXRvcDogNDJweDtcclxuICAgICAgICBjb2xvcjogJGdvbGQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogOHB4OyAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiA2NjBweDtcclxuICAgICAgICBtYXJnaW46IDAgYXV0byAxMnB4O1xyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICAuc3dpcGVyLWNvbnRhaW5lci11cyB7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHdpZHRoOiA3MCU7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gNDJweDtcclxuICAgICAgICBcclxuICAgICAgICAuc3dpcGVyIHtcclxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICB9IFxyXG4gICAgICAgIFxyXG4gICAgICAgIHBpY3R1cmUge1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4ycyBsaW5lYXI7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAgICAgJjpob3ZlciBpbWcge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gXHJcbiBcclxuICAgICAgICAuc3dpcGVyLWJ1dHRvbiB7XHJcblxyXG4gICAgICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi1wcmV2e1xyXG4gICAgICAgICAgICAgICAgbGVmdDogLTQwcHg7XHJcblxyXG4gICAgICAgICAgICAgICAgc3ZnIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSguNXR1cm4pO1xyXG4gICAgICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLW5leHR7XHJcbiAgICAgICAgICAgICAgICByaWdodDogLTQwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnBvcHVwLWltYWdlIHtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuOSk7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIHotaW5kZXg6IDEwMDtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRvcDogMTBweDtcclxuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogNjBweDtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICAgICAgei1pbmRleDogaW5oZXJpdDtcclxuICAgICAgICB9IFxyXG4gICAgICAgIFxyXG4gICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgICAgICAgIGJvcmRlcjogNXB4IHNvbGlkICNmZmY7XHJcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgICAgICAgd2lkdGg6IDkwJTtcclxuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XHJcbiAgICAgICAgfSAgICBcclxuICAgIH1cclxuXHJcbiAgICAmLnByZXNzIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5zd2lwZXItY29udGFpbmVyLXVzIHtcclxuICAgICAgICAgICAgbWFyZ2luOiA0MnB4IGF1dG87IFxyXG5cclxuICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOmhvdmVyIGltZyB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XHJcbiAgICAgICAgICAgIH0gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiAwIDkwcHggOTBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiA0MnB4O1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5zd2lwZXItY29udGFpbmVyLXVzIHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTQycHg7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTE4MHB4O1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICAgICAgICAgIC5zd2lwZXItYnV0dG9uIHtcclxuXHJcbiAgICAgICAgICAgICAgICBzdmcge1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5wcmVzcyB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDkwcHggMTEwcHggOTBweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUgeyBcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7IFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwaWN0dXJlIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMnB4IDEycHg7ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHJnYmEoMCwgMCwgMCwgLjkpIDIwJSwgcmdiYSgwLCAwLCAwLCAwKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwJTtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5zd2lwZXItY29udGFpbmVyLXVzIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogNjhweCBhdXRvIDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFwdG9wKSB7XHJcblx0XHRcclxuXHRcdGgyIHtcclxuXHRcdFx0Zm9udC1zaXplOiAzNHB4O1xyXG5cdFx0fSAgICAgICBcclxuXHJcbiAgICAgICAgLnN3aXBlci1jb250YWluZXItdXMge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4MnB4OyAgIFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLnBvcHVwLWltYWdlIGltZyB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDI0cHg7XHJcbiAgICAgICAgfSAgICAgICAgXHJcblxyXG4gICAgICAgICYucHJlc3Mge1xyXG5cclxuICAgICAgICAgICAgcGljdHVyZSB7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMjZweCAyMHB4OyAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgfSAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSAgICAgXHJcblx0fVxyXG59XHJcblxyXG4ucHJvZHVjdCB7IFxyXG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvYmcta2l0LW0uanBnJykgbm8tcmVwZWF0IGJvdHRvbTtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgcGFkZGluZzogNDBweCAyMHB4IDgwJTtcclxuICAgIFxyXG4gICAgaDIge1xyXG4gICAgICAgIGNvbG9yOiAkZ29sZDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAzNnB4O1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiA4cHg7ICAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA0MnB4O1xyXG4gICAgfVxyXG5cclxuICAgICYucG9zdHZlbnRhIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9iZy1wb3N0dmVudGEtbS5qcGcnKTtcclxuXHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkgeyAgICAgICAgXHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYmcta2l0LmpwZycpO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgcGFkZGluZzogMzBweCA5MHB4OyAgXHJcblxyXG4gICAgICAgIGFydGljbGUge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDExODBweDtcclxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvOyBcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAmLnBvc3R2ZW50YSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2JnLXBvc3R2ZW50YS5qcGcnKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGFydGljbGUge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgNDAlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuICAgICAgICBoZWlnaHQ6IDg1dmg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgYXJ0aWNsZSB7XHJcbiAgICAgICAgICAgIC8vIHBhZGRpbmctcmlnaHQ6IDUwJTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgJi5wb3N0dmVudGEge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgYXJ0aWNsZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBwYWRkaW5nOiAwIDAgMCA1MCU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9iZy1raXQtaC5qcGcnKTtcclxuXHJcbiAgICAgICAgJi5wb3N0dmVudGEge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9iZy1wb3N0dmVudGEtaC5qcGcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIuY29udGFjdCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LXRpdGxlO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdvbGQ7XHJcbiAgICBcclxuICAgIC53cmFwcGVyIHtcclxuICAgICAgICBwYWRkaW5nOiA2MHB4IDIwcHg7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGgyIHtcclxuICAgICAgICBmb250LXNpemU6IDQycHg7XHJcblx0XHRsZXR0ZXItc3BhY2luZzogOHB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgc3Ryb25nIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICBhIHtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xyXG5cclxuICAgICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICNmb3JtQ29udGFjdEJvdHRvbSB7XHJcbiAgICAgICAgbWFyZ2luOiA2NHB4IDA7XHJcblxyXG5cdFx0LmJ1dHRvbiB7XHJcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgICAgICB3aWR0aDogMTgwcHg7XHJcblx0XHR9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLndyYXBwZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gNjAlO1xyXG4gICAgICAgICAgICBnYXA6IDMwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAjZm9ybUNvbnRhY3RCb3R0b20ge1xyXG4gICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIC53cmFwcGVyIHtcclxuICAgICAgICAgICAgcGFkZGluZzogOTBweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIHAge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICNmb3JtQ29udGFjdEJvdHRvbSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgICAgICAgICAgIGdhcDogMTZweDtcclxuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG5cclxuICAgICAgICAgICAgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0ZXh0YXJlYSB7XHJcbiAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIDM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC5idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAyOHB4IDAgMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgIC53cmFwcGVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTgwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bzsgXHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMDBweCAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDU0cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19 */
