@charset "UTF-8";
*, *: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-optical-sizing: auto;
  font-weight: 700;
  line-height: 1.2; }

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 18px "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  color: #4d4d4d;
  line-height: 1;
  background: #fff;
  position: relative; }

a {
  text-decoration: none;
  transition: all .4s ease; }

p {
  line-height: 1.4; }

strong {
  font-weight: 700; }

a.button {
  display: block;
  font-size: 18px;
  font-weight: 800;
  border: 2px solid;
  border-color: #003366;
  border-radius: 20px;
  color: #fff;
  background: #003366;
  overflow: hidden;
  padding: 0;
  width: 100%;
  vertical-align: middle;
  position: relative;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  -moz-osx-font-smoothing: grayscale;
  cursor: pointer; }
  a.button:before, a.button > span {
    padding: 1em 1.6em;
    transition: transform 0.3s;
    transition-timing-function: ease;
    transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1); }
  a.button > span {
    display: block;
    vertical-align: middle; }
  a.button:before {
    color: #003366;
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    transform: translate3d(-100%, 0, 0); }
  a.button:hover:before {
    transform: translate3d(0, 0, 0); }
  a.button:hover > span {
    transform: translate3d(0, 100%, 0); }
  a.button.dark {
    color: #003366;
    background: #fbd526;
    width: fit-content;
    border-color: #fbd526;
    margin-top: 26px; }
    a.button.dark:before {
      color: #fbd526;
      background-color: #003366; }

h2 {
  font-size: 26px;
  margin-bottom: 32px; }

h3 {
  font-size: 22px;
  margin-bottom: 28px; }

.swiper-button {
  background: none;
  left: 0;
  transform: translateY(-50%); }
  .swiper-button:after {
    content: none !important; }
  .swiper-button .arrow {
    display: block;
    transform: rotate(-0.75turn);
    height: 32px; }
  .swiper-button-next {
    left: auto;
    right: 0; }
    .swiper-button-next .arrow {
      transform: rotate(0.75turn); }

.whatsapp-button {
  width: 48px;
  height: 48px;
  position: fixed;
  bottom: 120px;
  right: 30px;
  z-index: 12; }
  .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)); } }

@media (min-width: 1024px) {
  h2 {
    font-size: 38px;
    margin-bottom: 42px; } }

@media (min-width: 1200px) {
  .scrollbox {
    opacity: 0; }
  .come-in {
    transform: translateY(100px);
    animation: come-in 0.8s ease forwards .6s; }
  .come-in:nth-child(odd) {
    animation-duration: 0.4s; }
  .already-visible {
    opacity: 1;
    transform: translateY(0);
    animation: none; } }

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

