/**
 * Foundation for Sites
 * Version 6.6.3
 * https://get.foundation
 * Licensed under MIT Open Source
 */
.grid-container {
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  max-width: 75rem;
  margin-left: auto;
  margin-right: auto; }
  @media print, screen and (min-width: 48em) {
    .grid-container {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }
  .grid-container.fluid {
    padding-right: 0.625rem;
    padding-left: 0.625rem;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto; }
    @media print, screen and (min-width: 48em) {
      .grid-container.fluid {
        padding-right: 0.9375rem;
        padding-left: 0.9375rem; } }
  .grid-container.full {
    padding-right: 0;
    padding-left: 0;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto; }

.grid-x {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap; }

.cell {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  min-height: 0px;
  min-width: 0px;
  width: 100%; }
  .cell.auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .cell.shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }

.grid-x > .auto {
  width: auto; }

.grid-x > .shrink {
  width: auto; }

.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
  -webkit-flex-basis: auto;
      -ms-flex-preferred-size: auto;
          flex-basis: auto; }

@media print, screen and (min-width: 48em) {
  .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto; } }

@media print, screen and (min-width: 64em) {
  .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto; } }

.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }

.grid-x > .small-1 {
  width: 8.33333%; }

.grid-x > .small-2 {
  width: 16.66667%; }

.grid-x > .small-3 {
  width: 25%; }

.grid-x > .small-4 {
  width: 33.33333%; }

.grid-x > .small-5 {
  width: 41.66667%; }

.grid-x > .small-6 {
  width: 50%; }

.grid-x > .small-7 {
  width: 58.33333%; }

.grid-x > .small-8 {
  width: 66.66667%; }

.grid-x > .small-9 {
  width: 75%; }

.grid-x > .small-10 {
  width: 83.33333%; }

.grid-x > .small-11 {
  width: 91.66667%; }

.grid-x > .small-12 {
  width: 100%; }

@media print, screen and (min-width: 48em) {
  .grid-x > .medium-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto; }
  .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
  .grid-x > .medium-shrink {
    width: auto; }
  .grid-x > .medium-1 {
    width: 8.33333%; }
  .grid-x > .medium-2 {
    width: 16.66667%; }
  .grid-x > .medium-3 {
    width: 25%; }
  .grid-x > .medium-4 {
    width: 33.33333%; }
  .grid-x > .medium-5 {
    width: 41.66667%; }
  .grid-x > .medium-6 {
    width: 50%; }
  .grid-x > .medium-7 {
    width: 58.33333%; }
  .grid-x > .medium-8 {
    width: 66.66667%; }
  .grid-x > .medium-9 {
    width: 75%; }
  .grid-x > .medium-10 {
    width: 83.33333%; }
  .grid-x > .medium-11 {
    width: 91.66667%; }
  .grid-x > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .grid-x > .large-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px;
    width: auto; }
  .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
  .grid-x > .large-shrink {
    width: auto; }
  .grid-x > .large-1 {
    width: 8.33333%; }
  .grid-x > .large-2 {
    width: 16.66667%; }
  .grid-x > .large-3 {
    width: 25%; }
  .grid-x > .large-4 {
    width: 33.33333%; }
  .grid-x > .large-5 {
    width: 41.66667%; }
  .grid-x > .large-6 {
    width: 50%; }
  .grid-x > .large-7 {
    width: 58.33333%; }
  .grid-x > .large-8 {
    width: 66.66667%; }
  .grid-x > .large-9 {
    width: 75%; }
  .grid-x > .large-10 {
    width: 83.33333%; }
  .grid-x > .large-11 {
    width: 91.66667%; }
  .grid-x > .large-12 {
    width: 100%; } }

.grid-margin-x:not(.grid-x) > .cell {
  width: auto; }

.grid-margin-y:not(.grid-y) > .cell {
  height: auto; }

.grid-margin-x {
  margin-left: -0.625rem;
  margin-right: -0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-x {
      margin-left: -0.9375rem;
      margin-right: -0.9375rem; } }
  .grid-margin-x > .cell {
    width: calc(100% - 1.25rem);
    margin-left: 0.625rem;
    margin-right: 0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-x > .cell {
      width: calc(100% - 1.875rem);
      margin-left: 0.9375rem;
      margin-right: 0.9375rem; } }
  .grid-margin-x > .auto {
    width: auto; }
  .grid-margin-x > .shrink {
    width: auto; }
  .grid-margin-x > .small-1 {
    width: calc(8.33333% - 1.25rem); }
  .grid-margin-x > .small-2 {
    width: calc(16.66667% - 1.25rem); }
  .grid-margin-x > .small-3 {
    width: calc(25% - 1.25rem); }
  .grid-margin-x > .small-4 {
    width: calc(33.33333% - 1.25rem); }
  .grid-margin-x > .small-5 {
    width: calc(41.66667% - 1.25rem); }
  .grid-margin-x > .small-6 {
    width: calc(50% - 1.25rem); }
  .grid-margin-x > .small-7 {
    width: calc(58.33333% - 1.25rem); }
  .grid-margin-x > .small-8 {
    width: calc(66.66667% - 1.25rem); }
  .grid-margin-x > .small-9 {
    width: calc(75% - 1.25rem); }
  .grid-margin-x > .small-10 {
    width: calc(83.33333% - 1.25rem); }
  .grid-margin-x > .small-11 {
    width: calc(91.66667% - 1.25rem); }
  .grid-margin-x > .small-12 {
    width: calc(100% - 1.25rem); }
  @media print, screen and (min-width: 48em) {
    .grid-margin-x > .auto {
      width: auto; }
    .grid-margin-x > .shrink {
      width: auto; }
    .grid-margin-x > .small-1 {
      width: calc(8.33333% - 1.875rem); }
    .grid-margin-x > .small-2 {
      width: calc(16.66667% - 1.875rem); }
    .grid-margin-x > .small-3 {
      width: calc(25% - 1.875rem); }
    .grid-margin-x > .small-4 {
      width: calc(33.33333% - 1.875rem); }
    .grid-margin-x > .small-5 {
      width: calc(41.66667% - 1.875rem); }
    .grid-margin-x > .small-6 {
      width: calc(50% - 1.875rem); }
    .grid-margin-x > .small-7 {
      width: calc(58.33333% - 1.875rem); }
    .grid-margin-x > .small-8 {
      width: calc(66.66667% - 1.875rem); }
    .grid-margin-x > .small-9 {
      width: calc(75% - 1.875rem); }
    .grid-margin-x > .small-10 {
      width: calc(83.33333% - 1.875rem); }
    .grid-margin-x > .small-11 {
      width: calc(91.66667% - 1.875rem); }
    .grid-margin-x > .small-12 {
      width: calc(100% - 1.875rem); }
    .grid-margin-x > .medium-auto {
      width: auto; }
    .grid-margin-x > .medium-shrink {
      width: auto; }
    .grid-margin-x > .medium-1 {
      width: calc(8.33333% - 1.875rem); }
    .grid-margin-x > .medium-2 {
      width: calc(16.66667% - 1.875rem); }
    .grid-margin-x > .medium-3 {
      width: calc(25% - 1.875rem); }
    .grid-margin-x > .medium-4 {
      width: calc(33.33333% - 1.875rem); }
    .grid-margin-x > .medium-5 {
      width: calc(41.66667% - 1.875rem); }
    .grid-margin-x > .medium-6 {
      width: calc(50% - 1.875rem); }
    .grid-margin-x > .medium-7 {
      width: calc(58.33333% - 1.875rem); }
    .grid-margin-x > .medium-8 {
      width: calc(66.66667% - 1.875rem); }
    .grid-margin-x > .medium-9 {
      width: calc(75% - 1.875rem); }
    .grid-margin-x > .medium-10 {
      width: calc(83.33333% - 1.875rem); }
    .grid-margin-x > .medium-11 {
      width: calc(91.66667% - 1.875rem); }
    .grid-margin-x > .medium-12 {
      width: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-x > .large-auto {
      width: auto; }
    .grid-margin-x > .large-shrink {
      width: auto; }
    .grid-margin-x > .large-1 {
      width: calc(8.33333% - 1.875rem); }
    .grid-margin-x > .large-2 {
      width: calc(16.66667% - 1.875rem); }
    .grid-margin-x > .large-3 {
      width: calc(25% - 1.875rem); }
    .grid-margin-x > .large-4 {
      width: calc(33.33333% - 1.875rem); }
    .grid-margin-x > .large-5 {
      width: calc(41.66667% - 1.875rem); }
    .grid-margin-x > .large-6 {
      width: calc(50% - 1.875rem); }
    .grid-margin-x > .large-7 {
      width: calc(58.33333% - 1.875rem); }
    .grid-margin-x > .large-8 {
      width: calc(66.66667% - 1.875rem); }
    .grid-margin-x > .large-9 {
      width: calc(75% - 1.875rem); }
    .grid-margin-x > .large-10 {
      width: calc(83.33333% - 1.875rem); }
    .grid-margin-x > .large-11 {
      width: calc(91.66667% - 1.875rem); }
    .grid-margin-x > .large-12 {
      width: calc(100% - 1.875rem); } }

.grid-padding-x .grid-padding-x {
  margin-right: -0.625rem;
  margin-left: -0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-x .grid-padding-x {
      margin-right: -0.9375rem;
      margin-left: -0.9375rem; } }

.grid-container:not(.full) > .grid-padding-x {
  margin-right: -0.625rem;
  margin-left: -0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-container:not(.full) > .grid-padding-x {
      margin-right: -0.9375rem;
      margin-left: -0.9375rem; } }

.grid-padding-x > .cell {
  padding-right: 0.625rem;
  padding-left: 0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-x > .cell {
      padding-right: 0.9375rem;
      padding-left: 0.9375rem; } }

.small-up-1 > .cell {
  width: 100%; }

.small-up-2 > .cell {
  width: 50%; }

.small-up-3 > .cell {
  width: 33.33333%; }

.small-up-4 > .cell {
  width: 25%; }

.small-up-5 > .cell {
  width: 20%; }

.small-up-6 > .cell {
  width: 16.66667%; }

.small-up-7 > .cell {
  width: 14.28571%; }

.small-up-8 > .cell {
  width: 12.5%; }

@media print, screen and (min-width: 48em) {
  .medium-up-1 > .cell {
    width: 100%; }
  .medium-up-2 > .cell {
    width: 50%; }
  .medium-up-3 > .cell {
    width: 33.33333%; }
  .medium-up-4 > .cell {
    width: 25%; }
  .medium-up-5 > .cell {
    width: 20%; }
  .medium-up-6 > .cell {
    width: 16.66667%; }
  .medium-up-7 > .cell {
    width: 14.28571%; }
  .medium-up-8 > .cell {
    width: 12.5%; } }

@media print, screen and (min-width: 64em) {
  .large-up-1 > .cell {
    width: 100%; }
  .large-up-2 > .cell {
    width: 50%; }
  .large-up-3 > .cell {
    width: 33.33333%; }
  .large-up-4 > .cell {
    width: 25%; }
  .large-up-5 > .cell {
    width: 20%; }
  .large-up-6 > .cell {
    width: 16.66667%; }
  .large-up-7 > .cell {
    width: 14.28571%; }
  .large-up-8 > .cell {
    width: 12.5%; } }

.grid-margin-x.small-up-1 > .cell {
  width: calc(100% - 1.25rem); }

.grid-margin-x.small-up-2 > .cell {
  width: calc(50% - 1.25rem); }

.grid-margin-x.small-up-3 > .cell {
  width: calc(33.33333% - 1.25rem); }

.grid-margin-x.small-up-4 > .cell {
  width: calc(25% - 1.25rem); }

.grid-margin-x.small-up-5 > .cell {
  width: calc(20% - 1.25rem); }

.grid-margin-x.small-up-6 > .cell {
  width: calc(16.66667% - 1.25rem); }

.grid-margin-x.small-up-7 > .cell {
  width: calc(14.28571% - 1.25rem); }

.grid-margin-x.small-up-8 > .cell {
  width: calc(12.5% - 1.25rem); }

@media print, screen and (min-width: 48em) {
  .grid-margin-x.small-up-1 > .cell {
    width: calc(100% - 1.875rem); }
  .grid-margin-x.small-up-2 > .cell {
    width: calc(50% - 1.875rem); }
  .grid-margin-x.small-up-3 > .cell {
    width: calc(33.33333% - 1.875rem); }
  .grid-margin-x.small-up-4 > .cell {
    width: calc(25% - 1.875rem); }
  .grid-margin-x.small-up-5 > .cell {
    width: calc(20% - 1.875rem); }
  .grid-margin-x.small-up-6 > .cell {
    width: calc(16.66667% - 1.875rem); }
  .grid-margin-x.small-up-7 > .cell {
    width: calc(14.28571% - 1.875rem); }
  .grid-margin-x.small-up-8 > .cell {
    width: calc(12.5% - 1.875rem); }
  .grid-margin-x.medium-up-1 > .cell {
    width: calc(100% - 1.875rem); }
  .grid-margin-x.medium-up-2 > .cell {
    width: calc(50% - 1.875rem); }
  .grid-margin-x.medium-up-3 > .cell {
    width: calc(33.33333% - 1.875rem); }
  .grid-margin-x.medium-up-4 > .cell {
    width: calc(25% - 1.875rem); }
  .grid-margin-x.medium-up-5 > .cell {
    width: calc(20% - 1.875rem); }
  .grid-margin-x.medium-up-6 > .cell {
    width: calc(16.66667% - 1.875rem); }
  .grid-margin-x.medium-up-7 > .cell {
    width: calc(14.28571% - 1.875rem); }
  .grid-margin-x.medium-up-8 > .cell {
    width: calc(12.5% - 1.875rem); } }

@media print, screen and (min-width: 64em) {
  .grid-margin-x.large-up-1 > .cell {
    width: calc(100% - 1.875rem); }
  .grid-margin-x.large-up-2 > .cell {
    width: calc(50% - 1.875rem); }
  .grid-margin-x.large-up-3 > .cell {
    width: calc(33.33333% - 1.875rem); }
  .grid-margin-x.large-up-4 > .cell {
    width: calc(25% - 1.875rem); }
  .grid-margin-x.large-up-5 > .cell {
    width: calc(20% - 1.875rem); }
  .grid-margin-x.large-up-6 > .cell {
    width: calc(16.66667% - 1.875rem); }
  .grid-margin-x.large-up-7 > .cell {
    width: calc(14.28571% - 1.875rem); }
  .grid-margin-x.large-up-8 > .cell {
    width: calc(12.5% - 1.875rem); } }

.small-margin-collapse {
  margin-right: 0;
  margin-left: 0; }
  .small-margin-collapse > .cell {
    margin-right: 0;
    margin-left: 0; }
  .small-margin-collapse > .small-1 {
    width: 8.33333%; }
  .small-margin-collapse > .small-2 {
    width: 16.66667%; }
  .small-margin-collapse > .small-3 {
    width: 25%; }
  .small-margin-collapse > .small-4 {
    width: 33.33333%; }
  .small-margin-collapse > .small-5 {
    width: 41.66667%; }
  .small-margin-collapse > .small-6 {
    width: 50%; }
  .small-margin-collapse > .small-7 {
    width: 58.33333%; }
  .small-margin-collapse > .small-8 {
    width: 66.66667%; }
  .small-margin-collapse > .small-9 {
    width: 75%; }
  .small-margin-collapse > .small-10 {
    width: 83.33333%; }
  .small-margin-collapse > .small-11 {
    width: 91.66667%; }
  .small-margin-collapse > .small-12 {
    width: 100%; }
  @media print, screen and (min-width: 48em) {
    .small-margin-collapse > .medium-1 {
      width: 8.33333%; }
    .small-margin-collapse > .medium-2 {
      width: 16.66667%; }
    .small-margin-collapse > .medium-3 {
      width: 25%; }
    .small-margin-collapse > .medium-4 {
      width: 33.33333%; }
    .small-margin-collapse > .medium-5 {
      width: 41.66667%; }
    .small-margin-collapse > .medium-6 {
      width: 50%; }
    .small-margin-collapse > .medium-7 {
      width: 58.33333%; }
    .small-margin-collapse > .medium-8 {
      width: 66.66667%; }
    .small-margin-collapse > .medium-9 {
      width: 75%; }
    .small-margin-collapse > .medium-10 {
      width: 83.33333%; }
    .small-margin-collapse > .medium-11 {
      width: 91.66667%; }
    .small-margin-collapse > .medium-12 {
      width: 100%; } }
  @media print, screen and (min-width: 64em) {
    .small-margin-collapse > .large-1 {
      width: 8.33333%; }
    .small-margin-collapse > .large-2 {
      width: 16.66667%; }
    .small-margin-collapse > .large-3 {
      width: 25%; }
    .small-margin-collapse > .large-4 {
      width: 33.33333%; }
    .small-margin-collapse > .large-5 {
      width: 41.66667%; }
    .small-margin-collapse > .large-6 {
      width: 50%; }
    .small-margin-collapse > .large-7 {
      width: 58.33333%; }
    .small-margin-collapse > .large-8 {
      width: 66.66667%; }
    .small-margin-collapse > .large-9 {
      width: 75%; }
    .small-margin-collapse > .large-10 {
      width: 83.33333%; }
    .small-margin-collapse > .large-11 {
      width: 91.66667%; }
    .small-margin-collapse > .large-12 {
      width: 100%; } }

.small-padding-collapse {
  margin-right: 0;
  margin-left: 0; }
  .small-padding-collapse > .cell {
    padding-right: 0;
    padding-left: 0; }

@media print, screen and (min-width: 48em) {
  .medium-margin-collapse {
    margin-right: 0;
    margin-left: 0; }
    .medium-margin-collapse > .cell {
      margin-right: 0;
      margin-left: 0; } }

@media print, screen and (min-width: 48em) {
  .medium-margin-collapse > .small-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .small-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .small-3 {
    width: 25%; }
  .medium-margin-collapse > .small-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .small-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .small-6 {
    width: 50%; }
  .medium-margin-collapse > .small-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .small-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .small-9 {
    width: 75%; }
  .medium-margin-collapse > .small-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .small-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .small-12 {
    width: 100%; } }

@media print, screen and (min-width: 48em) {
  .medium-margin-collapse > .medium-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .medium-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .medium-3 {
    width: 25%; }
  .medium-margin-collapse > .medium-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .medium-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .medium-6 {
    width: 50%; }
  .medium-margin-collapse > .medium-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .medium-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .medium-9 {
    width: 75%; }
  .medium-margin-collapse > .medium-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .medium-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .medium-margin-collapse > .large-1 {
    width: 8.33333%; }
  .medium-margin-collapse > .large-2 {
    width: 16.66667%; }
  .medium-margin-collapse > .large-3 {
    width: 25%; }
  .medium-margin-collapse > .large-4 {
    width: 33.33333%; }
  .medium-margin-collapse > .large-5 {
    width: 41.66667%; }
  .medium-margin-collapse > .large-6 {
    width: 50%; }
  .medium-margin-collapse > .large-7 {
    width: 58.33333%; }
  .medium-margin-collapse > .large-8 {
    width: 66.66667%; }
  .medium-margin-collapse > .large-9 {
    width: 75%; }
  .medium-margin-collapse > .large-10 {
    width: 83.33333%; }
  .medium-margin-collapse > .large-11 {
    width: 91.66667%; }
  .medium-margin-collapse > .large-12 {
    width: 100%; } }

@media print, screen and (min-width: 48em) {
  .medium-padding-collapse {
    margin-right: 0;
    margin-left: 0; }
    .medium-padding-collapse > .cell {
      padding-right: 0;
      padding-left: 0; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse {
    margin-right: 0;
    margin-left: 0; }
    .large-margin-collapse > .cell {
      margin-right: 0;
      margin-left: 0; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .small-1 {
    width: 8.33333%; }
  .large-margin-collapse > .small-2 {
    width: 16.66667%; }
  .large-margin-collapse > .small-3 {
    width: 25%; }
  .large-margin-collapse > .small-4 {
    width: 33.33333%; }
  .large-margin-collapse > .small-5 {
    width: 41.66667%; }
  .large-margin-collapse > .small-6 {
    width: 50%; }
  .large-margin-collapse > .small-7 {
    width: 58.33333%; }
  .large-margin-collapse > .small-8 {
    width: 66.66667%; }
  .large-margin-collapse > .small-9 {
    width: 75%; }
  .large-margin-collapse > .small-10 {
    width: 83.33333%; }
  .large-margin-collapse > .small-11 {
    width: 91.66667%; }
  .large-margin-collapse > .small-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .medium-1 {
    width: 8.33333%; }
  .large-margin-collapse > .medium-2 {
    width: 16.66667%; }
  .large-margin-collapse > .medium-3 {
    width: 25%; }
  .large-margin-collapse > .medium-4 {
    width: 33.33333%; }
  .large-margin-collapse > .medium-5 {
    width: 41.66667%; }
  .large-margin-collapse > .medium-6 {
    width: 50%; }
  .large-margin-collapse > .medium-7 {
    width: 58.33333%; }
  .large-margin-collapse > .medium-8 {
    width: 66.66667%; }
  .large-margin-collapse > .medium-9 {
    width: 75%; }
  .large-margin-collapse > .medium-10 {
    width: 83.33333%; }
  .large-margin-collapse > .medium-11 {
    width: 91.66667%; }
  .large-margin-collapse > .medium-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-margin-collapse > .large-1 {
    width: 8.33333%; }
  .large-margin-collapse > .large-2 {
    width: 16.66667%; }
  .large-margin-collapse > .large-3 {
    width: 25%; }
  .large-margin-collapse > .large-4 {
    width: 33.33333%; }
  .large-margin-collapse > .large-5 {
    width: 41.66667%; }
  .large-margin-collapse > .large-6 {
    width: 50%; }
  .large-margin-collapse > .large-7 {
    width: 58.33333%; }
  .large-margin-collapse > .large-8 {
    width: 66.66667%; }
  .large-margin-collapse > .large-9 {
    width: 75%; }
  .large-margin-collapse > .large-10 {
    width: 83.33333%; }
  .large-margin-collapse > .large-11 {
    width: 91.66667%; }
  .large-margin-collapse > .large-12 {
    width: 100%; } }

@media print, screen and (min-width: 64em) {
  .large-padding-collapse {
    margin-right: 0;
    margin-left: 0; }
    .large-padding-collapse > .cell {
      padding-right: 0;
      padding-left: 0; } }

.small-offset-0 {
  margin-left: 0%; }

.grid-margin-x > .small-offset-0 {
  margin-left: calc(0% + 0.625rem); }

.small-offset-1 {
  margin-left: 8.33333%; }

.grid-margin-x > .small-offset-1 {
  margin-left: calc(8.33333% + 0.625rem); }

.small-offset-2 {
  margin-left: 16.66667%; }

.grid-margin-x > .small-offset-2 {
  margin-left: calc(16.66667% + 0.625rem); }

.small-offset-3 {
  margin-left: 25%; }

.grid-margin-x > .small-offset-3 {
  margin-left: calc(25% + 0.625rem); }

.small-offset-4 {
  margin-left: 33.33333%; }

.grid-margin-x > .small-offset-4 {
  margin-left: calc(33.33333% + 0.625rem); }

.small-offset-5 {
  margin-left: 41.66667%; }

.grid-margin-x > .small-offset-5 {
  margin-left: calc(41.66667% + 0.625rem); }

.small-offset-6 {
  margin-left: 50%; }

.grid-margin-x > .small-offset-6 {
  margin-left: calc(50% + 0.625rem); }

.small-offset-7 {
  margin-left: 58.33333%; }

.grid-margin-x > .small-offset-7 {
  margin-left: calc(58.33333% + 0.625rem); }

.small-offset-8 {
  margin-left: 66.66667%; }

.grid-margin-x > .small-offset-8 {
  margin-left: calc(66.66667% + 0.625rem); }

.small-offset-9 {
  margin-left: 75%; }

.grid-margin-x > .small-offset-9 {
  margin-left: calc(75% + 0.625rem); }

.small-offset-10 {
  margin-left: 83.33333%; }

.grid-margin-x > .small-offset-10 {
  margin-left: calc(83.33333% + 0.625rem); }

.small-offset-11 {
  margin-left: 91.66667%; }

.grid-margin-x > .small-offset-11 {
  margin-left: calc(91.66667% + 0.625rem); }

@media print, screen and (min-width: 48em) {
  .medium-offset-0 {
    margin-left: 0%; }
  .grid-margin-x > .medium-offset-0 {
    margin-left: calc(0% + 0.9375rem); }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .grid-margin-x > .medium-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem); }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .grid-margin-x > .medium-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem); }
  .medium-offset-3 {
    margin-left: 25%; }
  .grid-margin-x > .medium-offset-3 {
    margin-left: calc(25% + 0.9375rem); }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .grid-margin-x > .medium-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem); }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .grid-margin-x > .medium-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem); }
  .medium-offset-6 {
    margin-left: 50%; }
  .grid-margin-x > .medium-offset-6 {
    margin-left: calc(50% + 0.9375rem); }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .grid-margin-x > .medium-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem); }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .grid-margin-x > .medium-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem); }
  .medium-offset-9 {
    margin-left: 75%; }
  .grid-margin-x > .medium-offset-9 {
    margin-left: calc(75% + 0.9375rem); }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .grid-margin-x > .medium-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem); }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .grid-margin-x > .medium-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem); } }

@media print, screen and (min-width: 64em) {
  .large-offset-0 {
    margin-left: 0%; }
  .grid-margin-x > .large-offset-0 {
    margin-left: calc(0% + 0.9375rem); }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .grid-margin-x > .large-offset-1 {
    margin-left: calc(8.33333% + 0.9375rem); }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .grid-margin-x > .large-offset-2 {
    margin-left: calc(16.66667% + 0.9375rem); }
  .large-offset-3 {
    margin-left: 25%; }
  .grid-margin-x > .large-offset-3 {
    margin-left: calc(25% + 0.9375rem); }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .grid-margin-x > .large-offset-4 {
    margin-left: calc(33.33333% + 0.9375rem); }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .grid-margin-x > .large-offset-5 {
    margin-left: calc(41.66667% + 0.9375rem); }
  .large-offset-6 {
    margin-left: 50%; }
  .grid-margin-x > .large-offset-6 {
    margin-left: calc(50% + 0.9375rem); }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .grid-margin-x > .large-offset-7 {
    margin-left: calc(58.33333% + 0.9375rem); }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .grid-margin-x > .large-offset-8 {
    margin-left: calc(66.66667% + 0.9375rem); }
  .large-offset-9 {
    margin-left: 75%; }
  .grid-margin-x > .large-offset-9 {
    margin-left: calc(75% + 0.9375rem); }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .grid-margin-x > .large-offset-10 {
    margin-left: calc(83.33333% + 0.9375rem); }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .grid-margin-x > .large-offset-11 {
    margin-left: calc(91.66667% + 0.9375rem); } }

.grid-y {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-flow: column nowrap;
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap; }
  .grid-y > .cell {
    height: auto;
    max-height: none; }
  .grid-y > .auto {
    height: auto; }
  .grid-y > .shrink {
    height: auto; }
  .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
    -webkit-flex-basis: auto;
        -ms-flex-preferred-size: auto;
            flex-basis: auto; }
  @media print, screen and (min-width: 48em) {
    .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
      -webkit-flex-basis: auto;
          -ms-flex-preferred-size: auto;
              flex-basis: auto; } }
  @media print, screen and (min-width: 64em) {
    .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
      -webkit-flex-basis: auto;
          -ms-flex-preferred-size: auto;
              flex-basis: auto; } }
  .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
  .grid-y > .small-1 {
    height: 8.33333%; }
  .grid-y > .small-2 {
    height: 16.66667%; }
  .grid-y > .small-3 {
    height: 25%; }
  .grid-y > .small-4 {
    height: 33.33333%; }
  .grid-y > .small-5 {
    height: 41.66667%; }
  .grid-y > .small-6 {
    height: 50%; }
  .grid-y > .small-7 {
    height: 58.33333%; }
  .grid-y > .small-8 {
    height: 66.66667%; }
  .grid-y > .small-9 {
    height: 75%; }
  .grid-y > .small-10 {
    height: 83.33333%; }
  .grid-y > .small-11 {
    height: 91.66667%; }
  .grid-y > .small-12 {
    height: 100%; }
  @media print, screen and (min-width: 48em) {
    .grid-y > .medium-auto {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      height: auto; }
    .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto; }
    .grid-y > .medium-shrink {
      height: auto; }
    .grid-y > .medium-1 {
      height: 8.33333%; }
    .grid-y > .medium-2 {
      height: 16.66667%; }
    .grid-y > .medium-3 {
      height: 25%; }
    .grid-y > .medium-4 {
      height: 33.33333%; }
    .grid-y > .medium-5 {
      height: 41.66667%; }
    .grid-y > .medium-6 {
      height: 50%; }
    .grid-y > .medium-7 {
      height: 58.33333%; }
    .grid-y > .medium-8 {
      height: 66.66667%; }
    .grid-y > .medium-9 {
      height: 75%; }
    .grid-y > .medium-10 {
      height: 83.33333%; }
    .grid-y > .medium-11 {
      height: 91.66667%; }
    .grid-y > .medium-12 {
      height: 100%; } }
  @media print, screen and (min-width: 64em) {
    .grid-y > .large-auto {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      height: auto; }
    .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto; }
    .grid-y > .large-shrink {
      height: auto; }
    .grid-y > .large-1 {
      height: 8.33333%; }
    .grid-y > .large-2 {
      height: 16.66667%; }
    .grid-y > .large-3 {
      height: 25%; }
    .grid-y > .large-4 {
      height: 33.33333%; }
    .grid-y > .large-5 {
      height: 41.66667%; }
    .grid-y > .large-6 {
      height: 50%; }
    .grid-y > .large-7 {
      height: 58.33333%; }
    .grid-y > .large-8 {
      height: 66.66667%; }
    .grid-y > .large-9 {
      height: 75%; }
    .grid-y > .large-10 {
      height: 83.33333%; }
    .grid-y > .large-11 {
      height: 91.66667%; }
    .grid-y > .large-12 {
      height: 100%; } }

.grid-padding-y .grid-padding-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-y .grid-padding-y {
      margin-top: -0.9375rem;
      margin-bottom: -0.9375rem; } }

.grid-padding-y > .cell {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-padding-y > .cell {
      padding-top: 0.9375rem;
      padding-bottom: 0.9375rem; } }

.grid-margin-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y {
      margin-top: -0.9375rem;
      margin-bottom: -0.9375rem; } }
  .grid-margin-y > .cell {
    height: calc(100% - 1.25rem);
    margin-top: 0.625rem;
    margin-bottom: 0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .cell {
      height: calc(100% - 1.875rem);
      margin-top: 0.9375rem;
      margin-bottom: 0.9375rem; } }
  .grid-margin-y > .auto {
    height: auto; }
  .grid-margin-y > .shrink {
    height: auto; }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.25rem); }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.25rem); }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.25rem); }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.25rem); }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.25rem); }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.25rem); }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.25rem); }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.25rem); }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.25rem); }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.25rem); }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.25rem); }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.25rem); }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .auto {
      height: auto; }
    .grid-margin-y > .shrink {
      height: auto; }
    .grid-margin-y > .small-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .small-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .small-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .small-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .small-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .small-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .small-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .small-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .small-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .small-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .small-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .small-12 {
      height: calc(100% - 1.875rem); }
    .grid-margin-y > .medium-auto {
      height: auto; }
    .grid-margin-y > .medium-shrink {
      height: auto; }
    .grid-margin-y > .medium-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .medium-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .medium-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .medium-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .medium-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .medium-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .medium-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .medium-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .medium-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .medium-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .medium-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .medium-12 {
      height: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
      height: auto; }
    .grid-margin-y > .large-shrink {
      height: auto; }
    .grid-margin-y > .large-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .large-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .large-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .large-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .large-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .large-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .large-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .large-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .large-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .large-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .large-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .large-12 {
      height: calc(100% - 1.875rem); } }

.grid-frame {
  overflow: hidden;
  position: relative;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  width: 100vw; }

.cell .grid-frame {
  width: 100%; }

.cell-block {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar; }

.cell-block-y {
  overflow-y: auto;
  max-height: 100%;
  min-height: 100%;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: -ms-autohiding-scrollbar; }

.cell-block-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  max-height: 100%; }
  .cell-block-container > .grid-x {
    max-height: 100%;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap; }

@media print, screen and (min-width: 48em) {
  .medium-grid-frame {
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    width: 100vw; }
  .cell .medium-grid-frame {
    width: 100%; }
  .medium-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; }
  .medium-cell-block-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 100%; }
    .medium-cell-block-container > .grid-x {
      max-height: 100%;
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; }
  .medium-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; } }

@media print, screen and (min-width: 64em) {
  .large-grid-frame {
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    width: 100vw; }
  .cell .large-grid-frame {
    width: 100%; }
  .large-cell-block {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; }
  .large-cell-block-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 100%; }
    .large-cell-block-container > .grid-x {
      max-height: 100%;
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; }
  .large-cell-block-y {
    overflow-y: auto;
    max-height: 100%;
    min-height: 100%;
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: -ms-autohiding-scrollbar; } }

.grid-y.grid-frame {
  width: auto;
  overflow: hidden;
  position: relative;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  height: 100vh; }

@media print, screen and (min-width: 48em) {
  .grid-y.medium-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    height: 100vh; } }

@media print, screen and (min-width: 64em) {
  .grid-y.large-grid-frame {
    width: auto;
    overflow: hidden;
    position: relative;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    height: 100vh; } }

.cell .grid-y.grid-frame {
  height: 100%; }

@media print, screen and (min-width: 48em) {
  .cell .grid-y.medium-grid-frame {
    height: 100%; } }

@media print, screen and (min-width: 64em) {
  .cell .grid-y.large-grid-frame {
    height: 100%; } }

.grid-margin-y {
  margin-top: -0.625rem;
  margin-bottom: -0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y {
      margin-top: -0.9375rem;
      margin-bottom: -0.9375rem; } }
  .grid-margin-y > .cell {
    height: calc(100% - 1.25rem);
    margin-top: 0.625rem;
    margin-bottom: 0.625rem; }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .cell {
      height: calc(100% - 1.875rem);
      margin-top: 0.9375rem;
      margin-bottom: 0.9375rem; } }
  .grid-margin-y > .auto {
    height: auto; }
  .grid-margin-y > .shrink {
    height: auto; }
  .grid-margin-y > .small-1 {
    height: calc(8.33333% - 1.25rem); }
  .grid-margin-y > .small-2 {
    height: calc(16.66667% - 1.25rem); }
  .grid-margin-y > .small-3 {
    height: calc(25% - 1.25rem); }
  .grid-margin-y > .small-4 {
    height: calc(33.33333% - 1.25rem); }
  .grid-margin-y > .small-5 {
    height: calc(41.66667% - 1.25rem); }
  .grid-margin-y > .small-6 {
    height: calc(50% - 1.25rem); }
  .grid-margin-y > .small-7 {
    height: calc(58.33333% - 1.25rem); }
  .grid-margin-y > .small-8 {
    height: calc(66.66667% - 1.25rem); }
  .grid-margin-y > .small-9 {
    height: calc(75% - 1.25rem); }
  .grid-margin-y > .small-10 {
    height: calc(83.33333% - 1.25rem); }
  .grid-margin-y > .small-11 {
    height: calc(91.66667% - 1.25rem); }
  .grid-margin-y > .small-12 {
    height: calc(100% - 1.25rem); }
  @media print, screen and (min-width: 48em) {
    .grid-margin-y > .auto {
      height: auto; }
    .grid-margin-y > .shrink {
      height: auto; }
    .grid-margin-y > .small-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .small-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .small-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .small-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .small-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .small-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .small-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .small-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .small-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .small-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .small-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .small-12 {
      height: calc(100% - 1.875rem); }
    .grid-margin-y > .medium-auto {
      height: auto; }
    .grid-margin-y > .medium-shrink {
      height: auto; }
    .grid-margin-y > .medium-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .medium-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .medium-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .medium-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .medium-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .medium-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .medium-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .medium-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .medium-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .medium-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .medium-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .medium-12 {
      height: calc(100% - 1.875rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-margin-y > .large-auto {
      height: auto; }
    .grid-margin-y > .large-shrink {
      height: auto; }
    .grid-margin-y > .large-1 {
      height: calc(8.33333% - 1.875rem); }
    .grid-margin-y > .large-2 {
      height: calc(16.66667% - 1.875rem); }
    .grid-margin-y > .large-3 {
      height: calc(25% - 1.875rem); }
    .grid-margin-y > .large-4 {
      height: calc(33.33333% - 1.875rem); }
    .grid-margin-y > .large-5 {
      height: calc(41.66667% - 1.875rem); }
    .grid-margin-y > .large-6 {
      height: calc(50% - 1.875rem); }
    .grid-margin-y > .large-7 {
      height: calc(58.33333% - 1.875rem); }
    .grid-margin-y > .large-8 {
      height: calc(66.66667% - 1.875rem); }
    .grid-margin-y > .large-9 {
      height: calc(75% - 1.875rem); }
    .grid-margin-y > .large-10 {
      height: calc(83.33333% - 1.875rem); }
    .grid-margin-y > .large-11 {
      height: calc(91.66667% - 1.875rem); }
    .grid-margin-y > .large-12 {
      height: calc(100% - 1.875rem); } }

.grid-frame.grid-margin-y {
  height: calc(100vh + 1.25rem); }
  @media print, screen and (min-width: 48em) {
    .grid-frame.grid-margin-y {
      height: calc(100vh + 1.875rem); } }
  @media print, screen and (min-width: 64em) {
    .grid-frame.grid-margin-y {
      height: calc(100vh + 1.875rem); } }

@media print, screen and (min-width: 48em) {
  .grid-margin-y.medium-grid-frame {
    height: calc(100vh + 1.875rem); } }

@media print, screen and (min-width: 64em) {
  .grid-margin-y.large-grid-frame {
    height: calc(100vh + 1.875rem); } }

.responsive-embed,
.flex-video {
  position: relative;
  height: 0;
  margin-bottom: 1rem;
  padding-bottom: 75%;
  overflow: hidden; }
  .responsive-embed iframe,
  .responsive-embed object,
  .responsive-embed embed,
  .responsive-embed video,
  .flex-video iframe,
  .flex-video object,
  .flex-video embed,
  .flex-video video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  .responsive-embed.widescreen,
  .flex-video.widescreen {
    padding-bottom: 56.25%; }

.menu {
  padding: 0;
  margin: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  [data-whatinput='mouse'] .menu li {
    outline: 0; }
  .menu a,
  .menu .button,
  .menu li.button > a,
  .menu.dropdown li.button > a {
    line-height: 1;
    text-decoration: none;
    display: block;
    padding: 0.7rem 1rem; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu input {
    display: inline-block; }
  .menu, .menu.horizontal {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .menu.vertical {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .menu.expanded li {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.simple {
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    .menu.simple li + li {
      margin-left: 1rem; }
    .menu.simple a {
      padding: 0; }
  @media print, screen and (min-width: 48em) {
    .menu.medium-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.medium-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.medium-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.medium-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  @media print, screen and (min-width: 64em) {
    .menu.large-horizontal {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
          -ms-flex-direction: row;
              flex-direction: row; }
    .menu.large-vertical {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column; }
    .menu.large-expanded li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; }
    .menu.large-simple li {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }
  .menu.nested {
    margin-right: 0;
    margin-left: 1rem; }
  .menu.icons a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu.icon-left li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-left li a img,
    .menu.icon-left li a i,
    .menu.icon-left li a svg {
      margin-right: 0.25rem; }
  .menu.icon-right li a {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-flow: row nowrap;
        -ms-flex-flow: row nowrap;
            flex-flow: row nowrap; }
    .menu.icon-right li a img,
    .menu.icon-right li a i,
    .menu.icon-right li a svg {
      margin-left: 0.25rem; }
  .menu.icon-top li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-top li a img,
    .menu.icon-top li a i,
    .menu.icon-top li a svg {
      -webkit-align-self: stretch;
          -ms-flex-item-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-bottom li a {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-flow: column nowrap;
        -ms-flex-flow: column nowrap;
            flex-flow: column nowrap; }
    .menu.icon-bottom li a img,
    .menu.icon-bottom li a i,
    .menu.icon-bottom li a svg {
      -webkit-align-self: stretch;
          -ms-flex-item-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu .is-active > a {
    background: #1779ba;
    color: #fefefe; }
  .menu .active > a {
    background: #1779ba;
    color: #fefefe; }
  .menu.align-left {
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
        -ms-flex-pack: start;
            justify-content: flex-start; }
  .menu.align-right li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .menu.align-right li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu.align-right.vertical li {
    display: block;
    text-align: right; }
    .menu.align-right.vertical li .submenu li {
      text-align: right; }
  .menu.align-right .nested {
    margin-right: 1rem;
    margin-left: 0; }
  .menu.align-center li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu.align-center li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
  .menu .menu-text {
    padding: 0.7rem 1rem;
    font-weight: bold;
    line-height: 1;
    color: inherit; }

.menu-centered > .menu {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }
  .menu-centered > .menu li {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .menu-centered > .menu li .submenu li {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }

.no-js [data-responsive-menu] ul {
  display: none; }

.menu-icon {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #fefefe;
    -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
            box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
    content: ''; }
  .menu-icon:hover::after {
    background: #cacaca;
    -webkit-box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
            box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }

.menu-icon.dark {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 16px;
  cursor: pointer; }
  .menu-icon.dark::after {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 2px;
    background: #0a0a0a;
    -webkit-box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
            box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #8a8a8a;
    -webkit-box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
            box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }

.accordion-menu li {
  width: 100%; }

.accordion-menu a {
  padding: 0.7rem 1rem; }

.accordion-menu .is-accordion-submenu a {
  padding: 0.7rem 1rem; }

.accordion-menu .nested.is-accordion-submenu {
  margin-right: 0;
  margin-left: 1rem; }

.accordion-menu.align-right .nested.is-accordion-submenu {
  margin-right: 1rem;
  margin-left: 0; }

.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
  position: relative; }
  .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    position: absolute;
    top: 50%;
    margin-top: -3px;
    right: 1rem; }

.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
  right: 1rem;
  left: auto; }

.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
  right: auto;
  left: 1rem; }

.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
  -webkit-transform-origin: 50% 50%;
      -ms-transform-origin: 50% 50%;
          transform-origin: 50% 50%; }

.is-accordion-submenu-parent {
  position: relative; }

.has-submenu-toggle > a {
  margin-right: 40px; }

.submenu-toggle {
  position: absolute;
  top: 0;
  right: 0;
  width: 40px;
  height: 40px;
  cursor: pointer; }
  .submenu-toggle::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    top: 0;
    bottom: 0;
    margin: auto; }

.submenu-toggle[aria-expanded='true']::after {
  -webkit-transform: scaleY(-1);
      -ms-transform: scaleY(-1);
          transform: scaleY(-1);
  -webkit-transform-origin: 50% 50%;
      -ms-transform-origin: 50% 50%;
          transform-origin: 50% 50%; }

.submenu-toggle-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.is-drilldown {
  position: relative;
  overflow: hidden; }
  .is-drilldown li {
    display: block; }
  .is-drilldown.animate-height {
    -webkit-transition: height 0.5s;
    transition: height 0.5s; }

.drilldown a {
  padding: 0.7rem 1rem;
  background: #fefefe; }

.drilldown .is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #fefefe;
  -webkit-transition: -webkit-transform 0.15s linear;
  transition: -webkit-transform 0.15s linear;
  transition: transform 0.15s linear;
  transition: transform 0.15s linear, -webkit-transform 0.15s linear; }
  .drilldown .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .drilldown .is-drilldown-submenu.is-closing {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }
  .drilldown .is-drilldown-submenu a {
    padding: 0.7rem 1rem; }

.drilldown .nested.is-drilldown-submenu {
  margin-right: 0;
  margin-left: 0; }

.drilldown .drilldown-submenu-cover-previous {
  min-height: 100%; }

.drilldown .is-drilldown-submenu-parent > a {
  position: relative; }
  .drilldown .is-drilldown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.drilldown.align-left .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba;
  right: 1rem;
  left: auto; }

.drilldown.align-right .is-drilldown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  right: auto;
  left: 1rem; }

.drilldown .js-drilldown-back > a::before {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem; }

.dropdown.menu > li.opens-left > .is-dropdown-submenu {
  top: 100%;
  right: 0;
  left: auto; }

.dropdown.menu > li.opens-right > .is-dropdown-submenu {
  top: 100%;
  right: auto;
  left: 0; }

.dropdown.menu > li.is-dropdown-submenu-parent > a {
  position: relative;
  padding-right: 1.5rem; }

.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-bottom-width: 0;
  border-top-style: solid;
  border-color: #1779ba transparent transparent;
  right: 5px;
  left: auto;
  margin-top: -3px; }

[data-whatinput='mouse'] .dropdown.menu a {
  outline: 0; }

.dropdown.menu > li > a {
  padding: 0.7rem 1rem; }

.dropdown.menu > li.is-active > a {
  background: transparent;
  color: #1779ba; }

.no-js .dropdown.menu ul {
  display: none; }

.dropdown.menu .nested.is-dropdown-submenu {
  margin-right: 0;
  margin-left: 0; }

.dropdown.menu.vertical > li .is-dropdown-submenu {
  top: 0; }

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  top: 0;
  right: 100%;
  left: auto; }

.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
  right: auto;
  left: 100%; }

.dropdown.menu.vertical > li > a::after {
  right: 14px; }

.dropdown.menu.vertical > li.opens-left > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-left-width: 0;
  border-right-style: solid;
  border-color: transparent #1779ba transparent transparent;
  right: auto;
  left: 5px; }

.dropdown.menu.vertical > li.opens-right > a::after {
  display: block;
  width: 0;
  height: 0;
  border: inset 6px;
  content: '';
  border-right-width: 0;
  border-left-style: solid;
  border-color: transparent transparent transparent #1779ba; }

@media print, screen and (min-width: 48em) {
  .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.medium-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.medium-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.medium-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

@media print, screen and (min-width: 64em) {
  .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #1779ba transparent transparent;
    right: 5px;
    left: auto;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    top: 0;
    right: 100%;
    left: auto; }
  .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.large-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.large-vertical > li.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .dropdown.menu.large-vertical > li.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; } }

.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
  top: 100%;
  right: 0;
  left: auto; }

.is-dropdown-menu.vertical {
  width: 100px; }
  .is-dropdown-menu.vertical.align-right {
    float: right; }

.is-dropdown-submenu-parent {
  position: relative; }
  .is-dropdown-submenu-parent a::after {
    position: absolute;
    top: 50%;
    right: 5px;
    left: auto;
    margin-top: -6px; }
  .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
    top: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }

.is-dropdown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: 1;
  display: none;
  min-width: 200px;
  border: 1px solid #cacaca;
  background: #fefefe; }
  .dropdown .is-dropdown-submenu a {
    padding: 0.7rem 1rem; }
  .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
    right: 14px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #1779ba transparent transparent;
    right: auto;
    left: 5px; }
  .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 6px;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #1779ba; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.is-off-canvas-open {
  overflow: hidden; }

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 11;
  width: 100%;
  height: 100%;
  -webkit-transition: opacity 0.5s ease, visibility 0.5s ease;
  transition: opacity 0.5s ease, visibility 0.5s ease;
  background: rgba(254, 254, 254, 0.25);
  opacity: 0;
  visibility: hidden;
  overflow: hidden; }
  .js-off-canvas-overlay.is-visible {
    opacity: 1;
    visibility: visible; }
  .js-off-canvas-overlay.is-closable {
    cursor: pointer; }
  .js-off-canvas-overlay.is-overlay-absolute {
    position: absolute; }
  .js-off-canvas-overlay.is-overlay-fixed {
    position: fixed; }

.off-canvas-wrapper {
  position: relative;
  overflow: hidden; }

.off-canvas {
  position: fixed;
  z-index: 12;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-push {
    z-index: 12; }
  .off-canvas.is-closed {
    visibility: hidden; }
  .off-canvas.is-transition-overlap {
    z-index: 13; }
    .off-canvas.is-transition-overlap.is-open {
      -webkit-box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
              box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.off-canvas-absolute {
  position: absolute;
  z-index: 12;
  -webkit-transition: -webkit-transform 0.5s ease;
  transition: -webkit-transform 0.5s ease;
  transition: transform 0.5s ease;
  transition: transform 0.5s ease, -webkit-transform 0.5s ease;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  background: #e6e6e6; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-push {
    z-index: 12; }
  .off-canvas-absolute.is-closed {
    visibility: hidden; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 13; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      -webkit-box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
              box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
  .off-canvas-absolute.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

.position-left {
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  -webkit-transform: translateX(-250px);
      -ms-transform: translateX(-250px);
          transform: translateX(-250px); }
  .off-canvas-content .off-canvas.position-left {
    -webkit-transform: translateX(-250px);
        -ms-transform: translateX(-250px);
            transform: translateX(-250px); }
    .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
          -ms-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-left.has-transition-push {
    -webkit-transform: translateX(250px);
        -ms-transform: translateX(250px);
            transform: translateX(250px); }
  .position-left.is-transition-push {
    -webkit-box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-right {
  top: 0;
  right: 0;
  height: 100%;
  overflow-y: auto;
  width: 250px;
  -webkit-transform: translateX(250px);
      -ms-transform: translateX(250px);
          transform: translateX(250px); }
  .off-canvas-content .off-canvas.position-right {
    -webkit-transform: translateX(250px);
        -ms-transform: translateX(250px);
            transform: translateX(250px); }
    .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
          -ms-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-right.has-transition-push {
    -webkit-transform: translateX(-250px);
        -ms-transform: translateX(-250px);
            transform: translateX(-250px); }
  .position-right.is-transition-push {
    -webkit-box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(-250px);
      -ms-transform: translateY(-250px);
          transform: translateY(-250px); }
  .off-canvas-content .off-canvas.position-top {
    -webkit-transform: translateY(-250px);
        -ms-transform: translateY(-250px);
            transform: translateY(-250px); }
    .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
          -ms-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-top.has-transition-push {
    -webkit-transform: translateY(250px);
        -ms-transform: translateY(250px);
            transform: translateY(250px); }
  .position-top.is-transition-push {
    -webkit-box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-x: auto;
  height: 250px;
  -webkit-transform: translateY(250px);
      -ms-transform: translateY(250px);
          transform: translateY(250px); }
  .off-canvas-content .off-canvas.position-bottom {
    -webkit-transform: translateY(250px);
        -ms-transform: translateY(250px);
            transform: translateY(250px); }
    .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
      -webkit-transform: translate(0, 0);
          -ms-transform: translate(0, 0);
              transform: translate(0, 0); }
  .off-canvas-content.is-open-bottom.has-transition-push {
    -webkit-transform: translateY(-250px);
        -ms-transform: translateY(-250px);
            transform: translateY(-250px); }
  .position-bottom.is-transition-push {
    -webkit-box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
            box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }

.off-canvas-content {
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {
    -webkit-transition: -webkit-transform 0.5s ease;
    transition: -webkit-transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease; }
  .off-canvas-content.has-transition-push {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }
  .off-canvas-content .off-canvas.is-open {
    -webkit-transform: translate(0, 0);
        -ms-transform: translate(0, 0);
            transform: translate(0, 0); }

@media print, screen and (min-width: 48em) {
  .position-left.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-medium {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 250px; }
    .position-left.reveal-for-medium ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-medium {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 250px; }
    .position-right.reveal-for-medium ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-medium {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 250px; }
    .position-top.reveal-for-medium ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-medium .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-medium {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 250px; }
    .position-bottom.reveal-for-medium ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 64em) {
  .position-left.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-left.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-left.reveal-for-large {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-left {
      margin-left: 250px; }
    .position-left.reveal-for-large ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-right.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-right.reveal-for-large {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-right {
      margin-right: 250px; }
    .position-right.reveal-for-large ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-top.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-top.reveal-for-large {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-top {
      margin-top: 250px; }
    .position-top.reveal-for-large ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 12;
    -webkit-transition: none;
    transition: none;
    visibility: visible; }
    .position-bottom.reveal-for-large .close-button {
      display: none; }
    .off-canvas-content .position-bottom.reveal-for-large {
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas-content.has-reveal-bottom {
      margin-bottom: 250px; }
    .position-bottom.reveal-for-large ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 48em) {
  .off-canvas.in-canvas-for-medium {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    -webkit-transition: none;
    transition: none; }
    .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
      -webkit-box-shadow: none;
              box-shadow: none;
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas.in-canvas-for-medium .close-button {
      display: none; } }

@media print, screen and (min-width: 64em) {
  .off-canvas.in-canvas-for-large {
    visibility: visible;
    height: auto;
    position: static;
    background: none;
    width: auto;
    overflow: visible;
    -webkit-transition: none;
    transition: none; }
    .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
      -webkit-box-shadow: none;
              box-shadow: none;
      -webkit-transform: none;
          -ms-transform: none;
              transform: none; }
    .off-canvas.in-canvas-for-large .close-button {
      display: none; } }

.sticky-container {
  position: relative; }

.sticky {
  position: relative;
  z-index: 0;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0); }

.sticky.is-stuck {
  position: fixed;
  z-index: 5;
  width: 100%; }
  .sticky.is-stuck.is-at-top {
    top: 0; }
  .sticky.is-stuck.is-at-bottom {
    bottom: 0; }

.sticky.is-anchored {
  position: relative;
  right: auto;
  left: auto; }
  .sticky.is-anchored.is-at-bottom {
    bottom: 0; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

@media print, screen and (max-width: 47.99875em) {
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 48em) {
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 48em) {
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 47.99875em) {
  .show-for-medium {
    display: none !important; } }

@media print, screen and (min-width: 48em) and (max-width: 63.99875em) {
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 47.99875em), screen and (min-width: 64em) {
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64em) {
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.99875em) {
  .show-for-large {
    display: none !important; } }

@media print, screen and (min-width: 64em) and (max-width: 79.99875em) {
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.99875em), screen and (min-width: 80em) {
  .show-for-large-only {
    display: none !important; } }

.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important; }

.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

.align-left {
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.align-right {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.align-center {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.align-justify {
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.align-spaced {
  -webkit-justify-content: space-around;
      -ms-flex-pack: distribute;
          justify-content: space-around; }

.align-left.vertical.menu > li > a {
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start; }

.align-right.vertical.menu > li > a {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }

.align-center.vertical.menu > li > a {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.align-top {
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start; }

.align-self-top {
  -webkit-align-self: flex-start;
      -ms-flex-item-align: start;
          align-self: flex-start; }

.align-bottom {
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end; }

.align-self-bottom {
  -webkit-align-self: flex-end;
      -ms-flex-item-align: end;
          align-self: flex-end; }

.align-middle {
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

.align-self-middle {
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center; }

.align-stretch {
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }

.align-self-stretch {
  -webkit-align-self: stretch;
      -ms-flex-item-align: stretch;
          align-self: stretch; }

.align-center-middle {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-align-content: center;
      -ms-flex-line-pack: center;
          align-content: center; }

.small-order-1 {
  -webkit-box-ordinal-group: 2;
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.small-order-2 {
  -webkit-box-ordinal-group: 3;
  -webkit-order: 2;
      -ms-flex-order: 2;
          order: 2; }

.small-order-3 {
  -webkit-box-ordinal-group: 4;
  -webkit-order: 3;
      -ms-flex-order: 3;
          order: 3; }

.small-order-4 {
  -webkit-box-ordinal-group: 5;
  -webkit-order: 4;
      -ms-flex-order: 4;
          order: 4; }

.small-order-5 {
  -webkit-box-ordinal-group: 6;
  -webkit-order: 5;
      -ms-flex-order: 5;
          order: 5; }

.small-order-6 {
  -webkit-box-ordinal-group: 7;
  -webkit-order: 6;
      -ms-flex-order: 6;
          order: 6; }

@media print, screen and (min-width: 48em) {
  .medium-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .medium-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .medium-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .medium-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .medium-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .medium-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

@media print, screen and (min-width: 64em) {
  .large-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .large-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .large-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .large-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .large-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .large-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; } }

.flex-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

.flex-child-auto {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto; }

.flex-child-grow {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto; }

.flex-child-shrink {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }

.flex-dir-row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row; }

.flex-dir-row-reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: row-reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse; }

.flex-dir-column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }

.flex-dir-column-reverse {
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -webkit-flex-direction: column-reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse; }

@media print, screen and (min-width: 48em) {
  .medium-flex-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .medium-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .medium-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .medium-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .medium-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .medium-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .medium-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .medium-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

@media print, screen and (min-width: 64em) {
  .large-flex-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .large-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .large-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .large-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; }
  .large-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .large-flex-dir-row-reverse {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse; }
  .large-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .large-flex-dir-column-reverse {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -webkit-flex-direction: column-reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse; } }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

html {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 100%; }

*,
*::before,
*::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit; }

body {
  margin: 0;
  padding: 0;
  background: #fff;
  color: #24384F;
  font-family: "Gotham HTF";
  font-weight: normal;
  font-size: 0.875rem;
  line-height: 1.42857; }

img {
  display: inline-block;
  vertical-align: middle;
  border: 0;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

a {
  color: #24384F;
  text-decoration: none;
  -webkit-transition: color 0.6s;
  transition: color 0.6s; }
  a:hover, a:focus, a:active {
    color: #24384F; }

p {
  margin: 0 0 1.25rem;
  padding: 0; }
  p + ol,
  p + ul,
  p + h1,
  p + h2,
  p + h3,
  p + h4,
  p + h5,
  p + h6,
  p + div {
    margin-top: 1.25rem; }
  p:last-of-type {
    margin-bottom: 0; }

ul + ol,
ul + ul,
ul + h1,
ul + h2,
ul + h3,
ul + h4,
ul + h5,
ul + h6,
ul + p,
ul + div, ol + ol,
ol + ul,
ol + h1,
ol + h2,
ol + h3,
ol + h4,
ol + h5,
ol + h6,
ol + p,
ol + div {
  margin-top: 1.25rem; }

small {
  font-size: 80%; }

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  margin: 0; }

button {
  border: 0;
  background: none;
  padding: 0; }

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }
  [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

@font-face {
  font-family: 'Gotham HTF';
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/GothamHTF-Ultra.otf"); }

@font-face {
  font-family: 'Gotham HTF';
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/GothamHTF-Black.otf"); }

@font-face {
  font-family: 'Gotham HTF';
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/GothamHTF-Bold.otf"); }

@font-face {
  font-family: 'Gotham HTF';
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/GothamHTF-Medium.otf"); }

@font-face {
  font-family: 'Gotham HTF';
  font-style: italic;
  font-weight: 500;
  src: url("../fonts/GothamHTF-MediumItalic.otf"); }

@font-face {
  font-family: 'Gotham HTF';
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/GothamHTF-Book.otf"); }

@font-face {
  font-family: 'Gotham HTF';
  font-style: italic;
  font-weight: normal;
  src: url("../fonts/GothamHTF-BookItalic.otf"); }

@font-face {
  font-family: 'Museo Sans';
  font-style: normal;
  font-weight: 900;
  src: url("../fonts/MuseoSans_900.otf"); }

@font-face {
  font-family: 'Museo Sans';
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/MuseoSans_700.otf"); }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Gotham HTF";
  margin: 0;
  padding: 0;
  line-height: 1.1;
  font-weight: 900; }

h1, .h1 {
  line-height: 1.18; }
  h1, .h1 {
    font-size: 2.7rem; }
    @media screen and (min-width: 768px) {
      h1, .h1 {
        font-size: calc(43.2px + 10.8 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      h1, .h1 {
        font-size: 3.375rem; } }

h2, .h2 {
  font-size: 1.7rem; }
  @media screen and (min-width: 768px) {
    h2, .h2 {
      font-size: calc(27.2px + 6.8 * ((100vw - 768px) / 256)); } }
  @media screen and (min-width: 1024px) {
    h2, .h2 {
      font-size: 2.125rem; } }

h3, .h3 {
  font-size: 1.2rem; }
  @media screen and (min-width: 768px) {
    h3, .h3 {
      font-size: calc(19.2px + 4.8 * ((100vw - 768px) / 256)); } }
  @media screen and (min-width: 1024px) {
    h3, .h3 {
      font-size: 1.5rem; } }

h4, .h4 {
  font-size: 0.945rem; }
  @media screen and (min-width: 768px) {
    h4, .h4 {
      font-size: calc(15.12px + 2.88 * ((100vw - 768px) / 256)); } }
  @media screen and (min-width: 1024px) {
    h4, .h4 {
      font-size: 1.125rem; } }

h5, .h5 {
  font-size: 0.84rem; }
  @media screen and (min-width: 768px) {
    h5, .h5 {
      font-size: calc(13.44px + 2.56 * ((100vw - 768px) / 256)); } }
  @media screen and (min-width: 1024px) {
    h5, .h5 {
      font-size: 1rem; } }

h6, .h6 {
  font-size: 0.7525rem; }
  @media screen and (min-width: 768px) {
    h6, .h6 {
      font-size: calc(12.04px + 1.96 * ((100vw - 768px) / 256)); } }
  @media screen and (min-width: 1024px) {
    h6, .h6 {
      font-size: 0.875rem; } }

.page-title {
  text-transform: uppercase;
  margin-bottom: 5rem; }

.bg-dark {
  color: #fff; }
  .bg-dark label,
  .bg-dark a:not(.button) {
    color: #fff; }
  .bg-dark .close-button {
    color: #fff; }
  .bg-dark .module.form .gform_wrapper .validation_message {
    color: #fff; }
  .bg-dark .module.form .gform_wrapper .validation_error {
    color: #fff;
    border-color: #fff; }
  .bg-dark .module.form .gform_wrapper ul.gform_fields li.gfield .ginput_container_checkbox .gfield_checkbox > li label:before,
  .bg-dark .module.form .gform_wrapper ul.gform_fields li.gfield .ginput_container_radio .gfield_radio > li label:before {
    border-color: #fff; }
  .bg-dark .module.form .gform_wrapper ul.gform_fields li.gfield .ginput_container_checkbox .gfield_checkbox > li label:after,
  .bg-dark .module.form .gform_wrapper ul.gform_fields li.gfield .ginput_container_radio .gfield_radio > li label:after {
    background: #fff !important; }

.bg-image {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover; }

.bg-video {
  position: relative; }
  .bg-video .video-overlay {
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: 1; }
    .bg-video .video-overlay video {
      -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      left: 50%;
      position: absolute;
      min-width: 100%;
      min-height: 100%;
      top: 50%;
      -o-object-fit: fill;
         object-fit: fill; }
  .bg-video > * {
    position: relative;
    z-index: 2; }

.bg-video .overlay,
.bg-image .overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4); }

.bg-blue {
  background: #24384F; }

.color-grey {
  color: #6C95A7; }

.color-red {
  color: #D90011; }

.color-orange {
  color: #FFA017; }

.color-blue {
  color: #0093FF; }

.color-pink {
  color: #E700DD; }

.color-green {
  color: #00A248; }

.fs18 {
  font-size: 1.125rem;
  line-height: 1.5; }

.fs16 {
  font-size: 1rem;
  line-height: 1.68; }

@media print, screen and (min-width: 48em) {
  .pl-md-150 {
    padding-left: 9.375rem; } }

.pull-top {
  margin-top: 0 !important; }
  [class^="bg-"] + .pull-top[class^="bg-"],
  [class*="bg-"] + .pull-top[class*="bg-"] {
    padding-top: 0 !important; }

.pull-bottom {
  margin-bottom: 0 !important; }
  .pull-bottom + [class^="bg-"],
  .pull-bottom + [class*="bg-"] {
    margin-top: 0 !important; }
  [class^="bg-"] + .pull-bottom[class^="bg-"],
  [class*="bg-"] + .pull-bottom[class*="bg-"] {
    padding-bottom: 0 !important; }

.pull-vert {
  margin-bottom: 0 !important;
  margin-top: 0 !important; }
  .pull-vert + [class^="bg-"],
  .pull-vert + [class*="bg-"] {
    margin-top: 0 !important; }
  .pull-vert[class^="bg-"], .pull-vert[class*="bg-"] {
    padding-bottom: 4.5rem;
    padding-top: 4.5rem; }
    @media print, screen and (min-width: 48em) {
      .pull-vert[class^="bg-"], .pull-vert[class*="bg-"] {
        padding-bottom: 5rem;
        padding-top: 5rem; } }
    @media print, screen and (min-width: 64em) {
      .pull-vert[class^="bg-"], .pull-vert[class*="bg-"] {
        padding-bottom: 6.25rem;
        padding-top: 6.25rem; } }

.collapse-vert {
  margin-top: 0 !important; }
  .collapse-vert[class^="bg-"], .collapse-vert[class*="bg-"] {
    margin-top: 2.25rem;
    padding-bottom: 0 !important;
    padding-top: 0 !important; }
    @media print, screen and (min-width: 48em) {
      .collapse-vert[class^="bg-"], .collapse-vert[class*="bg-"] {
        margin-top: 2.5rem; } }
    @media print, screen and (min-width: 64em) {
      .collapse-vert[class^="bg-"], .collapse-vert[class*="bg-"] {
        margin-top: 3.125rem; } }
  .collapse-vert + [class^="bg-"].collapse-vert,
  .collapse-vert + [class*="bg-"].collapse-vert {
    margin-top: 0 !important; }

.push-vert {
  margin-bottom: 4.5rem !important;
  margin-top: 4.5rem !important; }
  @media print, screen and (min-width: 48em) {
    .push-vert {
      margin-bottom: 5rem !important;
      margin-top: 5rem !important; } }
  @media print, screen and (min-width: 64em) {
    .push-vert {
      margin-bottom: 6.25rem !important;
      margin-top: 6.25rem !important; } }
  .push-vert[class^="bg-"], .push-vert[class*="bg-"] {
    padding-bottom: 4.5rem !important;
    padding-top: 4.5rem !important; }
    @media print, screen and (min-width: 48em) {
      .push-vert[class^="bg-"], .push-vert[class*="bg-"] {
        padding-bottom: 5rem !important;
        padding-top: 5rem !important; } }
    @media print, screen and (min-width: 64em) {
      .push-vert[class^="bg-"], .push-vert[class*="bg-"] {
        padding-bottom: 6.25rem !important;
        padding-top: 6.25rem !important; } }

.align-baseline {
  vertical-align: baseline !important; }

.align-top {
  vertical-align: top !important; }

.align-middle {
  vertical-align: middle !important; }

.align-bottom {
  vertical-align: bottom !important; }

.align-text-bottom {
  vertical-align: text-bottom !important; }

.align-text-top {
  vertical-align: text-top !important; }

.float-left {
  float: left !important; }

.float-right {
  float: right !important; }

.float-none {
  float: none !important; }

.d-inline {
  display: inline !important; }

.d-inline-block {
  display: inline-block !important; }

.d-block {
  display: block !important; }

.d-grid {
  display: grid !important; }

.d-table {
  display: table !important; }

.d-table-row {
  display: table-row !important; }

.d-table-cell {
  display: table-cell !important; }

.d-flex {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important; }

.d-inline-flex {
  display: -webkit-inline-box !important;
  display: -webkit-inline-flex !important;
  display: -ms-inline-flexbox !important;
  display: inline-flex !important; }

.d-none {
  display: none !important; }

.flex-fill {
  -webkit-box-flex: 1 !important;
  -webkit-flex: 1 1 auto !important;
      -ms-flex: 1 1 auto !important;
          flex: 1 1 auto !important; }

.flex-row {
  -webkit-box-orient: horizontal !important;
  -webkit-box-direction: normal !important;
  -webkit-flex-direction: row !important;
      -ms-flex-direction: row !important;
          flex-direction: row !important; }

.flex-column {
  -webkit-box-orient: vertical !important;
  -webkit-box-direction: normal !important;
  -webkit-flex-direction: column !important;
      -ms-flex-direction: column !important;
          flex-direction: column !important; }

.flex-row-reverse {
  -webkit-box-orient: horizontal !important;
  -webkit-box-direction: reverse !important;
  -webkit-flex-direction: row-reverse !important;
      -ms-flex-direction: row-reverse !important;
          flex-direction: row-reverse !important; }

.flex-column-reverse {
  -webkit-box-orient: vertical !important;
  -webkit-box-direction: reverse !important;
  -webkit-flex-direction: column-reverse !important;
      -ms-flex-direction: column-reverse !important;
          flex-direction: column-reverse !important; }

.flex-grow-0 {
  -webkit-box-flex: 0 !important;
  -webkit-flex-grow: 0 !important;
      -ms-flex-positive: 0 !important;
          flex-grow: 0 !important; }

.flex-grow-1 {
  -webkit-box-flex: 1 !important;
  -webkit-flex-grow: 1 !important;
      -ms-flex-positive: 1 !important;
          flex-grow: 1 !important; }

.flex-shrink-0 {
  -webkit-flex-shrink: 0 !important;
      -ms-flex-negative: 0 !important;
          flex-shrink: 0 !important; }

.flex-shrink-1 {
  -webkit-flex-shrink: 1 !important;
      -ms-flex-negative: 1 !important;
          flex-shrink: 1 !important; }

.flex-wrap {
  -webkit-flex-wrap: wrap !important;
      -ms-flex-wrap: wrap !important;
          flex-wrap: wrap !important; }

.flex-nowrap {
  -webkit-flex-wrap: nowrap !important;
      -ms-flex-wrap: nowrap !important;
          flex-wrap: nowrap !important; }

.flex-wrap-reverse {
  -webkit-flex-wrap: wrap-reverse !important;
      -ms-flex-wrap: wrap-reverse !important;
          flex-wrap: wrap-reverse !important; }

.justify-content-start {
  -webkit-box-pack: start !important;
  -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
          justify-content: flex-start !important; }

.justify-content-end {
  -webkit-box-pack: end !important;
  -webkit-justify-content: flex-end !important;
      -ms-flex-pack: end !important;
          justify-content: flex-end !important; }

.justify-content-center {
  -webkit-box-pack: center !important;
  -webkit-justify-content: center !important;
      -ms-flex-pack: center !important;
          justify-content: center !important; }

.justify-content-between {
  -webkit-box-pack: justify !important;
  -webkit-justify-content: space-between !important;
      -ms-flex-pack: justify !important;
          justify-content: space-between !important; }

.justify-content-around {
  -webkit-justify-content: space-around !important;
      -ms-flex-pack: distribute !important;
          justify-content: space-around !important; }

.justify-content-evenly {
  -webkit-box-pack: space-evenly !important;
  -webkit-justify-content: space-evenly !important;
      -ms-flex-pack: space-evenly !important;
          justify-content: space-evenly !important; }

.align-items-start {
  -webkit-box-align: start !important;
  -webkit-align-items: flex-start !important;
      -ms-flex-align: start !important;
          align-items: flex-start !important; }

.align-items-end {
  -webkit-box-align: end !important;
  -webkit-align-items: flex-end !important;
      -ms-flex-align: end !important;
          align-items: flex-end !important; }

.align-items-center {
  -webkit-box-align: center !important;
  -webkit-align-items: center !important;
      -ms-flex-align: center !important;
          align-items: center !important; }

.align-items-baseline {
  -webkit-box-align: baseline !important;
  -webkit-align-items: baseline !important;
      -ms-flex-align: baseline !important;
          align-items: baseline !important; }

.align-items-stretch {
  -webkit-box-align: stretch !important;
  -webkit-align-items: stretch !important;
      -ms-flex-align: stretch !important;
          align-items: stretch !important; }

.align-content-start {
  -webkit-align-content: flex-start !important;
      -ms-flex-line-pack: start !important;
          align-content: flex-start !important; }

.align-content-end {
  -webkit-align-content: flex-end !important;
      -ms-flex-line-pack: end !important;
          align-content: flex-end !important; }

.align-content-center {
  -webkit-align-content: center !important;
      -ms-flex-line-pack: center !important;
          align-content: center !important; }

.align-content-between {
  -webkit-align-content: space-between !important;
      -ms-flex-line-pack: justify !important;
          align-content: space-between !important; }

.align-content-around {
  -webkit-align-content: space-around !important;
      -ms-flex-line-pack: distribute !important;
          align-content: space-around !important; }

.align-content-stretch {
  -webkit-align-content: stretch !important;
      -ms-flex-line-pack: stretch !important;
          align-content: stretch !important; }

.align-self-auto {
  -webkit-align-self: auto !important;
      -ms-flex-item-align: auto !important;
          align-self: auto !important; }

.align-self-start {
  -webkit-align-self: flex-start !important;
      -ms-flex-item-align: start !important;
          align-self: flex-start !important; }

.align-self-end {
  -webkit-align-self: flex-end !important;
      -ms-flex-item-align: end !important;
          align-self: flex-end !important; }

.align-self-center {
  -webkit-align-self: center !important;
      -ms-flex-item-align: center !important;
          align-self: center !important; }

.align-self-baseline {
  -webkit-align-self: baseline !important;
      -ms-flex-item-align: baseline !important;
          align-self: baseline !important; }

.align-self-stretch {
  -webkit-align-self: stretch !important;
      -ms-flex-item-align: stretch !important;
          align-self: stretch !important; }

.order-first {
  -webkit-box-ordinal-group: 0 !important;
  -webkit-order: -1 !important;
      -ms-flex-order: -1 !important;
          order: -1 !important; }

.order-0 {
  -webkit-box-ordinal-group: 1 !important;
  -webkit-order: 0 !important;
      -ms-flex-order: 0 !important;
          order: 0 !important; }

.order-1 {
  -webkit-box-ordinal-group: 2 !important;
  -webkit-order: 1 !important;
      -ms-flex-order: 1 !important;
          order: 1 !important; }

.order-2 {
  -webkit-box-ordinal-group: 3 !important;
  -webkit-order: 2 !important;
      -ms-flex-order: 2 !important;
          order: 2 !important; }

.order-3 {
  -webkit-box-ordinal-group: 4 !important;
  -webkit-order: 3 !important;
      -ms-flex-order: 3 !important;
          order: 3 !important; }

.order-4 {
  -webkit-box-ordinal-group: 5 !important;
  -webkit-order: 4 !important;
      -ms-flex-order: 4 !important;
          order: 4 !important; }

.order-5 {
  -webkit-box-ordinal-group: 6 !important;
  -webkit-order: 5 !important;
      -ms-flex-order: 5 !important;
          order: 5 !important; }

.order-last {
  -webkit-box-ordinal-group: 7 !important;
  -webkit-order: 6 !important;
      -ms-flex-order: 6 !important;
          order: 6 !important; }

.text-lowercase {
  text-transform: lowercase !important; }

.text-uppercase {
  text-transform: uppercase !important; }

.text-capitalize {
  text-transform: capitalize !important; }

.text-left {
  text-align: left !important; }

.text-right {
  text-align: right !important; }

.text-center {
  text-align: center !important; }

.visible {
  visibility: visible !important; }

.invisible {
  visibility: hidden !important; }

.float-sm-left {
  float: left !important; }

.float-sm-right {
  float: right !important; }

.float-sm-none {
  float: none !important; }

.d-sm-inline {
  display: inline !important; }

.d-sm-inline-block {
  display: inline-block !important; }

.d-sm-block {
  display: block !important; }

.d-sm-grid {
  display: grid !important; }

.d-sm-table {
  display: table !important; }

.d-sm-table-row {
  display: table-row !important; }

.d-sm-table-cell {
  display: table-cell !important; }

.d-sm-flex {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important; }

.d-sm-inline-flex {
  display: -webkit-inline-box !important;
  display: -webkit-inline-flex !important;
  display: -ms-inline-flexbox !important;
  display: inline-flex !important; }

.d-sm-none {
  display: none !important; }

.flex-sm-fill {
  -webkit-box-flex: 1 !important;
  -webkit-flex: 1 1 auto !important;
      -ms-flex: 1 1 auto !important;
          flex: 1 1 auto !important; }

.flex-sm-row {
  -webkit-box-orient: horizontal !important;
  -webkit-box-direction: normal !important;
  -webkit-flex-direction: row !important;
      -ms-flex-direction: row !important;
          flex-direction: row !important; }

.flex-sm-column {
  -webkit-box-orient: vertical !important;
  -webkit-box-direction: normal !important;
  -webkit-flex-direction: column !important;
      -ms-flex-direction: column !important;
          flex-direction: column !important; }

.flex-sm-row-reverse {
  -webkit-box-orient: horizontal !important;
  -webkit-box-direction: reverse !important;
  -webkit-flex-direction: row-reverse !important;
      -ms-flex-direction: row-reverse !important;
          flex-direction: row-reverse !important; }

.flex-sm-column-reverse {
  -webkit-box-orient: vertical !important;
  -webkit-box-direction: reverse !important;
  -webkit-flex-direction: column-reverse !important;
      -ms-flex-direction: column-reverse !important;
          flex-direction: column-reverse !important; }

.flex-sm-grow-0 {
  -webkit-box-flex: 0 !important;
  -webkit-flex-grow: 0 !important;
      -ms-flex-positive: 0 !important;
          flex-grow: 0 !important; }

.flex-sm-grow-1 {
  -webkit-box-flex: 1 !important;
  -webkit-flex-grow: 1 !important;
      -ms-flex-positive: 1 !important;
          flex-grow: 1 !important; }

.flex-sm-shrink-0 {
  -webkit-flex-shrink: 0 !important;
      -ms-flex-negative: 0 !important;
          flex-shrink: 0 !important; }

.flex-sm-shrink-1 {
  -webkit-flex-shrink: 1 !important;
      -ms-flex-negative: 1 !important;
          flex-shrink: 1 !important; }

.flex-sm-wrap {
  -webkit-flex-wrap: wrap !important;
      -ms-flex-wrap: wrap !important;
          flex-wrap: wrap !important; }

.flex-sm-nowrap {
  -webkit-flex-wrap: nowrap !important;
      -ms-flex-wrap: nowrap !important;
          flex-wrap: nowrap !important; }

.flex-sm-wrap-reverse {
  -webkit-flex-wrap: wrap-reverse !important;
      -ms-flex-wrap: wrap-reverse !important;
          flex-wrap: wrap-reverse !important; }

.justify-content-sm-start {
  -webkit-box-pack: start !important;
  -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
          justify-content: flex-start !important; }

.justify-content-sm-end {
  -webkit-box-pack: end !important;
  -webkit-justify-content: flex-end !important;
      -ms-flex-pack: end !important;
          justify-content: flex-end !important; }

.justify-content-sm-center {
  -webkit-box-pack: center !important;
  -webkit-justify-content: center !important;
      -ms-flex-pack: center !important;
          justify-content: center !important; }

.justify-content-sm-between {
  -webkit-box-pack: justify !important;
  -webkit-justify-content: space-between !important;
      -ms-flex-pack: justify !important;
          justify-content: space-between !important; }

.justify-content-sm-around {
  -webkit-justify-content: space-around !important;
      -ms-flex-pack: distribute !important;
          justify-content: space-around !important; }

.justify-content-sm-evenly {
  -webkit-box-pack: space-evenly !important;
  -webkit-justify-content: space-evenly !important;
      -ms-flex-pack: space-evenly !important;
          justify-content: space-evenly !important; }

.align-items-sm-start {
  -webkit-box-align: start !important;
  -webkit-align-items: flex-start !important;
      -ms-flex-align: start !important;
          align-items: flex-start !important; }

.align-items-sm-end {
  -webkit-box-align: end !important;
  -webkit-align-items: flex-end !important;
      -ms-flex-align: end !important;
          align-items: flex-end !important; }

.align-items-sm-center {
  -webkit-box-align: center !important;
  -webkit-align-items: center !important;
      -ms-flex-align: center !important;
          align-items: center !important; }

.align-items-sm-baseline {
  -webkit-box-align: baseline !important;
  -webkit-align-items: baseline !important;
      -ms-flex-align: baseline !important;
          align-items: baseline !important; }

.align-items-sm-stretch {
  -webkit-box-align: stretch !important;
  -webkit-align-items: stretch !important;
      -ms-flex-align: stretch !important;
          align-items: stretch !important; }

.align-content-sm-start {
  -webkit-align-content: flex-start !important;
      -ms-flex-line-pack: start !important;
          align-content: flex-start !important; }

.align-content-sm-end {
  -webkit-align-content: flex-end !important;
      -ms-flex-line-pack: end !important;
          align-content: flex-end !important; }

.align-content-sm-center {
  -webkit-align-content: center !important;
      -ms-flex-line-pack: center !important;
          align-content: center !important; }

.align-content-sm-between {
  -webkit-align-content: space-between !important;
      -ms-flex-line-pack: justify !important;
          align-content: space-between !important; }

.align-content-sm-around {
  -webkit-align-content: space-around !important;
      -ms-flex-line-pack: distribute !important;
          align-content: space-around !important; }

.align-content-sm-stretch {
  -webkit-align-content: stretch !important;
      -ms-flex-line-pack: stretch !important;
          align-content: stretch !important; }

.align-self-sm-auto {
  -webkit-align-self: auto !important;
      -ms-flex-item-align: auto !important;
          align-self: auto !important; }

.align-self-sm-start {
  -webkit-align-self: flex-start !important;
      -ms-flex-item-align: start !important;
          align-self: flex-start !important; }

.align-self-sm-end {
  -webkit-align-self: flex-end !important;
      -ms-flex-item-align: end !important;
          align-self: flex-end !important; }

.align-self-sm-center {
  -webkit-align-self: center !important;
      -ms-flex-item-align: center !important;
          align-self: center !important; }

.align-self-sm-baseline {
  -webkit-align-self: baseline !important;
      -ms-flex-item-align: baseline !important;
          align-self: baseline !important; }

.align-self-sm-stretch {
  -webkit-align-self: stretch !important;
      -ms-flex-item-align: stretch !important;
          align-self: stretch !important; }

.order-sm-first {
  -webkit-box-ordinal-group: 0 !important;
  -webkit-order: -1 !important;
      -ms-flex-order: -1 !important;
          order: -1 !important; }

.order-sm-0 {
  -webkit-box-ordinal-group: 1 !important;
  -webkit-order: 0 !important;
      -ms-flex-order: 0 !important;
          order: 0 !important; }

.order-sm-1 {
  -webkit-box-ordinal-group: 2 !important;
  -webkit-order: 1 !important;
      -ms-flex-order: 1 !important;
          order: 1 !important; }

.order-sm-2 {
  -webkit-box-ordinal-group: 3 !important;
  -webkit-order: 2 !important;
      -ms-flex-order: 2 !important;
          order: 2 !important; }

.order-sm-3 {
  -webkit-box-ordinal-group: 4 !important;
  -webkit-order: 3 !important;
      -ms-flex-order: 3 !important;
          order: 3 !important; }

.order-sm-4 {
  -webkit-box-ordinal-group: 5 !important;
  -webkit-order: 4 !important;
      -ms-flex-order: 4 !important;
          order: 4 !important; }

.order-sm-5 {
  -webkit-box-ordinal-group: 6 !important;
  -webkit-order: 5 !important;
      -ms-flex-order: 5 !important;
          order: 5 !important; }

.order-sm-last {
  -webkit-box-ordinal-group: 7 !important;
  -webkit-order: 6 !important;
      -ms-flex-order: 6 !important;
          order: 6 !important; }

.text-sm-left {
  text-align: left !important; }

.text-sm-right {
  text-align: right !important; }

.text-sm-center {
  text-align: center !important; }

@media screen and (min-width: 48em) {
  .float-md-left {
    float: left !important; }
  .float-md-right {
    float: right !important; }
  .float-md-none {
    float: none !important; }
  .d-md-inline {
    display: inline !important; }
  .d-md-inline-block {
    display: inline-block !important; }
  .d-md-block {
    display: block !important; }
  .d-md-grid {
    display: grid !important; }
  .d-md-table {
    display: table !important; }
  .d-md-table-row {
    display: table-row !important; }
  .d-md-table-cell {
    display: table-cell !important; }
  .d-md-flex {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; }
  .d-md-inline-flex {
    display: -webkit-inline-box !important;
    display: -webkit-inline-flex !important;
    display: -ms-inline-flexbox !important;
    display: inline-flex !important; }
  .d-md-none {
    display: none !important; }
  .flex-md-fill {
    -webkit-box-flex: 1 !important;
    -webkit-flex: 1 1 auto !important;
        -ms-flex: 1 1 auto !important;
            flex: 1 1 auto !important; }
  .flex-md-row {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: row !important;
        -ms-flex-direction: row !important;
            flex-direction: row !important; }
  .flex-md-column {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: column !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important; }
  .flex-md-row-reverse {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: row-reverse !important;
        -ms-flex-direction: row-reverse !important;
            flex-direction: row-reverse !important; }
  .flex-md-column-reverse {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: column-reverse !important;
        -ms-flex-direction: column-reverse !important;
            flex-direction: column-reverse !important; }
  .flex-md-grow-0 {
    -webkit-box-flex: 0 !important;
    -webkit-flex-grow: 0 !important;
        -ms-flex-positive: 0 !important;
            flex-grow: 0 !important; }
  .flex-md-grow-1 {
    -webkit-box-flex: 1 !important;
    -webkit-flex-grow: 1 !important;
        -ms-flex-positive: 1 !important;
            flex-grow: 1 !important; }
  .flex-md-shrink-0 {
    -webkit-flex-shrink: 0 !important;
        -ms-flex-negative: 0 !important;
            flex-shrink: 0 !important; }
  .flex-md-shrink-1 {
    -webkit-flex-shrink: 1 !important;
        -ms-flex-negative: 1 !important;
            flex-shrink: 1 !important; }
  .flex-md-wrap {
    -webkit-flex-wrap: wrap !important;
        -ms-flex-wrap: wrap !important;
            flex-wrap: wrap !important; }
  .flex-md-nowrap {
    -webkit-flex-wrap: nowrap !important;
        -ms-flex-wrap: nowrap !important;
            flex-wrap: nowrap !important; }
  .flex-md-wrap-reverse {
    -webkit-flex-wrap: wrap-reverse !important;
        -ms-flex-wrap: wrap-reverse !important;
            flex-wrap: wrap-reverse !important; }
  .justify-content-md-start {
    -webkit-box-pack: start !important;
    -webkit-justify-content: flex-start !important;
        -ms-flex-pack: start !important;
            justify-content: flex-start !important; }
  .justify-content-md-end {
    -webkit-box-pack: end !important;
    -webkit-justify-content: flex-end !important;
        -ms-flex-pack: end !important;
            justify-content: flex-end !important; }
  .justify-content-md-center {
    -webkit-box-pack: center !important;
    -webkit-justify-content: center !important;
        -ms-flex-pack: center !important;
            justify-content: center !important; }
  .justify-content-md-between {
    -webkit-box-pack: justify !important;
    -webkit-justify-content: space-between !important;
        -ms-flex-pack: justify !important;
            justify-content: space-between !important; }
  .justify-content-md-around {
    -webkit-justify-content: space-around !important;
        -ms-flex-pack: distribute !important;
            justify-content: space-around !important; }
  .justify-content-md-evenly {
    -webkit-box-pack: space-evenly !important;
    -webkit-justify-content: space-evenly !important;
        -ms-flex-pack: space-evenly !important;
            justify-content: space-evenly !important; }
  .align-items-md-start {
    -webkit-box-align: start !important;
    -webkit-align-items: flex-start !important;
        -ms-flex-align: start !important;
            align-items: flex-start !important; }
  .align-items-md-end {
    -webkit-box-align: end !important;
    -webkit-align-items: flex-end !important;
        -ms-flex-align: end !important;
            align-items: flex-end !important; }
  .align-items-md-center {
    -webkit-box-align: center !important;
    -webkit-align-items: center !important;
        -ms-flex-align: center !important;
            align-items: center !important; }
  .align-items-md-baseline {
    -webkit-box-align: baseline !important;
    -webkit-align-items: baseline !important;
        -ms-flex-align: baseline !important;
            align-items: baseline !important; }
  .align-items-md-stretch {
    -webkit-box-align: stretch !important;
    -webkit-align-items: stretch !important;
        -ms-flex-align: stretch !important;
            align-items: stretch !important; }
  .align-content-md-start {
    -webkit-align-content: flex-start !important;
        -ms-flex-line-pack: start !important;
            align-content: flex-start !important; }
  .align-content-md-end {
    -webkit-align-content: flex-end !important;
        -ms-flex-line-pack: end !important;
            align-content: flex-end !important; }
  .align-content-md-center {
    -webkit-align-content: center !important;
        -ms-flex-line-pack: center !important;
            align-content: center !important; }
  .align-content-md-between {
    -webkit-align-content: space-between !important;
        -ms-flex-line-pack: justify !important;
            align-content: space-between !important; }
  .align-content-md-around {
    -webkit-align-content: space-around !important;
        -ms-flex-line-pack: distribute !important;
            align-content: space-around !important; }
  .align-content-md-stretch {
    -webkit-align-content: stretch !important;
        -ms-flex-line-pack: stretch !important;
            align-content: stretch !important; }
  .align-self-md-auto {
    -webkit-align-self: auto !important;
        -ms-flex-item-align: auto !important;
            align-self: auto !important; }
  .align-self-md-start {
    -webkit-align-self: flex-start !important;
        -ms-flex-item-align: start !important;
            align-self: flex-start !important; }
  .align-self-md-end {
    -webkit-align-self: flex-end !important;
        -ms-flex-item-align: end !important;
            align-self: flex-end !important; }
  .align-self-md-center {
    -webkit-align-self: center !important;
        -ms-flex-item-align: center !important;
            align-self: center !important; }
  .align-self-md-baseline {
    -webkit-align-self: baseline !important;
        -ms-flex-item-align: baseline !important;
            align-self: baseline !important; }
  .align-self-md-stretch {
    -webkit-align-self: stretch !important;
        -ms-flex-item-align: stretch !important;
            align-self: stretch !important; }
  .order-md-first {
    -webkit-box-ordinal-group: 0 !important;
    -webkit-order: -1 !important;
        -ms-flex-order: -1 !important;
            order: -1 !important; }
  .order-md-0 {
    -webkit-box-ordinal-group: 1 !important;
    -webkit-order: 0 !important;
        -ms-flex-order: 0 !important;
            order: 0 !important; }
  .order-md-1 {
    -webkit-box-ordinal-group: 2 !important;
    -webkit-order: 1 !important;
        -ms-flex-order: 1 !important;
            order: 1 !important; }
  .order-md-2 {
    -webkit-box-ordinal-group: 3 !important;
    -webkit-order: 2 !important;
        -ms-flex-order: 2 !important;
            order: 2 !important; }
  .order-md-3 {
    -webkit-box-ordinal-group: 4 !important;
    -webkit-order: 3 !important;
        -ms-flex-order: 3 !important;
            order: 3 !important; }
  .order-md-4 {
    -webkit-box-ordinal-group: 5 !important;
    -webkit-order: 4 !important;
        -ms-flex-order: 4 !important;
            order: 4 !important; }
  .order-md-5 {
    -webkit-box-ordinal-group: 6 !important;
    -webkit-order: 5 !important;
        -ms-flex-order: 5 !important;
            order: 5 !important; }
  .order-md-last {
    -webkit-box-ordinal-group: 7 !important;
    -webkit-order: 6 !important;
        -ms-flex-order: 6 !important;
            order: 6 !important; }
  .text-md-left {
    text-align: left !important; }
  .text-md-right {
    text-align: right !important; }
  .text-md-center {
    text-align: center !important; } }

@media screen and (min-width: 64em) {
  .float-lg-start {
    float: left !important; }
  .float-lg-end {
    float: right !important; }
  .float-lg-none {
    float: none !important; }
  .d-lg-inline {
    display: inline !important; }
  .d-lg-inline-block {
    display: inline-block !important; }
  .d-lg-block {
    display: block !important; }
  .d-lg-grid {
    display: grid !important; }
  .d-lg-table {
    display: table !important; }
  .d-lg-table-row {
    display: table-row !important; }
  .d-lg-table-cell {
    display: table-cell !important; }
  .d-lg-flex {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; }
  .d-lg-inline-flex {
    display: -webkit-inline-box !important;
    display: -webkit-inline-flex !important;
    display: -ms-inline-flexbox !important;
    display: inline-flex !important; }
  .d-lg-none {
    display: none !important; }
  .flex-lg-fill {
    -webkit-box-flex: 1 !important;
    -webkit-flex: 1 1 auto !important;
        -ms-flex: 1 1 auto !important;
            flex: 1 1 auto !important; }
  .flex-lg-row {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: row !important;
        -ms-flex-direction: row !important;
            flex-direction: row !important; }
  .flex-lg-column {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: column !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important; }
  .flex-lg-row-reverse {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: row-reverse !important;
        -ms-flex-direction: row-reverse !important;
            flex-direction: row-reverse !important; }
  .flex-lg-column-reverse {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: column-reverse !important;
        -ms-flex-direction: column-reverse !important;
            flex-direction: column-reverse !important; }
  .flex-lg-grow-0 {
    -webkit-box-flex: 0 !important;
    -webkit-flex-grow: 0 !important;
        -ms-flex-positive: 0 !important;
            flex-grow: 0 !important; }
  .flex-lg-grow-1 {
    -webkit-box-flex: 1 !important;
    -webkit-flex-grow: 1 !important;
        -ms-flex-positive: 1 !important;
            flex-grow: 1 !important; }
  .flex-lg-shrink-0 {
    -webkit-flex-shrink: 0 !important;
        -ms-flex-negative: 0 !important;
            flex-shrink: 0 !important; }
  .flex-lg-shrink-1 {
    -webkit-flex-shrink: 1 !important;
        -ms-flex-negative: 1 !important;
            flex-shrink: 1 !important; }
  .flex-lg-wrap {
    -webkit-flex-wrap: wrap !important;
        -ms-flex-wrap: wrap !important;
            flex-wrap: wrap !important; }
  .flex-lg-nowrap {
    -webkit-flex-wrap: nowrap !important;
        -ms-flex-wrap: nowrap !important;
            flex-wrap: nowrap !important; }
  .flex-lg-wrap-reverse {
    -webkit-flex-wrap: wrap-reverse !important;
        -ms-flex-wrap: wrap-reverse !important;
            flex-wrap: wrap-reverse !important; }
  .justify-content-lg-start {
    -webkit-box-pack: start !important;
    -webkit-justify-content: flex-start !important;
        -ms-flex-pack: start !important;
            justify-content: flex-start !important; }
  .justify-content-lg-end {
    -webkit-box-pack: end !important;
    -webkit-justify-content: flex-end !important;
        -ms-flex-pack: end !important;
            justify-content: flex-end !important; }
  .justify-content-lg-center {
    -webkit-box-pack: center !important;
    -webkit-justify-content: center !important;
        -ms-flex-pack: center !important;
            justify-content: center !important; }
  .justify-content-lg-between {
    -webkit-box-pack: justify !important;
    -webkit-justify-content: space-between !important;
        -ms-flex-pack: justify !important;
            justify-content: space-between !important; }
  .justify-content-lg-around {
    -webkit-justify-content: space-around !important;
        -ms-flex-pack: distribute !important;
            justify-content: space-around !important; }
  .justify-content-lg-evenly {
    -webkit-box-pack: space-evenly !important;
    -webkit-justify-content: space-evenly !important;
        -ms-flex-pack: space-evenly !important;
            justify-content: space-evenly !important; }
  .align-items-lg-start {
    -webkit-box-align: start !important;
    -webkit-align-items: flex-start !important;
        -ms-flex-align: start !important;
            align-items: flex-start !important; }
  .align-items-lg-end {
    -webkit-box-align: end !important;
    -webkit-align-items: flex-end !important;
        -ms-flex-align: end !important;
            align-items: flex-end !important; }
  .align-items-lg-center {
    -webkit-box-align: center !important;
    -webkit-align-items: center !important;
        -ms-flex-align: center !important;
            align-items: center !important; }
  .align-items-lg-baseline {
    -webkit-box-align: baseline !important;
    -webkit-align-items: baseline !important;
        -ms-flex-align: baseline !important;
            align-items: baseline !important; }
  .align-items-lg-stretch {
    -webkit-box-align: stretch !important;
    -webkit-align-items: stretch !important;
        -ms-flex-align: stretch !important;
            align-items: stretch !important; }
  .align-content-lg-start {
    -webkit-align-content: flex-start !important;
        -ms-flex-line-pack: start !important;
            align-content: flex-start !important; }
  .align-content-lg-end {
    -webkit-align-content: flex-end !important;
        -ms-flex-line-pack: end !important;
            align-content: flex-end !important; }
  .align-content-lg-center {
    -webkit-align-content: center !important;
        -ms-flex-line-pack: center !important;
            align-content: center !important; }
  .align-content-lg-between {
    -webkit-align-content: space-between !important;
        -ms-flex-line-pack: justify !important;
            align-content: space-between !important; }
  .align-content-lg-around {
    -webkit-align-content: space-around !important;
        -ms-flex-line-pack: distribute !important;
            align-content: space-around !important; }
  .align-content-lg-stretch {
    -webkit-align-content: stretch !important;
        -ms-flex-line-pack: stretch !important;
            align-content: stretch !important; }
  .align-self-lg-auto {
    -webkit-align-self: auto !important;
        -ms-flex-item-align: auto !important;
            align-self: auto !important; }
  .align-self-lg-start {
    -webkit-align-self: flex-start !important;
        -ms-flex-item-align: start !important;
            align-self: flex-start !important; }
  .align-self-lg-end {
    -webkit-align-self: flex-end !important;
        -ms-flex-item-align: end !important;
            align-self: flex-end !important; }
  .align-self-lg-center {
    -webkit-align-self: center !important;
        -ms-flex-item-align: center !important;
            align-self: center !important; }
  .align-self-lg-baseline {
    -webkit-align-self: baseline !important;
        -ms-flex-item-align: baseline !important;
            align-self: baseline !important; }
  .align-self-lg-stretch {
    -webkit-align-self: stretch !important;
        -ms-flex-item-align: stretch !important;
            align-self: stretch !important; }
  .order-lg-first {
    -webkit-box-ordinal-group: 0 !important;
    -webkit-order: -1 !important;
        -ms-flex-order: -1 !important;
            order: -1 !important; }
  .order-lg-0 {
    -webkit-box-ordinal-group: 1 !important;
    -webkit-order: 0 !important;
        -ms-flex-order: 0 !important;
            order: 0 !important; }
  .order-lg-1 {
    -webkit-box-ordinal-group: 2 !important;
    -webkit-order: 1 !important;
        -ms-flex-order: 1 !important;
            order: 1 !important; }
  .order-lg-2 {
    -webkit-box-ordinal-group: 3 !important;
    -webkit-order: 2 !important;
        -ms-flex-order: 2 !important;
            order: 2 !important; }
  .order-lg-3 {
    -webkit-box-ordinal-group: 4 !important;
    -webkit-order: 3 !important;
        -ms-flex-order: 3 !important;
            order: 3 !important; }
  .order-lg-4 {
    -webkit-box-ordinal-group: 5 !important;
    -webkit-order: 4 !important;
        -ms-flex-order: 4 !important;
            order: 4 !important; }
  .order-lg-5 {
    -webkit-box-ordinal-group: 6 !important;
    -webkit-order: 5 !important;
        -ms-flex-order: 5 !important;
            order: 5 !important; }
  .order-lg-last {
    -webkit-box-ordinal-group: 7 !important;
    -webkit-order: 6 !important;
        -ms-flex-order: 6 !important;
            order: 6 !important; }
  .text-lg-left {
    text-align: left !important; }
  .text-lg-right {
    text-align: right !important; }
  .text-lg-center {
    text-align: center !important; } }

@media screen and (min-width: 80em) {
  .float-xl-start {
    float: left !important; }
  .float-xl-end {
    float: right !important; }
  .float-xl-none {
    float: none !important; }
  .d-xl-inline {
    display: inline !important; }
  .d-xl-inline-block {
    display: inline-block !important; }
  .d-xl-block {
    display: block !important; }
  .d-xl-grid {
    display: grid !important; }
  .d-xl-table {
    display: table !important; }
  .d-xl-table-row {
    display: table-row !important; }
  .d-xl-table-cell {
    display: table-cell !important; }
  .d-xl-flex {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; }
  .d-xl-inline-flex {
    display: -webkit-inline-box !important;
    display: -webkit-inline-flex !important;
    display: -ms-inline-flexbox !important;
    display: inline-flex !important; }
  .d-xl-none {
    display: none !important; }
  .flex-xl-fill {
    -webkit-box-flex: 1 !important;
    -webkit-flex: 1 1 auto !important;
        -ms-flex: 1 1 auto !important;
            flex: 1 1 auto !important; }
  .flex-xl-row {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: row !important;
        -ms-flex-direction: row !important;
            flex-direction: row !important; }
  .flex-xl-column {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: column !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important; }
  .flex-xl-row-reverse {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: row-reverse !important;
        -ms-flex-direction: row-reverse !important;
            flex-direction: row-reverse !important; }
  .flex-xl-column-reverse {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: column-reverse !important;
        -ms-flex-direction: column-reverse !important;
            flex-direction: column-reverse !important; }
  .flex-xl-grow-0 {
    -webkit-box-flex: 0 !important;
    -webkit-flex-grow: 0 !important;
        -ms-flex-positive: 0 !important;
            flex-grow: 0 !important; }
  .flex-xl-grow-1 {
    -webkit-box-flex: 1 !important;
    -webkit-flex-grow: 1 !important;
        -ms-flex-positive: 1 !important;
            flex-grow: 1 !important; }
  .flex-xl-shrink-0 {
    -webkit-flex-shrink: 0 !important;
        -ms-flex-negative: 0 !important;
            flex-shrink: 0 !important; }
  .flex-xl-shrink-1 {
    -webkit-flex-shrink: 1 !important;
        -ms-flex-negative: 1 !important;
            flex-shrink: 1 !important; }
  .flex-xl-wrap {
    -webkit-flex-wrap: wrap !important;
        -ms-flex-wrap: wrap !important;
            flex-wrap: wrap !important; }
  .flex-xl-nowrap {
    -webkit-flex-wrap: nowrap !important;
        -ms-flex-wrap: nowrap !important;
            flex-wrap: nowrap !important; }
  .flex-xl-wrap-reverse {
    -webkit-flex-wrap: wrap-reverse !important;
        -ms-flex-wrap: wrap-reverse !important;
            flex-wrap: wrap-reverse !important; }
  .justify-content-xl-start {
    -webkit-box-pack: start !important;
    -webkit-justify-content: flex-start !important;
        -ms-flex-pack: start !important;
            justify-content: flex-start !important; }
  .justify-content-xl-end {
    -webkit-box-pack: end !important;
    -webkit-justify-content: flex-end !important;
        -ms-flex-pack: end !important;
            justify-content: flex-end !important; }
  .justify-content-xl-center {
    -webkit-box-pack: center !important;
    -webkit-justify-content: center !important;
        -ms-flex-pack: center !important;
            justify-content: center !important; }
  .justify-content-xl-between {
    -webkit-box-pack: justify !important;
    -webkit-justify-content: space-between !important;
        -ms-flex-pack: justify !important;
            justify-content: space-between !important; }
  .justify-content-xl-around {
    -webkit-justify-content: space-around !important;
        -ms-flex-pack: distribute !important;
            justify-content: space-around !important; }
  .justify-content-xl-evenly {
    -webkit-box-pack: space-evenly !important;
    -webkit-justify-content: space-evenly !important;
        -ms-flex-pack: space-evenly !important;
            justify-content: space-evenly !important; }
  .align-items-xl-start {
    -webkit-box-align: start !important;
    -webkit-align-items: flex-start !important;
        -ms-flex-align: start !important;
            align-items: flex-start !important; }
  .align-items-xl-end {
    -webkit-box-align: end !important;
    -webkit-align-items: flex-end !important;
        -ms-flex-align: end !important;
            align-items: flex-end !important; }
  .align-items-xl-center {
    -webkit-box-align: center !important;
    -webkit-align-items: center !important;
        -ms-flex-align: center !important;
            align-items: center !important; }
  .align-items-xl-baseline {
    -webkit-box-align: baseline !important;
    -webkit-align-items: baseline !important;
        -ms-flex-align: baseline !important;
            align-items: baseline !important; }
  .align-items-xl-stretch {
    -webkit-box-align: stretch !important;
    -webkit-align-items: stretch !important;
        -ms-flex-align: stretch !important;
            align-items: stretch !important; }
  .align-content-xl-start {
    -webkit-align-content: flex-start !important;
        -ms-flex-line-pack: start !important;
            align-content: flex-start !important; }
  .align-content-xl-end {
    -webkit-align-content: flex-end !important;
        -ms-flex-line-pack: end !important;
            align-content: flex-end !important; }
  .align-content-xl-center {
    -webkit-align-content: center !important;
        -ms-flex-line-pack: center !important;
            align-content: center !important; }
  .align-content-xl-between {
    -webkit-align-content: space-between !important;
        -ms-flex-line-pack: justify !important;
            align-content: space-between !important; }
  .align-content-xl-around {
    -webkit-align-content: space-around !important;
        -ms-flex-line-pack: distribute !important;
            align-content: space-around !important; }
  .align-content-xl-stretch {
    -webkit-align-content: stretch !important;
        -ms-flex-line-pack: stretch !important;
            align-content: stretch !important; }
  .align-self-xl-auto {
    -webkit-align-self: auto !important;
        -ms-flex-item-align: auto !important;
            align-self: auto !important; }
  .align-self-xl-start {
    -webkit-align-self: flex-start !important;
        -ms-flex-item-align: start !important;
            align-self: flex-start !important; }
  .align-self-xl-end {
    -webkit-align-self: flex-end !important;
        -ms-flex-item-align: end !important;
            align-self: flex-end !important; }
  .align-self-xl-center {
    -webkit-align-self: center !important;
        -ms-flex-item-align: center !important;
            align-self: center !important; }
  .align-self-xl-baseline {
    -webkit-align-self: baseline !important;
        -ms-flex-item-align: baseline !important;
            align-self: baseline !important; }
  .align-self-xl-stretch {
    -webkit-align-self: stretch !important;
        -ms-flex-item-align: stretch !important;
            align-self: stretch !important; }
  .order-xl-first {
    -webkit-box-ordinal-group: 0 !important;
    -webkit-order: -1 !important;
        -ms-flex-order: -1 !important;
            order: -1 !important; }
  .order-xl-0 {
    -webkit-box-ordinal-group: 1 !important;
    -webkit-order: 0 !important;
        -ms-flex-order: 0 !important;
            order: 0 !important; }
  .order-xl-1 {
    -webkit-box-ordinal-group: 2 !important;
    -webkit-order: 1 !important;
        -ms-flex-order: 1 !important;
            order: 1 !important; }
  .order-xl-2 {
    -webkit-box-ordinal-group: 3 !important;
    -webkit-order: 2 !important;
        -ms-flex-order: 2 !important;
            order: 2 !important; }
  .order-xl-3 {
    -webkit-box-ordinal-group: 4 !important;
    -webkit-order: 3 !important;
        -ms-flex-order: 3 !important;
            order: 3 !important; }
  .order-xl-4 {
    -webkit-box-ordinal-group: 5 !important;
    -webkit-order: 4 !important;
        -ms-flex-order: 4 !important;
            order: 4 !important; }
  .order-xl-5 {
    -webkit-box-ordinal-group: 6 !important;
    -webkit-order: 5 !important;
        -ms-flex-order: 5 !important;
            order: 5 !important; }
  .order-xl-last {
    -webkit-box-ordinal-group: 7 !important;
    -webkit-order: 6 !important;
        -ms-flex-order: 6 !important;
            order: 6 !important; }
  .text-xl-left {
    text-align: left !important; }
  .text-xl-right {
    text-align: right !important; }
  .text-xl-center {
    text-align: center !important; } }

@media screen and (min-width: 96em) {
  .float-xxl-start {
    float: left !important; }
  .float-xxl-end {
    float: right !important; }
  .float-xxl-none {
    float: none !important; }
  .d-xxl-inline {
    display: inline !important; }
  .d-xxl-inline-block {
    display: inline-block !important; }
  .d-xxl-block {
    display: block !important; }
  .d-xxl-grid {
    display: grid !important; }
  .d-xxl-table {
    display: table !important; }
  .d-xxl-table-row {
    display: table-row !important; }
  .d-xxl-table-cell {
    display: table-cell !important; }
  .d-xxl-flex {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important; }
  .d-xxl-inline-flex {
    display: -webkit-inline-box !important;
    display: -webkit-inline-flex !important;
    display: -ms-inline-flexbox !important;
    display: inline-flex !important; }
  .d-xxl-none {
    display: none !important; }
  .flex-xxl-fill {
    -webkit-box-flex: 1 !important;
    -webkit-flex: 1 1 auto !important;
        -ms-flex: 1 1 auto !important;
            flex: 1 1 auto !important; }
  .flex-xxl-row {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: row !important;
        -ms-flex-direction: row !important;
            flex-direction: row !important; }
  .flex-xxl-column {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
    -webkit-flex-direction: column !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important; }
  .flex-xxl-row-reverse {
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: row-reverse !important;
        -ms-flex-direction: row-reverse !important;
            flex-direction: row-reverse !important; }
  .flex-xxl-column-reverse {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: reverse !important;
    -webkit-flex-direction: column-reverse !important;
        -ms-flex-direction: column-reverse !important;
            flex-direction: column-reverse !important; }
  .flex-xxl-grow-0 {
    -webkit-box-flex: 0 !important;
    -webkit-flex-grow: 0 !important;
        -ms-flex-positive: 0 !important;
            flex-grow: 0 !important; }
  .flex-xxl-grow-1 {
    -webkit-box-flex: 1 !important;
    -webkit-flex-grow: 1 !important;
        -ms-flex-positive: 1 !important;
            flex-grow: 1 !important; }
  .flex-xxl-shrink-0 {
    -webkit-flex-shrink: 0 !important;
        -ms-flex-negative: 0 !important;
            flex-shrink: 0 !important; }
  .flex-xxl-shrink-1 {
    -webkit-flex-shrink: 1 !important;
        -ms-flex-negative: 1 !important;
            flex-shrink: 1 !important; }
  .flex-xxl-wrap {
    -webkit-flex-wrap: wrap !important;
        -ms-flex-wrap: wrap !important;
            flex-wrap: wrap !important; }
  .flex-xxl-nowrap {
    -webkit-flex-wrap: nowrap !important;
        -ms-flex-wrap: nowrap !important;
            flex-wrap: nowrap !important; }
  .flex-xxl-wrap-reverse {
    -webkit-flex-wrap: wrap-reverse !important;
        -ms-flex-wrap: wrap-reverse !important;
            flex-wrap: wrap-reverse !important; }
  .justify-content-xxl-start {
    -webkit-box-pack: start !important;
    -webkit-justify-content: flex-start !important;
        -ms-flex-pack: start !important;
            justify-content: flex-start !important; }
  .justify-content-xxl-end {
    -webkit-box-pack: end !important;
    -webkit-justify-content: flex-end !important;
        -ms-flex-pack: end !important;
            justify-content: flex-end !important; }
  .justify-content-xxl-center {
    -webkit-box-pack: center !important;
    -webkit-justify-content: center !important;
        -ms-flex-pack: center !important;
            justify-content: center !important; }
  .justify-content-xxl-between {
    -webkit-box-pack: justify !important;
    -webkit-justify-content: space-between !important;
        -ms-flex-pack: justify !important;
            justify-content: space-between !important; }
  .justify-content-xxl-around {
    -webkit-justify-content: space-around !important;
        -ms-flex-pack: distribute !important;
            justify-content: space-around !important; }
  .justify-content-xxl-evenly {
    -webkit-box-pack: space-evenly !important;
    -webkit-justify-content: space-evenly !important;
        -ms-flex-pack: space-evenly !important;
            justify-content: space-evenly !important; }
  .align-items-xxl-start {
    -webkit-box-align: start !important;
    -webkit-align-items: flex-start !important;
        -ms-flex-align: start !important;
            align-items: flex-start !important; }
  .align-items-xxl-end {
    -webkit-box-align: end !important;
    -webkit-align-items: flex-end !important;
        -ms-flex-align: end !important;
            align-items: flex-end !important; }
  .align-items-xxl-center {
    -webkit-box-align: center !important;
    -webkit-align-items: center !important;
        -ms-flex-align: center !important;
            align-items: center !important; }
  .align-items-xxl-baseline {
    -webkit-box-align: baseline !important;
    -webkit-align-items: baseline !important;
        -ms-flex-align: baseline !important;
            align-items: baseline !important; }
  .align-items-xxl-stretch {
    -webkit-box-align: stretch !important;
    -webkit-align-items: stretch !important;
        -ms-flex-align: stretch !important;
            align-items: stretch !important; }
  .align-content-xxl-start {
    -webkit-align-content: flex-start !important;
        -ms-flex-line-pack: start !important;
            align-content: flex-start !important; }
  .align-content-xxl-end {
    -webkit-align-content: flex-end !important;
        -ms-flex-line-pack: end !important;
            align-content: flex-end !important; }
  .align-content-xxl-center {
    -webkit-align-content: center !important;
        -ms-flex-line-pack: center !important;
            align-content: center !important; }
  .align-content-xxl-between {
    -webkit-align-content: space-between !important;
        -ms-flex-line-pack: justify !important;
            align-content: space-between !important; }
  .align-content-xxl-around {
    -webkit-align-content: space-around !important;
        -ms-flex-line-pack: distribute !important;
            align-content: space-around !important; }
  .align-content-xxl-stretch {
    -webkit-align-content: stretch !important;
        -ms-flex-line-pack: stretch !important;
            align-content: stretch !important; }
  .align-self-xxl-auto {
    -webkit-align-self: auto !important;
        -ms-flex-item-align: auto !important;
            align-self: auto !important; }
  .align-self-xxl-start {
    -webkit-align-self: flex-start !important;
        -ms-flex-item-align: start !important;
            align-self: flex-start !important; }
  .align-self-xxl-end {
    -webkit-align-self: flex-end !important;
        -ms-flex-item-align: end !important;
            align-self: flex-end !important; }
  .align-self-xxl-center {
    -webkit-align-self: center !important;
        -ms-flex-item-align: center !important;
            align-self: center !important; }
  .align-self-xxl-baseline {
    -webkit-align-self: baseline !important;
        -ms-flex-item-align: baseline !important;
            align-self: baseline !important; }
  .align-self-xxl-stretch {
    -webkit-align-self: stretch !important;
        -ms-flex-item-align: stretch !important;
            align-self: stretch !important; }
  .order-xxl-first {
    -webkit-box-ordinal-group: 0 !important;
    -webkit-order: -1 !important;
        -ms-flex-order: -1 !important;
            order: -1 !important; }
  .order-xxl-0 {
    -webkit-box-ordinal-group: 1 !important;
    -webkit-order: 0 !important;
        -ms-flex-order: 0 !important;
            order: 0 !important; }
  .order-xxl-1 {
    -webkit-box-ordinal-group: 2 !important;
    -webkit-order: 1 !important;
        -ms-flex-order: 1 !important;
            order: 1 !important; }
  .order-xxl-2 {
    -webkit-box-ordinal-group: 3 !important;
    -webkit-order: 2 !important;
        -ms-flex-order: 2 !important;
            order: 2 !important; }
  .order-xxl-3 {
    -webkit-box-ordinal-group: 4 !important;
    -webkit-order: 3 !important;
        -ms-flex-order: 3 !important;
            order: 3 !important; }
  .order-xxl-4 {
    -webkit-box-ordinal-group: 5 !important;
    -webkit-order: 4 !important;
        -ms-flex-order: 4 !important;
            order: 4 !important; }
  .order-xxl-5 {
    -webkit-box-ordinal-group: 6 !important;
    -webkit-order: 5 !important;
        -ms-flex-order: 5 !important;
            order: 5 !important; }
  .order-xxl-last {
    -webkit-box-ordinal-group: 7 !important;
    -webkit-order: 6 !important;
        -ms-flex-order: 6 !important;
            order: 6 !important; }
  .text-xxl-left {
    text-align: left !important; }
  .text-xxl-right {
    text-align: right !important; }
  .text-xxl-center {
    text-align: center !important; } }

.grid-container {
  max-width: 74.375rem;
  padding: 0 1.5625rem; }

.off-canvas {
  background: #24384f;
  color: #fff;
  overflow: auto;
  top: 0;
  right: 0;
  height: 100%;
  width: 100%;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition: -webkit-transform 0.6s;
  transition: -webkit-transform 0.6s;
  transition: transform 0.6s;
  transition: transform 0.6s, -webkit-transform 0.6s;
  padding: 7.5rem 1.5625rem 3.125rem;
  visibility: hidden; }
  .off-canvas.is-open {
    visibility: visible; }
  .off-canvas a:link,
  .off-canvas a:visited {
    color: #fff; }
  .off-canvas.is-open {
    -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
            transform: translateX(0); }
  .off-canvas .menu a {
    padding: 0; }
  .off-canvas .menu.drilldown {
    overflow: visible; }
  .off-canvas .menu .menu-image {
    display: none; }
  .off-canvas .accordion-menu > li > a {
    font-weight: 500;
    text-transform: uppercase;
    font-size: 1.125rem;
    line-height: 2.5rem; }
  .off-canvas .accordion-menu > li.current-menu-item > a {
    font-weight: 900; }
  .off-canvas .accordion-menu > li .submenu-toggle {
    width: 30px;
    height: 30px; }
    .off-canvas .accordion-menu > li .submenu-toggle:after {
      border: 0;
      display: block;
      background-image: url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='11.6px' height='7px' viewBox='0 0 11.6 7' style='enable-background:new 0 0 11.6 7;' xml:space='preserve'%3E%3Cpolygon points='6.1,7 0,0.9 0.9,0 6.1,5.2 10.7,0.7 11.6,1.6' fill='%23fff'/%3E%3C/svg%3E");
      width: 0.75rem;
      height: 0.4375rem;
      background-size: contain; }
  .off-canvas .accordion-menu > li ul {
    margin-left: 1.25rem; }
    .off-canvas .accordion-menu > li ul li a {
      line-height: 1.875rem; }
  .off-canvas .close-button {
    display: inline-block;
    width: 1.25rem;
    height: 1.25rem;
    position: relative;
    position: absolute;
    right: 1.875rem;
    top: 1.25rem; }
    .off-canvas .close-button:after, .off-canvas .close-button:before {
      content: '';
      display: block;
      width: 0.1875rem;
      height: 100%;
      background: #fff;
      position: absolute;
      left: 0.5rem;
      top: 0;
      border-radius: 0.1875rem; }
    .off-canvas .close-button:after {
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }
    .off-canvas .close-button:before {
      -webkit-transform: rotate(45deg);
          -ms-transform: rotate(45deg);
              transform: rotate(45deg); }
  .off-canvas .header-call {
    text-align: left; }

.off-canvas-wrapper {
  overflow: visible; }

.off-canvas.is-transition-overlap {
  z-index: 9999; }
  .off-canvas.is-transition-overlap.is-open {
    -webkit-box-shadow: none;
            box-shadow: none; }

.site-header {
  padding: 1.25rem 0;
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  background: #D5D5D5;
  z-index: 9999; }
  @media print, screen and (min-width: 64em) {
    .site-header {
      padding: 1.875rem 0 1.25rem; } }

.header-call {
  text-align: right;
  font-family: "Museo Sans";
  font-weight: 900;
  color: #C50010;
  margin-bottom: 1.875rem; }
  .header-call {
    font-size: 1rem; }
    @media screen and (min-width: 768px) {
      .header-call {
        font-size: calc(16px + 9 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      .header-call {
        font-size: 1.5625rem; } }
  .header-call a {
    color: #C50010 !important; }

footer.site-footer {
  background: #D5D5D5;
  padding: 3.75rem 0;
  font-size: 1rem;
  line-height: 1.31; }
  @media print, screen and (min-width: 48em) {
    footer.site-footer {
      padding: 7.5rem 0; } }
  footer.site-footer .footer-logos img {
    display: block;
    margin: 0 auto 1.25rem; }
  footer.site-footer .footer-brand-logo {
    display: block;
    margin: 0 auto 4.375rem;
    max-width: 12.6875rem;
    width: 100%; }
  footer.site-footer .footer-title {
    color: #fff;
    font-weight: 500;
    margin-bottom: 1.25rem; }
    footer.site-footer .footer-title {
      font-size: 1.125rem; }
      @media screen and (min-width: 768px) {
        footer.site-footer .footer-title {
          font-size: calc(18px + 6 * ((100vw - 768px) / 256)); } }
      @media screen and (min-width: 1024px) {
        footer.site-footer .footer-title {
          font-size: 1.5rem; } }
    footer.site-footer .footer-title.border {
      border-bottom: 1px solid #fefefe;
      padding-bottom: 1.5625rem; }
  footer.site-footer div + .footer-title {
    margin-top: 1.25rem; }
  footer.site-footer .footer-contact {
    line-height: 1.75; }
  footer.site-footer .footer-location {
    text-align: center;
    font-size: 1.125rem;
    margin-top: 2.8125rem; }
    footer.site-footer .footer-location .icon-map {
      background: url(../images/icon-map.svg) no-repeat;
      width: 1.6875rem;
      height: 2.5rem;
      background-size: contain;
      display: inline-block;
      margin-bottom: 1rem; }
  footer.site-footer .copyright {
    text-align: center;
    margin-top: 1.5625rem; }
  footer.site-footer .menu li:not(:last-child) {
    margin-bottom: 1.25rem; }
  footer.site-footer .menu a {
    padding: 0; }
  @media print, screen and (max-width: 47.99875em) {
    footer.site-footer .cell + .cell {
      margin-top: 1.875rem; } }

.button, .menu li.button > a,
.menu.dropdown li.button > a {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  background: #24384F;
  color: #fff;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  border: 0;
  -webkit-transition: color 0.6s, background 0.6s, border-color 0.6s;
  transition: color 0.6s, background 0.6s, border-color 0.6s;
  padding: 0.625rem 1.875rem;
  min-height: 3.125rem;
  font-weight: 900;
  border-radius: 3.75rem; }
  .button, .menu li.button > a,
  .menu.dropdown li.button > a {
    font-size: 0.875rem; }
    @media screen and (min-width: 768px) {
      .button, .menu li.button > a,
      .menu.dropdown li.button > a {
        font-size: calc(14px + 4 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      .button, .menu li.button > a,
      .menu.dropdown li.button > a {
        font-size: 1.125rem; } }
  @media print, screen and (min-width: 48em) {
    .button, .menu li.button > a,
    .menu.dropdown li.button > a {
      min-height: 3.5rem; } }
  .button:hover, .menu li.button > a:hover {
    color: #fff;
    background: #C50010; }
  .button:focus, .menu li.button > a:focus, .button:active, .menu li.button > a:active {
    outline: 0; }
  .button:disabled, .menu li.button > a:disabled, .button.disabled, .menu li.button > a.disabled {
    pointer-events: none; }
  .button.secondary, .menu li.button > a.secondary {
    background: #C50010; }
    .button.secondary:hover, .menu li.button > a.secondary:hover {
      background: #24384F; }
  .button.large, .menu li.button > a.large {
    font-weight: 500;
    text-transform: none; }
    .button.large, .menu li.button > a.large {
      font-size: 1.375rem; }
      @media screen and (min-width: 768px) {
        .button.large, .menu li.button > a.large {
          font-size: calc(22px + 14 * ((100vw - 768px) / 256)); } }
      @media screen and (min-width: 1024px) {
        .button.large, .menu li.button > a.large {
          font-size: 2.25rem; } }
    @media print, screen and (min-width: 48em) {
      .button.large, .menu li.button > a.large {
        min-height: 4.0625rem; } }

.brand img,
.brand svg {
  width: 100%;
  display: block;
  max-width: 5rem; }
  @media print, screen and (min-width: 64em) {
    .brand img,
    .brand svg {
      max-width: 11.375rem; } }

.dropdown.menu > li > a,
.dropdown.menu > li.is-active > a,
.menu .active > a {
  background: inherit;
  color: inherit; }

.menu li.button,
.menu > li.button,
.menu.dropdown li.button,
.menu.dropdown > li.button {
  padding: 0;
  background: none;
  height: auto;
  display: block;
  text-align: left; }

.menu.dropdown > li.is-dropdown-submenu-parent > a {
  padding-right: 0; }
  .menu.dropdown > li.is-dropdown-submenu-parent > a::after {
    display: none; }

.menu.dropdown > li ul {
  display: block;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  -webkit-transform: translate(0, 10px);
      -ms-transform: translate(0, 10px);
          transform: translate(0, 10px);
  -webkit-transition: opacity 0.3s ease-in, visibility 0.3s ease-in, -webkit-transform 0.3s ease-in;
  transition: opacity 0.3s ease-in, visibility 0.3s ease-in, -webkit-transform 0.3s ease-in;
  transition: opacity 0.3s ease-in, transform 0.3s ease-in, visibility 0.3s ease-in;
  transition: opacity 0.3s ease-in, transform 0.3s ease-in, visibility 0.3s ease-in, -webkit-transform 0.3s ease-in; }

.menu.dropdown > li.is-active ul {
  opacity: 1 !important;
  -webkit-transform: translate(0, 0) !important;
      -ms-transform: translate(0, 0) !important;
          transform: translate(0, 0) !important;
  visibility: visible !important;
  pointer-events: auto !important; }

.primary-navigation {
  width: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end; }
  .primary-navigation > ul.menu {
    width: 100%;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    position: static; }
    .primary-navigation > ul.menu a {
      padding: 0;
      color: #161615; }
      .primary-navigation > ul.menu a:hover {
        color: #C50010; }
    .primary-navigation > ul.menu > li {
      margin-left: 1.875rem;
      padding-bottom: 1.5625rem;
      position: static; }
      .primary-navigation > ul.menu > li:first-child {
        margin-left: 0; }
      @media screen and (min-width: 65.625em) {
        .primary-navigation > ul.menu > li {
          margin-left: 4.375rem; } }
      .primary-navigation > ul.menu > li > a {
        font-size: 1.5rem;
        font-weight: 500;
        text-transform: uppercase; }
        .primary-navigation > ul.menu > li > a:hover {
          color: #161615; }
      .primary-navigation > ul.menu > li.current-menu-item > a {
        font-weight: 900; }
      .primary-navigation > ul.menu > li.is-dropdown-submenu-parent .circle {
        content: '';
        display: block;
        z-index: 1;
        width: 4.6875rem;
        height: 4.6875rem;
        background: #fefefe;
        -webkit-box-shadow: 3px 4px 15px rgba(0, 0, 0, 0.1);
                box-shadow: 3px 4px 15px rgba(0, 0, 0, 0.1);
        border-radius: 50%;
        position: absolute;
        top: -0.9375rem;
        pointer-events: none;
        left: 60%; }
      .primary-navigation > ul.menu > li.is-dropdown-submenu-parent > a:after {
        content: '';
        display: block;
        position: absolute;
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='11.6px' height='7px' viewBox='0 0 11.6 7' style='enable-background:new 0 0 11.6 7;' xml:space='preserve'%3E%3Cpolygon points='6.1,7 0,0.9 0.9,0 6.1,5.2 10.7,0.7 11.6,1.6' fill='%23161615'/%3E%3C/svg%3E");
        width: 0.75rem;
        height: 0.4375rem;
        background-size: contain;
        background-repeat: no-repeat;
        bottom: -1.25rem;
        top: auto;
        left: 50%;
        margin-left: -0.375rem;
        border: 0;
        -webkit-transition: background 0.3s;
        transition: background 0.3s;
        right: auto;
        margin: 0; }
      .primary-navigation > ul.menu > li.is-dropdown-submenu-parent:hover > a {
        color: #161615; }
        .primary-navigation > ul.menu > li.is-dropdown-submenu-parent:hover > a:after {
          background-image: url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='11.6px' height='7px' viewBox='0 0 11.6 7' style='enable-background:new 0 0 11.6 7;' xml:space='preserve'%3E%3Cpolygon points='6.1,7 0,0.9 0.9,0 6.1,5.2 10.7,0.7 11.6,1.6' fill='%23161615'/%3E%3C/svg%3E"); }
      .primary-navigation > ul.menu > li > ul.submenu {
        width: 100%;
        border: 0;
        -webkit-box-shadow: 3px 4px 15px rgba(0, 0, 0, 0.1);
                box-shadow: 3px 4px 15px rgba(0, 0, 0, 0.1);
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -webkit-flex-direction: row;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
            -ms-flex-pack: center;
                justify-content: center;
        padding: 3.125rem 1.5625rem 0;
        pointer-events: none;
        visibility: hidden;
        opacity: 0;
        position: absolute; }
        .primary-navigation > ul.menu > li > ul.submenu:after {
          content: '';
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
          width: 100%;
          height: 100%;
          pointer-events: none;
          background: white;
          z-index: 2; }
        .primary-navigation > ul.menu > li > ul.submenu > li {
          max-width: 30.625rem;
          position: relative;
          z-index: 3;
          position: relative;
          min-height: 18.125rem;
          padding-bottom: 8.75rem;
          padding-left: 2.8125rem;
          padding-right: 2.8125rem; }
          .primary-navigation > ul.menu > li > ul.submenu > li.current-menu-item > a {
            font-weight: 900; }
          .primary-navigation > ul.menu > li > ul.submenu > li.is-active, .primary-navigation > ul.menu > li > ul.submenu > li:hover, .primary-navigation > ul.menu > li > ul.submenu > li:focus, .primary-navigation > ul.menu > li > ul.submenu > li:active {
            background: none; }
            .primary-navigation > ul.menu > li > ul.submenu > li.is-active > a, .primary-navigation > ul.menu > li > ul.submenu > li:hover > a, .primary-navigation > ul.menu > li > ul.submenu > li:focus > a, .primary-navigation > ul.menu > li > ul.submenu > li:active > a {
              background: none; }
          .primary-navigation > ul.menu > li > ul.submenu > li:not(:last-child):after {
            content: '';
            display: block;
            width: 1px;
            height: 90%;
            top: 0;
            right: 0;
            background: #BBB5A7;
            position: absolute; }
          .primary-navigation > ul.menu > li > ul.submenu > li .menu-image {
            position: absolute;
            bottom: 0;
            left: 50%;
            -webkit-transform: translateX(-50%);
                -ms-transform: translateX(-50%);
                    transform: translateX(-50%); }
          .primary-navigation > ul.menu > li > ul.submenu > li > a {
            font-family: "Museo Sans";
            font-weight: 700;
            font-size: 1.4375rem;
            margin-bottom: 1.875rem;
            display: inline-block; }
            .primary-navigation > ul.menu > li > ul.submenu > li > a:after {
              content: '';
              border: 0;
              padding: 0;
              margin: 0;
              width: 1.8125rem;
              height: 1.8125rem;
              position: relative;
              display: -webkit-inline-box;
              display: -webkit-inline-flex;
              display: -ms-inline-flexbox;
              display: inline-flex;
              -webkit-box-align: center;
              -webkit-align-items: center;
                  -ms-flex-align: center;
                      align-items: center;
              -webkit-box-pack: center;
              -webkit-justify-content: center;
                  -ms-flex-pack: center;
                      justify-content: center;
              background: #C50010 url(../images/arrow.svg) no-repeat 50% 50%;
              border-radius: 50%;
              right: 0;
              vertical-align: middle;
              margin-left: 20px; }
          .primary-navigation > ul.menu > li > ul.submenu > li ul {
            display: block;
            position: static;
            display: block;
            visibility: visible;
            opacity: 1;
            -webkit-transform: none;
                -ms-transform: none;
                    transform: none;
            border: 0;
            background: none; }
            .primary-navigation > ul.menu > li > ul.submenu > li ul > li:not(:last-child) {
              margin-bottom: 0.9375rem; }
            .primary-navigation > ul.menu > li > ul.submenu > li ul > li > a {
              font-size: 1rem; }
              .primary-navigation > ul.menu > li > ul.submenu > li ul > li > a:after {
                display: none !important; }
            .primary-navigation > ul.menu > li > ul.submenu > li ul > li.current-menu-item > a {
              font-weight: 900; }

.hamburger {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .hamburger .hamburger-button {
    display: block;
    width: 1.3125rem;
    min-width: 1.3125rem;
    height: 1.0625rem;
    border: none;
    background: none;
    outline: none;
    cursor: pointer;
    position: relative; }
    .hamburger .hamburger-button .hamburger-line {
      height: 0.1875rem;
      background: #24384F;
      width: 100%;
      display: block;
      position: absolute;
      -webkit-transition: -webkit-transform 0.3s;
      transition: -webkit-transform 0.3s;
      transition: transform 0.3s;
      transition: transform 0.3s, -webkit-transform 0.3s; }
      .hamburger .hamburger-button .hamburger-line.hamburger-line1 {
        top: 0; }
      .hamburger .hamburger-button .hamburger-line.hamburger-line2 {
        top: 50%;
        margin-top: -1.5px; }
      .hamburger .hamburger-button .hamburger-line.hamburger-line3 {
        bottom: 0; }
  .hamburger[aria-expanded="true"] .hamburger-line1 {
    -webkit-transform: translateY(6px) translateX(0) rotate(45deg);
        -ms-transform: translateY(6px) translateX(0) rotate(45deg);
            transform: translateY(6px) translateX(0) rotate(45deg); }
  .hamburger[aria-expanded="true"] .hamburger-line2 {
    opacity: 0; }
  .hamburger[aria-expanded="true"] .hamburger-line3 {
    -webkit-transform: translateY(-11px) translateX(0) rotate(-45deg);
        -ms-transform: translateY(-11px) translateX(0) rotate(-45deg);
            transform: translateY(-11px) translateX(0) rotate(-45deg);
    bottom: initial;
    top: 100%; }

a.skip-main {
  left: -999px;
  position: absolute;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: -999; }
  a.skip-main:focus, a.skip-main:active {
    color: #fff;
    background-color: #000;
    left: auto;
    top: auto;
    width: 30%;
    height: auto;
    overflow: auto;
    margin: 10px 35%;
    padding: 5px;
    border-radius: 15px;
    border: 4px solid yellow;
    text-align: center;
    font-size: 1.2em;
    z-index: 9999; }

section.content-block {
  margin-top: 2.25rem;
  position: relative;
  z-index: 1; }
  section.content-block::before, section.content-block::after {
    display: table;
    content: ' ';
    -webkit-flex-basis: 0;
        -ms-flex-preferred-size: 0;
            flex-basis: 0;
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  section.content-block::after {
    clear: both; }
  @media print, screen and (min-width: 48em) {
    section.content-block {
      margin-top: 2.5rem; } }
  @media print, screen and (min-width: 64em) {
    section.content-block {
      margin-top: 3.125rem; } }
  @media print, screen and (max-width: 47.99875em) {
    section.content-block .grid-x .cell.small-order-1 {
      margin-bottom: 2.25rem; } }
  @media print, screen and (max-width: 47.99875em) and (min-width: 48em) {
    section.content-block .grid-x .cell.small-order-1 {
      margin-bottom: 2.5rem; } }
  @media print, screen and (max-width: 47.99875em) and (min-width: 64em) {
    section.content-block .grid-x .cell.small-order-1 {
      margin-bottom: 3.125rem; } }

section[class*=" bg-"] {
  padding-bottom: 2.25rem;
  padding-top: 2.25rem; }
  @media print, screen and (min-width: 48em) {
    section[class*=" bg-"] {
      padding-bottom: 2.5rem;
      padding-top: 2.5rem; } }
  @media print, screen and (min-width: 64em) {
    section[class*=" bg-"] {
      padding-bottom: 3.125rem;
      padding-top: 3.125rem; } }

section[class*=" bg-"] + section[class*=" bg-"] {
  margin-top: 0; }

section.content-block:last-of-type {
  margin-bottom: 2.25rem; }
  @media print, screen and (min-width: 48em) {
    section.content-block:last-of-type {
      margin-bottom: 2.5rem; } }
  @media print, screen and (min-width: 64em) {
    section.content-block:last-of-type {
      margin-bottom: 3.125rem; } }

section:last-of-type[class*=" bg-"] {
  margin-bottom: 0; }

section.content-block:last-of-type.collapse-vert {
  margin-bottom: 2.25rem; }
  @media print, screen and (min-width: 48em) {
    section.content-block:last-of-type.collapse-vert {
      margin-bottom: 2.5rem; } }
  @media print, screen and (min-width: 64em) {
    section.content-block:last-of-type.collapse-vert {
      margin-bottom: 3.125rem; } }

section.collapse .grid-x .cell {
  padding-left: 0;
  padding-right: 0; }

@media print, screen and (max-width: 47.99875em) {
  .has-2-cols:not(.block-grid) > .cell + .cell,
  .has-3-cols:not(.block-grid) > .cell + .cell,
  .has-4-cols:not(.block-grid) > .cell + .cell {
    margin-top: 1.25rem; } }

.block-grid {
  margin-bottom: -1.875rem; }
  .block-grid > .cell {
    margin-bottom: 1.875rem; }
  @media print, screen and (min-width: 64em) {
    .block-grid {
      margin-bottom: -3.4375rem; }
      .block-grid > .cell {
        margin-bottom: 3.4375rem; } }

section.content-block .cell[class^="bg-"], section.content-block .cell[class*="bg-"] {
  padding: 2.25rem; }
  @media print, screen and (min-width: 48em) {
    section.content-block .cell[class^="bg-"], section.content-block .cell[class*="bg-"] {
      padding: 2.5rem; } }
  @media print, screen and (min-width: 64em) {
    section.content-block .cell[class^="bg-"], section.content-block .cell[class*="bg-"] {
      padding: 3.125rem; } }

.module + .module {
  margin-top: 2.25rem; }
  @media print, screen and (min-width: 48em) {
    .module + .module {
      margin-top: 2.5rem; } }
  @media print, screen and (min-width: 64em) {
    .module + .module {
      margin-top: 3.125rem; } }

.module.stack-order-1 {
  margin-top: 0; }

.module.align-center {
  text-align: center; }

header.module.align-center {
  text-align: center; }

header.module .headline span {
  display: block; }

.module.text-editor a:not(.button) {
  color: #24384F; }
  .module.text-editor a:not(.button):hover {
    text-decoration: underline; }

.module.text-editor h1,
.module.text-editor h2,
.module.text-editor h3,
.module.text-editor h4,
.module.text-editor h5,
.module.text-editor h6 {
  margin-bottom: 0.625rem; }

.module.text-editor p.large {
  font-weight: 600; }
  .module.text-editor p.large {
    font-size: 1.2rem; }
    @media screen and (min-width: 768px) {
      .module.text-editor p.large {
        font-size: calc(19.2px + 4.8 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      .module.text-editor p.large {
        font-size: 1.5rem; } }

.module.text-editor .intro {
  font-weight: 500;
  line-height: 1.57; }
  .module.text-editor .intro {
    font-size: 1.05rem; }
    @media screen and (min-width: 768px) {
      .module.text-editor .intro {
        font-size: calc(16.8px + 4.2 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      .module.text-editor .intro {
        font-size: 1.3125rem; } }
  .module.text-editor .intro.black {
    font-weight: 700; }

.module.text-editor b, .module.text-editor strong {
  font-weight: 500; }

.module.text-editor a {
  text-decoration: underline; }
  .module.text-editor a:hover {
    text-decoration: none !important; }

.module.text-editor ul li:not(:last-child) {
  margin-bottom: 0.9375rem; }

.module.text-editor h1 {
  text-transform: uppercase;
  margin-bottom: 5rem; }

.module.text-editor .pdf-link {
  margin-top: 3.125rem; }
  .module.text-editor .pdf-link a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    .module.text-editor .pdf-link a img {
      margin-right: 1.25rem; }

.module.buttons .button, .module.buttons .menu li.button > a, .menu .module.buttons li.button > a {
  margin: 0; }

.module.buttons .button-wrap {
  margin-bottom: 1.5625rem; }
  .module.buttons .button-wrap:last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 48em) {
    .module.buttons .button-wrap {
      display: inline-block;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 48em) {
    .module.buttons .button-wrap + .button-wrap {
      margin-left: 3.125rem; } }

.module.buttons.align-center {
  text-align: center; }

.module.video {
  width: 100%; }
  .module.video video {
    width: 100%;
    max-height: 100%;
    display: block; }
  .module.video .responsive-embed,
  .module.video .flex-video {
    margin-bottom: 0; }
  .module.video .video-wrapper {
    position: relative;
    border-radius: 2px; }
    .module.video .video-wrapper:before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      width: 100%;
      height: 100%;
      background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.1)), to(rgba(28, 28, 28, 0.72)));
      background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.1), rgba(28, 28, 28, 0.72));
      z-index: 1; }
    .module.video .video-wrapper.playing .play-button {
      display: none; }
  .module.video .play-button {
    display: block;
    width: 3.125rem;
    height: 3.125rem;
    background: url(../images/play-button.svg) no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    cursor: pointer;
    z-index: 2; }
    @media print, screen and (min-width: 48em) {
      .module.video .play-button {
        width: 5.9375rem;
        height: 5.9375rem; } }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

.slick-arrow {
  width: 1.25rem;
  height: 2.375rem;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  display: block;
  font-size: 0;
  cursor: pointer;
  z-index: 10;
  top: 50%;
  margin-top: -1.1875rem; }

.slick-prev {
  left: 1.25rem;
  background-image: url(../images/chevron-left.svg); }
  @media screen and (min-width: 87.1875em) {
    .slick-prev {
      left: -2.5rem; } }

.slick-next {
  right: 1.25rem;
  background-image: url(../images/chevron-right.svg); }
  @media screen and (min-width: 87.1875em) {
    .slick-next {
      right: -2.5rem; } }

.slick-slide {
  margin: 0 0.9375rem; }

.slick-list {
  margin: 0 -0.9375rem; }

.carousel-item img {
  display: block;
  width: 100%; }

.slick-dots {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  list-style-type: none;
  margin: 0;
  padding: 0; }
  .slick-dots button {
    font-size: 0;
    width: 0.5rem;
    height: 0.5rem;
    border: 1px solid #fefefe;
    padding: 0;
    margin: 0;
    background: none;
    border-radius: 0.625rem;
    background: #fefefe; }
  .slick-dots li {
    margin: 0 0.1875rem; }
  .slick-dots .slick-active button {
    background: none; }

picture.module {
  display: block; }
  picture.module img {
    width: 100%;
    display: block; }

input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']),
select,
textarea {
  width: 100%;
  -webkit-box-shadow: none;
          box-shadow: none;
  position: relative;
  margin: 0;
  padding: 0.625rem 1.25rem;
  height: 3.125rem;
  border: 1px solid #A3BBC7;
  font-size: 0.75rem;
  letter-spacing: 2px;
  outline: none;
  font-weight: 500;
  color: #595855; }
  input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file'])::-webkit-input-placeholder, select::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: inherit; }
  input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file'])::-moz-placeholder, select::-moz-placeholder, textarea::-moz-placeholder {
    color: inherit; }
  input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']):-ms-input-placeholder, select:-ms-input-placeholder, textarea:-ms-input-placeholder {
    color: inherit; }
  input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file'])::-ms-input-placeholder, select::-ms-input-placeholder, textarea::-ms-input-placeholder {
    color: inherit; }
  input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file'])::placeholder,
  select::placeholder,
  textarea::placeholder {
    color: inherit; }
  input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']):focus,
  select:focus,
  textarea:focus {
    border-color: #BBB5A7; }
    input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']):focus::-webkit-input-placeholder, select:focus::-webkit-input-placeholder, textarea:focus::-webkit-input-placeholder {
      color: transparent; }
    input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']):focus::-moz-placeholder, select:focus::-moz-placeholder, textarea:focus::-moz-placeholder {
      color: transparent; }
    input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']):focus:-ms-input-placeholder, select:focus:-ms-input-placeholder, textarea:focus:-ms-input-placeholder {
      color: transparent; }
    input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']):focus::-ms-input-placeholder, select:focus::-ms-input-placeholder, textarea:focus::-ms-input-placeholder {
      color: transparent; }
    input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type='file']):focus::placeholder,
    select:focus::placeholder,
    textarea:focus::placeholder {
      color: transparent; }

select {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  outline: none;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 18.6 9.7' style='enable-background:new 0 0 18.6 9.7;' xml:space='preserve'%3E%3Cpath d='M9.6,9.7c-0.3,0-0.7-0.1-1-0.3L0.5,2.7c-0.6-0.5-0.7-1.5-0.2-2.1c0.5-0.6,1.5-0.7,2.1-0.2l7.1,5.9l6.5-5.9 c0.6-0.6,1.6-0.5,2.1,0.1c0.6,0.6,0.5,1.6-0.1,2.1l-7.5,6.7C10.3,9.6,10,9.7,9.6,9.7z'/%3E%3C/svg%3E");
  background-origin: content-box;
  background-position: right 0 center;
  background-repeat: no-repeat;
  background-size: 9px 6px;
  padding-right: 1rem; }

textarea {
  height: auto; }

.form-field {
  padding: 0 0.3125rem;
  margin-bottom: 1.25rem;
  width: 100%; }
  .form-field.half-width {
    width: 50%; }

.form-body {
  margin-left: -0.3125rem;
  margin-right: -0.3125rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }

.form-control {
  text-align: center;
  margin-top: 3.75rem; }
  .form-control .button, .form-control .menu li.button > a, .menu .form-control li.button > a {
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 1rem;
    font-weight: 500;
    width: 100%;
    max-width: 22.5rem; }
    @media print, screen and (min-width: 64em) {
      .form-control .button, .form-control .menu li.button > a, .menu .form-control li.button > a {
        min-height: 5.625rem; } }

.message {
  margin-bottom: 30px; }
  .message.message-error {
    color: red; }
  .message.message-ok {
    color: green; }

header.template-header {
  margin-bottom: 2.1875rem;
  text-transform: uppercase; }
  header.template-header.align-center {
    text-align: center; }
  header.template-header .headline span {
    display: block; }

section.content-block.template-contact {
  text-align: center;
  font-weight: 500;
  color: #C50010;
  word-break: break-all; }
  section.content-block.template-contact {
    font-size: 1rem; }
    @media screen and (min-width: 768px) {
      section.content-block.template-contact {
        font-size: calc(16px + 5 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      section.content-block.template-contact {
        font-size: 1.3125rem; } }
  section.content-block.template-contact[class*=" bg-"] {
    padding: 2.1875rem 0; }
  section.content-block.template-contact a {
    font-weight: 700;
    color: #C50010; }
    section.content-block.template-contact a {
      font-size: 1.3125rem; }
      @media screen and (min-width: 768px) {
        section.content-block.template-contact a {
          font-size: calc(21px + 8 * ((100vw - 768px) / 256)); } }
      @media screen and (min-width: 1024px) {
        section.content-block.template-contact a {
          font-size: 1.8125rem; } }
  section.content-block.template-contact.bg-dark {
    color: #fefefe; }
    section.content-block.template-contact.bg-dark a {
      color: #fefefe; }

section.hero-unit .hero-unit-content {
  max-width: 39.0625rem;
  margin-left: auto;
  margin-right: auto;
  color: #fefefe;
  text-align: center;
  min-height: 12.5rem; }
  section.hero-unit .hero-unit-content h2 {
    line-height: 1.18; }
    section.hero-unit .hero-unit-content h2 {
      font-size: 2.7rem; }
      @media screen and (min-width: 768px) {
        section.hero-unit .hero-unit-content h2 {
          font-size: calc(43.2px + 10.8 * ((100vw - 768px) / 256)); } }
      @media screen and (min-width: 1024px) {
        section.hero-unit .hero-unit-content h2 {
          font-size: 3.375rem; } }
    section.hero-unit .hero-unit-content h2 span {
      display: block; }

section.hero-unit .hero-unit-button {
  text-align: center;
  margin-top: 2.5rem; }
  section.hero-unit .hero-unit-button .button, section.hero-unit .hero-unit-button .menu li.button > a, .menu section.hero-unit .hero-unit-button li.button > a {
    width: 100%;
    max-width: 30.1875rem;
    margin: 0 auto; }

section.hero-unit .hero-slider-item {
  padding: 3.75rem 0;
  background-size: cover;
  background-position: 50% 50%;
  height: 100%; }
  @media print, screen and (min-width: 64em) {
    section.hero-unit .hero-slider-item {
      padding: 12.1875rem 0; } }

section.hero-unit .slick-list {
  margin: 0; }

section.hero-unit .slick-slide {
  margin: 0;
  height: auto; }
  section.hero-unit .slick-slide > div {
    height: 100%; }

section.hero-unit .slick-track {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

section.hero-unit + .content-block[class*=" bg-"] {
  margin-top: 0; }

section.content-block.template-services .service-image {
  display: block;
  margin-bottom: 1.5rem;
  text-align: center; }

section.content-block.template-services .service-title {
  display: block;
  text-align: center;
  text-transform: uppercase;
  font-size: 1.125rem;
  font-weight: 900;
  letter-spacing: 1.84px; }

section.content-block.template-advantages .title {
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: 3.14px;
  line-height: 1;
  font-weight: 900;
  text-align: center;
  margin-bottom: 1.25rem; }

section.content-block.template-advantages .icon {
  text-align: center;
  margin-bottom: 0.9375rem; }

section.content-block.template-advantages .description {
  line-height: 1.982; }

section.content-block.template-advantages .template-header {
  margin-bottom: 3.75rem; }

@media print, screen and (min-width: 64em) {
  section.content-block.template-advantages {
    margin-top: 7.5rem; }
    section.content-block.template-advantages + section.content-block {
      margin-top: 7.5rem; } }

section.content-block.template-split-content .row {
  margin-bottom: 2.5rem; }
  @media print, screen and (min-width: 48em) {
    section.content-block.template-split-content .row {
      margin-bottom: 9.375rem; } }
  section.content-block.template-split-content .row .media {
    position: relative; }
    section.content-block.template-split-content .row .media img {
      display: block;
      width: 100%; }
      section.content-block.template-split-content .row .media img + p {
        margin-top: 1.25rem;
        margin-bottom: 1.25rem; }
    section.content-block.template-split-content .row .media a {
      text-decoration: underline; }
      section.content-block.template-split-content .row .media a:hover {
        text-decoration: none; }
  section.content-block.template-split-content .row .content {
    background: #ebf0f2;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 1.25rem; }
    section.content-block.template-split-content .row .content .inner {
      max-width: 22.1875rem;
      margin-left: auto;
      margin-right: auto; }
  @media print, screen and (min-width: 48em) {
    section.content-block.template-split-content .row {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; }
      section.content-block.template-split-content .row .content {
        -webkit-transform: translateY(3.125rem);
            -ms-transform: translateY(3.125rem);
                transform: translateY(3.125rem);
        position: relative;
        z-index: 2;
        width: 40%;
        min-width: 40%;
        padding: 3.125rem 1.25rem; }
      section.content-block.template-split-content .row .media {
        margin-right: -6.5625rem; }
        section.content-block.template-split-content .row .media p {
          position: absolute;
          top: 100%;
          left: 0; }
      section.content-block.template-split-content .row.pull-top {
        margin-top: 12.5rem !important;
        margin-bottom: 6.25rem; }
        section.content-block.template-split-content .row.pull-top .content {
          -webkit-transform: translateY(-3.125rem);
              -ms-transform: translateY(-3.125rem);
                  transform: translateY(-3.125rem); }
        section.content-block.template-split-content .row.pull-top:last-child {
          margin-bottom: 0; }
      section.content-block.template-split-content .row:nth-child(odd) .content {
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
            -ms-flex-order: 1;
                order: 1; }
      section.content-block.template-split-content .row:nth-child(odd) .media {
        -webkit-box-ordinal-group: 3;
        -webkit-order: 2;
            -ms-flex-order: 2;
                order: 2;
        margin-right: 0;
        margin-left: -6.5625rem; } }

@media print, screen and (min-width: 48em) {
  section.content-block.template-split-content.align-center .row:last-child {
    margin-bottom: 0; }
  section.content-block.template-split-content.align-center .row .content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center;
    padding-top: 100px;
    padding-bottom: 100px; }
    section.content-block.template-split-content.align-center .row .content h3 {
      font-size: 28px;
      line-height: 1.39; } }

section.content-block.template-color-changer .color-scene {
  position: relative;
  height: 37.5rem;
  padding: 4.0625rem 0; }
  @media print, screen and (min-width: 64em) {
    section.content-block.template-color-changer .color-scene {
      height: 67.5rem; } }
  section.content-block.template-color-changer .color-scene .title {
    text-transform: uppercase;
    font-weight: 900;
    margin-bottom: 3.125rem;
    -webkit-transition: color 0.6s;
    transition: color 0.6s;
    color: #fefefe; }
  section.content-block.template-color-changer .color-scene .color-slide {
    position: absolute;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    background-size: cover;
    background-position: 50% 100%;
    padding-top: 15rem;
    opacity: 0;
    -webkit-transition: opacity 0.6s;
    transition: opacity 0.6s; }
    @media print, screen and (min-width: 64em) {
      section.content-block.template-color-changer .color-scene .color-slide {
        padding-top: 18.75rem; } }
    section.content-block.template-color-changer .color-scene .color-slide.is-active {
      z-index: 2;
      opacity: 1; }
  section.content-block.template-color-changer .color-scene .color-nav {
    position: relative;
    z-index: 3; }
  section.content-block.template-color-changer .color-scene .color-picker {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    section.content-block.template-color-changer .color-scene .color-picker .color {
      width: 4.0625rem;
      margin: 0 0.3125rem;
      cursor: pointer; }
      @media print, screen and (min-width: 64em) {
        section.content-block.template-color-changer .color-scene .color-picker .color {
          width: 7.125rem;
          margin: 0 0.5rem; } }
  section.content-block.template-color-changer .color-scene .color-content {
    font-size: 1.125rem;
    font-weight: 900;
    text-align: center;
    max-width: 42.5rem;
    -webkit-transition: color 0.6s;
    transition: color 0.6s;
    color: #000; }

section.content-block.template-featured-gallery .image {
  text-align: center;
  margin-bottom: 1.25rem;
  display: block; }

section.content-block.template-featured-gallery .title {
  text-align: center;
  color: #BBB5A7;
  text-align: center;
  display: block;
  font-size: 1.125rem;
  text-transform: uppercase;
  letter-spacing: 1.84px;
  font-weight: 500; }

@media print, screen and (min-width: 64em) {
  section.content-block.template-featured-gallery {
    margin-top: 9.375rem; }
    section.content-block.template-featured-gallery + section.content-block {
      margin-top: 7.5rem; }
    section.content-block.template-featured-gallery:last-of-type {
      margin-bottom: 7.5rem; } }

section.content-block.template-featured-gallery .headline {
  font-size: 2.7rem; }
  @media screen and (min-width: 768px) {
    section.content-block.template-featured-gallery .headline {
      font-size: calc(43.2px + 10.8 * ((100vw - 768px) / 256)); } }
  @media screen and (min-width: 1024px) {
    section.content-block.template-featured-gallery .headline {
      font-size: 3.375rem; } }

section.content-block.template-testimonials .grid-container {
  max-width: 37.5rem; }

section.content-block.template-testimonials .title {
  text-transform: uppercase;
  margin-bottom: 2.5rem; }
  section.content-block.template-testimonials .title:before {
    content: '';
    background: url(../images/blockquote.svg) no-repeat;
    width: 2.4375rem;
    height: 2.4375rem;
    background-size: contain;
    margin: 0 auto 0.9375rem;
    display: block; }

section.content-block.template-testimonials blockquote {
  font-size: 1.1875rem;
  padding: 0;
  margin: 0;
  line-height: 1.47;
  margin-bottom: 1.25rem; }

section.content-block.template-testimonials .cite {
  text-transform: uppercase;
  font-size: 0.75rem; }

section.content-block.template-testimonials .slick-dots {
  margin-top: 4.6875rem; }

section.content-block.template-gallery .gallery-container {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 74.375rem; }
  section.content-block.template-gallery .gallery-container img {
    width: 100%; }

section.content-block.template-gallery img {
  display: block; }

section.content-block.template-gallery .gallery-item {
  margin-bottom: 20px; }

section.content-block.template-gallery .gallery-2 .gallery-item {
  margin-bottom: 30px; }

section.content-block.template-gallery .img-10 {
  margin-top: -6.5%; }

section.content-block.template-gallery .gallery-title {
  text-align: center;
  margin-top: 20px;
  margin-bottom: 20px;
  font-style: italic;
  font-size: 20px;
  font-weight: bold; }

section.content-block.template-contact-form .page-title {
  margin-bottom: 0.9375rem; }
  section.content-block.template-contact-form .page-title span {
    color: #C50010; }

section.content-block.template-contact-form .page-subtitle {
  font-weight: 500;
  margin-bottom: 3.75rem;
  letter-spacing: 2px; }

section.content-block.template-contact-form .address {
  text-align: center;
  text-transform: uppercase;
  color: #595855;
  font-weight: 500;
  letter-spacing: 3px;
  word-break: break-all; }
  section.content-block.template-contact-form .address {
    font-size: 0.945rem; }
    @media screen and (min-width: 768px) {
      section.content-block.template-contact-form .address {
        font-size: calc(15.12px + 2.88 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      section.content-block.template-contact-form .address {
        font-size: 1.125rem; } }
  section.content-block.template-contact-form .address p:first-child {
    margin-bottom: 3.125rem; }
  section.content-block.template-contact-form .address a {
    color: inherit;
    display: inline-block;
    border-bottom: 2px solid #C50010;
    -webkit-transition: border-color 0.3s;
    transition: border-color 0.3s; }
    section.content-block.template-contact-form .address a:hover {
      border-bottom-color: transparent; }

section.content-block.template-contact-form form {
  margin-top: 3.125rem; }

section.content-block.template-contact-form + .content-block {
  margin-top: 6.25rem; }

section.content-block.template-services-list {
  margin-top: 40px !important; }
  section.content-block.template-services-list h2 {
    margin-bottom: 30px; }
    section.content-block.template-services-list h2 {
      font-size: 2.3rem; }
      @media screen and (min-width: 768px) {
        section.content-block.template-services-list h2 {
          font-size: calc(36.8px + 9.2 * ((100vw - 768px) / 256)); } }
      @media screen and (min-width: 1024px) {
        section.content-block.template-services-list h2 {
          font-size: 2.875rem; } }
  section.content-block.template-services-list h3 {
    font-size: 1.85rem; }
    @media screen and (min-width: 768px) {
      section.content-block.template-services-list h3 {
        font-size: calc(29.6px + 7.4 * ((100vw - 768px) / 256)); } }
    @media screen and (min-width: 1024px) {
      section.content-block.template-services-list h3 {
        font-size: 2.3125rem; } }
  section.content-block.template-services-list .buttons.inline {
    margin-bottom: 55px; }
    section.content-block.template-services-list .buttons.inline .button, section.content-block.template-services-list .buttons.inline .menu li.button > a, .menu section.content-block.template-services-list .buttons.inline li.button > a {
      margin-right: 20px;
      margin-bottom: 20px; }
  section.content-block.template-services-list .block-grid {
    margin-bottom: -100px; }
    section.content-block.template-services-list .block-grid > .cell {
      margin-bottom: 100px; }
    section.content-block.template-services-list .block-grid .image {
      margin-bottom: 35px; }
    section.content-block.template-services-list .block-grid h3 {
      margin-bottom: 15px; }
    section.content-block.template-services-list .block-grid .description {
      font-size: 20px;
      line-height: 1.7;
      -webkit-box-flex: 1;
      -webkit-flex-grow: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      margin-bottom: 25px; }
      section.content-block.template-services-list .block-grid .description b {
        font-weight: 500; }
    section.content-block.template-services-list .block-grid .inner {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      height: 100%; }
    section.content-block.template-services-list .block-grid .buttons .button, section.content-block.template-services-list .block-grid .buttons .menu li.button > a, .menu section.content-block.template-services-list .block-grid .buttons li.button > a {
      margin-bottom: 20px;
      min-width: 70%; }
      section.content-block.template-services-list .block-grid .buttons .button:last-child, section.content-block.template-services-list .block-grid .buttons .menu li.button > a:last-child, .menu section.content-block.template-services-list .block-grid .buttons li.button > a:last-child {
        margin-bottom: 0; }
      section.content-block.template-services-list .block-grid .buttons .button.secondary, section.content-block.template-services-list .block-grid .buttons .menu li.button > a.secondary, .menu section.content-block.template-services-list .block-grid .buttons li.button > a.secondary {
        min-width: 95%; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm91bmRhdGlvbi5zY3NzIiwiYXBwLmNzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19ndXR0ZXJzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fdW5pdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3h5LWdyaWQvX2NlbGwuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy94eS1ncmlkL19sYXlvdXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fY29sbGFwc2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MveHktZ3JpZC9fZnJhbWUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fcmVzcG9uc2l2ZS1lbWJlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZW51LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUtaWNvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24tbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcmlsbGRvd24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZHJvcGRvd24tbWVudS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vZmYtY2FudmFzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N0aWNreS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLnNjc3MiLCJjb21tb24vX2Jhc2Uuc2NzcyIsIl9jb25maWcuc2NzcyIsImhlbHBlcnMvX21peGlucy5zY3NzIiwiY29tbW9uL190eXBvZ3JhcGh5LnNjc3MiLCJjb21tb24vX2JhY2tncm91bmRzLnNjc3MiLCJjb21tb24vX3V0aWxpdGllcy5zY3NzIiwiY29tbW9uL19sYXlvdXQuc2NzcyIsImdsb2JhbC1lbGVtZW50cy9fb2ZmY2FudmFzLnNjc3MiLCJnbG9iYWwtZWxlbWVudHMvX3NpdGUtaGVhZGVyLnNjc3MiLCJnbG9iYWwtZWxlbWVudHMvX3NpdGUtZm9vdGVyLnNjc3MiLCJnbG9iYWwtZWxlbWVudHMvX2J1dHRvbi5zY3NzIiwiZ2xvYmFsLWVsZW1lbnRzL19icmFuZC5zY3NzIiwiZ2xvYmFsLWVsZW1lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJnbG9iYWwtZWxlbWVudHMvX2hhbWJ1cmdlci5zY3NzIiwiZ2xvYmFsLWVsZW1lbnRzL19za2lwLW1haW4uc2NzcyIsImxheW91dC1idWlsZGVyL3NlY3Rpb25zL19zZWN0aW9ucy1zaGFyZWQuc2NzcyIsImxheW91dC1idWlsZGVyL2NlbGxzL19jZWxscy1zaGFyZWQuc2NzcyIsImxheW91dC1idWlsZGVyL21vZHVsZXMvX21vZHVsZXMtc2hhcmVkLnNjc3MiLCJsYXlvdXQtYnVpbGRlci9tb2R1bGVzL19oZWFkZXIuc2NzcyIsImxheW91dC1idWlsZGVyL21vZHVsZXMvX3RleHQtZWRpdG9yLnNjc3MiLCJsYXlvdXQtYnVpbGRlci9tb2R1bGVzL19idXR0b25zLnNjc3MiLCJsYXlvdXQtYnVpbGRlci9tb2R1bGVzL192aWRlby5zY3NzIiwibGF5b3V0LWJ1aWxkZXIvbW9kdWxlcy9fY2Fyb3VzZWwuc2NzcyIsImxheW91dC1idWlsZGVyL21vZHVsZXMvX3BpY3R1cmUuc2NzcyIsImxheW91dC1idWlsZGVyL21vZHVsZXMvX2Zvcm0uc2NzcyIsImxheW91dC1idWlsZGVyL3RlbXBsYXRlcy9fdGVtcGxhdGUtaGVhZGVyLnNjc3MiLCJsYXlvdXQtYnVpbGRlci90ZW1wbGF0ZXMvX3RlbXBsYXRlLWNvbnRhY3Quc2NzcyIsImxheW91dC1idWlsZGVyL3RlbXBsYXRlcy9faGVyby11bml0LnNjc3MiLCJsYXlvdXQtYnVpbGRlci90ZW1wbGF0ZXMvX3RlbXBsYXRlLXNlcnZpY2VzLnNjc3MiLCJsYXlvdXQtYnVpbGRlci90ZW1wbGF0ZXMvX3RlbXBsYXRlLWFkdmFudGFnZXMuc2NzcyIsImxheW91dC1idWlsZGVyL3RlbXBsYXRlcy9fdGVtcGxhdGUtc3BsaXQtY29udGVudC5zY3NzIiwibGF5b3V0LWJ1aWxkZXIvdGVtcGxhdGVzL190ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyLnNjc3MiLCJsYXlvdXQtYnVpbGRlci90ZW1wbGF0ZXMvX3RlbXBsYXRlLWZlYXR1cmVkLWdhbGxlcnkuc2NzcyIsImxheW91dC1idWlsZGVyL3RlbXBsYXRlcy9fdGVtcGxhdGUtdGVzdGltb25pYWxzLnNjc3MiLCJsYXlvdXQtYnVpbGRlci90ZW1wbGF0ZXMvX3RlbXBsYXRlLWdhbGxlcnkuc2NzcyIsImxheW91dC1idWlsZGVyL3RlbXBsYXRlcy9fdGVtcGxhdGUtY29udGFjdC1mb3JtLnNjc3MiLCJsYXlvdXQtYnVpbGRlci90ZW1wbGF0ZXMvX3RlbXBsYXRlLXNlcnZpY2VzLWxpc3Quc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7RUNLRTtBQ09BO0VDb0JNLHVCQUE2RDtFQUE3RCxzQkFBNkQ7RUNkbkUsZ0JDc0V1RDtFRHJFdkQsaUJBQWlCO0VBQ2pCLGtCQUFrQixFQUFBO0VFNEpaO0lKcEtOO01Db0JNLHdCQUE2RDtNQUE3RCx1QkFBNkQsRUFBQSxFRFZsRTtFQVZEO0lDb0JNLHVCQUE2RDtJQUE3RCxzQkFBNkQ7SUNkbkUsZUZGbUM7SUVHbkMsaUJBQWlCO0lBQ2pCLGtCQUFrQixFQUFBO0lFNEpaO01KcEtOO1FDb0JNLHdCQUE2RDtRQUE3RCx1QkFBNkQsRUFBQSxFRGZoRTtFQUxIO0lDNkJJLGdCQUE2RDtJQUE3RCxlQUE2RDtJQ3ZCakUsZUZFbUM7SUVEbkMsaUJBQWlCO0lBQ2pCLGtCQUFrQixFQUFBOztBRktsQjtFRVNBLG9CQUFhO0VBQWIscUJBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYiw4QkFIcUI7RUFHckIsNkJBSHFCO0VBR3JCLDJCQUhxQjtNQUdyQix1QkFIcUI7VUFHckIsbUJBSHFCLEVBQUE7O0FGSHJCO0VLNEZBLG1CQUFNO0VBQU4sc0JBQU07TUFBTixrQkFBTTtVQUFOLGNBQU07RUFJSixlQUFlO0VBQ2YsY0FBYztFQXNDZCxXQXRFaUMsRUFBQTtFTGpFbkM7SUs0RkEsbUJBQU07SUFBTixxQkFBTTtRQUFOLGlCQUFNO1lBQU4sYUFBTSxFQUFBO0VMNUZOO0lLNEZBLG1CQUFNO0lBQU4sc0JBQU07UUFBTixrQkFBTTtZQUFOLGNBQU0sRUFBQTs7QUxoRk47RUsySEUsV0FsRlksRUFBQTs7QUx6Q2Q7RUsySEUsV0FsRlksRUFBQTs7QUx6Qlo7RUFNSSx3QkFBZ0I7TUFBaEIsNkJBQWdCO1VBQWhCLGdCQUFnQixFQUFBOztBSWlIaEI7RUp2SEo7SUFNSSx3QkFBZ0I7UUFBaEIsNkJBQWdCO1lBQWhCLGdCQUFnQixFQUFBLEVBQ2pCOztBSWdIQztFSnZISjtJQU1JLHdCQUFnQjtRQUFoQiw2QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUEsRUFDakI7O0FBWUg7RUs2Q0YsbUJBQU07RUFBTixzQkFBTTtNQUFOLGtCQUFNO1VBQU4sY0FBTSxFQUFBOztBTDlCRjtFS3lFRixlQ25CeUQsRUFBQTs7QU50RHZEO0VLeUVGLGdCQ25CeUQsRUFBQTs7QU50RHZEO0VLeUVGLFVDbkJ5RCxFQUFBOztBTnREdkQ7RUt5RUYsZ0JDbkJ5RCxFQUFBOztBTnREdkQ7RUt5RUYsZ0JDbkJ5RCxFQUFBOztBTnREdkQ7RUt5RUYsVUNuQnlELEVBQUE7O0FOdER2RDtFS3lFRixnQkNuQnlELEVBQUE7O0FOdER2RDtFS3lFRixnQkNuQnlELEVBQUE7O0FOdER2RDtFS3lFRixVQ25CeUQsRUFBQTs7QU50RHZEO0VLeUVGLGdCQ25CeUQsRUFBQTs7QU50RHZEO0VLeUVGLGdCQ25CeUQsRUFBQTs7QU50RHZEO0VLeUVGLFdDbkJ5RCxFQUFBOztBRitCckQ7RUp6R0Y7SUtrREosbUJBQU07SUFBTixxQkFBTTtRQUFOLGlCQUFNO1lBQU4sYUFBTTtJQTJDSixXQWxGWSxFQUFBO0VMTlo7SUs2Q0YsbUJBQU07SUFBTixzQkFBTTtRQUFOLGtCQUFNO1lBQU4sY0FBTSxFQUFBO0VMdkNGO0lLa0ZGLFdBbEZZLEVBQUE7RUxTVjtJS3lFRixlQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsZ0JDbkJ5RCxFQUFBO0VOdER2RDtJS3lFRixVQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsZ0JDbkJ5RCxFQUFBO0VOdER2RDtJS3lFRixnQkNuQnlELEVBQUE7RU50RHZEO0lLeUVGLFVDbkJ5RCxFQUFBO0VOdER2RDtJS3lFRixnQkNuQnlELEVBQUE7RU50RHZEO0lLeUVGLGdCQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsVUNuQnlELEVBQUE7RU50RHZEO0lLeUVGLGdCQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsZ0JDbkJ5RCxFQUFBO0VOdER2RDtJS3lFRixXQ25CeUQsRUFBQSxFTm5EdEQ7O0FJa0ZDO0VKekdGO0lLa0RKLG1CQUFNO0lBQU4scUJBQU07UUFBTixpQkFBTTtZQUFOLGFBQU07SUEyQ0osV0FsRlksRUFBQTtFTE5aO0lLNkNGLG1CQUFNO0lBQU4sc0JBQU07UUFBTixrQkFBTTtZQUFOLGNBQU0sRUFBQTtFTHZDRjtJS2tGRixXQWxGWSxFQUFBO0VMU1Y7SUt5RUYsZUNuQnlELEVBQUE7RU50RHZEO0lLeUVGLGdCQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsVUNuQnlELEVBQUE7RU50RHZEO0lLeUVGLGdCQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsZ0JDbkJ5RCxFQUFBO0VOdER2RDtJS3lFRixVQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsZ0JDbkJ5RCxFQUFBO0VOdER2RDtJS3lFRixnQkNuQnlELEVBQUE7RU50RHZEO0lLeUVGLFVDbkJ5RCxFQUFBO0VOdER2RDtJS3lFRixnQkNuQnlELEVBQUE7RU50RHZEO0lLeUVGLGdCQ25CeUQsRUFBQTtFTnREdkQ7SUt5RUYsV0NuQnlELEVBQUEsRU5uRHREOztBQUtMO0VBQ0UsV0FBVyxFQUFBOztBQUliO0VBQ0UsWUFBWSxFQUFBOztBQThCZDtFQ3ZHTSxzQkFBNkQ7RUFBN0QsdUJBQTZELEVBQUE7RUdnSjdEO0lKekNOO01DdkdNLHVCQUE2RDtNQUE3RCx3QkFBNkQsRUFBQSxFRHNJbEU7RUEvQkQ7SUs2QkUsMkJBdEQ4RjtJSnJFNUYscUJBQTZEO0lBQTdELHNCQUE2RCxFQUFBO0VHdUkzRDtJSnpDTjtNSzZCRSw0QkF0RDhGO01KckU1RixzQkFBNkQ7TUFBN0QsdUJBQTZELEVBQUEsRUQyRzFEO0VBckNQO0lLcURFLFdBbEZZLEVBQUE7RUxpQ2Q7SUtpREUsV0FsRlksRUFBQTtFTHlDWjtJS3lDQSwrQkF0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsZ0NBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDBCQXREOEYsRUFBQTtFTGE5RjtJS3lDQSxnQ0F0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsZ0NBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDBCQXREOEYsRUFBQTtFTGE5RjtJS3lDQSxnQ0F0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsZ0NBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDBCQXREOEYsRUFBQTtFTGE5RjtJS3lDQSxnQ0F0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsZ0NBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDJCQXREOEYsRUFBQTtFRGtFMUY7SUpqRU47TUtxREUsV0FsRlksRUFBQTtJTGlDZDtNS2lERSxXQWxGWSxFQUFBO0lMeUNaO01LeUNBLGdDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsMkJBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsMkJBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsMkJBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsNEJBdEQ4RixFQUFBO0lMQ2hHO01LcURFLFdBbEZZLEVBQUE7SUxpQ2Q7TUtpREUsV0FsRlksRUFBQTtJTHlDWjtNS3lDQSxnQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsaUNBdEQ4RixFQUFBO0lMYTlGO01LeUNBLDJCQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsaUNBdEQ4RixFQUFBO0lMYTlGO01LeUNBLDJCQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsaUNBdEQ4RixFQUFBO0lMYTlGO01LeUNBLDJCQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsaUNBdEQ4RixFQUFBO0lMYTlGO01LeUNBLDRCQXREOEYsRUFBQSxFTGU3RjtFSW1ERztJSmpFTjtNS3FERSxXQWxGWSxFQUFBO0lMaUNkO01LaURFLFdBbEZZLEVBQUE7SUx5Q1o7TUt5Q0EsZ0NBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSwyQkF0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsaUNBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSwyQkF0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsaUNBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSwyQkF0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsaUNBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSw0QkF0RDhGLEVBQUEsRUxlN0Y7O0FBOENIO0VDM0lNLHVCQUE2RDtFQUE3RCxzQkFBNkQsRUFBQTtFR2dKN0Q7SUpMTjtNQzNJTSx3QkFBNkQ7TUFBN0QsdUJBQTZELEVBQUEsRURnSmhFOztBQUlEO0VDcEpJLHVCQUE2RDtFQUE3RCxzQkFBNkQsRUFBQTtFR2dKN0Q7SUpJSjtNQ3BKSSx3QkFBNkQ7TUFBN0QsdUJBQTZELEVBQUEsRURzSmhFOztBQVhIO0VDM0lNLHVCQUE2RDtFQUE3RCxzQkFBNkQsRUFBQTtFR2dKN0Q7SUpMTjtNQzNJTSx3QkFBNkQ7TUFBN0QsdUJBQTZELEVBQUEsRUQySmhFOztBTzNKSDtFRm9JRSxXQ25CeUQsRUFBQTs7QUNqSDNEO0VGb0lFLFVDbkJ5RCxFQUFBOztBQ2pIM0Q7RUZvSUUsZ0JDbkJ5RCxFQUFBOztBQ2pIM0Q7RUZvSUUsVUNuQnlELEVBQUE7O0FDakgzRDtFRm9JRSxVQ25CeUQsRUFBQTs7QUNqSDNEO0VGb0lFLGdCQ25CeUQsRUFBQTs7QUNqSDNEO0VGb0lFLGdCQ25CeUQsRUFBQTs7QUNqSDNEO0VGb0lFLFlDbkJ5RCxFQUFBOztBRitCckQ7RUdoSk47SUZvSUUsV0NuQnlELEVBQUE7RUNqSDNEO0lGb0lFLFVDbkJ5RCxFQUFBO0VDakgzRDtJRm9JRSxnQkNuQnlELEVBQUE7RUNqSDNEO0lGb0lFLFVDbkJ5RCxFQUFBO0VDakgzRDtJRm9JRSxVQ25CeUQsRUFBQTtFQ2pIM0Q7SUZvSUUsZ0JDbkJ5RCxFQUFBO0VDakgzRDtJRm9JRSxnQkNuQnlELEVBQUE7RUNqSDNEO0lGb0lFLFlDbkJ5RCxFQUFBLEVDL0cxRDs7QUg4SUs7RUdoSk47SUZvSUUsV0NuQnlELEVBQUE7RUNqSDNEO0lGb0lFLFVDbkJ5RCxFQUFBO0VDakgzRDtJRm9JRSxnQkNuQnlELEVBQUE7RUNqSDNEO0lGb0lFLFVDbkJ5RCxFQUFBO0VDakgzRDtJRm9JRSxVQ25CeUQsRUFBQTtFQ2pIM0Q7SUZvSUUsZ0JDbkJ5RCxFQUFBO0VDakgzRDtJRm9JRSxnQkNuQnlELEVBQUE7RUNqSDNEO0lGb0lFLFlDbkJ5RCxFQUFBLEVDL0cxRDs7QUFGRDtFRm9JRSwyQkF0RDhGLEVBQUE7O0FFOUVoRztFRm9JRSwwQkF0RDhGLEVBQUE7O0FFOUVoRztFRm9JRSxnQ0F0RDhGLEVBQUE7O0FFOUVoRztFRm9JRSwwQkF0RDhGLEVBQUE7O0FFOUVoRztFRm9JRSwwQkF0RDhGLEVBQUE7O0FFOUVoRztFRm9JRSxnQ0F0RDhGLEVBQUE7O0FFOUVoRztFRm9JRSxnQ0F0RDhGLEVBQUE7O0FFOUVoRztFRm9JRSw0QkF0RDhGLEVBQUE7O0FEa0UxRjtFR2hKTjtJRm9JRSw0QkF0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLDJCQXREOEYsRUFBQTtFRTlFaEc7SUZvSUUsaUNBdEQ4RixFQUFBO0VFOUVoRztJRm9JRSwyQkF0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLDJCQXREOEYsRUFBQTtFRTlFaEc7SUZvSUUsaUNBdEQ4RixFQUFBO0VFOUVoRztJRm9JRSxpQ0F0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLDZCQXREOEYsRUFBQTtFRTlFaEc7SUZvSUUsNEJBdEQ4RixFQUFBO0VFOUVoRztJRm9JRSwyQkF0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLGlDQXREOEYsRUFBQTtFRTlFaEc7SUZvSUUsMkJBdEQ4RixFQUFBO0VFOUVoRztJRm9JRSwyQkF0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLGlDQXREOEYsRUFBQTtFRTlFaEc7SUZvSUUsaUNBdEQ4RixFQUFBO0VFOUVoRztJRm9JRSw2QkF0RDhGLEVBQUEsRUU1RS9GOztBSDhJSztFR2hKTjtJRm9JRSw0QkF0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLDJCQXREOEYsRUFBQTtFRTlFaEc7SUZvSUUsaUNBdEQ4RixFQUFBO0VFOUVoRztJRm9JRSwyQkF0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLDJCQXREOEYsRUFBQTtFRTlFaEc7SUZvSUUsaUNBdEQ4RixFQUFBO0VFOUVoRztJRm9JRSxpQ0F0RDhGLEVBQUE7RUU5RWhHO0lGb0lFLDZCQXREOEYsRUFBQSxFRTVFL0Y7O0FQcU1HO0VROU1FLGVBQTBCO0VBQTFCLGNBQTBCLEVBQUE7RUFHNUI7SUFFSSxlQUEwQjtJQUExQixjQUEwQixFQUFBO0VBc0J4QjtJSGdIUixlQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixVQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLFVDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsVUNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixXQ25CeUQsRUFBQTtFRitCckQ7SUk1SEk7TUhnSFIsZUNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLGdCQ25CeUQsRUFBQTtJRTdGakQ7TUhnSFIsVUNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLGdCQ25CeUQsRUFBQTtJRTdGakQ7TUhnSFIsZ0JDbkJ5RCxFQUFBO0lFN0ZqRDtNSGdIUixVQ25CeUQsRUFBQTtJRTdGakQ7TUhnSFIsZ0JDbkJ5RCxFQUFBO0lFN0ZqRDtNSGdIUixnQkNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLFVDbkJ5RCxFQUFBO0lFN0ZqRDtNSGdIUixnQkNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLGdCQ25CeUQsRUFBQTtJRTdGakQ7TUhnSFIsV0NuQnlELEVBQUEsRUUzRmhEO0VKMEhMO0lJNUhJO01IZ0hSLGVDbkJ5RCxFQUFBO0lFN0ZqRDtNSGdIUixnQkNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLFVDbkJ5RCxFQUFBO0lFN0ZqRDtNSGdIUixnQkNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLGdCQ25CeUQsRUFBQTtJRTdGakQ7TUhnSFIsVUNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLGdCQ25CeUQsRUFBQTtJRTdGakQ7TUhnSFIsZ0JDbkJ5RCxFQUFBO0lFN0ZqRDtNSGdIUixVQ25CeUQsRUFBQTtJRTdGakQ7TUhnSFIsZ0JDbkJ5RCxFQUFBO0lFN0ZqRDtNSGdIUixnQkNuQnlELEVBQUE7SUU3RmpEO01IZ0hSLFdDbkJ5RCxFQUFBLEVFM0ZoRDs7QVJ1TFA7RVE3S0UsZUFBMEI7RUFBMUIsY0FBMEIsRUFBQTtFQUc1QjtJQUVJLGdCQUE0QjtJQUE1QixlQUE0QixFQUFBOztBSjJHOUI7RUp1REY7SVE5TUUsZUFBMEI7SUFBMUIsY0FBMEIsRUFBQTtJQUc1QjtNQUVJLGVBQTBCO01BQTFCLGNBQTBCLEVBQUEsRUFFN0I7O0FKZ0pDO0VJcklJO0lIeUhSLGVDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLFVDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLGdCQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsVUNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLGdCQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsZ0JDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixVQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsZ0JDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLFdDbkJ5RCxFQUFBLEVFcEdoRDs7QUptSUw7RUk1SEk7SUhnSFIsZUNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsVUNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixVQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLFVDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsV0NuQnlELEVBQUEsRUUzRmhEOztBSjBITDtFSTVISTtJSGdIUixlQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixVQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLFVDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsVUNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixXQ25CeUQsRUFBQSxFRTNGaEQ7O0FKMEhMO0VKNkRGO0lRN0tFLGVBQTBCO0lBQTFCLGNBQTBCLEVBQUE7SUFHNUI7TUFFSSxnQkFBNEI7TUFBNUIsZUFBNEIsRUFBQSxFQUUvQjs7QUp5R0M7RUp1REY7SVE5TUUsZUFBMEI7SUFBMUIsY0FBMEIsRUFBQTtJQUc1QjtNQUVJLGVBQTBCO01BQTFCLGNBQTBCLEVBQUEsRUFFN0I7O0FKZ0pDO0VJcklJO0lIeUhSLGVDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLFVDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLGdCQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsVUNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLGdCQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsZ0JDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixVQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsZ0JDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLFdDbkJ5RCxFQUFBLEVFcEdoRDs7QUptSUw7RUlySUk7SUh5SFIsZUNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLGdCQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsVUNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLGdCQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsZ0JDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixVQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsZ0JDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLFVDbkJ5RCxFQUFBO0VFdEdqRDtJSHlIUixnQkNuQnlELEVBQUE7RUV0R2pEO0lIeUhSLGdCQ25CeUQsRUFBQTtFRXRHakQ7SUh5SFIsV0NuQnlELEVBQUEsRUVwR2hEOztBSm1JTDtFSTVISTtJSGdIUixlQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixVQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLFVDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixnQkNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsVUNuQnlELEVBQUE7RUU3RmpEO0lIZ0hSLGdCQ25CeUQsRUFBQTtFRTdGakQ7SUhnSFIsZ0JDbkJ5RCxFQUFBO0VFN0ZqRDtJSGdIUixXQ25CeUQsRUFBQSxFRTNGaEQ7O0FKMEhMO0VKNkRGO0lRN0tFLGVBQTBCO0lBQTFCLGNBQTBCLEVBQUE7SUFHNUI7TUFFSSxnQkFBNEI7TUFBNUIsZUFBNEIsRUFBQSxFQUUvQjs7QVJvTEQ7RVN2TUYsZUFBNkIsRUFBQTs7QVQyTTNCO0VTM01GLGdDQUE2QixFQUFBOztBVHVNM0I7RVN2TUYscUJBQTZCLEVBQUE7O0FUMk0zQjtFUzNNRixzQ0FBNkIsRUFBQTs7QVR1TTNCO0VTdk1GLHNCQUE2QixFQUFBOztBVDJNM0I7RVMzTUYsdUNBQTZCLEVBQUE7O0FUdU0zQjtFU3ZNRixnQkFBNkIsRUFBQTs7QVQyTTNCO0VTM01GLGlDQUE2QixFQUFBOztBVHVNM0I7RVN2TUYsc0JBQTZCLEVBQUE7O0FUMk0zQjtFUzNNRix1Q0FBNkIsRUFBQTs7QVR1TTNCO0VTdk1GLHNCQUE2QixFQUFBOztBVDJNM0I7RVMzTUYsdUNBQTZCLEVBQUE7O0FUdU0zQjtFU3ZNRixnQkFBNkIsRUFBQTs7QVQyTTNCO0VTM01GLGlDQUE2QixFQUFBOztBVHVNM0I7RVN2TUYsc0JBQTZCLEVBQUE7O0FUMk0zQjtFUzNNRix1Q0FBNkIsRUFBQTs7QVR1TTNCO0VTdk1GLHNCQUE2QixFQUFBOztBVDJNM0I7RVMzTUYsdUNBQTZCLEVBQUE7O0FUdU0zQjtFU3ZNRixnQkFBNkIsRUFBQTs7QVQyTTNCO0VTM01GLGlDQUE2QixFQUFBOztBVHVNM0I7RVN2TUYsc0JBQTZCLEVBQUE7O0FUMk0zQjtFUzNNRix1Q0FBNkIsRUFBQTs7QVR1TTNCO0VTdk1GLHNCQUE2QixFQUFBOztBVDJNM0I7RVMzTUYsdUNBQTZCLEVBQUE7O0FMNEh6QjtFSjJFRjtJU3ZNRixlQUE2QixFQUFBO0VUMk0zQjtJUzNNRixpQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYscUJBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHVDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUE7RVR1TTNCO0lTdk1GLGdCQUE2QixFQUFBO0VUMk0zQjtJUzNNRixrQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYsc0JBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHdDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUE7RVR1TTNCO0lTdk1GLGdCQUE2QixFQUFBO0VUMk0zQjtJUzNNRixrQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYsc0JBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHdDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUE7RVR1TTNCO0lTdk1GLGdCQUE2QixFQUFBO0VUMk0zQjtJUzNNRixrQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYsc0JBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHdDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUEsRVQ2TTFCOztBSWpGQztFSjJFRjtJU3ZNRixlQUE2QixFQUFBO0VUMk0zQjtJUzNNRixpQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYscUJBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHVDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUE7RVR1TTNCO0lTdk1GLGdCQUE2QixFQUFBO0VUMk0zQjtJUzNNRixrQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYsc0JBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHdDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUE7RVR1TTNCO0lTdk1GLGdCQUE2QixFQUFBO0VUMk0zQjtJUzNNRixrQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYsc0JBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHdDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUE7RVR1TTNCO0lTdk1GLGdCQUE2QixFQUFBO0VUMk0zQjtJUzNNRixrQ0FBNkIsRUFBQTtFVHVNM0I7SVN2TUYsc0JBQTZCLEVBQUE7RVQyTTNCO0lTM01GLHdDQUE2QixFQUFBO0VUdU0zQjtJU3ZNRixzQkFBNkIsRUFBQTtFVDJNM0I7SVMzTUYsd0NBQTZCLEVBQUEsRVQ2TTFCOztBQXpKUztFRXRFZCxvQkFBYTtFQUFiLHFCQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsNEJBSDZCO0VBRzdCLDZCQUg2QjtFQUc3QixnQ0FINkI7TUFHN0IsNEJBSDZCO1VBRzdCLHdCQUg2QixFQUFBO0VGaVA3QjtJSzFJQSxZQUFtQjtJQUNuQixnQkFBMkIsRUFBQTtFTHlJM0I7SUs3R0UsWUFsRlksRUFBQTtFTCtMZDtJSzdHRSxZQWxGWSxFQUFBO0VMK0xkO0lBMkJNLHdCQUFnQjtRQUFoQiw2QkFBZ0I7WUFBaEIsZ0JBQWdCLEVBQUE7RUk1SGhCO0lKaUdOO01BMkJNLHdCQUFnQjtVQUFoQiw2QkFBZ0I7Y0FBaEIsZ0JBQWdCLEVBQUEsRUFDakI7RUk3SEM7SUppR047TUEyQk0sd0JBQWdCO1VBQWhCLDZCQUFnQjtjQUFoQixnQkFBZ0IsRUFBQSxFQUNqQjtFQTVCTDtJS3hKQSxtQkFBTTtJQUFOLHNCQUFNO1FBQU4sa0JBQU07WUFBTixjQUFNLEVBQUE7RUx3Sk47SUs3R0UsZ0JDbkJ5RCxFQUFBO0VOZ0kzRDtJSzdHRSxpQkNuQnlELEVBQUE7RU5nSTNEO0lLN0dFLFdDbkJ5RCxFQUFBO0VOZ0kzRDtJSzdHRSxpQkNuQnlELEVBQUE7RU5nSTNEO0lLN0dFLGlCQ25CeUQsRUFBQTtFTmdJM0Q7SUs3R0UsV0NuQnlELEVBQUE7RU5nSTNEO0lLN0dFLGlCQ25CeUQsRUFBQTtFTmdJM0Q7SUs3R0UsaUJDbkJ5RCxFQUFBO0VOZ0kzRDtJSzdHRSxXQ25CeUQsRUFBQTtFTmdJM0Q7SUs3R0UsaUJDbkJ5RCxFQUFBO0VOZ0kzRDtJSzdHRSxpQkNuQnlELEVBQUE7RU5nSTNEO0lLN0dFLFlDbkJ5RCxFQUFBO0VGK0JyRDtJSmlHTjtNS3hKQSxtQkFBTTtNQUFOLHFCQUFNO1VBQU4saUJBQU07Y0FBTixhQUFNO01BMkNKLFlBbEZZLEVBQUE7SUwrTGQ7TUt4SkEsbUJBQU07TUFBTixzQkFBTTtVQUFOLGtCQUFNO2NBQU4sY0FBTSxFQUFBO0lMd0pOO01LN0dFLFlBbEZZLEVBQUE7SUwrTGQ7TUs3R0UsZ0JDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxpQkNuQnlELEVBQUE7SU5nSTNEO01LN0dFLFdDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxpQkNuQnlELEVBQUE7SU5nSTNEO01LN0dFLGlCQ25CeUQsRUFBQTtJTmdJM0Q7TUs3R0UsV0NuQnlELEVBQUE7SU5nSTNEO01LN0dFLGlCQ25CeUQsRUFBQTtJTmdJM0Q7TUs3R0UsaUJDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxXQ25CeUQsRUFBQTtJTmdJM0Q7TUs3R0UsaUJDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxpQkNuQnlELEVBQUE7SU5nSTNEO01LN0dFLFlDbkJ5RCxFQUFBLEVOeUxwRDtFSTFKRDtJSmlHTjtNS3hKQSxtQkFBTTtNQUFOLHFCQUFNO1VBQU4saUJBQU07Y0FBTixhQUFNO01BMkNKLFlBbEZZLEVBQUE7SUwrTGQ7TUt4SkEsbUJBQU07TUFBTixzQkFBTTtVQUFOLGtCQUFNO2NBQU4sY0FBTSxFQUFBO0lMd0pOO01LN0dFLFlBbEZZLEVBQUE7SUwrTGQ7TUs3R0UsZ0JDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxpQkNuQnlELEVBQUE7SU5nSTNEO01LN0dFLFdDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxpQkNuQnlELEVBQUE7SU5nSTNEO01LN0dFLGlCQ25CeUQsRUFBQTtJTmdJM0Q7TUs3R0UsV0NuQnlELEVBQUE7SU5nSTNEO01LN0dFLGlCQ25CeUQsRUFBQTtJTmdJM0Q7TUs3R0UsaUJDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxXQ25CeUQsRUFBQTtJTmdJM0Q7TUs3R0UsaUJDbkJ5RCxFQUFBO0lOZ0kzRDtNSzdHRSxpQkNuQnlELEVBQUE7SU5nSTNEO01LN0dFLFlDbkJ5RCxFQUFBLEVOeUxwRDs7QUFPTDtFQ2pUSSxxQkFBNkQ7RUFBN0Qsd0JBQTZELEVBQUE7RUdnSjdEO0lKaUtKO01DalRJLHNCQUE2RDtNQUE3RCx5QkFBNkQsRUFBQSxFRHFUOUQ7O0FBSkg7RUNqVEkscUJBQTZEO0VBQTdELHdCQUE2RCxFQUFBO0VHZ0o3RDtJSmlLSjtNQ2pUSSxzQkFBNkQ7TUFBN0QseUJBQTZELEVBQUEsRUQwVDlEOztBQW5OTDtFQ3ZHTSxxQkFBNkQ7RUFBN0Qsd0JBQTZELEVBQUE7RUdnSjdEO0lKekNOO01DdkdNLHNCQUE2RDtNQUE3RCx5QkFBNkQsRUFBQSxFRHNJbEU7RUEvQkQ7SUs2QkUsNEJBdEQ4RjtJSnJFNUYsb0JBQTZEO0lBQTdELHVCQUE2RCxFQUFBO0VHdUkzRDtJSnpDTjtNSzZCRSw2QkF0RDhGO01KckU1RixxQkFBNkQ7TUFBN0Qsd0JBQTZELEVBQUEsRUQyRzFEO0VBckNQO0lLcURFLFlBbEZZLEVBQUE7RUxpQ2Q7SUtpREUsWUFsRlksRUFBQTtFTHlDWjtJS3lDQSxnQ0F0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsaUNBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDJCQXREOEYsRUFBQTtFTGE5RjtJS3lDQSxpQ0F0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsaUNBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDJCQXREOEYsRUFBQTtFTGE5RjtJS3lDQSxpQ0F0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsaUNBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDJCQXREOEYsRUFBQTtFTGE5RjtJS3lDQSxpQ0F0RDhGLEVBQUE7RUxhOUY7SUt5Q0EsaUNBdEQ4RixFQUFBO0VMYTlGO0lLeUNBLDRCQXREOEYsRUFBQTtFRGtFMUY7SUpqRU47TUtxREUsWUFsRlksRUFBQTtJTGlDZDtNS2lERSxZQWxGWSxFQUFBO0lMeUNaO01LeUNBLGlDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxrQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsNEJBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGtDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxrQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsNEJBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGtDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxrQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsNEJBdEQ4RixFQUFBO0lMYTlGO01LeUNBLGtDQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxrQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0EsNkJBdEQ4RixFQUFBO0lMQ2hHO01LcURFLFlBbEZZLEVBQUE7SUxpQ2Q7TUtpREUsWUFsRlksRUFBQTtJTHlDWjtNS3lDQSxpQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0Esa0NBdEQ4RixFQUFBO0lMYTlGO01LeUNBLDRCQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxrQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0Esa0NBdEQ4RixFQUFBO0lMYTlGO01LeUNBLDRCQXREOEYsRUFBQTtJTGE5RjtNS3lDQSxrQ0F0RDhGLEVBQUE7SUxhOUY7TUt5Q0Esa0NBdEQ4RixFQUFBO0lMYTlGO01LeUNBLDRC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aEIsZ0JEK0JnQjtNQy9CaEIsaUJEK0JnQjtVQy9CaEIsUUQrQmdCLEVBQUE7O0FsQm1FVjtFa0JsRUY7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBLEVBR1g7O0FsQmdFQztFa0JsRUY7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBO0VBQ1o7SUNoQ0osNEJEK0JnQjtJQy9CaEIsZ0JEK0JnQjtRQy9CaEIsaUJEK0JnQjtZQy9CaEIsUUQrQmdCLEVBQUE7RUFDWjtJQ2hDSiw0QkQrQmdCO0lDL0JoQixnQkQrQmdCO1FDL0JoQixpQkQrQmdCO1lDL0JoQixRRCtCZ0IsRUFBQTtFQUNaO0lDaENKLDRCRCtCZ0I7SUMvQmhCLGdCRCtCZ0I7UUMvQmhCLGlCRCtCZ0I7WUMvQmhCLFFEK0JnQixFQUFBLEVBR1g7O0FBL0ZMO0VD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O01iMEVnQixzQnhCQ3lDO013QkF6QyxtQnhCQXlDLEVBQUEsRXFDekV4RDtFcENpS087SW9DbktSO01iK0VnQix3QnhCSnlDO013Qkt6QyxxQnhCTHlDLEVBQUEsRXFDekV4RDs7QUFFRDtFQUNJLGFBQWEsRUFBQTs7QUFHakI7RWJ5TVksc0J4QnRJNkMsRUFBQTtFQ3dGakQ7SW9DM0pSO01iNE1nQixxQnhCekl5QyxFQUFBLEVxQ2pFeEQ7RXBDeUpPO0lvQzNKUjtNYmdOZ0IsdUJ4QjdJeUMsRUFBQSxFcUNqRXhEOztBQUdEO0VBQ0ksZ0JBQWdCLEVBQUE7O0FBR3BCO0ViZ01ZLHNCeEJ0STZDLEVBQUE7RUN3RmpEO0lvQ2xKUjtNYm1NZ0IscUJ4QnpJeUMsRUFBQSxFcUN4RHhEO0VwQ2dKTztJb0NsSlI7TWJ1TWdCLHVCeEI3SXlDLEVBQUEsRXFDeER4RDs7QUFFRDtFQUNJLGVBQWU7RUFDZixnQkFBZ0IsRUFBQTs7QXBDNElaO0VvQ3pJUjs7O0lBS1ksbUJyQzRDNkMsRUFBQSxFcUMzQ2hEOztBQUZBO0VBT0wsd0JyQ3NDcUQsRUFBQTtFcUN2Q3pEO0lBR1EsdUJyQ29DaUQsRUFBQTtFQ3dGakQ7SW9DcklDO01BYUQseUJyQ2dDaUQsRUFBQTtNcUN2Q3pEO1FBU1Esd0JyQzhCaUQsRUFBQSxFcUM3QnBEOztBQzNETDtFZGlIWSxnQnhCekI2QyxFQUFBO0VDd0ZqRDtJcUNoTFI7TWRvSGdCLGV4QjVCeUMsRUFBQSxFc0NsRmhEO0VyQzBLRDtJcUNoTFI7TWR3SGdCLGlCeEJoQ3lDLEVBQUEsRXNDbEZoRDs7QUNOVDtFZmtOWSxtQnhCMUg2QyxFQUFBO0VDd0ZqRDtJc0NoTFI7TWZxTmdCLGtCeEI3SHlDLEVBQUEsRXVDcEZwRDtFdEM0S0c7SXNDaExSO01meU5nQixvQnhCakl5QyxFQUFBLEV1Q3BGcEQ7O0FBSkw7RUFPUSxhQUFhLEVBQUE7O0FBUHJCO0VBV1Esa0JBQWtCLEVBQUE7O0FDWDFCO0VBRVEsa0JBQWtCLEVBQUE7O0FBRjFCO0VBT1ksY0FBYyxFQUFBOztBQ1AxQjtFQUVRLGNsQk9r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QTs7QXlEeEZ6RDtFQTJDUSxtQnpENkNpRCxFQUFBOztBMER4RnpEO0VBQ0ksMkJBQTJCLEVBQUE7RUFEL0I7SUFJUSxtQkFBbUIsRUFBQTtJQUozQjtNbENTUSxpQnhCK0VpRCxFQUFBO013QnJFakQ7UWtDbkJSO1VsQ29CWSx1REFBMkosRUFBQSxFQU1sSztNQUhHO1FrQ3ZCUjtVbEN3QlksbUJ4QmdFNkMsRUFBQSxFd0I5RHBEO0VBbEJEO0lBQ0ksa0J4QitFaUQsRUFBQTtJd0JyRWpEO01BWEo7UUFZUSx1REFBMkosRUFBQSxFQU1sSztJQUhHO01BZko7UUFnQlEsb0J4QmdFNkMsRUFBQSxFd0I5RHBEO0VrQzFCTDtJQVlRLG1CQUFtQixFQUFBO0lBWjNCO01BY1ksa0JBQWtCO01BQ2xCLG1CQUFtQixFQUFBO0VBZi9CO0lBb0JRLHFCQUFxQixFQUFBO0lBcEI3QjtNQXVCWSxvQkFBb0IsRUFBQTtJQXZCaEM7TUEwQlksbUJBQW1CLEVBQUE7SUExQi9CO01BNkJZLG1CQUFtQixFQUFBO0lBN0IvQjtNQWlDWSxlQUFlO01BQ2YsZ0JBQWdCO01BQ2hCLG1CQUFZO01BQVosb0JBQVk7VUFBWixvQkFBWTtjQUFaLFlBQVk7TUFDWixtQkFBbUIsRUFBQTtNQXBDL0I7UUF1Q2dCLGdCQUFnQixFQUFBO0lBdkNoQztNQTRDWSxvQkFBYTtNQUFiLHFCQUFhO01BQWIsb0JBQWE7TUFBYixhQUFhO01BQ2IsNEJBQXNCO01BQXRCLDZCQUFzQjtNQUF0Qiw4QkFBc0I7VUFBdEIsMEJBQXNCO2NBQXRCLHNCQUFzQjtNQUN0QixZQUFZLEVBQUE7SUE5Q3hCO01BbURnQixtQkFBbUI7TUFDbkIsY0FBYyxFQUFBO01BcEQ5QjtRQXVEb0IsZ0JBQWdCLEVBQUE7TUF2RHBDO1FBMkRvQixjQUFjLEVBQUEiLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXNcbiAqIFZlcnNpb24gNi42LjNcbiAqIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIC0tLSBEZXBlbmRlbmNpZXMgLS0tXG5AaW1wb3J0ICd2ZW5kb3Ivbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyAtLS0gU2V0dGluZ3MgLS0tXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIC0tLSBDb21wb25lbnRzIC0tLVxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuLy8gR2xvYmFsIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5cbi8vIEdyaWRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbi8vIEdlbmVyaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbi8vIEJhc2ljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8vIENvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG4vLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5cbi8vIExheW91dCBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcblxuLy8gSGVscGVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZSxcbiAgJHh5LWdyaWQ6ICR4eS1ncmlkXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiAkeHktZ3JpZCB7XG4gICAgJHh5LWdyaWQ6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8vIEdsb2JhbCBzdHlsZXNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG5cbiAgLy8gR3JpZHNcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICAvLyBCYXNpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcblxuICAvLyBDb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICAvLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuXG4gIC8vIExheW91dCBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuXG4gIC8vIEhlbHBlcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuICBAaWYgJGZsZXggeyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlczsgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGlmICRwcm90b3R5cGUgeyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzOyB9XG59XG4iLCIvKipcbiAqIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4gKiBWZXJzaW9uIDYuNi4zXG4gKiBodHRwczovL2dldC5mb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuLmdyaWQtY29udGFpbmVyIHtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1heC13aWR0aDogNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1jb250YWluZXIge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1jb250YWluZXIuZmx1aWQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuZ3JpZC1jb250YWluZXIuZmx1aWQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cbiAgLmdyaWQtY29udGFpbmVyLmZ1bGwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLmdyaWQteCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7IH1cblxuLmNlbGwge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWluLWhlaWdodDogMHB4O1xuICBtaW4td2lkdGg6IDBweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNlbGwuYXV0byB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAuY2VsbC5zaHJpbmsge1xuICAgIGZsZXg6IDAgMCBhdXRvOyB9XG5cbi5ncmlkLXggPiAuYXV0byB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi5ncmlkLXggPiAuc2hyaW5rIHtcbiAgd2lkdGg6IGF1dG87IH1cblxuLmdyaWQteCA+IC5zbWFsbC1zaHJpbmssIC5ncmlkLXggPiAuc21hbGwtZnVsbCwgLmdyaWQteCA+IC5zbWFsbC0xLCAuZ3JpZC14ID4gLnNtYWxsLTIsIC5ncmlkLXggPiAuc21hbGwtMywgLmdyaWQteCA+IC5zbWFsbC00LCAuZ3JpZC14ID4gLnNtYWxsLTUsIC5ncmlkLXggPiAuc21hbGwtNiwgLmdyaWQteCA+IC5zbWFsbC03LCAuZ3JpZC14ID4gLnNtYWxsLTgsIC5ncmlkLXggPiAuc21hbGwtOSwgLmdyaWQteCA+IC5zbWFsbC0xMCwgLmdyaWQteCA+IC5zbWFsbC0xMSwgLmdyaWQteCA+IC5zbWFsbC0xMiB7XG4gIGZsZXgtYmFzaXM6IGF1dG87IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmdyaWQteCA+IC5tZWRpdW0tc2hyaW5rLCAuZ3JpZC14ID4gLm1lZGl1bS1mdWxsLCAuZ3JpZC14ID4gLm1lZGl1bS0xLCAuZ3JpZC14ID4gLm1lZGl1bS0yLCAuZ3JpZC14ID4gLm1lZGl1bS0zLCAuZ3JpZC14ID4gLm1lZGl1bS00LCAuZ3JpZC14ID4gLm1lZGl1bS01LCAuZ3JpZC14ID4gLm1lZGl1bS02LCAuZ3JpZC14ID4gLm1lZGl1bS03LCAuZ3JpZC14ID4gLm1lZGl1bS04LCAuZ3JpZC14ID4gLm1lZGl1bS05LCAuZ3JpZC14ID4gLm1lZGl1bS0xMCwgLmdyaWQteCA+IC5tZWRpdW0tMTEsIC5ncmlkLXggPiAubWVkaXVtLTEyIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmdyaWQteCA+IC5sYXJnZS1zaHJpbmssIC5ncmlkLXggPiAubGFyZ2UtZnVsbCwgLmdyaWQteCA+IC5sYXJnZS0xLCAuZ3JpZC14ID4gLmxhcmdlLTIsIC5ncmlkLXggPiAubGFyZ2UtMywgLmdyaWQteCA+IC5sYXJnZS00LCAuZ3JpZC14ID4gLmxhcmdlLTUsIC5ncmlkLXggPiAubGFyZ2UtNiwgLmdyaWQteCA+IC5sYXJnZS03LCAuZ3JpZC14ID4gLmxhcmdlLTgsIC5ncmlkLXggPiAubGFyZ2UtOSwgLmdyaWQteCA+IC5sYXJnZS0xMCwgLmdyaWQteCA+IC5sYXJnZS0xMSwgLmdyaWQteCA+IC5sYXJnZS0xMiB7XG4gICAgZmxleC1iYXNpczogYXV0bzsgfSB9XG5cbi5ncmlkLXggPiAuc21hbGwtMSwgLmdyaWQteCA+IC5zbWFsbC0yLCAuZ3JpZC14ID4gLnNtYWxsLTMsIC5ncmlkLXggPiAuc21hbGwtNCwgLmdyaWQteCA+IC5zbWFsbC01LCAuZ3JpZC14ID4gLnNtYWxsLTYsIC5ncmlkLXggPiAuc21hbGwtNywgLmdyaWQteCA+IC5zbWFsbC04LCAuZ3JpZC14ID4gLnNtYWxsLTksIC5ncmlkLXggPiAuc21hbGwtMTAsIC5ncmlkLXggPiAuc21hbGwtMTEsIC5ncmlkLXggPiAuc21hbGwtMTIge1xuICBmbGV4OiAwIDAgYXV0bzsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTEge1xuICB3aWR0aDogOC4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC0yIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTMge1xuICB3aWR0aDogMjUlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtNCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC01IHtcbiAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTYge1xuICB3aWR0aDogNTAlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtNyB7XG4gIHdpZHRoOiA1OC4zMzMzMyU7IH1cblxuLmdyaWQteCA+IC5zbWFsbC04IHtcbiAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uZ3JpZC14ID4gLnNtYWxsLTkge1xuICB3aWR0aDogNzUlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTAge1xuICB3aWR0aDogODMuMzMzMzMlOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTEge1xuICB3aWR0aDogOTEuNjY2NjclOyB9XG5cbi5ncmlkLXggPiAuc21hbGwtMTIge1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZ3JpZC14ID4gLm1lZGl1bS1hdXRvIHtcbiAgICBmbGV4OiAxIDEgMHB4O1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLXNocmluaywgLmdyaWQteCA+IC5tZWRpdW0tMSwgLmdyaWQteCA+IC5tZWRpdW0tMiwgLmdyaWQteCA+IC5tZWRpdW0tMywgLmdyaWQteCA+IC5tZWRpdW0tNCwgLmdyaWQteCA+IC5tZWRpdW0tNSwgLmdyaWQteCA+IC5tZWRpdW0tNiwgLmdyaWQteCA+IC5tZWRpdW0tNywgLmdyaWQteCA+IC5tZWRpdW0tOCwgLmdyaWQteCA+IC5tZWRpdW0tOSwgLmdyaWQteCA+IC5tZWRpdW0tMTAsIC5ncmlkLXggPiAubWVkaXVtLTExLCAuZ3JpZC14ID4gLm1lZGl1bS0xMiB7XG4gICAgZmxleDogMCAwIGF1dG87IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tc2hyaW5rIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmdyaWQteCA+IC5tZWRpdW0tOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLm1lZGl1bS05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAubWVkaXVtLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLXggPiAubGFyZ2UtYXV0byB7XG4gICAgZmxleDogMSAxIDBweDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLXNocmluaywgLmdyaWQteCA+IC5sYXJnZS0xLCAuZ3JpZC14ID4gLmxhcmdlLTIsIC5ncmlkLXggPiAubGFyZ2UtMywgLmdyaWQteCA+IC5sYXJnZS00LCAuZ3JpZC14ID4gLmxhcmdlLTUsIC5ncmlkLXggPiAubGFyZ2UtNiwgLmdyaWQteCA+IC5sYXJnZS03LCAuZ3JpZC14ID4gLmxhcmdlLTgsIC5ncmlkLXggPiAubGFyZ2UtOSwgLmdyaWQteCA+IC5sYXJnZS0xMCwgLmdyaWQteCA+IC5sYXJnZS0xMSwgLmdyaWQteCA+IC5sYXJnZS0xMiB7XG4gICAgZmxleDogMCAwIGF1dG87IH1cbiAgLmdyaWQteCA+IC5sYXJnZS1zaHJpbmsge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmdyaWQteCA+IC5sYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuZ3JpZC14ID4gLmxhcmdlLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLXggPiAubGFyZ2UtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmdyaWQtbWFyZ2luLXg6bm90KC5ncmlkLXgpID4gLmNlbGwge1xuICB3aWR0aDogYXV0bzsgfVxuXG4uZ3JpZC1tYXJnaW4teTpub3QoLmdyaWQteSkgPiAuY2VsbCB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uZ3JpZC1tYXJnaW4teCB7XG4gIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXgge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0wLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNjI1cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5jZWxsIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7XG4gICAgICBtYXJnaW4tbGVmdDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjkzNzVyZW07IH0gfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5hdXRvIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zaHJpbmsge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEge1xuICAgIHdpZHRoOiBjYWxjKDguMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMyB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNSB7XG4gICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNiB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNyB7XG4gICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtOCB7XG4gICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtOSB7XG4gICAgd2lkdGg6IGNhbGMoNzUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTAge1xuICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogY2FsYyg5MS42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0xMiB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuMjVyZW0pOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuYXV0byB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNocmluayB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTEge1xuICAgICAgd2lkdGg6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC0yIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTMge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNCB7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC01IHtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTYge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtNyB7XG4gICAgICB3aWR0aDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC04IHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLTkge1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTAge1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTEge1xuICAgICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtMTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1hdXRvIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLXNocmluayB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0xIHtcbiAgICAgIHdpZHRoOiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTMge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTQge1xuICAgICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTUge1xuICAgICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTYge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTcge1xuICAgICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTgge1xuICAgICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTkge1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubWVkaXVtLTEwIHtcbiAgICAgIHdpZHRoOiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS0xMSB7XG4gICAgICB3aWR0aDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tMTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtYXV0byB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLXNocmluayB7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTEge1xuICAgICAgd2lkdGg6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS0yIHtcbiAgICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTMge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtNCB7XG4gICAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS01IHtcbiAgICAgIHdpZHRoOiBjYWxjKDQxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTYge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtNyB7XG4gICAgICB3aWR0aDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS04IHtcbiAgICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLTkge1xuICAgICAgd2lkdGg6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMTAge1xuICAgICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMTEge1xuICAgICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2UtMTIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG5cbi5ncmlkLXBhZGRpbmcteCAuZ3JpZC1wYWRkaW5nLXgge1xuICBtYXJnaW4tcmlnaHQ6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjYyNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5ncmlkLXBhZGRpbmcteCAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuXG4uZ3JpZC1jb250YWluZXI6bm90KC5mdWxsKSA+IC5ncmlkLXBhZGRpbmcteCB7XG4gIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtY29udGFpbmVyOm5vdCguZnVsbCkgPiAuZ3JpZC1wYWRkaW5nLXgge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuXG4uZ3JpZC1wYWRkaW5nLXggPiAuY2VsbCB7XG4gIHBhZGRpbmctcmlnaHQ6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtcGFkZGluZy14ID4gLmNlbGwge1xuICAgICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG4uc21hbGwtdXAtMSA+IC5jZWxsIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLXVwLTIgPiAuY2VsbCB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLXVwLTMgPiAuY2VsbCB7XG4gIHdpZHRoOiAzMy4zMzMzMyU7IH1cblxuLnNtYWxsLXVwLTQgPiAuY2VsbCB7XG4gIHdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXVwLTUgPiAuY2VsbCB7XG4gIHdpZHRoOiAyMCU7IH1cblxuLnNtYWxsLXVwLTYgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLXVwLTcgPiAuY2VsbCB7XG4gIHdpZHRoOiAxNC4yODU3MSU7IH1cblxuLnNtYWxsLXVwLTggPiAuY2VsbCB7XG4gIHdpZHRoOiAxMi41JTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLXVwLTEgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS11cC00ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLm1lZGl1bS11cC02ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLm1lZGl1bS11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMi41JTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5sYXJnZS11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXVwLTMgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLmxhcmdlLXVwLTYgPiAuY2VsbCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2UtdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogMTQuMjg1NzElOyB9XG4gIC5sYXJnZS11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiAxMi41JTsgfSB9XG5cbi5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTEgPiAuY2VsbCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0yID4gLmNlbGwge1xuICB3aWR0aDogY2FsYyg1MCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0zID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC00ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygyNSUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC01ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygyMCUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC02ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC03ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjI1cmVtKTsgfVxuXG4uZ3JpZC1tYXJnaW4teC5zbWFsbC11cC04ID4gLmNlbGwge1xuICB3aWR0aDogY2FsYygxMi41JSAtIDEuMjVyZW0pOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5ncmlkLW1hcmdpbi14LnNtYWxsLXVwLTEgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0yID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC00ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC01ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDIwJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC02ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC03ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE0LjI4NTcxJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5zbWFsbC11cC04ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTIgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC0zID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTUgPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMjAlIC0gMS44NzVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi14Lm1lZGl1bS11cC02ID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDE2LjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teC5tZWRpdW0tdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubWVkaXVtLXVwLTggPiAuY2VsbCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxLjg3NXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1tYXJnaW4teC5sYXJnZS11cC0xID4gLmNlbGwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtMiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtMyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNSA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygyMCUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNiA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtNyA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxNC4yODU3MSUgLSAxLjg3NXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXgubGFyZ2UtdXAtOCA+IC5jZWxsIHtcbiAgICB3aWR0aDogY2FsYygxMi41JSAtIDEuODc1cmVtKTsgfSB9XG5cbi5zbWFsbC1tYXJnaW4tY29sbGFwc2Uge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMSB7XG4gICAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0yIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0zIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS00IHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS01IHtcbiAgICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS02IHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS03IHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS04IHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS05IHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMCB7XG4gICAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTEge1xuICAgICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEge1xuICAgICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0yIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTMge1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS01IHtcbiAgICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTYge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNyB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gICAgLnNtYWxsLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS04IHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgICAuc21hbGwtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTkge1xuICAgICAgd2lkdGg6IDc1JTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTAge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTEge1xuICAgICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAgIC5zbWFsbC1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTIge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uc21hbGwtcGFkZGluZy1jb2xsYXBzZSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnNtYWxsLXBhZGRpbmctY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmNlbGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS00IHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS03IHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZWRpdW0tbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLXBhZGRpbmctY29sbGFwc2Uge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5tZWRpdW0tcGFkZGluZy1jb2xsYXBzZSA+IC5jZWxsIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmNlbGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTIge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0zIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTUge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC02IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC05IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAuc21hbGwtMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5zbWFsbC0xMSB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLnNtYWxsLTEyIHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTEge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTMge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTYge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLm1lZGl1bS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubWVkaXVtLTkge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5tZWRpdW0tMTIge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0yIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMyB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS01IHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtNiB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTcge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS04IHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtOSB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAubGFyZ2UtbWFyZ2luLWNvbGxhcHNlID4gLmxhcmdlLTEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1tYXJnaW4tY29sbGFwc2UgPiAubGFyZ2UtMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW1hcmdpbi1jb2xsYXBzZSA+IC5sYXJnZS0xMiB7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtcGFkZGluZy1jb2xsYXBzZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLmxhcmdlLXBhZGRpbmctY29sbGFwc2UgPiAuY2VsbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMCUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoOC4zMzMzMyUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtMiB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY3JSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTMge1xuICBtYXJnaW4tbGVmdDogMjUlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0zIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtNCB7XG4gIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogY2FsYygzMy4zMzMzMyUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtNSB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDQxLjY2NjY3JSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTYge1xuICBtYXJnaW4tbGVmdDogNTAlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC02IHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtNyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cblxuLmdyaWQtbWFyZ2luLXggPiAuc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogY2FsYyg1OC4zMzMzMyUgKyAwLjYyNXJlbSk7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtOCB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDY2LjY2NjY3JSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC05IHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgMC42MjVyZW0pOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5ncmlkLW1hcmdpbi14ID4gLnNtYWxsLW9mZnNldC0xMCB7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKDgzLjMzMzMzJSArIDAuNjI1cmVtKTsgfVxuXG4uc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4uZ3JpZC1tYXJnaW4teCA+IC5zbWFsbC1vZmZzZXQtMTEge1xuICBtYXJnaW4tbGVmdDogY2FsYyg5MS42NjY2NyUgKyAwLjYyNXJlbSk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMCUgKyAwLjkzNzVyZW0pOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDguMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTYuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMzMuMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNDEuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTguMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNjYuNjY2NjclICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgMC45Mzc1cmVtKTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4My4zMzMzMyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDkxLjY2NjY3JSArIDAuOTM3NXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMCUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4LjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxNi42NjY2NyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDMzLjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg0MS42NjY2NyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLmdyaWQtbWFyZ2luLXggPiAubGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDU4LjMzMzMzJSArIDAuOTM3NXJlbSk7IH1cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg2Ni42NjY2NyUgKyAwLjkzNzVyZW0pOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAuZ3JpZC1tYXJnaW4teCA+IC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoODMuMzMzMzMlICsgMC45Mzc1cmVtKTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5ncmlkLW1hcmdpbi14ID4gLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOTEuNjY2NjclICsgMC45Mzc1cmVtKTsgfSB9XG5cbi5ncmlkLXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgLmdyaWQteSA+IC5jZWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogbm9uZTsgfVxuICAuZ3JpZC15ID4gLmF1dG8ge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICAuZ3JpZC15ID4gLnNocmluayB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtc2hyaW5rLCAuZ3JpZC15ID4gLnNtYWxsLWZ1bGwsIC5ncmlkLXkgPiAuc21hbGwtMSwgLmdyaWQteSA+IC5zbWFsbC0yLCAuZ3JpZC15ID4gLnNtYWxsLTMsIC5ncmlkLXkgPiAuc21hbGwtNCwgLmdyaWQteSA+IC5zbWFsbC01LCAuZ3JpZC15ID4gLnNtYWxsLTYsIC5ncmlkLXkgPiAuc21hbGwtNywgLmdyaWQteSA+IC5zbWFsbC04LCAuZ3JpZC15ID4gLnNtYWxsLTksIC5ncmlkLXkgPiAuc21hbGwtMTAsIC5ncmlkLXkgPiAuc21hbGwtMTEsIC5ncmlkLXkgPiAuc21hbGwtMTIge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC15ID4gLm1lZGl1bS1zaHJpbmssIC5ncmlkLXkgPiAubWVkaXVtLWZ1bGwsIC5ncmlkLXkgPiAubWVkaXVtLTEsIC5ncmlkLXkgPiAubWVkaXVtLTIsIC5ncmlkLXkgPiAubWVkaXVtLTMsIC5ncmlkLXkgPiAubWVkaXVtLTQsIC5ncmlkLXkgPiAubWVkaXVtLTUsIC5ncmlkLXkgPiAubWVkaXVtLTYsIC5ncmlkLXkgPiAubWVkaXVtLTcsIC5ncmlkLXkgPiAubWVkaXVtLTgsIC5ncmlkLXkgPiAubWVkaXVtLTksIC5ncmlkLXkgPiAubWVkaXVtLTEwLCAuZ3JpZC15ID4gLm1lZGl1bS0xMSwgLmdyaWQteSA+IC5tZWRpdW0tMTIge1xuICAgICAgZmxleC1iYXNpczogYXV0bzsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmdyaWQteSA+IC5sYXJnZS1zaHJpbmssIC5ncmlkLXkgPiAubGFyZ2UtZnVsbCwgLmdyaWQteSA+IC5sYXJnZS0xLCAuZ3JpZC15ID4gLmxhcmdlLTIsIC5ncmlkLXkgPiAubGFyZ2UtMywgLmdyaWQteSA+IC5sYXJnZS00LCAuZ3JpZC15ID4gLmxhcmdlLTUsIC5ncmlkLXkgPiAubGFyZ2UtNiwgLmdyaWQteSA+IC5sYXJnZS03LCAuZ3JpZC15ID4gLmxhcmdlLTgsIC5ncmlkLXkgPiAubGFyZ2UtOSwgLmdyaWQteSA+IC5sYXJnZS0xMCwgLmdyaWQteSA+IC5sYXJnZS0xMSwgLmdyaWQteSA+IC5sYXJnZS0xMiB7XG4gICAgICBmbGV4LWJhc2lzOiBhdXRvOyB9IH1cbiAgLmdyaWQteSA+IC5zbWFsbC0xLCAuZ3JpZC15ID4gLnNtYWxsLTIsIC5ncmlkLXkgPiAuc21hbGwtMywgLmdyaWQteSA+IC5zbWFsbC00LCAuZ3JpZC15ID4gLnNtYWxsLTUsIC5ncmlkLXkgPiAuc21hbGwtNiwgLmdyaWQteSA+IC5zbWFsbC03LCAuZ3JpZC15ID4gLnNtYWxsLTgsIC5ncmlkLXkgPiAuc21hbGwtOSwgLmdyaWQteSA+IC5zbWFsbC0xMCwgLmdyaWQteSA+IC5zbWFsbC0xMSwgLmdyaWQteSA+IC5zbWFsbC0xMiB7XG4gICAgZmxleDogMCAwIGF1dG87IH1cbiAgLmdyaWQteSA+IC5zbWFsbC0xIHtcbiAgICBoZWlnaHQ6IDguMzMzMzMlOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtMiB7XG4gICAgaGVpZ2h0OiAxNi42NjY2NyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC0zIHtcbiAgICBoZWlnaHQ6IDI1JTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTQge1xuICAgIGhlaWdodDogMzMuMzMzMzMlOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtNSB7XG4gICAgaGVpZ2h0OiA0MS42NjY2NyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC02IHtcbiAgICBoZWlnaHQ6IDUwJTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTcge1xuICAgIGhlaWdodDogNTguMzMzMzMlOyB9XG4gIC5ncmlkLXkgPiAuc21hbGwtOCB7XG4gICAgaGVpZ2h0OiA2Ni42NjY2NyU7IH1cbiAgLmdyaWQteSA+IC5zbWFsbC05IHtcbiAgICBoZWlnaHQ6IDc1JTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTEwIHtcbiAgICBoZWlnaHQ6IDgzLjMzMzMzJTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTExIHtcbiAgICBoZWlnaHQ6IDkxLjY2NjY3JTsgfVxuICAuZ3JpZC15ID4gLnNtYWxsLTEyIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC15ID4gLm1lZGl1bS1hdXRvIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS1zaHJpbmssIC5ncmlkLXkgPiAubWVkaXVtLTEsIC5ncmlkLXkgPiAubWVkaXVtLTIsIC5ncmlkLXkgPiAubWVkaXVtLTMsIC5ncmlkLXkgPiAubWVkaXVtLTQsIC5ncmlkLXkgPiAubWVkaXVtLTUsIC5ncmlkLXkgPiAubWVkaXVtLTYsIC5ncmlkLXkgPiAubWVkaXVtLTcsIC5ncmlkLXkgPiAubWVkaXVtLTgsIC5ncmlkLXkgPiAubWVkaXVtLTksIC5ncmlkLXkgPiAubWVkaXVtLTEwLCAuZ3JpZC15ID4gLm1lZGl1bS0xMSwgLmdyaWQteSA+IC5tZWRpdW0tMTIge1xuICAgICAgZmxleDogMCAwIGF1dG87IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tMSB7XG4gICAgICBoZWlnaHQ6IDguMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tMiB7XG4gICAgICBoZWlnaHQ6IDE2LjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTMge1xuICAgICAgaGVpZ2h0OiAyNSU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS00IHtcbiAgICAgIGhlaWdodDogMzMuMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tNSB7XG4gICAgICBoZWlnaHQ6IDQxLjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTYge1xuICAgICAgaGVpZ2h0OiA1MCU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS03IHtcbiAgICAgIGhlaWdodDogNTguMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tOCB7XG4gICAgICBoZWlnaHQ6IDY2LjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTkge1xuICAgICAgaGVpZ2h0OiA3NSU7IH1cbiAgICAuZ3JpZC15ID4gLm1lZGl1bS0xMCB7XG4gICAgICBoZWlnaHQ6IDgzLjMzMzMzJTsgfVxuICAgIC5ncmlkLXkgPiAubWVkaXVtLTExIHtcbiAgICAgIGhlaWdodDogOTEuNjY2NjclOyB9XG4gICAgLmdyaWQteSA+IC5tZWRpdW0tMTIge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ3JpZC15ID4gLmxhcmdlLWF1dG8ge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2Utc2hyaW5rLCAuZ3JpZC15ID4gLmxhcmdlLTEsIC5ncmlkLXkgPiAubGFyZ2UtMiwgLmdyaWQteSA+IC5sYXJnZS0zLCAuZ3JpZC15ID4gLmxhcmdlLTQsIC5ncmlkLXkgPiAubGFyZ2UtNSwgLmdyaWQteSA+IC5sYXJnZS02LCAuZ3JpZC15ID4gLmxhcmdlLTcsIC5ncmlkLXkgPiAubGFyZ2UtOCwgLmdyaWQteSA+IC5sYXJnZS05LCAuZ3JpZC15ID4gLmxhcmdlLTEwLCAuZ3JpZC15ID4gLmxhcmdlLTExLCAuZ3JpZC15ID4gLmxhcmdlLTEyIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS1zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS0xIHtcbiAgICAgIGhlaWdodDogOC4zMzMzMyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTIge1xuICAgICAgaGVpZ2h0OiAxNi42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTMge1xuICAgICAgaGVpZ2h0OiAyNSU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTQge1xuICAgICAgaGVpZ2h0OiAzMy4zMzMzMyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTUge1xuICAgICAgaGVpZ2h0OiA0MS42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTYge1xuICAgICAgaGVpZ2h0OiA1MCU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTcge1xuICAgICAgaGVpZ2h0OiA1OC4zMzMzMyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTgge1xuICAgICAgaGVpZ2h0OiA2Ni42NjY2NyU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTkge1xuICAgICAgaGVpZ2h0OiA3NSU7IH1cbiAgICAuZ3JpZC15ID4gLmxhcmdlLTEwIHtcbiAgICAgIGhlaWdodDogODMuMzMzMzMlOyB9XG4gICAgLmdyaWQteSA+IC5sYXJnZS0xMSB7XG4gICAgICBoZWlnaHQ6IDkxLjY2NjY3JTsgfVxuICAgIC5ncmlkLXkgPiAubGFyZ2UtMTIge1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cblxuLmdyaWQtcGFkZGluZy15IC5ncmlkLXBhZGRpbmcteSB7XG4gIG1hcmdpbi10b3A6IC0wLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtcGFkZGluZy15IC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTAuOTM3NXJlbTsgfSB9XG5cbi5ncmlkLXBhZGRpbmcteSA+IC5jZWxsIHtcbiAgcGFkZGluZy10b3A6IDAuNjI1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1wYWRkaW5nLXkgPiAuY2VsbCB7XG4gICAgICBwYWRkaW5nLXRvcDogMC45Mzc1cmVtO1xuICAgICAgcGFkZGluZy1ib3R0b206IDAuOTM3NXJlbTsgfSB9XG5cbi5ncmlkLW1hcmdpbi15IHtcbiAgbWFyZ2luLXRvcDogLTAuNjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTAuOTM3NXJlbTsgfSB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmNlbGwge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5jZWxsIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXRvcDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtOyB9IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuYXV0byB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNocmluayB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEge1xuICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTIge1xuICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNCB7XG4gICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTUge1xuICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC02IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNyB7XG4gICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTAge1xuICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMSB7XG4gICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuYXV0byB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC01IHtcbiAgICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC02IHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC04IHtcbiAgICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLWF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLXNocmluayB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTMge1xuICAgICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTYge1xuICAgICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLWF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2Utc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTAge1xuICAgICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG5cbi5ncmlkLWZyYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDB2dzsgfVxuXG4uY2VsbCAuZ3JpZC1mcmFtZSB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jZWxsLWJsb2NrIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG5cbi5jZWxsLWJsb2NrLXkge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG5cbi5jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgLmNlbGwtYmxvY2stY29udGFpbmVyID4gLmdyaWQteCB7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiAxMDB2dzsgfVxuICAuY2VsbCAubWVkaXVtLWdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jayB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jay1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gICAgLm1lZGl1bS1jZWxsLWJsb2NrLWNvbnRhaW5lciA+IC5ncmlkLXgge1xuICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5tZWRpdW0tY2VsbC1ibG9jay15IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2UtZ3JpZC1mcmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgd2lkdGg6IDEwMHZ3OyB9XG4gIC5jZWxsIC5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubGFyZ2UtY2VsbC1ibG9jayB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyOyB9XG4gIC5sYXJnZS1jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgICAubGFyZ2UtY2VsbC1ibG9jay1jb250YWluZXIgPiAuZ3JpZC14IHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAubGFyZ2UtY2VsbC1ibG9jay15IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7IH0gfVxuXG4uZ3JpZC15LmdyaWQtZnJhbWUge1xuICB3aWR0aDogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGhlaWdodDogMTAwdmg7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmdyaWQteS5tZWRpdW0tZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiAxMDB2aDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5ncmlkLXkubGFyZ2UtZ3JpZC1mcmFtZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiAxMDB2aDsgfSB9XG5cbi5jZWxsIC5ncmlkLXkuZ3JpZC1mcmFtZSB7XG4gIGhlaWdodDogMTAwJTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY2VsbCAuZ3JpZC15Lm1lZGl1bS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY2VsbCAuZ3JpZC15LmxhcmdlLWdyaWQtZnJhbWUge1xuICAgIGhlaWdodDogMTAwJTsgfSB9XG5cbi5ncmlkLW1hcmdpbi15IHtcbiAgbWFyZ2luLXRvcDogLTAuNjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTAuOTM3NXJlbTsgfSB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLmNlbGwge1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS4yNXJlbSk7XG4gICAgbWFyZ2luLXRvcDogMC42MjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5jZWxsIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pO1xuICAgICAgbWFyZ2luLXRvcDogMC45Mzc1cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtOyB9IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuYXV0byB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNocmluayB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEge1xuICAgIGhlaWdodDogY2FsYyg4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTIge1xuICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNCB7XG4gICAgaGVpZ2h0OiBjYWxjKDMzLjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTUge1xuICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC02IHtcbiAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtNyB7XG4gICAgaGVpZ2h0OiBjYWxjKDU4LjMzMzMzJSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTgge1xuICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS4yNXJlbSk7IH1cbiAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTAge1xuICAgIGhlaWdodDogY2FsYyg4My4zMzMzMyUgLSAxLjI1cmVtKTsgfVxuICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMSB7XG4gICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuMjVyZW0pOyB9XG4gIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuMjVyZW0pOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuYXV0byB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zaHJpbmsge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0yIHtcbiAgICAgIGhlaWdodDogY2FsYygxNi42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0zIHtcbiAgICAgIGhlaWdodDogY2FsYygyNSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC01IHtcbiAgICAgIGhlaWdodDogY2FsYyg0MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC02IHtcbiAgICAgIGhlaWdodDogY2FsYyg1MCUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC04IHtcbiAgICAgIGhlaWdodDogY2FsYyg2Ni42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC05IHtcbiAgICAgIGhlaWdodDogY2FsYyg3NSUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5zbWFsbC0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAuc21hbGwtMTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDkxLjY2NjY3JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLnNtYWxsLTEyIHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLWF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLXNocmluayB7XG4gICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoOC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTMge1xuICAgICAgaGVpZ2h0OiBjYWxjKDI1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS00IHtcbiAgICAgIGhlaWdodDogY2FsYygzMy4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTYge1xuICAgICAgaGVpZ2h0OiBjYWxjKDUwJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS03IHtcbiAgICAgIGhlaWdodDogY2FsYyg1OC4zMzMzMyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDc1JSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLm1lZGl1bS0xMCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoODMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubWVkaXVtLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5tZWRpdW0tMTIge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxLjg3NXJlbSk7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLWF1dG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2Utc2hyaW5rIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMjUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMzMuMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNDEuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTAlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtNyB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNTguMzMzMzMlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOCB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNjYuNjY2NjclIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtOSB7XG4gICAgICBoZWlnaHQ6IGNhbGMoNzUlIC0gMS44NzVyZW0pOyB9XG4gICAgLmdyaWQtbWFyZ2luLXkgPiAubGFyZ2UtMTAge1xuICAgICAgaGVpZ2h0OiBjYWxjKDgzLjMzMzMzJSAtIDEuODc1cmVtKTsgfVxuICAgIC5ncmlkLW1hcmdpbi15ID4gLmxhcmdlLTExIHtcbiAgICAgIGhlaWdodDogY2FsYyg5MS42NjY2NyUgLSAxLjg3NXJlbSk7IH1cbiAgICAuZ3JpZC1tYXJnaW4teSA+IC5sYXJnZS0xMiB7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDEuODc1cmVtKTsgfSB9XG5cbi5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjI1cmVtKTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoICsgMS44NzVyZW0pOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZ3JpZC1mcmFtZS5ncmlkLW1hcmdpbi15IHtcbiAgICAgIGhlaWdodDogY2FsYygxMDB2aCArIDEuODc1cmVtKTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5ncmlkLW1hcmdpbi15Lm1lZGl1bS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjg3NXJlbSk7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZ3JpZC1tYXJnaW4teS5sYXJnZS1ncmlkLWZyYW1lIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggKyAxLjg3NXJlbSk7IH0gfVxuXG4ucmVzcG9uc2l2ZS1lbWJlZCxcbi5mbGV4LXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQgaWZyYW1lLFxuICAucmVzcG9uc2l2ZS1lbWJlZCBvYmplY3QsXG4gIC5yZXNwb25zaXZlLWVtYmVkIGVtYmVkLFxuICAucmVzcG9uc2l2ZS1lbWJlZCB2aWRlbyxcbiAgLmZsZXgtdmlkZW8gaWZyYW1lLFxuICAuZmxleC12aWRlbyBvYmplY3QsXG4gIC5mbGV4LXZpZGVvIGVtYmVkLFxuICAuZmxleC12aWRlbyB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAucmVzcG9uc2l2ZS1lbWJlZC53aWRlc2NyZWVuLFxuICAuZmxleC12aWRlby53aWRlc2NyZWVuIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlOyB9XG5cbi5tZW51IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm1lbnUgbGkge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm1lbnUgYSxcbiAgLm1lbnUgLmJ1dHRvbixcbiAgLm1lbnUgbGkuYnV0dG9uID4gYSxcbiAgLm1lbnUuZHJvcGRvd24gbGkuYnV0dG9uID4gYSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG4gIC5tZW51IGlucHV0LFxuICAubWVudSBzZWxlY3QsXG4gIC5tZW51IGEsXG4gIC5tZW51IGJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVudSBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZW51LCAubWVudS5ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVudS52ZXJ0aWNhbCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAubWVudS5leHBhbmRlZCBsaSB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICAubWVudS5zaW1wbGUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAubWVudS5zaW1wbGUgbGkgKyBsaSB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC5tZW51LnNpbXBsZSBhIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAubWVudS5tZWRpdW0taG9yaXpvbnRhbCB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgLm1lbnUubWVkaXVtLXZlcnRpY2FsIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5tZW51Lm1lZGl1bS1leHBhbmRlZCBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG4gICAgLm1lbnUubWVkaXVtLXNpbXBsZSBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAubWVudS5sYXJnZS1ob3Jpem9udGFsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAubWVudS5sYXJnZS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAubWVudS5sYXJnZS1leHBhbmRlZCBsaSB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9XG4gICAgLm1lbnUubGFyZ2Utc2ltcGxlIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuICAubWVudS5uZXN0ZWQge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAubWVudS5pY29ucyBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51Lmljb24tdG9wIGEsIC5tZW51Lmljb24tcmlnaHQgYSwgLm1lbnUuaWNvbi1ib3R0b20gYSwgLm1lbnUuaWNvbi1sZWZ0IGEge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLm1lbnUuaWNvbi1sZWZ0IGxpIGEge1xuICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIGltZyxcbiAgICAubWVudS5pY29uLWxlZnQgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tbGVmdCBsaSBhIHN2ZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07IH1cbiAgLm1lbnUuaWNvbi1yaWdodCBsaSBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudS5pY29uLXJpZ2h0IGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tcmlnaHQgbGkgYSBzdmcge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07IH1cbiAgLm1lbnUuaWNvbi10b3AgbGkgYSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpbWcsXG4gICAgLm1lbnUuaWNvbi10b3AgbGkgYSBpLFxuICAgIC5tZW51Lmljb24tdG9wIGxpIGEgc3ZnIHtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZW51Lmljb24tYm90dG9tIGxpIGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgaW1nLFxuICAgIC5tZW51Lmljb24tYm90dG9tIGxpIGEgaSxcbiAgICAubWVudS5pY29uLWJvdHRvbSBsaSBhIHN2ZyB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudSAuaXMtYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubWVudSAuYWN0aXZlID4gYSB7XG4gICAgYmFja2dyb3VuZDogIzE3NzliYTtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAubWVudS5hbGlnbi1sZWZ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQgbGkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC5tZW51LmFsaWduLXJpZ2h0IGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudS5hbGlnbi1yaWdodC52ZXJ0aWNhbCBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAubWVudS5hbGlnbi1yaWdodC52ZXJ0aWNhbCBsaSAuc3VibWVudSBsaSB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWVudS5hbGlnbi1yaWdodCAubmVzdGVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lbnUuYWxpZ24tY2VudGVyIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLm1lbnUuYWxpZ24tY2VudGVyIGxpIC5zdWJtZW51IGxpIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAubWVudSAubWVudS10ZXh0IHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDsgfVxuXG4ubWVudS1jZW50ZXJlZCA+IC5tZW51IHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5tZW51LWNlbnRlcmVkID4gLm1lbnUgbGkgLnN1Ym1lbnUgbGkge1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4ubWVudS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWVudS1pY29uOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjZmVmZWZlLCAwIDE0cHggMCAjZmVmZWZlO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5tZW51LWljb246aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2FjYWNhO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgI2NhY2FjYSwgMCAxNHB4IDAgI2NhY2FjYTsgfVxuXG4ubWVudS1pY29uLmRhcmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZW51LWljb24uZGFyazo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjMGEwYTBhO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgIzBhMGEwYSwgMCAxNHB4IDAgIzBhMGEwYTtcbiAgICBjb250ZW50OiAnJzsgfVxuICAubWVudS1pY29uLmRhcms6aG92ZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjOGE4YThhO1xuICAgIGJveC1zaGFkb3c6IDAgN3B4IDAgIzhhOGE4YSwgMCAxNHB4IDAgIzhhOGE4YTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgbGkge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gIHBhZGRpbmc6IDAuN3JlbSAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudSAubmVzdGVkLmlzLWFjY29yZGlvbi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUuYWxpZ24tcmlnaHQgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmFjY29yZGlvbi1tZW51IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudDpub3QoLmhhcy1zdWJtZW51LXRvZ2dsZSkgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1sZWZ0IC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIHJpZ2h0OiAxcmVtO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5hY2NvcmRpb24tbWVudS5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMXJlbTsgfVxuXG4uYWNjb3JkaW9uLW1lbnUgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uaGFzLXN1Ym1lbnUtdG9nZ2xlID4gYSB7XG4gIG1hcmdpbi1yaWdodDogNDBweDsgfVxuXG4uc3VibWVudS10b2dnbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuc3VibWVudS10b2dnbGU6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBtYXJnaW46IGF1dG87IH1cblxuLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCU7IH1cblxuLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50OyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IH1cblxuLmRyaWxsZG93biBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cblxuLmRyaWxsZG93biAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMTAwJTtcbiAgei1pbmRleDogLTE7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWFjdGl2ZSB7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuICAuZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuXG4uZHJpbGxkb3duIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5kcmlsbGRvd24gLmRyaWxsZG93bi1zdWJtZW51LWNvdmVyLXByZXZpb3VzIHtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuXG4uZHJpbGxkb3duIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5kcmlsbGRvd24gLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgcmlnaHQ6IDFyZW07IH1cblxuLmRyaWxsZG93bi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMxNzc5YmE7XG4gIHJpZ2h0OiAxcmVtO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcmlsbGRvd24uYWxpZ24tcmlnaHQgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDFyZW07IH1cblxuLmRyaWxsZG93biAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHJpZ2h0OiA1cHg7XG4gIGxlZnQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IC0zcHg7IH1cblxuW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5kcm9wZG93bi5tZW51IGEge1xuICBvdXRsaW5lOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkgPiBhIHtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1hY3RpdmUgPiBhIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiAjMTc3OWJhOyB9XG5cbi5uby1qcyAuZHJvcGRvd24ubWVudSB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmRyb3Bkb3duLm1lbnUgLm5lc3RlZC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAwOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgdG9wOiAwO1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIHJpZ2h0OiBhdXRvO1xuICBsZWZ0OiA1cHg7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzE3NzliYTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0taG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS5tZWRpdW0tdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzE3NzliYSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMxNzc5YmEgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogNXB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUuYWxpZ24tcmlnaHQgLmlzLWRyb3Bkb3duLXN1Ym1lbnUuZmlyc3Qtc3ViIHtcbiAgdG9wOiAxMDAlO1xuICByaWdodDogMDtcbiAgbGVmdDogYXV0bzsgfVxuXG4uaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxMDBweDsgfVxuICAuaXMtZHJvcGRvd24tbWVudS52ZXJ0aWNhbC5hbGlnbi1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgYTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogNXB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTZweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtaW5uZXIgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kOiAjZmVmZWZlOyB9XG4gIC5kcm9wZG93biAuaXMtZHJvcGRvd24tc3VibWVudSBhIHtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMXJlbTsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50Lm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMTc3OWJhIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDVweDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMTc3OWJhOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51ID4gbGkge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHZpc2liaWxpdHkgMC41cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjU0LCAyNTQsIDAuMjUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1jbG9zYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDEyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBlYXNlO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6ICNlNmU2ZTY7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vZmYtY2FudmFzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogMTI7IH1cbiAgLm9mZi1jYW52YXMuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAxMzsgfVxuICAgIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTAsIDEwLCAxMCwgMC43KTsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMtYWJzb2x1dGUge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB6LWluZGV4OiAxMjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy1jbG9zZWQge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEzOyB9XG4gICAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgxMCwgMTAsIDEwLCAwLjcpOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5wb3NpdGlvbi1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdpZHRoOiAyNTBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1sZWZ0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tbGVmdC5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tbGVmdC5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1sZWZ0LmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgLTEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aWR0aDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1yaWdodCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudC5pcy1vcGVuLXJpZ2h0Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1yaWdodC5pcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDEzcHggMCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MHB4KTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQuaXMtb3Blbi10b3AuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI1MHB4KTsgfVxuICAucG9zaXRpb24tdG9wLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMTNweCAyMHB4IC0xM3B4IHJnYmEoMTAsIDEwLCAxMCwgMC4yNSk7IH1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLm9mZi1jYW52YXMtY29udGVudCAub2ZmLWNhbnZhcy5wb3NpdGlvbi1ib3R0b20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5vZmYtY2FudmFzLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50LmlzLW9wZW4tYm90dG9tLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDEzcHggMjBweCAtMTNweCByZ2JhKDEwLCAxMCwgMTAsIDAuMjUpOyB9XG5cbi5vZmYtY2FudmFzLWNvbnRlbnQge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLW92ZXJsYXAsIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTsgfVxuICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5vZmYtY2FudmFzLWNvbnRlbnQgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLW1lZGl1bSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1sZWZ0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbWVkaXVtIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtdG9wIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMtY29udGVudCAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1ib3R0b20ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtbGVmdCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxMjtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC1yaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTI7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIC5jbG9zZS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLWNvbnRlbnQuaGFzLXJldmVhbC10b3Age1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50IC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy1jb250ZW50Lmhhcy1yZXZlYWwtYm90dG9tIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9XG4gICAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAgIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLXJpZ2h0LCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLW1lZGl1bS5wb3NpdGlvbi10b3AsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbWVkaXVtLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1tZWRpdW0gLmNsb3NlLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWxlZnQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tcmlnaHQsIC5vZmYtY2FudmFzLmluLWNhbnZhcy1mb3ItbGFyZ2UucG9zaXRpb24tdG9wLCAub2ZmLWNhbnZhcy5pbi1jYW52YXMtZm9yLWxhcmdlLnBvc2l0aW9uLWJvdHRvbSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci1sYXJnZSAuY2xvc2UtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uc3RpY2t5LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uc3RpY2t5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG5cbi5zdGlja3kuaXMtc3R1Y2sge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtdG9wIHtcbiAgICB0b3A6IDA7IH1cbiAgLnN0aWNreS5pcy1zdHVjay5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG4uc3RpY2t5LmlzLWFuY2hvcmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogYXV0bztcbiAgbGVmdDogYXV0bzsgfVxuICAuc3RpY2t5LmlzLWFuY2hvcmVkLmlzLWF0LWJvdHRvbSB7XG4gICAgYm90dG9tOiAwOyB9XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3Ljk5ODc1ZW0pIHtcbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTk4NzVlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pIHtcbiAgLmhpZGUtZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5zaG93LWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3OS45OTg3NWVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MGVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IH1cblxuLnNob3ctb24tZm9jdXM6YWN0aXZlLCAuc2hvdy1vbi1mb2N1czpmb2N1cyB7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGNsaXA6IGF1dG8gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50OyB9XG5cbi5zaG93LWZvci1sYW5kc2NhcGUsXG4uaGlkZS1mb3ItcG9ydHJhaXQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAgIC5oaWRlLWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uaGlkZS1mb3ItbGFuZHNjYXBlLFxuLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgICAuc2hvdy1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4uYWxpZ24tbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWxpZ24tanVzdGlmeSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4uYWxpZ24tc3BhY2VkIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLmFsaWduLWxlZnQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4uYWxpZ24tcmlnaHQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmFsaWduLWNlbnRlci52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uYWxpZ24tY2VudGVyLW1pZGRsZSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7IH1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTsgfVxuXG4uc21hbGwtb3JkZXItMiB7XG4gIG9yZGVyOiAyOyB9XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4uc21hbGwtb3JkZXItNSB7XG4gIG9yZGVyOiA1OyB9XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5tZWRpdW0tb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5tZWRpdW0tb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAubGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5sYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5sYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbi5mbGV4LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLmZsZXgtY2hpbGQtYXV0byB7XG4gIGZsZXg6IDEgMSBhdXRvOyB9XG5cbi5mbGV4LWNoaWxkLWdyb3cge1xuICBmbGV4OiAxIDAgYXV0bzsgfVxuXG4uZmxleC1jaGlsZC1zaHJpbmsge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4uZmxleC1kaXItcm93IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuXG4uZmxleC1kaXItcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cblxuLmZsZXgtZGlyLWNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5tZWRpdW0tZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmxhcmdlLWZsZXgtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC5sYXJnZS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH1cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAubGFyZ2UtZmxleC1kaXItY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1saXN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLXRyYWNrOmJlZm9yZSwgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlOyB9XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMyNDM4NEY7XG4gIGZvbnQtZmFtaWx5OiBcIkdvdGhhbSBIVEZcIjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI4NTc7IH1cblxuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXI6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyB9XG5cbmEge1xuICBjb2xvcjogIzI0Mzg0RjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjZzOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlIHtcbiAgICBjb2xvcjogIzI0Mzg0RjsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMS4yNXJlbTtcbiAgcGFkZGluZzogMDsgfVxuICBwICsgb2wsXG4gIHAgKyB1bCxcbiAgcCArIGgxLFxuICBwICsgaDIsXG4gIHAgKyBoMyxcbiAgcCArIGg0LFxuICBwICsgaDUsXG4gIHAgKyBoNixcbiAgcCArIGRpdiB7XG4gICAgbWFyZ2luLXRvcDogMS4yNXJlbTsgfVxuICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG51bCArIG9sLFxudWwgKyB1bCxcbnVsICsgaDEsXG51bCArIGgyLFxudWwgKyBoMyxcbnVsICsgaDQsXG51bCArIGg1LFxudWwgKyBoNixcbnVsICsgcCxcbnVsICsgZGl2LCBvbCArIG9sLFxub2wgKyB1bCxcbm9sICsgaDEsXG5vbCArIGgyLFxub2wgKyBoMyxcbm9sICsgaDQsXG5vbCArIGg1LFxub2wgKyBoNixcbm9sICsgcCxcbm9sICsgZGl2IHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTsgfVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG5idXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cbiAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtIEhURic7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Hb3RoYW1IVEYtVWx0cmEub3RmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dvdGhhbSBIVEYnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvR290aGFtSFRGLUJsYWNrLm90ZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW0gSFRGJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0dvdGhhbUhURi1Cb2xkLm90ZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW0gSFRGJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL0dvdGhhbUhURi1NZWRpdW0ub3RmXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dvdGhhbSBIVEYnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvR290aGFtSFRGLU1lZGl1bUl0YWxpYy5vdGZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtIEhURic7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Hb3RoYW1IVEYtQm9vay5vdGZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR290aGFtIEhURic7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9Hb3RoYW1IVEYtQm9va0l0YWxpYy5vdGZcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTXVzZW8gU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9NdXNlb1NhbnNfOTAwLm90ZlwiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNdXNlbyBTYW5zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL011c2VvU2Fuc183MDAub3RmXCIpOyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIkdvdGhhbSBIVEZcIjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBmb250LXdlaWdodDogOTAwOyB9XG5cbmgxLCAuaDEge1xuICBsaW5lLWhlaWdodDogMS4xODsgfVxuICBoMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDIuN3JlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBoMSwgLmgxIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKDQzLjJweCArIDEwLjggKiAoKDEwMHZ3IC0gNzY4cHgpIC8gMjU2KSk7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgaDEsIC5oMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMy4zNzVyZW07IH0gfVxuXG5oMiwgLmgyIHtcbiAgZm9udC1zaXplOiAxLjdyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBoMiwgLmgyIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygyNy4ycHggKyA2LjggKiAoKDEwMHZ3IC0gNzY4cHgpIC8gMjU2KSk7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoMiwgLmgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMi4xMjVyZW07IH0gfVxuXG5oMywgLmgzIHtcbiAgZm9udC1zaXplOiAxLjJyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBoMywgLmgzIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxOS4ycHggKyA0LjggKiAoKDEwMHZ3IC0gNzY4cHgpIC8gMjU2KSk7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoMywgLmgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9IH1cblxuaDQsIC5oNCB7XG4gIGZvbnQtc2l6ZTogMC45NDVyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBoNCwgLmg0IHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxNS4xMnB4ICsgMi44OCAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGg0LCAuaDQge1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfSB9XG5cbmg1LCAuaDUge1xuICBmb250LXNpemU6IDAuODRyZW07IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBoNSwgLmg1IHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxMy40NHB4ICsgMi41NiAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGg1LCAuaDUge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9IH1cblxuaDYsIC5oNiB7XG4gIGZvbnQtc2l6ZTogMC43NTI1cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgaDYsIC5oNiB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMTIuMDRweCArIDEuOTYgKiAoKDEwMHZ3IC0gNzY4cHgpIC8gMjU2KSk7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoNiwgLmg2IHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07IH0gfVxuXG4ucGFnZS10aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07IH1cblxuLmJnLWRhcmsge1xuICBjb2xvcjogI2ZmZjsgfVxuICAuYmctZGFyayBsYWJlbCxcbiAgLmJnLWRhcmsgYTpub3QoLmJ1dHRvbikge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5iZy1kYXJrIC5jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5iZy1kYXJrIC5tb2R1bGUuZm9ybSAuZ2Zvcm1fd3JhcHBlciAudmFsaWRhdGlvbl9tZXNzYWdlIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuYmctZGFyayAubW9kdWxlLmZvcm0gLmdmb3JtX3dyYXBwZXIgLnZhbGlkYXRpb25fZXJyb3Ige1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZjsgfVxuICAuYmctZGFyayAubW9kdWxlLmZvcm0gLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lcl9jaGVja2JveCAuZ2ZpZWxkX2NoZWNrYm94ID4gbGkgbGFiZWw6YmVmb3JlLFxuICAuYmctZGFyayAubW9kdWxlLmZvcm0gLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyAuZ2ZpZWxkX3JhZGlvID4gbGkgbGFiZWw6YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6ICNmZmY7IH1cbiAgLmJnLWRhcmsgLm1vZHVsZS5mb3JtIC5nZm9ybV93cmFwcGVyIHVsLmdmb3JtX2ZpZWxkcyBsaS5nZmllbGQgLmdpbnB1dF9jb250YWluZXJfY2hlY2tib3ggLmdmaWVsZF9jaGVja2JveCA+IGxpIGxhYmVsOmFmdGVyLFxuICAuYmctZGFyayAubW9kdWxlLmZvcm0gLmdmb3JtX3dyYXBwZXIgdWwuZ2Zvcm1fZmllbGRzIGxpLmdmaWVsZCAuZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyAuZ2ZpZWxkX3JhZGlvID4gbGkgbGFiZWw6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsgfVxuXG4uYmctaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG5cbi5iZy12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYmctdmlkZW8gLnZpZGVvLW92ZXJsYXkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5iZy12aWRlbyAudmlkZW8tb3ZlcmxheSB2aWRlbyB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG9iamVjdC1maXQ6IGZpbGw7IH1cbiAgLmJnLXZpZGVvID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7IH1cblxuLmJnLXZpZGVvIC5vdmVybGF5LFxuLmJnLWltYWdlIC5vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTsgfVxuXG4uYmctYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMyNDM4NEY7IH1cblxuLmNvbG9yLWdyZXkge1xuICBjb2xvcjogIzZDOTVBNzsgfVxuXG4uY29sb3ItcmVkIHtcbiAgY29sb3I6ICNEOTAwMTE7IH1cblxuLmNvbG9yLW9yYW5nZSB7XG4gIGNvbG9yOiAjRkZBMDE3OyB9XG5cbi5jb2xvci1ibHVlIHtcbiAgY29sb3I6ICMwMDkzRkY7IH1cblxuLmNvbG9yLXBpbmsge1xuICBjb2xvcjogI0U3MDBERDsgfVxuXG4uY29sb3ItZ3JlZW4ge1xuICBjb2xvcjogIzAwQTI0ODsgfVxuXG4uZnMxOCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7IH1cblxuLmZzMTYge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY4OyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wbC1tZC0xNTAge1xuICAgIHBhZGRpbmctbGVmdDogOS4zNzVyZW07IH0gfVxuXG4ucHVsbC10b3Age1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgW2NsYXNzXj1cImJnLVwiXSArIC5wdWxsLXRvcFtjbGFzc149XCJiZy1cIl0sXG4gIFtjbGFzcyo9XCJiZy1cIl0gKyAucHVsbC10b3BbY2xhc3MqPVwiYmctXCJdIHtcbiAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbi5wdWxsLWJvdHRvbSB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuICAucHVsbC1ib3R0b20gKyBbY2xhc3NePVwiYmctXCJdLFxuICAucHVsbC1ib3R0b20gKyBbY2xhc3MqPVwiYmctXCJdIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgW2NsYXNzXj1cImJnLVwiXSArIC5wdWxsLWJvdHRvbVtjbGFzc149XCJiZy1cIl0sXG4gIFtjbGFzcyo9XCJiZy1cIl0gKyAucHVsbC1ib3R0b21bY2xhc3MqPVwiYmctXCJdIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbi5wdWxsLXZlcnQge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuICAucHVsbC12ZXJ0ICsgW2NsYXNzXj1cImJnLVwiXSxcbiAgLnB1bGwtdmVydCArIFtjbGFzcyo9XCJiZy1cIl0ge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuICAucHVsbC12ZXJ0W2NsYXNzXj1cImJnLVwiXSwgLnB1bGwtdmVydFtjbGFzcyo9XCJiZy1cIl0ge1xuICAgIHBhZGRpbmctYm90dG9tOiA0LjVyZW07XG4gICAgcGFkZGluZy10b3A6IDQuNXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucHVsbC12ZXJ0W2NsYXNzXj1cImJnLVwiXSwgLnB1bGwtdmVydFtjbGFzcyo9XCJiZy1cIl0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAucHVsbC12ZXJ0W2NsYXNzXj1cImJnLVwiXSwgLnB1bGwtdmVydFtjbGFzcyo9XCJiZy1cIl0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNi4yNXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDYuMjVyZW07IH0gfVxuXG4uY29sbGFwc2UtdmVydCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDsgfVxuICAuY29sbGFwc2UtdmVydFtjbGFzc149XCJiZy1cIl0sIC5jb2xsYXBzZS12ZXJ0W2NsYXNzKj1cImJnLVwiXSB7XG4gICAgbWFyZ2luLXRvcDogMi4yNXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNvbGxhcHNlLXZlcnRbY2xhc3NePVwiYmctXCJdLCAuY29sbGFwc2UtdmVydFtjbGFzcyo9XCJiZy1cIl0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY29sbGFwc2UtdmVydFtjbGFzc149XCJiZy1cIl0sIC5jb2xsYXBzZS12ZXJ0W2NsYXNzKj1cImJnLVwiXSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMuMTI1cmVtOyB9IH1cbiAgLmNvbGxhcHNlLXZlcnQgKyBbY2xhc3NePVwiYmctXCJdLmNvbGxhcHNlLXZlcnQsXG4gIC5jb2xsYXBzZS12ZXJ0ICsgW2NsYXNzKj1cImJnLVwiXS5jb2xsYXBzZS12ZXJ0IHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7IH1cblxuLnB1c2gtdmVydCB7XG4gIG1hcmdpbi1ib3R0b206IDQuNXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiA0LjVyZW0gIWltcG9ydGFudDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5wdXNoLXZlcnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXJlbSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXRvcDogNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucHVzaC12ZXJ0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDYuMjVyZW0gIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6IDYuMjVyZW0gIWltcG9ydGFudDsgfSB9XG4gIC5wdXNoLXZlcnRbY2xhc3NePVwiYmctXCJdLCAucHVzaC12ZXJ0W2NsYXNzKj1cImJnLVwiXSB7XG4gICAgcGFkZGluZy1ib3R0b206IDQuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctdG9wOiA0LjVyZW0gIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucHVzaC12ZXJ0W2NsYXNzXj1cImJnLVwiXSwgLnB1c2gtdmVydFtjbGFzcyo9XCJiZy1cIl0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLXRvcDogNXJlbSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnB1c2gtdmVydFtjbGFzc149XCJiZy1cIl0sIC5wdXNoLXZlcnRbY2xhc3MqPVwiYmctXCJdIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDYuMjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDYuMjVyZW0gIWltcG9ydGFudDsgfSB9XG5cbi5hbGlnbi1iYXNlbGluZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi10b3Age1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLW1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi10ZXh0LWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbSAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi10ZXh0LXRvcCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDsgfVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4uZmxvYXQtbm9uZSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmQtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cblxuLmQtaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmQtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5kLWdyaWQge1xuICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7IH1cblxuLmQtdGFibGUge1xuICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG5cbi5kLXRhYmxlLXJvdyB7XG4gIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG5cbi5kLXRhYmxlLWNlbGwge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cblxuLmQtZmxleCB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxuXG4uZC1pbmxpbmUtZmxleCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH1cblxuLmQtbm9uZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZmxleC1maWxsIHtcbiAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDsgfVxuXG4uZmxleC1yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cblxuLmZsZXgtY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXJvdy1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cblxuLmZsZXgtY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxuXG4uZmxleC1ncm93LTAge1xuICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDsgfVxuXG4uZmxleC1ncm93LTEge1xuICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDsgfVxuXG4uZmxleC1zaHJpbmstMCB7XG4gIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7IH1cblxuLmZsZXgtc2hyaW5rLTEge1xuICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXdyYXAge1xuICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxuXG4uZmxleC1ub3dyYXAge1xuICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXdyYXAtcmV2ZXJzZSB7XG4gIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cblxuLmp1c3RpZnktY29udGVudC1zdGFydCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG5cbi5qdXN0aWZ5LWNvbnRlbnQtZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG5cbi5qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4uanVzdGlmeS1jb250ZW50LWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxuXG4uanVzdGlmeS1jb250ZW50LWFyb3VuZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cblxuLmp1c3RpZnktY29udGVudC1ldmVubHkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1pdGVtcy1zdGFydCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWl0ZW1zLWVuZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1pdGVtcy1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWl0ZW1zLWJhc2VsaW5lIHtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWl0ZW1zLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1jb250ZW50LXN0YXJ0IHtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1jb250ZW50LWVuZCB7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWNvbnRlbnQtY2VudGVyIHtcbiAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWNvbnRlbnQtYmV0d2VlbiB7XG4gIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tY29udGVudC1hcm91bmQge1xuICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tY29udGVudC1zdHJldGNoIHtcbiAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1zZWxmLWF1dG8ge1xuICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLXNlbGYtc3RhcnQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLXNlbGYtZW5kIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tc2VsZi1jZW50ZXIge1xuICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tc2VsZi1iYXNlbGluZSB7XG4gIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLXNlbGYtc3RyZXRjaCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxuXG4ub3JkZXItZmlyc3Qge1xuICBvcmRlcjogLTEgIWltcG9ydGFudDsgfVxuXG4ub3JkZXItMCB7XG4gIG9yZGVyOiAwICFpbXBvcnRhbnQ7IH1cblxuLm9yZGVyLTEge1xuICBvcmRlcjogMSAhaW1wb3J0YW50OyB9XG5cbi5vcmRlci0yIHtcbiAgb3JkZXI6IDIgIWltcG9ydGFudDsgfVxuXG4ub3JkZXItMyB7XG4gIG9yZGVyOiAzICFpbXBvcnRhbnQ7IH1cblxuLm9yZGVyLTQge1xuICBvcmRlcjogNCAhaW1wb3J0YW50OyB9XG5cbi5vcmRlci01IHtcbiAgb3JkZXI6IDUgIWltcG9ydGFudDsgfVxuXG4ub3JkZXItbGFzdCB7XG4gIG9yZGVyOiA2ICFpbXBvcnRhbnQ7IH1cblxuLnRleHQtbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsgfVxuXG4udGV4dC1jYXBpdGFsaXplIHtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemUgIWltcG9ydGFudDsgfVxuXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4udmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuLmZsb2F0LXNtLWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1zbS1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1zbS1ub25lIHtcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZC1zbS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxuXG4uZC1zbS1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgfVxuXG4uZC1zbS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cblxuLmQtc20tZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsgfVxuXG4uZC1zbS10YWJsZSB7XG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cblxuLmQtc20tdGFibGUtcm93IHtcbiAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cblxuLmQtc20tdGFibGUtY2VsbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4uZC1zbS1mbGV4IHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyB9XG5cbi5kLXNtLWlubGluZS1mbGV4IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfVxuXG4uZC1zbS1ub25lIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXNtLWZpbGwge1xuICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXNtLXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDsgfVxuXG4uZmxleC1zbS1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH1cblxuLmZsZXgtc20tcm93LXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDsgfVxuXG4uZmxleC1zbS1jb2x1bW4tcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXNtLWdyb3ctMCB7XG4gIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXNtLWdyb3ctMSB7XG4gIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXNtLXNocmluay0wIHtcbiAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsgfVxuXG4uZmxleC1zbS1zaHJpbmstMSB7XG4gIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7IH1cblxuLmZsZXgtc20td3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OyB9XG5cbi5mbGV4LXNtLW5vd3JhcCB7XG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7IH1cblxuLmZsZXgtc20td3JhcC1yZXZlcnNlIHtcbiAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsgfVxuXG4uanVzdGlmeS1jb250ZW50LXNtLXN0YXJ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cblxuLmp1c3RpZnktY29udGVudC1zbS1lbmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cblxuLmp1c3RpZnktY29udGVudC1zbS1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XG5cbi5qdXN0aWZ5LWNvbnRlbnQtc20tYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XG5cbi5qdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxuXG4uanVzdGlmeS1jb250ZW50LXNtLWV2ZW5seSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWl0ZW1zLXNtLXN0YXJ0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24taXRlbXMtc20tZW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWl0ZW1zLXNtLWNlbnRlciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24taXRlbXMtc20tYmFzZWxpbmUge1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24taXRlbXMtc20tc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWNvbnRlbnQtc20tc3RhcnQge1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLWNvbnRlbnQtc20tZW5kIHtcbiAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tY29udGVudC1zbS1jZW50ZXIge1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tY29udGVudC1zbS1iZXR3ZWVuIHtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1jb250ZW50LXNtLWFyb3VuZCB7XG4gIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2gge1xuICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cblxuLmFsaWduLXNlbGYtc20tYXV0byB7XG4gIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tc2VsZi1zbS1zdGFydCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tc2VsZi1zbS1lbmQge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1zZWxmLXNtLWNlbnRlciB7XG4gIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XG5cbi5hbGlnbi1zZWxmLXNtLWJhc2VsaW5lIHtcbiAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxuXG4uYWxpZ24tc2VsZi1zbS1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG5cbi5vcmRlci1zbS1maXJzdCB7XG4gIG9yZGVyOiAtMSAhaW1wb3J0YW50OyB9XG5cbi5vcmRlci1zbS0wIHtcbiAgb3JkZXI6IDAgIWltcG9ydGFudDsgfVxuXG4ub3JkZXItc20tMSB7XG4gIG9yZGVyOiAxICFpbXBvcnRhbnQ7IH1cblxuLm9yZGVyLXNtLTIge1xuICBvcmRlcjogMiAhaW1wb3J0YW50OyB9XG5cbi5vcmRlci1zbS0zIHtcbiAgb3JkZXI6IDMgIWltcG9ydGFudDsgfVxuXG4ub3JkZXItc20tNCB7XG4gIG9yZGVyOiA0ICFpbXBvcnRhbnQ7IH1cblxuLm9yZGVyLXNtLTUge1xuICBvcmRlcjogNSAhaW1wb3J0YW50OyB9XG5cbi5vcmRlci1zbS1sYXN0IHtcbiAgb3JkZXI6IDYgIWltcG9ydGFudDsgfVxuXG4udGV4dC1zbS1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LXNtLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuXG4udGV4dC1zbS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5mbG9hdC1tZC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC5mbG9hdC1tZC1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLmZsb2F0LW1kLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmQtbWQtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxuICAuZC1tZC1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XG4gIC5kLW1kLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5kLW1kLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsgfVxuICAuZC1tZC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAuZC1tZC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC5kLW1kLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAuZC1tZC1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQtbWQtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQtbWQtbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LW1kLWZpbGwge1xuICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbWQtcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbWQtY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbWQtcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LW1kLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAuZmxleC1tZC1ncm93LTAge1xuICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LW1kLWdyb3ctMSB7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbWQtc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbWQtc2hyaW5rLTEge1xuICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbWQtd3JhcCB7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbWQtbm93cmFwIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LW1kLXdyYXAtcmV2ZXJzZSB7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LW1kLWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtYmV0d2VlbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC1tZC1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC1tZC1ldmVubHkge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWl0ZW1zLW1kLXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy1tZC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy1tZC1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAuYWxpZ24taXRlbXMtbWQtYmFzZWxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy1tZC1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LW1kLXN0YXJ0IHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtZW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LW1kLWNlbnRlciB7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtYmV0d2VlbiB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LW1kLWFyb3VuZCB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaCB7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLW1kLWF1dG8ge1xuICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi1tZC1zdGFydCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLW1kLWVuZCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi1tZC1jZW50ZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLW1kLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLW1kLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxuICAub3JkZXItbWQtZmlyc3Qge1xuICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1tZC0wIHtcbiAgICBvcmRlcjogMCAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1tZC0xIHtcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1tZC0yIHtcbiAgICBvcmRlcjogMiAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1tZC0zIHtcbiAgICBvcmRlcjogMyAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1tZC00IHtcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1tZC01IHtcbiAgICBvcmRlcjogNSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1tZC1sYXN0IHtcbiAgICBvcmRlcjogNiAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LW1kLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudGV4dC1tZC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudGV4dC1tZC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuZmxvYXQtbGctc3RhcnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLmZsb2F0LWxnLWVuZCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLmZsb2F0LWxnLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmQtbGctaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxuICAuZC1sZy1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XG4gIC5kLWxnLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5kLWxnLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsgfVxuICAuZC1sZy10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAuZC1sZy10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC5kLWxnLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAuZC1sZy1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQtbGctaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQtbGctbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LWxnLWZpbGwge1xuICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbGctcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbGctY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbGctcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LWxnLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAuZmxleC1sZy1ncm93LTAge1xuICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LWxnLWdyb3ctMSB7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbGctc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbGctc2hyaW5rLTEge1xuICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbGctd3JhcCB7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgtbGctbm93cmFwIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LWxnLXdyYXAtcmV2ZXJzZSB7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LWxnLWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctYmV0d2VlbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC1sZy1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC1sZy1ldmVubHkge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWl0ZW1zLWxnLXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy1sZy1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy1sZy1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAuYWxpZ24taXRlbXMtbGctYmFzZWxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy1sZy1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LWxnLXN0YXJ0IHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQtbGctZW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LWxnLWNlbnRlciB7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQtbGctYmV0d2VlbiB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LWxnLWFyb3VuZCB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQtbGctc3RyZXRjaCB7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLWxnLWF1dG8ge1xuICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi1sZy1zdGFydCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLWxnLWVuZCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi1sZy1jZW50ZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLWxnLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLWxnLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxuICAub3JkZXItbGctZmlyc3Qge1xuICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1sZy0wIHtcbiAgICBvcmRlcjogMCAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1sZy0xIHtcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1sZy0yIHtcbiAgICBvcmRlcjogMiAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1sZy0zIHtcbiAgICBvcmRlcjogMyAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1sZy00IHtcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1sZy01IHtcbiAgICBvcmRlcjogNSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci1sZy1sYXN0IHtcbiAgICBvcmRlcjogNiAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LWxnLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudGV4dC1sZy1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudGV4dC1sZy1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODBlbSkge1xuICAuZmxvYXQteGwtc3RhcnQge1xuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7IH1cbiAgLmZsb2F0LXhsLWVuZCB7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLmZsb2F0LXhsLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmQteGwtaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxuICAuZC14bC1pbmxpbmUtYmxvY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XG4gIC5kLXhsLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5kLXhsLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsgfVxuICAuZC14bC10YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICAuZC14bC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC5kLXhsLXRhYmxlLWNlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAuZC14bC1mbGV4IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQteGwtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQteGwtbm9uZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LXhsLWZpbGwge1xuICAgIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteGwtcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteGwtY29sdW1uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteGwtcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LXhsLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAuZmxleC14bC1ncm93LTAge1xuICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LXhsLWdyb3ctMSB7XG4gICAgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteGwtc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteGwtc2hyaW5rLTEge1xuICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteGwtd3JhcCB7XG4gICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteGwtbm93cmFwIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LXhsLXdyYXAtcmV2ZXJzZSB7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LXhsLXN0YXJ0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LXhsLWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtYmV0d2VlbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC14bC1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC14bC1ldmVubHkge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWl0ZW1zLXhsLXN0YXJ0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy14bC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy14bC1jZW50ZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAuYWxpZ24taXRlbXMteGwtYmFzZWxpbmUge1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy14bC1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LXhsLXN0YXJ0IHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQteGwtZW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LXhsLWNlbnRlciB7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQteGwtYmV0d2VlbiB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LXhsLWFyb3VuZCB7XG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQteGwtc3RyZXRjaCB7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLXhsLWF1dG8ge1xuICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi14bC1zdGFydCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLXhsLWVuZCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi14bC1jZW50ZXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLXhsLWJhc2VsaW5lIHtcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLXhsLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxuICAub3JkZXIteGwtZmlyc3Qge1xuICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14bC0wIHtcbiAgICBvcmRlcjogMCAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14bC0xIHtcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14bC0yIHtcbiAgICBvcmRlcjogMiAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14bC0zIHtcbiAgICBvcmRlcjogMyAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14bC00IHtcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14bC01IHtcbiAgICBvcmRlcjogNSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14bC1sYXN0IHtcbiAgICBvcmRlcjogNiAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LXhsLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudGV4dC14bC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsgfVxuICAudGV4dC14bC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTZlbSkge1xuICAuZmxvYXQteHhsLXN0YXJ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gIC5mbG9hdC14eGwtZW5kIHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDsgfVxuICAuZmxvYXQteHhsLW5vbmUge1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmQteHhsLWlubGluZSB7XG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cbiAgLmQteHhsLWlubGluZS1ibG9jayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLmQteHhsLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5kLXh4bC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7IH1cbiAgLmQteHhsLXRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gIC5kLXh4bC10YWJsZS1yb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gIC5kLXh4bC10YWJsZS1jZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgLmQteHhsLWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxuICAuZC14eGwtaW5saW5lLWZsZXgge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLmQteHhsLW5vbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuZmxleC14eGwtZmlsbCB7XG4gICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDsgfVxuICAuZmxleC14eGwtcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteHhsLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LXh4bC1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteHhsLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDsgfVxuICAuZmxleC14eGwtZ3Jvdy0wIHtcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDsgfVxuICAuZmxleC14eGwtZ3Jvdy0xIHtcbiAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDsgfVxuICAuZmxleC14eGwtc2hyaW5rLTAge1xuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmZsZXgteHhsLXNocmluay0xIHtcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LXh4bC13cmFwIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxuICAuZmxleC14eGwtbm93cmFwIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyB9XG4gIC5mbGV4LXh4bC13cmFwLXJldmVyc2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC14eGwtc3RhcnQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteHhsLWVuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5qdXN0aWZ5LWNvbnRlbnQteHhsLWNlbnRlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LXh4bC1iZXR3ZWVuIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxuICAuanVzdGlmeS1jb250ZW50LXh4bC1hcm91bmQge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgLmp1c3RpZnktY29udGVudC14eGwtZXZlbmx5IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy14eGwtc3RhcnQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWl0ZW1zLXh4bC1lbmQge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1pdGVtcy14eGwtY2VudGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWl0ZW1zLXh4bC1iYXNlbGluZSB7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWl0ZW1zLXh4bC1zdHJldGNoIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LXh4bC1zdGFydCB7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1jb250ZW50LXh4bC1lbmQge1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQteHhsLWNlbnRlciB7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLWNvbnRlbnQteHhsLWJldHdlZW4ge1xuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsgfVxuICAuYWxpZ24tY29udGVudC14eGwtYXJvdW5kIHtcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDsgfVxuICAuYWxpZ24tY29udGVudC14eGwtc3RyZXRjaCB7XG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIC5hbGlnbi1zZWxmLXh4bC1hdXRvIHtcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLXNlbGYteHhsLXN0YXJ0IHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLXNlbGYteHhsLWVuZCB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi14eGwtY2VudGVyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAuYWxpZ24tc2VsZi14eGwtYmFzZWxpbmUge1xuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7IH1cbiAgLmFsaWduLXNlbGYteHhsLXN0cmV0Y2gge1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDsgfVxuICAub3JkZXIteHhsLWZpcnN0IHtcbiAgICBvcmRlcjogLTEgIWltcG9ydGFudDsgfVxuICAub3JkZXIteHhsLTAge1xuICAgIG9yZGVyOiAwICFpbXBvcnRhbnQ7IH1cbiAgLm9yZGVyLXh4bC0xIHtcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14eGwtMiB7XG4gICAgb3JkZXI6IDIgIWltcG9ydGFudDsgfVxuICAub3JkZXIteHhsLTMge1xuICAgIG9yZGVyOiAzICFpbXBvcnRhbnQ7IH1cbiAgLm9yZGVyLXh4bC00IHtcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50OyB9XG4gIC5vcmRlci14eGwtNSB7XG4gICAgb3JkZXI6IDUgIWltcG9ydGFudDsgfVxuICAub3JkZXIteHhsLWxhc3Qge1xuICAgIG9yZGVyOiA2ICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQteHhsLWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAudGV4dC14eGwtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQteHhsLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IH0gfVxuXG4uZ3JpZC1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDc0LjM3NXJlbTtcbiAgcGFkZGluZzogMCAxLjU2MjVyZW07IH1cblxuLm9mZi1jYW52YXMge1xuICBiYWNrZ3JvdW5kOiAjMjQzODRmO1xuICBjb2xvcjogI2ZmZjtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnM7XG4gIHBhZGRpbmc6IDcuNXJlbSAxLjU2MjVyZW0gMy4xMjVyZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5vZmYtY2FudmFzIGE6bGluayxcbiAgLm9mZi1jYW52YXMgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgLm9mZi1jYW52YXMgLm1lbnUgYSB7XG4gICAgcGFkZGluZzogMDsgfVxuICAub2ZmLWNhbnZhcyAubWVudS5kcmlsbGRvd24ge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIC5vZmYtY2FudmFzIC5tZW51IC5tZW51LWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vZmYtY2FudmFzIC5hY2NvcmRpb24tbWVudSA+IGxpID4gYSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuNXJlbTsgfVxuICAub2ZmLWNhbnZhcyAuYWNjb3JkaW9uLW1lbnUgPiBsaS5jdXJyZW50LW1lbnUtaXRlbSA+IGEge1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH1cbiAgLm9mZi1jYW52YXMgLmFjY29yZGlvbi1tZW51ID4gbGkgLnN1Ym1lbnUtdG9nZ2xlIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7IH1cbiAgICAub2ZmLWNhbnZhcyAuYWNjb3JkaW9uLW1lbnUgPiBsaSAuc3VibWVudS10b2dnbGU6YWZ0ZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB3aWR0aD0nMTEuNnB4JyBoZWlnaHQ9JzdweCcgdmlld0JveD0nMCAwIDExLjYgNycgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTEuNiA3OycgeG1sOnNwYWNlPSdwcmVzZXJ2ZSclM0UlM0Nwb2x5Z29uIHBvaW50cz0nNi4xLDcgMCwwLjkgMC45LDAgNi4xLDUuMiAxMC43LDAuNyAxMS42LDEuNicgZmlsbD0nJTIzZmZmJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICBoZWlnaHQ6IDAuNDM3NXJlbTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsgfVxuICAub2ZmLWNhbnZhcyAuYWNjb3JkaW9uLW1lbnUgPiBsaSB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07IH1cbiAgICAub2ZmLWNhbnZhcyAuYWNjb3JkaW9uLW1lbnUgPiBsaSB1bCBsaSBhIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg3NXJlbTsgfVxuICAub2ZmLWNhbnZhcyAuY2xvc2UtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEuMjVyZW07XG4gICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEuODc1cmVtO1xuICAgIHRvcDogMS4yNXJlbTsgfVxuICAgIC5vZmYtY2FudmFzIC5jbG9zZS1idXR0b246YWZ0ZXIsIC5vZmYtY2FudmFzIC5jbG9zZS1idXR0b246YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMC4xODc1cmVtO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTsgfVxuICAgIC5vZmYtY2FudmFzIC5jbG9zZS1idXR0b246YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIC5vZmYtY2FudmFzIC5jbG9zZS1idXR0b246YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAub2ZmLWNhbnZhcyAuaGVhZGVyLWNhbGwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLm9mZi1jYW52YXMtd3JhcHBlciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gIHotaW5kZXg6IDk5OTk7IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLnNpdGUtaGVhZGVyIHtcbiAgcGFkZGluZzogMS4yNXJlbSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNENUQ1RDU7XG4gIHotaW5kZXg6IDk5OTk7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2l0ZS1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMS44NzVyZW0gMCAxLjI1cmVtOyB9IH1cblxuLmhlYWRlci1jYWxsIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBcIk11c2VvIFNhbnNcIjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29sb3I6ICNDNTAwMTA7XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gIC5oZWFkZXItY2FsbCB7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5oZWFkZXItY2FsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICsgOSAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAuaGVhZGVyLWNhbGwge1xuICAgICAgICBmb250LXNpemU6IDEuNTYyNXJlbTsgfSB9XG4gIC5oZWFkZXItY2FsbCBhIHtcbiAgICBjb2xvcjogI0M1MDAxMCAhaW1wb3J0YW50OyB9XG5cbmZvb3Rlci5zaXRlLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICNENUQ1RDU7XG4gIHBhZGRpbmc6IDMuNzVyZW0gMDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4zMTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIGZvb3Rlci5zaXRlLWZvb3RlciB7XG4gICAgICBwYWRkaW5nOiA3LjVyZW0gMDsgfSB9XG4gIGZvb3Rlci5zaXRlLWZvb3RlciAuZm9vdGVyLWxvZ29zIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG8gMS4yNXJlbTsgfVxuICBmb290ZXIuc2l0ZS1mb290ZXIgLmZvb3Rlci1icmFuZC1sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0byA0LjM3NXJlbTtcbiAgICBtYXgtd2lkdGg6IDEyLjY4NzVyZW07XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgZm9vdGVyLnNpdGUtZm9vdGVyIC5mb290ZXItdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTsgfVxuICAgIGZvb3Rlci5zaXRlLWZvb3RlciAuZm9vdGVyLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIGZvb3Rlci5zaXRlLWZvb3RlciAuZm9vdGVyLXRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IGNhbGMoMThweCArIDYgKiAoKDEwMHZ3IC0gNzY4cHgpIC8gMjU2KSk7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIGZvb3Rlci5zaXRlLWZvb3RlciAuZm9vdGVyLXRpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTsgfSB9XG4gICAgZm9vdGVyLnNpdGUtZm9vdGVyIC5mb290ZXItdGl0bGUuYm9yZGVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmVmZWZlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuNTYyNXJlbTsgfVxuICBmb290ZXIuc2l0ZS1mb290ZXIgZGl2ICsgLmZvb3Rlci10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMS4yNXJlbTsgfVxuICBmb290ZXIuc2l0ZS1mb290ZXIgLmZvb3Rlci1jb250YWN0IHtcbiAgICBsaW5lLWhlaWdodDogMS43NTsgfVxuICBmb290ZXIuc2l0ZS1mb290ZXIgLmZvb3Rlci1sb2NhdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbWFyZ2luLXRvcDogMi44MTI1cmVtOyB9XG4gICAgZm9vdGVyLnNpdGUtZm9vdGVyIC5mb290ZXItbG9jYXRpb24gLmljb24tbWFwIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbi1tYXAuc3ZnKSBuby1yZXBlYXQ7XG4gICAgICB3aWR0aDogMS42ODc1cmVtO1xuICAgICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIGZvb3Rlci5zaXRlLWZvb3RlciAuY29weXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMS41NjI1cmVtOyB9XG4gIGZvb3Rlci5zaXRlLWZvb3RlciAubWVudSBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG4gIGZvb3Rlci5zaXRlLWZvb3RlciAubWVudSBhIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45OTg3NWVtKSB7XG4gICAgZm9vdGVyLnNpdGUtZm9vdGVyIC5jZWxsICsgLmNlbGwge1xuICAgICAgbWFyZ2luLXRvcDogMS44NzVyZW07IH0gfVxuXG4uYnV0dG9uLCAubWVudSBsaS5idXR0b24gPiBhLFxuLm1lbnUuZHJvcGRvd24gbGkuYnV0dG9uID4gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogIzI0Mzg0RjtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXI6IDA7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuNnMsIGJhY2tncm91bmQgMC42cywgYm9yZGVyLWNvbG9yIDAuNnM7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDEuODc1cmVtO1xuICBtaW4taGVpZ2h0OiAzLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgYm9yZGVyLXJhZGl1czogMy43NXJlbTsgfVxuICAuYnV0dG9uLCAubWVudSBsaS5idXR0b24gPiBhLFxuICAubWVudS5kcm9wZG93biBsaS5idXR0b24gPiBhIHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5idXR0b24sIC5tZW51IGxpLmJ1dHRvbiA+IGEsXG4gICAgICAubWVudS5kcm9wZG93biBsaS5idXR0b24gPiBhIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKDE0cHggKyA0ICogKCgxMDB2dyAtIDc2OHB4KSAvIDI1NikpOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5idXR0b24sIC5tZW51IGxpLmJ1dHRvbiA+IGEsXG4gICAgICAubWVudS5kcm9wZG93biBsaS5idXR0b24gPiBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmJ1dHRvbiwgLm1lbnUgbGkuYnV0dG9uID4gYSxcbiAgICAubWVudS5kcm9wZG93biBsaS5idXR0b24gPiBhIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTsgfSB9XG4gIC5idXR0b246aG92ZXIsIC5tZW51IGxpLmJ1dHRvbiA+IGE6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICNDNTAwMTA7IH1cbiAgLmJ1dHRvbjpmb2N1cywgLm1lbnUgbGkuYnV0dG9uID4gYTpmb2N1cywgLmJ1dHRvbjphY3RpdmUsIC5tZW51IGxpLmJ1dHRvbiA+IGE6YWN0aXZlIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5idXR0b246ZGlzYWJsZWQsIC5tZW51IGxpLmJ1dHRvbiA+IGE6ZGlzYWJsZWQsIC5idXR0b24uZGlzYWJsZWQsIC5tZW51IGxpLmJ1dHRvbiA+IGEuZGlzYWJsZWQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5idXR0b24uc2Vjb25kYXJ5LCAubWVudSBsaS5idXR0b24gPiBhLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogI0M1MDAxMDsgfVxuICAgIC5idXR0b24uc2Vjb25kYXJ5OmhvdmVyLCAubWVudSBsaS5idXR0b24gPiBhLnNlY29uZGFyeTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMjQzODRGOyB9XG4gIC5idXR0b24ubGFyZ2UsIC5tZW51IGxpLmJ1dHRvbiA+IGEubGFyZ2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAuYnV0dG9uLmxhcmdlLCAubWVudSBsaS5idXR0b24gPiBhLmxhcmdlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5idXR0b24ubGFyZ2UsIC5tZW51IGxpLmJ1dHRvbiA+IGEubGFyZ2Uge1xuICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygyMnB4ICsgMTQgKiAoKDEwMHZ3IC0gNzY4cHgpIC8gMjU2KSk7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgIC5idXR0b24ubGFyZ2UsIC5tZW51IGxpLmJ1dHRvbiA+IGEubGFyZ2Uge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMi4yNXJlbTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5idXR0b24ubGFyZ2UsIC5tZW51IGxpLmJ1dHRvbiA+IGEubGFyZ2Uge1xuICAgICAgICBtaW4taGVpZ2h0OiA0LjA2MjVyZW07IH0gfVxuXG4uYnJhbmQgaW1nLFxuLmJyYW5kIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiA1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJyYW5kIGltZyxcbiAgICAuYnJhbmQgc3ZnIHtcbiAgICAgIG1heC13aWR0aDogMTEuMzc1cmVtOyB9IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaSA+IGEsXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWFjdGl2ZSA+IGEsXG4ubWVudSAuYWN0aXZlID4gYSB7XG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5tZW51IGxpLmJ1dHRvbixcbi5tZW51ID4gbGkuYnV0dG9uLFxuLm1lbnUuZHJvcGRvd24gbGkuYnV0dG9uLFxuLm1lbnUuZHJvcGRvd24gPiBsaS5idXR0b24ge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5tZW51LmRyb3Bkb3duID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuICAubWVudS5kcm9wZG93biA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnUuZHJvcGRvd24gPiBsaSB1bCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMHB4KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4sIHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4sIHZpc2liaWxpdHkgMC4zcyBlYXNlLWluOyB9XG5cbi5tZW51LmRyb3Bkb3duID4gbGkuaXMtYWN0aXZlIHVsIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuLnByaW1hcnktbmF2aWdhdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogIzE2MTYxNTsgfVxuICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjQzUwMDEwOyB9XG4gICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSB7XG4gICAgICBtYXJnaW4tbGVmdDogMS44NzVyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS41NjI1cmVtO1xuICAgICAgcG9zaXRpb246IHN0YXRpYzsgfVxuICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NS42MjVlbSkge1xuICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogNC4zNzVyZW07IH0gfVxuICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpID4gYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICMxNjE2MTU7IH1cbiAgICAgIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkuY3VycmVudC1tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCAuY2lyY2xlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogNC42ODc1cmVtO1xuICAgICAgICBoZWlnaHQ6IDQuNjg3NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgICAgICAgYm94LXNoYWRvdzogM3B4IDRweCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTAuOTM3NXJlbTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGxlZnQ6IDYwJTsgfVxuICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgd2lkdGg9JzExLjZweCcgaGVpZ2h0PSc3cHgnIHZpZXdCb3g9JzAgMCAxMS42IDcnIHN0eWxlPSdlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDExLjYgNzsnIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDcG9seWdvbiBwb2ludHM9JzYuMSw3IDAsMC45IDAuOSwwIDYuMSw1LjIgMTAuNywwLjcgMTEuNiwxLjYnIGZpbGw9JyUyMzE2MTYxNScvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgd2lkdGg6IDAuNzVyZW07XG4gICAgICAgIGhlaWdodDogMC40Mzc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJvdHRvbTogLTEuMjVyZW07XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTAuMzc1cmVtO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+IGEge1xuICAgICAgICBjb2xvcjogIzE2MTYxNTsgfVxuICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50OmhvdmVyID4gYTphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgd2lkdGg9JzExLjZweCcgaGVpZ2h0PSc3cHgnIHZpZXdCb3g9JzAgMCAxMS42IDcnIHN0eWxlPSdlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDExLjYgNzsnIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDcG9seWdvbiBwb2ludHM9JzYuMSw3IDAsMC45IDAuOSwwIDYuMSw1LjIgMTAuNywwLjcgMTEuNiwxLjYnIGZpbGw9JyUyMzE2MTYxNScvJTNFJTNDL3N2ZyUzRVwiKTsgfVxuICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3gtc2hhZG93OiAzcHggNHB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMy4xMjVyZW0gMS41NjI1cmVtIDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpID4gdWwuc3VibWVudTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgei1pbmRleDogMjsgfVxuICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpID4gdWwuc3VibWVudSA+IGxpIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDMwLjYyNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbWluLWhlaWdodDogMTguMTI1cmVtO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA4Ljc1cmVtO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMi44MTI1cmVtO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuODEyNXJlbTsgfVxuICAgICAgICAgIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkgPiB1bC5zdWJtZW51ID4gbGkuY3VycmVudC1tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH1cbiAgICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpID4gdWwuc3VibWVudSA+IGxpLmlzLWFjdGl2ZSwgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUgPiBsaTpob3ZlciwgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUgPiBsaTpmb2N1cywgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUgPiBsaTphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAgICAgICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUgPiBsaS5pcy1hY3RpdmUgPiBhLCAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpID4gdWwuc3VibWVudSA+IGxpOmhvdmVyID4gYSwgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUgPiBsaTpmb2N1cyA+IGEsIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkgPiB1bC5zdWJtZW51ID4gbGk6YWN0aXZlID4gYSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpID4gdWwuc3VibWVudSA+IGxpOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDkwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI0JCQjVBNztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgICAgICAgIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkgPiB1bC5zdWJtZW51ID4gbGkgLm1lbnUtaW1hZ2Uge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gICAgICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUgPiBsaSA+IGEge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiTXVzZW8gU2Fuc1wiO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40Mzc1cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgICAgICAgIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkgPiB1bC5zdWJtZW51ID4gbGkgPiBhOmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICB3aWR0aDogMS44MTI1cmVtO1xuICAgICAgICAgICAgICBoZWlnaHQ6IDEuODEyNXJlbTtcbiAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNDNTAwMTAgdXJsKC4uL2ltYWdlcy9hcnJvdy5zdmcpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAgICAgICAgIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkgPiB1bC5zdWJtZW51ID4gbGkgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgICAgICAgICAgIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkgPiB1bC5zdWJtZW51ID4gbGkgdWwgPiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtOyB9XG4gICAgICAgICAgICAucHJpbWFyeS1uYXZpZ2F0aW9uID4gdWwubWVudSA+IGxpID4gdWwuc3VibWVudSA+IGxpIHVsID4gbGkgPiBhIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtOyB9XG4gICAgICAgICAgICAgIC5wcmltYXJ5LW5hdmlnYXRpb24gPiB1bC5tZW51ID4gbGkgPiB1bC5zdWJtZW51ID4gbGkgdWwgPiBsaSA+IGE6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAgICAgICAgICAgLnByaW1hcnktbmF2aWdhdGlvbiA+IHVsLm1lbnUgPiBsaSA+IHVsLnN1Ym1lbnUgPiBsaSB1bCA+IGxpLmN1cnJlbnQtbWVudS1pdGVtID4gYSB7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7IH1cblxuLmhhbWJ1cmdlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmhhbWJ1cmdlciAuaGFtYnVyZ2VyLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEuMzEyNXJlbTtcbiAgICBtaW4td2lkdGg6IDEuMzEyNXJlbTtcbiAgICBoZWlnaHQ6IDEuMDYyNXJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuaGFtYnVyZ2VyIC5oYW1idXJnZXItYnV0dG9uIC5oYW1idXJnZXItbGluZSB7XG4gICAgICBoZWlnaHQ6IDAuMTg3NXJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICMyNDM4NEY7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7IH1cbiAgICAgIC5oYW1idXJnZXIgLmhhbWJ1cmdlci1idXR0b24gLmhhbWJ1cmdlci1saW5lLmhhbWJ1cmdlci1saW5lMSB7XG4gICAgICAgIHRvcDogMDsgfVxuICAgICAgLmhhbWJ1cmdlciAuaGFtYnVyZ2VyLWJ1dHRvbiAuaGFtYnVyZ2VyLWxpbmUuaGFtYnVyZ2VyLWxpbmUyIHtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjVweDsgfVxuICAgICAgLmhhbWJ1cmdlciAuaGFtYnVyZ2VyLWJ1dHRvbiAuaGFtYnVyZ2VyLWxpbmUuaGFtYnVyZ2VyLWxpbmUzIHtcbiAgICAgICAgYm90dG9tOiAwOyB9XG4gIC5oYW1idXJnZXJbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLmhhbWJ1cmdlci1saW5lMSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgdHJhbnNsYXRlWCgwKSByb3RhdGUoNDVkZWcpOyB9XG4gIC5oYW1idXJnZXJbYXJpYS1leHBhbmRlZD1cInRydWVcIl0gLmhhbWJ1cmdlci1saW5lMiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuaGFtYnVyZ2VyW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5oYW1idXJnZXItbGluZTMge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTFweCkgdHJhbnNsYXRlWCgwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICBib3R0b206IGluaXRpYWw7XG4gICAgdG9wOiAxMDAlOyB9XG5cbmEuc2tpcC1tYWluIHtcbiAgbGVmdDogLTk5OXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogYXV0bztcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IC05OTk7IH1cbiAgYS5za2lwLW1haW46Zm9jdXMsIGEuc2tpcC1tYWluOmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRvcDogYXV0bztcbiAgICB3aWR0aDogMzAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtYXJnaW46IDEwcHggMzUlO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgIGJvcmRlcjogNHB4IHNvbGlkIHllbGxvdztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICB6LWluZGV4OiA5OTk5OyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jayB7XG4gIG1hcmdpbi10b3A6IDIuMjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTsgfVxuICBzZWN0aW9uLmNvbnRlbnQtYmxvY2s6OmJlZm9yZSwgc2VjdGlvbi5jb250ZW50LWJsb2NrOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sge1xuICAgICAgbWFyZ2luLXRvcDogMi41cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sge1xuICAgICAgbWFyZ2luLXRvcDogMy4xMjVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDcuOTk4NzVlbSkge1xuICAgIHNlY3Rpb24uY29udGVudC1ibG9jayAuZ3JpZC14IC5jZWxsLnNtYWxsLW9yZGVyLTEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0Ny45OTg3NWVtKSBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIHNlY3Rpb24uY29udGVudC1ibG9jayAuZ3JpZC14IC5jZWxsLnNtYWxsLW9yZGVyLTEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3Ljk5ODc1ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrIC5ncmlkLXggLmNlbGwuc21hbGwtb3JkZXItMSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfSB9XG5cbnNlY3Rpb25bY2xhc3MqPVwiIGJnLVwiXSB7XG4gIHBhZGRpbmctYm90dG9tOiAyLjI1cmVtO1xuICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIHNlY3Rpb25bY2xhc3MqPVwiIGJnLVwiXSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtO1xuICAgICAgcGFkZGluZy10b3A6IDIuNXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgc2VjdGlvbltjbGFzcyo9XCIgYmctXCJdIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzLjEyNXJlbTtcbiAgICAgIHBhZGRpbmctdG9wOiAzLjEyNXJlbTsgfSB9XG5cbnNlY3Rpb25bY2xhc3MqPVwiIGJnLVwiXSArIHNlY3Rpb25bY2xhc3MqPVwiIGJnLVwiXSB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrOmxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2s6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTsgfSB9XG5cbnNlY3Rpb246bGFzdC1vZi10eXBlW2NsYXNzKj1cIiBiZy1cIl0ge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jazpsYXN0LW9mLXR5cGUuY29sbGFwc2UtdmVydCB7XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2s6bGFzdC1vZi10eXBlLmNvbGxhcHNlLXZlcnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2s6bGFzdC1vZi10eXBlLmNvbGxhcHNlLXZlcnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07IH0gfVxuXG5zZWN0aW9uLmNvbGxhcHNlIC5ncmlkLXggLmNlbGwge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ3Ljk5ODc1ZW0pIHtcbiAgLmhhcy0yLWNvbHM6bm90KC5ibG9jay1ncmlkKSA+IC5jZWxsICsgLmNlbGwsXG4gIC5oYXMtMy1jb2xzOm5vdCguYmxvY2stZ3JpZCkgPiAuY2VsbCArIC5jZWxsLFxuICAuaGFzLTQtY29sczpub3QoLmJsb2NrLWdyaWQpID4gLmNlbGwgKyAuY2VsbCB7XG4gICAgbWFyZ2luLXRvcDogMS4yNXJlbTsgfSB9XG5cbi5ibG9jay1ncmlkIHtcbiAgbWFyZ2luLWJvdHRvbTogLTEuODc1cmVtOyB9XG4gIC5ibG9jay1ncmlkID4gLmNlbGwge1xuICAgIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmJsb2NrLWdyaWQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTMuNDM3NXJlbTsgfVxuICAgICAgLmJsb2NrLWdyaWQgPiAuY2VsbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMuNDM3NXJlbTsgfSB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jayAuY2VsbFtjbGFzc149XCJiZy1cIl0sIHNlY3Rpb24uY29udGVudC1ibG9jayAuY2VsbFtjbGFzcyo9XCJiZy1cIl0ge1xuICBwYWRkaW5nOiAyLjI1cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrIC5jZWxsW2NsYXNzXj1cImJnLVwiXSwgc2VjdGlvbi5jb250ZW50LWJsb2NrIC5jZWxsW2NsYXNzKj1cImJnLVwiXSB7XG4gICAgICBwYWRkaW5nOiAyLjVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIHNlY3Rpb24uY29udGVudC1ibG9jayAuY2VsbFtjbGFzc149XCJiZy1cIl0sIHNlY3Rpb24uY29udGVudC1ibG9jayAuY2VsbFtjbGFzcyo9XCJiZy1cIl0ge1xuICAgICAgcGFkZGluZzogMy4xMjVyZW07IH0gfVxuXG4ubW9kdWxlICsgLm1vZHVsZSB7XG4gIG1hcmdpbi10b3A6IDIuMjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAubW9kdWxlICsgLm1vZHVsZSB7XG4gICAgICBtYXJnaW4tdG9wOiAyLjVyZW07IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5tb2R1bGUgKyAubW9kdWxlIHtcbiAgICAgIG1hcmdpbi10b3A6IDMuMTI1cmVtOyB9IH1cblxuLm1vZHVsZS5zdGFjay1vcmRlci0xIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4ubW9kdWxlLmFsaWduLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5oZWFkZXIubW9kdWxlLmFsaWduLWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5oZWFkZXIubW9kdWxlIC5oZWFkbGluZSBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1vZHVsZS50ZXh0LWVkaXRvciBhOm5vdCguYnV0dG9uKSB7XG4gIGNvbG9yOiAjMjQzODRGOyB9XG4gIC5tb2R1bGUudGV4dC1lZGl0b3IgYTpub3QoLmJ1dHRvbik6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5tb2R1bGUudGV4dC1lZGl0b3IgaDEsXG4ubW9kdWxlLnRleHQtZWRpdG9yIGgyLFxuLm1vZHVsZS50ZXh0LWVkaXRvciBoMyxcbi5tb2R1bGUudGV4dC1lZGl0b3IgaDQsXG4ubW9kdWxlLnRleHQtZWRpdG9yIGg1LFxuLm1vZHVsZS50ZXh0LWVkaXRvciBoNiB7XG4gIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG5cbi5tb2R1bGUudGV4dC1lZGl0b3IgcC5sYXJnZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLm1vZHVsZS50ZXh0LWVkaXRvciBwLmxhcmdlIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAubW9kdWxlLnRleHQtZWRpdG9yIHAubGFyZ2Uge1xuICAgICAgICBmb250LXNpemU6IGNhbGMoMTkuMnB4ICsgNC44ICogKCgxMDB2dyAtIDc2OHB4KSAvIDI1NikpOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5tb2R1bGUudGV4dC1lZGl0b3IgcC5sYXJnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9IH1cblxuLm1vZHVsZS50ZXh0LWVkaXRvciAuaW50cm8ge1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS41NzsgfVxuICAubW9kdWxlLnRleHQtZWRpdG9yIC5pbnRybyB7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5tb2R1bGUudGV4dC1lZGl0b3IgLmludHJvIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKDE2LjhweCArIDQuMiAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubW9kdWxlLnRleHQtZWRpdG9yIC5pbnRybyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtOyB9IH1cbiAgLm1vZHVsZS50ZXh0LWVkaXRvciAuaW50cm8uYmxhY2sge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLm1vZHVsZS50ZXh0LWVkaXRvciBiLCAubW9kdWxlLnRleHQtZWRpdG9yIHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLm1vZHVsZS50ZXh0LWVkaXRvciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLm1vZHVsZS50ZXh0LWVkaXRvciBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ubW9kdWxlLnRleHQtZWRpdG9yIHVsIGxpOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07IH1cblxuLm1vZHVsZS50ZXh0LWVkaXRvciBoMSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07IH1cblxuLm1vZHVsZS50ZXh0LWVkaXRvciAucGRmLWxpbmsge1xuICBtYXJnaW4tdG9wOiAzLjEyNXJlbTsgfVxuICAubW9kdWxlLnRleHQtZWRpdG9yIC5wZGYtbGluayBhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAubW9kdWxlLnRleHQtZWRpdG9yIC5wZGYtbGluayBhIGltZyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuMjVyZW07IH1cblxuLm1vZHVsZS5idXR0b25zIC5idXR0b24sIC5tb2R1bGUuYnV0dG9ucyAubWVudSBsaS5idXR0b24gPiBhLCAubWVudSAubW9kdWxlLmJ1dHRvbnMgbGkuYnV0dG9uID4gYSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ubW9kdWxlLmJ1dHRvbnMgLmJ1dHRvbi13cmFwIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41NjI1cmVtOyB9XG4gIC5tb2R1bGUuYnV0dG9ucyAuYnV0dG9uLXdyYXA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5tb2R1bGUuYnV0dG9ucyAuYnV0dG9uLXdyYXAge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLm1vZHVsZS5idXR0b25zIC5idXR0b24td3JhcCArIC5idXR0b24td3JhcCB7XG4gICAgICBtYXJnaW4tbGVmdDogMy4xMjVyZW07IH0gfVxuXG4ubW9kdWxlLmJ1dHRvbnMuYWxpZ24tY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5tb2R1bGUudmlkZW8ge1xuICB3aWR0aDogMTAwJTsgfVxuICAubW9kdWxlLnZpZGVvIHZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tb2R1bGUudmlkZW8gLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5tb2R1bGUudmlkZW8gLmZsZXgtdmlkZW8ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLm1vZHVsZS52aWRlbyAudmlkZW8td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxuICAgIC5tb2R1bGUudmlkZW8gLnZpZGVvLXdyYXBwZXI6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuMSksIHJnYmEoMjgsIDI4LCAyOCwgMC43MikpO1xuICAgICAgei1pbmRleDogMTsgfVxuICAgIC5tb2R1bGUudmlkZW8gLnZpZGVvLXdyYXBwZXIucGxheWluZyAucGxheS1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAubW9kdWxlLnZpZGVvIC5wbGF5LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDMuMTI1cmVtO1xuICAgIGhlaWdodDogMy4xMjVyZW07XG4gICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wbGF5LWJ1dHRvbi5zdmcpIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogMjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAubW9kdWxlLnZpZGVvIC5wbGF5LWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiA1LjkzNzVyZW07XG4gICAgICAgIGhlaWdodDogNS45Mzc1cmVtOyB9IH1cblxuLyogU2xpZGVyICovXG4uc2xpY2stc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5zbGljay1saXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1saXN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5zbGljay1saXN0LmRyYWdnaW5nIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY3Vyc29yOiBoYW5kOyB9XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuXG4uc2xpY2stdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLnNsaWNrLXRyYWNrOmJlZm9yZSwgLnNsaWNrLXRyYWNrOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlOyB9XG4gIC5zbGljay10cmFjazphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXRyYWNrIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWNrLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBub25lOyB9XG4gIFtkaXI9XCJydGxcIl0gLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnNsaWNrLXNsaWRlLnNsaWNrLWxvYWRpbmcgaW1nIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zbGljay1zbGlkZS5kcmFnZ2luZyBpbWcge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5zbGljay1pbml0aWFsaXplZCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5zbGljay1sb2FkaW5nIC5zbGljay1zbGlkZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5zbGljay12ZXJ0aWNhbCAuc2xpY2stc2xpZGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uc2xpY2stYXJyb3cge1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAyLjM3NXJlbTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTA7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMS4xODc1cmVtOyB9XG5cbi5zbGljay1wcmV2IHtcbiAgbGVmdDogMS4yNXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9jaGV2cm9uLWxlZnQuc3ZnKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4Ny4xODc1ZW0pIHtcbiAgICAuc2xpY2stcHJldiB7XG4gICAgICBsZWZ0OiAtMi41cmVtOyB9IH1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogMS4yNXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9jaGV2cm9uLXJpZ2h0LnN2Zyk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogODcuMTg3NWVtKSB7XG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgcmlnaHQ6IC0yLjVyZW07IH0gfVxuXG4uc2xpY2stc2xpZGUge1xuICBtYXJnaW46IDAgMC45Mzc1cmVtOyB9XG5cbi5zbGljay1saXN0IHtcbiAgbWFyZ2luOiAwIC0wLjkzNzVyZW07IH1cblxuLmNhcm91c2VsLWl0ZW0gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5zbGljay1kb3RzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5zbGljay1kb3RzIGJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIHdpZHRoOiAwLjVyZW07XG4gICAgaGVpZ2h0OiAwLjVyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZlZmVmZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7IH1cbiAgLnNsaWNrLWRvdHMgbGkge1xuICAgIG1hcmdpbjogMCAwLjE4NzVyZW07IH1cbiAgLnNsaWNrLWRvdHMgLnNsaWNrLWFjdGl2ZSBidXR0b24ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7IH1cblxucGljdHVyZS5tb2R1bGUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICBwaWN0dXJlLm1vZHVsZSBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmlucHV0Om5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPSdmaWxlJ10pLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDEuMjVyZW07XG4gIGhlaWdodDogMy4xMjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNBM0JCQzc7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICM1OTU4NTU7IH1cbiAgaW5wdXQ6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1idXR0b25dKTpub3QoW3R5cGU9aW1hZ2VdKTpub3QoW3R5cGU9J2ZpbGUnXSk6OnBsYWNlaG9sZGVyLFxuICBzZWxlY3Q6OnBsYWNlaG9sZGVyLFxuICB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gIGlucHV0Om5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPSdmaWxlJ10pOmZvY3VzLFxuICBzZWxlY3Q6Zm9jdXMsXG4gIHRleHRhcmVhOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICNCQkI1QTc7IH1cbiAgICBpbnB1dDpub3QoW3R5cGU9cmFkaW9dKTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1pbWFnZV0pOm5vdChbdHlwZT0nZmlsZSddKTpmb2N1czo6cGxhY2Vob2xkZXIsXG4gICAgc2VsZWN0OmZvY3VzOjpwbGFjZWhvbGRlcixcbiAgICB0ZXh0YXJlYTpmb2N1czo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbnNlbGVjdCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCAxOC42IDkuNycgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTguNiA5Ljc7JyB4bWw6c3BhY2U9J3ByZXNlcnZlJyUzRSUzQ3BhdGggZD0nTTkuNiw5LjdjLTAuMywwLTAuNy0wLjEtMS0wLjNMMC41LDIuN2MtMC42LTAuNS0wLjctMS41LTAuMi0yLjFjMC41LTAuNiwxLjUtMC43LDIuMS0wLjJsNy4xLDUuOWw2LjUtNS45IGMwLjYtMC42LDEuNi0wLjUsMi4xLDAuMWMwLjYsMC42LDAuNSwxLjYtMC4xLDIuMWwtNy41LDYuN0MxMC4zLDkuNiwxMCw5LjcsOS42LDkuN3onLyUzRSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uZm9ybS1maWVsZCB7XG4gIHBhZGRpbmc6IDAgMC4zMTI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICB3aWR0aDogMTAwJTsgfVxuICAuZm9ybS1maWVsZC5oYWxmLXdpZHRoIHtcbiAgICB3aWR0aDogNTAlOyB9XG5cbi5mb3JtLWJvZHkge1xuICBtYXJnaW4tbGVmdDogLTAuMzEyNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMC4zMTI1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLmZvcm0tY29udHJvbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMy43NXJlbTsgfVxuICAuZm9ybS1jb250cm9sIC5idXR0b24sIC5mb3JtLWNvbnRyb2wgLm1lbnUgbGkuYnV0dG9uID4gYSwgLm1lbnUgLmZvcm0tY29udHJvbCBsaS5idXR0b24gPiBhIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMi41cmVtOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5mb3JtLWNvbnRyb2wgLmJ1dHRvbiwgLmZvcm0tY29udHJvbCAubWVudSBsaS5idXR0b24gPiBhLCAubWVudSAuZm9ybS1jb250cm9sIGxpLmJ1dHRvbiA+IGEge1xuICAgICAgICBtaW4taGVpZ2h0OiA1LjYyNXJlbTsgfSB9XG5cbi5tZXNzYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICAubWVzc2FnZS5tZXNzYWdlLWVycm9yIHtcbiAgICBjb2xvcjogcmVkOyB9XG4gIC5tZXNzYWdlLm1lc3NhZ2Utb2sge1xuICAgIGNvbG9yOiBncmVlbjsgfVxuXG5oZWFkZXIudGVtcGxhdGUtaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMi4xODc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIGhlYWRlci50ZW1wbGF0ZS1oZWFkZXIuYWxpZ24tY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgaGVhZGVyLnRlbXBsYXRlLWhlYWRlciAuaGVhZGxpbmUgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3Qge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiAjQzUwMDEwO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3Qge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICsgNSAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtOyB9IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3RbY2xhc3MqPVwiIGJnLVwiXSB7XG4gICAgcGFkZGluZzogMi4xODc1cmVtIDA7IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3QgYSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogI0M1MDAxMDsgfVxuICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb250YWN0IGEge1xuICAgICAgZm9udC1zaXplOiAxLjMxMjVyZW07IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb250YWN0IGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogY2FsYygyMXB4ICsgOCAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3QgYSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjgxMjVyZW07IH0gfVxuICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdC5iZy1kYXJrIHtcbiAgICBjb2xvcjogI2ZlZmVmZTsgfVxuICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb250YWN0LmJnLWRhcmsgYSB7XG4gICAgICBjb2xvcjogI2ZlZmVmZTsgfVxuXG5zZWN0aW9uLmhlcm8tdW5pdCAuaGVyby11bml0LWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDM5LjA2MjVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIGNvbG9yOiAjZmVmZWZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDEyLjVyZW07IH1cbiAgc2VjdGlvbi5oZXJvLXVuaXQgLmhlcm8tdW5pdC1jb250ZW50IGgyIHtcbiAgICBsaW5lLWhlaWdodDogMS4xODsgfVxuICAgIHNlY3Rpb24uaGVyby11bml0IC5oZXJvLXVuaXQtY29udGVudCBoMiB7XG4gICAgICBmb250LXNpemU6IDIuN3JlbTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgc2VjdGlvbi5oZXJvLXVuaXQgLmhlcm8tdW5pdC1jb250ZW50IGgyIHtcbiAgICAgICAgICBmb250LXNpemU6IGNhbGMoNDMuMnB4ICsgMTAuOCAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgc2VjdGlvbi5oZXJvLXVuaXQgLmhlcm8tdW5pdC1jb250ZW50IGgyIHtcbiAgICAgICAgICBmb250LXNpemU6IDMuMzc1cmVtOyB9IH1cbiAgICBzZWN0aW9uLmhlcm8tdW5pdCAuaGVyby11bml0LWNvbnRlbnQgaDIgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuXG5zZWN0aW9uLmhlcm8tdW5pdCAuaGVyby11bml0LWJ1dHRvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMi41cmVtOyB9XG4gIHNlY3Rpb24uaGVyby11bml0IC5oZXJvLXVuaXQtYnV0dG9uIC5idXR0b24sIHNlY3Rpb24uaGVyby11bml0IC5oZXJvLXVuaXQtYnV0dG9uIC5tZW51IGxpLmJ1dHRvbiA+IGEsIC5tZW51IHNlY3Rpb24uaGVyby11bml0IC5oZXJvLXVuaXQtYnV0dG9uIGxpLmJ1dHRvbiA+IGEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMzAuMTg3NXJlbTtcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuXG5zZWN0aW9uLmhlcm8tdW5pdCAuaGVyby1zbGlkZXItaXRlbSB7XG4gIHBhZGRpbmc6IDMuNzVyZW0gMDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgc2VjdGlvbi5oZXJvLXVuaXQgLmhlcm8tc2xpZGVyLWl0ZW0ge1xuICAgICAgcGFkZGluZzogMTIuMTg3NXJlbSAwOyB9IH1cblxuc2VjdGlvbi5oZXJvLXVuaXQgLnNsaWNrLWxpc3Qge1xuICBtYXJnaW46IDA7IH1cblxuc2VjdGlvbi5oZXJvLXVuaXQgLnNsaWNrLXNsaWRlIHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IGF1dG87IH1cbiAgc2VjdGlvbi5oZXJvLXVuaXQgLnNsaWNrLXNsaWRlID4gZGl2IHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cblxuc2VjdGlvbi5oZXJvLXVuaXQgLnNsaWNrLXRyYWNrIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG5zZWN0aW9uLmhlcm8tdW5pdCArIC5jb250ZW50LWJsb2NrW2NsYXNzKj1cIiBiZy1cIl0ge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zZXJ2aWNlcyAuc2VydmljZS1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMgLnNlcnZpY2UtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogOTAwO1xuICBsZXR0ZXItc3BhY2luZzogMS44NHB4OyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1hZHZhbnRhZ2VzIC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMy4xNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtOyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1hZHZhbnRhZ2VzIC5pY29uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWFkdmFudGFnZXMgLmRlc2NyaXB0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDEuOTgyOyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1hZHZhbnRhZ2VzIC50ZW1wbGF0ZS1oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAzLjc1cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1hZHZhbnRhZ2VzIHtcbiAgICBtYXJnaW4tdG9wOiA3LjVyZW07IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtYWR2YW50YWdlcyArIHNlY3Rpb24uY29udGVudC1ibG9jayB7XG4gICAgICBtYXJnaW4tdG9wOiA3LjVyZW07IH0gfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc3BsaXQtY29udGVudCAucm93IHtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNwbGl0LWNvbnRlbnQgLnJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA5LjM3NXJlbTsgfSB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50IC5yb3cgLm1lZGlhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc3BsaXQtY29udGVudCAucm93IC5tZWRpYSBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNwbGl0LWNvbnRlbnQgLnJvdyAubWVkaWEgaW1nICsgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc3BsaXQtY29udGVudCAucm93IC5tZWRpYSBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc3BsaXQtY29udGVudCAucm93IC5tZWRpYSBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50IC5yb3cgLmNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNlYmYwZjI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEuMjVyZW07IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc3BsaXQtY29udGVudCAucm93IC5jb250ZW50IC5pbm5lciB7XG4gICAgICBtYXgtd2lkdGg6IDIyLjE4NzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50IC5yb3cge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNwbGl0LWNvbnRlbnQgLnJvdyAuY29udGVudCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzLjEyNXJlbSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgbWluLXdpZHRoOiA0MCU7XG4gICAgICAgIHBhZGRpbmc6IDMuMTI1cmVtIDEuMjVyZW07IH1cbiAgICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50IC5yb3cgLm1lZGlhIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNi41NjI1cmVtOyB9XG4gICAgICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50IC5yb3cgLm1lZGlhIHAge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgbGVmdDogMDsgfVxuICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNwbGl0LWNvbnRlbnQgLnJvdy5wdWxsLXRvcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEyLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNi4yNXJlbTsgfVxuICAgICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc3BsaXQtY29udGVudCAucm93LnB1bGwtdG9wIC5jb250ZW50IHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMuMTI1cmVtKTsgfVxuICAgICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc3BsaXQtY29udGVudCAucm93LnB1bGwtdG9wOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50IC5yb3c6bnRoLWNoaWxkKG9kZCkgLmNvbnRlbnQge1xuICAgICAgICBvcmRlcjogMTsgfVxuICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNwbGl0LWNvbnRlbnQgLnJvdzpudGgtY2hpbGQob2RkKSAubWVkaWEge1xuICAgICAgICBvcmRlcjogMjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTYuNTYyNXJlbTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0OGVtKSB7XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50LmFsaWduLWNlbnRlciAucm93Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNwbGl0LWNvbnRlbnQuYWxpZ24tY2VudGVyIC5yb3cgLmNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDEwMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsgfVxuICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50LmFsaWduLWNlbnRlciAucm93IC5jb250ZW50IGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM5OyB9IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbG9yLWNoYW5nZXIgLmNvbG9yLXNjZW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDM3LjVyZW07XG4gIHBhZGRpbmc6IDQuMDYyNXJlbSAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbG9yLWNoYW5nZXIgLmNvbG9yLXNjZW5lIHtcbiAgICAgIGhlaWdodDogNjcuNXJlbTsgfSB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIC5jb2xvci1zY2VuZSAudGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAzLjEyNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjZzO1xuICAgIGNvbG9yOiAjZmVmZWZlOyB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIC5jb2xvci1zY2VuZSAuY29sb3Itc2xpZGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDE1cmVtO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIC5jb2xvci1zY2VuZSAuY29sb3Itc2xpZGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTguNzVyZW07IH0gfVxuICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIC5jb2xvci1zY2VuZSAuY29sb3Itc2xpZGUuaXMtYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIC5jb2xvci1zY2VuZSAuY29sb3ItbmF2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMzsgfVxuICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29sb3ItY2hhbmdlciAuY29sb3Itc2NlbmUgLmNvbG9yLXBpY2tlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIC5jb2xvci1zY2VuZSAuY29sb3ItcGlja2VyIC5jb2xvciB7XG4gICAgICB3aWR0aDogNC4wNjI1cmVtO1xuICAgICAgbWFyZ2luOiAwIDAuMzEyNXJlbTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbG9yLWNoYW5nZXIgLmNvbG9yLXNjZW5lIC5jb2xvci1waWNrZXIgLmNvbG9yIHtcbiAgICAgICAgICB3aWR0aDogNy4xMjVyZW07XG4gICAgICAgICAgbWFyZ2luOiAwIDAuNXJlbTsgfSB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIC5jb2xvci1zY2VuZSAuY29sb3ItY29udGVudCB7XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDQyLjVyZW07XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC42cztcbiAgICBjb2xvcjogIzAwMDsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtZmVhdHVyZWQtZ2FsbGVyeSAuaW1hZ2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1mZWF0dXJlZC1nYWxsZXJ5IC50aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNCQkI1QTc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxLjg0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWZlYXR1cmVkLWdhbGxlcnkge1xuICAgIG1hcmdpbi10b3A6IDkuMzc1cmVtOyB9XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWZlYXR1cmVkLWdhbGxlcnkgKyBzZWN0aW9uLmNvbnRlbnQtYmxvY2sge1xuICAgICAgbWFyZ2luLXRvcDogNy41cmVtOyB9XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWZlYXR1cmVkLWdhbGxlcnk6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDcuNXJlbTsgfSB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1mZWF0dXJlZC1nYWxsZXJ5IC5oZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogMi43cmVtOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWZlYXR1cmVkLWdhbGxlcnkgLmhlYWRsaW5lIHtcbiAgICAgIGZvbnQtc2l6ZTogY2FsYyg0My4ycHggKyAxMC44ICogKCgxMDB2dyAtIDc2OHB4KSAvIDI1NikpOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWZlYXR1cmVkLWdhbGxlcnkgLmhlYWRsaW5lIHtcbiAgICAgIGZvbnQtc2l6ZTogMy4zNzVyZW07IH0gfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtdGVzdGltb25pYWxzIC5ncmlkLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMzcuNXJlbTsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtdGVzdGltb25pYWxzIC50aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtdGVzdGltb25pYWxzIC50aXRsZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvYmxvY2txdW90ZS5zdmcpIG5vLXJlcGVhdDtcbiAgICB3aWR0aDogMi40Mzc1cmVtO1xuICAgIGhlaWdodDogMi40Mzc1cmVtO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBtYXJnaW46IDAgYXV0byAwLjkzNzVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXRlc3RpbW9uaWFscyBibG9ja3F1b3RlIHtcbiAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDc7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXRlc3RpbW9uaWFscyAuY2l0ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtdGVzdGltb25pYWxzIC5zbGljay1kb3RzIHtcbiAgbWFyZ2luLXRvcDogNC42ODc1cmVtOyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1nYWxsZXJ5IC5nYWxsZXJ5LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXgtd2lkdGg6IDc0LjM3NXJlbTsgfVxuICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtZ2FsbGVyeSAuZ2FsbGVyeS1jb250YWluZXIgaW1nIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtZ2FsbGVyeSBpbWcge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtZ2FsbGVyeSAuZ2FsbGVyeS0yIC5nYWxsZXJ5LWl0ZW0ge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1nYWxsZXJ5IC5pbWctMTAge1xuICBtYXJnaW4tdG9wOiAtNi41JTsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtZ2FsbGVyeSAuZ2FsbGVyeS10aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbnNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb250YWN0LWZvcm0gLnBhZ2UtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwLjkzNzVyZW07IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3QtZm9ybSAucGFnZS10aXRsZSBzcGFuIHtcbiAgICBjb2xvcjogI0M1MDAxMDsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdC1mb3JtIC5wYWdlLXN1YnRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMy43NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdC1mb3JtIC5hZGRyZXNzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzU5NTg1NTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsOyB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb250YWN0LWZvcm0gLmFkZHJlc3Mge1xuICAgIGZvbnQtc2l6ZTogMC45NDVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3QtZm9ybSAuYWRkcmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygxNS4xMnB4ICsgMi44OCAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdC1mb3JtIC5hZGRyZXNzIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTsgfSB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb250YWN0LWZvcm0gLmFkZHJlc3MgcDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3QtZm9ybSAuYWRkcmVzcyBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNDNTAwMTA7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3M7IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdC1mb3JtIC5hZGRyZXNzIGE6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3QtZm9ybSBmb3JtIHtcbiAgbWFyZ2luLXRvcDogMy4xMjVyZW07IH1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWNvbnRhY3QtZm9ybSArIC5jb250ZW50LWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogNi4yNXJlbTsgfVxuXG5zZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCB7XG4gIG1hcmdpbi10b3A6IDQwcHggIWltcG9ydGFudDsgfVxuICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zZXJ2aWNlcy1saXN0IGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMi4zcmVtOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCBoMiB7XG4gICAgICAgICAgZm9udC1zaXplOiBjYWxjKDM2LjhweCArIDkuMiAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3QgaDIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMi44NzVyZW07IH0gfVxuICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCBoMyB7XG4gICAgZm9udC1zaXplOiAxLjg1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zZXJ2aWNlcy1saXN0IGgzIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKDI5LjZweCArIDcuNCAqICgoMTAwdncgLSA3NjhweCkgLyAyNTYpKTsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4zMTI1cmVtOyB9IH1cbiAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3QgLmJ1dHRvbnMuaW5saW5lIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1NXB4OyB9XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3QgLmJ1dHRvbnMuaW5saW5lIC5idXR0b24sIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zZXJ2aWNlcy1saXN0IC5idXR0b25zLmlubGluZSAubWVudSBsaS5idXR0b24gPiBhLCAubWVudSBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYnV0dG9ucy5pbmxpbmUgbGkuYnV0dG9uID4gYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zZXJ2aWNlcy1saXN0IC5ibG9jay1ncmlkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTAwcHg7IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCA+IC5jZWxsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwMHB4OyB9XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3QgLmJsb2NrLWdyaWQgLmltYWdlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3QgLmJsb2NrLWdyaWQgLmRlc2NyaXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG4gICAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCAuZGVzY3JpcHRpb24gYiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCAuaW5uZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCAuYnV0dG9ucyAuYnV0dG9uLCBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCAuYnV0dG9ucyAubWVudSBsaS5idXR0b24gPiBhLCAubWVudSBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCAuYnV0dG9ucyBsaS5idXR0b24gPiBhIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBtaW4td2lkdGg6IDcwJTsgfVxuICAgICAgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3QgLmJsb2NrLWdyaWQgLmJ1dHRvbnMgLmJ1dHRvbjpsYXN0LWNoaWxkLCBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCAuYnV0dG9ucyAubWVudSBsaS5idXR0b24gPiBhOmxhc3QtY2hpbGQsIC5tZW51IHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zZXJ2aWNlcy1saXN0IC5ibG9jay1ncmlkIC5idXR0b25zIGxpLmJ1dHRvbiA+IGE6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgIHNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zZXJ2aWNlcy1saXN0IC5ibG9jay1ncmlkIC5idXR0b25zIC5idXR0b24uc2Vjb25kYXJ5LCBzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtc2VydmljZXMtbGlzdCAuYmxvY2stZ3JpZCAuYnV0dG9ucyAubWVudSBsaS5idXR0b24gPiBhLnNlY29uZGFyeSwgLm1lbnUgc2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3QgLmJsb2NrLWdyaWQgLmJ1dHRvbnMgbGkuYnV0dG9uID4gYS5zZWNvbmRhcnkge1xuICAgICAgICBtaW4td2lkdGg6IDk1JTsgfVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LWJhc2UtZ3JpZC1jbGFzc2VzIHtcblxuICAvLyBHcmlkIENvbnRhaW5lclxuICAuZ3JpZC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQtY29udGFpbmVyO1xuXG4gICAgJi5mbHVpZCB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWNvbnRhaW5lcigxMDAlKTtcbiAgICB9XG5cbiAgICAmLmZ1bGwge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb250YWluZXIoMTAwJSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQmFzZSBncmlkIHN0eWxlc1xuICAuZ3JpZC14IHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkO1xuICB9XG5cbiAgLmNlbGwge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoZnVsbCwgJGd1dHRlci10eXBlOiBub25lKTtcblxuICAgICYuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2UoYXV0byk7XG4gICAgfVxuXG4gICAgJi5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgfVxuXG4gIH1cbiAgLmdyaWQteCB7XG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoYXV0bywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICB9XG5cbiAgICA+IC5zaHJpbmsge1xuICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKHNocmluaywgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICB9XG4gIH1cblxuICAvLyBBdXRvIHdpZHRoXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyAmIFBScyBmb3IgdGhlIGJhY2tzdG9yeTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMDI0NFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL3B1bGwvMTAxNjRcbiAgICAuZ3JpZC14IHtcbiAgICAgICRzdHI6IFwiPiAuI3skLXpmLXNpemV9LXNocmluaywgPiAuI3skLXpmLXNpemV9LWZ1bGxcIjtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICRzdHI6ICRzdHIgKyBcIiwgPiAuI3skLXpmLXNpemV9LSN7JGl9XCJcbiAgICAgIH1cbiAgICAgICN7JHN0cn0ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgLy8gUmVzcG9uc2l2ZSBcImF1dG9cIiBtb2RpZmllclxuICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAuZ3JpZC14ID4gLiN7JC16Zi1zaXplfS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbChhdXRvLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICUteHktY2VsbC1iYXNlLXNocmluay1ob3Jpem9udGFsLSN7JC16Zi1zaXplfSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJhc2Uoc2hyaW5rKTtcbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIFwic2hyaW5rXCIgbW9kaWZpZXJcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tc2hyaW5rIHtcbiAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstaG9yaXpvbnRhbC0jeyQtemYtc2l6ZX07XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShzaHJpbmssICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSB3aWR0aCBtb2RpZmllcnNcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgLmdyaWQteCA+IC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBAZXh0ZW5kICUteHktY2VsbC1iYXNlLXNocmluay1ob3Jpem9udGFsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRpLCAkZ3V0dGVyLXR5cGU6IG5vbmUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHdpZHRoIHdoZW4gdXNpbmcgYC5ncmlkLW1hcmdpbi14YCBub3Qgb24gYC5ncmlkLXhgXG4gIC5ncmlkLW1hcmdpbi14Om5vdCguZ3JpZC14KSA+IC5jZWxsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxuXG4gIC8vIFJlc2V0IGhlaWdodCB3aGVuIHVzaW5nIGAuZ3JpZC1tYXJnaW4teWAgbm90IG9uIGAuZ3JpZC15YFxuICAuZ3JpZC1tYXJnaW4teTpub3QoLmdyaWQteSkgPiAuY2VsbCB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtaXhpbiAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGNsYXNzLWJyZWFrcG9pbnQsICRndXR0ZXItYnJlYWtwb2ludCwgJHZlcnRpY2FsKSB7XG4gICRwcmVmaXg6IGlmKCRjbGFzcy1icmVha3BvaW50ID09ICQtemYtemVyby1icmVha3BvaW50LCAnJywgJyN7JGNsYXNzLWJyZWFrcG9pbnR9LScpO1xuICA+IC4jeyRwcmVmaXh9YXV0byB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKGF1dG8sICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gID4gLiN7JHByZWZpeH1zaHJpbmsge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShzaHJpbmssICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICRjbGFzc25hbWU6IGlmKCR2ZXJ0aWNhbCwgJy4jeyRjbGFzcy1icmVha3BvaW50fS0jeyRpfScsICcuI3skY2xhc3MtYnJlYWtwb2ludH0tI3skaX0nKTtcblxuICAgID4gI3skY2xhc3NuYW1lfSB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICR2ZXJ0aWNhbDogJHZlcnRpY2FsKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWFyZ2luIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoXG4gICRndXR0ZXItcG9zaXRpb246IGxlZnQgcmlnaHQsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICR3cmFwcGluZy1zZWxlY3RvcjogJy5ncmlkLW1hcmdpbi14J1xuKXtcbiAgI3skd3JhcHBpbmctc2VsZWN0b3J9IHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRuZWdhdGl2ZTogdHJ1ZSwgJGd1dHRlci1wb3NpdGlvbjogJGd1dHRlci1wb3NpdGlvbik7XG5cbiAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsKCR2ZXJ0aWNhbDogJHZlcnRpY2FsLCAkb3V0cHV0OiAoc2l6ZSBndXR0ZXJzKSk7XG4gICAgfVxuXG4gICAgLy8gYmFzZSBzdHlsZXMgbmVlZCB0byBhbGwgYmUgYmVmb3JlIHRoZSBhdXRvIGFuZCBzaHJpbmsgc3R5bGVzXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIEBpZih0eXBlLW9mKCRncmlkLW1hcmdpbi1ndXR0ZXJzKSA9PSAnbWFwJyBhbmQgbWFwLWhhcy1rZXkoJGdyaWQtbWFyZ2luLWd1dHRlcnMsICQtemYtc2l6ZSkgYW5kICQtemYtc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgICAgICA+IC5jZWxsIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKCR2ZXJ0aWNhbDogJHZlcnRpY2FsLCAkb3V0cHV0OiAoc2l6ZSBndXR0ZXJzKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuXG4gICAgICAvLyBUaGlzIGlzIHB1cmVseSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzIC0gdGhlIG1hcmdpbiBncmlkIGhhcyB0byBnbyBiYWNrIGFuZCBhZGp1c3Qgd2lkdGhzIChvciBoZWlnaHRzKVxuICAgICAgLy8gZm9yIGFsbCBwcmlvciBicmVha3BvaW50cy5cbiAgICAgIC8vIEFzIHRoZWlyIGd1dHRlciBpcyBkZWZpbmVkIHdpdGggdGhlaXIgd2lkdGgvaGVpZ2h0LCBldmVuIGJyZWFrcG9pbnQgd2l0aG91dCBhIG5ldyBtYXJnaW4gbXVzdCBiZVxuICAgICAgLy8gZ2VuZXJhdGVkIHRvIG5vdCBoYXZpbmcgdGhlaXIgd2lkdGgvaGVpZ2h0IG92ZXJyaWRlZCBieSByZS1hZGp1c3RlZCBzbWFsbGVyIGJyZWFrcG9pbnRzLlxuICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSkge1xuICAgICAgICBAZWFjaCAkYnAgaW4gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigkLXpmLXNpemUpIHtcbiAgICAgICAgICBAaW5jbHVkZSAteHktYnJlYWtwb2ludC1jZWxsLWNsYXNzZXMoJGJwLCAkLXpmLXNpemUsICR2ZXJ0aWNhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgLXh5LWJyZWFrcG9pbnQtY2VsbC1jbGFzc2VzKCQtemYtc2l6ZSwgJC16Zi1zaXplLCAkdmVydGljYWwpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQYWRkaW5nIEdyaWQgY2xhc3Nlc1xuQG1peGluIHh5LXBhZGRpbmctZ3JpZC1jbGFzc2VzIHtcbiAgLmdyaWQtcGFkZGluZy14IHtcblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbiBmb3IgbmVzdGVkIGdyaWRzXG4gICAgLmdyaWQtcGFkZGluZy14IHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJG5lZ2F0aXZlOiB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIGdyaWRzIHdpdGhpbiBgZ3JpZC1jb250YWluZXIvZ3JpZC1jb250YWluZXIuZmx1aWRgXG4gICAgLy8gVGhpcyBhbGxvd3MgbWFyZ2luIGFuZCBwYWRkaW5nIGdyaWRzIHRvIGxpbmUgdXAgd2l0aCBlYWNob3RoZXJcbiAgICAuZ3JpZC1jb250YWluZXI6bm90KC5mdWxsKSA+ICYge1xuICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUpO1xuICAgIH1cblxuICAgIC8vIEJhc2UgY2VsbCBzdHlsZXNcbiAgICA+IC5jZWxsIHtcbiAgICAgIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRncmlkLXBhZGRpbmctZ3V0dGVycywgJGd1dHRlci10eXBlOiBwYWRkaW5nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQmxvY2sgR3JpZCBjbGFzc2VzXG5AbWl4aW4geHktYmxvY2stZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZDogdHJ1ZSwgJHBhZGRpbmctZ3JpZDogdHJ1ZSkge1xuICBAaWYgJHBhZGRpbmctZ3JpZCB7XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtbGF5b3V0KCRuOiAkaSwgJHNlbGVjdG9yOiAnLmNlbGwnLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRvdXRwdXQ6IChzaXplKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHh5LWJsb2NrLWdyaWQtbWF4IHtcbiAgICAgICAgLy8gVGhpcyBpcyBwdXJlbHkgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycyAtIHRoZSBtYXJnaW4gZ3JpZCBoYXMgdG8gZ28gYmFjayBhbmQgYWRqdXN0IHdpZHRocyAob3IgaGVpZ2h0cylcbiAgICAgICAgLy8gZm9yIHByaW9yIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSByZXNwb25zaXZlIGd1dHRlci5cbiAgICAgICAgQGlmKHR5cGUtb2YoJGdyaWQtbWFyZ2luLWd1dHRlcnMpID09ICdtYXAnIGFuZCBtYXAtaGFzLWtleSgkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplKSkge1xuICAgICAgICAgIEBlYWNoICRicCBpbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgQGlmKG1hcC1oYXMta2V5KCRncmlkLW1hcmdpbi1ndXR0ZXJzLCAkYnApKSB7XG4gICAgICAgICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JGJwfS11cC0jeyRpfSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItdHlwZTogbWFyZ2luLCAkb3V0cHV0OiAoc2l6ZSkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICR4eS1ibG9jay1ncmlkLW1heCB7XG4gICAgICAgIC5ncmlkLW1hcmdpbi14LiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1sYXlvdXQoJG46ICRpLCAkc2VsZWN0b3I6ICcuY2VsbCcsICRndXR0ZXItdHlwZTogbWFyZ2luLCAkb3V0cHV0OiAoc2l6ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIENvbGxhcHNlIGNsYXNzZXNcbkBtaXhpbiB4eS1jb2xsYXBzZS1ncmlkLWNsYXNzZXMoJG1hcmdpbi1ncmlkOiB0cnVlLCAkcGFkZGluZy1ncmlkOiB0cnVlKSB7XG4gIEBlYWNoICRicCBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICAgIC4jeyRicH0tbWFyZ2luLWNvbGxhcHNlIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3JpZC1jb2xsYXBzZSgkZ3V0dGVyLXR5cGU6IG1hcmdpbiwgJG1pbi1icmVha3BvaW50OiAkYnApO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkcGFkZGluZy1ncmlkIHtcbiAgICAgIC4jeyRicH0tcGFkZGluZy1jb2xsYXBzZSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtY29sbGFwc2UoJGd1dHRlci10eXBlOiBwYWRkaW5nLCAkbWluLWJyZWFrcG9pbnQ6ICRicCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIE9mZnNldCBjbGFzc2VzXG5AbWl4aW4geHktb2Zmc2V0LWNlbGwtY2xhc3NlcyB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtb2Zmc2V0KCRvLCAkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuICAgICAgfVxuXG4gICAgICAuZ3JpZC1tYXJnaW4teCA+IC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1vZmZzZXQoJG8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBWZXJ0aWNhbCBHcmlkIGNsYXNzZXNcbkBtaXhpbiB4eS12ZXJ0aWNhbC1ncmlkLWNsYXNzZXMoXG4gICRtYXJnaW4tZ3JpZDogdHJ1ZSxcbiAgJHBhZGRpbmctZ3JpZDogdHJ1ZVxuKSB7XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICBAaWYgbm90KCQtemYtc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAgIH1cbiAgfVxuXG4gIC5ncmlkLXkge1xuICAgIEBpbmNsdWRlIHh5LWdyaWQodmVydGljYWwsIGZhbHNlKTtcblxuXG4gICAgPiAuY2VsbCB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXJlc2V0KCk7XG4gICAgfVxuXG4gICAgPiAuYXV0byB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoYXV0bywgJGd1dHRlci10eXBlOiBub25lLCAkdmVydGljYWw6IHRydWUpO1xuICAgIH1cblxuICAgID4gLnNocmluayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoc2hyaW5rLCAkZ3V0dGVyLXR5cGU6IG5vbmUsICR2ZXJ0aWNhbDogdHJ1ZSk7XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KCkge1xuICAgICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2svd29ya2Fyb3VuZCwgc2VlIHRoZXNlIGlzc3VlcyBhbmQgUFJzIGZvciB0aGUgYmFja3N0b3J5OlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTAyNDRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDIyMiBhbmRcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvcHVsbC8xMDE2NFxuICAgICAgJHN0cjogXCI+IC4jeyQtemYtc2l6ZX0tc2hyaW5rLCA+IC4jeyQtemYtc2l6ZX0tZnVsbFwiO1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgJHN0cjogJHN0ciArIFwiLCA+IC4jeyQtemYtc2l6ZX0tI3skaX1cIlxuICAgICAgfVxuICAgICAgI3skc3RyfSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgpIHtcbiAgICAgIC8vIFJlc3BvbnNpdmUgXCJhdXRvXCIgbW9kaWZpZXJcbiAgICAgIEBpZiBub3QoJC16Zi1zaXplID09ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gICAgICAgID4gLiN7JC16Zi1zaXplfS1hdXRvIHtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsKGF1dG8sICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKHNocmluayk7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlc3BvbnNpdmUgXCJzaHJpbmtcIiBtb2RpZmllclxuICAgICAgQGlmIG5vdCgkLXpmLXNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgPiAuI3skLXpmLXNpemV9LXNocmluayB7XG4gICAgICAgICAgQGV4dGVuZCAlLXh5LWNlbGwtYmFzZS1zaHJpbmstdmVydGljYWwtI3skLXpmLXNpemV9O1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZShzaHJpbmssICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZXNwb25zaXZlIHdpZHRoIG1vZGlmaWVyc1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgICA+IC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICAgIEBleHRlbmQgJS14eS1jZWxsLWJhc2Utc2hyaW5rLXZlcnRpY2FsLSN7JC16Zi1zaXplfTtcbiAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSwgJHZlcnRpY2FsOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWRkaW5nLWdyaWQge1xuICAgIC5ncmlkLXBhZGRpbmcteSB7XG4gICAgICAvLyBOZWdhdGl2ZSBtYXJnaW4gZm9yIG5lc3RlZCBncmlkc1xuICAgICAgLmdyaWQtcGFkZGluZy15IHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkbmVnYXRpdmU6IHRydWUsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuXG4gICAgICAvLyBCYXNlIGNlbGwgc3R5bGVzXG4gICAgICA+IC5jZWxsIHtcbiAgICAgICAgQGluY2x1ZGUgeHktZ3V0dGVycygkZ3V0dGVyczogJGdyaWQtcGFkZGluZy1ndXR0ZXJzLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcsICRndXR0ZXItcG9zaXRpb246IHRvcCBib3R0b20pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWFyZ2luLWdyaWQge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXModG9wIGJvdHRvbSwgdHJ1ZSwgJy5ncmlkLW1hcmdpbi15Jyk7XG4gIH1cblxufVxuXG5AbWl4aW4geHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkOiB0cnVlLCAkbWFyZ2luLWdyaWQ6IHRydWUpIHtcbiAgLy8gRnJhbWVkIGdyaWQgc3R5bGVzXG4gIC5ncmlkLWZyYW1lIHtcbiAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lO1xuICB9XG5cbiAgLmNlbGwgLmdyaWQtZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICB9XG5cbiAgLmNlbGwtYmxvY2sge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2soKTtcbiAgfVxuXG4gIC5jZWxsLWJsb2NrLXkge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gIH1cblxuXG4gIC5jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ibG9jay1jb250YWluZXIoKTtcbiAgfVxuXG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuXG4gICAgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWU7XG4gICAgfVxuXG4gICAgLmNlbGwgLiN7JC16Zi1zaXplfS1ncmlkLWZyYW1lIHtcbiAgICAgIHdpZHRoOiAxMDAlOyAvLyBTYW1lIGFzIGluY2x1ZGUgd2l0aCAkbmVzdGVkLCBidXQgd2l0aCBsZXNzIGNzc1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jayB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrKCk7XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS1jZWxsLWJsb2NrLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpO1xuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tY2VsbC1ibG9jay15IHtcbiAgICAgIEBpbmNsdWRlIHh5LWNlbGwtYmxvY2sodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICR2ZXJ0aWNhbC1ncmlkIHtcbiAgICAuZ3JpZC15IHtcbiAgICAgICYuZ3JpZC1mcmFtZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgICYuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIEBpbmNsdWRlIHh5LWdyaWQtZnJhbWUodHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgICAuY2VsbCB7XG4gICAgICAuZ3JpZC15LmdyaWQtZnJhbWUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIFNhbWUgYXMgaW5jbHVkZSB3aXRoICRuZXN0ZWQsIGJ1dCB3aXRoIGxlc3MgY3NzXG4gICAgICB9XG4gICAgICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50KGZhbHNlKSB7XG4gICAgICAgIC5ncmlkLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICAgIGhlaWdodDogMTAwJTsgLy8gU2FtZSBhcyBpbmNsdWRlIHdpdGggJG5lc3RlZCwgYnV0IHdpdGggbGVzcyBjc3NcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaWYgJG1hcmdpbi1ncmlkIHtcbiAgICBAaW5jbHVkZSB4eS1tYXJnaW4tZ3JpZC1jbGFzc2VzKHRvcCBib3R0b20sIHRydWUsICcuZ3JpZC1tYXJnaW4teScpO1xuICAgIC5ncmlkLWZyYW1lLmdyaWQtbWFyZ2luLXkge1xuICAgICAgQGluY2x1ZGUgeHktZ3JpZC1mcmFtZSh0cnVlLCBmYWxzZSwgJGdyaWQtbWFyZ2luLWd1dHRlcnMsICRpbmNsdWRlLWJhc2U6IGZhbHNlKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludChmYWxzZSkge1xuICAgICAgLmdyaWQtbWFyZ2luLXkuI3skLXpmLXNpemV9LWdyaWQtZnJhbWUge1xuICAgICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKHRydWUsIGZhbHNlLCAkZ3JpZC1tYXJnaW4tZ3V0dGVycywgJC16Zi1zaXplLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEZpbmFsIGNsYXNzZXNcbkBtaXhpbiBmb3VuZGF0aW9uLXh5LWdyaWQtY2xhc3NlcyhcbiAgJGJhc2UtZ3JpZDogdHJ1ZSxcbiAgJG1hcmdpbi1ncmlkOiB0cnVlLFxuICAkcGFkZGluZy1ncmlkOiB0cnVlLFxuICAkYmxvY2stZ3JpZDogdHJ1ZSxcbiAgJGNvbGxhcHNlOiB0cnVlLFxuICAkb2Zmc2V0OiB0cnVlLFxuICAkdmVydGljYWwtZ3JpZDogdHJ1ZSxcbiAgJGZyYW1lLWdyaWQ6IHRydWVcbikge1xuXG4gIC8vIEJhc2UgZ3JpZCBzdHlsZXNcbiAgQGlmKCRiYXNlLWdyaWQpIHtcbiAgICBAaW5jbHVkZSB4eS1iYXNlLWdyaWQtY2xhc3NlcygpO1xuICB9XG5cbiAgLy8gTWFyZ2luIGdyaWRcbiAgQGlmKCRtYXJnaW4tZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LW1hcmdpbi1ncmlkLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFBhZGRpbmcgZ3JpZFxuICBAaWYoJHBhZGRpbmctZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LXBhZGRpbmctZ3JpZC1jbGFzc2VzKCk7XG4gIH1cblxuICAvLyBCbG9jayBncmlkXG4gIEBpZigkYmxvY2stZ3JpZCkge1xuICAgIEBpbmNsdWRlIHh5LWJsb2NrLWdyaWQtY2xhc3NlcygkbWFyZ2luLWdyaWQsICRwYWRkaW5nLWdyaWQpO1xuICB9XG5cbiAgLy8gQ29sbGFwc2UgZ3V0dGVyc1xuICBAaWYoJGNvbGxhcHNlKSB7XG4gICAgQGluY2x1ZGUgeHktY29sbGFwc2UtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICAvLyBPZmZzZXQgZ3V0dGVyc1xuICBAaWYoJG9mZnNldCkge1xuICAgIEBpbmNsdWRlIHh5LW9mZnNldC1jZWxsLWNsYXNzZXMoKTtcbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGdyaWRcbiAgQGlmKCR2ZXJ0aWNhbC1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktdmVydGljYWwtZ3JpZC1jbGFzc2VzKCRtYXJnaW4tZ3JpZCwgJHBhZGRpbmctZ3JpZCk7XG4gIH1cblxuICBAaWYgKCRmcmFtZS1ncmlkKSB7XG4gICAgQGluY2x1ZGUgeHktZnJhbWUtZ3JpZC1jbGFzc2VzKCR2ZXJ0aWNhbC1ncmlkLCAkbWFyZ2luLWdyaWQpXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGUgZ3V0dGVycyBmb3IgYSBjZWxsL2NvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgZWl0aGVyIG1hcmdpbiBvciBwYWRkaW5nLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb24gdG8gYXBwbHkgZ3V0dGVycyB0by4gQWNjZXB0cyBgdG9wYCwgYGJvdHRvbWAsIGBsZWZ0YCwgYHJpZ2h0YCBpbiBhbnkgY29tYmluYXRpb24uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkbmVnYXRpdmUgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIGd1dHRlciBhcyBhIG5lZ2F0aXZlIHZhbHVlLiBDb21tb25seSB1c2VkIGZvciBuZXN0ZWQgZ3JpZHMuXG5AbWl4aW4geHktZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogcmlnaHQgbGVmdCxcbiAgJG5lZ2F0aXZlOiBmYWxzZVxuKSB7XG4gICRvcGVyYXRvcjogaWYoJG5lZ2F0aXZlLCAnLScsICcnKTtcblxuICAvLyBJZiB3ZSBoYXZlIGRlY2xhcmVkIG5lZ2F0aXZlIGd1dHRlcnMsIGZvcmNlIHR5cGUgdG8gYG1hcmdpbi5cbiAgJGd1dHRlci10eXBlOiBpZigkbmVnYXRpdmUsICdtYXJnaW4nLCAkZ3V0dGVyLXR5cGUpO1xuXG4gIC8vIE91dHB1dCBvdXIgbWFyZ2luIGd1dHRlcnMuXG4gIEBpZiAodHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkZ3V0dGVycykge1xuICAgICAgJGd1dHRlcjogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgLyAyO1xuXG4gICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JHZhbHVlfTogdW5xdW90ZShcIiN7JG9wZXJhdG9yfSN7JGd1dHRlcn1cIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICh0eXBlLW9mKCRndXR0ZXJzKSA9PSAnbnVtYmVyJykge1xuICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXJzKSAvIDI7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBndXR0ZXIgcG9zaXRpb25cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAjeyRndXR0ZXItdHlwZX0tI3skdmFsdWV9OiB1bnF1b3RlKFwiI3skb3BlcmF0b3J9I3skZ3V0dGVyfVwiKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB4eS1ncmlkXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgbWF4IHdpZHRoIGNvbnRhaW5lciwgZGVzaWduZWQgdG8gaG91c2UgeW91ciBncmlkIGNvbnRlbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFskZ3JpZC1jb250YWluZXJdIC0gYSB3aWR0aCB0byBsaW1pdCB0aGUgY29udGFpbmVyIHRvLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGluZyBbJGdyaWQtY29udGFpbmVyLXBhZGRpbmddIC0gcGFkZGluZ3Mgb2YgdGhlIGNvbnRhaW5lci5cbkBtaXhpbiB4eS1ncmlkLWNvbnRhaW5lcihcbiAgJHdpZHRoOiAkZ3JpZC1jb250YWluZXIsXG4gICRwYWRkaW5nOiAkZ3JpZC1jb250YWluZXItcGFkZGluZ1xuKSB7XG4gIEBpbmNsdWRlIHh5LWd1dHRlcnMoJGd1dHRlcnM6ICRwYWRkaW5nLCAkZ3V0dGVyLXR5cGU6IHBhZGRpbmcpO1xuXG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgeW91ciBmbGV4IGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtob3Jpem9udGFsXSAtIEVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGRpcmVjdGlvbiBvZiBjZWxscyB3aXRoaW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBJZiB0aGUgY2VsbHMgd2l0aGluIHNob3VsZCB3cmFwIG9yIG5vdC5cbkBtaXhpbiB4eS1ncmlkKFxuICAkZGlyZWN0aW9uOiBob3Jpem9udGFsLFxuICAkd3JhcDogdHJ1ZVxuKSB7XG4gICRkaXJlY3Rpb246IGlmKCRkaXJlY3Rpb24gPT0gJ2hvcml6b250YWwnLCByb3csIGNvbHVtbik7XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6ICRkaXJlY3Rpb24gJHdyYXA7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gUmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRudW0gLSBOdW1iZXIgdG8gc3RyaXAgdW5pdCBmcm9tLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtKSB7XG4gIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gVXNpbmcgcmVtIGFzIGJhc2UgYWxsb3dzIGNvcnJlY3Qgc2NhbGluZ1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgJGNvdW50ID09IDEge1xuICAgIEByZXR1cm4gLXpmLXRvLXJlbSgkdmFsdWVzLCAkYmFzZSk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb3VudCB7XG4gICAgJHJlbS12YWx1ZXM6IGFwcGVuZCgkcmVtLXZhbHVlcywgLXpmLXRvLXJlbShudGgoJHZhbHVlcywgJGkpLCAkYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuLy8gQ29udmVydHMgYSB1bml0bGVzcywgcGl4ZWwsIG9yIHJlbSB2YWx1ZSB0byBlbSwgZm9yIHVzZSBpbiBicmVha3BvaW50cy5cbkBmdW5jdGlvbiAtemYtYnAtdG8tZW0oJHZhbHVlKSB7XG4gIC8vIFBpeGVsIGFuZCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byByZW1zXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyBvciB1bml0bGVzcygkdmFsdWUpIHtcbiAgICAkdmFsdWU6IHJlbS1jYWxjKCR2YWx1ZSwgJGJhc2U6IDE2cHgpO1xuICB9XG5cbiAgLy8gVGhlbiB0aGUgdmFsdWUgaXMgY29udmVydGVkIHRvIGVtc1xuICBAcmV0dXJuIHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFlbTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwgdmFsdWUgdG8gbWF0Y2hpbmcgcmVtIHZhbHVlLiAqQW55KiB2YWx1ZSBwYXNzZWQsIHJlZ2FyZGxlc3Mgb2YgdW5pdCwgaXMgYXNzdW1lZCB0byBiZSBhIHBpeGVsIHZhbHVlLiBCeSBkZWZhdWx0LCB0aGUgYmFzZSBwaXhlbCB2YWx1ZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgcmVtIHZhbHVlIGlzIHRha2VuIGZyb20gdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gUGl4ZWwgdmFsdWUgdG8gY29udmVydC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgW251bGxdIC0gQmFzZSBmb3IgcGl4ZWwgY29udmVyc2lvbi5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgbnVtYmVyIGluIHJlbXMsIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlIGFuZCB0aGUgYmFzZSBwaXhlbCB2YWx1ZS4gcmVtIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggYXMgaXMuXG5AZnVuY3Rpb24gLXpmLXRvLXJlbSgkdmFsdWUsICRiYXNlOiBudWxsKSB7XG4gIC8vIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIG51bWJlclxuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9ICdudW1iZXInIHtcbiAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gZW0gaW50byByZW0gaWYgc29tZW9uZSBoYW5kcyBvdmVyICdlbSdzXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ2VtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgKiAxcmVtO1xuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHJlbSBpZiB1bml0cyBmb3IgJHZhbHVlIGlzIG5vdCByZW0gb3IgZW1cbiAgQGlmIHVuaXQoJHZhbHVlKSAhPSAncmVtJyB7XG4gICAgJHZhbHVlOiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKSAqIDFyZW07XG4gIH1cblxuICAvLyBUdXJuIDByZW0gaW50byAwXG4gIEBpZiAkdmFsdWUgPT0gMHJlbSB7XG4gICAgJHZhbHVlOiAwO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbi8vLyBDb252ZXJ0cyBhIHBpeGVsLCBwZXJjZW50YWdlLCByZW0gb3IgZW0gdmFsdWUgdG8gYSB1bml0bGVzcyB2YWx1ZSBiYXNlZCBvbiBhIGdpdmVuIGZvbnQgc2l6ZS4gSWRlYWwgZm9yIHdvcmtpbmcgb3V0IHVuaXRsZXNzIGxpbmUgaGVpZ2h0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0IHRvIGEgdW5pdGxlc3MgbGluZSBoZWlnaHRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UgLSBUaGUgZm9udCBzaXplIHRvIHVzZSB0byB3b3JrIG91dCB0aGUgbGluZSBoZWlnaHQgLSBkZWZhdWx0cyB0byAkZ2xvYmFsLWZvbnQtc2l6ZVxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHVuaXRsZXNzLWNhbGMoJHZhbHVlLCAkYmFzZTogbnVsbCkge1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIEZpcnN0LCBsZXRzIGNvbnZlcnQgb3VyICRiYXNlIHRvIHBpeGVsc1xuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogKCRiYXNlIC8gMTAwJSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdyZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgQGlmIHVuaXQoJGJhc2UpID09ICdlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBOb3cgbGV0J3MgY29udmVydCBvdXIgdmFsdWUgdG8gcGl4ZWxzIHRvb1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICclJyB7XG4gICAgJHZhbHVlOiAoJHZhbHVlIC8gMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBzdHJpcC11bml0KCR2YWx1ZSkgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIC8vIGFzc3VtZSB0aGF0IGxpbmUtaGVpZ2h0cyBncmVhdGVyIHRoYW4gMTAgYXJlIG1lYW50IHRvIGJlIGFic29sdXRlIGluICdweCdcbiAgQGlmIHVuaXRsZXNzKCR2YWx1ZSkgYW5kICgkdmFsdWUgPiAxMCkge1xuICAgIEByZXR1cm4gJHZhbHVlIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBIaURQSSBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcyBmb3IgcmVzb2x1dGlvbnMuXG4vLy8gVmFsdWVzIG11c3QgcmVwcmVzZW50IHRoZSBkZXZpY2UgcGl4ZWxzIC8gd2ViIHBpeGVscyByYXRpb24gYW5kIGJlIHVuaXRsZXNzIG9yIGluIERQUFguXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgaGlkcGktMTogMSxcbiAgaGlkcGktMS01OiAxLjUsXG4gIGhpZHBpLTI6IDIsXG4gIHJldGluYTogMixcbiAgaGlkcGktMzogM1xuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBXZWIgc3RhbmRhcmQgUGl4ZWxzIHBlciBpbmNoLiAoMWRkcHggLyAkc3RkLXdlYi1kcGkpID0gMWRwaVxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtMy8jYWJzb2x1dGUtbGVuZ3Roc1xuICAkc3RkLXdlYi1kcGk6IDk2O1xuXG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgb2YgdGhlIGZvbGxvd2luZyBicmVha3BvaW50XG4gICRicC1uZXh0OiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1pbjogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1pbi13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IG51bGw7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBJZiBuYW1lZCwgbmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuICAkbmFtZTogbnVsbDtcbiAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSBIaURQSSBicmVha3BvaW50XG4gICRoaWRwaTogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgLy8gSWYgYSBicmVha3BvaW50IG5hbWUgaXMgZ2l2ZW4sIGdldCBpdHMgdmFsdWUgZnJvbSB0aGUgJGJyZWFrcG9pbnRzLyRicmVha3BvaW50cy1oaWRwaSBtYXAuXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cy1oaWRwaSwgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cy1oaWRwaSwgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dC1udW1iZXIoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApO1xuICAgICAgJGhpZHBpOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09ICdvbmx5JyB7XG4gICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgJ29ubHknIGFuZCAndXAnIGhhdmUgYSBtaW4gbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICd1cCcge1xuICAgICRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gIH1cbiAgLy8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgdmFsdWUsIHVzZSBpdCBhcyBtYXggbGltaXQuXG4gICAgQGlmIG5vdCAkbmFtZSB7XG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBuYW1lZCwgdGhlIG1heCBsaW1pdCBpcyB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnQgLSAxcHguXG4gICAgQGVsc2UgaWYgJGJwLW5leHQge1xuICAgICAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAgICAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgJGJwLW5leHQgLSAoMS8kc3RkLXdlYi1kcGkpLCAtemYtYnAtdG8tZW0oJGJwLW5leHQpIC0gMC4wMDEyNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJhdGUgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIG1pbiBhbmQgbWF4IGxpbWl0cy5cbiAgQGlmICRoaWRwaSB7XG4gICAgLy8gR2VuZXJhdGUgdmFsdWVzIGluIERQSSBpbnN0ZWFkIG9mIERQUFggZm9yIGFuIElFOS0xMS9PcGVyYSBtaW5pIGNvbXBhdGliaWxpdHkuXG4gICAgLy8gU2VlIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLW1lZGlhLXJlc29sdXRpb25cbiAgICAkYnAtbWluLWRwaTogaWYoJGJwLW1pbiwgJGJwLW1pbiAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1taW4pO1xuICAgICRicC1tYXgtZHBpOiBpZigkYnAtbWF4LCAkYnAtbWF4ICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1heCk7XG4gICAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgsICctd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8nLCAnLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvJyksXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLWRwaSwgJGJwLW1heC1kcGksICdtaW4tcmVzb2x1dGlvbicsICdtYXgtcmVzb2x1dGlvbicpLFxuICAgICAgJywgJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCk7XG4gIH1cbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBhbmQgYCRicmVha3BvaW50cy1oaWRwaWAgbWFwcywgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIElmIG11bHRpcGxlIHZhbHVlcyBhcmUgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBnZW5lcmF0ZSBhIG1lZGlhIHF1ZXJ5IGZvciBlYWNoIG9mIHRoZW0gYXMgZGVzY3JpYmVkIGFib3ZlLlxuLy8vIFNpbmNlIHRoZSBjb250ZW50IGlzIGR1cGxpY2F0ZWQgZm9yIGVhY2ggYnJlYWtwb2ludCwgdGhpcyBtaXhpbiBzaG91bGQgb25seSBiZSB1c2VkIHdpdGggcHJvcGVydGllcyB0aGF0XG4vLy8gY2hhbmdlIGFjcm9zcyBicmVha3BvaW50cy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZXMuLi4gLSBCcmVha3BvaW50IG5hbWUgb3IgcHgvcmVtL2VtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZXMuLi4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHZhbHVlcykge1xuICAgICR2YWx1ZTogbnRoKCR2YWx1ZXMsICRpKTtcbiAgICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsIG50aCgkdmFsdWUsIDEpKTtcbiAgICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcbiAgICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAgICRkaXI6IGlmKGxlbmd0aCgkdmFsdWUpID4gMSwgbnRoKCR2YWx1ZSwgMiksIHVwKTtcblxuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAgIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAgIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICAgIC8vIGdlbmVyYXRlIHByaW50IGlmIHRoZSBicmVha3BvaW50IGFmZmVjdHMgdGhlIHByaW50LWJyZWFrcG9pbnQgKG9yIHNtYWxsZXIpLlxuICAgICAgLy8gVGhpcyBtZWFucyB0aGUgY3VycmVudCBjb25kaXRpb24gb25seSBuZWVkcyB0byBiZSBleHRlbmRlZCBzbyAnZG93bicgYWx3YXlzIGdlbmVyYXRlcyBwcmludC5cbiAgICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgKCRicCA8PSAkcGJwIG9yICRkaXIgPT0gZG93bikge1xuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJ0cyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBudW1iZXIgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAkbnVtYmVyIC0gTnVtYmVyIHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgbnVtYmVyIGZvbGxvd2luZyBgJG51bWJlcmAsIGlmIGAkbnVtYmVyYCB3YXMgZm91bmQuIElmIGAkbnVtYmVyYCB3YXMgbm90IGZvdW5kLCBvciBgJG51bWJlcmAgd2FzIHRoZSBiaWdnZXN0IG51bWJlciBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQtbnVtYmVyKCRtYXAsICRudW1iZXIpIHtcblxuICAkbmV4dF9udW1iZXI6IG51bGw7XG5cbiAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgIEBpZiB0eXBlLW9mKCR2KSA9PSAnbnVtYmVyJyBhbmQgJHYgPiAkbnVtYmVyIGFuZCAoJG5leHRfbnVtYmVyID09IG51bGwgb3IgJHYgPCAkbmV4dF9udW1iZXIpIHtcbiAgICAgICRuZXh0X251bWJlcjogJHY7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV4dF9udW1iZXI7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmRfa2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kX2tleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmRfa2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuLy8vIFJldHVybiB0aGUgYmVzdCBicmVha3BvaW50IHRvIHVzZSBhY2NvcmRpbmcgdG8gdGhlIGNhbGxpbmcgY29udGV4dC4gSXQgcmV0dXJucyBpbiBvcmRlcjpcbi8vLyAxLiB0aGUgZ2l2ZW4gYCR2YWx1ZWAgYXJndW1lbnQgaWYgaXQgaXMgbm90IG51bGwuXG4vLy8gMi4gdGhlIGdsb2JhbCBicmVha3BvaW50IGNvbnRleHQgYCQtemYtc2l6ZWAgaWYgaXQgaXMgbm90IG51bGwgKGxpa2UgaWYgY2FsbGVkIGluc2lkZSB0aGVuIGBicmVha3BvaW50KClgIG1peGluKVxuLy8vIDMuIHRoZSBnaXZlbiBgJGRlZmF1bHRgIGFyZ3VtZW50LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgaW4gcHJpb3JpdHkgaWYgbm9uLW51bGwuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGVmYXVsdCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBieSBkZWZhdWx0IGlmIG5vIG90aGVyIHZhbHVlIGNhbiBiZSB1c2VkLlxuLy8vXG4vLy8gQHJldHVybiB7S2V5d29yZH0gVGhlIHJlc29sdmVkIGJyZWFrcG9pbnQuXG5AZnVuY3Rpb24gLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkdmFsdWU6IG51bGwsICRkZWZhdWx0OiBudWxsKSB7XG4gIEBpZiAoJHZhbHVlICE9IG51bGwpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAodmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSBhbmQgdHlwZS1vZigkLXpmLXNpemUpICE9ICdudW1iZXInKSBhbmQgJC16Zi1zaXplICE9IG51bGwge1xuICAgIEByZXR1cm4gJC16Zi1zaXplO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRkZWZhdWx0O1xuICB9XG59XG5cbi8vLyBSZXR1cm4gbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gdGhlIGdpdmVuIG1pbiBhbmQvb3IgbWF4IGxpbWl0cy5cbi8vLyBJZiBhIGxpbWl0IGlzIGVxdWFsIHRvIGBudWxsYCBvciBgMGAsIGl0IGlzIGlnbm9yZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1pbiBbMF0gLSBNaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggWzBdIC0gTWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWluLW5hbWUgWydtaW4td2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlbGltaXRlciBbJ21heC13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gTWVkaWEgUXVlcnkgc3RyaW5nLlxuQGZ1bmN0aW9uIC16Zi1icC1qb2luKFxuICAkbWluOiAwLFxuICAkbWF4OiAwLFxuICAkbWluLW5hbWU6ICdtaW4td2lkdGgnLFxuICAkbWF4LW5hbWU6ICdtYXgtd2lkdGgnXG4pIHtcbiAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICBpZigkbWluIGFuZCAkbWluID4gMCwgJygjeyRtaW4tbmFtZX06ICN7JG1pbn0pJywgbnVsbCksXG4gICAgaWYoJG1heCBhbmQgJG1heCA+IDAsICcoI3skbWF4LW5hbWV9OiAjeyRtYXh9KScsIG51bGwpLFxuICAgICcgYW5kICcpO1xufVxuXG4kc21hbGwtdXA6ICcnO1xuJHNtYWxsLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG4kbWVkaXVtLXVwOiAnJztcbiRtZWRpdW0tb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuJGxhcmdlLXVwOiAnJztcbiRsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHhsYXJnZS11cDogJyc7XG4keGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4eGxhcmdlLXVwOiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIGZsZXggdmFsdWUgZm9yIGEgY2VsbCBiYXNlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gVGhlIGNlbGwgZmxleCBwcm9wZXJ0eSB2YWx1ZS5cbkBmdW5jdGlvbiB4eS1jZWxsLWJhc2UoJHNpemU6IGZ1bGwpIHtcbiAgQGlmICgkc2l6ZSA9PSAnYXV0bycpIHtcbiAgICBAcmV0dXJuIDEgMSAwcHg7XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdncm93Jykge1xuICAgIEByZXR1cm4gMSAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgKCRzaXplID09ICdzaHJpbmsnIG9yICRzaXplID09ICdmdWxsJyBvciB6Zi1pcy1mcmFjdGlvbigkc2l6ZSwgJGFsbG93LW5vLWRlbm9taW5hdG9yOiB0cnVlKSkge1xuICAgIEByZXR1cm4gMCAwIGF1dG87XG4gIH1cbiAgQHJldHVybiBudWxsO1xufVxuXG4vLy8gQ2FsY3VsYXRlIHRoZSBzaXplIG9mIGEgY2VsbCBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgZ3V0dGVycyBtYXAgYCRndXR0ZXJzYC4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcnxNYXB9IFRoZSBjZWxsIGd1dHRlciBzaXplIG9yIHRoZSByZXNwb25zaXZlIGd1dHRlcnMgbWFwLlxuQGZ1bmN0aW9uIHh5LWNlbGwtZ3V0dGVycyhcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gIC8vIEZvciBgYXV0b2AsIHJldHVybnMgdGhlIHJlc3BvbnNpdmUgbWFwIGAkZ3V0dGVyc2AuXG4gIEBpZiAoJGJyZWFrcG9pbnQgPT0gJ2F1dG8nKSB7XG4gICAgQHJldHVybiAkZ3V0dGVycztcbiAgfVxuXG4gIC8vIFVzZSB0aGUgY29udGV4dHVhbCBicmVha3BvaW50IGJ5IGRlZmF1bHQuXG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50KTtcblxuICBAaWYgKCRicmVha3BvaW50KSB7XG4gICAgQHJldHVybiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXplcm8tYnJlYWtwb2ludCkgb3IgMDtcbiAgfVxufVxuXG4vLy8gUmV0dXJucyB0aGUgcGVyY2VudGFnZSBzaXplIG9mIGEgY2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRzaXplIFskZ3JpZC1jb2x1bW5zXSAtIFNpemUgdG8gbWFrZSB0aGUgY2VsbC4gWW91IGNhbiBwYXNzIGEgdmFsdWUgaW4gbXVsdGlwbGUgZm9ybWF0cywgc3VjaCBhcyBgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8zYC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFNpemUgb2YgdGhlIGNlbGwgKGluIHBlcmNlbnQpLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZShcbiAgJHNpemU6ICRncmlkLWNvbHVtbnNcbikge1xuICBAcmV0dXJuIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoJHNpemUsICRkZW5vbWluYXRvcjogJGdyaWQtY29sdW1ucyk7XG59XG5cbi8vLyBSZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBDU1MgdmFsdWUgZm9yIGEgY2VsbCBzaXplLlxuLy8vXG4vLy8gR3V0dGVycy1yZWxhdGVkIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQgZm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMgKGJ5IGRlZmF1bHQpIGFzIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgW2Z1bGxdIC0gVGhlIHNpemUgb2YgeW91ciBjZWxsLiBDYW4gYmUgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgIG9yIGFueSBmcmFjdGlvbiBsaWtlIGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCByZXR1cm5zIGEgbWFwIG9mIHNpemVzIGFkYXB0ZWQgdG8gcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ3xNYXB9IFRoZSBjZWxsIHNpemluZyBwcm9wZXJ0eSB2YWx1ZSwgb3IgYSByZXNwb25zaXZlIG1hcCBvZiB0aGVtLlxuQGZ1bmN0aW9uIHh5LWNlbGwtc2l6ZS1jc3MoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbFxuKSB7XG4gICRtYXJnaW4tZ3V0dGVyOiAwO1xuXG4gIEBpZiAoJHNpemUgPT0gJ2F1dG8nIG9yICRzaXplID09ICdzaHJpbmsnKSB7XG4gICAgQHJldHVybiBhdXRvO1xuICB9XG5cbiAgLy8gRm9yIGNlbGxzIHdpdGggbWFyZ2luIGd1dHRlcnMsIHRoZSBndXR0ZXIgaXMgaW5jbHVkZWQgaW4gdGhlIHdpZHRoLlxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuICAgICRtYXJnaW4tZ3V0dGVyOiB4eS1jZWxsLWd1dHRlcnMoJGd1dHRlcnMsICRicmVha3BvaW50KTtcbiAgICBAaWYgKCRtYXJnaW4tZ3V0dGVyID09IG51bGwpIHtcbiAgICAgIEBlcnJvciAneHktY2VsbC1zaXplOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsY3VsYXRlIHRoZSBjZWxsIHNpemUgKG51bWJlcilcbiAgJHNpemUtcmF3OiBpZigkc2l6ZSA9PSAnZnVsbCcsIDEwMCUsIHh5LWNlbGwtc2l6ZSgkc2l6ZSkpO1xuXG4gIC8vIENhbGN1bGF0ZSB0aGUgY2VsbCBDU1Mgc2l6ZSBpbmNsdWRpbmcgZ3V0dGVycyAoc3RyaW5nKVxuICAvLyBJZiB0aGUgY2VsbCBoYXMgcmVzcG9uc2l2ZSBtYXJnaW4gZ3V0dGVycywgcmV0dXJuIGEgcmVzcG9uc2l2ZSBtYXAgb2Ygc2l6ZXMuXG4gIEBpZiB0eXBlLW9mKCRtYXJnaW4tZ3V0dGVyKSA9PSAnbWFwJyB7XG4gICAgJHJlc3BvbnNpdmUtY3NzLXNpemVzOiAoKTtcblxuICAgIEBlYWNoICRicCwgJG1nIGluICRtYXJnaW4tZ3V0dGVyIHtcbiAgICAgICRzaXplLWNzczogaWYoJG1nID09IDAsICRzaXplLXJhdywgY2FsYygjeyRzaXplLXJhd30gLSAje3JlbS1jYWxjKCRtZyl9KSk7XG4gICAgICAkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXM6IG1hcC1tZXJnZSgkcmVzcG9uc2l2ZS1jc3Mtc2l6ZXMsICgkYnA6ICRzaXplLWNzcykpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3BvbnNpdmUtY3NzLXNpemVzO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIGEgc2luZ2xlIENTUyBzaXplLlxuICBAZWxzZSB7XG4gICAgJGNzcy1zaXplOiBpZigkbWFyZ2luLWd1dHRlciA9PSAwLCAkc2l6ZS1yYXcsIGNhbGMoI3skc2l6ZS1yYXd9IC0gI3tyZW0tY2FsYygkbWFyZ2luLWd1dHRlcil9KSk7XG4gICAgQHJldHVybiAkY3NzLXNpemU7XG4gIH1cbn1cblxuLy8vIFNldHMgYmFzZSBmbGV4IHByb3BlcnRpZXMgZm9yIGNlbGxzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIEFjY2VwdHMgYGZ1bGxgLCBgYXV0b2AsIGBzaHJpbmtgLCBgZ3Jvd2AsIG9yIGFueSBvdGhlciB2YWx1ZSByZXByZXNlbnRpbmcgYSBjZWxsIHNpemUgKGl0IHdpbGwgYmUgdHJlYXRlZCBhcyBgc2hyaW5rYCkuXG5AbWl4aW4geHktY2VsbC1iYXNlKCRzaXplOiBmdWxsKSB7XG4gICRiYXNlOiB4eS1jZWxsLWJhc2UoJHNpemUpO1xuXG4gIGZsZXg6ICN7JGJhc2V9O1xuXG4gIC8vIFNldCBiYXNlIHN0eWxlcyBmb3IgXCJmdWxsXCIgb25seVxuICBAaWYoJHNpemUgPT0gJ2Z1bGwnKSB7XG4gICAgbWluLWhlaWdodDogMHB4O1xuICAgIG1pbi13aWR0aDogMHB4O1xuICB9XG59XG5cbi8vLyBSZXNldHMgYSBjZWxscyB3aWR0aCAob3IgaGVpZ2h0IGlmIHZlcnRpY2FsIGlzIHRydWUpIGFzIHdlbGwgYXMgc3RyaXBzIGl0cyBndXR0ZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtcmVzZXQoJHZlcnRpY2FsOiB0cnVlKSB7XG4gICRkaXJlY3Rpb246IGlmKCR2ZXJ0aWNhbCA9PSB0cnVlLCBoZWlnaHQsIHdpZHRoKTtcbiAgI3skZGlyZWN0aW9ufTogYXV0bztcbiAgbWF4LSN7JGRpcmVjdGlvbn06IG5vbmU7XG59XG5cbi8vLyBTZXRzIHNpemluZyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEd1dHRlcnMtcmVsYXRlZCBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIGZvciBjZWxscyB3aXRoIG1hcmdpbiBndXR0ZXJzIChieSBkZWZhdWx0KSBhcyB0aGUgZ3V0dGVyIGlzIGluY2x1ZGVkIGluIHRoZSB3aWR0aC5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gVHlwZSBvZiBndXR0ZXIgdG8gb3V0cHV0LiBBY2NlcHRzIGBtYXJnaW5gLCBgcGFkZGluZ2Agb3IgYG5vbmVgLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uIElmIGBhdXRvYCwgZ2VuZXJhdGVzIHNpemVzIGFkYXB0ZWQgZm9yIHJlc3BvbnNpdmUgZ3V0dGVycy4gSWYgdXNpbmcgd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdGhpcyB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IHVubGVzcyBtYW51YWxseSBlbnRlcmVkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHZlcnRpY2FsIFtmYWxzZV0gLSBTZXQgdG8gdHJ1ZSB0byBvdXRwdXQgdmVydGljYWwgKGhlaWdodCkgc3R5bGVzIHJhdGhlciB0aGFuIHdpZHRocy5cbkBtaXhpbiB4eS1jZWxsLXNpemUoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRzaXplczogeHktY2VsbC1zaXplLWNzcygkc2l6ZSwgJGd1dHRlcnMsICRndXR0ZXItdHlwZSwgJGJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgaGVpZ2h0LCB3aWR0aCk7XG5cbiAgQGlmICh0eXBlLW9mKCRzaXplcykgPT0gJ21hcCcpIHtcbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkc2l6ZXMpIHtcbiAgICAgICN7JGRpcmVjdGlvbn06ICQtemYtYnAtdmFsdWU7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAjeyRkaXJlY3Rpb259OiAkc2l6ZXM7XG4gIH1cbn1cblxuLy8vIFNldHMgZ3V0dGVycyBwcm9wZXJ0aWVzIGZvciBjZWxscy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLW1hcmdpbi1ndXR0ZXJzXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUeXBlIG9mIGd1dHRlciB0byBvdXRwdXQuIEFjY2VwdHMgYG1hcmdpbmAsIGBwYWRkaW5nYCBvciBgbm9uZWAuXG4vLy8gQHBhcmFtIHtMaXN0fSAkZ3V0dGVyLXBvc2l0aW9uIFtudWxsXSAtIFRoZSBwb3NpdGlvbiB0byBhcHBseSBndXR0ZXJzIHRvLiBBY2NlcHRzIGB0b3BgLCBgYm90dG9tYCwgYGxlZnRgLCBgcmlnaHRgIGluIGFueSBjb21iaW5hdGlvbi4gQnkgZGVmYXVsdCBgcmlnaHQgbGVmdGAgZm9yIGhvcml6b250YWwgY2VsbHMgYW5kIGB0b3AgYm90dG9tYCBmb3IgdmVydGljYWwgY2VsbHMuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IFtudWxsXSAtIFRoZSBuYW1lIG9mIHRoZSBicmVha3BvaW50IHNpemUgaW4geW91ciBndXR0ZXJzIG1hcCB0byBnZXQgdGhlIHNpemUgZnJvbS4gSWYgYGF1dG9gLCBnZW5lcmF0ZXMgcmVzcG9uc2l2ZSBndXR0ZXJzLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIERpcmVjdGlvbiBvZiB0aGUgZ3V0dGVycyB0byBvdXRwdXQuIFNlZSBgJGd1dHRlci1wb3NpdGlvbmAuXG5AbWl4aW4geHktY2VsbC1ndXR0ZXJzKFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIC8vIEdldCB0aGUgZGVmYXVsdCBndXR0ZXIgcG9zaXRpb24gYWNjb3JkaW5nIHRvIGNlbGwgZGlyZWN0aW9uXG4gIEBpZigkZ3V0dGVyLXBvc2l0aW9uID09IG51bGwpIHtcbiAgICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG4gIH1cblxuICAvLyBHZXQgdGhlIGd1dHRlciB3aWR0aCBmb3IgdGhpcyBicmVha3BvaW50XG4gICRndXR0ZXItd2lkdGg6IHh5LWNlbGwtZ3V0dGVycygkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICBAaWYgKCRndXR0ZXItd2lkdGggPT0gbnVsbCkge1xuICAgIEBlcnJvciAneHktY2VsbC1ndXR0ZXJzOiBubyBndXR0ZXJzIHdlcmUgZm91bmQgaW4gYCRndXR0ZXJzYCBmb3IgXCIkYnJlYWtwb2ludDogI3skYnJlYWtwb2ludH1cIic7XG4gIH1cblxuICBAaWYgKCRndXR0ZXItdHlwZSBhbmQgJGd1dHRlci10eXBlICE9IG5vbmUpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXItd2lkdGgsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBjZWxsIGZvciB5b3VyIGdyaWQuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbZnVsbF0gLSBUaGUgc2l6ZSBvZiB5b3VyIGNlbGwuIENhbiBiZSBgZnVsbGAgKDEwMCUgd2lkdGgpLCBgYXV0b2AgKHVzZSBhbGwgYXZhaWxhYmxlIHNwYWNlKSwgYHNocmlua2AgKHVzZSBvbmx5IHRoZSByZXF1aXJlZCBzcGFjZSkgb3IgYW55IGZyYWN0aW9uIChgNmAsIGA1MCVgLCBgMSBvZiAyYCBvciBgMS8yYC4uLikuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiBgYXV0b2AsIGdlbmVyYXRlcyByZXNwb25zaXZlIGd1dHRlcnMuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gU2V0IHRvIHRydWUgdG8gb3V0cHV0IHZlcnRpY2FsIChoZWlnaHQpIHN0eWxlcyByYXRoZXIgdGhhbiB3aWR0aHMuXG4vLy8gQHBhcmFtIHtMaXN0fSAkb3V0cHV0IFsoYmFzZSBzaXplIGd1dHRlcnMpXSAtIENlbGwgcGFydHMgdG8gb3V0cHV0LiBZb3Ugd2lsbCBuZWVkIHRvIGdlbmVyYXRlIG90aGVycyBwYXJ0cyBvZiB0aGUgY2VsbCBzZXBlcmF0ZWx5LCBpdCBtYXkgbm90IHdvcmsgcHJvcGVybHkgb3RoZXJ3aXNlLlxuQG1peGluIHh5LWNlbGwoXG4gICRzaXplOiBmdWxsLFxuICAkZ3V0dGVyLW91dHB1dDogbnVsbCxcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGd1dHRlci1wb3NpdGlvbjogbnVsbCxcbiAgJGJyZWFrcG9pbnQ6IG51bGwsXG4gICR2ZXJ0aWNhbDogZmFsc2UsXG4gICRvdXRwdXQ6IChiYXNlIHNpemUgZ3V0dGVycylcbikge1xuICAvLyBEZWZhdWx0IGZvciAkZ3V0dGVyLW91dHB1dFxuICBAaWYgKCRndXR0ZXItb3V0cHV0ICE9IG51bGwpIHtcbiAgICBAd2FybiAneHktY2VsbDogJGd1dHRlci1vdXRwdXQgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBTZWUgbWlncmF0aW9uIG5vdGVzIGF0IGh0dHBzOi8vZ2l0LmlvL2ZvdW5kYXRpb24tNi02LTAnO1xuICAgIEBpZiAoJGd1dHRlci1vdXRwdXQgPT0gZmFsc2UpIHtcbiAgICAgICRvdXRwdXQ6IHNsLXJlbW92ZSgkb3V0cHV0LCBndXR0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGJhc2UpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1iYXNlKCRzaXplKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIHNpemUpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1zaXplKCRzaXplLCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsKTtcbiAgfVxuICBAaWYgKGluZGV4KCRvdXRwdXQsIGd1dHRlcnMpKSB7XG4gICAgQGluY2x1ZGUgeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXItcG9zaXRpb24sICRicmVha3BvaW50LCAkdmVydGljYWwpO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgc2l6ZWQgZ3JpZC4gVXNlZCB0byBnZW5lcmF0ZSBvdXIgZ3JpZCBjbGFzc2VzLlxuLy8vXG4vLy8gYHh5LWNlbGwtc3RhdGljKClgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC5cbi8vLyBVc2UgYHh5LWNlbGwoKWAgaW5zdGVhZCB3aXRoIGAkb3V0cHV0OiAoc2l6ZSBndXR0ZXJzKWAgdG8gbm90IGdlbmVyYXRlIHRoZSBjZWxsIGJhc2UuXG4vLy8gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wXG4vLy9cbi8vLyBAZGVwcmVjYXRlZCB2Ni42LjBcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFtmdWxsXSAtIFRoZSBzaXplIG9mIHlvdXIgY2VsbC4gQ2FuIGJlIGBmdWxsYCAoMTAwJSB3aWR0aCksIGBhdXRvYCAodXNlIGFsbCBhdmFpbGFibGUgc3BhY2UpLCBgc2hyaW5rYCAodXNlIG9ubHkgdGhlIHJlcXVpcmVkIHNwYWNlKSBvciBhbnkgZnJhY3Rpb24gKGA2YCwgYDUwJWAsIGAxIG9mIDJgIG9yIGAxLzJgLi4uKS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRndXR0ZXItb3V0cHV0IFt0cnVlXSAtIFdoZXRoZXIgb3Igbm90IHRvIG91dHB1dCBndXR0ZXJzLiBBbHdheXMgYHRydWVgIGZvciBtYXJnaW4gZ3V0dGVycy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuQG1peGluIHh5LWNlbGwtc3RhdGljKFxuICAkc2l6ZTogZnVsbCxcbiAgJGd1dHRlci1vdXRwdXQ6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1tYXJnaW4tZ3V0dGVycyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRicmVha3BvaW50OiAkLXpmLXplcm8tYnJlYWtwb2ludCxcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gIEB3YXJuICd4eS1jZWxsLXN0YXRpYygpIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZC4gVXNlIFwieHktY2VsbCgpXCIgaW5zdGVhZC4gU2VlIG1pZ3JhdGlvbiBub3RlcyBhdCBodHRwczovL2dpdC5pby9mb3VuZGF0aW9uLTYtNi0wJztcblxuICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuICAkZ3V0dGVyLXBvc2l0aW9uOiBpZigkdmVydGljYWwgPT0gdHJ1ZSwgdG9wIGJvdHRvbSwgbGVmdCByaWdodCk7XG5cbiAgJC1ndXR0ZXItb3V0cHV0OiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsIHRydWUsICRndXR0ZXItb3V0cHV0KTtcbiAgJC1ndXR0ZXItbWFyZ2luOiBpZigkZ3V0dGVyLXR5cGUgPT0gJ21hcmdpbicsICRndXR0ZXIsIDApO1xuXG4gIEBpbmNsdWRlIC14eS1jZWxsLXByb3BlcnRpZXMoJHNpemUsICQtZ3V0dGVyLW1hcmdpbiwgJHZlcnRpY2FsKTtcbiAgQGlmICgkLWd1dHRlci1vdXRwdXQpIHtcbiAgICBAaW5jbHVkZSB4eS1ndXR0ZXJzKCRndXR0ZXIsICRndXR0ZXItdHlwZSwgJGd1dHRlci1wb3NpdGlvbik7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxNikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cblxuLy8vIFBhcnNlIHRoZSBnaXZlbiBgJGZyYWN0aW9uYCB0byBudW1lcmF0b3JzIGFuZCBkZW51bWVyYXRvcnMuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICRmcmFjdGlvbiAtIFZhbHVlIHJlcHJlc2VudGluZyBhIGZyYWN0aW9uIHRvIHBhcnNlLiBJdCBjYW4gYmUgZm9ybWF0dGVkIGFzIGA1MCVgLCBgMSBvZiAyYCwgYDEvMmAgb3IgYDUwYCAobm8gZGVub21pbmF0b3Igd291bGQgYmUgcmV0dXJuZWQpLlxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gTGlzdCBvZiBwYXJzZWQgdmFsdWVzIHdpdGggbnVtZXJhdG9yIGF0IGZpcnN0IHBvc2l0aW9uIGFuZCBkZW51bWVyYXRvciBhcyBzZWNvbmQuIFRoZXNlIHZhbHVlcyBtYXkgYmUgbnVsbC5cbkBmdW5jdGlvbiB6Zi1wYXJzZS1mcmFjdGlvbigkZnJhY3Rpb24pIHtcblxuICBAaWYgdHlwZS1vZigkZnJhY3Rpb24pID09ICdudW1iZXInIHtcbiAgICAvLyBcIjUwJVwiXG4gICAgQGlmIHVuaXQoJGZyYWN0aW9uKSA9PSAnJScge1xuICAgICAgQHJldHVybiAoc3RyaXAtdW5pdCgkZnJhY3Rpb24pLCAxMDApO1xuICAgIH1cbiAgICBAZWxzZSBpZiAodW5pdCgkZnJhY3Rpb24pID09ICcnKSB7XG4gICAgICAvLyBcIjAuNVwiXG4gICAgICBAaWYgJGZyYWN0aW9uIDwgMSB7XG4gICAgICAgIEByZXR1cm4gKCRmcmFjdGlvbiAqIDEwMCwgMTAwKTtcbiAgICAgIH1cbiAgICAgIC8vIFwiNTBcIlxuICAgICAgQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICgkZnJhY3Rpb24sIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIHR5cGUtb2YoJGZyYWN0aW9uKSA9PSAnbGlzdCcge1xuICAgIC8vIFwiNTAgb2YgMTAwXCIsIFwiNTAvMTAwXCIuLi5cbiAgICBAaWYgbGVuZ3RoKCRmcmFjdGlvbikgPT0gM1xuICAgICAgYW5kIHR5cGUtb2YobnRoKCRmcmFjdGlvbiwgMSkgPT0gJ251bWJlcicpXG4gICAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAzKSA9PSAnbnVtYmVyJykge1xuICAgICAgQHJldHVybiAobnRoKCRmcmFjdGlvbiwgMSksIG50aCgkZnJhY3Rpb24sIDMpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIChudWxsLCBudWxsKTtcbn1cblxuLy8vIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLiBTdXBwb3J0cyBmb3JtYXRzIGxpa2UgYDUwJWAsIGAxIG9mIDJgLCBgMSBwZXIgMmAgb3IgYDEvMmAuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFZhbHVlIHRvIHRlc3QuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWxsb3ctbm8tZGVub21pbmF0b3IgW2ZhbHNlXSAtIElmIGB0cnVlYCwgc2ltcGxlIG51bWJlcnMgd2l0aG91dCBkZW5vbWluYXRvcnMgbGlrZSBgNTBgIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbkBmdW5jdGlvbiB6Zi1pcy1mcmFjdGlvbigkdmFsdWUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogZmFsc2UpIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJHZhbHVlKTtcbiAgQHJldHVybiBub3QobnRoKCRwYXJzZWQsIDEpID09IG51bGxcbiAgICBvciAobnRoKCRwYXJzZWQsIDIpID09IG51bGwgYW5kICRhbGxvdy1uby1kZW5vbWluYXRvciA9PSBmYWxzZSkpO1xufVxuXG4vLy8gQ2FsY3VsYXRlIGEgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gZnJhY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlLCBmb3JtYXR0ZWQgYXMgYDUwYCAocmVsYXRpdmUgdG8gYCRkZW5vbWluYXRvcmApLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGRlbm9taW5hdG9yIC0gRGVmYXVsdCB2YWx1ZSB0byB1c2UgYXMgZGVub21pbmF0b3Igd2hlbiBgJGZyYWN0aW9uYCByZXByZXNlbnRzIGFuIGFic29sdXRlIHZhbHVlLlxuQGZ1bmN0aW9uIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoXG4gICRmcmFjdGlvbixcbiAgJGRlbm9taW5hdG9yOiBudWxsXG4pIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKTtcbiAgJHBhcnNlZC1ub21pbmF0b3I6IG50aCgkcGFyc2VkLCAxKTtcbiAgJHBhcnNlZC1kZW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDIpO1xuXG4gIEBpZiAkcGFyc2VkLW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG4gIEBpZiAkcGFyc2VkLWRlbm9taW5hdG9yID09IG51bGwge1xuICAgIEBpZiB0eXBlLW9mKCRkZW5vbWluYXRvcikgPT0gJ251bWJlcicge1xuICAgICAgJHBhcnNlZC1kZW5vbWluYXRvcjogJGRlbm9taW5hdG9yO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0Vycm9yIHdpdGggXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gQSBkZWZhdWx0IFwiJGRlbm9taW5hdG9yXCIgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBhYnNvbHV0ZSB2YWx1ZXMnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gcGVyY2VudGFnZSgkcGFyc2VkLW5vbWluYXRvciAvICRwYXJzZWQtZGVub21pbmF0b3IpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIFNpemVzIGNoaWxkIGVsZW1lbnRzIHNvIHRoYXQgYCRuYCBudW1iZXIgb2YgaXRlbXMgYXBwZWFyIG9uIGVhY2ggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gTnVtYmVyIG9mIGVsZW1lbnRzIHRvIGRpc3BsYXkgcGVyIHJvdy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFsnLmNlbGwnXSAtIFNlbGVjdG9yKHMpIHRvIHVzZSBmb3IgY2hpbGQgZWxlbWVudHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZ3V0dGVyLW91dHB1dCBbbnVsbF0gLSBbREVQUkVDQVRFRF0gV2hldGhlciBvciBub3QgdG8gb3V0cHV0IGd1dHRlcnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtbWFyZ2luLWd1dHRlcnNdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRndXR0ZXItdHlwZSBbbWFyZ2luXSAtIFR5cGUgb2YgZ3V0dGVyIHRvIG91dHB1dC4gQWNjZXB0cyBgbWFyZ2luYCwgYHBhZGRpbmdgIG9yIGBub25lYC5cbi8vLyBAcGFyYW0ge0xpc3R9ICRndXR0ZXItcG9zaXRpb24gW251bGxdIC0gVGhlIHBvc2l0aW9uIHRvIGFwcGx5IGd1dHRlcnMgdG8uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLiBCeSBkZWZhdWx0IGByaWdodCBsZWZ0YCBmb3IgaG9yaXpvbnRhbCBjZWxscyBhbmQgYHRvcCBib3R0b21gIGZvciB2ZXJ0aWNhbCBjZWxscy5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIGJyZWFrcG9pbnQgdG8gdXNlIGZvciB0aGUgY2VsbCBnZW5lcmF0aW9uLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIFNldCB0byB0cnVlIHRvIG91dHB1dCB2ZXJ0aWNhbCAoaGVpZ2h0KSBzdHlsZXMgcmF0aGVyIHRoYW4gd2lkdGhzLlxuLy8vIEBwYXJhbSB7TGlzdH0gJG91dHB1dCBbKGJhc2Ugc2l6ZSBndXR0ZXJzKV0gLSBDZWxsIHBhcnRzIHRvIG91dHB1dC4gWW91IHdpbGwgbmVlZCB0byBnZW5lcmF0ZSBvdGhlcnMgcGFydHMgb2YgdGhlIGNlbGwgc2VwZXJhdGVseSwgaXQgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSBvdGhlcndpc2UuXG5AbWl4aW4geHktZ3JpZC1sYXlvdXQoXG4gICRuLFxuICAkc2VsZWN0b3I6ICcuY2VsbCcsXG4gICRndXR0ZXItb3V0cHV0OiBudWxsLFxuICAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gICRndXR0ZXItdHlwZTogbWFyZ2luLFxuICAkZ3V0dGVyLXBvc2l0aW9uOiBudWxsLFxuICAkYnJlYWtwb2ludDogbnVsbCxcbiAgJHZlcnRpY2FsOiBmYWxzZSxcbiAgJG91dHB1dDogKGJhc2Ugc2l6ZSBndXR0ZXJzKVxuKSB7XG4gICRzaXplOiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICYgPiAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIHh5LWNlbGwoJHNpemUsICRndXR0ZXItb3V0cHV0LCAkZ3V0dGVycywgJGd1dHRlci10eXBlLCAkZ3V0dGVyLXBvc2l0aW9uLCAkYnJlYWtwb2ludCwgJHZlcnRpY2FsLCAkb3V0cHV0KTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHh5LWdyaWRcbi8vLy9cblxuLy8vIENvbGxhcHNlcyB0aGUgZ3JpZCBhIGNlbGxzIHdpdGhpbiBpdC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWy5jZWxsXSAtIFRoZSBjaGlsZCBlbGVtZW50IHRvIHJlbW92ZSB0aGUgZ3V0dGVyIGZyb20uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZ3V0dGVyLXR5cGUgW21hcmdpbl0gLSBUaGUgdHlwZSBvZiBndXR0ZXIgdG8gcmVtb3ZlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGd1dHRlci1wb3NpdGlvbiBbcmlnaHQgbGVmdF0gLSBUaGUgcG9zaXRpb25zIHRvIHJlbW92ZSBndXR0ZXJzIGZyb20uIEFjY2VwdHMgYHRvcGAsIGBib3R0b21gLCBgbGVmdGAsIGByaWdodGAgaW4gYW55IGNvbWJpbmF0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJG1pbi1icmVha3BvaW50IFskLXpmLXplcm8tYnJlYWtwb2ludF0gLSBNaW5pbXVtIGJyZWFrcG9pbnQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGZvciB3aGljaCB0byBjb2xsYXBzZSB0aGUgZ3V0dGVyLlxuQG1peGluIHh5LWdyaWQtY29sbGFwc2UoXG4gICRzZWxlY3RvcjogJy5jZWxsJyxcbiAgJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gICRndXR0ZXItcG9zaXRpb246IHJpZ2h0IGxlZnQsXG4gICRtaW4tYnJlYWtwb2ludDogJC16Zi16ZXJvLWJyZWFrcG9pbnRcbikge1xuICAvLyBGaXJzdCwgbGV0cyBuZWdhdGUgYW55IG1hcmdpbnMgb24gdGhlIHRvcCBsZXZlbFxuICBAaWYgKCRndXR0ZXItdHlwZSA9PSAnbWFyZ2luJykge1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWluLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBlYWNoICR2YWx1ZSBpbiAkZ3V0dGVyLXBvc2l0aW9uIHtcbiAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgIH1cblxuICAgICAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgICAgbWFyZ2luLSN7JHZhbHVlfTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICRleGNsdWRlZC1icHM6IC16Zi1icmVha3BvaW50cy1sZXNzLXRoYW4oJG1pbi1icmVha3BvaW50KTtcblxuICAgIC8vIE91dHB1dCBuZXcgd2lkdGhzIHRvIG5vdCBpbmNsdWRlIGd1dHRlcnNcbiAgICBAZWFjaCAkYnAgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYoc2wtY29udGFpbigkZXhjbHVkZWQtYnBzLCAkYnApKSB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcbiAgICAgICAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgICAgICAgID4gLiN7JGJwfS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHh5LWNlbGwtc2l6ZSgkaSwgJGd1dHRlci10eXBlOiBub25lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG4gICAgICAgICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAgICAgICA+IC4jeyRicH0tI3skaX0ge1xuICAgICAgICAgICAgICBAaW5jbHVkZSB4eS1jZWxsLXNpemUoJGksICRndXR0ZXItdHlwZTogbm9uZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1pbi1icmVha3BvaW50KSB7XG4gICAgICBAZWFjaCAkdmFsdWUgaW4gJGd1dHRlci1wb3NpdGlvbiB7XG4gICAgICAgIG1hcmdpbi0jeyR2YWx1ZX06IDA7XG4gICAgICB9XG5cbiAgICAgID4gI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICRndXR0ZXItcG9zaXRpb24ge1xuICAgICAgICAgIHBhZGRpbmctI3skdmFsdWV9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgeHktZ3JpZFxuLy8vL1xuXG4vLy8gUmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgQ1NTIHZhbHVlIHRvIG9mZnNldCBhIGNlbGwuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgW251bGxdIC0gVGhlIG5hbWUgb2YgdGhlIGJyZWFrcG9pbnQgc2l6ZSBpbiB5b3VyIGd1dHRlcnMgbWFwIHRvIGdldCB0aGUgc2l6ZSBmcm9tLiBJZiB1c2luZyB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0aGlzIHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgdW5sZXNzIG1hbnVhbGx5IGVudGVyZWQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfFN0cmluZ30gVGhlIGNlbGwgb2Zmc2V0IHByb3BlcnR5IHZhbHVlLlxuQGZ1bmN0aW9uIHh5LWNlbGwtb2Zmc2V0KFxuICAkbixcbiAgJGd1dHRlcnM6ICRncmlkLW1hcmdpbi1ndXR0ZXJzLFxuICAkZ3V0dGVyLXR5cGU6IG1hcmdpbixcbiAgJGJyZWFrcG9pbnQ6IG51bGxcbikge1xuICAkYnJlYWtwb2ludDogLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkYnJlYWtwb2ludCwgJGRlZmF1bHQ6ICQtemYtemVyby1icmVha3BvaW50KTtcbiAgJHNpemU6IHh5LWNlbGwtc2l6ZSgkbik7XG5cbiAgJG9mZnNldDogJHNpemU7XG4gIEBpZiAoJGd1dHRlci10eXBlID09ICdtYXJnaW4nKSB7XG4gICAgJGd1dHRlcjogcmVtLWNhbGMoeHktY2VsbC1ndXR0ZXJzKCRndXR0ZXJzLCAkYnJlYWtwb2ludCkgLyAyKTtcbiAgICAkb2Zmc2V0OiBpZigkZ3V0dGVyID09IDAsICRzaXplLCBjYWxjKCN7JHNpemV9ICsgI3skZ3V0dGVyfSkpO1xuICB9XG4gIEByZXR1cm4gJG9mZnNldDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0L2JvdHRvbSBieSBgJG5gIGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFNpemUgdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgeHktY2VsbCgpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1tYXJnaW4tZ3V0dGVyc10gTWFwIG9mIGd1dHRlcnMgb3Igc2luZ2xlIHZhbHVlIHRvIHVzZSBmb3IgcmVzcG9uc2l2ZSBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGd1dHRlci10eXBlIFttYXJnaW5dIFRoZSB0eXBlIG9mIGd1dHRlciB0byB1c2UuIENhbiBiZSBgbWFyZ2luYCBvciBgcGFkZGluZ2Bcbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBmb3IgYCRndXR0ZXJzYC4gSXQgY2FuIGJlIGEgYnJlYWtwb2ludCBuYW1lLCBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIGBhdXRvYCBmb3IgYWxsIGJyZWFrcG9pbnRzLiBJZiBhIGxpc3QgaXMgZ2l2ZW4sIG1lZGlhLXF1ZXJpZXMgd2lsbCBiZSBnZW5lcmF0ZWQuIElmIHVzaW5nIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRoaXMgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSB1bmxlc3MgbWFudWFsbHkgZW50ZXJlZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIFNldHMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgb2Zmc2V0LiBJZiBzZXQgdG8gdHJ1ZSB3aWxsIGFwcGx5IG1hcmdpbi10b3AgaW5zdGVhZC5cbkBtaXhpbiB4eS1jZWxsLW9mZnNldChcbiAkbixcbiAkZ3V0dGVyczogJGdyaWQtbWFyZ2luLWd1dHRlcnMsXG4gJGd1dHRlci10eXBlOiBtYXJnaW4sXG4gJGJyZWFrcG9pbnQ6IG51bGwsXG4gJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRicmVha3BvaW50OiAtemYtY3VycmVudC1icmVha3BvaW50KCRicmVha3BvaW50LCAkZGVmYXVsdDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICAkZGlyZWN0aW9uOiBpZigkdmVydGljYWwsICd0b3AnLCAkZ2xvYmFsLWxlZnQpO1xuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oJGJyZWFrcG9pbnQsICRtZWRpYS1xdWVyaWVzOiAnZm9yLWxpc3RzJykge1xuICAgICRvZmZzZXQ6IHh5LWNlbGwtb2Zmc2V0KCRuLCAkZ3V0dGVycywgJGd1dHRlci10eXBlKTtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogI3skb2Zmc2V0fTtcbiAgfVxufVxuIiwiLy8vIE1vZGlmaWVzIGEgZ3JpZCB0byBnaXZlIGl0IFwiZnJhbWVcIiBiZWhhdmlvciAobm8gb3ZlcmZsb3csIG5vIHdyYXAsIHN0cmV0Y2ggYmVoYXZpb3IpXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICR2ZXJ0aWNhbCBbZmFsc2VdIC0gSXMgZ3JpZCB2ZXJ0aWNhbCBvciBob3Jpem9udGFsLiBTaG91bGQgbWF0Y2ggZ3JpZC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRuZXN0ZWQgW2ZhbHNlXSAtIElzIGdyaWQgbmVzdGVkIG9yIG5vdC4gSWYgbmVzdGVkIGlzIHRydWUgdGhpcyBzZXRzIHRoZSBmcmFtZSB0byAxMDAlIGhlaWdodCwgb3RoZXJ3aXNlIHdpbGwgYmUgMTAwdmguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbbnVsbF0gLSBNYXAgb3Igc2luZ2xlIHZhbHVlIGZvciBndXR0ZXJzLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkYnJlYWtwb2ludCBbbnVsbF0gLSBUaGUgbmFtZSBvZiB0aGUgYnJlYWtwb2ludCBzaXplIGluIHlvdXIgZ3V0dGVycyBtYXAgdG8gZ2V0IHRoZSBzaXplIGZyb20uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkaW5jbHVkZS1iYXNlIFt0cnVlXSAtIEluY2x1ZGUgdGhlIGJhc2Ugc3R5bGVzIHRoYXQgZG9uJ3QgdmFyeSBwZXIgYnJlYWtwb2ludC5cbkBtaXhpbiB4eS1ncmlkLWZyYW1lKFxuICAkdmVydGljYWw6IGZhbHNlLFxuICAkbmVzdGVkOiBmYWxzZSxcbiAgJGd1dHRlcnM6IG51bGwsXG4gICRicmVha3BvaW50OiBudWxsLFxuICAkaW5jbHVkZS1iYXNlOiB0cnVlXG4pIHtcblxuICBAaWYgJGluY2x1ZGUtYmFzZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICBAaWYgJGJyZWFrcG9pbnQgPT0gbnVsbCBhbmQgdHlwZS1vZigkZ3V0dGVycykgPT0gJ21hcCcge1xuICAgIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQoKSB7XG4gICAgICBAaW5jbHVkZSB4eS1ncmlkLWZyYW1lKCR2ZXJ0aWNhbCwgJG5lc3RlZCwgJGd1dHRlcnMsICQtemYtc2l6ZSwgZmFsc2UpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgLy8gR2V0IG91ciBndXR0ZXJzIGlmIGFwcGxpY2FibGVcbiAgICAkZ3V0dGVyOiAtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJGJyZWFrcG9pbnQpO1xuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIGd1dHRlciwgYWRkIGl0IHRvIHRoZSB3aWR0aC9oZWlnaHRcbiAgICBAaWYgJGd1dHRlciB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2aCk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skdW5pdH0gKyAjeyRndXR0ZXJ9KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdW5pdDogaWYoJG5lc3RlZCA9PSB0cnVlLCAxMDAlLCAxMDB2dyk7XG4gICAgICAgICRndXR0ZXI6IHJlbS1jYWxjKCRndXR0ZXIpO1xuICAgICAgICB3aWR0aDogY2FsYygjeyR1bml0fSArICN7JGd1dHRlcn0pO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgICAgICBoZWlnaHQ6IGlmKCRuZXN0ZWQgPT0gdHJ1ZSwgMTAwJSwgMTAwdmgpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHdpZHRoOiBpZigkbmVzdGVkID09IHRydWUsIDEwMCUsIDEwMHZ3KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIE1vZGlmaWVzIGEgY2VsbCB0byBnaXZlIGl0IFwiYmxvY2tcIiBiZWhhdmlvciAob3ZlcmZsb3cgYXV0bywgaW5lcnRpYWwgc2Nyb2xsaW5nKVxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkdmVydGljYWwgW2ZhbHNlXSAtIElzIGdyaWQgdmVydGljYWwgb3IgaG9yaXpvbnRhbC4gU2hvdWxkIG1hdGNoIGdyaWQuXG5AbWl4aW4geHktY2VsbC1ibG9jayhcbiAgJHZlcnRpY2FsOiBmYWxzZVxuKSB7XG4gICRwcm9wZXJ0eTogaWYoJHZlcnRpY2FsID09IHRydWUsICdvdmVyZmxvdy15JywgJ292ZXJmbG93LXgnKTtcblxuICBAaWYgJHZlcnRpY2FsID09IHRydWUge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICB9IEBlbHNlIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG59XG5cbi8vLyBDb250YWluZXIgZm9yIGluc2lkZSBhIGdyaWQgZnJhbWUgY29udGFpbmluZyBtdWx0aXBsZSBibG9ja3MuIFR5cGljYWxseSB1c2VkXG4vLy8gYXMgYSBtb2RpZmllciBmb3IgYSBgLmNlbGxgIHRvIGFsbG93IHRoZSBjZWxsIHRvIHBhc3MgYWxvbmcgZmxleCBzaXppbmdcbi8vLyBjb25zdHJhaW50cyAvIGZyb20gcGFyZW50cyB0byBjaGlsZHJlbi5cbkBtaXhpbiB4eS1jZWxsLWJsb2NrLWNvbnRhaW5lcigpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICA+IC5ncmlkLXgge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCByZXNwb25zaXZlLWVtYmVkXG4vLy8vXG5cbi8vLyBNYXJnaW4gYmVsb3cgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE2KSAhZGVmYXVsdDtcblxuLy8vIEFzcGVjdCByYXRpb3MgdXNlZCB0byBkZXRlcm1pbmUgcGFkZGluZy1ib3R0b20gb2YgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXJzLlxuLy8vIEB0eXBlIE1hcFxuJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zOiAoXG4gIGRlZmF1bHQ6IDQgYnkgMyxcbiAgd2lkZXNjcmVlbjogMTYgYnkgOSxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgcmVzcG9uc2l2ZSBlbWJlZCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd8TGlzdH0gJHJhdGlvIFtkZWZhdWx0XSAtIFJhdGlvIG9mIHRoZSBjb250YWluZXIuIENhbiBiZSBhIGtleSBmcm9tIHRoZSBgJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zYCBtYXAgb3IgYSBsaXN0IGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbkBtaXhpbiByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCkge1xuICBAaWYgdHlwZS1vZigkcmF0aW8pID09ICdzdHJpbmcnIHtcbiAgICAkcmF0aW86IG1hcC1nZXQoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLCAkcmF0aW8pO1xuICB9XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkcmVzcG9uc2l2ZS1lbWJlZC1tYXJnaW4tYm90dG9tO1xuICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIGlmcmFtZSxcbiAgb2JqZWN0LFxuICBlbWJlZCxcbiAgdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkIHtcbiAgLnJlc3BvbnNpdmUtZW1iZWQsXG4gIC5mbGV4LXZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLWVtYmVkKCRyYXRpbzogZGVmYXVsdCk7XG5cbiAgICAkcmF0aW9zOiBtYXAtcmVtb3ZlKCRyZXNwb25zaXZlLWVtYmVkLXJhdGlvcyxkZWZhdWx0KTtcblxuICAgIEBlYWNoICRuYW1lLCAkcmF0aW8gaW4gJHJhdGlvcyB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHJhdGlvLXRvLXBlcmNlbnRhZ2UoJHJhdGlvKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbmVzdGVkLW1hcmdpbjogJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBpdGVtcyBpbiBhIHBpbGwgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW1zLXBhZGRpbmc6ICRnbG9iYWwtbWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gbWFyZ2luIGZvciBpdGVtcyBpbiBhIHNpbXBsZSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtc2ltcGxlLW1hcmdpbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBDb2xvclxuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEFsdGVybmF0aXZlIHRleHQgY29sb3Igb2YgYW4gYWN0aXZlIG1lbnUgaXRlbS4uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZTogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgbWVudSBpdGVtLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiBnZXQtY29sb3IocHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYW4gaWNvbiBhbmQgdGV4dCBpbiBhIG1lbnUgaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWljb24tc3BhY2luZzogMC4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgc3RhdGUuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGBhY3RpdmVgIHdpdGggYGlzLWFjdGl2ZWAuIFxuLy8vIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IGBhY3RpdmVgIHdpbGwgYmUgcmVtb3ZlZCBpbiB1cGNvbWluZyB2ZXJzaW9ucy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kbWVudS1zdGF0ZS1iYWNrLWNvbXBhdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG1lbnUgY2VudGVyZWQuIElmIHRydWUsIHRoaXMgZHVwbGljYXRlIGAubWVudS1jZW50ZXJlZCA+IC5tZW51YCB3aXRoIGAubWVudS5hbGlnbi1jZW50ZXJgLiBcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCBgbWVudS1jZW50ZXJlZGAgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWNlbnRlcmVkLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgdXNpbmcgYGljb24tKmAgY2xhc3NlcyB3aXRob3V0IGAuaWNvbnNgIGNsYXNzZXNcbi8vLyBCdXQgcGxlYXNlIG5vdGUgdGhhdCB0aGlzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2lsbCBiZSByZW1vdmVkIGluIHVwY29taW5nIHZlcnNpb25zLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRtZW51LWljb25zLWJhY2stY29tcGF0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIH1cblxuICBhLFxuICAuYnV0dG9uIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJG1lbnUtaXRlbXMtcGFkZGluZztcbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvZiBpbm5lciBlbGVtZW50c1xuICBpbnB1dCxcbiAgc2VsZWN0LFxuICBhLFxuICBidXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGxpIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgID4gbGkge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBbGlnbiBtZW51IGl0ZW1zLlxuQG1peGluIG1lbnUtYWxpZ24oJGFsaWdubWVudCkge1xuICBAaWYgJGFsaWdubWVudCA9PSBsZWZ0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkYWxpZ25tZW50ID09IHJpZ2h0IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudmVydGljYWwgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcblxuICAgICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1yaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuXG4gICAgICAuc3VibWVudSBsaSB7XG4gICAgICAgIHRleHQtYWxpZ246ICRnbG9iYWwtbGVmdDtcbiAgICAgIH1cblxuICAgICAgJi52ZXJ0aWNhbCB7XG4gICAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRhbGlnbm1lbnQgPT0gY2VudGVyIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgLnN1Ym1lbnUgbGkge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIC5zdWJtZW51IGxpIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJGdsb2JhbC1sZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgZGlyZWN0aW9uIG9mIGEgTWVudS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgW2hvcml6b250YWxdIC0gRGlyZWN0aW9uIG9mIHRoZSBNZW51LiBDYW4gYmUgYGhvcml6b250YWxgIG9yIGB2ZXJ0aWNhbGAuXG5AbWl4aW4gbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdUaGUgZGlyZWN0aW9uIHVzZWQgZm9yIG1lbnUtZGlyZWN0aW9uKCkgbXVzdCBiZSBob3Jpem9udGFsIG9yIHZlcnRpY2FsLic7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBzaW1wbGUgTWVudSwgd2hpY2ggaGFzIG5vIHBhZGRpbmcgb3IgaG92ZXIgc3RhdGUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIFskZ2xvYmFsLWxlZnRdIC0gRGlyZWN0aW9uIG9mIHRoZSBtZW51LiBUaGlzIGVmZmVjdHMgdGhlIHNpZGUgb2YgdGhlIGA8bGk+YCB0aGF0IHJlY2VpdmVzIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LXNpbXBsZS1tYXJnaW5dIC0gVGhlIG1hcmdpbiB0byBhcHBseSB0byBlYWNoIGA8bGk+YC5cbkBtaXhpbiBtZW51LXNpbXBsZSgkZGlyOiAkZ2xvYmFsLWxlZnQsICRtYXJnaW46ICRtZW51LXNpbXBsZS1tYXJnaW4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi0jeyRkaXJ9OiAkbWFyZ2luO1xuICB9XG5cbiAgYSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRtYXJnaW4gWyRtZW51LW5lc3RlZC1tYXJnaW5dIC0gTGVuZ3RoIG9mIHRoZSBtYXJnaW4uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkbmVzdGVkLWFsaWdubWVudCBbbGVmdF0gLSBBbGlnbm1lbnQgb2YgdGhlIG5lc3RlZCBjbGFzc1xuQG1peGluIG1lbnUtbmVzdGVkKFxuICAkbWFyZ2luOiAkbWVudS1uZXN0ZWQtbWFyZ2luLFxuICAkbmVzdGVkLWFsaWdubWVudDogbGVmdFxuKSB7XG4gIEBpZiAkbmVzdGVkLWFsaWdubWVudCA9PSByaWdodCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRtYXJnaW47XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbiAgfVxuXG59XG5cbi8vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgaWNvbnMgaW4gbWVudXMuXG5AbWl4aW4gbWVudS1pY29ucygpIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgaW1nLFxuICAgIGksXG4gICAgc3ZnIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICsgc3BhbiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHBvc2l0aW9uIGNsYXNzZXMgZm9yIGljb25zIHdpdGhpbiBhIG1lbnUuXG5AbWl4aW4gbWVudS1pY29uLXBvc2l0aW9uKCRwb3NpdGlvbjogbGVmdCwgJHNwYWNpbmc6ICRtZW51LWljb24tc3BhY2luZykge1xuICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgIGxpIGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcblxuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBpbWcsXG4gICAgICBpLFxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJHNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICBsaSBhIHtcbiAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAgYXV0byAkc3BhY2luZztcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgbGkgYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2luZyBhdXRvIDA7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmc7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtZW51LXRleHQge1xuICBwYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZztcblxuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gbWVudS1zdGF0ZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlO1xuICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlLCAoJG1lbnUtaXRlbS1jb2xvci1hY3RpdmUsICRtZW51LWl0ZW0tY29sb3ItYWx0LWFjdGl2ZSkpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1tZW51IHtcbiAgLm1lbnUge1xuICAgIEBpbmNsdWRlIG1lbnUtYmFzZTtcblxuICAgIC8vIERlZmF1bHQgb3JpZW50YXRpb246IGhvcml6b250YWxcbiAgICAmLCAmLmhvcml6b250YWwge1xuICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgb3JpZW50YXRpb24gbW9kaWZpZXJcbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICAvLyBFdmVuLXdpZHRoIG1vZGlmaWVyIGZvciBob3Jpem9udGFsIG9yaWVudGF0aW9uXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICB9XG5cbiAgICAvLyBTaW1wbGVcbiAgICAmLnNpbXBsZSB7XG4gICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZTtcbiAgICB9XG5cbiAgICAvLyBCcmVha3BvaW50IHNwZWNpZmljIHZlcnNpb25zXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1leHBhbmRlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgICAgfVxuXG4gICAgICAmLiN7JC16Zi1zaXplfS1zaW1wbGUge1xuICAgICAgICBAaW5jbHVkZSBtZW51LWV4cGFuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBOZXN0aW5nXG4gICAgJi5uZXN0ZWQge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCYXNlIFN0eWxlc1xuICAgICYuaWNvbnMge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29ucztcbiAgICB9XG5cbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtaWNvbnMtYmFjay1jb21wYXQge1xuICAgICAgJi5pY29uLXRvcCxcbiAgICAgICYuaWNvbi1yaWdodCxcbiAgICAgICYuaWNvbi1ib3R0b20sXG4gICAgICAmLmljb24tbGVmdCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWNvbiBMZWZ0XG4gICAgJi5pY29uLWxlZnQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKGxlZnQpO1xuICAgIH1cblxuICAgIC8vIEljb24gUmlnaHRcbiAgICAmLmljb24tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHJpZ2h0KTtcbiAgICB9XG5cbiAgICAvLyBJY29uIFRvcFxuICAgICYuaWNvbi10b3Age1xuICAgICAgQGluY2x1ZGUgbWVudS1pY29uLXBvc2l0aW9uKHRvcCk7XG4gICAgfVxuXG4gICAgLy8gSWNvbiBCb3R0b21cbiAgICAmLmljb24tYm90dG9tIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbi1wb3NpdGlvbihib3R0b20pO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5pcy1hY3RpdmUgPiBhIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc3RhdGUtYWN0aXZlO1xuICAgIH1cbiAgICBcbiAgICAvLyBCYWNrd2FyZCBDb21wYXRpYmlsaXR5IGZvciBhY3RpdmUgc3RhdGVcbiAgICBAaWYgJG1lbnUtc3RhdGUtYmFjay1jb21wYXQge1xuICAgICAgLmFjdGl2ZSA+IGEge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXN0YXRlLWFjdGl2ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGlnbiBsZWZ0XG4gICAgJi5hbGlnbi0jeyRnbG9iYWwtbGVmdH0ge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihsZWZ0KTtcbiAgICB9XG5cbiAgICAvLyBBbGlnbiByaWdodFxuICAgICYuYWxpZ24tI3skZ2xvYmFsLXJpZ2h0fSB7XG4gICAgICBAaW5jbHVkZSBtZW51LWFsaWduKHJpZ2h0KTtcblxuICAgICAgLm5lc3RlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRuZXN0ZWQtYWxpZ25tZW50OiByaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gY2VudGVyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xuICAgICAgQGluY2x1ZGUgbWVudS1hbGlnbihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5tZW51LXRleHQge1xuICAgICAgQGluY2x1ZGUgbWVudS10ZXh0O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbWVudS1jZW50ZXJlZC1iYWNrLWNvbXBhdCB7XG4gICAgLm1lbnUtY2VudGVyZWQge1xuICAgICAgPiAubWVudSB7XG4gICAgICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZW51LWFsaWduKGNlbnRlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHJldmVudCBGT1VDIHdoZW4gdXNpbmcgdGhlIFJlc3BvbnNpdmUgTWVudSBwbHVnaW5cbiAgLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIHdpZHRoPSczMicgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDMyIDI0Jz48cG9seWdvbiBwb2ludHM9JzAsMCAzMiwwIDE2LDI0JyBzdHlsZT0nZmlsbDogI3skcmdifSc+PC9wb2x5Z29uPjwvc3ZnPlwiKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgxIC8gJGkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gUmVtb3ZlcyB0aGUgZm9jdXMgcmluZyBhcm91bmQgYW4gZWxlbWVudCB3aGVuIGEgbW91c2UgaW5wdXQgaXMgZGV0ZWN0ZWQuXG5AbWl4aW4gZGlzYWJsZS1tb3VzZS1vdXRsaW5lIHtcbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddICYge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgdmlzdWFsbHkgaGlkZGVuLCBidXQgc3RpbGwgYWNjZXNzaWJsZSB0byBrZXlib2FyZHMgYW5kIGFzc2lzdGl2ZSBkZXZpY2VzLlxuLy8vIEBsaW5rIGh0dHA6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHkgSGlkaW5nIENvbnRlbnQgZm9yIEFjY2Vzc2liaWxpdHlcbi8vLyBAbGluayBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE2LzEwLzEzL2Nzcy1oaWRlLWFuZC1zZWVrL1xuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZShcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGUgI3skaW1wb3J0YW50fTtcbiAgd2lkdGg6IDFweCAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IDFweCAjeyRpbXBvcnRhbnR9O1xuICBwYWRkaW5nOiAwICN7JGltcG9ydGFudH07XG4gIG92ZXJmbG93OiBoaWRkZW4gI3skaW1wb3J0YW50fTtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKSAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICN7JGltcG9ydGFudH07XG4gIGJvcmRlcjogMCAjeyRpbXBvcnRhbnR9O1xufVxuXG4vLy8gUmV2ZXJzZXMgdGhlIENTUyBvdXRwdXQgY3JlYXRlZCBieSB0aGUgYGVsZW1lbnQtaW52aXNpYmxlKClgIG1peGluLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBzdGF0aWMgI3skaW1wb3J0YW50fTtcbiAgd2lkdGg6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiBhdXRvICN7JGltcG9ydGFudH07XG4gIG92ZXJmbG93OiB2aXNpYmxlICN7JGltcG9ydGFudH07XG4gIGNsaXA6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbCAjeyRpbXBvcnRhbnR9O1xufVxuXG4vLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiB2ZXJ0aWNhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG4vLy8gQWJzb2x1dGVseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLy8gSXRlcmF0ZXMgdGhyb3VnaCBicmVha3BvaW50cyBkZWZpbmVkIGluIGAkYnJlYWtwb2ludC1jbGFzc2VzYCBhbmQgcHJpbnRzIHRoZSBDU1MgaW5zaWRlIHRoZSBtaXhpbiBhdCBlYWNoIGJyZWFrcG9pbnQncyBtZWRpYSBxdWVyeS4gVXNlIHRoaXMgd2l0aCB0aGUgZ3JpZCwgb3IgYW55IG90aGVyIGNvbXBvbmVudCB0aGF0IGhhcyByZXNwb25zaXZlIGNsYXNzZXMuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRzbWFsbCBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBza2lwIHRoZSBgc21hbGxgIGJyZWFrcG9pbnQuIFVzZSB0aGlzIHdpdGggY29tcG9uZW50cyB0aGF0IGRvbid0IHByZWZpeCBjbGFzc2VzIHdpdGggYHNtYWxsLWAsIG9ubHkgYG1lZGl1bS1gIGFuZCB1cC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRhdXRvLWluc2VydC1icmVha3BvaW50cyBbdHJ1ZV0gLSBJZiBgZmFsc2VgLCB0aGUgbWl4aW4gd2lsbCBpdGVyYXRlIG92ZXIgYnJlYWtwb2ludHMgd2l0aG91dCBkb2luZyB0aGUgbWVkaWEgcXVlcnkgaXRzZWxmLiBVc2VmdWwgZm9yIG1vcmUgY29tcGxleCBtZWRpYSBxdWVyeSBnZW5lcmF0aW9uIGFzIGluIHRoZSBtYXJnaW4gZ3JpZC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50KFxuICAkc21hbGw6IHRydWUsXG4gICRhdXRvLWluc2VydC1icmVha3BvaW50czogdHJ1ZVxuKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oYXV0bywgLXpmLWJvb2woJHNtYWxsKSwgLXpmLWJvb2woJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzKSkge1xuICAgIEBjb250ZW50XG4gIH07XG59XG5cbi8vLyBJdGVyYXRlcyB3aXRoIGBAY29udGVudGAgdGhyb3VnaCB0aGUgZ2l2ZW4gbGlzdCBvZiBicmVha3BvaW50cyBgJGJyZWFrcG9pbnRzYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRicmVha3BvaW50cyBbYXV0b10gLSBCcmVha3BvaW50cyB0byBpdGVyYXRlcyBvbi4gSXQgY2FuIGJlIGEgYnJlYWtwb2ludCBuYW1lLCBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIGBhdXRvYCBmb3IgYWxsIGJyZWFrcG9pbnRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxOdWxsfSAkemVyby1icmVha3BvaW50IFtudWxsXSAtIFdoZXRoZXIgdGhlIHplcm8tYnJlYWtwb2ludCAob2Z0ZW4gYHNtYWxsYCkgbXVzdCBiZSBpbmNsdWRlZC4gSWYgYHRydWVgLCBpdCB3aWxsIGFsd2F5cyBiZSBhZGRlZCB0byB0aGUgbGlzdCBpZiBub3QgYWxyZWFkeSB0aGVyZS4gSWYgYGZhbHNlYCwgaXQgd2lsbCBhbHdheXMgYmUgcmVtb3ZlZC4gRG9lcyBub3RoaW5nIGJ5IGRlZmF1bHQuXG4vLy8gQHBhcmFtIHtCb29sZWFufEtleXdvcmR9ICRtZWRpYS1xdWVyaWVzIFt0cnVlXSAtIFdoZXRoZXIgbWVkaWEtcXVlcmllcyBtdXN0IGJlIGdlbmVyYXRlZC4gSWYgYGZvci1saXN0c2AsIG9ubHkgZ2VuZXJhdGUgbWVkaWEtcXVlcmllcyB3aGVuIGAkYnJlYWtwb2ludHNgIGlzIGEgbGlzdC5cbkBtaXhpbiAtemYtZWFjaC1icmVha3BvaW50LWluKFxuICAkYnJlYWtwb2ludHM6IGF1dG8sXG4gICR6ZXJvLWJyZWFrcG9pbnQ6IG51bGwsXG4gICRtZWRpYS1xdWVyaWVzOiB0cnVlXG4pIHtcbiAgJC1saXN0OiAoKTtcbiAgJC1icmVha3BvaW50cy1pcy1hLWxpc3Q6IHRydWU7XG5cbiAgLy8gUmV0cmlldmUgdGhlIGxpc3Qgb2YgYnJlYWtwb2ludChzKSB0byBpdGVyYXRlIG9uLlxuICBAaWYgJGJyZWFrcG9pbnRzID09IGF1dG8ge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnQtY2xhc3NlcztcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgPT0gJ2xpc3QnIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50cztcbiAgfVxuICBAZWxzZSBpZiB0eXBlLW9mKCRicmVha3BvaW50cykgPT0gJ3N0cmluZycge1xuICAgICQtbGlzdDogKCRicmVha3BvaW50cyk7XG4gICAgJC1icmVha3BvaW50cy1pcy1hLWxpc3Q6IGZhbHNlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCIkYnJlYWtwb2ludHNcIiBpbiBcIi16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oKVwiLiBHb3QgXCIjeyRicmVha3BvaW50c31cIiAoI3t0eXBlLW9mKCRicmVha3BvaW50cyl9KS4gRXhwZWN0ZWQgYSBicmVha3BvaW50IG5hbWUsIGEgbGlzdCBvZiBicmVha3BvaW50cyBvciBcImF1dG9cIic7XG4gIH1cblxuICAvLyBBZGQgb3IgcmVtb3ZlIHRoZSB6ZXJvIGJyZWFrcG9pbnQgYWNjb3JkaW5nIHRvIGAkemVyby1icmVha3BvaW50YFxuICBAaWYgJHplcm8tYnJlYWtwb2ludCA9PSB0cnVlIHtcbiAgICAkLWxpc3Q6IGpvaW4oKCQtemYtemVyby1icmVha3BvaW50KSwgc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpKTtcbiAgfVxuICBAZWxzZSBpZiAkemVyby1icmVha3BvaW50ID09IGZhbHNlIHtcbiAgICAkLWxpc3Q6IHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIC8vIEl0ZXJhdGUgb24gYnJlYWtwb2ludChzKVxuICBAZWFjaCAkYnAgaW4gJC1saXN0IHtcbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6ICRicCAhZ2xvYmFsO1xuXG4gICAgQGlmICgkbWVkaWEtcXVlcmllcyA9PSB0cnVlXG4gICAgICBvciAoJG1lZGlhLXF1ZXJpZXMgPT0gJ2Zvci1saXN0cycgYW5kICQtYnJlYWtwb2ludHMtaXMtYS1saXN0KSkge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnApIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJGJwLXZhbHVlOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgICBAaWYgJGJwLXZhbHVlICE9IG51bGwge1xuICAgICAgICAkbmFtZTogJGJwLXZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vIHNhc3MtbGludDpkaXNhYmxlIG5vLWNvbG9yLWxpdGVyYWxzLCBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbkBpbXBvcnQgJ3V0aWwvdXRpbCc7XG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuICBwcmltYXJ5OiAjMTc3OWJhLFxuICBzZWNvbmRhcnk6ICM3Njc2NzYsXG4gIHN1Y2Nlc3M6ICMzYWRiNzYsXG4gIHdhcm5pbmc6ICNmZmFlMDAsXG4gIGFsZXJ0OiAjY2M0YjM3LFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJGdsb2JhbC1saW5laGVpZ2h0O1xuICAgIGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXG4gICAgQGlmICgkYm9keS1hbnRpYWxpYXNlZCkge1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgIH1cbiAgfVxuXG4gIGltZyB7XG4gICAgLy8gR2V0IHJpZCBvZiBnYXAgdW5kZXIgaW1hZ2VzIGJ5IG1ha2luZyB0aGVtIGRpc3BsYXk6IGlubGluZS1ibG9jazsgYnkgZGVmYXVsdFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgLy8gR3JpZCBkZWZhdWx0cyB0byBnZXQgaW1hZ2VzIGFuZCBlbWJlZHMgdG8gd29yayBwcm9wZXJseVxuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSB0YWtlcyBvbiBoZWlnaHQgYXV0b21hdGljYWxseVxuICB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBNYWtlIHNlbGVjdCBlbGVtZW50cyBhcmUgMTAwJSB3aWR0aCBieSBkZWZhdWx0XG4gIHNlbGVjdCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgfVxuXG4gIC8vIFN0eWxlcyBHb29nbGUgTWFwcyBhbmQgTWFwUXVlc3QgZW1iZWRzIHByb3Blcmx5XG4gIC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8taWRzXG4gIC5tYXBfY2FudmFzLFxuICAubXFhLWRpc3BsYXkge1xuICAgIGltZyxcbiAgICBlbWJlZCxcbiAgICBvYmplY3Qge1xuICAgICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogJGdsb2JhbC1idXR0b24tY3Vyc29yO1xuICB9XG5cbiAgLy8gUHJldmVudCB0ZXh0IG92ZXJmbG93IG9uIHByZVxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLy8gTWFrZSByZXNldCBpbmhlcml0IGZvbnQtZmFtaWx5IGluc3RlYWQgb2Ygc2V0dGluZ3Mgc2Fucy1zZXJpZlxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBJbnRlcm5hbCBjbGFzc2VzIHRvIHNob3cvaGlkZSBlbGVtZW50cyBpbiBKYXZhU2NyaXB0XG4gIC5pcy12aXNpYmxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmlzLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8vL1xuLy8vIEBncm91cCBhY2NvcmRpb24tbWVudVxuLy8vL1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IG5lc3RlZCBtYXJnaW5cbi8vLyBAdHlwZSBOdW1iZXJcbiRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW46ICRnbG9iYWwtbWVudS1uZXN0ZWQtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBzdWJtZW51IHBhZGRpbmcuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc6ICRhY2NvcmRpb25tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1pdGVtLWJhY2tncm91bmQ6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gYm9yZGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9ubWVudS1ib3JkZXI6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGl0ZW0gcGFkZGluZy5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIExpc3RcbiRhY2NvcmRpb24tc3VibWVudS10b2dnbGUtYm9yZGVyOiAkYWNjb3JkaW9ubWVudS1ib3JkZXIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IHN1Ym1lbnUgdG9nZ2xlIGJhY2tncm91bmQgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDogNDBweCAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgc3VibWVudSB0b2dnbGUgYmFja2dyb3VuZCBoZWlnaHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1oZWlnaHQ6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBhY2NvcmRpb24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbkBtaXhpbiB6Zi1hY2NvcmRpb24tbWVudS1sZWZ0LXJpZ2h0LWFycm93cyB7XG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQ6bm90KC5oYXMtc3VibWVudS10b2dnbGUpID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRhY2NvcmRpb25tZW51LWFycm93LXNpemUsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFsaWduLWxlZnQgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMXJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICB9XG5cbiAgJi5hbGlnbi1yaWdodCAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDFyZW07XG4gIH1cbn1cbkBtaXhpbiBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51IHtcblxuICAuYWNjb3JkaW9uLW1lbnUge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgICBib3JkZXItdG9wOiAkYWNjb3JkaW9ubWVudS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgICBib3JkZXItbGVmdDogJGFjY29yZGlvbm1lbnUtYm9yZGVyO1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICBAaWYgJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGFjY29yZGlvbm1lbnUtaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgICAgcGFkZGluZzogJGFjY29yZGlvbm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgYSB7XG4gICAgICBwYWRkaW5nOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkYWNjb3JkaW9ubWVudS1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgLm5lc3RlZC5pcy1hY2NvcmRpb24tc3VibWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkKCRhY2NvcmRpb25tZW51LW5lc3RlZC1tYXJnaW4sIHJpZ2h0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtYXJyb3dzIHtcbiAgICAgIEBpbmNsdWRlIHpmLWFjY29yZGlvbi1tZW51LWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUtcGFyZW50W2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IGE6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaXMtYWNjb3JkaW9uLXN1Ym1lbnUgbGkge1xuICAgIEBpZiAkYWNjb3JkaW9ubWVudS1ib3JkZXIge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmhhcy1zdWJtZW51LXRvZ2dsZSA+IGEge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS13aWR0aDtcbiAgfVxuXG4gIC8vIFN1Ym1lbnUgdG9nZ2xlXG4gIC5zdWJtZW51LXRvZ2dsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xuXG4gICAgd2lkdGg6ICRhY2NvcmRpb25tZW51LXN1Ym1lbnUtdG9nZ2xlLXdpZHRoO1xuICAgIGhlaWdodDogJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtaGVpZ2h0O1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogJGFjY29yZGlvbi1zdWJtZW51LXRvZ2dsZS1ib3JkZXI7XG5cbiAgICBAaWYgJGFjY29yZGlvbm1lbnUtc3VibWVudS10b2dnbGUtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYWNjb3JkaW9ubWVudS1zdWJtZW51LXRvZ2dsZS1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgYXJyb3cgdG8gdGhlIHRvZ2dsZVxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSg2cHgsICRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yLCBkb3duKTtcblxuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJvdGF0ZSB0aGUgYXJyb3cgd2hlbiBtZW51IGlzIG9wZW5cbiAgLnN1Ym1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICB9XG5cbiAgLnN1Ym1lbnUtdG9nZ2xlLXRleHQge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgaXRlbSBwYWRkaW5nLlxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1wYWRkaW5nOiAkZ2xvYmFsLW1lbnUtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJpbGxkb3duIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyaWxsZG93bi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBtZW51IGl0ZW0gcGFkZGluZyBpbiB0aGUgc3VibWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nOiAkZHJpbGxkb3duLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tc3VibWVudS1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyaWxsZG93biBhcnJvdyBjb2xvciBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IHNpemUgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcmlsbGRvd24tYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcmlsbGRvd24tYXJyb3ctc2l6ZTtcbiAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hbGlnbi1sZWZ0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIGxlZnQ6IGF1dG87XG4gIH1cblxuICAmLmFsaWduLXJpZ2h0IC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgbGVmdCk7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMXJlbTtcbiAgfVxuXG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51IHtcbiAgLy8gQXBwbGllZCB0byB0aGUgTWVudSBjb250YWluZXJcbiAgLmlzLWRyaWxsZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmFuaW1hdGUtaGVpZ2h0IHtcbiAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSB0b3AgbGV2ZWwgPHVsPlxuICAuZHJpbGxkb3duIHtcbiAgICBhIHtcbiAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tcGFkZGluZztcbiAgICAgIGJhY2tncm91bmQ6ICRkcmlsbGRvd24tYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyBBcHBsaWVkIHRvIHN1Ym1lbnUgPHVsPnNcbiAgICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgICAgei1pbmRleDogLTE7XG5cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1zdWJtZW51LWJhY2tncm91bmQ7XG4gICAgICB0cmFuc2l0aW9uOiAkZHJpbGxkb3duLXRyYW5zaXRpb247XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICAgIH1cblxuICAgICAgJi5pcy1jbG9zaW5nIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgICAgfVxuXG4gICAgICAvLyBTdWJtZW51IGl0ZW0gcGFkZGluZ1xuICAgICAgYSB7XG4gICAgICAgIHBhZGRpbmc6ICRkcmlsbGRvd24tc3VibWVudS1wYWRkaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgICAgQGluY2x1ZGUgbWVudS1uZXN0ZWQoJGRyaWxsZG93bi1uZXN0ZWQtbWFyZ2luKTtcbiAgICB9XG5cbiAgICAuZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBAaWYgJGRyaWxsZG93bi1hcnJvd3Mge1xuICAgICAgQGluY2x1ZGUgemYtZHJpbGxkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuXG4gICAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyaWxsZG93bi1hcnJvdy1zaXplLCAkZHJpbGxkb3duLWFycm93LWNvbG9yLCAkZ2xvYmFsLWxlZnQpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwLjc1cmVtOyAvLyBDcmVhdGVzIHNwYWNlIGJldHdlZW4gdGhlIGFycm93IGFuZCB0aGUgdGV4dFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGRyb3Bkb3duLW1lbnVcbi8vLy9cblxuLy8vIEVuYWJsZXMgYXJyb3dzIGZvciBpdGVtcyB3aXRoIGRyb3Bkb3duIG1lbnVzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRkcm9wZG93bm1lbnUtYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcm9wZG93biBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgcGFkZGluZyBmb3IgYWxpZ25pbmcgdGhlIGFycm93IGNvcnJlY3RseS5cbi8vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYXJyb3ctcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0b3AgbGV2ZWwgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDogbnVsbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGRyb3Bkb3ducy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1zdWJtZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIHRvcCBsZXZlbCBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bm1lbnUtcGFkZGluZzogJGdsb2JhbC1tZW51LXBhZGRpbmcgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgbmVzdGVkIG1hcmdpblxuLy8vIEB0eXBlIE51bWJlclxuJGRyb3Bkb3dubWVudS1uZXN0ZWQtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBmb3Igc3ViLW1lbnUgaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd25tZW51LXN1Ym1lbnUtcGFkZGluZzogJGRyb3Bkb3dubWVudS1wYWRkaW5nICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGZvciBkcm9wZG93biBzdWItbWVudXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3dubWVudS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vIEJvcmRlciB3aWR0aCBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8gVXNlZCB0byBhZGp1c3QgdG9wIG1hcmdpbiBvZiBhIHN1Yi1tZW51IGlmIGEgYm9yZGVyIGlzIHVzZWQuXG4vLyBAdHlwZSBMZW5ndGhcbiRkcm9wZG93bm1lbnUtYm9yZGVyLXdpZHRoOiBudGgoJGRyb3Bkb3dubWVudS1ib3JkZXIsIDEpO1xuXG4vLy8gVGV4dCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTogZ2V0LWNvbG9yKHByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBhY3RpdmUgZHJvcGRvd24gbWVudSBpdGVtLiBFeHBsaWNpdCBvdmVycmlkZSBmb3IgbWVudSBkZWZhdWx0c1xuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd24tbWVudS1pdGVtLWJhY2tncm91bmQtYWN0aXZlOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuQG1peGluIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiA1cHg7XG4gIH1cblxuICAmLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIHJpZ2h0KTtcbiAgfVxufVxuXG5AbWl4aW4gZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oJGRpcjogaG9yaXpvbnRhbCkge1xuICBAaWYgJGRpciA9PSBob3Jpem9udGFsIHtcbiAgICA+IGxpLm9wZW5zLWxlZnQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgID4gbGkub3BlbnMtcmlnaHQgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctI3skZ2xvYmFsLXJpZ2h0fTogJGRyb3Bkb3dubWVudS1hcnJvdy1wYWRkaW5nO1xuICAgICAgfVxuXG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIgeyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcbiAgICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgZG93bik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDVweDtcbiAgICAgICAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkZHJvcGRvd25tZW51LWFycm93LXNpemUgLyAyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGRpciA9PSB2ZXJ0aWNhbCB7XG4gICAgPiBsaSB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1sZWZ0IHtcbiAgICAgICAgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5vcGVucy1yaWdodCB7XG4gICAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRkcm9wZG93bm1lbnUtYXJyb3dzIHtcbiAgICAgICAgQGluY2x1ZGUgemYtZHJvcGRvd24tbGVmdC1yaWdodC1hcnJvd3M7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnVGhlIGRpcmVjdGlvbiB1c2VkIGZvciBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigpIG11c3QgYmUgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4nO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWRyb3Bkb3duLW1lbnUge1xuICAuZHJvcGRvd24ubWVudSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG5cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgICB9XG5cbiAgICAvLyBUb3AtbGV2ZWwgaXRlbVxuICAgID4gbGkgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bm1lbnUtYmFja2dyb3VuZDtcbiAgICAgIHBhZGRpbmc6ICRkcm9wZG93bm1lbnUtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBUb3AtbGV2ZWwgaXRlbSBhY3RpdmUgc3RhdGVcbiAgICA+IGxpLmlzLWFjdGl2ZSA+IGEge1xuICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLW1lbnUtaXRlbS1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgIGNvbG9yOiAkZHJvcGRvd24tbWVudS1pdGVtLWNvbG9yLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAubm8tanMgJiB1bCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5uZXN0ZWQuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICBAaW5jbHVkZSBtZW51LW5lc3RlZCgkZHJvcGRvd25tZW51LW5lc3RlZC1tYXJnaW4pO1xuICAgIH1cblxuICAgICYudmVydGljYWwge1xuICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgIH1cblxuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICAgICYuI3skc2l6ZX0taG9yaXpvbnRhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbihob3Jpem9udGFsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLiN7JHNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICAgIHdpZHRoOiAxMDBweDtcblxuICAgICYuYWxpZ24tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYTo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAjeyRnbG9iYWwtbGVmdH06IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZTtcbiAgICB9XG5cbiAgICAmLm9wZW5zLWlubmVyID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuXG4gICAgICB0b3A6IDEwMCU7XG4gICAgICBAaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICYub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtaW4td2lkdGg6ICRkcm9wZG93bm1lbnUtbWluLXdpZHRoO1xuXG4gICAgYm9yZGVyOiAkZHJvcGRvd25tZW51LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd25tZW51LXN1Ym1lbnUtYmFja2dyb3VuZDtcblxuICAgIC5kcm9wZG93biAmIGEge1xuICAgICAgcGFkZGluZzogJGRyb3Bkb3dubWVudS1zdWJtZW51LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIHpmLWRyb3Bkb3duLWxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvZmYtY2FudmFzXG4vLy8vXG5cbi8vLyBXaWR0aCBtYXAgb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTWFwXG4kb2ZmY2FudmFzLXNpemVzOiAoXG4gIHNtYWxsOiAyNTBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgbWFwIG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE1hcFxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKFxuICBzbWFsbDogMjUwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBmb3IgdGhlIG9mZi1jYW52YXMgb3ZlcmxhcCBwYW5lbC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRvZmZjYW52YXMtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgMC43KSAhZGVmYXVsdDtcblxuLy8vIElubmVyIGJveCBzaGFkb3cgc2l6ZSBmb3IgdGhlIG9mZi1jYW52YXMgcHVzaCBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemU6IDIwcHggIWRlZmF1bHQ7XG5cbi8vLyBJbm5lciBib3ggc2hhZG93IGNvbG9yIGZvciB0aGUgb2ZmLWNhbnZhcyBwdXNoIHBhbmVsLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1jb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIGNvbnRlbnQgb3ZlcmxheS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXg6IDExICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBaLWluZGV4IG9mIGFuIG9mZi1jYW52YXMgcGFuZWwgd2l0aCB0aGUgYG92ZXJsYXBgIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4OiAxMyAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB1c2luZyB0aGUgYHJldmVhbC1mb3ItKmAgY2xhc3NlcyBvciBtaXhpbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtcmV2ZWFsLXppbmRleDogMTIgIWRlZmF1bHQ7XG5cbi8vLyBMZW5ndGggb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aDogMC41cyAhZGVmYXVsdDtcblxuLy8vIFRpbWluZyBmdW5jdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG9uIGFuIG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgS2V5d29yZFxuJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZzogZWFzZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYSByZXZlYWxlZCBvZmYtY2FudmFzIHdpbGwgYmUgZml4ZWQtcG9zaXRpb24sIGFuZCBzY3JvbGwgd2l0aCB0aGUgc2NyZWVuLlxuLy8vIEB0eXBlIEJvb2xcbiRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIG92ZXJsYXkgdGhhdCBhcHBlYXJzIHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuLy8vIEB0eXBlIENvbG9yXG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMjUpICFkZWZhdWx0O1xuXG4vLy8gQ1NTIGNsYXNzIHVzZWQgZm9yIHRoZSBtYWluIGNvbnRlbnQgYXJlYS4gVGhlIG9mZi1jYW52YXMgbWl4aW5zIHVzZSB0aGlzIHRvIHRhcmdldCB0aGUgcGFnZSBjb250ZW50LlxuJG1haW5jb250ZW50LWNsYXNzOiAnb2ZmLWNhbnZhcy1jb250ZW50JyAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzZWxpbmUgc3R5bGVzIGZvciBvZmYtY2FudmFzLiBUaGlzIENTUyBpcyByZXF1aXJlZCB0byBtYWtlIHRoZSBvdGhlciBwaWVjZXMgd29yay5cbkBtaXhpbiBvZmYtY2FudmFzLWJhc2ljcyB7XG5cbiAgLy8vIFRyYW5zZm9ybSBkZXByZWNhdGVkIHNpemUgc2V0dGluZ3MgaW50byBtYXAgJiBzaG93IHdhcm5pbmdcbiAgQGlmIHZhcmlhYmxlLWV4aXN0cyhvZmZjYW52YXMtc2l6ZSkge1xuICAgICRvZmZjYW52YXMtc2l6ZXM6IChzbWFsbDogJG9mZmNhbnZhcy1zaXplLCBtZWRpdW06ICRvZmZjYW52YXMtc2l6ZSkgIWdsb2JhbDtcbiAgICBAd2FybiAnJG9mZmNhbnZhcy1zaXplIGlzIGRlcHJlY2F0ZWQgYW5kIG5vdCB1c2VkIGFueW1vcmUhIFBsZWFzZSB1cGRhdGUgeW91ciBzZXR0aW5ncyBhbmQgdXNlIHRoZSBtYXAgJG9mZmNhbnZhcy1zaXplcyBpbnN0ZWFkJztcbiAgfVxuICBAaWYgdmFyaWFibGUtZXhpc3RzKG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSB7XG4gICAgJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplczogKHNtYWxsOiAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUsIG1lZGl1bTogJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplKSAhZ2xvYmFsO1xuICAgIEB3YXJuICckb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHVzZWQgYW55bW9yZSEgUGxlYXNlIHVwZGF0ZSB5b3VyIHNldHRpbmdzIGFuZCB1c2UgdGhlIG1hcCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzIGluc3RlYWQnO1xuICB9XG5cbiAgLy8gQ2hlY2tzIHRoZSB6LWluZGV4ZXMgYW5kIGluY3JlYXNlIHRoZW0gZHVlIHRvIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBvdmVybGF5J3Mgei1pbmRleCBpcyBuZXcgc2luY2UgdjYuNCBhbmQgbWF5IGJlIGlkZW50aWNhbCB0byB0aGUgdXNlciBjdXN0b20gc2V0dGluZ3Mgb2YgdGhlIHB1c2ggei1pbmRleC5cbiAgQGlmICRvZmZjYW52YXMtcHVzaC16aW5kZXggPD0gJG9mZmNhbnZhcy1vdmVybGF5LXppbmRleCB7ICRvZmZjYW52YXMtcHVzaC16aW5kZXg6ICRvZmZjYW52YXMtb3ZlcmxheS16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXggPD0gJG9mZmNhbnZhcy1wdXNoLXppbmRleCB7ICRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6ICRvZmZjYW52YXMtcHVzaC16aW5kZXggKyAxICFnbG9iYWw7IH1cbiAgQGlmICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCA8PSAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4IHsgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4ICsgMSAhZ2xvYmFsOyB9XG5cbiAgLy8gSGlkZXMgb3ZlcmZsb3cgb24gYm9keSB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbiAgLmlzLW9mZi1jYW52YXMtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgb3ZlcmxheSAoZ2VuZXJhdGVkIGJ5IEphdmFTY3JpcHQpXG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXktemluZGV4O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmLmlzLW92ZXJsYXktZml4ZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGRzIGJhc2ljIHN0eWxlcyBmb3IgYW4gb2ZmLWNhbnZhcyB3cmFwcGVyLlxuQG1peGluIG9mZi1jYW52YXMtd3JhcHBlcigpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNlKFxuICAkYmFja2dyb3VuZDogJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLFxuICAkdHJhbnNpdGlvbjogJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nLFxuICAkZml4ZWQ6IHRydWVcbikge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgQGlmICRmaXhlZCA9PSB0cnVlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC8vIFNldCB0aGUgb2ZmLWNhbnZhcyB6LWluZGV4LlxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIC8vIEluY3JlYXNlIENTUyBzcGVjaWZpY2l0eVxuICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1wdXNoLXppbmRleDtcbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIEhpZGUgaW5hY3RpdmUgb2ZmLWNhbnZhcyB3aXRoaW4gdGhlIGNvbnRlbnQgdGhhdCBoYXZlIHRoZSBzYW1lIHBvc2l0aW9uXG4gICYuaXMtY2xvc2VkIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cblxuICAvLyBPdmVybGFwIG9ubHkgc3R5bGVzLlxuICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcCB7XG4gICAgei1pbmRleDogJG9mZmNhbnZhcy1vdmVybGFwLXppbmRleDtcblxuICAgICYuaXMtb3BlbiB7XG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICB9XG4gIH1cblxuICAvLyBTZXRzIHRyYW5zZm9ybSB0byAwIHRvIHNob3cgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbiAgJi5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gcG9zaXRpb24gYW4gb2ZmLWNhbnZhcyBwYW5lbCB0byB0aGUgbGVmdC9yaWdodC90b3AvYm90dG9tLlxuQG1peGluIG9mZi1jYW52YXMtcG9zaXRpb24oXG4gICRwb3NpdGlvbjogbGVmdCxcbiAgJG9yaWVudGF0aW9uOiBob3Jpem9udGFsLFxuICAkc2l6ZXM6IGlmKCRvcmllbnRhdGlvbiA9PSBob3Jpem9udGFsLCAkb2ZmY2FudmFzLXNpemVzLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemVzKVxuKSB7XG4gIEBpZiAkcG9zaXRpb24gPT0gbGVmdCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgd2lkdGg6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcblxuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICB3aWR0aDogJHNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc2l6ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgcG9zaXRpb24gZm9yIG5lc3RlZCBvZmYtY2FudmFzIGVsZW1lbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IC5vZmYtY2FudmFzLnBvc2l0aW9uLSN7JHBvc2l0aW9ufSB7XG5cbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfS5pcy1vcGVuLSN7JHBvc2l0aW9ufSB7XG4gICAgICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgICAgICBAZWFjaCAkbmFtZSwgJHNpemUgaW4gJHNpemVzIHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBwb3NpdGlvbiBmb3IgbmVzdGVkIG9mZi1jYW52YXMgZWxlbWVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30gLm9mZi1jYW52YXMucG9zaXRpb24tI3skcG9zaXRpb259IHtcbiAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZXRzIHRoZSBvcGVuIHBvc2l0aW9uIGZvciB0aGUgY29udGVudFxuICAgIEBhdC1yb290IC4jeyRtYWluY29udGVudC1jbGFzc30uaXMtb3Blbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRzaXplKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbmFtZSkge1xuICAgICAgICBoZWlnaHQ6ICRzaXplO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldHMgdGhlIHBvc2l0aW9uIGZvciBuZXN0ZWQgb2ZmLWNhbnZhcyBlbGVtZW50XG4gICAgQGF0LXJvb3QgLiN7JG1haW5jb250ZW50LWNsYXNzfSAub2ZmLWNhbnZhcy5wb3NpdGlvbi0jeyRwb3NpdGlvbn0ge1xuICAgICAgQGVhY2ggJG5hbWUsICRzaXplIGluICRzaXplcyB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJHNpemUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9LmlzLW9wZW4tI3skcG9zaXRpb259IHtcbiAgICAgICYuaGFzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICAgIEBlYWNoICRuYW1lLCAkc2l6ZSBpbiAkc2l6ZXMge1xuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJHNpemUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmICRvZmZjYW52YXMtaW5uZXItc2hhZG93LXNpemUgaXMgc2V0LCBhZGQgaW5uZXIgYm94LXNoYWRvdy5cbiAgLy8gVGhpcyBtaW1pY3MgdGhlIG9mZi1jYW52YXMgcGFuZWwgaGF2aW5nIGEgbG93ZXIgei1pbmRleCwgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSBvbmUuXG4gIEBpZiAkb2ZmY2FudmFzLWlubmVyLXNoYWRvdy1zaXplIHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaCB7XG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICBAaW5jbHVkZSBpbm5lci1zaWRlLXNoYWRvdyhyaWdodCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgaW5uZXItc2lkZS1zaGFkb3cobGVmdCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IHRvcCB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KGJvdHRvbSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGJvdHRvbSB7XG4gICAgICAgIEBpbmNsdWRlIGlubmVyLXNpZGUtc2hhZG93KHRvcCwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctc2l6ZSwgJG9mZmNhbnZhcy1pbm5lci1zaGFkb3ctY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG5cbi8vLyBTZXRzIHRoZSBzdHlsZXMgZm9yIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbkBtaXhpbiBvZmYtY2FudmFzLWNvbnRlbnQoKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIC8vIEJpbmQgdG8gaGFzLXRyYW5zaXRpb24tWCBjbGFzcyB0byBwcmV2ZW50IHRyYW5zaXRpb24gZm9yIHRyYW5zZm9ybTpub25lXG4gICYuaGFzLXRyYW5zaXRpb24tb3ZlcmxhcCxcbiAgJi5oYXMtdHJhbnNpdGlvbi1wdXNoIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIHNjb3BlIHVudGlsIHRoZSBlbGVtZW50IGlzIGNsb3NlZCAobWFrZXMgc3VyZSB0cmFuc2l0aW9uZW5kIGdldHMgdHJpZ2dlcmVkKVxuICAmLmhhcy10cmFuc2l0aW9uLXB1c2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgZWxlbWVudCAmIGNvbnRlbnQsIG5lc3RlZCBpbiBhbm90aGVyIGNvbnRlbnRcbiAgLm9mZi1jYW52YXMuaXMtb3BlbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIHRoYXQgcmV2ZWFsIGFuIG9mZi1jYW52YXMgcGFuZWwuXG5AbWl4aW4gb2ZmLWNhbnZhcy1yZXZlYWwoXG4kcG9zaXRpb246IGxlZnQsXG4kemluZGV4OiAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsXG4kY29udGVudDogJG1haW5jb250ZW50LWNsYXNzLFxuJGJyZWFrcG9pbnQ6IHNtYWxsXG4pIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICB6LWluZGV4OiAkemluZGV4O1xuICB0cmFuc2l0aW9uOiBub25lO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXG4gIEBpZiBub3QgJG9mZmNhbnZhcy1maXhlZC1yZXZlYWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuXG4gIC5jbG9zZS1idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvLyBDb25zaWRlciByZXZlYWxlZCBlbGVtZW50IGlzIG5lc3RlZCBpbiBjb250ZW50XG4gIC4jeyRtYWluY29udGVudC1jbGFzc30gJiB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3QgLiN7JGNvbnRlbnR9Lmhhcy1yZXZlYWwtI3skcG9zaXRpb259IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAtemYtZ2V0LWJwLXZhbCgkb2ZmY2FudmFzLXNpemVzLCAkYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAocHJpb3IgdG8gdjYuNClcbiAgJiB+IC4jeyRjb250ZW50fSB7XG4gICAgbWFyZ2luLSN7JHBvc2l0aW9ufTogLXpmLWdldC1icC12YWwoJG9mZmNhbnZhcy1zaXplcywgJGJyZWFrcG9pbnQpO1xuICB9XG59XG5cbi8vLyBPdmVycmlkZXMgdGhlIG9mZi1jYW52YXMgc3R5bGVzXG5AbWl4aW4gaW4tY2FudmFzKCkge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcblxuICAvLyBJbmNyZWFzZSBDU1Mgc3BlY2lmaWNpdHlcbiAgJi5wb3NpdGlvbi1sZWZ0LFxuICAmLnBvc2l0aW9uLXJpZ2h0LFxuICAmLnBvc2l0aW9uLXRvcCxcbiAgJi5wb3NpdGlvbi1ib3R0b20ge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vZmYtY2FudmFzIHtcbiAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNpY3M7XG5cbiAgLy8gT2ZmLWNhbnZhcyB3cmFwcGVyXG4gIC5vZmYtY2FudmFzLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtd3JhcHBlcjtcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgY29udGFpbmVyXG4gIC5vZmYtY2FudmFzIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWJhc2U7XG5cbiAgICAvLyBGb3JjZSBwb3NpdGlvbiBhYnNvbHV0ZSBmb3IgbmVzdGVkIG9mZi1jYW52YXMgYmVjYXVzZSBmaXhlZCBkb2Vzbid0IHdvcmsgZm9yIHB1c2ggdHJhbnNpdGlvbiB3aXRoaW4gdGhlIHRyYW5zZm9ybSBzY29wZS5cbiAgICBAYXQtcm9vdCAuI3skbWFpbmNvbnRlbnQtY2xhc3N9ICYge1xuICAgICAgLy8gTk9URTogc2luY2Ugb3ZlcmxhcCB0cmFuc2l0aW9uIGlzIGN1cnJlbnRseSBmb3JjZWQgaWYgbmVzdGVkLCB0aGVyZSdzIG5vIG5lZWQgdG8gZm9yY2UgcG9zaXRpb24gYWJzb2x1dGUgdW50aWwgbmVzdGVkIHB1c2ggdHJhbnNpdGlvbiBpcyBzdXBwb3J0ZWQuXG4gICAgICAvLyBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwocmlnaHQsICRvZmZjYW52YXMtcmV2ZWFsLXppbmRleCwgJG1haW5jb250ZW50LWNsYXNzLCAkbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHRvcCwgJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LCAkbWFpbmNvbnRlbnQtY2xhc3MsICRuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tLCAkb2ZmY2FudmFzLXJldmVhbC16aW5kZXgsICRtYWluY29udGVudC1jbGFzcywgJG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSBpbi1jYW52YXMgZm9yIGxhcmdlciBzY3JlZW5zXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRuYW1lICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG5hbWUpIHtcbiAgICAgICAgLm9mZi1jYW52YXMuaW4tY2FudmFzLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgaW4tY2FudmFzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tc3RpY2t5IHtcbiAgLnN0aWNreS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIC5zdGlja3kge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAuc3RpY2t5LmlzLXN0dWNrIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaXMtYXQtdG9wIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG5cbiAgICAmLmlzLWF0LWJvdHRvbSB7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yKCRzaXplKSB7XG4gICRzaXplOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHNpemUpO1xuICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gIC8vIFVzZSBhIHByZWNpc2lvbiB1bmRlciAxcHggdG8gc3VwcG9ydCBicm93c2VyIHpvb20sIGJ1dCBub3QgdG8gbG93IHRvIGF2b2lkIHJvdW5kaW5nLlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAuMDAxMjU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAuMDAxMjU7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluICQtemYtZmxleC1qdXN0aWZ5IHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAmLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCJAZnVuY3Rpb24gLXpmLWZsZXgtanVzdGlmeSgkdGV4dC1kaXJlY3Rpb24pe1xuICAkLXpmLWZsZXgtanVzdGlmeTogKFxuICAgICdsZWZ0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1lbmQsIGZsZXgtc3RhcnQpLFxuICAgICdyaWdodCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtc3RhcnQsIGZsZXgtZW5kKSxcbiAgICAnY2VudGVyJzogY2VudGVyLFxuICAgICdqdXN0aWZ5Jzogc3BhY2UtYmV0d2VlbixcbiAgICAnc3BhY2VkJzogc3BhY2UtYXJvdW5kLFxuICApO1xuXG4gIEByZXR1cm4gJC16Zi1mbGV4LWp1c3RpZnk7XG59XG5cblxuJC16Zi1mbGV4LWFsaWduOiAoXG4gICd0b3AnOiBmbGV4LXN0YXJ0LFxuICAnYm90dG9tJzogZmxleC1lbmQsXG4gICdtaWRkbGUnOiBjZW50ZXIsXG4gICdzdHJldGNoJzogc3RyZXRjaCxcbik7XG5cbiQtemYtZmxleC1kaXJlY3Rpb246IChcbiAgJ3Jvdyc6IHJvdyxcbiAgJ3Jvdy1yZXZlcnNlJzogcm93LXJldmVyc2UsXG4gICdjb2x1bW4nOiBjb2x1bW4sXG4gICdjb2x1bW4tcmV2ZXJzZSc6IGNvbHVtbi1yZXZlcnNlLFxuKTtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBieSBhZGRpbmcgYGRpc3BsYXk6IGZsZXhgIHRvIHRoZSBlbGVtZW50LlxuQG1peGluIGZsZXgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgYWxpZ25zIHRoZSBpdGVtcyB3aXRoaW4gYSBmbGV4IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHggW251bGxdIC0gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYGxlZnRgLCBgcmlnaHRgLCBgY2VudGVyYCwgYGp1c3RpZnlgLCBvciBgc3BhY2VkYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IGhvcml6b250YWwgYWxpZ25tZW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduKCR4OiBudWxsLCAkeTogbnVsbCkge1xuICBAaWYgJHgge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtanVzdGlmeSwgJHgpIHtcbiAgICAgICR4OiBtYXAtZ2V0KCQtemYtZmxleC1qdXN0aWZ5LCAkeCk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHh9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBob3Jpem9udGFsIGFsaWdubWVudC4gVXNlIGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnksIG9yIHNwYWNlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGp1c3RpZnktY29udGVudDogJHg7XG4gIGFsaWduLWl0ZW1zOiAkeTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgYWxpZ24gYSBzaW5nbGUgY29sdW1uIHdpdGhpbiBhIGZsZXggcm93LiBBcHBseSB0aGlzIG1peGluIHRvIGEgZmxleCBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR5OiBudWxsKSB7XG4gIEBpZiAkeSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1hbGlnbiwgJHkpIHtcbiAgICAgICR5OiBtYXAtZ2V0KCQtemYtZmxleC1hbGlnbiwgJHkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLWNvbHVtbi1hbGlnbigpOiAjeyR5fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgYWxpZ25tZW50LiBVc2UgdG9wLCBib3R0b20sIG1pZGRsZSwgb3Igc3RyZXRjaC4nO1xuICAgIH1cbiAgfVxuXG4gIGFsaWduLXNlbGY6ICR5O1xufVxuXG4vLy8gQ2hhbmdlcyB0aGUgc291cmNlIG9yZGVyIG9mIGEgZmxleCBjaGlsZC4gQ2hpbGRyZW4gd2l0aCBsb3dlciBudW1iZXJzIGFwcGVhciBmaXJzdCBpbiB0aGUgbGF5b3V0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3JkZXIgWzBdIC0gT3JkZXIgbnVtYmVyIHRvIGFwcGx5LlxuQG1peGluIGZsZXgtb3JkZXIoJG9yZGVyOiAwKSB7XG4gIG9yZGVyOiAkb3JkZXI7XG59XG5cbi8vLyBDaGFuZ2UgZmxleC1kaXJlY3Rpb25cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW3Jvd10gLSBGbGV4IGRpcmVjdGlvbiB0byB1c2UuIENhbiBiZVxuLy8vICAgLSByb3cgKGRlZmF1bHQpOiBzYW1lIGFzIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIHJvdy1yZXZlcnNlOiBvcHBvc2l0ZSB0byB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSBjb2x1bW46IHNhbWUgYXMgcm93IGJ1dCB0b3AgdG8gYm90dG9tXG4vLy8gICAtIGNvbHVtbi1yZXZlcnNlOiBzYW1lIGFzIHJvdy1yZXZlcnNlIHRvcCB0byBib3R0b21cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uOiByb3cpIHtcbiAgZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG59XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1saXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICYuZHJhZ2dpbmcge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGN1cnNvcjogaGFuZDtcbiAgICB9XG59XG4uc2xpY2stc2xpZGVyIC5zbGljay10cmFjayxcbi5zbGljay1zbGlkZXIgLnNsaWNrLWxpc3Qge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG4uc2xpY2stdHJhY2sge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJodG1sIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBmb250LXNpemU6IDEwMCU7XHJcbn1cclxuXHJcbiosXHJcbio6OmJlZm9yZSxcclxuKjo6YWZ0ZXIge1xyXG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgYmFja2dyb3VuZDogY29sb3IoJ3doaXRlJyk7XHJcbiAgICBjb2xvcjogY29sb3IoJ3RleHQnKTtcclxuICAgIGZvbnQtZmFtaWx5OiBmb250RmFtaWx5KCdib2R5Jyk7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDE0LDIwKTtcclxufVxyXG5cclxuaW1nIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgIGhlaWdodDogYXV0bztcclxuICAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xyXG59XHJcblxyXG5hIHtcclxuICAgIGNvbG9yOiBjb2xvcigndGV4dCcpO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyO1xyXG5cclxuICAgICY6aG92ZXIsXHJcbiAgICAmOmZvY3VzLFxyXG4gICAgJjphY3RpdmUge1xyXG4gICAgICAgIGNvbG9yOiBjb2xvcigncHJpbWFyeScpO1xyXG4gICAgfVxyXG59XHJcblxyXG5wIHtcclxuICAgIG1hcmdpbjogcmVtLWNhbGMoMCAwICRwLW1hcmdpbik7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG5cclxuICAgICtvbCxcclxuICAgICt1bCxcclxuICAgICtoMSxcclxuICAgICtoMixcclxuICAgICtoMyxcclxuICAgICtoNCxcclxuICAgICtoNSxcclxuICAgICtoNixcclxuICAgICtkaXYge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKCRwLW1hcmdpbik7XHJcbiAgICB9XHJcblxyXG4gICAgJjpsYXN0LW9mLXR5cGUge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbnVsLG9sIHtcclxuICAgICsgb2wsXHJcbiAgICArIHVsLFxyXG4gICAgKyBoMSxcclxuICAgICsgaDIsIFxyXG4gICAgKyBoMyxcclxuICAgICsgaDQsXHJcbiAgICArIGg1LFxyXG4gICAgKyBoNixcclxuICAgICsgcCxcclxuICAgICsgZGl2IHtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygkcC1tYXJnaW4pO1xyXG4gICAgfVxyXG59XHJcblxyXG5zbWFsbCB7XHJcbiAgICBmb250LXNpemU6IDgwJTtcclxufVxyXG4gIFxyXG5idXR0b24sXHJcbmlucHV0LFxyXG5vcHRncm91cCxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IFxyXG4gIGZvbnQtc2l6ZTogMTAwJTsgXHJcbiAgbWFyZ2luOiAwOyBcclxufVxyXG5cclxuYnV0dG9uIHtcclxuICAgIGJvcmRlcjogMDtcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG5bdHlwZT1cInNlYXJjaFwiXSB7XHJcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgXHJcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgXHJcblxyXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcclxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyBcclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbn0iLCIvLyBVc2FnZTogXG4vLyBjb2xvcigncHJpbWFyeScpO1xuLy8gY29sb3IoJ2JsdWUnLCAnYmFzZScpO1xuLy8gZm9udEZhbWlseSgnYm9keScpXG4vLyBzcGFjaW5nKCdtYXJnaW4nKVxuLy8gdGhlbWUoJ2xheW91dCcsICd3aWR0aCcpXG5cbiR0aGVtZTogKFxuICAgICdjb2xvcnMnOiAoXG4gICAgICAgICdwcmltYXJ5JzogIzI0Mzg0RixcbiAgICAgICAgJ3doaXRlJzogI2ZmZixcbiAgICAgICAgJ2JsYWNrJzogIzAwMCxcbiAgICAgICAgJ2ludmVyc2UnOiAjZmZmLFxuICAgICAgICAndGV4dCc6ICMyNDM4NEYsXG4gICAgICAgICdyZWQnIDogI0M1MDAxMCwgXG4gICAgICAgICdncmV5JzogI0Q1RDVENSxcbiAgICAgICAgJ2RhcmstZ3JleSc6ICMxNjE2MTVcbiAgICApLFxuICAgICdicmVha3BvaW50cyc6IChcbiAgICAgICAgJ3NtYWxsJzogMCxcbiAgICAgICAgJ21lZGl1bSc6IDc2OCxcbiAgICAgICAgJ2xhcmdlJzogMTAyNCxcbiAgICAgICAgJ3hsYXJnZSc6IDEyODAsXG4gICAgICAgICd4eGxhcmdlJzogMTUzNlxuICAgICksXG4gICAgJ2ZvbnRGYW1pbHknOihcbiAgICAgICAgJ2JvZHknOiAnR290aGFtIEhURicsXG4gICAgICAgICdoZWFkaW5ncyc6ICdHb3RoYW0gSFRGJyxcbiAgICAgICAgJ3NlY29uZGFyeSc6ICdNdXNlbyBTYW5zJ1xuICAgICksXG4gICAgJ3NwYWNpbmcnOihcbiAgICAgICAgJ21hcmdpbic6IDUwLFxuICAgICAgICAncGFkZGluZyc6IDUwLFxuICAgICAgICAnbW9kdWxlLW1hcmdpbic6IDUwLFxuICAgICAgICAnbW9kdWxlLXBhZGRpbmcnOiA1MFxuICAgICksXG4gICAgJ2xheW91dCc6KFxuICAgICAgICAnd2lkdGgnOiAxMTQwLFxuICAgICAgICAncGFkZGluZyc6IDI1XG4gICAgKSxcbiAgICAnaGVhZGluZ3MnOiAoXG4gICAgICAgICdoMSc6IDU0LFxuICAgICAgICAnaDInOiAzNCxcbiAgICAgICAgJ2gzJzogMjQsXG4gICAgICAgICdoNCc6IDE4LFxuICAgICAgICAnaDUnOiAxNixcbiAgICAgICAgJ2g2JzogMTRcbiAgICApLFxuICAgICdleHRyYSc6IChcbiAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiA1LFxuICAgICAgICAndHJhbnNpdGlvbi10aW1lJzogMC42cyxcbiAgICAgICAgJ3AtbWFyZ2luJzogMjBcbiAgICApXG4pO1xuXG4kYnJlYWtwb2ludHMgOiB0aGVtZSgnYnJlYWtwb2ludHMnKTtcblxuJGJhc2UtbWFyZ2luOiBzcGFjaW5nKCdtYXJnaW4nKTtcbiRiYXNlLXBhZGRpbmc6IHNwYWNpbmcoJ3BhZGRpbmcnKTtcbiRtb2R1bGUtbWFyZ2luOiBzcGFjaW5nKCdtb2R1bGUtbWFyZ2luJyk7XG4kbW9kdWxlLXBhZGRpbmc6IHNwYWNpbmcoJ21vZHVsZS1wYWRkaW5nJyk7XG5cbiRib3JkZXItcmFkaXVzOiAgdGhlbWUoJ2V4dHJhJywgJ2JvcmRlci1yYWRpdXMnKTtcbiR0cjogdGhlbWUoJ2V4dHJhJywgJ3RyYW5zaXRpb24tdGltZScpO1xuJHAtbWFyZ2luOiB0aGVtZSgnZXh0cmEnLCAncC1tYXJnaW4nKTtcblxuJGgxOiB0aGVtZSgnaGVhZGluZ3MnLCAnaDEnKTtcbiRoMjogdGhlbWUoJ2hlYWRpbmdzJywgJ2gyJyk7XG4kaDM6IHRoZW1lKCdoZWFkaW5ncycsICdoMycpO1xuJGg0OiB0aGVtZSgnaGVhZGluZ3MnLCAnaDQnKTtcbiRoNTogdGhlbWUoJ2hlYWRpbmdzJywgJ2g1Jyk7XG4kaDY6IHRoZW1lKCdoZWFkaW5ncycsICdoNicpOyIsIi8vaGVscGVyXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkdmFsdWUpIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSk7XG59XG5cbi8vIHJlc3BvbnNpdmUgZm9udCBzaXplXG4vLyB1c2FnZTogQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKDIwLDE2LDEuNik7XG5AbWl4aW4gcmVzcG9uc2l2ZS10eXBlKCRtYXgtZm9udC1zaXplLCAkbWluLWZvbnQtc2l6ZTogKCRtYXgtZm9udC1zaXplIC0gKCRtYXgtZm9udC1zaXplICogMC4zKSksICRsaW5lLWhlaWdodDogbm9ybWFsLCAkbWluLXZ3OiB0aGVtZSgnYnJlYWtwb2ludHMnLCAnbWVkaXVtJyksICRtYXgtdnc6IHRoZW1lKCdicmVha3BvaW50cycsICdsYXJnZScpKSB7XG4gICAgJiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoJG1pbi1mb250LXNpemUpO1xuXG4gICAgICAgIEBpZiAkbGluZS1oZWlnaHQgPT0gbm9ybWFsIHtcblxuICAgICAgICB9IEBlbHNlIGlmICRsaW5lLWhlaWdodCAlIDEgPT0gMCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0IC8gJG1heC1mb250LXNpemU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgICAgfVxuICAgICBcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbWluLXZ3ICogMXB4fSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiBjYWxjKCN7JG1pbi1mb250LXNpemUgKiAxcHh9ICsgI3tzdHJpcC11bml0KCRtYXgtZm9udC1zaXplIC0gJG1pbi1mb250LXNpemUpfSAqICgoMTAwdncgLSAjeyRtaW4tdncgKiAxcHh9KSAvICN7c3RyaXAtdW5pdCgkbWF4LXZ3IC0gJG1pbi12dyl9KSk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAjeyRtYXgtdncgKiAxcHh9KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKCRtYXgtZm9udC1zaXplKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gZm9udCBzaXplXG4vLyB1c2FnZSBAaW5jbHVkZSBmb250LXNpemUoMzIsIDYwKTtcbkBtaXhpbiBmb250LXNpemUoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0OiBub3JtYWwpIHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKCRmb250LXNpemUpO1xuXG4gICAgQGlmICRsaW5lLWhlaWdodCA9PSBub3JtYWwge1xuXG4gICAgfSBAZWxzZSBpZiAkbGluZS1oZWlnaHQgJSAxID09IDAge1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICB9XG59XG4gIFxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1wYWRkaW5nKCRkaXJlY3Rpb246ICd2ZXJ0JywgJGxhcmdlOiAkYmFzZS1wYWRkaW5nLCAkYmFzZSA6IDAuMiwgJGltcG9ydGFudDogJ2ZhbHNlJykge1xuICAgIC8vYnkgZGVmYXVsdCB3ZSBoYXZlOiBcbiAgICAvLzIwJSBkZWNyZWFzZSBmb3IgbWVkaXVtXG4gICAgLy8xMCUgZGVzY3JlYXNlIG9mIG1lZGl1bVxuXG4gICAgJG1lZGl1bTogJGxhcmdlIC0gKCRsYXJnZSAqICRiYXNlKTtcbiAgICAkc21hbGw6ICRtZWRpdW0gLSAoJG1lZGl1bSAqIDAuMSk7XG5cbiAgICBAaWYoJGJhc2U9PTApIHtcbiAgICAgICAgJG1lZGl1bTogJGxhcmdlO1xuICAgICAgICAkc21hbGw6ICRsYXJnZTtcbiAgICB9XG5cbiAgICBAaWYoJGltcG9ydGFudD09J2ZhbHNlJykge1xuICAgICAgICBAaWYgJGRpcmVjdGlvbj09J3RvcCcge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKCRzbWFsbCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKCRtZWRpdW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKCRsYXJnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0nYm90dG9tJyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJGxhcmdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb249PSd2ZXJ0JyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygkc21hbGwpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygkbWVkaXVtKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJGxhcmdlKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoJGxhcmdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb249PSdob3J6JyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKCRzbWFsbCk7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygkc21hbGwpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKCRsYXJnZSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoJGxhcmdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb249PSdhbGwnIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKCRzbWFsbCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygkbGFyZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmKCRpbXBvcnRhbnQ9PSd0cnVlJykge1xuICAgICAgICBAaWYgJGRpcmVjdGlvbj09J3RvcCcge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoJG1lZGl1bSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygkbGFyZ2UpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0nYm90dG9tJyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygkbWVkaXVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKCRsYXJnZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb249PSd2ZXJ0JyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoJG1lZGl1bSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoJG1lZGl1bSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygkbGFyZ2UpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKCRsYXJnZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb249PSdob3J6JyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbS1jYWxjKCRtZWRpdW0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtLWNhbGMoJG1lZGl1bSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoJGxhcmdlKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IHJlbS1jYWxjKCRsYXJnZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmICRkaXJlY3Rpb249PSdhbGwnIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygkbWVkaXVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoJGxhcmdlKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5cbkBtaXhpbiByZXNwb25zaXZlLW1hcmdpbigkZGlyZWN0aW9uOiAndmVydCcsICRsYXJnZTogJGJhc2UtbWFyZ2luLCAkYmFzZSA6IDAuMiwgJGltcG9ydGFudDogJ2ZhbHNlJykge1xuICAgIC8vYnkgZGVmYXVsdCB3ZSBoYXZlOiBcbiAgICAvLzIwJSBkZWNyZWFzZSBmb3IgbWVkaXVtXG4gICAgLy8xMCUgZGVzY3JlYXNlIG9mIG1lZGl1bSBmb3Igc21hbGxcblxuICAgICRtZWRpdW06ICRsYXJnZSAtICgkbGFyZ2UgKiAkYmFzZSk7XG4gICAgJHNtYWxsOiAkbWVkaXVtIC0gKCRtZWRpdW0gKiAwLjEpO1xuXG4gICAgQGlmKCRiYXNlPT0wKSB7XG4gICAgICAgICRtZWRpdW06ICRsYXJnZTtcbiAgICAgICAgJHNtYWxsOiAkbGFyZ2U7XG4gICAgfVxuXG4gICAgQGlmKCRpbXBvcnRhbnQ9PSdmYWxzZScpIHtcbiAgICAgICAgQGlmICRkaXJlY3Rpb249PSd0b3AnIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKCRzbWFsbCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygkbGFyZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWYgJGRpcmVjdGlvbj09J2JvdHRvbScge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkbWVkaXVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRsYXJnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0ndmVydCcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKCRzbWFsbCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkbGFyZ2UpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKCRsYXJnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0naG9yeicge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKCRzbWFsbCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKCRzbWFsbCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKCRtZWRpdW0pO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoJG1lZGl1bSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoJGxhcmdlKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKCRsYXJnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0nYWxsJyB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKCRzbWFsbCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiByZW0tY2FsYygkbWVkaXVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoJGxhcmdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZigkaW1wb3J0YW50PT0ndHJ1ZScpIHtcbiAgICAgICAgQGlmICRkaXJlY3Rpb249PSd0b3AnIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygkbWVkaXVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoJGxhcmdlKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWYgJGRpcmVjdGlvbj09J2JvdHRvbScge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRtZWRpdW0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkbGFyZ2UpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0ndmVydCcge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJHNtYWxsKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoJHNtYWxsKSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRtZWRpdW0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoJG1lZGl1bSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRsYXJnZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygkbGFyZ2UpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0naG9yeicge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoJHNtYWxsKSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygkbWVkaXVtKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoJG1lZGl1bSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygkbGFyZ2UpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygkbGFyZ2UpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAkZGlyZWN0aW9uPT0nYWxsJyB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKCRzbWFsbCkgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKCRtZWRpdW0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKCRsYXJnZSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG5AbWl4aW4gb3ZlcmxheSgpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuQG1peGluIGNsb3NlQnV0dG9uKCRjb2xvcjogJGJsYWNrKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiByZW0tY2FsYygyMCk7XG4gICAgaGVpZ2h0OiByZW0tY2FsYygyMCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlcixcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDMpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiByZW0tY2FsYyg4KTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByZW0tY2FsYygzKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG59XG5cblxuLy8vL1xuLy8vIEhlbHBlciBmdW5jdGlvbiB0byBlYXNpbHkgdXNlIGFuIFNWRyBpbmxpbmUgaW4gQ1NTXG4vLy8gd2l0aG91dCBlbmNvZGluZyBpdCB0byBiYXNlNjQsIHNhdmluZyBieXRlcy5cbi8vLyBJdCBhbHNvIGhlbHBzIHdpdGggYnJvd3NlciBzdXBwb3J0LlxuLy8vL1xuXG4vLy8gQSBzbWFsbCBmdW5jdGlvbiBhbGxvd2luZyBza2lwcGluZyBiYXNlNjQgZW5jb2Rpbmdcbi8vLyBhbmQgc2ltcGx5IHBhc3RpbmcgdGhlIFNWRyBtYXJrdXAgcmlnaHQgaW4gdGhlIENTUy5cbi8vLyBAYXV0aG9yIEpha29iIEVyaWtzZW5cbi8vLyBAbGluayBodHRwOi8vY29kZXBlbi5pby9qYWtvYi1lL3Blbi9kb01vTUxcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN2ZyAtIFNWRyBpbWFnZSB0byBlbmNvZGVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gRW5jb2RlZCBTVkcgZGF0YSB1cmlcbi8vICBiYWNrZ3JvdW5kOiBzdmctdXJpKCc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4PVwiMHB4XCIgeT1cIjBweFwiIHdpZHRoPVwiMTguNHB4XCIgaGVpZ2h0PVwiOS40cHhcIiB2aWV3Qm94PVwiMCAwIDE4LjQgOS40XCIgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE4LjQgOS40O1wiIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+PHBhdGggc3R5bGU9XCJmaWxsOiM1QkQ4QzY7XCIgZD1cIk05LjIsOS40Yy0wLjgsMC0xLjYtMC4zLTIuMS0wLjlMMCwxLjRMMS40LDBsNy4xLDcuMWMwLjQsMC40LDEsMC40LDEuNCwwTDE3LDBsMS40LDEuNGwtNy4xLDcuMSBDMTAuNyw5LjEsMTAsOS40LDkuMiw5LjR6XCIvPjwvc3ZnPicpO1xuQGZ1bmN0aW9uIHN2Zy11cmkoJHN2Zykge1xuICAgICRlbmNvZGVkOiAnJztcbiAgICAkc2xpY2U6IDIwMDA7XG4gICAgJGluZGV4OiAwO1xuICAgICRsb29wczogY2VpbChzdHItbGVuZ3RoKCRzdmcpIC8gJHNsaWNlKTtcbiAgXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbG9vcHMge1xuICAgICAgICAkY2h1bms6IHN0ci1zbGljZSgkc3ZnLCAkaW5kZXgsICRpbmRleCArICRzbGljZSAtIDEpO1xuICAgICAgICAkY2h1bms6IHN0ci1yZXBsYWNlKCRjaHVuaywgJ1wiJywgXCInXCIpO1xuICAgICAgICAkY2h1bms6IHN0ci1yZXBsYWNlKCRjaHVuaywgJzwnLCAnJTNDJyk7XG4gICAgICAgICRjaHVuazogc3RyLXJlcGxhY2UoJGNodW5rLCAnPicsICclM0UnKTtcbiAgICAgICAgJGNodW5rOiBzdHItcmVwbGFjZSgkY2h1bmssICcmJywgJyUyNicpO1xuICAgICAgICAkY2h1bms6IHN0ci1yZXBsYWNlKCRjaHVuaywgJyMnLCAnJTIzJyk7XG4gICAgICAgICRlbmNvZGVkOiAjeyRlbmNvZGVkfSN7JGNodW5rfTtcbiAgICAgICAgJGluZGV4OiAkaW5kZXggKyAkc2xpY2U7XG4gICAgfVxuICBcbiAgICBAcmV0dXJuIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsI3skZW5jb2RlZH1cIik7XG4gIH1cblxuXG4vLy8gUmVwbGFjZSBgJHNlYXJjaGAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RyaW5nYFxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBsaW5rIGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC8xYjRmMmRhNTUyNzgzMDA4OGU0ZFxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3RyaW5nIC0gSW5pdGlhbCBzdHJpbmdcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlYXJjaCAtIFN1YnN0cmluZyB0byByZXBsYWNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVXBkYXRlZCBzdHJpbmdcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogJycpIHtcbiAgICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VhcmNoKTtcbiAgXG4gICAgQGlmICRpbmRleCB7XG4gICAgICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgICB9XG4gIFxuICAgIEByZXR1cm4gJHN0cmluZztcbiAgfVxuXG5cbiAgQG1peGluIHR5cG8oJHR5cGUpIHtcbiAgICAgIEBpZigkdHlwZSA9PSAnY2FwdGlvbicpIHtcbiAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzLjE0cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICAxO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG4gIH0iLCJAZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnR290aGFtIEhURic7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0dvdGhhbUhURi1VbHRyYS5vdGYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ0dvdGhhbSBIVEYnO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9Hb3RoYW1IVEYtQmxhY2sub3RmJyk7XHJcbn1cclxuXHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnR290aGFtIEhURic7XHJcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0dvdGhhbUhURi1Cb2xkLm90ZicpO1xyXG59XHJcblxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ0dvdGhhbSBIVEYnO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9Hb3RoYW1IVEYtTWVkaXVtLm90ZicpO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnR290aGFtIEhURic7XHJcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0dvdGhhbUhURi1NZWRpdW1JdGFsaWMub3RmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdHb3RoYW0gSFRGJztcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvR290aGFtSFRGLUJvb2sub3RmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdHb3RoYW0gSFRGJztcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvR290aGFtSFRGLUJvb2tJdGFsaWMub3RmJyk7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICdNdXNlbyBTYW5zJztcclxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBzcmM6IHVybCgnLi4vZm9udHMvTXVzZW9TYW5zXzkwMC5vdGYnKTtcclxufVxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgICBmb250LWZhbWlseTogJ011c2VvIFNhbnMnO1xyXG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIHNyYzogdXJsKCcuLi9mb250cy9NdXNlb1NhbnNfNzAwLm90ZicpO1xyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICAgIGZvbnQtZmFtaWx5OiBmb250RmFtaWx5KCdoZWFkaW5ncycpO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG4vLzU0XHJcbmgxLC5oMSB7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXR5cGUoJGgxLCBwZXJjZW50KCRoMSwgMjApKTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjE4O1xyXG59XHJcblxyXG4vLzM0XHJcbmgyLC5oMiB7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXR5cGUoJGgyLCBwZXJjZW50KCRoMiwgMjApKTtcclxufVxyXG5cclxuLy8yNFxyXG5oMywuaDMge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKCRoMywgcGVyY2VudCgkaDMsIDIwKSk7XHJcbn1cclxuXHJcbi8vMThcclxuaDQsLmg0IHtcclxuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtdHlwZSgkaDQsIHBlcmNlbnQoJGg0LCAxNikpO1xyXG59XHJcblxyXG4vLzE2XHJcbmg1LC5oNSB7XHJcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLXR5cGUoJGg1LCBwZXJjZW50KCRoNSwgMTYpKTtcclxufVxyXG5cclxuLy8xNFxyXG5oNiwuaDYge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKCRoNiwgcGVyY2VudCgkaDYsIDE0KSk7XHJcbn1cclxuXHJcbi5wYWdlLXRpdGxlIHtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg4MCk7XHJcbn0iLCIuYmctZGFyayB7XG4gIGNvbG9yOiBjb2xvcignaW52ZXJzZScpO1xuXG4gIGxhYmVsLCBcbiAgYTpub3QoLmJ1dHRvbikge1xuICAgIGNvbG9yOiBjb2xvcignaW52ZXJzZScpO1xuICB9XG5cbiAgLmNsb3NlLWJ1dHRvbiB7XG4gICAgY29sb3I6IGNvbG9yKCdpbnZlcnNlJyk7XG4gIH1cblxuICAubW9kdWxlLmZvcm0gLmdmb3JtX3dyYXBwZXIge1xuICAgIC52YWxpZGF0aW9uX21lc3NhZ2Uge1xuICAgICAgY29sb3I6IGNvbG9yKCdpbnZlcnNlJyk7XG4gICAgfVxuXG4gICAgLnZhbGlkYXRpb25fZXJyb3Ige1xuICAgICAgY29sb3I6IGNvbG9yKCdpbnZlcnNlJyk7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yKCdpbnZlcnNlJyk7XG4gICAgfVxuXG4gICAgdWwuZ2Zvcm1fZmllbGRzIHtcbiAgICAgIGxpLmdmaWVsZCB7XG4gICAgICAgIC5naW5wdXRfY29udGFpbmVyX2NoZWNrYm94IC5nZmllbGRfY2hlY2tib3gsXG4gICAgICAgIC5naW5wdXRfY29udGFpbmVyX3JhZGlvIC5nZmllbGRfcmFkaW8ge1xuICAgICAgICAgID4gbGkge1xuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvcignaW52ZXJzZScpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcignaW52ZXJzZScpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmJnLWltYWdlIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLy92aWRlbyBiZ1xuLmJnLXZpZGVvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC52aWRlby1vdmVybGF5IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIG92ZXJsYXk7XG4gICAgei1pbmRleDogMTtcbiAgXG4gICAgdmlkZW8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGZpbGw7XG4gICAgfVxuICB9XG5cbiAgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgfVxufVxuXG4uYmctdmlkZW8sXG4uYmctaW1hZ2Uge1xuXG4gIC5vdmVybGF5IHtcbiAgICBAaW5jbHVkZSBvdmVybGF5O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcbiAgfVxufVxuXG4uYmctYmx1ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yKCdwcmltYXJ5Jyk7XG59IiwiLmNvbG9yLWdyZXkge2NvbG9yOiAjNkM5NUE3fVxyXG4uY29sb3ItcmVkIHtjb2xvcjogI0Q5MDAxMX1cclxuLmNvbG9yLW9yYW5nZSB7Y29sb3I6ICNGRkEwMTd9XHJcbi5jb2xvci1ibHVlIHtjb2xvcjogIzAwOTNGRn1cclxuLmNvbG9yLXBpbmsge2NvbG9yOiAjRTcwMEREfVxyXG4uY29sb3ItZ3JlZW4ge2NvbG9yOiAjMDBBMjQ4fVxyXG5cclxuLmZzMTgge1xyXG4gIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbn1cclxuXHJcbi5mczE2IHtcclxuICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuICBsaW5lLWhlaWdodDogMS42OCA7XHJcbn1cclxuXHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgLnBsLW1kLTE1MCB7XHJcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMTUwKTtcclxuICB9XHJcbn1cclxuXHJcbi5wdWxsLXRvcCB7XHJcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xyXG5cclxuICBbY2xhc3NePVwiYmctXCJdKyZbY2xhc3NePVwiYmctXCJdLFxyXG4gIFtjbGFzcyo9XCJiZy1cIl0rJltjbGFzcyo9XCJiZy1cIl0ge1xyXG4gICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLnB1bGwtYm90dG9tIHtcclxuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcblxyXG4gICtbY2xhc3NePVwiYmctXCJdLFxyXG4gICtbY2xhc3MqPVwiYmctXCJdIHtcclxuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgW2NsYXNzXj1cImJnLVwiXSsmW2NsYXNzXj1cImJnLVwiXSxcclxuICBbY2xhc3MqPVwiYmctXCJdKyZbY2xhc3MqPVwiYmctXCJdIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbi5wdWxsLXZlcnQge1xyXG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcclxuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcblxyXG4gICtbY2xhc3NePVwiYmctXCJdLFxyXG4gICtbY2xhc3MqPVwiYmctXCJdIHtcclxuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgJltjbGFzc149XCJiZy1cIl0sXHJcbiAgJltjbGFzcyo9XCJiZy1cIl0ge1xyXG4gICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXBhZGRpbmcoXCJ2ZXJ0XCIsICRiYXNlLXBhZGRpbmcgKiAyKTtcclxuICB9XHJcbn1cclxuXHJcbi5jb2xsYXBzZS12ZXJ0IHtcclxuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcblxyXG4gICZbY2xhc3NePVwiYmctXCJdLFxyXG4gICZbY2xhc3MqPVwiYmctXCJdIHtcclxuICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tYXJnaW4oXCJ0b3BcIik7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICArW2NsYXNzXj1cImJnLVwiXS5jb2xsYXBzZS12ZXJ0LFxyXG4gICtbY2xhc3MqPVwiYmctXCJdLmNvbGxhcHNlLXZlcnQge1xyXG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4ucHVzaC12ZXJ0IHtcclxuICBAaW5jbHVkZSByZXNwb25zaXZlLW1hcmdpbihcInZlcnRcIiwgJGJhc2UtbWFyZ2luICogMiwgMC4yLCAndHJ1ZScpO1xyXG5cclxuICAmW2NsYXNzXj1cImJnLVwiXSxcclxuICAmW2NsYXNzKj1cImJnLVwiXSB7XHJcbiAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtcGFkZGluZyhcInZlcnRcIiwgJGJhc2UtcGFkZGluZyAqIDIsIDAuMiwgJ3RydWUnKTtcclxuICB9XHJcbn1cclxuXHJcbi5hbGlnbi1iYXNlbGluZSB7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi10b3Age1xyXG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLW1pZGRsZSB7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxpZ24tYm90dG9tIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi10ZXh0LWJvdHRvbSB7XHJcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi10ZXh0LXRvcCB7XHJcbiAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mbG9hdC1sZWZ0IHtcclxuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxvYXQtcmlnaHQge1xyXG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxvYXQtbm9uZSB7XHJcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmQtaW5saW5lIHtcclxuICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmQtaW5saW5lLWJsb2NrIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmQtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5kLWdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmQtdGFibGUge1xyXG4gIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5kLXRhYmxlLXJvdyB7XHJcbiAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5kLXRhYmxlLWNlbGwge1xyXG4gIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmQtZmxleCB7XHJcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZC1pbmxpbmUtZmxleCB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmQtbm9uZSB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxleC1maWxsIHtcclxuICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxleC1yb3cge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZsZXgtY29sdW1uIHtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mbGV4LXJvdy1yZXZlcnNlIHtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZsZXgtY29sdW1uLXJldmVyc2Uge1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxleC1ncm93LTAge1xyXG4gIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxleC1ncm93LTEge1xyXG4gIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxleC1zaHJpbmstMCB7XHJcbiAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZsZXgtc2hyaW5rLTEge1xyXG4gIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mbGV4LXdyYXAge1xyXG4gIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZmxleC1ub3dyYXAge1xyXG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mbGV4LXdyYXAtcmV2ZXJzZSB7XHJcbiAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmp1c3RpZnktY29udGVudC1zdGFydCB7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5qdXN0aWZ5LWNvbnRlbnQtZW5kIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uanVzdGlmeS1jb250ZW50LWJldHdlZW4ge1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uanVzdGlmeS1jb250ZW50LWFyb3VuZCB7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmp1c3RpZnktY29udGVudC1ldmVubHkge1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi1pdGVtcy1zdGFydCB7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLWl0ZW1zLWVuZCB7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi1pdGVtcy1jZW50ZXIge1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLWl0ZW1zLWJhc2VsaW5lIHtcclxuICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLWl0ZW1zLXN0cmV0Y2gge1xyXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi1jb250ZW50LXN0YXJ0IHtcclxuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi1jb250ZW50LWVuZCB7XHJcbiAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLWNvbnRlbnQtY2VudGVyIHtcclxuICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLWNvbnRlbnQtYmV0d2VlbiB7XHJcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxpZ24tY29udGVudC1hcm91bmQge1xyXG4gIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxpZ24tY29udGVudC1zdHJldGNoIHtcclxuICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5hbGlnbi1zZWxmLWF1dG8ge1xyXG4gIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLXNlbGYtc3RhcnQge1xyXG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLXNlbGYtZW5kIHtcclxuICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxpZ24tc2VsZi1jZW50ZXIge1xyXG4gIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYWxpZ24tc2VsZi1iYXNlbGluZSB7XHJcbiAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmFsaWduLXNlbGYtc3RyZXRjaCB7XHJcbiAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ub3JkZXItZmlyc3Qge1xyXG4gIG9yZGVyOiAtMSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ub3JkZXItMCB7XHJcbiAgb3JkZXI6IDAgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm9yZGVyLTEge1xyXG4gIG9yZGVyOiAxICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5vcmRlci0yIHtcclxuICBvcmRlcjogMiAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ub3JkZXItMyB7XHJcbiAgb3JkZXI6IDMgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm9yZGVyLTQge1xyXG4gIG9yZGVyOiA0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5vcmRlci01IHtcclxuICBvcmRlcjogNSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ub3JkZXItbGFzdCB7XHJcbiAgb3JkZXI6IDYgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRleHQtbG93ZXJjYXNlIHtcclxuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50ZXh0LXVwcGVyY2FzZSB7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGV4dC1jYXBpdGFsaXplIHtcclxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGV4dC1sZWZ0IHtcclxuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50ZXh0LXJpZ2h0IHtcclxuICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGV4dC1jZW50ZXIge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udmlzaWJsZSB7XHJcbiAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uaW52aXNpYmxlIHtcclxuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcclxufVxyXG5cclxuQGluY2x1ZGUgYnJlYWtwb2ludCh0aGVtZSgnYnJlYWtwb2ludHMnLCdzbWFsbCcpKSB7XHJcbiAgLmZsb2F0LXNtLWxlZnQge1xyXG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbG9hdC1zbS1yaWdodCB7XHJcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbG9hdC1zbS1ub25lIHtcclxuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1zbS1pbmxpbmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1zbS1pbmxpbmUtYmxvY2sge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1zbS1ibG9jayB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQtc20tZ3JpZCB7XHJcbiAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1zbS10YWJsZSB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQtc20tdGFibGUtcm93IHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQtc20tdGFibGUtY2VsbCB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1zbS1mbGV4IHtcclxuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLXNtLWlubGluZS1mbGV4IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1zbS1ub25lIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXNtLWZpbGwge1xyXG4gICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXNtLXJvdyB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1zbS1jb2x1bW4ge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtc20tcm93LXJldmVyc2Uge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1zbS1jb2x1bW4tcmV2ZXJzZSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXNtLWdyb3ctMCB7XHJcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXNtLWdyb3ctMSB7XHJcbiAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXNtLXNocmluay0wIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1zbS1zaHJpbmstMSB7XHJcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtc20td3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXNtLW5vd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtc20td3JhcC1yZXZlcnNlIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LXNtLXN0YXJ0IHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC1zbS1lbmQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC1zbS1jZW50ZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tYmV0d2VlbiB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5kIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LXNtLWV2ZW5seSB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWl0ZW1zLXNtLXN0YXJ0IHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24taXRlbXMtc20tZW5kIHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWl0ZW1zLXNtLWNlbnRlciB7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24taXRlbXMtc20tYmFzZWxpbmUge1xyXG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24taXRlbXMtc20tc3RyZXRjaCB7XHJcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQtc20tc3RhcnQge1xyXG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQtc20tZW5kIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC1zbS1jZW50ZXIge1xyXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC1zbS1iZXR3ZWVuIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LXNtLWFyb3VuZCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2gge1xyXG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYtc20tYXV0byB7XHJcbiAgICBhbGlnbi1zZWxmOiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi1zbS1zdGFydCB7XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi1zbS1lbmQge1xyXG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLXNtLWNlbnRlciB7XHJcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLXNtLWJhc2VsaW5lIHtcclxuICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi1zbS1zdHJldGNoIHtcclxuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1zbS1maXJzdCB7XHJcbiAgICBvcmRlcjogLTEgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1zbS0wIHtcclxuICAgIG9yZGVyOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXItc20tMSB7XHJcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLXNtLTIge1xyXG4gICAgb3JkZXI6IDIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1zbS0zIHtcclxuICAgIG9yZGVyOiAzICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXItc20tNCB7XHJcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLXNtLTUge1xyXG4gICAgb3JkZXI6IDUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1zbS1sYXN0IHtcclxuICAgIG9yZGVyOiA2ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudGV4dC1zbS1sZWZ0IHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC50ZXh0LXNtLXJpZ2h0IHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudGV4dC1zbS1jZW50ZXIge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcbkBpbmNsdWRlIGJyZWFrcG9pbnQodGhlbWUoJ2JyZWFrcG9pbnRzJywnbWVkaXVtJykpIHtcclxuICAuZmxvYXQtbWQtbGVmdCB7XHJcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsb2F0LW1kLXJpZ2h0IHtcclxuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsb2F0LW1kLW5vbmUge1xyXG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLW1kLWlubGluZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLW1kLWlubGluZS1ibG9jayB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLW1kLWJsb2NrIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1tZC1ncmlkIHtcclxuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLW1kLXRhYmxlIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1tZC10YWJsZS1yb3cge1xyXG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1tZC10YWJsZS1jZWxsIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLW1kLWZsZXgge1xyXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQtbWQtaW5saW5lLWZsZXgge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLW1kLW5vbmUge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbWQtZmlsbCB7XHJcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbWQtcm93IHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LW1kLWNvbHVtbiB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1tZC1yb3ctcmV2ZXJzZSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LW1kLWNvbHVtbi1yZXZlcnNlIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbWQtZ3Jvdy0wIHtcclxuICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbWQtZ3Jvdy0xIHtcclxuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbWQtc2hyaW5rLTAge1xyXG4gICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LW1kLXNocmluay0xIHtcclxuICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1tZC13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbWQtbm93cmFwIHtcclxuICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1tZC13cmFwLXJldmVyc2Uge1xyXG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtc3RhcnQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LW1kLWVuZCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LW1kLWNlbnRlciB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC1tZC1iZXR3ZWVuIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC1tZC1hcm91bmQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbWQtZXZlbmx5IHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24taXRlbXMtbWQtc3RhcnQge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy1tZC1lbmQge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24taXRlbXMtbWQtY2VudGVyIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy1tZC1iYXNlbGluZSB7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy1tZC1zdHJldGNoIHtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC1tZC1zdGFydCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC1tZC1lbmQge1xyXG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LW1kLWNlbnRlciB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LW1kLWJldHdlZW4ge1xyXG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQtbWQtYXJvdW5kIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi1tZC1hdXRvIHtcclxuICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLW1kLXN0YXJ0IHtcclxuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLW1kLWVuZCB7XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYtbWQtY2VudGVyIHtcclxuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYtbWQtYmFzZWxpbmUge1xyXG4gICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLW1kLXN0cmV0Y2gge1xyXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLW1kLWZpcnN0IHtcclxuICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLW1kLTAge1xyXG4gICAgb3JkZXI6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1tZC0xIHtcclxuICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXItbWQtMiB7XHJcbiAgICBvcmRlcjogMiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLW1kLTMge1xyXG4gICAgb3JkZXI6IDMgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1tZC00IHtcclxuICAgIG9yZGVyOiA0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXItbWQtNSB7XHJcbiAgICBvcmRlcjogNSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLW1kLWxhc3Qge1xyXG4gICAgb3JkZXI6IDYgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC50ZXh0LW1kLWxlZnQge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnRleHQtbWQtcmlnaHQge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC50ZXh0LW1kLWNlbnRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuQGluY2x1ZGUgYnJlYWtwb2ludCh0aGVtZSgnYnJlYWtwb2ludHMnLCdsYXJnZScpKSB7XHJcbiAgLmZsb2F0LWxnLXN0YXJ0IHtcclxuICAgIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxvYXQtbGctZW5kIHtcclxuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsb2F0LWxnLW5vbmUge1xyXG4gICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLWxnLWlubGluZSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLWxnLWlubGluZS1ibG9jayB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLWxnLWJsb2NrIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1sZy1ncmlkIHtcclxuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLWxnLXRhYmxlIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1sZy10YWJsZS1yb3cge1xyXG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC1sZy10YWJsZS1jZWxsIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLWxnLWZsZXgge1xyXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQtbGctaW5saW5lLWZsZXgge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLWxnLW5vbmUge1xyXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbGctZmlsbCB7XHJcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbGctcm93IHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LWxnLWNvbHVtbiB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1sZy1yb3ctcmV2ZXJzZSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LWxnLWNvbHVtbi1yZXZlcnNlIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbGctZ3Jvdy0wIHtcclxuICAgIGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbGctZ3Jvdy0xIHtcclxuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbGctc2hyaW5rLTAge1xyXG4gICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LWxnLXNocmluay0xIHtcclxuICAgIGZsZXgtc2hyaW5rOiAxICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1sZy13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgtbGctbm93cmFwIHtcclxuICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC1sZy13cmFwLXJldmVyc2Uge1xyXG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctc3RhcnQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LWxnLWVuZCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LWxnLWNlbnRlciB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC1sZy1iZXR3ZWVuIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC1sZy1hcm91bmQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQtbGctZXZlbmx5IHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24taXRlbXMtbGctc3RhcnQge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy1sZy1lbmQge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24taXRlbXMtbGctY2VudGVyIHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy1sZy1iYXNlbGluZSB7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy1sZy1zdHJldGNoIHtcclxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC1sZy1zdGFydCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC1sZy1lbmQge1xyXG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LWxnLWNlbnRlciB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LWxnLWJldHdlZW4ge1xyXG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQtbGctYXJvdW5kIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQtbGctc3RyZXRjaCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi1sZy1hdXRvIHtcclxuICAgIGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLWxnLXN0YXJ0IHtcclxuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLWxnLWVuZCB7XHJcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYtbGctY2VudGVyIHtcclxuICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYtbGctYmFzZWxpbmUge1xyXG4gICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLWxnLXN0cmV0Y2gge1xyXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLWxnLWZpcnN0IHtcclxuICAgIG9yZGVyOiAtMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLWxnLTAge1xyXG4gICAgb3JkZXI6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1sZy0xIHtcclxuICAgIG9yZGVyOiAxICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXItbGctMiB7XHJcbiAgICBvcmRlcjogMiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLWxnLTMge1xyXG4gICAgb3JkZXI6IDMgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci1sZy00IHtcclxuICAgIG9yZGVyOiA0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXItbGctNSB7XHJcbiAgICBvcmRlcjogNSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLWxnLWxhc3Qge1xyXG4gICAgb3JkZXI6IDYgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC50ZXh0LWxnLWxlZnQge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnRleHQtbGctcmlnaHQge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC50ZXh0LWxnLWNlbnRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuQGluY2x1ZGUgYnJlYWtwb2ludCh0aGVtZSgnYnJlYWtwb2ludHMnLCd4bGFyZ2UnKSkge1xyXG4gIC5mbG9hdC14bC1zdGFydCB7XHJcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsb2F0LXhsLWVuZCB7XHJcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbG9hdC14bC1ub25lIHtcclxuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14bC1pbmxpbmUge1xyXG4gICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14bC1pbmxpbmUtYmxvY2sge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14bC1ibG9jayB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteGwtZ3JpZCB7XHJcbiAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14bC10YWJsZSB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteGwtdGFibGUtcm93IHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteGwtdGFibGUtY2VsbCB7XHJcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14bC1mbGV4IHtcclxuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLXhsLWlubGluZS1mbGV4IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14bC1ub25lIHtcclxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXhsLWZpbGwge1xyXG4gICAgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXhsLXJvdyB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC14bC1jb2x1bW4ge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgteGwtcm93LXJldmVyc2Uge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC14bC1jb2x1bW4tcmV2ZXJzZSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXhsLWdyb3ctMCB7XHJcbiAgICBmbGV4LWdyb3c6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXhsLWdyb3ctMSB7XHJcbiAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXhsLXNocmluay0wIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC14bC1zaHJpbmstMSB7XHJcbiAgICBmbGV4LXNocmluazogMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgteGwtd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXhsLW5vd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgteGwtd3JhcC1yZXZlcnNlIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC14bC1zdGFydCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtZW5kIHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5qdXN0aWZ5LWNvbnRlbnQteGwtY2VudGVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LXhsLWJldHdlZW4ge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LXhsLWFyb3VuZCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC14bC1ldmVubHkge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHkgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy14bC1zdGFydCB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWl0ZW1zLXhsLWVuZCB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy14bC1jZW50ZXIge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWl0ZW1zLXhsLWJhc2VsaW5lIHtcclxuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWl0ZW1zLXhsLXN0cmV0Y2gge1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LXhsLXN0YXJ0IHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LXhsLWVuZCB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQteGwtY2VudGVyIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQteGwtYmV0d2VlbiB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC14bC1hcm91bmQge1xyXG4gICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC14bC1zdHJldGNoIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2ggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLXhsLWF1dG8ge1xyXG4gICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYteGwtc3RhcnQge1xyXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYteGwtZW5kIHtcclxuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi14bC1jZW50ZXIge1xyXG4gICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi14bC1iYXNlbGluZSB7XHJcbiAgICBhbGlnbi1zZWxmOiBiYXNlbGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYteGwtc3RyZXRjaCB7XHJcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXIteGwtZmlyc3Qge1xyXG4gICAgb3JkZXI6IC0xICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXIteGwtMCB7XHJcbiAgICBvcmRlcjogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLXhsLTEge1xyXG4gICAgb3JkZXI6IDEgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci14bC0yIHtcclxuICAgIG9yZGVyOiAyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXIteGwtMyB7XHJcbiAgICBvcmRlcjogMyAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLXhsLTQge1xyXG4gICAgb3JkZXI6IDQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci14bC01IHtcclxuICAgIG9yZGVyOiA1ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXIteGwtbGFzdCB7XHJcbiAgICBvcmRlcjogNiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnRleHQteGwtbGVmdCB7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudGV4dC14bC1yaWdodCB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnRleHQteGwtY2VudGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5AaW5jbHVkZSBicmVha3BvaW50KHRoZW1lKCdicmVha3BvaW50cycsJ3h4bGFyZ2UnKSkge1xyXG4gIC5mbG9hdC14eGwtc3RhcnQge1xyXG4gICAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbG9hdC14eGwtZW5kIHtcclxuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsb2F0LXh4bC1ub25lIHtcclxuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14eGwtaW5saW5lIHtcclxuICAgIGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteHhsLWlubGluZS1ibG9jayB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5kLXh4bC1ibG9jayB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteHhsLWdyaWQge1xyXG4gICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteHhsLXRhYmxlIHtcclxuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14eGwtdGFibGUtcm93IHtcclxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteHhsLXRhYmxlLWNlbGwge1xyXG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteHhsLWZsZXgge1xyXG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmQteHhsLWlubGluZS1mbGV4IHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZC14eGwtbm9uZSB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC14eGwtZmlsbCB7XHJcbiAgICBmbGV4OiAxIDEgYXV0byAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgteHhsLXJvdyB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC14eGwtY29sdW1uIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXh4bC1yb3ctcmV2ZXJzZSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXh4bC1jb2x1bW4tcmV2ZXJzZSB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2UgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXh4bC1ncm93LTAge1xyXG4gICAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC14eGwtZ3Jvdy0xIHtcclxuICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgteHhsLXNocmluay0wIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuZmxleC14eGwtc2hyaW5rLTEge1xyXG4gICAgZmxleC1zaHJpbms6IDEgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5mbGV4LXh4bC13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgteHhsLW5vd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmZsZXgteHhsLXdyYXAtcmV2ZXJzZSB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC14eGwtc3RhcnQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LXh4bC1lbmQge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC14eGwtY2VudGVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LXh4bC1iZXR3ZWVuIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmp1c3RpZnktY29udGVudC14eGwtYXJvdW5kIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuanVzdGlmeS1jb250ZW50LXh4bC1ldmVubHkge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHkgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy14eGwtc3RhcnQge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy14eGwtZW5kIHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWl0ZW1zLXh4bC1jZW50ZXIge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWl0ZW1zLXh4bC1iYXNlbGluZSB7XHJcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1pdGVtcy14eGwtc3RyZXRjaCB7XHJcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQteHhsLXN0YXJ0IHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LXh4bC1lbmQge1xyXG4gICAgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1jb250ZW50LXh4bC1jZW50ZXIge1xyXG4gICAgYWxpZ24tY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC14eGwtYmV0d2VlbiB7XHJcbiAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tY29udGVudC14eGwtYXJvdW5kIHtcclxuICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLWNvbnRlbnQteHhsLXN0cmV0Y2gge1xyXG4gICAgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYteHhsLWF1dG8ge1xyXG4gICAgYWxpZ24tc2VsZjogYXV0byAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmFsaWduLXNlbGYteHhsLXN0YXJ0IHtcclxuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLXh4bC1lbmQge1xyXG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLXh4bC1jZW50ZXIge1xyXG4gICAgYWxpZ24tc2VsZjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuYWxpZ24tc2VsZi14eGwtYmFzZWxpbmUge1xyXG4gICAgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5hbGlnbi1zZWxmLXh4bC1zdHJldGNoIHtcclxuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci14eGwtZmlyc3Qge1xyXG4gICAgb3JkZXI6IC0xICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXIteHhsLTAge1xyXG4gICAgb3JkZXI6IDAgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci14eGwtMSB7XHJcbiAgICBvcmRlcjogMSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLXh4bC0yIHtcclxuICAgIG9yZGVyOiAyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXIteHhsLTMge1xyXG4gICAgb3JkZXI6IDMgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5vcmRlci14eGwtNCB7XHJcbiAgICBvcmRlcjogNCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLm9yZGVyLXh4bC01IHtcclxuICAgIG9yZGVyOiA1ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAub3JkZXIteHhsLWxhc3Qge1xyXG4gICAgb3JkZXI6IDYgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC50ZXh0LXh4bC1sZWZ0IHtcclxuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC50ZXh0LXh4bC1yaWdodCB7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnRleHQteHhsLWNlbnRlciB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICB9XHJcbn0iLCIuZ3JpZC1jb250YWluZXIge1xuICAgIG1heC13aWR0aDogcmVtLWNhbGModGhlbWUoJ2xheW91dCcsICd3aWR0aCcpICsgdGhlbWUoJ2xheW91dCcsICdwYWRkaW5nJykgKiAyKTtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygwIHRoZW1lKCdsYXlvdXQnLCAncGFkZGluZycpKTtcbn0iLCIkb2ZmY2FudmFzLWJhY2tncm91bmQ6IGNvbG9yKCdwcmltYXJ5Jyk7XHJcbiRvZmZjYW52YXMtYmFja2dyb3VuZC1vcGFjaXR5OiAxO1xyXG4kb2ZmY2FudmFzLWxpbmtzLWNvbG9yOiBjb2xvcignaW52ZXJzZScpO1xyXG4kb2ZmY2FudmFzLXRleHQtY29sb3I6IGNvbG9yKCdpbnZlcnNlJyk7XHJcblxyXG4vL29mZi1jYW52YXMgY29udGVudFxyXG4ub2ZmLWNhbnZhcyB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCRvZmZjYW52YXMtYmFja2dyb3VuZCwgJG9mZmNhbnZhcy1iYWNrZ3JvdW5kLW9wYWNpdHkpO1xyXG4gICAgY29sb3I6ICRvZmZjYW52YXMtdGV4dC1jb2xvcjtcclxuICAgIG92ZXJmbG93OiBhdXRvO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHI7XHJcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxMjAgMjUgNTApO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cclxuXHJcbiAgICAmLmlzLW9wZW4ge1xyXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICB9XHJcbiAgICAvL2NvbG9yIG9mIHRoZSBsaW5rcyBcclxuICAgIGE6bGluayxcclxuICAgIGE6dmlzaXRlZCB7XHJcbiAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbGlua3MtY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgJi5pcy1vcGVuIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy9tZW51XHJcbiAgICAubWVudSB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLmRyaWxsZG93biB7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm1lbnUtaW1hZ2Uge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWNjb3JkaW9uLW1lbnUge1xyXG4gICAgICAgID4gbGkge1xyXG4gICAgICAgICBcclxuICAgICAgICAgICAgPiBhIHtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XHJcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoNDApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmN1cnJlbnQtbWVudS1pdGVtIHtcclxuICAgICAgICAgICAgICAgID4gYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAuc3VibWVudS10b2dnbGUge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XHJcblxyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHN2Zy11cmkoJzxzdmcgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4PVwiMHB4XCIgeT1cIjBweFwiIHdpZHRoPVwiMTEuNnB4XCIgaGVpZ2h0PVwiN3B4XCIgdmlld0JveD1cIjAgMCAxMS42IDdcIiBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTEuNiA3O1wiIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+PHBvbHlnb24gcG9pbnRzPVwiNi4xLDcgMCwwLjkgMC45LDAgNi4xLDUuMiAxMC43LDAuNyAxMS42LDEuNlwiIGZpbGw9XCIjZmZmXCIvPjwvc3ZnPicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygxMik7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg3KTtcclxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHVsIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygyMCk7XHJcbiAgICAgICAgICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygzMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9jbG9zZSBidXR0b25cclxuICAgIC5jbG9zZS1idXR0b24ge1xyXG4gICAgICAgIEBpbmNsdWRlIGNsb3NlQnV0dG9uKCRvZmZjYW52YXMtdGV4dC1jb2xvcik7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHJpZ2h0OiByZW0tY2FsYygzMCk7XHJcbiAgICAgICAgdG9wOiByZW0tY2FsYygyMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLmhlYWRlci1jYWxsIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgfVxyXG59XHJcblxyXG4ub2ZmLWNhbnZhcy13cmFwcGVyIHtcclxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG59XHJcblxyXG4ub2ZmLWNhbnZhcy5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xyXG4gICAgei1pbmRleDogOTk5OTtcclxuXHJcbiAgICAmLmlzLW9wZW4ge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICB9XHJcbn0iLCIuc2l0ZS1oZWFkZXIge1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDIwIDApO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcignZ3JleScpO1xuICAgIHotaW5kZXg6IDk5OTk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDMwIDAgMjApO1xuICAgIH1cblxuICAgXG59XG5cbi5oZWFkZXItY2FsbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKDI1LDE2KTtcbiAgICBmb250LWZhbWlseTogZm9udEZhbWlseSgnc2Vjb25kYXJ5Jyk7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBjb2xvcjogY29sb3IoJ3JlZCcpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogY29sb3IoJ3JlZCcpICFpbXBvcnRhbnQ7XG4gICAgfVxufSIsImZvb3Rlci5zaXRlLWZvb3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcignZ3JleScpO1xyXG4gICAgcGFkZGluZzogcmVtLWNhbGMoNjAgMCk7XHJcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjMxO1xyXG5cclxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTIwIDApOyBcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLWxvZ29zIHtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG8gcmVtLWNhbGMoMjApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLWJyYW5kLWxvZ28ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIG1hcmdpbjogMCBhdXRvIHJlbS1jYWxjKDcwKTtcclxuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDIwMyk7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvb3Rlci10aXRsZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKDI0LDE4KTtcclxuICAgICAgICBjb2xvcjogY29sb3IoJ2ludmVyc2UnKTtcclxuICAgICAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcclxuXHJcbiAgICAgICAgJi5ib3JkZXIge1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xyXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkaXYgKyAuZm9vdGVyLXRpdGxlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDIwKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9vdGVyLWNvbnRhY3Qge1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb290ZXItbG9jYXRpb24ge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg0NSk7XHJcbiAgICAgICAgLmljb24tbWFwIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uLW1hcC5zdmcpIG5vLXJlcGVhdDtcclxuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDI3KTtcclxuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0MCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jb3B5cmlnaHQge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygyNSk7XHJcbiAgICB9XHJcblxyXG4gICAgLm1lbnUge1xyXG4gICAgICAgIGxpOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuY2VsbCB7XHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XHJcbiAgICAgICAgICAgICsgLmNlbGwge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMzApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLmJ1dHRvbiB7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiBjb2xvcigncHJpbWFyeScpO1xyXG4gIGNvbG9yOiBjb2xvcignd2hpdGUnKTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICBib3JkZXI6IDA7XHJcbiAgdHJhbnNpdGlvbjogY29sb3IgJHRyLCBiYWNrZ3JvdW5kICR0ciwgYm9yZGVyLWNvbG9yICR0cjtcclxuICBwYWRkaW5nOiByZW0tY2FsYygxMCAzMCk7XHJcbiAgbWluLWhlaWdodDogcmVtLWNhbGMoNTApO1xyXG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtdHlwZSgxOCwxNCk7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICBib3JkZXItcmFkaXVzOiByZW0tY2FsYyg2MCk7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICBtaW4taGVpZ2h0OiByZW0tY2FsYyg1Nik7XHJcbiAgfVxyXG5cclxuICAmOmhvdmVyIHtcclxuICAgIGNvbG9yOiBjb2xvcignd2hpdGUnKTtcclxuICAgIGJhY2tncm91bmQ6IGNvbG9yKCdyZWQnKTtcclxuICB9XHJcbiBcclxuICAmOmZvY3VzLFxyXG4gICY6YWN0aXZlIHtcclxuICAgIG91dGxpbmU6IDA7XHJcbiAgfVxyXG5cclxuICAmOmRpc2FibGVkLFxyXG4gICYuZGlzYWJsZWR7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICB9XHJcblxyXG4gICYuc2Vjb25kYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6IGNvbG9yKCdyZWQnKTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgYmFja2dyb3VuZDogY29sb3IoJ3ByaW1hcnknKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYubGFyZ2Uge1xyXG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKDM2LDIyKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuXHJcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICBtaW4taGVpZ2h0OiByZW0tY2FsYyg2NSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5icmFuZCB7XHJcblxyXG4gICAgaW1nLFxyXG4gICAgc3ZnIHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDgwKTtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xyXG4gICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDE4Mik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLmRyb3Bkb3duLm1lbnU+bGk+YSxcbi5kcm9wZG93bi5tZW51PmxpLmlzLWFjdGl2ZT5hLFxuLm1lbnUgLmFjdGl2ZT5hIHtcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubWVudSxcbi5tZW51LmRyb3Bkb3duIHtcbiAgICBsaS5idXR0b24sXG4gICAgPiBsaS5idXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5idXR0b247XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tZW51LmRyb3Bkb3duIHtcbiAgICA+IGxpIHtcbiAgICAgICAgJi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCB7XG4gICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy9zdWJtZW51XG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTBweCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbiwgdHJhbnNmb3JtIDAuM3MgZWFzZS1pbiwgdmlzaWJpbGl0eSAwLjNzIGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgICAgICAvL2FjdGl2ZSBzdGF0ZSAgICAgICAgICAgIFxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICB9XG4gICAgICAgfVxuICAgIH1cbn1cblxuLnByaW1hcnktbmF2aWdhdGlvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgPiB1bC5tZW51IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdkYXJrLWdyZXknKTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdyZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygyNSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMDUwKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKDcwKTsgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyNCk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvcignZGFyay1ncmV5Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmN1cnJlbnQtbWVudS1pdGVtIHtcbiAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCAge1xuICAgICAgICAgICAgICAgIC5jaXJjbGUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg3NSk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogcmVtLWNhbGMoNzUpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDNweCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMTApO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiByZW0tY2FsYygtMTUpO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogNjAlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID4gYSB7XG4gXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHN2Zy11cmkoJzxzdmcgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIiB4PVwiMHB4XCIgeT1cIjBweFwiIHdpZHRoPVwiMTEuNnB4XCIgaGVpZ2h0PVwiN3B4XCIgdmlld0JveD1cIjAgMCAxMS42IDdcIiBzdHlsZT1cImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTEuNiA3O1wiIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+PHBvbHlnb24gcG9pbnRzPVwiNi4xLDcgMCwwLjkgMC45LDAgNi4xLDUuMiAxMC43LDAuNyAxMS42LDEuNlwiIGZpbGw9XCIje2NvbG9yKCdkYXJrLWdyZXknKX1cIi8+PC9zdmc+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IHJlbS1jYWxjKC0yMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoLTYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyID4gYXtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdkYXJrLWdyZXknKTtcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBzdmctdXJpKCc8c3ZnIHZlcnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgeD1cIjBweFwiIHk9XCIwcHhcIiB3aWR0aD1cIjExLjZweFwiIGhlaWdodD1cIjdweFwiIHZpZXdCb3g9XCIwIDAgMTEuNiA3XCIgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDExLjYgNztcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiPjxwb2x5Z29uIHBvaW50cz1cIjYuMSw3IDAsMC45IDAuOSwwIDYuMSw1LjIgMTAuNywwLjcgMTEuNiwxLjZcIiBmaWxsPVwiI3tjb2xvcignZGFyay1ncmV5Jyl9XCIvPjwvc3ZnPicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gdWwuc3VibWVudSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDNweCA0cHggMTVweCByZ2JhKDAsMCwwLDAuMTApO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg1MCAyNSAwKTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG92ZXJsYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgID5saSB7XG4gICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDQ5MCk7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogcmVtLWNhbGMoMjkwKTtcbiAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygxNDApO1xuICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiByZW0tY2FsYyg0NSk7XG4gICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYyg0NSk7XG5cbiAgICAgICAgICAgICAgICAgICYuY3VycmVudC1tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICYuaXMtYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgID4gYSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogOTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjQkJCNUE3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAubWVudS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCgtNTAlKSk7XG5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogZm9udEZhbWlseSgnc2Vjb25kYXJ5Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjMpO1xuICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDI5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygyOSk7XG4gICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvcigncmVkJykgdXJsKC4uL2ltYWdlcy9hcnJvdy5zdmcpIG5vLXJlcGVhdCA1MCUgNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICA+IGxpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICYuY3VycmVudC1tZW51LWl0ZW0gPiBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIuaGFtYnVyZ2VyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cclxuICAgIC5oYW1idXJnZXItYnV0dG9uIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjEpO1xyXG4gICAgICAgIG1pbi13aWR0aDogcmVtLWNhbGMoMjEpO1xyXG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTcpO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcbiAgICAgICAgLmhhbWJ1cmdlci1saW5lIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzKTtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3IoJ3ByaW1hcnknKTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xyXG5cclxuICAgICAgICAgICAgJi5oYW1idXJnZXItbGluZTEge1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAmLmhhbWJ1cmdlci1saW5lMiB7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xLjVweDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJi5oYW1idXJnZXItbGluZTMge1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xyXG4gICAgICAgIC5oYW1idXJnZXItbGluZTEge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSB0cmFuc2xhdGVYKDApIHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaGFtYnVyZ2VyLWxpbmUyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5oYW1idXJnZXItbGluZTMge1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExcHgpIHRyYW5zbGF0ZVgoMCkgcm90YXRlKC00NWRlZyk7XHJcbiAgICAgICAgICAgIGJvdHRvbTogaW5pdGlhbDtcclxuICAgICAgICAgICAgdG9wOiAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsImEuc2tpcC1tYWluIHtcbiAgICBsZWZ0OiAtOTk5cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogYXV0bztcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogLTk5OTtcblxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDEwcHggMzUlO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHllbGxvdztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICB6LWluZGV4OiA5OTk5O1xuICAgIH1cbn0iLCJzZWN0aW9uLmNvbnRlbnQtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWFyZ2luKFwidG9wXCIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG4gICAgICAgIC5ncmlkLXggLmNlbGwuc21hbGwtb3JkZXItMSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1hcmdpbihcImJvdHRvbVwiLCAkbW9kdWxlLW1hcmdpbik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbnNlY3Rpb25bY2xhc3MqPVwiIGJnLVwiXSB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1wYWRkaW5nKFwidmVydFwiKTtcbn1cblxuc2VjdGlvbltjbGFzcyo9XCIgYmctXCJdK3NlY3Rpb25bY2xhc3MqPVwiIGJnLVwiXSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbn1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrOmxhc3Qtb2YtdHlwZSB7XG4gICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS1tYXJnaW4oXCJib3R0b21cIik7XG59XG5cblxuc2VjdGlvbjpsYXN0LW9mLXR5cGVbY2xhc3MqPVwiIGJnLVwiXSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuc2VjdGlvbi5jb250ZW50LWJsb2NrOmxhc3Qtb2YtdHlwZS5jb2xsYXBzZS12ZXJ0IHtcbiAgICBAaW5jbHVkZSByZXNwb25zaXZlLW1hcmdpbihcImJvdHRvbVwiLCAkYmFzZS1tYXJnaW4pO1xufVxuXG5zZWN0aW9uLmNvbGxhcHNlIC5ncmlkLXggLmNlbGwge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4uaGFzLTItY29scyxcbi5oYXMtMy1jb2xzLFxuLmhhcy00LWNvbHMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICAmOm5vdCguYmxvY2stZ3JpZCk+LmNlbGwrLmNlbGwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYmxvY2stZ3JpZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoLTMwKTtcbiAgICA+IC5jZWxsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoLTU1KTtcbiAgICA+IC5jZWxsIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNTUpO1xuICAgIH1cbiAgICB9XG59Iiwic2VjdGlvbi5jb250ZW50LWJsb2NrIHtcclxuICAgIC5jZWxsIHtcclxuXHJcbiAgICAgICAgJltjbGFzc149XCJiZy1cIl0sXHJcbiAgICAgICAgJltjbGFzcyo9XCJiZy1cIl0ge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXBhZGRpbmcoJ2FsbCcsICRtb2R1bGUtcGFkZGluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLm1vZHVsZSB7XHJcblxyXG4gICAgKy5tb2R1bGUge1xyXG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtbWFyZ2luKFwidG9wXCIsICRtb2R1bGUtbWFyZ2luKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnN0YWNrLW9yZGVyLTEge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxufSIsImhlYWRlci5tb2R1bGUge1xyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuaGVhZGxpbmUge1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCIubW9kdWxlLnRleHQtZWRpdG9yIHtcbiAgICBhOm5vdCguYnV0dG9uKSB7XG4gICAgICAgIGNvbG9yOiBjb2xvcigncHJpbWFyeScpO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMSxcbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCxcbiAgICBoNSxcbiAgICBoNiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRwLW1hcmdpbiAvIDIpO1xuICAgIH1cblxuICAgIHAubGFyZ2Uge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXR5cGUoJGgzLCBwZXJjZW50KCRoMywgMjApKTtcbiAgICB9XG5cbiAgICAuaW50cm8ge1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXR5cGUoMjEsIHBlcmNlbnQoMjEsIDIwKSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU3O1xuXG4gICAgICAgICYuYmxhY2sge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGIsc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDgwKTtcbiAgICB9XG5cbiAgICAucGRmLWxpbmsge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyg1MCk7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59IiwiLm1vZHVsZS5idXR0b25zIHtcclxuICAgIC5idXR0b24ge1xyXG4gICAgICAgIG1hcmdpbjogMDtcclxuICAgIH1cclxuXHJcbiAgICAuYnV0dG9uLXdyYXAge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKCRtb2R1bGUtbWFyZ2luICogMC41KTtcclxuXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICsuYnV0dG9uLXdyYXAge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbS1jYWxjKCRtb2R1bGUtbWFyZ2luKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmFsaWduLWNlbnRlciB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG59IiwiLm1vZHVsZS52aWRlbyB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuXHJcbiAgICB2aWRlbyB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIH1cclxuXHJcbiAgICAucmVzcG9uc2l2ZS1lbWJlZCxcclxuICAgIC5mbGV4LXZpZGVvIHtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC52aWRlby13cmFwcGVyIHtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBvdmVybGF5KCk7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC4xKSwgcmdiYSgyOCwgMjgsIDI4LCAwLjcyKSk7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLnBsYXlpbmcge1xyXG4gICAgICAgICAgICAucGxheS1idXR0b24ge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucGxheS1idXR0b24ge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgIHdpZHRoOiByZW0tY2FsYyg1MCk7XHJcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg1MCk7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9wbGF5LWJ1dHRvbi5zdmcpIG5vLXJlcGVhdDtcclxuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgei1pbmRleDogMjtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcclxuICAgICAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDk1KTtcclxuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg5NSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiLy8gc3R5bGVndWlkZTppZ25vcmU6c3RhcnRcclxuQGltcG9ydCAnc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2Nzcyc7XHJcbi8vIHN0eWxlZ3VpZGU6aWdub3JlOmVuZFxyXG5cclxuLnNsaWNrLWFycm93IHtcclxuICB3aWR0aDogcmVtLWNhbGMoMjApO1xyXG4gIGhlaWdodDogcmVtLWNhbGMoMzgpO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBmb250LXNpemU6IDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHotaW5kZXg6IDEwO1xyXG4gIHRvcDogNTAlO1xyXG4gIG1hcmdpbi10b3A6IHJlbS1jYWxjKC0xOSk7XHJcbn1cclxuXHJcbi5zbGljay1wcmV2IHtcclxuICBsZWZ0OiByZW0tY2FsYygyMCk7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9jaGV2cm9uLWxlZnQuc3ZnKTtcclxuXHJcbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgxMzk1KSB7XHJcbiAgICBsZWZ0OiByZW0tY2FsYygtNDApO1xyXG4gIH1cclxufVxyXG5cclxuLnNsaWNrLW5leHQge1xyXG4gIHJpZ2h0OiByZW0tY2FsYygyMCk7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9jaGV2cm9uLXJpZ2h0LnN2Zyk7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTM5NSkge1xyXG4gICAgcmlnaHQ6IHJlbS1jYWxjKC00MCk7XHJcbiAgfVxyXG59XHJcblxyXG4uc2xpY2stc2xpZGUge1xyXG4gIG1hcmdpbjogcmVtLWNhbGMoMCAxNSk7XHJcbn1cclxuXHJcblxyXG4uc2xpY2stbGlzdCB7XHJcbiAgbWFyZ2luOiByZW0tY2FsYygwIC0xNSk7XHJcbn1cclxuXHJcbi5jYXJvdXNlbC1pdGVtIHtcclxuICBpbWcge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi5zbGljay1kb3RzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxuXHJcbiAgYnV0dG9uIHtcclxuICAgIGZvbnQtc2l6ZTogMDtcclxuICAgIHdpZHRoOiByZW0tY2FsYyg4KTtcclxuICAgIGhlaWdodDogcmVtLWNhbGMoOCk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IHJlbS1jYWxjKDEwKTtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICB9XHJcblxyXG5cclxuICBsaSB7XHJcbiAgICBtYXJnaW46IHJlbS1jYWxjKDAgMyk7XHJcbiAgfVxyXG4gIC5zbGljay1hY3RpdmUge1xyXG4gICAgYnV0dG9uIFxyXG4gICAge1xyXG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xyXG4gICAgfVxyXG4gIH1cclxufSIsInBpY3R1cmUubW9kdWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIFxuICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufSIsIiRpbnB1dC1oZWlnaHQ6IHJlbS1jYWxjKDUwKTtcbiRpbnB1dC1wYWRkaW5nczogcmVtLWNhbGMoMTAgMjApO1xuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICNBM0JCQzc7XG5cbmlucHV0Om5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPSdmaWxlJ10pLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZ3M7XG4gICAgaGVpZ2h0OiAkaW5wdXQtaGVpZ2h0O1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogIzU5NTg1NTtcblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIC8vIHJlbW92ZSBwbGFjZWhvbGRlciBvbiBpbnB1dCA6Zm9jdXMgYnkgZGVmYXVsdFxuICAgICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBib3JkZXItY29sb3I6ICNCQkI1QTc7XG4gICAgfVxufVxuXG5zZWxlY3Qge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBzdmctdXJpKCc8c3ZnIHZlcnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIgeD1cIjBweFwiIHk9XCIwcHhcIiB2aWV3Qm94PVwiMCAwIDE4LjYgOS43XCIgc3R5bGU9XCJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE4LjYgOS43O1wiIHhtbDpzcGFjZT1cInByZXNlcnZlXCI+PHBhdGggZD1cIk05LjYsOS43Yy0wLjMsMC0wLjctMC4xLTEtMC4zTDAuNSwyLjdjLTAuNi0wLjUtMC43LTEuNS0wLjItMi4xYzAuNS0wLjYsMS41LTAuNywyLjEtMC4ybDcuMSw1LjlsNi41LTUuOSBjMC42LTAuNiwxLjYtMC41LDIuMSwwLjFjMC42LDAuNiwwLjUsMS42LTAuMSwyLjFsLTcuNSw2LjdDMTAuMyw5LjYsMTAsOS43LDkuNiw5Ljd6XCIvPjwvc3ZnPicpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogOXB4IDZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG50ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG5cbi5mb3JtLWZpZWxkIHtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygwIDUpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuaGFsZi13aWR0aCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxufVxuXG4uZm9ybS1ib2R5IHtcbiAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoLTUpO1xuICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoLTUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uZm9ybS1jb250cm9sIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoNjApO1xuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygzNjApO1xuXG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgbWluLWhlaWdodDogcmVtLWNhbGMoOTApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubWVzc2FnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICYubWVzc2FnZS1lcnJvciB7IGNvbG9yOiByZWQ7fVxuICAgICYubWVzc2FnZS1vayB7IGNvbG9yOiBncmVlbjt9XG59IiwiaGVhZGVyLnRlbXBsYXRlLWhlYWRlciB7XHJcbiAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzUpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblxyXG4gICAgJi5hbGlnbi1jZW50ZXIge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuaGVhZGxpbmUge1xyXG4gICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCJzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtdHlwZSgyMSwgMTYpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IGNvbG9yKCdyZWQnKTtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG5cbiAgICAmW2NsYXNzKj1cIiBiZy1cIl0ge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzNSAwKTtcbiAgICB9XG5cbiAgIGEge1xuICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgY29sb3I6IGNvbG9yKCdyZWQnKTtcbiAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXR5cGUoMjksIDIxKTtcbiAgIH1cblxuICAgJi5iZy1kYXJrIHtcbiAgICAgICBjb2xvcjogJHdoaXRlO1xuXG4gICAgICAgYSB7XG4gICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgfVxuICAgfVxufVxuIiwic2VjdGlvbi5oZXJvLXVuaXQge1xuXG4gICAgLmhlcm8tdW5pdC1jb250ZW50IHtcbiAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYyg2MjUpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHJlbS1jYWxjKDIwMCk7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKCRoMSwgcGVyY2VudCgkaDEsIDIwKSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xODtcbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhlcm8tdW5pdC1idXR0b24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNDgzKTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhlcm8tc2xpZGVyLWl0ZW0ge1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg2MCAwKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDE5NSAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5zbGljay1zbGlkZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay10cmFjayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgKyAuY29udGVudC1ibG9ja1tjbGFzcyo9XCIgYmctXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59Iiwic2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzIHtcbiAgICAuc2VydmljZS1pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyNCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuc2VydmljZS10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMS44NHB4O1xuICAgIH1cbn0iLCJzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtYWR2YW50YWdlcyB7XG4gICAgLnRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgdHlwbygnY2FwdGlvbicpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTUpO1xuICAgIH1cblxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjk4Mjs7XG4gICAgfVxuXG4gICAgLnRlbXBsYXRlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDYwKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEyMCk7XG5cbiAgICAgICAgKyBzZWN0aW9uLmNvbnRlbnQtYmxvY2sge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTIwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsInNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1zcGxpdC1jb250ZW50IHtcbiAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDApO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNTApO1xuXG4gICAgICAgIH1cblxuICAgICAgICAubWVkaWEge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgKyBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ViZjBmMjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMjApO1xuXG4gICAgICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMzU1KTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShyZW0tY2FsYyg1MCkpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOjQwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg1MCAyMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5tZWRpYSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygtMTA1KTtcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYucHVsbC10b3Age1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDIwMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMDApO1xuXG4gICAgICAgICAgICAgICAgLmNvbnRlbnQgXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkocmVtLWNhbGMoLTUwKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm1lZGlhIHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IDI7IFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYygtMTA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsaWduLWNlbnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcbiAgICAgICAgICAgIC5yb3cge1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICBcbiAgICAgICAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDtcblxuICAgICAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zOTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufSIsInNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS1jb2xvci1jaGFuZ2VyIHtcbiAgICAuY29sb3Itc2NlbmUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoNjAwKTtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNjUgMCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygxMDgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNnM7XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgICAgXG4gICAgICAgIC5jb2xvci1zbGlkZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBAaW5jbHVkZSBvdmVybGF5KCk7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDI0MCk7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDMwMCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29sb3ItbmF2IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sb3ItcGlja2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgLmNvbG9yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoNjUpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoMCA1KTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygxMTQpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDAgOCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2xvci1jb250ZW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTgpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNjgwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuNnM7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCJzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtZmVhdHVyZWQtZ2FsbGVyeSB7XG4gICAgLmltYWdle1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI0JCQjVBNztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjg0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxNTApO1xuXG4gICAgICAgICsgc2VjdGlvbi5jb250ZW50LWJsb2NrIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDEyMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxMjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhlYWRsaW5lIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzcG9uc2l2ZS10eXBlKCRoMSwgcGVyY2VudCgkaDEsIDIwKSk7XG4gICAgfVxufSIsInNlY3Rpb24uY29udGVudC1ibG9jay50ZW1wbGF0ZS10ZXN0aW1vbmlhbHMge1xuICAgIC5ncmlkLWNvbnRhaW5lciB7XG4gICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNjAwKVxuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2Jsb2NrcXVvdGUuc3ZnKSBuby1yZXBlYXQ7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMzkpO1xuICAgICAgICAgICAgaGVpZ2h0OiByZW0tY2FsYygzOSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0byByZW0tY2FsYygxNSk7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE5KTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40NztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjApO1xuICAgIH1cblxuICAgIC5jaXRlIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxMilcbiAgICB9XG5cbiAgICAuc2xpY2stZG90cyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDc1KTtcbiAgICB9XG59Iiwic2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLWdhbGxlcnkge1xuICAgIC5nYWxsZXJ5LWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDExNDAgKyB0aGVtZSgnbGF5b3V0JywgJ3BhZGRpbmcnKSAqIDIpO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktaXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktMiB7XG4gICAgICAgIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbWctMTAge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNi41JTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS10aXRsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbn0iLCJzZWN0aW9uLmNvbnRlbnQtYmxvY2sudGVtcGxhdGUtY29udGFjdC1mb3JtIHtcbiAgICAucGFnZS10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoJ3JlZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2Utc3VidGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg2MCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgfVxuXG4gICAgLmFkZHJlc3Mge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAjNTk1ODU1O1xuICAgICAgICBAaW5jbHVkZSByZXNwb25zaXZlLXR5cGUoJGg0LCBwZXJjZW50KCRoNCwgMTYpKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuXG4gICAgICAgIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJHAtbWFyZ2luICogMiArIDEwKTtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGNvbG9yKCdyZWQnKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAgcmVtLWNhbGMoJHAtbWFyZ2luICogMiArIDEwKTtcbiAgICB9XG5cbiAgICArIC5jb250ZW50LWJsb2NrIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMoMTAwKTtcbiAgICB9XG59Iiwic2VjdGlvbi5jb250ZW50LWJsb2NrLnRlbXBsYXRlLXNlcnZpY2VzLWxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDQwcHggIWltcG9ydGFudDtcbiAgICBoMiB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtdHlwZSg0NiwgcGVyY2VudCg0NiwgMjApKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtdHlwZSgzNywgcGVyY2VudCgzNywgMjApKTtcbiAgICB9XG5cbiAgICAuYnV0dG9ucy5pbmxpbmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1NXB4O1xuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stZ3JpZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xMDBweDtcblxuICAgICAgICA+IC5jZWxsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzNXB4O1xuICAgICAgICB9XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG5cbiAgICAgICAgICAgIGIge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9ucyB7XG4gICAgICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogNzAlO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNlY29uZGFyeSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogOTUlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iXX0= */