.header {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
  -ms-flex-align: end;
      align-items: flex-end;
  background: #fff;
  border-radius: 30px;
  width: calc(100% - 60px);
  padding: 20px 30px;
  position: absolute;
  z-index: 10;
  left: 30px;
  top: 30px; }
  .header .logo {
    width: 180px;
    height: auto;
    display: block; }
  .header__toggle {
    width: 32px; }
  .header__toggle-line {
    display: block;
    background: #fbd526;
    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.fixed {
    position: fixed;
    animation: headerFix .5s ease-out; }
  .header.is-active {
    z-index: 11; }
    .header.is-active .header__toggle-line:nth-child(1) {
      transform: translateY(8px) rotate(45deg);
      background: #e84e26; }
    .header.is-active .header__toggle-line:nth-child(2) {
      background: #e84e26;
      opacity: 0; }
    .header.is-active .header__toggle-line:nth-child(3) {
      transform: translateY(-8px) rotate(-45deg);
      background: #e84e26; }
  @media (min-width: 1024px) {
    .header {
      background: none;
      top: 30px;
      left: 40px; }
      .header__toggle {
        display: none; }
      .header.is-active {
        z-index: 10; } }
  @media (min-width: 1200px) {
    .header .logo {
      width: 240px; } }
  @media (min-width: 1720px) {
    .header {
      padding: 35px 60px 0; } }

section.menu {
  position: fixed;
  top: 0;
  left: 100%;
  z-index: 11;
  width: 100%;
  height: 100%;
  opacity: 0;
  padding-top: 0px;
  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;
  background: #e84e26;
  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-x: scroll; }
  section.menu .menu-inner {
    margin: 0;
    text-align: center; }
    section.menu .menu-inner .menu-list {
      list-style: none;
      margin: 0;
      padding: 0; }
      section.menu .menu-inner .menu-list > li {
        font-size: 32px;
        margin-bottom: 6px; }
        section.menu .menu-inner .menu-list > li a {
          line-height: 38px;
          color: #fff;
          font-weight: 800;
          pointer-events: auto;
          transition: color .3s ease; }
  @media (min-width: 768px) {
    section.menu .menu-inner .menu-list li {
      font-size: 38px; } }
  @media (min-width: 1024px) {
    section.menu {
      position: absolute;
      left: auto;
      right: 40px;
      top: 26px;
      width: 660px;
      z-index: 11;
      opacity: 1;
      background: #fff;
      padding: 0px 36px;
      border-radius: 20px;
      height: 72px;
      -ms-flex-align: stretch;
          align-items: stretch;
      box-shadow: 3px 3px 10px #4d4d4d; }
      section.menu.fixed {
        position: fixed;
        animation: headerFix .5s ease-out; }
      section.menu .menu-inner .menu-list {
        display: -ms-flexbox;
        display: flex;
        width: 100%;
        -ms-flex-pack: distribute;
            justify-content: space-around; }
        section.menu .menu-inner .menu-list li {
          font-size: 18px;
          line-height: 1.6;
          margin: 0; }
          section.menu .menu-inner .menu-list li a {
            color: #003366;
            padding: 0;
            transition: all 400ms ease; } }
  @media (min-width: 1200px) {
    section.menu {
      height: 60px; }
      section.menu .menu-inner .menu-list li a {
        font-size: 18px;
        color: #003366;
        font-weight: 300;
        padding: 0;
        transition: all 400ms ease; }
        section.menu .menu-inner .menu-list li a:hover {
          font-weight: 800; } }

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

.footer {
  background: #fbd526;
  color: #003366;
  padding: 60px 30px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  gap: 30px; }
  .footer .logo {
    width: 220px;
    margin-bottom: 32px; }
  .footer h3 {
    color: #e84e26;
    margin-bottom: 26px; }
  .footer ul li {
    background: url("../img/icon-ig.svg") no-repeat;
    background-size: 32px;
    background-position: 0 center;
    padding-left: 42px;
    margin-bottom: 16px; }
    .footer ul li.in {
      background-image: url("../img/icon-in.svg"); }
    .footer ul li.wsp {
      background-image: url("../img/icon-wsp.svg"); }
    .footer ul li.email {
      background-image: url("../img/icon-email.svg"); }
    .footer ul li.web {
      background-image: url("../img/icon-web.svg"); }
  .footer ul a {
    font-weight: 700;
    line-height: 32px;
    color: #003366; }
    .footer ul a:hover {
      color: #e84e26; }
  @media (min-width: 768px) {
    .footer {
      padding: 60px; } }
  @media (min-width: 1024px) {
    .footer {
      padding: 100px;
      -ms-flex-direction: row;
          flex-direction: row;
      -ms-flex-pack: justify;
          justify-content: space-between; }
      .footer .logo {
        margin-bottom: 38px; }
      .footer h3 {
        font-size: 32px;
        margin-bottom: 38px; } }

.sign {
  text-align: center;
  padding: 22px;
  font-size: 14px; }
  .sign a {
    font-weight: 700;
    color: #4d4d4d; }
    .sign a:hover {
      color: #e84e26; }
  @media (min-width: 1024px) {
    .sign {
      font-size: 16px;
      padding-right: 60px; } }

.hero {
  background: #003366 url("../img/bg-hero.svg") no-repeat 30vw -20vw;
  min-height: 100vh;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-pack: end;
      justify-content: flex-end;
  padding: 160px 30px 40px;
  color: #fff; }
  .hero_tagline {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 22px; }
    .hero_tagline h1 {
      font-size: 36px;
      animation: text-focus-in 1s cubic-bezier(0.55, 0.085, 0.68, 0.53) both; }
    .hero_tagline p {
      font-size: 22px;
      animation: text-focus-in 1s cubic-bezier(0.55, 0.085, 0.68, 0.53) both 0.3s; }
  .hero .button {
    width: fit-content;
    border-color: #e84e26;
    background: #e84e26;
    margin-top: 12px;
    animation: text-focus-in 1s cubic-bezier(0.55, 0.085, 0.68, 0.53) both 0.6s; }
    .hero .button:before {
      color: #e84e26;
      background: #fff; }
  @media (min-width: 768px) {
    .hero {
      padding: 0 60px 80px; }
      .hero h1 {
        font-size: 48px; }
      .hero p {
        font-size: 24px; }
      .hero_tagline {
        width: 90%;
        bottom: 100px; } }
  @media (min-width: 1024px) {
    .hero {
      background-position: 40vw -10vh; }
      .hero h1 {
        font-size: 56px; }
        .hero h1 span {
          display: block; }
      .hero_tagline {
        width: 70%;
        gap: 32px; } }
  @media (min-width: 1200px) {
    .hero {
      animation: color-change-2x 2s linear infinite alternate both; } }
  @media (min-width: 1440px) {
    .hero {
      background-position: 50vw -10vh;
      padding: 0 100px 100px; } }
  @media (min-width: 1720px) {
    .hero h1 {
      font-size: 68px; } }

/* ----------------------------------------------
 * Generated by Animista on 2025-11-11 15:25:39
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */
/**
 * ----------------------------------------
 * animation color-change-2x
 * ----------------------------------------
 */
@keyframes color-change-2x {
  0% {
    background-color: #003366; }
  100% {
    background-color: #0156ac; } }

/* ----------------------------------------------
 * Generated by Animista on 2021-6-17 11:30:43
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */
/**
 * ----------------------------------------
 * animation text-focus-in
 * ----------------------------------------
 */

@keyframes text-focus-in {
  0% {
    filter: blur(12px);
    opacity: 0; }
  100% {
    filter: blur(0px);
    opacity: 1; } }

.do {
  animation: color-change-2x 2s linear infinite alternate both;
  padding: 40px 30px 0;
  color: #fff;
  overflow: hidden; }
  .do .items {
    padding-left: 20px;
    margin-bottom: 60px; }
    .do .items li {
      position: relative;
      line-height: 1.4;
      margin-bottom: 8px; }
      .do .items li:before {
        content: '•';
        color: #e84e26;
        position: absolute;
        top: 0;
        left: -24px;
        font-size: 59px;
        line-height: 8px; }
  .do .rocket {
    width: 150vw;
    transform: translateX(-38%); }
    .do .rocket.come-in {
      animation: slide-in-bottom 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both 0.3s; }
  @media (min-width: 768px) {
    .do {
      padding: 0 60px 0 0;
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: (1fr)[2];
          grid-template-columns: repeat(2, 1fr); }
      .do .rocket {
        width: 50vw;
        -ms-flex-order: -1;
            order: -1;
        transform: translate(0, 2vh); }
      .do .content {
        -ms-flex-item-align: center;
            -ms-grid-row-align: center;
            align-self: center; }
      .do .items {
        margin: 0; } }
  @media (min-width: 1024px) {
    .do {
      max-height: 420px; }
      .do .content {
        -ms-flex-item-align: auto;
            -ms-grid-row-align: auto;
            align-self: auto;
        padding-top: 25%; } }
  @media (min-width: 1200px) {
    .do {
      max-height: 60vh; }
      .do .content {
        padding-top: 20%; }
      .do .rocket {
        width: 54vw;
        transform: translate(-4vh, 0); } }

.work {
  background-color: #fbd526;
  padding: 40px 30px 60px;
  color: #003366;
  text-align: center; }
  .work .icon {
    width: 90px;
    margin: 0 auto 22px;
    transition: transform .3s ease-out;
    transform: scale(1); }
  .work .items {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-pack: center;
        justify-content: center;
    row-gap: 30px; }
    .work .items li {
      -ms-flex: 2 1 50%;
          flex: 2 1 50%; }
    .work .items strong {
      display: block; }
  @media (min-width: 768px) {
    .work {
      padding: 60px; }
      .work .items {
        gap: 20px; }
        .work .items li {
          -ms-flex: 2 1 0px;
              flex: 2 1 0; } }
  @media (min-width: 1024px) {
    .work {
      padding: 100px; } }
  @media (min-width: 1200px) {
    .work .items {
      max-width: 70vw;
      margin: auto; }
      .work .items li:hover .icon {
        transform: scale(1.2); } }

.values {
  background-color: #e84e26;
  padding: 40px 30px 60px;
  color: #fff; }
  .values .items li {
    position: relative;
    margin-bottom: 18px;
    padding-left: 52px;
    line-height: 1.2; }
    .values .items li:before {
      content: '1.';
      color: #fbd526;
      font-size: 42px;
      font-weight: 900;
      line-height: 1;
      position: absolute;
      bottom: -3px;
      left: 0; }
    .values .items li:nth-child(2):before {
      content: '2.'; }
    .values .items li:nth-child(3):before {
      content: '3.'; }
    .values .items li:nth-child(4):before {
      content: '4.'; }
    .values .items li:nth-child(5):before {
      content: '5.'; }
  @media (min-width: 768px) {
    .values {
      padding: 60px; }
      .values .items {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -ms-flex-pack: center;
            justify-content: center;
        gap: 50px; }
        .values .items li {
          -ms-flex: 2 1 40%;
              flex: 2 1 40%;
          margin: 0;
          display: -ms-flexbox;
          display: flex;
          -ms-flex-direction: column;
              flex-direction: column;
          -ms-flex-pack: end;
              justify-content: flex-end; } }
  @media (min-width: 1024px) {
    .values {
      padding: 100px; }
      .values h2 {
        text-align: center; }
      .values .items li {
        -ms-flex: 0 0 calc((100% - 100px) / 3);
            flex: 0 0 calc((100% - 100px) / 3);
        /* 3 per row */ } }
  @media (min-width: 1440px) {
    .values .items {
      max-width: 70vw;
      margin: auto; } }
  @media (min-width: 1720px) {
    .values .items {
      max-width: 60vw;
      gap: 65px; }
      .values .items li {
        -ms-flex: 0 0 calc((100% - 130px) / 3);
            flex: 0 0 calc((100% - 130px) / 3);
        /* 3 per row */ } }

.services {
  background: url("../img/bg-services-m.jpg") no-repeat right;
  background-size: cover;
  padding: 40px 30px 60px;
  color: #4d4d4d; }
  .services h2 {
    color: #003366; }
  .services h4 {
    color: #e84e26;
    margin: 32px 0 16px 0; }
  .services .content {
    background-color: #fff;
    padding: 40px 30px 30px; }
    .services .content h2 {
      display: inline-block;
      color: #003366;
      background-color: #fbd526;
      padding: 10px 18px;
      border-radius: 12px;
      margin: 0 auto 42px; }
  .services .list {
    padding-left: 20px; }
    .services .list li {
      position: relative;
      line-height: 1.4;
      margin-bottom: 8px; }
      .services .list li:before {
        content: '•';
        color: #003366;
        position: absolute;
        top: 0;
        left: -24px;
        font-size: 59px;
        line-height: 8px; }
  .services .button {
    width: fit-content;
    margin: 32px auto 0; }
    .services .button > span {
      color: #fff;
      line-height: 1.4; }
    .services .button:before {
      color: #003366;
      background: #fff;
      line-height: 1.4; }
  .services.proyects {
    background-image: url("../img/bg-proyects.jpg");
    text-align: center; }
    .services.proyects .line {
      margin-bottom: 36px; }
    .services.proyects p {
      margin-bottom: 22px; }
      .services.proyects p:last-child {
        margin: 0; }
      .services.proyects p strong {
        color: #e84e26;
        display: block; }
  @media (min-width: 768px) {
    .services {
      padding: 60px; }
      .services .content {
        padding: 40px; } }
  @media (min-width: 1024px) {
    .services {
      background-image: url("../img/bg-services.jpg");
      background-position: top left;
      background-attachment: fixed;
      padding: 100px; }
      .services h2 {
        text-align: center; }
      .services .content {
        padding: 40px; }
        .services .content h2 {
          font-size: 30px; } }
  @media (min-width: 1440px) {
    .services .content {
      max-width: 70vw;
      padding: 80px;
      margin: 0 auto; }
      .services .content.crm {
        margin-top: 60px; }
      .services .content h2 {
        font-size: 36px; } }

.crm {
  margin-top: 60px;
  color: #4d4d4d;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column; }
  .crm .icon {
    height: 60px;
    margin: 0; }
  .crm .items {
    margin: 48px auto; }
    .crm .items li {
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: 70px auto;
          grid-template-columns: 70px auto;
      gap: 20px;
      margin-bottom: 20px; }
  .crm .button {
    width: fit-content; }
  @media (min-width: 768px) {
    .crm {
      padding: 60px; }
      .crm .icon {
        height: 40px; }
      .crm .items {
        gap: 20px;
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[3];
            grid-template-columns: repeat(3, 1fr); }
        .crm .items li {
          -ms-grid-columns: 50px auto;
              grid-template-columns: 50px auto; } }
  @media (min-width: 1024px) {
    .crm {
      padding: 100px; }
      .crm h2, .crm h2 + p {
        text-align: center; } }
  @media (min-width: 1200px) {
    .crm .items {
      max-width: 70vw;
      gap: 40px; } }

.impulse {
  padding: 60px 30px;
  background: #003366 url("../img/bg-impulse.svg") no-repeat;
  background-position: top right;
  background-size: 60vw;
  color: #fff; }
  .impulse h2 {
    display: inline-block;
    color: #003366;
    background-color: #fbd526;
    padding: 10px 18px;
    border-radius: 12px; }
    .impulse h2 span {
      font-weight: 400;
      font-size: 22px; }
  .impulse h3 {
    display: inline-block;
    color: #e84e26;
    font-weight: 400;
    background-color: #fff;
    padding: 10px 18px;
    border-radius: 12px;
    margin: 42px 0 68px; }
  .impulse p {
    margin-bottom: 18px; }
    .impulse p strong {
      color: #fbd526;
      display: block; }
  .impulse .icon {
    height: 60px;
    width: auto;
    margin: 0 0 18px 0;
    transition: transform .3s ease-out;
    transform: scale(1); }
  .impulse .grid-items {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    gap: 30px; }
    .impulse .grid-items li {
      background: #fff;
      padding: 40px 30px;
      color: #4d4d4d;
      border-radius: 12px; }
      .impulse .grid-items li p {
        margin: 0; }
      .impulse .grid-items li strong {
        color: #003366; }
  .impulse .items {
    margin: 48px auto; }
    .impulse .items li {
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: 70px auto;
          grid-template-columns: 70px auto;
      gap: 20px;
      margin-bottom: 20px; }
  @media (min-width: 768px) {
    .impulse {
      background-size: 36vw;
      padding: 60px; }
      .impulse .icon {
        height: 60px;
        margin-bottom: 26px; }
      .impulse .grid-items {
        -ms-flex-direction: row;
            flex-direction: row;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
        .impulse .grid-items li {
          -ms-flex: 0 0 calc((100% - 30px) / 2);
              flex: 0 0 calc((100% - 30px) / 2); }
          .impulse .grid-items li strong {
            margin-bottom: 16px; } }
  @media (min-width: 1024px) {
    .impulse {
      background-size: 42vw;
      padding: 100px; }
      .impulse h3 {
        margin-right: 20vw;
        margin-bottom: 100px; }
      .impulse .grid-items li {
        -ms-flex: 0 0 calc((100% - 90px) / 4);
            flex: 0 0 calc((100% - 90px) / 4); }
      .impulse .items {
        gap: 20px;
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
            grid-template-columns: repeat(2, 1fr);
        max-width: 960px; }
        .impulse .items .icon {
          height: 80px;
          margin: 0; }
        .impulse .items li {
          -ms-grid-columns: 90px auto;
              grid-template-columns: 90px auto;
          margin: 0; }
      .impulse .bottom {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column;
            flex-direction: column;
        -ms-flex-align: center;
            align-items: center; }
        .impulse .bottom h3 {
          margin-right: unset; }
        .impulse .bottom .items {
          max-width: 1040px; } }
  @media (min-width: 1200px) {
    .impulse .items {
      max-width: 70vw;
      gap: 40px; }
    .impulse .grid-items li:hover .icon, .impulse .items li:hover .icon {
      transform: scale(1.2); } }
  @media (min-width: 1440px) {
    .impulse .wrapper {
      max-width: 70vw;
      margin: 0 auto; } }

.red {
  background-color: #003366;
  padding: 40px 30px 60px; }
  .red .top {
    margin: 0 auto 36px;
    max-width: 360px; }
  .red .bottom {
    margin: 0 auto;
    max-width: 720px; }
  @media (min-width: 768px) {
    .red {
      padding: 60px; } }
  @media (min-width: 1024px) {
    .red {
      padding: 100px; }
      .red .top {
        margin-bottom: 42px;
        max-width: 420px; }
      .red .bottom {
        max-width: 860px; } }

.team {
  background-color: #e84e26;
  padding: 60px 30px;
  color: #fff;
  text-align: center; }
  .team .icon {
    width: 90px;
    margin: 0 auto 22px;
    transition: transform .3s ease-out;
    transform: scale(1); }
  .team .items {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-pack: center;
        justify-content: center;
    row-gap: 30px;
    margin: 60px auto; }
    .team .items li {
      -ms-flex: 2 1 50%;
          flex: 2 1 50%; }
  .team p {
    max-width: 860px;
    margin: 0 auto 18px; }
  .team h3 {
    font-weight: 300;
    margin: 62px 0 48px; }
  .team .teamliders li {
    margin-bottom: 32px; }
    .team .teamliders li img {
      margin: 0 auto 18px;
      max-width: 270px; }
    .team .teamliders li strong {
      display: block; }
  @media (min-width: 768px) {
    .team {
      padding: 60px; }
      .team .items {
        gap: 20px;
        max-width: 680px; }
        .team .items li {
          -ms-flex: 2 1 0px;
              flex: 2 1 0; }
      .team .teamliders {
        max-width: 1280px;
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
            grid-template-columns: repeat(2, 1fr);
        gap: 30px;
        margin: 0 auto; }
        .team .teamliders li {
          margin: 0; } }
  @media (min-width: 1024px) {
    .team {
      padding: 100px; }
      .team h3 {
        font-size: 32px; }
      .team .teamliders {
        -ms-grid-columns: (1fr)[4];
            grid-template-columns: repeat(4, 1fr);
        gap: 40px; } }
  @media (min-width: 1200px) {
    .team .items li:hover .icon {
      transform: scale(1.2); } }

.clients {
  padding: 60px 30px;
  color: #003366;
  text-align: center; }
  .clients img {
    max-height: 100px;
    width: auto;
    margin: auto; }
  .clients .swiper-container {
    overflow: hidden;
    position: relative; }
  @media (min-width: 768px) {
    .clients {
      padding: 60px; } }
  @media (min-width: 1024px) {
    .clients {
      padding: 100px; } }

.contacto {
  padding: 60px 30px;
  color: #003366;
  text-align: center; }

/* ----------------------------------------------
 * Generated by Animista on 2025-11-11 13:43:49
 * Licensed under FreeBSD License.
 * See http://animista.net/license for more info. 
 * w: http://animista.net, t: @cssanimista
 * ---------------------------------------------- */
/**
 * ----------------------------------------
 * animation slide-in-bottom
 * ----------------------------------------
 */

@keyframes slide-in-bottom {
  0% {
    transform: translateY(1000px);
    opacity: 0; }
  100% {
    transform: translateY(0);
    opacity: 1; } }

.contact {
  background: #fff; }
  .contact_title {
    color: #fff;
    font-size: 32px;
    padding: 48px;
    text-align: center; }
  .contact form {
    padding: 0 48px 48px; }
    .contact form input, .contact form textarea {
      color: #fff; }
      .contact form input:focus, .contact form textarea:focus {
        border-color: #ED1B24; }
        .contact form input:focus:-ms-input-placeholder, .contact form textarea:focus:-ms-input-placeholder {
          color: #fff; }
        .contact form input:focus::placeholder, .contact form textarea:focus::placeholder {
          color: #fff; }
  @media (min-width: 768px) {
    .contact form {
      max-width: 70%;
      margin: 0 auto; } }
  @media (min-width: 1024px) {
    .contact {
      padding: 0 60px 40px; }
      .contact form {
        width: 100%;
        max-width: none;
        padding: 0;
        display: -ms-grid;
        display: grid;
        -ms-grid-columns: (1fr)[2];
            grid-template-columns: repeat(2, 1fr);
        grid-gap: 26px; }
        .contact form * {
          margin: 0; }
        .contact form input {
          grid-column: 1 / 2;
          padding: 9px;
          height: 44px; }
        .contact form select {
          grid-column: 2 / 3;
          grid-row: 1 / 2; }
        .contact form textarea {
          grid-column: 2 / 3;
          grid-row: 1 / 3;
          padding: 9px; }
        .contact form .button__rayen {
          grid-column: 2 / 3;
          grid-row: 3 / 4; } }
  @media (min-width: 1440px) {
    .contact {
      padding: 0 0 40px; } }
  @media (min-width: 1720px) {
    .contact {
      padding: 0 0 80px; }
      .contact form {
        width: 1100px; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwidXRpbHMvX2Jhc2Uuc2NzcyIsInV0aWxzL192YXJpYWJsZXMuc2NzcyIsInV0aWxzL19taXhpbnMuc2NzcyIsInV0aWxzL19zY3JvbGxib3guc2NzcyIsImxheW91dHMvX2hlYWRlci5zY3NzIiwibGF5b3V0cy9fZm9vdGVyLnNjc3MiLCJtb2R1bGVzL19oZXJvLnNjc3MiLCJtb2R1bGVzL19jb250ZW50LnNjc3MiLCJtb2R1bGVzL19jb250YWN0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCO0VBQXVCLHVCQUFzQixFQUFJOztBQUVqRDs7O0VBR0U7QUFFRjs7OztFQUlDLFVBQVM7RUFDVCxXQUFVO0VBQ1YsVUFBUztFQUNULGdCQUFlO0VBQ2YsY0FBYTtFQUNiLHlCQUF3QixFQUN4Qjs7QUFDRDtFQUNDLGVBQWM7RUFDZCxZQUFXLEVBQ1g7O0FBQ0Q7RUFDSSwwQkFBeUI7RUFDekIsaUJBQWdCO0VBQ25CLGlCQUFnQixFQUNoQjs7QUFDRDtFQUNDLGlCQUFnQixFQUNoQjs7QUFDRCxpREFBaUQ7QUFDakQ7RUFDQyxlQUFjLEVBQ2Q7O0FBQ0Q7RUFDQyx3Q0NsQ21DO0VEbUNuQywwQkFBeUI7RUFDdEIsbUJBQWtCO0VBQ3JCLGVDbENjO0VEbUNkLGVBQWM7RUFDZCxpQkNuQ1c7RURvQ1gsbUJBQWtCLEVBQ2xCOztBQUNEO0VBQ0Msc0JBQXFCO0VBQ3JCLHlCQUF3QixFQUN4Qjs7QUFDRDtFQUNDLGlCQUFnQixFQUNoQjs7QUFDRDtFQUNDLGlCQUFnQixFQUNoQjs7QUFDRDtFQUNDLGVBQWM7RUFDZCxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixrQkFBaUI7RUFDakIsc0JDbkRhO0VEb0RiLG9CQUFtQjtFQUNuQixZQ3ZEVztFRHdEUixvQkN0RFU7RUR1RGIsaUJBQWdCO0VBQ2hCLFdBQVU7RUFDVixZQUFXO0VBQ1IsdUJBQXNCO0VBQ3RCLG1CQUFrQjtFQUNsQixXQUFVO0VBQ1Ysb0NBQW1DO0VB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ckI7O0FBRUQ7Ozs7O29EQUtvRDtBQUVwRDs7OztHQUlHOztBQWFIO0VBQ0U7SUFFVSw4QkFBNkI7SUFDckMsV0FBVSxFQUFBO0VBRVo7SUFFVSx5QkFBd0I7SUFDaEMsV0FBVSxFQUFBLEVBQUE7O0FDeHlCZDtFQUNDLGlCUElXLEVPaUZYO0VBbkZBO0lBQ0MsWVBDVTtJT0FWLGdCQUFlO0lBQ2YsY0FBYTtJQUNiLG1CQUFrQixFQUNsQjtFQVJGO0lBV0UscUJBQW9CLEVBZ0JwQjtJQTNCRjtNQWNHLFlQVFMsRU9xQlQ7TUExQkg7UUFvQkksc0JQZFMsRU9tQlQ7UUF6Qko7VUF1QkssWVBsQk8sRU9tQlA7UUF4Qkw7VUF1QkssWVBsQk8sRU9tQlA7RU5WSDtJTWRGO01BZ0NHLGVBQWM7TUFDZCxlQUFjLEVBQ2QsRUFBQTtFTnZCRDtJTVhGO01BcUNFLHFCQUFvQixFQWlEckI7TUF0RkQ7UUF3Q0csWUFBVztRQUNYLGdCQUFlO1FBQ2YsV0FBVTtRQUNQLGtCQUFhO1FBQWIsY0FBYTtRQUNoQiwyQkFBcUM7WUFBckMsc0NBQXFDO1FBQ3JDLGVBQWMsRUFzQmQ7UUFuRUg7VUErQ00sVUFBUyxFQUFHO1FBL0NsQjtVQWtESSxtQkFBa0I7VUFDbEIsYUFBWTtVQUNaLGFBQVksRUFDWjtRQXJESjtVQXVESSxtQkFBa0I7VUFDbEIsZ0JBQWUsRUFDZjtRQXpESjtVQTJESSxtQkFBa0I7VUFDbEIsZ0JBQWU7VUFDZixhQUFZLEVBQ1o7UUE5REo7VUFnRUksbUJBQWtCO1VBQ2xCLGdCQUFlLEVBQ2YsRUFBQTtFTjdERjtJTUxGO01BNEVFLGtCQUFpQixFQVVsQixFQUFBO0VOcEZDO0lNRkY7TUFnRkUsa0JBQWlCLEVBTWxCO01BdEZEO1FBbUZHLGNBQWEsRUFDYixFQUFBIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvIFxuICAgdjIuMCB8IDIwMTEwMTI2XG4gICBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxuKi9cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG50YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCwgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250OiBpbmhlcml0O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LW9wdGljYWwtc2l6aW5nOiBhdXRvO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbnVsLCBsaSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLyogSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2VycyAqL1xuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdmcsIHBpY3R1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5ib2R5IHtcbiAgZm9udDogNDAwIDE4cHggXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtb3B0aWNhbC1zaXppbmc6IGF1dG87XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6ICM0ZDRkNGQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIC40cyBlYXNlOyB9XG5cbnAge1xuICBsaW5lLWhlaWdodDogMS40OyB9XG5cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuYS5idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAzMzY2O1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogIzAwMzM2NjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhLmJ1dHRvbjpiZWZvcmUsIGEuYnV0dG9uID4gc3BhbiB7XG4gICAgcGFkZGluZzogMWVtIDEuNmVtO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NSwgMCwgMC4xMjUsIDEpOyB9XG4gIGEuYnV0dG9uID4gc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICBhLmJ1dHRvbjpiZWZvcmUge1xuICAgIGNvbG9yOiAjMDAzMzY2O1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7IH1cbiAgYS5idXR0b246aG92ZXI6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIGEuYnV0dG9uOmhvdmVyID4gc3BhbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTsgfVxuICBhLmJ1dHRvbi5kYXJrIHtcbiAgICBjb2xvcjogIzAwMzM2NjtcbiAgICBiYWNrZ3JvdW5kOiAjZmJkNTI2O1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3JkZXItY29sb3I6ICNmYmQ1MjY7XG4gICAgbWFyZ2luLXRvcDogMjZweDsgfVxuICAgIGEuYnV0dG9uLmRhcms6YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAjZmJkNTI2O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzM2NjsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luLWJvdHRvbTogMjhweDsgfVxuXG4uc3dpcGVyLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAuc3dpcGVyLWJ1dHRvbjphZnRlciB7XG4gICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zd2lwZXItYnV0dG9uIC5hcnJvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTAuNzV0dXJuKTtcbiAgICBoZWlnaHQ6IDMycHg7IH1cbiAgLnN3aXBlci1idXR0b24tbmV4dCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDsgfVxuICAgIC5zd2lwZXItYnV0dG9uLW5leHQgLmFycm93IHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDAuNzV0dXJuKTsgfVxuXG4ud2hhdHNhcHAtYnV0dG9uIHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDEyMHB4O1xuICByaWdodDogMzBweDtcbiAgei1pbmRleDogMTI7IH1cbiAgLndoYXRzYXBwLWJ1dHRvbiAuaWNvbiB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDQwMG1zIGVhc2U7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAud2hhdHNhcHAtYnV0dG9uOmhvdmVyIC5pY29uIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC53aGF0c2FwcC1idXR0b24ge1xuICAgICAgd2lkdGg6IDUycHg7XG4gICAgICBoZWlnaHQ6IDUycHg7XG4gICAgICBib3R0b206IDQycHg7XG4gICAgICByaWdodDogNDJweDsgfVxuICAgICAgLndoYXRzYXBwLWJ1dHRvbiAuaWNvbiB7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMnB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjQpKTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MnB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuc2Nyb2xsYm94IHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5jb21lLWluIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpO1xuICAgIGFuaW1hdGlvbjogY29tZS1pbiAwLjhzIGVhc2UgZm9yd2FyZHMgLjZzOyB9XG4gIC5jb21lLWluOm50aC1jaGlsZChvZGQpIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNHM7IH1cbiAgLmFscmVhZHktdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgYW5pbWF0aW9uOiBub25lOyB9IH1cblxuQGtleWZyYW1lcyBjb21lLWluIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLmhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNjBweCk7XG4gIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgbGVmdDogMzBweDtcbiAgdG9wOiAzMHB4OyB9XG4gIC5oZWFkZXIgLmxvZ28ge1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmhlYWRlcl9fdG9nZ2xlIHtcbiAgICB3aWR0aDogMzJweDsgfVxuICAuaGVhZGVyX190b2dnbGUtbGluZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZDogI2ZiZDUyNjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDYwMG1zIGVhc2UgMjAwbXMsIHRvcCAzMDBtcyBlYXNlLCBsZWZ0IDMwMG1zIGVhc2UsIGJhY2tncm91bmQgMzAwbXMgZWFzZSwgdHJhbnNmb3JtIDMwMG1zIGVhc2UgNDUwbXM7IH1cbiAgICAuaGVhZGVyX190b2dnbGUtbGluZTpudGgtY2hpbGQoMSkge1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOyB9XG4gICAgLmhlYWRlcl9fdG9nZ2xlLWxpbmU6bnRoLWNoaWxkKDMpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsgfVxuICAuaGVhZGVyLmZpeGVkIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYW5pbWF0aW9uOiBoZWFkZXJGaXggLjVzIGVhc2Utb3V0OyB9XG4gIC5oZWFkZXIuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxMTsgfVxuICAgIC5oZWFkZXIuaXMtYWN0aXZlIC5oZWFkZXJfX3RvZ2dsZS1saW5lOm50aC1jaGlsZCgxKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGUoNDVkZWcpO1xuICAgICAgYmFja2dyb3VuZDogI2U4NGUyNjsgfVxuICAgIC5oZWFkZXIuaXMtYWN0aXZlIC5oZWFkZXJfX3RvZ2dsZS1saW5lOm50aC1jaGlsZCgyKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTg0ZTI2O1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAgIC5oZWFkZXIuaXMtYWN0aXZlIC5oZWFkZXJfX3RvZ2dsZS1saW5lOm50aC1jaGlsZCgzKSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlKC00NWRlZyk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTg0ZTI2OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuaGVhZGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICB0b3A6IDMwcHg7XG4gICAgICBsZWZ0OiA0MHB4OyB9XG4gICAgICAuaGVhZGVyX190b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuaGVhZGVyLmlzLWFjdGl2ZSB7XG4gICAgICAgIHotaW5kZXg6IDEwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5oZWFkZXIgLmxvZ28ge1xuICAgICAgd2lkdGg6IDI0MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE3MjBweCkge1xuICAgIC5oZWFkZXIge1xuICAgICAgcGFkZGluZzogMzVweCA2MHB4IDA7IH0gfVxuXG5zZWN0aW9uLm1lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogMTE7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjZTg0ZTI2O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2UsIGxlZnQgMTAwbXMgZWFzZSA2MDBtcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgc2VjdGlvbi5tZW51LmlzLXZpc2libGUge1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDEwMG1zIGVhc2UsIG9wYWNpdHkgNDAwbXMgZWFzZSAyMDBtcztcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7IH1cbiAgc2VjdGlvbi5tZW51IC5tZW51LWlubmVyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgc2VjdGlvbi5tZW51IC5tZW51LWlubmVyIC5tZW51LWxpc3Qge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIHNlY3Rpb24ubWVudSAubWVudS1pbm5lciAubWVudS1saXN0ID4gbGkge1xuICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsgfVxuICAgICAgICBzZWN0aW9uLm1lbnUgLm1lbnUtaW5uZXIgLm1lbnUtbGlzdCA+IGxpIGEge1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgLjNzIGVhc2U7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgc2VjdGlvbi5tZW51IC5tZW51LWlubmVyIC5tZW51LWxpc3QgbGkge1xuICAgICAgZm9udC1zaXplOiAzOHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIHNlY3Rpb24ubWVudSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDQwcHg7XG4gICAgICB0b3A6IDI2cHg7XG4gICAgICB3aWR0aDogNjYwcHg7XG4gICAgICB6LWluZGV4OiAxMTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgcGFkZGluZzogMHB4IDM2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgaGVpZ2h0OiA3MnB4O1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBib3gtc2hhZG93OiAzcHggM3B4IDEwcHggIzRkNGQ0ZDsgfVxuICAgICAgc2VjdGlvbi5tZW51LmZpeGVkIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBhbmltYXRpb246IGhlYWRlckZpeCAuNXMgZWFzZS1vdXQ7IH1cbiAgICAgIHNlY3Rpb24ubWVudSAubWVudS1pbm5lciAubWVudS1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG4gICAgICAgIHNlY3Rpb24ubWVudSAubWVudS1pbm5lciAubWVudS1saXN0IGxpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgICBzZWN0aW9uLm1lbnUgLm1lbnUtaW5uZXIgLm1lbnUtbGlzdCBsaSBhIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAzMzY2O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCA0MDBtcyBlYXNlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIHNlY3Rpb24ubWVudSB7XG4gICAgICBoZWlnaHQ6IDYwcHg7IH1cbiAgICAgIHNlY3Rpb24ubWVudSAubWVudS1pbm5lciAubWVudS1saXN0IGxpIGEge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAjMDAzMzY2O1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZTsgfVxuICAgICAgICBzZWN0aW9uLm1lbnUgLm1lbnUtaW5uZXIgLm1lbnUtbGlzdCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICBmb250LXdlaWdodDogODAwOyB9IH1cblxuQGtleWZyYW1lcyBoZWFkZXJGaXgge1xuICAwJSB7XG4gICAgdG9wOiAtMTMwcHg7IH1cbiAgMTAwJSB7XG4gICAgdG9wOiAzMHB4OyB9IH1cblxuLmZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICNmYmQ1MjY7XG4gIGNvbG9yOiAjMDAzMzY2O1xuICBwYWRkaW5nOiA2MHB4IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMzBweDsgfVxuICAuZm9vdGVyIC5sb2dvIHtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuICAuZm9vdGVyIGgzIHtcbiAgICBjb2xvcjogI2U4NGUyNjtcbiAgICBtYXJnaW4tYm90dG9tOiAyNnB4OyB9XG4gIC5mb290ZXIgdWwgbGkge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9pY29uLWlnLnN2Z1wiKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAzMnB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgY2VudGVyO1xuICAgIHBhZGRpbmctbGVmdDogNDJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG4gICAgLmZvb3RlciB1bCBsaS5pbiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaWNvbi1pbi5zdmdcIik7IH1cbiAgICAuZm9vdGVyIHVsIGxpLndzcCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaWNvbi13c3Auc3ZnXCIpOyB9XG4gICAgLmZvb3RlciB1bCBsaS5lbWFpbCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaWNvbi1lbWFpbC5zdmdcIik7IH1cbiAgICAuZm9vdGVyIHVsIGxpLndlYiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvaWNvbi13ZWIuc3ZnXCIpOyB9XG4gIC5mb290ZXIgdWwgYSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICBjb2xvcjogIzAwMzM2NjsgfVxuICAgIC5mb290ZXIgdWwgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2U4NGUyNjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDYwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmZvb3RlciB7XG4gICAgICBwYWRkaW5nOiAxMDBweDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAgIC5mb290ZXIgLmxvZ28ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzOHB4OyB9XG4gICAgICAuZm9vdGVyIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzOHB4OyB9IH1cblxuLnNpZ24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDIycHg7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuICAuc2lnbiBhIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNGQ0ZDRkOyB9XG4gICAgLnNpZ24gYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2U4NGUyNjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLnNpZ24ge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgcGFkZGluZy1yaWdodDogNjBweDsgfSB9XG5cbi5oZXJvIHtcbiAgYmFja2dyb3VuZDogIzAwMzM2NiB1cmwoXCIuLi9pbWcvYmctaGVyby5zdmdcIikgbm8tcmVwZWF0IDMwdncgLTIwdnc7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBwYWRkaW5nOiAxNjBweCAzMHB4IDQwcHg7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC5oZXJvX3RhZ2xpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDIycHg7IH1cbiAgICAuaGVyb190YWdsaW5lIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIGFuaW1hdGlvbjogdGV4dC1mb2N1cy1pbiAxcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wODUsIDAuNjgsIDAuNTMpIGJvdGg7IH1cbiAgICAuaGVyb190YWdsaW5lIHAge1xuICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgYW5pbWF0aW9uOiB0ZXh0LWZvY3VzLWluIDFzIGN1YmljLWJlemllcigwLjU1LCAwLjA4NSwgMC42OCwgMC41MykgYm90aCAwLjNzOyB9XG4gIC5oZXJvIC5idXR0b24ge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICBib3JkZXItY29sb3I6ICNlODRlMjY7XG4gICAgYmFja2dyb3VuZDogI2U4NGUyNjtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIGFuaW1hdGlvbjogdGV4dC1mb2N1cy1pbiAxcyBjdWJpYy1iZXppZXIoMC41NSwgMC4wODUsIDAuNjgsIDAuNTMpIGJvdGggMC42czsgfVxuICAgIC5oZXJvIC5idXR0b246YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAjZTg0ZTI2O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuaGVybyB7XG4gICAgICBwYWRkaW5nOiAwIDYwcHggODBweDsgfVxuICAgICAgLmhlcm8gaDEge1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7IH1cbiAgICAgIC5oZXJvIHAge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7IH1cbiAgICAgIC5oZXJvX3RhZ2xpbmUge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBib3R0b206IDEwMHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5oZXJvIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwdncgLTEwdmg7IH1cbiAgICAgIC5oZXJvIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA1NnB4OyB9XG4gICAgICAgIC5oZXJvIGgxIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuaGVyb190YWdsaW5lIHtcbiAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgZ2FwOiAzMnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5oZXJvIHtcbiAgICAgIGFuaW1hdGlvbjogY29sb3ItY2hhbmdlLTJ4IDJzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgYm90aDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgICAuaGVybyB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MHZ3IC0xMHZoO1xuICAgICAgcGFkZGluZzogMCAxMDBweCAxMDBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNzIwcHgpIHtcbiAgICAuaGVybyBoMSB7XG4gICAgICBmb250LXNpemU6IDY4cHg7IH0gfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIEdlbmVyYXRlZCBieSBBbmltaXN0YSBvbiAyMDI1LTExLTExIDE1OjI1OjM5XHJcbiAqIExpY2Vuc2VkIHVuZGVyIEZyZWVCU0QgTGljZW5zZS5cclxuICogU2VlIGh0dHA6Ly9hbmltaXN0YS5uZXQvbGljZW5zZSBmb3IgbW9yZSBpbmZvLiBcclxuICogdzogaHR0cDovL2FuaW1pc3RhLm5ldCwgdDogQGNzc2FuaW1pc3RhXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIGFuaW1hdGlvbiBjb2xvci1jaGFuZ2UtMnhcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cbkBrZXlmcmFtZXMgY29sb3ItY2hhbmdlLTJ4IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDMzNjY7IH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxNTZhYzsgfSB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogR2VuZXJhdGVkIGJ5IEFuaW1pc3RhIG9uIDIwMjEtNi0xNyAxMTozMDo0M1xyXG4gKiBMaWNlbnNlZCB1bmRlciBGcmVlQlNEIExpY2Vuc2UuXHJcbiAqIFNlZSBodHRwOi8vYW5pbWlzdGEubmV0L2xpY2Vuc2UgZm9yIG1vcmUgaW5mby4gXHJcbiAqIHc6IGh0dHA6Ly9hbmltaXN0YS5uZXQsIHQ6IEBjc3NhbmltaXN0YVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBhbmltYXRpb24gdGV4dC1mb2N1cy1pblxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xuQC13ZWJraXQta2V5ZnJhbWVzIHRleHQtZm9jdXMtaW4ge1xuICAwJSB7XG4gICAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gICAgZmlsdGVyOiBibHVyKDEycHgpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoMHB4KTtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyB0ZXh0LWZvY3VzLWluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgIGZpbHRlcjogYmx1cigxMnB4KTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtZmlsdGVyOiBibHVyKDBweCk7XG4gICAgZmlsdGVyOiBibHVyKDBweCk7XG4gICAgb3BhY2l0eTogMTsgfSB9XG5cbi5kbyB7XG4gIGFuaW1hdGlvbjogY29sb3ItY2hhbmdlLTJ4IDJzIGxpbmVhciBpbmZpbml0ZSBhbHRlcm5hdGUgYm90aDtcbiAgcGFkZGluZzogNDBweCAzMHB4IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5kbyAuaXRlbXMge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4OyB9XG4gICAgLmRvIC5pdGVtcyBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4gICAgICAuZG8gLml0ZW1zIGxpOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICfigKInO1xuICAgICAgICBjb2xvcjogI2U4NGUyNjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IC0yNHB4O1xuICAgICAgICBmb250LXNpemU6IDU5cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA4cHg7IH1cbiAgLmRvIC5yb2NrZXQge1xuICAgIHdpZHRoOiAxNTB2dztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM4JSk7IH1cbiAgICAuZG8gLnJvY2tldC5jb21lLWluIHtcbiAgICAgIGFuaW1hdGlvbjogc2xpZGUtaW4tYm90dG9tIDFzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KSBib3RoIDAuM3M7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmRvIHtcbiAgICAgIHBhZGRpbmc6IDAgNjBweCAwIDA7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgfVxuICAgICAgLmRvIC5yb2NrZXQge1xuICAgICAgICB3aWR0aDogNTB2dztcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAydmgpOyB9XG4gICAgICAuZG8gLmNvbnRlbnQge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgICAgIC5kbyAuaXRlbXMge1xuICAgICAgICBtYXJnaW46IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmRvIHtcbiAgICAgIG1heC1oZWlnaHQ6IDQyMHB4OyB9XG4gICAgICAuZG8gLmNvbnRlbnQge1xuICAgICAgICBhbGlnbi1zZWxmOiBhdXRvO1xuICAgICAgICBwYWRkaW5nLXRvcDogMjUlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5kbyB7XG4gICAgICBtYXgtaGVpZ2h0OiA2MHZoOyB9XG4gICAgICAuZG8gLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjAlOyB9XG4gICAgICAuZG8gLnJvY2tldCB7XG4gICAgICAgIHdpZHRoOiA1NHZ3O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNHZoLCAwKTsgfSB9XG5cbi53b3JrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZDUyNjtcbiAgcGFkZGluZzogNDBweCAzMHB4IDYwcHg7XG4gIGNvbG9yOiAjMDAzMzY2O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLndvcmsgLmljb24ge1xuICAgIHdpZHRoOiA5MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDIycHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLW91dDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIC53b3JrIC5pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcm93LWdhcDogMzBweDsgfVxuICAgIC53b3JrIC5pdGVtcyBsaSB7XG4gICAgICBmbGV4OiAyIDEgNTAlOyB9XG4gICAgLndvcmsgLml0ZW1zIHN0cm9uZyB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAud29yayB7XG4gICAgICBwYWRkaW5nOiA2MHB4OyB9XG4gICAgICAud29yayAuaXRlbXMge1xuICAgICAgICBnYXA6IDIwcHg7IH1cbiAgICAgICAgLndvcmsgLml0ZW1zIGxpIHtcbiAgICAgICAgICBmbGV4OiAyIDEgMDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAud29yayB7XG4gICAgICBwYWRkaW5nOiAxMDBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAud29yayAuaXRlbXMge1xuICAgICAgbWF4LXdpZHRoOiA3MHZ3O1xuICAgICAgbWFyZ2luOiBhdXRvOyB9XG4gICAgICAud29yayAuaXRlbXMgbGk6aG92ZXIgLmljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IH0gfVxuXG4udmFsdWVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U4NGUyNjtcbiAgcGFkZGluZzogNDBweCAzMHB4IDYwcHg7XG4gIGNvbG9yOiAjZmZmOyB9XG4gIC52YWx1ZXMgLml0ZW1zIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDUycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAgIC52YWx1ZXMgLml0ZW1zIGxpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnMS4nO1xuICAgICAgY29sb3I6ICNmYmQ1MjY7XG4gICAgICBmb250LXNpemU6IDQycHg7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0zcHg7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgLnZhbHVlcyAuaXRlbXMgbGk6bnRoLWNoaWxkKDIpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnMi4nOyB9XG4gICAgLnZhbHVlcyAuaXRlbXMgbGk6bnRoLWNoaWxkKDMpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnMy4nOyB9XG4gICAgLnZhbHVlcyAuaXRlbXMgbGk6bnRoLWNoaWxkKDQpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnNC4nOyB9XG4gICAgLnZhbHVlcyAuaXRlbXMgbGk6bnRoLWNoaWxkKDUpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnNS4nOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC52YWx1ZXMge1xuICAgICAgcGFkZGluZzogNjBweDsgfVxuICAgICAgLnZhbHVlcyAuaXRlbXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDUwcHg7IH1cbiAgICAgICAgLnZhbHVlcyAuaXRlbXMgbGkge1xuICAgICAgICAgIGZsZXg6IDIgMSA0MCU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC52YWx1ZXMge1xuICAgICAgcGFkZGluZzogMTAwcHg7IH1cbiAgICAgIC52YWx1ZXMgaDIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAgIC52YWx1ZXMgLml0ZW1zIGxpIHtcbiAgICAgICAgZmxleDogMCAwIGNhbGMoKDEwMCUgLSAxMDBweCkgLyAzKTtcbiAgICAgICAgLyogMyBwZXIgcm93ICovIH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7XG4gICAgLnZhbHVlcyAuaXRlbXMge1xuICAgICAgbWF4LXdpZHRoOiA3MHZ3O1xuICAgICAgbWFyZ2luOiBhdXRvOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE3MjBweCkge1xuICAgIC52YWx1ZXMgLml0ZW1zIHtcbiAgICAgIG1heC13aWR0aDogNjB2dztcbiAgICAgIGdhcDogNjVweDsgfVxuICAgICAgLnZhbHVlcyAuaXRlbXMgbGkge1xuICAgICAgICBmbGV4OiAwIDAgY2FsYygoMTAwJSAtIDEzMHB4KSAvIDMpO1xuICAgICAgICAvKiAzIHBlciByb3cgKi8gfSB9XG5cbi5zZXJ2aWNlcyB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9iZy1zZXJ2aWNlcy1tLmpwZ1wiKSBuby1yZXBlYXQgcmlnaHQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHBhZGRpbmc6IDQwcHggMzBweCA2MHB4O1xuICBjb2xvcjogIzRkNGQ0ZDsgfVxuICAuc2VydmljZXMgaDIge1xuICAgIGNvbG9yOiAjMDAzMzY2OyB9XG4gIC5zZXJ2aWNlcyBoNCB7XG4gICAgY29sb3I6ICNlODRlMjY7XG4gICAgbWFyZ2luOiAzMnB4IDAgMTZweCAwOyB9XG4gIC5zZXJ2aWNlcyAuY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA0MHB4IDMwcHggMzBweDsgfVxuICAgIC5zZXJ2aWNlcyAuY29udGVudCBoMiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBjb2xvcjogIzAwMzM2NjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmQ1MjY7XG4gICAgICBwYWRkaW5nOiAxMHB4IDE4cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgbWFyZ2luOiAwIGF1dG8gNDJweDsgfVxuICAuc2VydmljZXMgLmxpc3Qge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDsgfVxuICAgIC5zZXJ2aWNlcyAubGlzdCBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4gICAgICAuc2VydmljZXMgLmxpc3QgbGk6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ+KAoic7XG4gICAgICAgIGNvbG9yOiAjMDAzMzY2O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogLTI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogNTlweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDhweDsgfVxuICAuc2VydmljZXMgLmJ1dHRvbiB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogMzJweCBhdXRvIDA7IH1cbiAgICAuc2VydmljZXMgLmJ1dHRvbiA+IHNwYW4ge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBsaW5lLWhlaWdodDogMS40OyB9XG4gICAgLnNlcnZpY2VzIC5idXR0b246YmVmb3JlIHtcbiAgICAgIGNvbG9yOiAjMDAzMzY2O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cbiAgLnNlcnZpY2VzLnByb3llY3RzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYmctcHJveWVjdHMuanBnXCIpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5zZXJ2aWNlcy5wcm95ZWN0cyAubGluZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzNnB4OyB9XG4gICAgLnNlcnZpY2VzLnByb3llY3RzIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjJweDsgfVxuICAgICAgLnNlcnZpY2VzLnByb3llY3RzIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLnNlcnZpY2VzLnByb3llY3RzIHAgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6ICNlODRlMjY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5zZXJ2aWNlcyB7XG4gICAgICBwYWRkaW5nOiA2MHB4OyB9XG4gICAgICAuc2VydmljZXMgLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiA0MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5zZXJ2aWNlcyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvYmctc2VydmljZXMuanBnXCIpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGxlZnQ7XG4gICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICAgICAgcGFkZGluZzogMTAwcHg7IH1cbiAgICAgIC5zZXJ2aWNlcyBoMiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgICAgLnNlcnZpY2VzIC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogNDBweDsgfVxuICAgICAgICAuc2VydmljZXMgLmNvbnRlbnQgaDIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgICAuc2VydmljZXMgLmNvbnRlbnQge1xuICAgICAgbWF4LXdpZHRoOiA3MHZ3O1xuICAgICAgcGFkZGluZzogODBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgICAuc2VydmljZXMgLmNvbnRlbnQuY3JtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNjBweDsgfVxuICAgICAgLnNlcnZpY2VzIC5jb250ZW50IGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAzNnB4OyB9IH1cblxuLmNybSB7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG4gIGNvbG9yOiAjNGQ0ZDRkO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5jcm0gLmljb24ge1xuICAgIGhlaWdodDogNjBweDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNybSAuaXRlbXMge1xuICAgIG1hcmdpbjogNDhweCBhdXRvOyB9XG4gICAgLmNybSAuaXRlbXMgbGkge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzBweCBhdXRvO1xuICAgICAgZ2FwOiAyMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAuY3JtIC5idXR0b24ge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuY3JtIHtcbiAgICAgIHBhZGRpbmc6IDYwcHg7IH1cbiAgICAgIC5jcm0gLmljb24ge1xuICAgICAgICBoZWlnaHQ6IDQwcHg7IH1cbiAgICAgIC5jcm0gLml0ZW1zIHtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpOyB9XG4gICAgICAgIC5jcm0gLml0ZW1zIGxpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwcHggYXV0bzsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuY3JtIHtcbiAgICAgIHBhZGRpbmc6IDEwMHB4OyB9XG4gICAgICAuY3JtIGgyLCAuY3JtIGgyICsgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuY3JtIC5pdGVtcyB7XG4gICAgICBtYXgtd2lkdGg6IDcwdnc7XG4gICAgICBnYXA6IDQwcHg7IH0gfVxuXG4uaW1wdWxzZSB7XG4gIHBhZGRpbmc6IDYwcHggMzBweDtcbiAgYmFja2dyb3VuZDogIzAwMzM2NiB1cmwoXCIuLi9pbWcvYmctaW1wdWxzZS5zdmdcIikgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgcmlnaHQ7XG4gIGJhY2tncm91bmQtc2l6ZTogNjB2dztcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmltcHVsc2UgaDIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBjb2xvcjogIzAwMzM2NjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJkNTI2O1xuICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4OyB9XG4gICAgLmltcHVsc2UgaDIgc3BhbiB7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgZm9udC1zaXplOiAyMnB4OyB9XG4gIC5pbXB1bHNlIGgzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICNlODRlMjY7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIG1hcmdpbjogNDJweCAwIDY4cHg7IH1cbiAgLmltcHVsc2UgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAgIC5pbXB1bHNlIHAgc3Ryb25nIHtcbiAgICAgIGNvbG9yOiAjZmJkNTI2O1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmltcHVsc2UgLmljb24ge1xuICAgIGhlaWdodDogNjBweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW46IDAgMCAxOHB4IDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLW91dDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIC5pbXB1bHNlIC5ncmlkLWl0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAzMHB4OyB9XG4gICAgLmltcHVsc2UgLmdyaWQtaXRlbXMgbGkge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDQwcHggMzBweDtcbiAgICAgIGNvbG9yOiAjNGQ0ZDRkO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsgfVxuICAgICAgLmltcHVsc2UgLmdyaWQtaXRlbXMgbGkgcCB7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmltcHVsc2UgLmdyaWQtaXRlbXMgbGkgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6ICMwMDMzNjY7IH1cbiAgLmltcHVsc2UgLml0ZW1zIHtcbiAgICBtYXJnaW46IDQ4cHggYXV0bzsgfVxuICAgIC5pbXB1bHNlIC5pdGVtcyBsaSB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA3MHB4IGF1dG87XG4gICAgICBnYXA6IDIwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5pbXB1bHNlIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMzZ2dztcbiAgICAgIHBhZGRpbmc6IDYwcHg7IH1cbiAgICAgIC5pbXB1bHNlIC5pY29uIHtcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNnB4OyB9XG4gICAgICAuaW1wdWxzZSAuZ3JpZC1pdGVtcyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgICAuaW1wdWxzZSAuZ3JpZC1pdGVtcyBsaSB7XG4gICAgICAgICAgZmxleDogMCAwIGNhbGMoKDEwMCUgLSAzMHB4KSAvIDIpOyB9XG4gICAgICAgICAgLmltcHVsc2UgLmdyaWQtaXRlbXMgbGkgc3Ryb25nIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmltcHVsc2Uge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA0MnZ3O1xuICAgICAgcGFkZGluZzogMTAwcHg7IH1cbiAgICAgIC5pbXB1bHNlIGgzIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHZ3O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDsgfVxuICAgICAgLmltcHVsc2UgLmdyaWQtaXRlbXMgbGkge1xuICAgICAgICBmbGV4OiAwIDAgY2FsYygoMTAwJSAtIDkwcHgpIC8gNCk7IH1cbiAgICAgIC5pbXB1bHNlIC5pdGVtcyB7XG4gICAgICAgIGdhcDogMjBweDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgbWF4LXdpZHRoOiA5NjBweDsgfVxuICAgICAgICAuaW1wdWxzZSAuaXRlbXMgLmljb24ge1xuICAgICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgLmltcHVsc2UgLml0ZW1zIGxpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDkwcHggYXV0bztcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5pbXB1bHNlIC5ib3R0b20ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAgIC5pbXB1bHNlIC5ib3R0b20gaDMge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogdW5zZXQ7IH1cbiAgICAgICAgLmltcHVsc2UgLmJvdHRvbSAuaXRlbXMge1xuICAgICAgICAgIG1heC13aWR0aDogMTA0MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5pbXB1bHNlIC5pdGVtcyB7XG4gICAgICBtYXgtd2lkdGg6IDcwdnc7XG4gICAgICBnYXA6IDQwcHg7IH1cbiAgICAuaW1wdWxzZSAuZ3JpZC1pdGVtcyBsaTpob3ZlciAuaWNvbiwgLmltcHVsc2UgLml0ZW1zIGxpOmhvdmVyIC5pY29uIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgICAuaW1wdWxzZSAud3JhcHBlciB7XG4gICAgICBtYXgtd2lkdGg6IDcwdnc7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG5cbi5yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzMzY2O1xuICBwYWRkaW5nOiA0MHB4IDMwcHggNjBweDsgfVxuICAucmVkIC50b3Age1xuICAgIG1hcmdpbjogMCBhdXRvIDM2cHg7XG4gICAgbWF4LXdpZHRoOiAzNjBweDsgfVxuICAucmVkIC5ib3R0b20ge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogNzIwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnJlZCB7XG4gICAgICBwYWRkaW5nOiA2MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5yZWQge1xuICAgICAgcGFkZGluZzogMTAwcHg7IH1cbiAgICAgIC5yZWQgLnRvcCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQycHg7XG4gICAgICAgIG1heC13aWR0aDogNDIwcHg7IH1cbiAgICAgIC5yZWQgLmJvdHRvbSB7XG4gICAgICAgIG1heC13aWR0aDogODYwcHg7IH0gfVxuXG4udGVhbSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlODRlMjY7XG4gIHBhZGRpbmc6IDYwcHggMzBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudGVhbSAuaWNvbiB7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMjJweDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgLnRlYW0gLml0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICByb3ctZ2FwOiAzMHB4O1xuICAgIG1hcmdpbjogNjBweCBhdXRvOyB9XG4gICAgLnRlYW0gLml0ZW1zIGxpIHtcbiAgICAgIGZsZXg6IDIgMSA1MCU7IH1cbiAgLnRlYW0gcCB7XG4gICAgbWF4LXdpZHRoOiA4NjBweDtcbiAgICBtYXJnaW46IDAgYXV0byAxOHB4OyB9XG4gIC50ZWFtIGgzIHtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbjogNjJweCAwIDQ4cHg7IH1cbiAgLnRlYW0gLnRlYW1saWRlcnMgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7IH1cbiAgICAudGVhbSAudGVhbWxpZGVycyBsaSBpbWcge1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMThweDtcbiAgICAgIG1heC13aWR0aDogMjcwcHg7IH1cbiAgICAudGVhbSAudGVhbWxpZGVycyBsaSBzdHJvbmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnRlYW0ge1xuICAgICAgcGFkZGluZzogNjBweDsgfVxuICAgICAgLnRlYW0gLml0ZW1zIHtcbiAgICAgICAgZ2FwOiAyMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDY4MHB4OyB9XG4gICAgICAgIC50ZWFtIC5pdGVtcyBsaSB7XG4gICAgICAgICAgZmxleDogMiAxIDA7IH1cbiAgICAgIC50ZWFtIC50ZWFtbGlkZXJzIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjgwcHg7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICAgIGdhcDogMzBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAgICAgLnRlYW0gLnRlYW1saWRlcnMgbGkge1xuICAgICAgICAgIG1hcmdpbjogMDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAudGVhbSB7XG4gICAgICBwYWRkaW5nOiAxMDBweDsgfVxuICAgICAgLnRlYW0gaDMge1xuICAgICAgICBmb250LXNpemU6IDMycHg7IH1cbiAgICAgIC50ZWFtIC50ZWFtbGlkZXJzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgICAgZ2FwOiA0MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC50ZWFtIC5pdGVtcyBsaTpob3ZlciAuaWNvbiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IH0gfVxuXG4uY2xpZW50cyB7XG4gIHBhZGRpbmc6IDYwcHggMzBweDtcbiAgY29sb3I6ICMwMDMzNjY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY2xpZW50cyBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAuY2xpZW50cyAuc3dpcGVyLWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmNsaWVudHMge1xuICAgICAgcGFkZGluZzogNjBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuY2xpZW50cyB7XG4gICAgICBwYWRkaW5nOiAxMDBweDsgfSB9XG5cbi5jb250YWN0byB7XG4gIHBhZGRpbmc6IDYwcHggMzBweDtcbiAgY29sb3I6ICMwMDMzNjY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIEdlbmVyYXRlZCBieSBBbmltaXN0YSBvbiAyMDI1LTExLTExIDEzOjQzOjQ5XHJcbiAqIExpY2Vuc2VkIHVuZGVyIEZyZWVCU0QgTGljZW5zZS5cclxuICogU2VlIGh0dHA6Ly9hbmltaXN0YS5uZXQvbGljZW5zZSBmb3IgbW9yZSBpbmZvLiBcclxuICogdzogaHR0cDovL2FuaW1pc3RhLm5ldCwgdDogQGNzc2FuaW1pc3RhXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qKlxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqIGFuaW1hdGlvbiBzbGlkZS1pbi1ib3R0b21cclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKi9cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZS1pbi1ib3R0b20ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuQGtleWZyYW1lcyBzbGlkZS1pbi1ib3R0b20ge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxOyB9IH1cblxuLmNvbnRhY3Qge1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5jb250YWN0X3RpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgcGFkZGluZzogNDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNvbnRhY3QgZm9ybSB7XG4gICAgcGFkZGluZzogMCA0OHB4IDQ4cHg7IH1cbiAgICAuY29udGFjdCBmb3JtIGlucHV0LCAuY29udGFjdCBmb3JtIHRleHRhcmVhIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY29udGFjdCBmb3JtIGlucHV0OmZvY3VzLCAuY29udGFjdCBmb3JtIHRleHRhcmVhOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjRUQxQjI0OyB9XG4gICAgICAgIC5jb250YWN0IGZvcm0gaW5wdXQ6Zm9jdXM6OnBsYWNlaG9sZGVyLCAuY29udGFjdCBmb3JtIHRleHRhcmVhOmZvY3VzOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmNvbnRhY3QgZm9ybSB7XG4gICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5jb250YWN0IHtcbiAgICAgIHBhZGRpbmc6IDAgNjBweCA0MHB4OyB9XG4gICAgICAuY29udGFjdCBmb3JtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgZ3JpZC1nYXA6IDI2cHg7IH1cbiAgICAgICAgLmNvbnRhY3QgZm9ybSAqIHtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgICAgLmNvbnRhY3QgZm9ybSBpbnB1dCB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAyO1xuICAgICAgICAgIHBhZGRpbmc6IDlweDtcbiAgICAgICAgICBoZWlnaHQ6IDQ0cHg7IH1cbiAgICAgICAgLmNvbnRhY3QgZm9ybSBzZWxlY3Qge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiAyIC8gMztcbiAgICAgICAgICBncmlkLXJvdzogMSAvIDI7IH1cbiAgICAgICAgLmNvbnRhY3QgZm9ybSB0ZXh0YXJlYSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAzO1xuICAgICAgICAgIGdyaWQtcm93OiAxIC8gMztcbiAgICAgICAgICBwYWRkaW5nOiA5cHg7IH1cbiAgICAgICAgLmNvbnRhY3QgZm9ybSAuYnV0dG9uX19yYXllbiB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IDIgLyAzO1xuICAgICAgICAgIGdyaWQtcm93OiAzIC8gNDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNDQwcHgpIHtcbiAgICAuY29udGFjdCB7XG4gICAgICBwYWRkaW5nOiAwIDAgNDBweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNzIwcHgpIHtcbiAgICAuY29udGFjdCB7XG4gICAgICBwYWRkaW5nOiAwIDAgODBweDsgfVxuICAgICAgLmNvbnRhY3QgZm9ybSB7XG4gICAgICAgIHdpZHRoOiAxMTAwcHg7IH0gfVxuIiwiKiwgKjpiZWZvcmUsICo6YWZ0ZXIgeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvIFxuICAgdjIuMCB8IDIwMTEwMTI2XG4gICBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxuKi9cblxuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbmRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGJvcmRlcjogMDtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRmb250OiBpbmhlcml0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5pbWcge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7IFxufVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgZm9udC1vcHRpY2FsLXNpemluZzogYXV0bztcbiAgICBmb250LXdlaWdodDogNzAwO1xuXHRsaW5lLWhlaWdodDogMS4yO1xufVxudWwsIGxpIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cbi8qIEhUTUw1IGRpc3BsYXktcm9sZSByZXNldCBmb3Igb2xkZXIgYnJvd3NlcnMgKi9cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3ZnLCBwaWN0dXJlIHtcblx0ZGlzcGxheTogYmxvY2s7XG59IFxuYm9keSB7XG5cdGZvbnQ6IDQwMCAxOHB4ICRmb250LWJhc2U7XG5cdGZvbnQtb3B0aWNhbC1zaXppbmc6IGF1dG87XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuXHRjb2xvcjogJGJsYWNrO1xuXHRsaW5lLWhlaWdodDogMTtcblx0YmFja2dyb3VuZDogJHdoaXRlO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5hIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR0cmFuc2l0aW9uOiBhbGwgLjRzIGVhc2U7XG59XG5wIHtcblx0bGluZS1oZWlnaHQ6IDEuNDtcbn1cbnN0cm9uZyB7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5hLmJ1dHRvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXNpemU6IDE4cHg7XHRcblx0Zm9udC13ZWlnaHQ6IDgwMDtcblx0Ym9yZGVyOiAycHggc29saWQ7XG5cdGJvcmRlci1jb2xvcjogJGJsdWU7XG5cdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdGNvbG9yOiAkd2hpdGU7XG4gICAgYmFja2dyb3VuZDogJGJsdWU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDA7XG5cdHdpZHRoOiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cblx0JjpiZWZvcmUsICYgPiBzcGFuIHtcblx0XHRwYWRkaW5nOiAxZW0gMS42ZW07XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG5cdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG5cdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1LCAwLCAwLjEyNSwgMSk7XG5cdH0gICAgXG5cdFxuXHQmID4gc3BhbiB7XG5cdCAgICBkaXNwbGF5OiBibG9jaztcblx0ICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cblxuXHQmOmJlZm9yZSB7XG5cdFx0Y29sb3I6ICRibHVlO1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcdCAgICBcblx0fVxuXG5cdCY6aG92ZXIge1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdCAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXHRcdH1cblx0XHQmID4gc3BhbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuXHRcdH1cblx0fVxuXG5cdCYuZGFyayB7XG5cdFx0Y29sb3I6ICRibHVlO1xuXHRcdGJhY2tncm91bmQ6ICR5ZWxsb3c7XG5cdFx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRcdGJvcmRlci1jb2xvcjogJHllbGxvdztcblx0XHRtYXJnaW4tdG9wOiAyNnB4O1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29sb3I6ICR5ZWxsb3c7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcblx0XHR9XG5cdH1cbn1cbmgyIHtcblx0Zm9udC1zaXplOiAyNnB4O1xuXHRtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuaDMge1xuXHRmb250LXNpemU6IDIycHg7XG5cdG1hcmdpbi1ib3R0b206IDI4cHg7XG59XG4uc3dpcGVyLWJ1dHRvbiB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcblx0JjphZnRlcnsgXG5cdFx0Y29udGVudDogbm9uZSFpbXBvcnRhbnQ7XG5cdH1cblxuXHQuYXJyb3cge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKC0uNzV0dXJuKTtcblx0XHRoZWlnaHQ6IDMycHg7XG5cdH0gXG5cblx0Ji1uZXh0IHtcdFx0XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogMDtcblxuXHRcdC5hcnJvdyB7IFxuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLjc1dHVybik7XG5cdFx0fVxuXHR9XG59XG4ud2hhdHNhcHAtYnV0dG9uIHtcblx0d2lkdGg6IDQ4cHg7XG5cdGhlaWdodDogNDhweDtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRib3R0b206IDEyMHB4O1xuXHRyaWdodDogMzBweDtcblx0ei1pbmRleDogMTI7XG5cblx0Lmljb24ge1xuXHRcdHRyYW5zaXRpb246IGFsbCA0MDBtcyBlYXNlO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMSk7XG5cdH1cblxuICAgICY6aG92ZXIgLmljb24ge1xuICAgIFx0dHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIH1cdFx0XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xuXHRcdHdpZHRoOiA1MnB4O1xuXHRcdGhlaWdodDogNTJweDtcblx0XHRib3R0b206IDQycHg7IFxuXHRcdHJpZ2h0OiA0MnB4O1xuXG5cdFx0Lmljb24ge1xuXHRcdFx0ZmlsdGVyOiBkcm9wLXNoYWRvdygycHggMnB4IDRweCByZ2JhKDAsMCwwLC40KSk7XG5cdFx0fVxuICAgIH1cbn1cbkBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XG5cblx0aDIge1xuXHRcdGZvbnQtc2l6ZTogMzhweDtcblx0XHRtYXJnaW4tYm90dG9tOiA0MnB4O1xuXHR9XG59IiwiLy8gRm9udHNcclxuJGZvbnQtYmFzZTpcdCdNb250c2VycmF0Jywgc2Fucy1zZXJpZjtcclxuXHJcbi8vIENvbG9yc1xyXG4kYmxhY2s6ICM0ZDRkNGQ7XHJcbiR3aGl0ZTogI2ZmZjtcclxuJHJlZDogI0VEMUIyNDtcclxuJGJsdWU6ICMwMDMzNjY7XHJcbiR5ZWxsb3c6ICNmYmQ1MjY7XHJcbiRvcmFuZ2U6ICNlODRlMjY7IiwiQG1peGluIGJyZWFrcG9pbnQoJHBvaW50KSB7XHJcblx0QGlmICRwb2ludCA9PSBiaWdkZXNrdG9wIHtcclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAxNzIwcHgpIHsgQGNvbnRlbnQgOyB9XHJcblx0fVxyXG5cdEBpZiAkcG9pbnQgPT0gZGVza3RvcCB7XHJcblx0XHRAbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7IEBjb250ZW50IDsgfVxyXG5cdH1cclxuXHRAZWxzZSBpZiAkcG9pbnQgPT0gbGFwdG9wIHtcclxuXHRcdEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsgQGNvbnRlbnQgOyB9XHJcblx0fVxyXG5cdEBlbHNlIGlmICRwb2ludCA9PSB0YWJsZXQge1xyXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IHBoYWJsZXQge1xyXG5cdFx0QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSAgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IG1vYmlsZWxhbmRzY2FwZSB7XHJcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IG1vYmlsZW9ubHkge1xyXG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSAgeyBAY29udGVudCA7IH1cclxuXHR9XHJcblx0QGVsc2UgaWYgJHBvaW50ID09IGJpZ21vYmlsZSB7XHJcblx0XHRAbWVkaWEgKG1pbi13aWR0aDogNDAwcHgpICB7IEBjb250ZW50IDsgfVxyXG5cdH1cclxufSIsIkBpbmNsdWRlIGJyZWFrcG9pbnQobGFwdG9wKSB7XG4gICAgICAgIFxuICAgIC5zY3JvbGxib3gge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICAuY29tZS1pbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDBweCk7XG4gICAgICAgIGFuaW1hdGlvbjogY29tZS1pbiAwLjhzIGVhc2UgZm9yd2FyZHMgLjZzO1xuICAgIH1cbiAgICAuY29tZS1pbjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC40cztcbiAgICB9XG4gICAgLmFscmVhZHktdmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lOyBcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgY29tZS1pbiB7XG4gICAgdG8geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IG9wYWNpdHk6IDE7IH1cbn0iLCIuaGVhZGVyIHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcblx0Ym9yZGVyLXJhZGl1czogMzBweDtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA2MHB4KTtcclxuXHRwYWRkaW5nOiAyMHB4IDMwcHg7XHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHotaW5kZXg6IDEwO1xyXG5cdGxlZnQ6IDMwcHg7XHJcbiAgICB0b3A6IDMwcHg7XHJcblxyXG5cdC5sb2dvIHtcclxuXHRcdHdpZHRoOiAxODBweDtcclxuXHRcdGhlaWdodDogYXV0bztcclxuXHRcdGRpc3BsYXk6IGJsb2NrOyBcclxuXHR9IFx0XHJcblxyXG5cdCZfX3RvZ2dsZSB7XHJcblx0ICAgIHdpZHRoOiAzMnB4O1xyXG5cdH1cclxuXHJcblx0Jl9fdG9nZ2xlLWxpbmUgeyAgXHJcblx0ICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cdCAgICBiYWNrZ3JvdW5kOiAkeWVsbG93OyBcclxuXHQgICAgd2lkdGg6IDEwMCU7XHJcblx0ICAgIGhlaWdodDogNHB4O1xyXG5cdCAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcblx0ICAgIG9wYWNpdHk6IDE7IFxyXG5cdCAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDYwMG1zIGVhc2UgMjAwbXMsIHRvcCAzMDBtcyBlYXNlLCBsZWZ0IDMwMG1zIGVhc2UsIGJhY2tncm91bmQgMzAwbXMgZWFzZSwgdHJhbnNmb3JtIDMwMG1zIGVhc2UgNDUwbXM7ICAgIFxyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCgxKSB7XHJcblx0XHQgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xyXG5cdFx0fVxyXG5cdFx0JjpudGgtY2hpbGQoMykge1xyXG5cdFx0ICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuXHRcdH1cclxuXHR9ICAgIFxyXG5cclxuXHQmLmZpeGVkIHtcclxuXHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdGFuaW1hdGlvbjogaGVhZGVyRml4IC41cyBlYXNlLW91dDtcclxuXHR9XHRcclxuXHJcblx0Ji5pcy1hY3RpdmUge1xyXG5cdCAgICB6LWluZGV4OiAxMTtcclxuXHJcblx0XHQuaGVhZGVyX190b2dnbGUtbGluZSB7XHJcblxyXG5cdFx0XHQmOm50aC1jaGlsZCgxKSB7XHJcblx0XHRcdCAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KSByb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHQgICAgYmFja2dyb3VuZDogJG9yYW5nZTtcclxuXHRcdFx0fVxyXG5cdFx0XHQmOm50aC1jaGlsZCgyKSB7XHJcblx0XHRcdCAgICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xyXG5cdFx0XHQgICAgb3BhY2l0eTogMDtcclxuXHRcdFx0fVxyXG5cdFx0XHQmOm50aC1jaGlsZCgzKSB7XHJcblx0XHRcdCAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgcm90YXRlKC00NWRlZyk7XHJcblx0XHRcdCAgICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0YmFja2dyb3VuZDogbm9uZTtcclxuXHRcdHRvcDogMzBweDtcclxuXHRcdGxlZnQ6IDQwcHg7XHJcblx0XHRcclxuXHRcdCZfX3RvZ2dsZSB7XHJcblx0XHQgICAgZGlzcGxheTogbm9uZTtcclxuXHRcdH1cdFxyXG5cclxuXHRcdCYuZml4ZWQge1xyXG5cdFx0XHQvLyBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ji5pcy1hY3RpdmUge1xyXG5cdFx0ICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdCAgICB6LWluZGV4OiAxMDtcclxuXHRcdH1cclxuXHR9XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuXHJcblx0XHQubG9nbyB7XHJcblx0XHRcdHdpZHRoOiAyNDBweDtcclxuXHRcdH0gXHRcclxuXHR9XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChiaWdkZXNrdG9wKSB7XHJcblx0XHRwYWRkaW5nOiAzNXB4IDYwcHggMDtcclxuXHR9XHJcbn1cclxuXHJcbnNlY3Rpb24ubWVudSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAxMDAlO1xyXG4gICAgei1pbmRleDogMTE7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogJG9yYW5nZTtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZSwgbGVmdCAxMDBtcyBlYXNlIDYwMG1zO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcblx0XHJcblx0Ji5pcy12aXNpYmxlIHtcclxuXHQgICAgbGVmdDogMDtcclxuXHQgICAgb3BhY2l0eTogMTtcclxuXHQgICAgdHJhbnNpdGlvbjogbGVmdCAxMDBtcyBlYXNlLCBvcGFjaXR5IDQwMG1zIGVhc2UgMjAwbXM7XHJcblx0ICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuXHR9XHJcblx0XHJcblx0Lm1lbnUtaW5uZXIge1xyXG5cdCAgICBtYXJnaW46IDA7XHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRcclxuXHRcdC5tZW51LWxpc3Qge1xyXG5cdFx0ICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcblx0XHQgICAgbWFyZ2luOiAwO1xyXG5cdFx0ICAgIHBhZGRpbmc6IDA7XHJcblx0XHQgICAgXHJcblx0XHRcdD4gbGkge1xyXG5cdFx0XHQgICAgZm9udC1zaXplOiAzMnB4OyAgIFxyXG5cdFx0XHQgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xyXG5cclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHQgICAgbGluZS1oZWlnaHQ6IDM4cHg7XHJcblx0XHRcdFx0ICAgIGNvbG9yOiAkd2hpdGU7XHJcblx0XHRcdFx0ICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcblx0XHRcdFx0ICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG5cdFx0XHRcdCAgICB0cmFuc2l0aW9uOiBjb2xvciAuM3MgZWFzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xyXG5cclxuXHRcdC5tZW51LWlubmVyIHtcclxuXHRcdFx0XHJcblx0XHRcdC5tZW51LWxpc3Qge1xyXG5cdFx0XHQgICAgXHJcblx0XHRcdFx0bGkge1xyXG5cdFx0XHRcdCAgICBmb250LXNpemU6IDM4cHg7IFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVx0XHJcblx0fVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRsZWZ0OiBhdXRvO1xyXG5cdFx0cmlnaHQ6IDQwcHg7XHJcblx0XHR0b3A6IDI2cHg7XHJcblx0XHR3aWR0aDogNjYwcHg7XHJcblx0XHR6LWluZGV4OiAxMTtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcblx0XHRwYWRkaW5nOiAwcHggMzZweDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcblx0XHRoZWlnaHQ6IDcycHg7XHJcblx0XHRhbGlnbi1pdGVtczogc3RyZXRjaDtcclxuXHRcdGJveC1zaGFkb3c6IDNweCAzcHggMTBweCAkYmxhY2s7XHJcblx0XHRcclxuXHRcdCYuZml4ZWQge1xyXG5cdFx0XHRwb3NpdGlvbjogZml4ZWQ7XHJcblx0XHRcdGFuaW1hdGlvbjogaGVhZGVyRml4IC41cyBlYXNlLW91dDtcclxuXHRcdH1cdFx0IFxyXG5cdFx0XHJcblx0XHQubWVudS1pbm5lciB7XHJcblx0XHRcdFxyXG5cdFx0XHQubWVudS1saXN0IHtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjY7XHJcblx0XHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHJcblx0XHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdFx0Ly8gbGluZS1oZWlnaHQ6IDM2cHg7XHJcblx0XHRcdFx0XHRcdGNvbG9yOiAkYmx1ZTtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDQwMG1zIGVhc2U7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFwdG9wKSB7XHJcblx0XHRoZWlnaHQ6IDYwcHg7XHJcblx0XHRcclxuXHRcdC5tZW51LWlubmVyIHtcclxuXHRcdFx0XHJcblx0XHRcdC5tZW51LWxpc3Qge1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGxpIHtcclxuXHRcdFxyXG5cdFx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcclxuXHRcdFx0XHRcdFx0Y29sb3I6ICRibHVlO1xyXG5cdFx0XHRcdFx0XHRmb250LXdlaWdodDogMzAwO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZTtcclxuXHRcclxuXHRcdFx0XHRcdFx0Jjpob3ZlciB7IFxyXG5cdFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA4MDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgaGVhZGVyRml4IHtcclxuICAwJSAgIHsgdG9wOiAtMTMwcHg7IH1cclxuICAxMDAlIHsgdG9wOiAzMHB4OyB9XHJcbn0iLCIuZm9vdGVyIHtcclxuXHRiYWNrZ3JvdW5kOiAkeWVsbG93O1xyXG5cdGNvbG9yOiAkYmx1ZTtcclxuXHRwYWRkaW5nOiA2MHB4IDMwcHg7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdGdhcDogMzBweDtcclxuXHRcclxuXHQubG9nbyB7XHJcblx0XHR3aWR0aDogMjIwcHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAzMnB4O1xyXG5cdH1cclxuXHJcblx0aDMgeyBcclxuXHRcdGNvbG9yOiAkb3JhbmdlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjZweDtcclxuXHR9XHJcblxyXG5cdHVsIHtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9pY29uLWlnLnN2ZycpIG5vLXJlcGVhdDtcclxuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAzMnB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIGNlbnRlcjtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OiA0MnB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNnB4O1xyXG5cclxuXHRcdFx0Ji5pbiB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvaWNvbi1pbi5zdmcnKTtcclxuXHRcdFx0fVxyXG5cdFx0XHQmLndzcCB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvaWNvbi13c3Auc3ZnJyk7XHJcblx0XHRcdH1cclxuXHRcdFx0Ji5lbWFpbCB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvaWNvbi1lbWFpbC5zdmcnKTtcclxuXHRcdFx0fVxyXG5cdFx0XHQmLndlYiB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvaWNvbi13ZWIuc3ZnJyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAzMnB4O1xyXG5cdFx0XHRjb2xvcjogJGJsdWU7XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRjb2xvcjogJG9yYW5nZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcblx0XHRwYWRkaW5nOiA2MHB4O1xyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHsgXHJcblx0XHRwYWRkaW5nOiAxMDBweDtcdFx0XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuXHRcdC5sb2dvIHtcclxuXHRcdFx0Ly8gd2lkdGg6IDI4MHB4OyBcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzhweDtcclxuXHRcdH1cclxuXHRcdFxyXG4gICAgICAgIGgzIHtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAzMnB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzOHB4O1xyXG4gICAgICAgIH0gIFxyXG5cdH1cclxufVxyXG5cclxuLnNpZ24ge1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRwYWRkaW5nOiAyMnB4O1xyXG5cdGZvbnQtc2l6ZTogMTRweDtcclxuXHRcclxuXHRhIHtcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblx0XHRjb2xvcjogJGJsYWNrO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRjb2xvcjogJG9yYW5nZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcblx0XHRmb250LXNpemU6IDE2cHg7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OiA2MHB4O1x0XHJcblx0fVxyXG4gfSIsIi5oZXJvIHtcclxuXHRiYWNrZ3JvdW5kOiAkYmx1ZSB1cmwoJy4uL2ltZy9iZy1oZXJvLnN2ZycpIG5vLXJlcGVhdCAzMHZ3IC0yMHZ3O1xyXG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG5cdGRpc3BsYXk6IGZsZXg7IFxyXG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuXHRwYWRkaW5nOiAxNjBweCAzMHB4IDQwcHg7XHJcblx0Y29sb3I6ICR3aGl0ZTtcclxuXHRcclxuXHQmX3RhZ2xpbmUge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHRcdFxyXG5cdFx0Z2FwOiAyMnB4O1xyXG5cdFx0XHJcblx0XHRoMSB7IFxyXG5cdFx0XHRmb250LXNpemU6IDM2cHg7XHJcblx0XHRcdGFuaW1hdGlvbjogdGV4dC1mb2N1cy1pbiAxcyBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDg1LCAwLjY4MCwgMC41MzApIGJvdGg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRmb250LXNpemU6IDIycHg7XHJcblx0XHRcdGFuaW1hdGlvbjogdGV4dC1mb2N1cy1pbiAxcyBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDg1LCAwLjY4MCwgMC41MzApIGJvdGggLjNzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuYnV0dG9uIHtcclxuXHRcdHdpZHRoOiBmaXQtY29udGVudDtcclxuXHRcdGJvcmRlci1jb2xvcjogJG9yYW5nZTtcclxuXHRcdGJhY2tncm91bmQ6ICRvcmFuZ2U7XHJcblx0XHRtYXJnaW4tdG9wOiAxMnB4O1xyXG5cdFx0YW5pbWF0aW9uOiB0ZXh0LWZvY3VzLWluIDFzIGN1YmljLWJlemllcigwLjU1MCwgMC4wODUsIDAuNjgwLCAwLjUzMCkgYm90aCAuNnM7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6ICRvcmFuZ2U7XHJcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xyXG5cdFx0cGFkZGluZzogMCA2MHB4IDgwcHg7XHJcblxyXG5cdFx0aDEge1xyXG5cdFx0XHRmb250LXNpemU6IDQ4cHg7XHJcblx0XHR9XHJcblx0XHRwIHtcclxuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xyXG5cdFx0fVxyXG5cdFx0Jl90YWdsaW5lIHtcclxuXHRcdFx0d2lkdGg6IDkwJTtcclxuXHRcdFx0Ym90dG9tOiAxMDBweDtcclxuXHRcdH1cdFxyXG5cdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNDB2dyAtMTB2aDtcclxuXHJcblx0XHRoMSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogNTZweDtcclxuXHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCZfdGFnbGluZSB7XHJcblx0XHRcdHdpZHRoOiA3MCU7XHJcblx0XHRcdGdhcDogMzJweDtcclxuXHRcdH1cdFx0XHRcclxuXHR9XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcdFxyXG5cdFx0YW5pbWF0aW9uOiBjb2xvci1jaGFuZ2UtMnggMnMgbGluZWFyIGluZmluaXRlIGFsdGVybmF0ZSBib3RoO1xyXG5cdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcdFxyXG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTB2dyAtMTB2aDtcclxuXHRcdHBhZGRpbmc6IDAgMTAwcHggMTAwcHg7XHRcdFx0XHJcblx0fVxyXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoYmlnZGVza3RvcCkge1xyXG5cclxuXHRcdGgxIHtcclxuXHRcdFx0Zm9udC1zaXplOiA2OHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBHZW5lcmF0ZWQgYnkgQW5pbWlzdGEgb24gMjAyNS0xMS0xMSAxNToyNTozOVxyXG4gKiBMaWNlbnNlZCB1bmRlciBGcmVlQlNEIExpY2Vuc2UuXHJcbiAqIFNlZSBodHRwOi8vYW5pbWlzdGEubmV0L2xpY2Vuc2UgZm9yIG1vcmUgaW5mby4gXHJcbiAqIHc6IGh0dHA6Ly9hbmltaXN0YS5uZXQsIHQ6IEBjc3NhbmltaXN0YVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4vKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBhbmltYXRpb24gY29sb3ItY2hhbmdlLTJ4XHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICovXHJcblxyXG5Aa2V5ZnJhbWVzIGNvbG9yLWNoYW5nZS0yeCB7XHJcbiAgMCUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzM2NjtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDE1NmFjO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogR2VuZXJhdGVkIGJ5IEFuaW1pc3RhIG9uIDIwMjEtNi0xNyAxMTozMDo0M1xyXG4gKiBMaWNlbnNlZCB1bmRlciBGcmVlQlNEIExpY2Vuc2UuXHJcbiAqIFNlZSBodHRwOi8vYW5pbWlzdGEubmV0L2xpY2Vuc2UgZm9yIG1vcmUgaW5mby4gXHJcbiAqIHc6IGh0dHA6Ly9hbmltaXN0YS5uZXQsIHQ6IEBjc3NhbmltaXN0YVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXHJcblxyXG4vKipcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBhbmltYXRpb24gdGV4dC1mb2N1cy1pblxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG4gQC13ZWJraXQta2V5ZnJhbWVzIHRleHQtZm9jdXMtaW4ge1xyXG5cdDAlIHtcclxuXHQgIC13ZWJraXQtZmlsdGVyOiBibHVyKDEycHgpO1xyXG5cdFx0XHQgIGZpbHRlcjogYmx1cigxMnB4KTtcclxuXHQgIG9wYWNpdHk6IDA7XHJcblx0fVxyXG5cdDEwMCUge1xyXG5cdCAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoMHB4KTtcclxuXHRcdFx0ICBmaWx0ZXI6IGJsdXIoMHB4KTtcclxuXHQgIG9wYWNpdHk6IDE7XHJcblx0fVxyXG4gIH1cclxuICBAa2V5ZnJhbWVzIHRleHQtZm9jdXMtaW4ge1xyXG5cdDAlIHtcclxuXHQgIC13ZWJraXQtZmlsdGVyOiBibHVyKDEycHgpO1xyXG5cdFx0XHQgIGZpbHRlcjogYmx1cigxMnB4KTtcclxuXHQgIG9wYWNpdHk6IDA7XHJcblx0fVxyXG5cdDEwMCUge1xyXG5cdCAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoMHB4KTtcclxuXHRcdFx0ICBmaWx0ZXI6IGJsdXIoMHB4KTtcclxuXHQgIG9wYWNpdHk6IDE7XHJcblx0fVxyXG4gIH0iLCIuZG8ge1xyXG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XHJcbiAgICBcclxuXHRhbmltYXRpb246IGNvbG9yLWNoYW5nZS0yeCAycyBsaW5lYXIgaW5maW5pdGUgYWx0ZXJuYXRlIGJvdGg7XHJcbiAgICBwYWRkaW5nOiA0MHB4IDMwcHggMDtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cdFxyXG4gICAgLml0ZW1zIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInOyBcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkb3JhbmdlO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogLTI0cHg7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDU5cHg7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogOHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yb2NrZXQge1xyXG4gICAgICAgIHdpZHRoOiAxNTB2dztcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM4JSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgJi5jb21lLWluIHtcclxuICAgICAgICAgICAgYW5pbWF0aW9uOiBzbGlkZS1pbi1ib3R0b20gMXMgY3ViaWMtYmV6aWVyKDAuMjUwLCAwLjQ2MCwgMC40NTAsIDAuOTQwKSBib3RoIC4zcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcbiAgICAgICAgcGFkZGluZzogMCA2MHB4IDAgMDtcclxuICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLnJvY2tldCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiA1MHZ3O1xyXG4gICAgICAgICAgICBvcmRlcjogLTE7IFxyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAydmgpOyAgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuY29udGVudCB7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5pdGVtcyB7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDQyMHB4O1xyXG5cclxuICAgICAgICAuY29udGVudCB7XHJcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGF1dG87XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyNSU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuICAgICAgICBtYXgtaGVpZ2h0OiA2MHZoO1xyXG5cclxuICAgICAgICAuY29udGVudCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAucm9ja2V0IHtcclxuICAgICAgICAgICAgd2lkdGg6IDU0dnc7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC00dmgsIDApOyAgXHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICB9XHJcbn1cclxuXHJcbi53b3JrIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICR5ZWxsb3c7XHJcbiAgICBwYWRkaW5nOiA0MHB4IDMwcHggNjBweDtcclxuICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDkwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMjJweDsgXHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLW91dDtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfSBcclxuXHJcbiAgICAuaXRlbXMge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgIHJvdy1nYXA6IDMwcHg7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgZmxleDogMiAxIDUwJTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcbiAgICAgICAgcGFkZGluZzogNjBweDtcclxuICAgICAgICBcclxuICAgICAgICAuaXRlbXMge1xyXG4gICAgICAgICAgICBnYXA6IDIwcHg7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAyIDEgMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcbiAgICAgICAgcGFkZGluZzogMTAwcHg7XHJcblxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuICAgICAgICBcclxuICAgICAgICAuaXRlbXMge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDcwdnc7XHJcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi52YWx1ZXMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcclxuICAgIHBhZGRpbmc6IDQwcHggMzBweCA2MHB4O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIFxyXG4gICAgLml0ZW1zIHtcclxuICAgICAgICBcclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1MnB4O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJzEuJztcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0MnB4O1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOyBcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogLTNweDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IDA7IFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKTpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJzIuJzsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMyk6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICczLic7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDQpOmJlZm9yZSB7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnNC4nOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOm50aC1jaGlsZCg1KTpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgY29udGVudDogJzUuJzsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcbiAgICAgICAgcGFkZGluZzogNjBweDtcclxuICAgICAgICBcclxuICAgICAgICAuaXRlbXMge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBnYXA6IDUwcHg7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAyIDEgNDAlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiAxMDBweDtcclxuXHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7ICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgLml0ZW1zIHtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGZsZXg6ICAwIDAgY2FsYygoMTAwJSAtIDEwMHB4KSAvIDMpOyAvKiAzIHBlciByb3cgKi9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5pdGVtcyB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNzB2dztcclxuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICAgIH1cclxuICAgIH0gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGJpZ2Rlc2t0b3ApIHtcclxuICAgICAgICBcclxuICAgICAgICAuaXRlbXMge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDYwdnc7XHJcbiAgICAgICAgICAgIGdhcDogNjVweDtcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGZsZXg6ICAwIDAgY2FsYygoMTAwJSAtIDEzMHB4KSAvIDMpOyAvKiAzIHBlciByb3cgKi9cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0gICAgXHJcbn1cclxuXHJcbi5zZXJ2aWNlcyB7XHJcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9iZy1zZXJ2aWNlcy1tLmpwZycpIG5vLXJlcGVhdCByaWdodDtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IFxyXG4gICAgcGFkZGluZzogNDBweCAzMHB4IDYwcHg7XHJcbiAgICBjb2xvcjogJGJsYWNrOyAgIFxyXG4gICAgXHJcbiAgICBoMiB7XHJcbiAgICAgICAgY29sb3I6ICRibHVlOyBcclxuICAgIH1cclxuXHJcbiAgICBoMyB7XHJcbiAgICAgICAgLy8gY29sb3I6ICR5ZWxsb3c7XHJcbiAgICB9IFxyXG5cclxuICAgIGg0IHtcclxuICAgICAgICBjb2xvcjogJG9yYW5nZTtcclxuICAgICAgICBtYXJnaW46IDMycHggMCAxNnB4IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbnRlbnQge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBwYWRkaW5nOiA0MHB4IDMwcHggMzBweDtcclxuICAgICAgICBcclxuICAgICAgICBoMiB7ICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHllbGxvdztcclxuICAgICAgICAgICAgcGFkZGluZzogMTBweCAxOHB4OyBcclxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gNDJweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmxpc3Qge1xyXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuXHJcbiAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICfigKInOyBcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgICAgIGxlZnQ6IC0yNHB4O1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA1OXB4O1xyXG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDhweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0gICAgXHJcblxyXG5cdC5idXR0b24ge1xyXG5cdFx0d2lkdGg6IGZpdC1jb250ZW50O1xyXG5cdFx0bWFyZ2luOiAzMnB4IGF1dG8gMDtcclxuXHRcdFxyXG5cdFx0JiA+IHNwYW4ge1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xyXG5cdFx0fVxyXG4gICAgICAgIFxyXG5cdFx0JjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XHJcblx0XHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG4gICAgJi5wcm95ZWN0cyB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYmctcHJveWVjdHMuanBnJyk7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgICAgICAubGluZSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM2cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjJweDtcclxuXHJcbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJG9yYW5nZTtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocGhhYmxldCkge1xyXG4gICAgICAgIHBhZGRpbmc6IDYwcHg7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLmNvbnRlbnQge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA0MHB4O1xyXG4gICAgICAgIH1cclxuICAgIH0gXHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQodGFibGV0KSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvYmctc2VydmljZXMuanBnJyk7XHJcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGxlZnQ7IFxyXG4gICAgICAgIGJhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZDtcclxuICAgICAgICBwYWRkaW5nOiAxMDBweDtcclxuICAgICAgICBcclxuICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAuY29udGVudCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDQwcHg7XHJcbiAgICAgICAgIFxyXG4gICAgICAgICAgICBoMiB7XHJcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7ICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSAgICAgICAgXHJcbiAgICB9ICAgIFxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5jb250ZW50IHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA3MHZ3O1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA4MHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuXHJcbiAgICAgICAgICAgICYuY3JtIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgIGgyIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMzZweDsgICAgICAgIFxyXG4gICAgICAgICAgICB9ICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfSBcclxufVxyXG5cclxuLmNybSB7XHJcbiAgICBtYXJnaW4tdG9wOiA2MHB4OyBcclxuICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIG1hcmdpbjogMDsgXHJcbiAgICB9IFxyXG5cclxuICAgIC5pdGVtcyB7XHJcbiAgICAgICAgbWFyZ2luOiA0OHB4IGF1dG87XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDcwcHggYXV0bztcclxuICAgICAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG5cdC5idXR0b24ge1xyXG5cdFx0d2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgICAgIC8vIG1hcmdpbjogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiA2MHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLml0ZW1zIHtcclxuICAgICAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgbGkgeyBcclxuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTBweCBhdXRvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiAxMDBweDtcclxuXHJcbiAgICAgICAgaDIsIGgyICsgcCB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuICAgICAgICBcclxuICAgICAgICAuaXRlbXMge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDcwdnc7XHJcbiAgICAgICAgICAgIGdhcDogNDBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5pbXB1bHNlIHtcclxuICAgIHBhZGRpbmc6IDYwcHggMzBweDtcclxuICAgIGJhY2tncm91bmQ6ICRibHVlIHVybCgnLi4vaW1nL2JnLWltcHVsc2Uuc3ZnJykgbm8tcmVwZWF0O1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIHJpZ2h0O1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiA2MHZ3O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuXHJcbiAgICBoMiB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMThweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG5cclxuICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoMyB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGNvbG9yOiAkb3JhbmdlO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMThweDtcclxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbjogNDJweCAwIDY4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgcCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcclxuXHJcbiAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgY29sb3I6ICR5ZWxsb3c7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIG1hcmdpbjogMCAwIDE4cHggMDsgXHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLW91dDtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC5ncmlkLWl0ZW1zIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgZ2FwOiAzMHB4O1xyXG5cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgcGFkZGluZzogNDBweCAzMHB4O1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG5cclxuICAgICAgICAgICAgcCB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsdWU7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5pdGVtcyB7XHJcbiAgICAgICAgbWFyZ2luOiA0OHB4IGF1dG87XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDcwcHggYXV0bztcclxuICAgICAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgIH0gICAgXHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAzNnZ3OyBcclxuICAgICAgICBwYWRkaW5nOiA2MHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5pY29uIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICAuZ3JpZC1pdGVtcyB7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcclxuXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGZsZXg6ICAwIDAgY2FsYygoMTAwJSAtIDMwcHgpIC8gMik7XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHN0cm9uZyB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogNDJ2dztcclxuICAgICAgICBwYWRkaW5nOiAxMDBweDtcclxuICAgICAgICBcclxuICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjB2dzsgXHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHB4O1xyXG4gICAgICAgIH0gIFxyXG5cclxuICAgICAgICAuZ3JpZC1pdGVtcyB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgY2FsYygoMTAwJSAtIDkwcHgpIC8gNCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLml0ZW1zIHtcclxuICAgICAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDk2MHB4O1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4MHB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBsaSB7IFxyXG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA5MHB4IGF1dG87XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ICAgICAgICBcclxuXHJcbiAgICAgICAgLmJvdHRvbSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblxyXG4gICAgICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHVuc2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAuaXRlbXMge1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDQwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFwdG9wKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgLml0ZW1zIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA3MHZ3O1xyXG4gICAgICAgICAgICBnYXA6IDQwcHg7XHJcbiAgICAgICAgfSBcclxuXHJcbiAgICAgICAgLmdyaWQtaXRlbXMsIC5pdGVtcyB7XHJcblxyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9ICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfSAgIFxyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoZGVza3RvcCkge1xyXG4gICAgICAgIFxyXG4gICAgICAgIC53cmFwcGVyIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA3MHZ3O1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbn1cclxuXHJcbi5yZWQge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7IFxyXG4gICAgcGFkZGluZzogNDBweCAzMHB4IDYwcHg7XHJcblxyXG4gICAgLnRvcCB7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMzZweDtcclxuICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ib3R0b20ge1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgICAgIG1heC13aWR0aDogNzIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcbiAgICAgICAgcGFkZGluZzogNjBweDtcclxuICAgICAgICBcclxuICAgIH0gICAgXHJcblxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiAxMDBweDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgLnRvcCB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQycHg7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogNDIwcHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYm90dG9tIHtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA4NjBweDtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgIH0gICAgXHJcbn0gXHJcblxyXG4udGVhbSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xyXG4gICAgcGFkZGluZzogNjBweCAzMHB4O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAuaWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDkwcHg7XHJcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMjJweDsgXHJcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLW91dDtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyAgICAgICAgXHJcbiAgICB9IFxyXG5cclxuICAgIC5pdGVtcyB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgcm93LWdhcDogMzBweDtcclxuICAgICAgICBtYXJnaW46IDYwcHggYXV0bztcclxuXHJcbiAgICAgICAgbGkge1xyXG4gICAgICAgICAgICBmbGV4OiAyIDEgNTAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDg2MHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgaDMge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgICAgICAgbWFyZ2luOiA2MnB4IDAgNDhweDtcclxuICAgIH1cclxuXHJcbiAgICAudGVhbWxpZGVycyB7XHJcblxyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcclxuXHJcbiAgICAgICAgICAgIGltZyB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0byAxOHB4O1xyXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyNzBweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgc3Ryb25nIHtcclxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiA2MHB4O1xyXG4gICAgICAgIFxyXG4gICAgICAgIC5pdGVtcyB7XHJcbiAgICAgICAgICAgIGdhcDogMjBweDtcclxuICAgICAgICAgICAgbWF4LXdpZHRoOiA2ODBweDtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgIGZsZXg6IDIgMSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAudGVhbWxpZGVycyB7XHJcbiAgICAgICAgICAgIG1heC13aWR0aDogMTI4MHB4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xyXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG4gICAgICAgICAgICBnYXA6IDMwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG5cclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiAxMDBweDtcclxuICAgICAgICBcclxuICAgICAgICBoMyB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcclxuICAgICAgICB9ICAgICAgICBcclxuICAgICAgICBcclxuICAgICAgICAudGVhbWxpZGVycyB7XHJcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XHJcbiAgICAgICAgICAgIGdhcDogNDBweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcHRvcCkge1xyXG5cclxuICAgICAgICAuaXRlbXMge1xyXG4gICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLmljb24ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uY2xpZW50cyB7XHJcbiAgICBwYWRkaW5nOiA2MHB4IDMwcHg7XHJcbiAgICBjb2xvcjogJGJsdWU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgaW1nIHtcclxuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcclxuICAgICAgICB3aWR0aDogYXV0bztcclxuICAgICAgICBtYXJnaW46IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLnN3aXBlci1jb250YWluZXIge1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAgXHJcbiAgICB9XHJcbiAgICAgICAgXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBoYWJsZXQpIHtcclxuICAgICAgICBwYWRkaW5nOiA2MHB4O1xyXG4gICAgICAgXHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHRhYmxldCkge1xyXG4gICAgICAgIHBhZGRpbmc6IDEwMHB4OyBcclxuICAgIFxyXG4gICAgfVxyXG59XHJcblxyXG4uY29udGFjdG8ge1xyXG4gICAgcGFkZGluZzogNjBweCAzMHB4O1xyXG4gICAgY29sb3I6ICRibHVlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgXHJcbn1cclxuXHJcbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogR2VuZXJhdGVkIGJ5IEFuaW1pc3RhIG9uIDIwMjUtMTEtMTEgMTM6NDM6NDlcclxuICogTGljZW5zZWQgdW5kZXIgRnJlZUJTRCBMaWNlbnNlLlxyXG4gKiBTZWUgaHR0cDovL2FuaW1pc3RhLm5ldC9saWNlbnNlIGZvciBtb3JlIGluZm8uIFxyXG4gKiB3OiBodHRwOi8vYW5pbWlzdGEubmV0LCB0OiBAY3NzYW5pbWlzdGFcclxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xyXG5cclxuLyoqXHJcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICogYW5pbWF0aW9uIHNsaWRlLWluLWJvdHRvbVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGUtaW4tYm90dG9tIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcbkBrZXlmcmFtZXMgc2xpZGUtaW4tYm90dG9tIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwMHB4KTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgfVxyXG59XHJcbiIsIi5jb250YWN0IHtcclxuXHRiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcblxyXG5cdCZfdGl0bGUge1xyXG5cdFx0Y29sb3I6ICR3aGl0ZTsgXHJcblx0XHRmb250LXNpemU6IDMycHg7XHJcblx0XHRwYWRkaW5nOiA0OHB4O1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdH1cclxuXHJcblx0Zm9ybSB7XHJcblx0XHRwYWRkaW5nOiAwIDQ4cHggNDhweDtcclxuXHRcdFxyXG5cdFx0aW5wdXQsdGV4dGFyZWEge1xyXG5cdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cclxuXHRcdFx0Jjo6cGxhY2Vob2xkZXIge1xyXG5cdFx0XHR9XHRcclxuXHJcblx0XHRcdCY6Zm9jdXMge1xyXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHJlZDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOjpwbGFjZWhvbGRlciB7XHJcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVx0XHRcdFxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChwaGFibGV0KSB7XHJcblxyXG5cdFx0Zm9ybSB7XHJcblx0XHRcdG1heC13aWR0aDogNzAlO1xyXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdH1cclxuXHR9XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludCh0YWJsZXQpIHtcclxuXHRcdHBhZGRpbmc6IDAgNjBweCA0MHB4O1xyXG5cdFx0XHJcblx0XHRmb3JtIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdG1heC13aWR0aDogbm9uZTtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdCAgICBkaXNwbGF5OiBncmlkO1xyXG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG5cdFx0XHRncmlkLWdhcDogMjZweDtcclxuXHRcdFx0XHJcblx0XHRcdCoge21hcmdpbjogMDt9IFxyXG5cclxuXHRcdFx0aW5wdXQgeyAgICAgICAgXHRcclxuXHRcdFx0XHRncmlkLWNvbHVtbjogMSAvIDI7XHJcblx0XHRcdFx0cGFkZGluZzogOXB4O1xyXG5cdFx0XHRcdGhlaWdodDogNDRweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRzZWxlY3Qge1xyXG5cdFx0XHRcdGdyaWQtY29sdW1uOiAyIC8gMztcdFxyXG5cdFx0XHRcdGdyaWQtcm93OiAxIC8gMjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0ZXh0YXJlYSB7ICAgICAgICBcclxuXHRcdFx0XHRncmlkLWNvbHVtbjogMiAvIDM7XHRcclxuXHRcdFx0XHRncmlkLXJvdzogMSAvIDM7XHJcblx0XHRcdFx0cGFkZGluZzogOXB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC5idXR0b25fX3JheWVuIHtcclxuXHRcdFx0XHRncmlkLWNvbHVtbjogMiAvIDM7XHRcclxuXHRcdFx0XHRncmlkLXJvdzogMyAvIDQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXB0b3ApIHtcclxuXHRcdFxyXG5cdFx0Zm9ybSB7XHJcblx0XHRcdC8vIHdpZHRoOiA4MDBweDtcclxuXHRcdH1cdFx0XHRcdFxyXG5cdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGRlc2t0b3ApIHtcclxuXHRcdHBhZGRpbmc6IDAgMCA0MHB4O1x0XHRcclxuXHRcdFxyXG5cdH1cclxuXHRAaW5jbHVkZSBicmVha3BvaW50KGJpZ2Rlc2t0b3ApIHtcclxuXHRcdHBhZGRpbmc6IDAgMCA4MHB4O1x0XHRcclxuXHJcblx0XHRmb3JtIHtcclxuXHRcdFx0d2lkdGg6IDExMDBweDtcclxuXHRcdH1cdFx0XHRcclxuXHR9XHJcbn0iXX0= */
