@charset "UTF-8";
/**
 * Foundation for Sites by ZURB
 * Version 6.2.3
 * foundation.zurb.com
 * Licensed under MIT Open Source
 */
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: transparent;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: 1; }
  [data-whatinput='mouse'] button {
    outline: 0; }

.is-visible {
  display: block !important; }

.is-hidden {
  display: none !important; }

.button.arrow-left, .arrow-left.button__edit, .button.arrow-right, .arrow-right.button__edit {
  display: none; }
  @media print, screen and (min-width: 41.875em) {
    .button.arrow-left, .arrow-left.button__edit, .button.arrow-right, .arrow-right.button__edit {
      display: block;
      position: relative;
      margin-bottom: 3.125rem;
      font-family: Malleable;
      font-size: 1.0625rem;
      line-height: 1.0625rem;
      letter-spacing: 0.1125rem;
      text-transform: uppercase;
      color: #222222;
      background: none;
      border: 0; } }
  @media print, screen and (min-width: 41.875em) and (min-width: 41.875em) {
    .button.arrow-left, .arrow-left.button__edit, .button.arrow-right, .arrow-right.button__edit {
      margin-bottom: 50px; } }
  .button.arrow-left::before, .arrow-left.button__edit::before, .button.arrow-right::before, .arrow-right.button__edit::before {
    content: '';
    position: absolute;
    top: 50%;
    width: 0.875rem;
    height: 0.75rem;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    background: url("/wp-content/themes/future/dist/images/arrow-back.png"); }
  .button.arrow-left:hover, .arrow-left.button__edit:hover, .button.arrow-left:focus, .arrow-left.button__edit:focus, .button.arrow-right:hover, .arrow-right.button__edit:hover, .button.arrow-right:focus, .arrow-right.button__edit:focus {
    background: none;
    color: inherit; }

.button.arrow-left, .arrow-left.button__edit {
  text-align: left;
  padding-left: 28px; }
  .button.arrow-left::before, .arrow-left.button__edit::before {
    left: 0;
    -webkit-transition: left .3s;
    transition: left .3s; }
  .button.arrow-left:hover::before, .arrow-left.button__edit:hover::before {
    left: -0.3125rem; }

.button.arrow-right, .arrow-right.button__edit {
  text-align: right;
  padding-right: 1.75rem; }
  .button.arrow-right::before, .arrow-right.button__edit::before {
    right: 0;
    margin-top: -0.4375rem;
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg);
    -webkit-transition: right .3s;
    transition: right .3s; }
  .button.arrow-right:hover::before, .arrow-right.button__edit:hover::before {
    right: -0.3125rem; }

.button.triangle, .triangle.button__edit {
  position: relative;
  padding-right: 40px; }
  .button.triangle::after, .triangle.button__edit::after {
    content: '';
    position: absolute;
    width: 0;
    height: 0;
    top: 50%;
    right: 20px;
    margin-left: 10px;
    margin-top: -3px;
    border-style: solid;
    border-width: 4px 0 4px 8px;
    border-color: transparent transparent transparent #222222;
    -webkit-transition: all .2s;
    transition: all .2s; }
  .button.triangle:hover::after, .triangle.button__edit:hover::after {
    border-color: transparent transparent transparent #ffffff; }

.button:hover svg, .button__edit:hover svg {
  -webkit-transition: all .2s;
  transition: all .2s; }

.slide-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-down.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-left.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-up.mui-enter.mui-enter-active {
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0); }

.slide-in-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-in-right.mui-enter.mui-enter-active {
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0); }

.slide-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-down.mui-leave.mui-leave-active {
  -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
          transform: translateY(100%); }

.slide-out-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-right.mui-leave.mui-leave-active {
  -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
          transform: translateX(100%); }

.slide-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-up.mui-leave.mui-leave-active {
  -webkit-transform: translateY(-100%);
      -ms-transform: translateY(-100%);
          transform: translateY(-100%); }

.slide-out-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }

.slide-out-left.mui-leave.mui-leave-active {
  -webkit-transform: translateX(-100%);
      -ms-transform: translateX(-100%);
          transform: translateX(-100%); }

.fade-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 0;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-in.mui-enter.mui-enter-active {
  opacity: 1; }

.fade-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  opacity: 1;
  -webkit-transition-property: opacity;
  transition-property: opacity; }

.fade-out.mui-leave.mui-leave-active {
  opacity: 0; }

.hinge-in-from-top.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-top.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-right.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-right.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-bottom.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-bottom.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-left.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-left.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-x.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-x.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-in-from-middle-y.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.hinge-in-from-middle-y.mui-enter.mui-enter-active {
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  opacity: 1; }

.hinge-out-from-top.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: top;
      -ms-transform-origin: top;
          transform-origin: top;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-top.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-right.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: right;
      -ms-transform-origin: right;
          transform-origin: right;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-right.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.hinge-out-from-bottom.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: bottom;
      -ms-transform-origin: bottom;
          transform-origin: bottom;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-bottom.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(90deg);
          transform: perspective(2000px) rotateX(90deg);
  opacity: 0; }

.hinge-out-from-left.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: left;
      -ms-transform-origin: left;
          transform-origin: left;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-left.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(90deg);
          transform: perspective(2000px) rotateY(90deg);
  opacity: 0; }

.hinge-out-from-middle-x.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-x.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateX(-90deg);
          transform: perspective(2000px) rotateX(-90deg);
  opacity: 0; }

.hinge-out-from-middle-y.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: perspective(2000px) rotate(0deg);
          transform: perspective(2000px) rotate(0deg);
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.hinge-out-from-middle-y.mui-leave.mui-leave-active {
  -webkit-transform: perspective(2000px) rotateY(-90deg);
          transform: perspective(2000px) rotateY(-90deg);
  opacity: 0; }

.scale-in-up.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-up.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-in-down.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.scale-in-down.mui-enter.mui-enter-active {
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  opacity: 1; }

.scale-out-up.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-up.mui-leave.mui-leave-active {
  -webkit-transform: scale(1.5);
      -ms-transform: scale(1.5);
          transform: scale(1.5);
  opacity: 0; }

.scale-out-down.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.scale-out-down.mui-leave.mui-leave-active {
  -webkit-transform: scale(0.5);
      -ms-transform: scale(0.5);
          transform: scale(0.5);
  opacity: 0; }

.spin-in.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out.mui-leave.mui-leave-active {
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  opacity: 0; }

.spin-in-ccw.mui-enter {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0.75turn);
      -ms-transform: rotate(0.75turn);
          transform: rotate(0.75turn);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 0; }

.spin-in-ccw.mui-enter.mui-enter-active {
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  opacity: 1; }

.spin-out-ccw.mui-leave {
  -webkit-transition-duration: 500ms;
          transition-duration: 500ms;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  -webkit-transform: rotate(0);
      -ms-transform: rotate(0);
          transform: rotate(0);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: transform, opacity;
  transition-property: transform, opacity, -webkit-transform;
  opacity: 1; }

.spin-out-ccw.mui-leave.mui-leave-active {
  -webkit-transform: rotate(-0.75turn);
      -ms-transform: rotate(-0.75turn);
          transform: rotate(-0.75turn);
  opacity: 0; }

.slow {
  -webkit-transition-duration: 750ms !important;
          transition-duration: 750ms !important; }

.fast {
  -webkit-transition-duration: 250ms !important;
          transition-duration: 250ms !important; }

.linear {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important; }

.ease {
  -webkit-transition-timing-function: ease !important;
          transition-timing-function: ease !important; }

.ease-in {
  -webkit-transition-timing-function: ease-in !important;
          transition-timing-function: ease-in !important; }

.ease-out {
  -webkit-transition-timing-function: ease-out !important;
          transition-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-transition-timing-function: ease-in-out !important;
          transition-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-transition-delay: 300ms !important;
          transition-delay: 300ms !important; }

.long-delay {
  -webkit-transition-delay: 700ms !important;
          transition-delay: 700ms !important; }

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

@-webkit-keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

@keyframes shake-7 {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
    -webkit-transform: translateX(7%);
            transform: translateX(7%); }
  5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
    -webkit-transform: translateX(-7%);
            transform: translateX(-7%); } }

.spin-cw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@-webkit-keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(-1turn);
            transform: rotate(-1turn); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.spin-ccw {
  -webkit-animation-name: spin-cw-1turn;
          animation-name: spin-cw-1turn; }

@keyframes spin-cw-1turn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn); } }

.wiggle {
  -webkit-animation-name: wiggle-7deg;
          animation-name: wiggle-7deg; }

@-webkit-keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes wiggle-7deg {
  40%, 50%, 60% {
    -webkit-transform: rotate(7deg);
            transform: rotate(7deg); }
  35%, 45%, 55%, 65% {
    -webkit-transform: rotate(-7deg);
            transform: rotate(-7deg); }
  0%, 30%, 70%, 100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

.shake,
.spin-cw,
.spin-ccw,
.wiggle {
  -webkit-animation-duration: 500ms;
          animation-duration: 500ms; }

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

.slow {
  -webkit-animation-duration: 750ms !important;
          animation-duration: 750ms !important; }

.fast {
  -webkit-animation-duration: 250ms !important;
          animation-duration: 250ms !important; }

.linear {
  -webkit-animation-timing-function: linear !important;
          animation-timing-function: linear !important; }

.ease {
  -webkit-animation-timing-function: ease !important;
          animation-timing-function: ease !important; }

.ease-in {
  -webkit-animation-timing-function: ease-in !important;
          animation-timing-function: ease-in !important; }

.ease-out {
  -webkit-animation-timing-function: ease-out !important;
          animation-timing-function: ease-out !important; }

.ease-in-out {
  -webkit-animation-timing-function: ease-in-out !important;
          animation-timing-function: ease-in-out !important; }

.bounce-in {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }

.bounce-out {
  -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
          animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }

.bounce-in-out {
  -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
          animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }

.short-delay {
  -webkit-animation-delay: 300ms !important;
          animation-delay: 300ms !important; }

.long-delay {
  -webkit-animation-delay: 700ms !important;
          animation-delay: 700ms !important; }

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
	* 1. Set default font family to sans-serif.
	* 2. Prevent iOS and IE text size adjust after device orientation change,
	*    without disabling user zoom.
	*/
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
	* Remove default margin.
	*/
body {
  margin: 0; }

/* HTML5 display definitions
	 ========================================================================== */
/**
	* Correct `block` display not defined for any HTML5 element in IE 8/9.
	* Correct `block` display not defined for `details` or `summary` in IE 10/11
	* and Firefox.
	* Correct `block` display not defined for `main` in IE 11.
	*/
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block; }

/**
	* 1. Correct `inline-block` display not defined in IE 8/9.
	* 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
	*/
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */ }

/**
	* Prevent modern browsers from displaying `audio` without controls.
	* Remove excess height in iOS 5 devices.
	*/
audio:not([controls]) {
  display: none;
  height: 0; }

/**
	* Address `[hidden]` styling not present in IE 8/9/10.
	* Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
	*/
[hidden],
template {
  display: none; }

/* Links
	 ========================================================================== */
/**
	* Remove the gray background color from active links in IE 10.
	*/
a {
  background-color: transparent; }

/**
	* Improve readability of focused elements when they are also in an
	* active/hover state.
	*/
a:active,
a:hover {
  outline: 0; }

/* Text-level semantics
	 ========================================================================== */
/**
	* Address styling not present in IE 8/9/10/11, Safari, and Chrome.
	*/
abbr[title] {
  border-bottom: 1px dotted; }

/**
	* Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
	*/
b,
strong {
  font-weight: bold; }

/**
	* Address styling not present in Safari and Chrome.
	*/
dfn {
  font-style: italic; }

/**
	* Address variable `h1` font-size and margin within `section` and `article`
	* contexts in Firefox 4+, Safari, and Chrome.
	*/
h1 {
  font-size: 2em;
  margin: .67em 0; }

/**
   * Address styling not present in IE 8/9.
   */
mark {
  background: #ff0;
  color: #000; }

/**
   * Address inconsistent and variable font size in all browsers.
   */
small {
  font-size: 80%; }

/**
   * Prevent `sub` and `sup` affecting `line-height` in all browsers.
   */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* Embedded content
     ========================================================================== */
/**
   * Remove border when inside `a` element in IE 8/9/10.
   */
img {
  border: 0; }

/**
   * Correct overflow not hidden in IE 9/10/11.
   */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
     ========================================================================== */
/**
   * Address margin not present in IE 8/9 and Safari.
   */
figure {
  margin: 1em 40px; }

/**
   * Address differences between Firefox and other browsers.
   */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0; }

/**
   * Contain overflow in all browsers.
   */
pre {
  overflow: auto; }

/**
   * Address odd `em`-unit font size rendering in all browsers.
   */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* Forms
     ========================================================================== */
/**
   * Known limitation: by default, Chrome and Safari on OS X allow very limited
   * styling of `select`, unless a `border` property is set.
   */
/**
   * 1. Correct color not being inherited.
   *    Known issue: affects color of disabled elements.
   * 2. Correct font properties not being inherited.
   * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
   */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */ }

/**
   * Address `overflow` set to `hidden` in IE 8/9/10/11.
   */
button {
  overflow: visible; }

/**
   * Address inconsistent `text-transform` inheritance for `button` and `select`.
   * All other form control elements do not inherit `text-transform` values.
   * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
   * Correct `select` style inheritance in Firefox.
   */
button,
select {
  text-transform: none; }

/**
   * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
   *    and `video` controls.
   * 2. Correct inability to style clickable `input` types in iOS.
   * 3. Improve usability and consistency of cursor style between image-type
   *    `input` and others.
   */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */ }

/**
   * Re-set default cursor for disabled elements.
   */
button[disabled],
html input[disabled] {
  cursor: not-allowed; }

/**
   * Remove inner padding and border in Firefox 4+.
   */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
   * Address Firefox 4+ setting `line-height` on `input` using `!important` in
   * the UA stylesheet.
   */
input {
  line-height: normal; }

/**
   * It's recommended that you don't attempt to style these elements.
   * Firefox's implementation doesn't respect box-sizing, padding, or width.
   *
   * 1. Address box sizing set to `content-box` in IE 8/9/10.
   * 2. Remove excess padding in IE 8/9/10.
   */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
   * Fix the cursor style for Chrome's increment/decrement buttons. For certain
   * `font-size` values of the `input`, it causes the cursor style of the
   * decrement button to change from `default` to `text`.
   */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
   * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
   * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
   */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 2 */ }

/**
   * Remove inner padding and search cancel button in Safari and Chrome on OS X.
   * Safari (but not Chrome) clips the cancel button when the search input has
   * padding (and `textfield` appearance).
   */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
   * Define consistent border, margin, and padding.
   * [NOTE] We don't enable this ruleset in Foundation, because we want the <fieldset> element to have plain styling.
   */
/* fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
  } */
/**
   * 1. Correct `color` not being inherited in IE 8/9/10/11.
   * 2. Remove padding so people aren't caught out if they zero out fieldsets.
   */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
   * Remove default vertical scrollbar in IE 8/9/10/11.
   */
textarea {
  overflow: auto; }

/**
   * Don't inherit the `font-weight` (applied by a rule above).
   * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
   */
optgroup {
  font-weight: bold; }

/* Tables
     ========================================================================== */
/**
   * Remove most spacing between table cells.
   */
table {
  border-collapse: collapse;
  border-spacing: 0; }

td,
th {
  padding: 0; }

.foundation-mq {
  font-family: "xsmall=0em&small=0em&medium=41.875em&large=60em&xlarge=75em&xxlarge=90em"; }

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

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

body {
  padding: 0;
  margin: 0;
  font-family: "Source Sans Pro", Helvetica, Roboto, Arial, sans-serif;
  font-weight: normal;
  line-height: 1.5;
  color: #000000;
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

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

textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

select {
  width: 100%;
  border-radius: 0; }

#map_canvas,
.map_canvas,
.mqa-display img,
embed,
object {
  max-width: none !important; }

.row {
  max-width: 75rem;
  margin-right: auto;
  margin-left: auto;
  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; }
  .row .row {
    margin-right: -0.625rem;
    margin-left: -0.625rem; }
    @media print, screen and (min-width: 41.875em) {
      .row .row {
        margin-right: 0;
        margin-left: 0; } }
    @media print, screen and (min-width: 60em) {
      .row .row {
        margin-right: 0;
        margin-left: 0; } }
    @media screen and (min-width: 75em) {
      .row .row {
        margin-right: 0;
        margin-left: 0; } }
    @media screen and (min-width: 90em) {
      .row .row {
        margin-right: 0;
        margin-left: 0; } }
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  .row.expanded {
    max-width: none; }
  .row:not(.expanded) .row {
    max-width: none; }
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .row.is-collapse-child,
  .row.collapse > .column > .row,
  .row.collapse > .columns > .row {
    margin-right: 0;
    margin-left: 0; }

.column, .columns {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  padding-right: 0.625rem;
  padding-left: 0.625rem;
  min-width: initial; }
  @media print, screen and (min-width: 41.875em) {
    .column, .columns {
      padding-right: 0;
      padding-left: 0; } }

.column.row.row, .row.row.columns {
  float: none;
  display: block; }

.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

.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; }

.small-1 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 8.33333%;
      -ms-flex: 0 0 8.33333%;
          flex: 0 0 8.33333%;
  max-width: 8.33333%; }

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

.small-2 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 16.66667%;
      -ms-flex: 0 0 16.66667%;
          flex: 0 0 16.66667%;
  max-width: 16.66667%; }

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

.small-3 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 25%;
      -ms-flex: 0 0 25%;
          flex: 0 0 25%;
  max-width: 25%; }

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

.small-4 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 33.33333%;
      -ms-flex: 0 0 33.33333%;
          flex: 0 0 33.33333%;
  max-width: 33.33333%; }

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

.small-5 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 41.66667%;
      -ms-flex: 0 0 41.66667%;
          flex: 0 0 41.66667%;
  max-width: 41.66667%; }

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

.small-6 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 50%;
      -ms-flex: 0 0 50%;
          flex: 0 0 50%;
  max-width: 50%; }

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

.small-7 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 58.33333%;
      -ms-flex: 0 0 58.33333%;
          flex: 0 0 58.33333%;
  max-width: 58.33333%; }

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

.small-8 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 66.66667%;
      -ms-flex: 0 0 66.66667%;
          flex: 0 0 66.66667%;
  max-width: 66.66667%; }

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

.small-9 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 75%;
      -ms-flex: 0 0 75%;
          flex: 0 0 75%;
  max-width: 75%; }

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

.small-10 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 83.33333%;
      -ms-flex: 0 0 83.33333%;
          flex: 0 0 83.33333%;
  max-width: 83.33333%; }

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

.small-11 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 91.66667%;
      -ms-flex: 0 0 91.66667%;
          flex: 0 0 91.66667%;
  max-width: 91.66667%; }

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

.small-12 {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
  max-width: 100%; }

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

.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; }

.small-up-1 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-1 > .column, .small-up-1 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }

.small-up-2 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-2 > .column, .small-up-2 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }

.small-up-3 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-3 > .column, .small-up-3 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }

.small-up-4 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-4 > .column, .small-up-4 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }

.small-up-5 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-5 > .column, .small-up-5 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 20%;
        -ms-flex: 0 0 20%;
            flex: 0 0 20%;
    max-width: 20%; }

.small-up-6 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-6 > .column, .small-up-6 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }

.small-up-7 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-7 > .column, .small-up-7 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 14.28571%;
        -ms-flex: 0 0 14.28571%;
            flex: 0 0 14.28571%;
    max-width: 14.28571%; }

.small-up-8 {
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .small-up-8 > .column, .small-up-8 > .columns {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 12.5%;
        -ms-flex: 0 0 12.5%;
            flex: 0 0 12.5%;
    max-width: 12.5%; }

.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.625rem;
  padding-left: 0.625rem; }

@media print, screen and (min-width: 41.875em) {
  .medium-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .medium-offset-0 {
    margin-left: 0%; }
  .medium-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .medium-offset-1 {
    margin-left: 8.33333%; }
  .medium-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .medium-offset-2 {
    margin-left: 16.66667%; }
  .medium-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .medium-offset-3 {
    margin-left: 25%; }
  .medium-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .medium-offset-4 {
    margin-left: 33.33333%; }
  .medium-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .medium-offset-5 {
    margin-left: 41.66667%; }
  .medium-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .medium-offset-6 {
    margin-left: 50%; }
  .medium-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .medium-offset-7 {
    margin-left: 58.33333%; }
  .medium-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .medium-offset-8 {
    margin-left: 66.66667%; }
  .medium-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .medium-offset-9 {
    margin-left: 75%; }
  .medium-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .medium-offset-10 {
    margin-left: 83.33333%; }
  .medium-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .medium-offset-11 {
    margin-left: 91.66667%; }
  .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; }
  .medium-up-1 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-1 > .column, .medium-up-1 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .medium-up-2 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-2 > .column, .medium-up-2 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 50%;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .medium-up-3 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-3 > .column, .medium-up-3 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 33.33333%;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .medium-up-4 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-4 > .column, .medium-up-4 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 25%;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .medium-up-5 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-5 > .column, .medium-up-5 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 20%;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .medium-up-6 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-6 > .column, .medium-up-6 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 16.66667%;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .medium-up-7 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-7 > .column, .medium-up-7 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 14.28571%;
          -ms-flex: 0 0 14.28571%;
              flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .medium-up-8 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .medium-up-8 > .column, .medium-up-8 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 12.5%;
          -ms-flex: 0 0 12.5%;
              flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 41.875em) and (min-width: 41.875em) {
  .medium-expand {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

@media print, screen and (min-width: 41.875em) {
  .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; }
  .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; } }

.row.medium-unstack > .column, .row.medium-unstack > .columns {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media print, screen and (min-width: 41.875em) {
    .row.medium-unstack > .column, .row.medium-unstack > .columns {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media print, screen and (min-width: 41.875em) {
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0;
    padding-left: 0; } }

@media print, screen and (min-width: 60em) {
  .large-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .large-offset-0 {
    margin-left: 0%; }
  .large-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .large-offset-1 {
    margin-left: 8.33333%; }
  .large-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .large-offset-2 {
    margin-left: 16.66667%; }
  .large-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .large-offset-3 {
    margin-left: 25%; }
  .large-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .large-offset-4 {
    margin-left: 33.33333%; }
  .large-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .large-offset-5 {
    margin-left: 41.66667%; }
  .large-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .large-offset-6 {
    margin-left: 50%; }
  .large-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .large-offset-7 {
    margin-left: 58.33333%; }
  .large-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .large-offset-8 {
    margin-left: 66.66667%; }
  .large-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .large-offset-9 {
    margin-left: 75%; }
  .large-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .large-offset-10 {
    margin-left: 83.33333%; }
  .large-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .large-offset-11 {
    margin-left: 91.66667%; }
  .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; }
  .large-up-1 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-1 > .column, .large-up-1 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .large-up-2 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-2 > .column, .large-up-2 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 50%;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .large-up-3 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-3 > .column, .large-up-3 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 33.33333%;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .large-up-4 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-4 > .column, .large-up-4 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 25%;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .large-up-5 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-5 > .column, .large-up-5 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 20%;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .large-up-6 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-6 > .column, .large-up-6 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 16.66667%;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .large-up-7 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-7 > .column, .large-up-7 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 14.28571%;
          -ms-flex: 0 0 14.28571%;
              flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .large-up-8 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .large-up-8 > .column, .large-up-8 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 12.5%;
          -ms-flex: 0 0 12.5%;
              flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 60em) and (min-width: 60em) {
  .large-expand {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

@media print, screen and (min-width: 60em) {
  .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; }
  .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; } }

.row.large-unstack > .column, .row.large-unstack > .columns {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media print, screen and (min-width: 60em) {
    .row.large-unstack > .column, .row.large-unstack > .columns {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media print, screen and (min-width: 60em) {
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0;
    padding-left: 0; } }

@media screen and (min-width: 75em) {
  .xlarge-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .xlarge-offset-0 {
    margin-left: 0%; }
  .xlarge-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .xlarge-offset-1 {
    margin-left: 8.33333%; }
  .xlarge-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .xlarge-offset-2 {
    margin-left: 16.66667%; }
  .xlarge-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .xlarge-offset-3 {
    margin-left: 25%; }
  .xlarge-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .xlarge-offset-4 {
    margin-left: 33.33333%; }
  .xlarge-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .xlarge-offset-5 {
    margin-left: 41.66667%; }
  .xlarge-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .xlarge-offset-6 {
    margin-left: 50%; }
  .xlarge-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .xlarge-offset-7 {
    margin-left: 58.33333%; }
  .xlarge-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .xlarge-offset-8 {
    margin-left: 66.66667%; }
  .xlarge-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .xlarge-offset-9 {
    margin-left: 75%; }
  .xlarge-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .xlarge-offset-10 {
    margin-left: 83.33333%; }
  .xlarge-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .xlarge-offset-11 {
    margin-left: 91.66667%; }
  .xlarge-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .xlarge-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .xlarge-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .xlarge-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .xlarge-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .xlarge-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; }
  .xlarge-up-1 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-1 > .column, .xlarge-up-1 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .xlarge-up-2 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-2 > .column, .xlarge-up-2 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 50%;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .xlarge-up-3 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-3 > .column, .xlarge-up-3 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 33.33333%;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .xlarge-up-4 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-4 > .column, .xlarge-up-4 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 25%;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .xlarge-up-5 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-5 > .column, .xlarge-up-5 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 20%;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .xlarge-up-6 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-6 > .column, .xlarge-up-6 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 16.66667%;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .xlarge-up-7 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-7 > .column, .xlarge-up-7 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 14.28571%;
          -ms-flex: 0 0 14.28571%;
              flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .xlarge-up-8 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xlarge-up-8 > .column, .xlarge-up-8 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 12.5%;
          -ms-flex: 0 0 12.5%;
              flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media screen and (min-width: 75em) and (min-width: 75em) {
  .xlarge-expand {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

@media screen and (min-width: 75em) {
  .xlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .xlarge-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; }
  .xlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .xlarge-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; }
  .xlarge-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .xlarge-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .xlarge-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; } }

.row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media screen and (min-width: 75em) {
    .row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media screen and (min-width: 75em) {
  .xlarge-collapse > .column, .xlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .xlarge-uncollapse > .column, .xlarge-uncollapse > .columns {
    padding-right: 0;
    padding-left: 0; } }

@media screen and (min-width: 90em) {
  .xxlarge-1 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 8.33333%;
        -ms-flex: 0 0 8.33333%;
            flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  .xxlarge-offset-0 {
    margin-left: 0%; }
  .xxlarge-2 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 16.66667%;
        -ms-flex: 0 0 16.66667%;
            flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  .xxlarge-offset-1 {
    margin-left: 8.33333%; }
  .xxlarge-3 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 25%;
        -ms-flex: 0 0 25%;
            flex: 0 0 25%;
    max-width: 25%; }
  .xxlarge-offset-2 {
    margin-left: 16.66667%; }
  .xxlarge-4 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 33.33333%;
        -ms-flex: 0 0 33.33333%;
            flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  .xxlarge-offset-3 {
    margin-left: 25%; }
  .xxlarge-5 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 41.66667%;
        -ms-flex: 0 0 41.66667%;
            flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  .xxlarge-offset-4 {
    margin-left: 33.33333%; }
  .xxlarge-6 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 50%;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
    max-width: 50%; }
  .xxlarge-offset-5 {
    margin-left: 41.66667%; }
  .xxlarge-7 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 58.33333%;
        -ms-flex: 0 0 58.33333%;
            flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  .xxlarge-offset-6 {
    margin-left: 50%; }
  .xxlarge-8 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 66.66667%;
        -ms-flex: 0 0 66.66667%;
            flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  .xxlarge-offset-7 {
    margin-left: 58.33333%; }
  .xxlarge-9 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 75%;
        -ms-flex: 0 0 75%;
            flex: 0 0 75%;
    max-width: 75%; }
  .xxlarge-offset-8 {
    margin-left: 66.66667%; }
  .xxlarge-10 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 83.33333%;
        -ms-flex: 0 0 83.33333%;
            flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  .xxlarge-offset-9 {
    margin-left: 75%; }
  .xxlarge-11 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 91.66667%;
        -ms-flex: 0 0 91.66667%;
            flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  .xxlarge-offset-10 {
    margin-left: 83.33333%; }
  .xxlarge-12 {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  .xxlarge-offset-11 {
    margin-left: 91.66667%; }
  .xxlarge-order-1 {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .xxlarge-order-2 {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .xxlarge-order-3 {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .xxlarge-order-4 {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .xxlarge-order-5 {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .xxlarge-order-6 {
    -webkit-box-ordinal-group: 7;
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; }
  .xxlarge-up-1 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-1 > .column, .xxlarge-up-1 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
  .xxlarge-up-2 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-2 > .column, .xxlarge-up-2 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 50%;
          -ms-flex: 0 0 50%;
              flex: 0 0 50%;
      max-width: 50%; }
  .xxlarge-up-3 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-3 > .column, .xxlarge-up-3 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 33.33333%;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  .xxlarge-up-4 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-4 > .column, .xxlarge-up-4 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 25%;
          -ms-flex: 0 0 25%;
              flex: 0 0 25%;
      max-width: 25%; }
  .xxlarge-up-5 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-5 > .column, .xxlarge-up-5 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 20%;
          -ms-flex: 0 0 20%;
              flex: 0 0 20%;
      max-width: 20%; }
  .xxlarge-up-6 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-6 > .column, .xxlarge-up-6 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 16.66667%;
          -ms-flex: 0 0 16.66667%;
              flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  .xxlarge-up-7 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-7 > .column, .xxlarge-up-7 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 14.28571%;
          -ms-flex: 0 0 14.28571%;
              flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  .xxlarge-up-8 {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .xxlarge-up-8 > .column, .xxlarge-up-8 > .columns {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 12.5%;
          -ms-flex: 0 0 12.5%;
              flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media screen and (min-width: 90em) and (min-width: 90em) {
  .xxlarge-expand {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; } }

@media screen and (min-width: 90em) {
  .xxlarge-flex-dir-row {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
  .xxlarge-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; }
  .xxlarge-flex-dir-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }
  .xxlarge-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; }
  .xxlarge-flex-child-auto {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto; }
  .xxlarge-flex-child-grow {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto; }
  .xxlarge-flex-child-shrink {
    -webkit-box-flex: 0;
    -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto; } }

.row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 100%;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%; }
  @media screen and (min-width: 90em) {
    .row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px; } }

@media screen and (min-width: 90em) {
  .xxlarge-collapse > .column, .xxlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  .xxlarge-uncollapse > .column, .xxlarge-uncollapse > .columns {
    padding-right: 0;
    padding-left: 0; } }

.shrink {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  max-width: 100%; }

.column-block {
  margin-bottom: 1.25rem; }
  .column-block > :last-child {
    margin-bottom: 0; }
  @media print, screen and (min-width: 41.875em) {
    .column-block {
      margin-bottom: 0; }
      .column-block > :last-child {
        margin-bottom: 0; } }

div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

em,
i {
  font-style: italic;
  line-height: inherit; }

strong,
b {
  font-weight: bold;
  line-height: inherit; }

small {
  font-size: 80%;
  line-height: inherit; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Malleable;
  font-style: normal;
  font-weight: normal;
  color: inherit;
  text-rendering: optimizeLegibility; }
  h1 small,
  h2 small,
  h3 small,
  h4 small,
  h5 small,
  h6 small {
    line-height: 0;
    color: #999999; }

h1 {
  font-size: 1.875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h2 {
  font-size: 1.625rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h3 {
  font-size: 1rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h4 {
  font-size: 0.875rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h5 {
  font-size: 0.8125rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

h6 {
  font-size: 0.75rem;
  line-height: 1.4;
  margin-top: 0;
  margin-bottom: 0.5rem; }

@media print, screen and (min-width: 60em) {
  h1 {
    font-size: 2.25rem; }
  h2 {
    font-size: 1.875rem; }
  h3 {
    font-size: 1.5rem; }
  h4 {
    font-size: 1.25rem; }
  h5 {
    font-size: 1rem; }
  h6 {
    font-size: 0.875rem; } }

a {
  line-height: inherit;
  color: #222222;
  text-decoration: none;
  cursor: pointer; }
  a:hover, a:focus {
    color: #1d1d1d; }
  a img {
    border: 0; }

hr {
  clear: both;
  max-width: 75rem;
  height: 0;
  margin: 1.25rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #999999;
  border-left: 0; }

ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6; }

li {
  font-size: inherit; }

ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

ol {
  margin-left: 1.25rem; }

ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

dl {
  margin-bottom: 1rem; }
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #999999; }
  blockquote, blockquote p {
    line-height: 1.6;
    color: #888888; }

cite {
  display: block;
  font-size: 0.8125rem;
  color: #888888; }
  cite:before {
    content: "— "; }

abbr {
  border-bottom: 1px dotted #000000;
  color: #000000;
  cursor: help; }

figure {
  margin: 0; }

code {
  padding: 0.125rem 0.3125rem 0.0625rem;
  border: 1px solid #999999;
  background-color: #f5f5f5;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: normal;
  color: #000000; }

kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #f5f5f5;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #000000; }

.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: normal;
  line-height: 1.4;
  color: #888888; }

.lead {
  font-size: 125%;
  line-height: 1.6; }

.stat {
  font-size: 2.5rem;
  line-height: 1; }
  p + .stat {
    margin-top: -1rem; }

.no-bullet {
  margin-left: 0;
  list-style: none; }

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

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

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

.text-justify {
  text-align: justify; }

@media print, screen and (min-width: 41.875em) {
  .medium-text-left {
    text-align: left; }
  .medium-text-right {
    text-align: right; }
  .medium-text-center {
    text-align: center; }
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 60em) {
  .large-text-left {
    text-align: left; }
  .large-text-right {
    text-align: right; }
  .large-text-center {
    text-align: center; }
  .large-text-justify {
    text-align: justify; } }

@media screen and (min-width: 75em) {
  .xlarge-text-left {
    text-align: left; }
  .xlarge-text-right {
    text-align: right; }
  .xlarge-text-center {
    text-align: center; }
  .xlarge-text-justify {
    text-align: justify; } }

@media screen and (min-width: 90em) {
  .xxlarge-text-left {
    text-align: left; }
  .xxlarge-text-right {
    text-align: right; }
  .xxlarge-text-center {
    text-align: center; }
  .xxlarge-text-justify {
    text-align: justify; } }

.show-for-print {
  display: none !important; }

@media print {
  * {
    background: transparent !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    color: black !important;
    text-shadow: none !important; }
  .show-for-print {
    display: block !important; }
  .hide-for-print {
    display: none !important; }
  table.show-for-print {
    display: table !important; }
  thead.show-for-print {
    display: table-header-group !important; }
  tbody.show-for-print {
    display: table-row-group !important; }
  tr.show-for-print {
    display: table-row !important; }
  td.show-for-print {
    display: table-cell !important; }
  th.show-for-print {
    display: table-cell !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  pre,
  blockquote {
    border: 1px solid #888888;
    page-break-inside: avoid; }
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
textarea {
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  border: 1px solid #999999;
  border-radius: 0;
  background-color: #ffffff;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  font-family: inherit;
  font-size: 1rem;
  font-weight: normal;
  color: #000000;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }
  [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
  textarea:focus {
    outline: none;
    border: 1px solid #888888;
    background-color: #ffffff;
    -webkit-box-shadow: 0 0 5px #999999;
            box-shadow: 0 0 5px #999999;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }

textarea {
  max-width: 100%; }
  textarea[rows] {
    height: auto; }

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #999999; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #999999; }

input::placeholder,
textarea::placeholder {
  color: #999999; }

input:disabled, input[readonly],
textarea:disabled,
textarea[readonly] {
  background-color: #f5f5f5;
  cursor: default; }

[type='submit'],
[type='button'] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0; }

input[type='search'] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

[type='file'],
[type='checkbox'],
[type='radio'] {
  margin: 0 0 1rem; }

[type='checkbox'] + label,
[type='radio'] + label {
  display: inline-block;
  vertical-align: baseline;
  margin-left: 0.5rem;
  margin-right: 1rem;
  margin-bottom: 0; }
  [type='checkbox'] + label[for],
  [type='radio'] + label[for] {
    cursor: pointer; }

label > [type='checkbox'],
label > [type='radio'] {
  margin-right: 0.5rem; }

[type='file'] {
  width: 100%; }

label {
  display: block;
  margin: 0;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.8;
  color: #000000; }
  label.middle {
    margin: 0 0 1rem;
    padding: 0.5625rem 0; }

.help-text {
  margin-top: -0.5rem;
  font-size: 0.8125rem;
  font-style: italic;
  color: #000000; }

.input-group {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  margin-bottom: 1rem;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .input-group > :first-child {
    border-radius: 0 0 0 0; }
  .input-group > :last-child > * {
    border-radius: 0 0 0 0; }

.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
.input-group-button input,
.input-group-button button,
.input-group-button label {
  margin: 0;
  white-space: nowrap; }

.input-group-label {
  padding: 0 1rem;
  border: 1px solid #999999;
  background: #f5f5f5;
  color: #000000;
  text-align: center;
  white-space: nowrap;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .input-group-label:first-child {
    border-right: 0; }
  .input-group-label:last-child {
    border-left: 0; }

.input-group-field {
  border-radius: 0;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px;
  height: auto;
  min-width: 0; }

.input-group-button {
  padding-top: 0;
  padding-bottom: 0;
  text-align: center;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }
  .input-group-button a,
  .input-group-button input,
  .input-group-button button,
  .input-group-button label {
    height: 2.5rem;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 1rem; }

fieldset {
  margin: 0;
  padding: 0;
  border: 0; }

legend {
  max-width: 100%;
  margin-bottom: 0.5rem; }

.fieldset {
  margin: 1.125rem 0;
  padding: 1.25rem;
  border: 1px solid #999999; }
  .fieldset legend {
    margin: 0;
    margin-left: -0.1875rem;
    padding: 0 0.1875rem;
    background: #ffffff; }

select {
  height: 2.4375rem;
  margin: 0 0 1rem;
  padding: 0.5rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 1px solid #999999;
  border-radius: 0;
  background-color: #ffffff;
  font-family: inherit;
  font-size: 1rem;
  line-height: normal;
  color: #000000;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon points='0,0 32,0 16,24' style='fill: rgb%28136, 136, 136%29'></polygon></svg>");
  -webkit-background-origin: content-box;
          background-origin: content-box;
  background-position: right -1rem center;
  background-repeat: no-repeat;
  -webkit-background-size: 9px 6px;
          background-size: 9px 6px;
  padding-right: 1.5rem;
  -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
  transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  @media screen and (min-width: 0\0) {
    select {
      background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
  select:focus {
    outline: none;
    border: 1px solid #888888;
    background-color: #ffffff;
    -webkit-box-shadow: 0 0 5px #999999;
            box-shadow: 0 0 5px #999999;
    -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
    transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
  select:disabled {
    background-color: #f5f5f5;
    cursor: default; }
  select::-ms-expand {
    display: none; }
  select[multiple] {
    height: auto;
    background-image: none; }

.is-invalid-input:not(:focus) {
  border-color: #ec5840;
  background-color: #fdeeec; }
  .is-invalid-input:not(:focus)::-webkit-input-placeholder {
    color: #ec5840; }
  .is-invalid-input:not(:focus):-ms-input-placeholder {
    color: #ec5840; }
  .is-invalid-input:not(:focus)::placeholder {
    color: #ec5840; }

.is-invalid-label {
  color: #ec5840; }

.form-error {
  display: none;
  margin-top: -0.5rem;
  margin-bottom: 1rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ec5840; }
  .form-error.is-visible {
    display: block; }

.button, .button__edit {
  display: inline-block;
  text-align: center;
  line-height: 1em;
  cursor: pointer;
  -webkit-appearance: none;
  -webkit-transition: background-color .25s ease-out, color .25s ease-out, border .25s;
  transition: background-color .25s ease-out, color .25s ease-out, border .25s;
  vertical-align: middle;
  border-radius: 0;
  padding: 0.625rem 1.25rem;
  margin: 0 0 0 0;
  font-family: Malleable;
  font-size: 1.0625rem;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: .1em;
  border: 2px solid #ffa000;
  color: #222222;
  background-color: #ffffff;
  color: #222222; }
  [data-whatinput='mouse'] .button, [data-whatinput='mouse'] .button__edit {
    outline: 0; }
  .button:hover, .button__edit:hover, .button:focus, .button__edit:focus {
    background-color: #ff6000;
    color: #ffffff;
    border-color: #ff6000; }
  .button.tiny, .tiny.button__edit {
    font-size: 0.6rem; }
  .button.small, .small.button__edit {
    font-size: 0.75rem; }
  .button.large, .large.button__edit {
    font-size: 1.25rem; }
  .button.expanded, .expanded.button__edit {
    display: block;
    width: 100%;
    margin-left: 0;
    margin-right: 0; }
  .button.primary, .primary.button__edit {
    background-color: #222222;
    color: foreground(#222222, #000000, #222222); }
    .button.primary:hover, .primary.button__edit:hover, .button.primary:focus, .primary.button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button.secondary, .secondary.button__edit {
    background-color: #444444;
    color: foreground(#444444, #000000, #222222); }
    .button.secondary:hover, .secondary.button__edit:hover, .button.secondary:focus, .secondary.button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button.fporange, .fporange.button__edit {
    background-color: #ffa000;
    color: foreground(#ffa000, #000000, #222222); }
    .button.fporange:hover, .fporange.button__edit:hover, .button.fporange:focus, .fporange.button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button.success, .success.button__edit {
    background-color: #3adb76;
    color: foreground(#3adb76, #000000, #222222); }
    .button.success:hover, .success.button__edit:hover, .button.success:focus, .success.button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button.warning, .warning.button__edit {
    background-color: #ff0000;
    color: foreground(#ff0000, #000000, #222222); }
    .button.warning:hover, .warning.button__edit:hover, .button.warning:focus, .warning.button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button.alert, .alert.button__edit {
    background-color: #ec5840;
    color: foreground(#ec5840, #000000, #222222); }
    .button.alert:hover, .alert.button__edit:hover, .button.alert:focus, .alert.button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button.hollow, .hollow.button__edit {
    border: 1px solid #222222;
    color: #222222; }
    .button.hollow, .hollow.button__edit, .button.hollow:hover, .hollow.button__edit:hover, .button.hollow:focus, .hollow.button__edit:focus {
      background-color: transparent; }
    .button.hollow:hover, .hollow.button__edit:hover, .button.hollow:focus, .hollow.button__edit:focus {
      border-color: #111111;
      color: #111111; }
    .button.hollow.primary, .hollow.primary.button__edit {
      border: 1px solid #222222;
      color: #222222; }
      .button.hollow.primary:hover, .hollow.primary.button__edit:hover, .button.hollow.primary:focus, .hollow.primary.button__edit:focus {
        border-color: #111111;
        color: #111111; }
    .button.hollow.secondary, .hollow.secondary.button__edit {
      border: 1px solid #444444;
      color: #444444; }
      .button.hollow.secondary:hover, .hollow.secondary.button__edit:hover, .button.hollow.secondary:focus, .hollow.secondary.button__edit:focus {
        border-color: #222222;
        color: #222222; }
    .button.hollow.fporange, .hollow.fporange.button__edit {
      border: 1px solid #ffa000;
      color: #ffa000; }
      .button.hollow.fporange:hover, .hollow.fporange.button__edit:hover, .button.hollow.fporange:focus, .hollow.fporange.button__edit:focus {
        border-color: #805000;
        color: #805000; }
    .button.hollow.success, .hollow.success.button__edit {
      border: 1px solid #3adb76;
      color: #3adb76; }
      .button.hollow.success:hover, .hollow.success.button__edit:hover, .button.hollow.success:focus, .hollow.success.button__edit:focus {
        border-color: #157539;
        color: #157539; }
    .button.hollow.warning, .hollow.warning.button__edit {
      border: 1px solid #ff0000;
      color: #ff0000; }
      .button.hollow.warning:hover, .hollow.warning.button__edit:hover, .button.hollow.warning:focus, .hollow.warning.button__edit:focus {
        border-color: maroon;
        color: maroon; }
    .button.hollow.alert, .hollow.alert.button__edit {
      border: 1px solid #ec5840;
      color: #ec5840; }
      .button.hollow.alert:hover, .hollow.alert.button__edit:hover, .button.hollow.alert:focus, .hollow.alert.button__edit:focus {
        border-color: #881f0e;
        color: #881f0e; }
  .button.disabled, .disabled.button__edit, .button[disabled], [disabled].button__edit {
    opacity: 0.25;
    cursor: not-allowed; }
    .button.disabled:hover, .disabled.button__edit:hover, .button.disabled:focus, .disabled.button__edit:focus, .button[disabled]:hover, [disabled].button__edit:hover, .button[disabled]:focus, [disabled].button__edit:focus {
      background-color: #ffffff;
      color: #222222; }
  .button.dropdown::after, .dropdown.button__edit::after {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.4em;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #ffffff transparent transparent;
    position: relative;
    top: .4em;
    float: right;
    margin-left: 1.25rem;
    display: inline-block; }
  .button.arrow-only::after, .arrow-only.button__edit::after {
    margin-left: 0;
    float: none;
    top: -.1em; }
  .button strong, .button__edit strong, .button b, .button__edit b {
    font-weight: 400; }

.accordion {
  margin-left: 0;
  background: #ffffff;
  list-style-type: none; }

.accordion-item:first-child > :first-child {
  border-radius: 0 0 0 0; }

.accordion-item:last-child > :last-child {
  border-radius: 0 0 0 0; }

.accordion-title {
  position: relative;
  display: block;
  padding: 1.25rem 1rem;
  border: 1px solid #f5f5f5;
  border-bottom: 0;
  font-size: 0.75rem;
  line-height: 1;
  color: foreground(#ffffff, #222222); }
  :last-child:not(.is-active) > .accordion-title {
    border-bottom: 1px solid #f5f5f5;
    border-radius: 0 0 0 0; }
  .accordion-title:hover, .accordion-title:focus {
    background-color: #f5f5f5; }
  .accordion-title::before {
    position: absolute;
    top: 50%;
    right: 1rem;
    margin-top: -0.5rem;
    content: '+'; }
  .is-active > .accordion-title::before {
    content: '\2013'; }

.accordion-content {
  display: none;
  padding: 1rem;
  border: 1px solid #f5f5f5;
  border-bottom: 0;
  background-color: #ffffff;
  color: foreground(#ffffff, #222222); }
  :last-child > .accordion-content:last-child {
    border-bottom: 1px solid #f5f5f5; }

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

.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%; }

.badge {
  display: inline-block;
  min-width: 2.1em;
  padding: 0.3em;
  border-radius: 50%;
  font-size: 0.6rem;
  text-align: center;
  background: #222222;
  color: #ffffff; }
  .badge.primary {
    background: #222222;
    color: #ffffff; }
  .badge.secondary {
    background: #444444;
    color: #ffffff; }
  .badge.fporange {
    background: #ffa000;
    color: #000000; }
  .badge.success {
    background: #3adb76;
    color: #000000; }
  .badge.warning {
    background: #ff0000;
    color: #000000; }
  .badge.alert {
    background: #ec5840;
    color: #000000; }

.breadcrumbs {
  margin: 0 0 1rem 0;
  list-style: none; }
  .breadcrumbs::before, .breadcrumbs::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; }
  .breadcrumbs::after {
    clear: both; }
  .breadcrumbs li {
    float: left;
    font-size: 0.6875rem;
    color: #000000;
    cursor: default;
    text-transform: uppercase; }
    .breadcrumbs li:not(:last-child)::after {
      position: relative;
      top: 1px;
      margin: 0 0.75rem;
      opacity: 1;
      content: "/";
      color: #999999; }
  .breadcrumbs a {
    color: #222222; }
    .breadcrumbs a:hover {
      text-decoration: underline; }
  .breadcrumbs .disabled {
    color: #999999;
    cursor: not-allowed; }

.button-group {
  margin-bottom: 1rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -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; }
  .button-group::before, .button-group::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; }
  .button-group::after {
    clear: both; }
  .button-group .button, .button-group .button__edit {
    margin: 0;
    margin-right: 1px;
    margin-bottom: 1px;
    font-size: 1.0625rem;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    .button-group .button:last-child, .button-group .button__edit:last-child {
      margin-right: 0; }
  .button-group.tiny .button, .button-group.tiny .button__edit {
    font-size: 0.6rem; }
  .button-group.small .button, .button-group.small .button__edit {
    font-size: 0.75rem; }
  .button-group.large .button, .button-group.large .button__edit {
    font-size: 1.25rem; }
  .button-group.expanded .button, .button-group.expanded .button__edit {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .button-group.primary .button, .button-group.primary .button__edit {
    background-color: #222222;
    color: foreground(#222222, #000000, #222222); }
    .button-group.primary .button:hover, .button-group.primary .button__edit:hover, .button-group.primary .button:focus, .button-group.primary .button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button-group.secondary .button, .button-group.secondary .button__edit {
    background-color: #444444;
    color: foreground(#444444, #000000, #222222); }
    .button-group.secondary .button:hover, .button-group.secondary .button__edit:hover, .button-group.secondary .button:focus, .button-group.secondary .button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button-group.fporange .button, .button-group.fporange .button__edit {
    background-color: #ffa000;
    color: foreground(#ffa000, #000000, #222222); }
    .button-group.fporange .button:hover, .button-group.fporange .button__edit:hover, .button-group.fporange .button:focus, .button-group.fporange .button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button-group.success .button, .button-group.success .button__edit {
    background-color: #3adb76;
    color: foreground(#3adb76, #000000, #222222); }
    .button-group.success .button:hover, .button-group.success .button__edit:hover, .button-group.success .button:focus, .button-group.success .button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button-group.warning .button, .button-group.warning .button__edit {
    background-color: #ff0000;
    color: foreground(#ff0000, #000000, #222222); }
    .button-group.warning .button:hover, .button-group.warning .button__edit:hover, .button-group.warning .button:focus, .button-group.warning .button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button-group.alert .button, .button-group.alert .button__edit {
    background-color: #ec5840;
    color: foreground(#ec5840, #000000, #222222); }
    .button-group.alert .button:hover, .button-group.alert .button__edit:hover, .button-group.alert .button:focus, .button-group.alert .button__edit:focus {
      background-color: #ff6000;
      color: #ffffff;
      border-color: #ff6000; }
  .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .button-group.stacked .button, .button-group.stacked .button__edit, .button-group.stacked-for-small .button, .button-group.stacked-for-small .button__edit, .button-group.stacked-for-medium .button, .button-group.stacked-for-medium .button__edit {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%; }
      .button-group.stacked .button:last-child, .button-group.stacked .button__edit:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-small .button__edit:last-child, .button-group.stacked-for-medium .button:last-child, .button-group.stacked-for-medium .button__edit:last-child {
        margin-bottom: 0; }
  @media print, screen and (min-width: 41.875em) {
    .button-group.stacked-for-small .button, .button-group.stacked-for-small .button__edit {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      margin-bottom: 0; } }
  @media print, screen and (min-width: 60em) {
    .button-group.stacked-for-medium .button, .button-group.stacked-for-medium .button__edit {
      -webkit-box-flex: 1;
      -webkit-flex: 1 1 0px;
          -ms-flex: 1 1 0px;
              flex: 1 1 0px;
      margin-bottom: 0; } }
  @media screen and (max-width: 41.8125em) {
    .button-group.stacked-for-small.expanded {
      display: block; }
      .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-small.expanded .button__edit {
        display: block;
        margin-right: 0; } }

.callout {
  position: relative;
  margin: 0 0 1rem 0;
  padding: 1rem;
  border: 1px solid rgba(0, 0, 0, 0.25);
  border-radius: 0;
  background-color: white;
  color: #000000; }
  .callout > :first-child {
    margin-top: 0; }
  .callout > :last-child {
    margin-bottom: 0; }
  .callout.primary {
    background-color: #dedede;
    color: #000000; }
  .callout.secondary {
    background-color: #e3e3e3;
    color: #000000; }
  .callout.fporange {
    background-color: #fff1d9;
    color: #000000; }
  .callout.success {
    background-color: #e1faea;
    color: #000000; }
  .callout.warning {
    background-color: #ffd9d9;
    color: #000000; }
  .callout.alert {
    background-color: #fce6e2;
    color: #000000; }
  .callout.small {
    padding-top: 0.5rem;
    padding-right: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.5rem; }
  .callout.large {
    padding-top: 3rem;
    padding-right: 3rem;
    padding-bottom: 3rem;
    padding-left: 3rem; }

.close-button {
  position: absolute;
  color: #222222;
  cursor: pointer; }
  [data-whatinput='mouse'] .close-button {
    outline: 0; }
  .close-button:hover, .close-button:focus {
    color: #000000; }
  .close-button.small {
    right: 1.875rem;
    top: 1.875rem;
    font-size: 2em;
    line-height: 1; }
  .close-button, .close-button.medium {
    right: 1.875rem;
    top: 1.875rem;
    font-size: 2em;
    line-height: 1; }

.menu {
  margin: 0;
  list-style-type: none;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%; }
  .menu > li {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto; }
    [data-whatinput='mouse'] .menu > li {
      outline: 0; }
  .menu > li > a {
    display: block;
    padding: 0;
    line-height: 1; }
  .menu input,
  .menu select,
  .menu a,
  .menu button {
    margin-bottom: 0; }
  .menu > li > a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
  .menu > 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 > li > a img,
    .menu > li > a i,
    .menu > li > a svg {
      margin-right: 0.25rem; }
  .menu, .menu.horizontal {
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap; }
    .menu > li, .menu.horizontal > li {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto; }
  .menu.expanded > li {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  .menu.expanded > li:first-child:last-child {
    width: 100%; }
  .menu.vertical {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .menu.vertical > li {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
    .menu.vertical > li > a {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      -webkit-box-align: start;
      -webkit-align-items: flex-start;
          -ms-flex-align: start;
              align-items: flex-start; }
    > li {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 auto;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto; }
  > li {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }
  > li:first-child:last-child {
    width: 100%; }
    > li {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }
    > li > a {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      -webkit-box-align: start;
      -webkit-align-items: flex-start;
          -ms-flex-align: start;
              align-items: flex-start; }
  .menu.simple li {
    display: inline-block;
    vertical-align: top;
    line-height: 1; }
  .menu.simple a {
    padding: 0; }
  .menu.simple li {
    margin-left: 0;
    margin-right: 0; }
  .menu.simple.align-right li {
    margin-right: 0;
    margin-left: 0; }
  .menu.align-right {
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
  .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;
                  -ms-grid-row-align: stretch;
              align-self: stretch;
      margin-bottom: 0.25rem;
      text-align: center; }
  .menu.icon-top.vertical a > span {
    margin: auto; }
  .menu.nested {
    margin-left: 1rem; }
  .menu .active > a {
    background: #222222;
    color: #ffffff; }
  .menu.menu-bordered li {
    border: 1px solid #f5f5f5; }
    .menu.menu-bordered li:not(:first-child) {
      border-top: 0; }
  .menu.menu-hover li:hover {
    background-color: #f5f5f5; }

.menu-text {
  padding-top: 0;
  padding-bottom: 0;
  padding: 0;
  font-weight: bold;
  line-height: 1;
  color: inherit; }

.menu-centered {
  text-align: center; }
  .menu-centered > .menu {
    display: inline-block;
    vertical-align: top; }

.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: #ffffff;
    -webkit-box-shadow: 0 7px 0 #ffffff, 0 14px 0 #ffffff;
            box-shadow: 0 7px 0 #ffffff, 0 14px 0 #ffffff;
    content: ''; }
  .menu-icon:hover::after {
    background: #999999;
    -webkit-box-shadow: 0 7px 0 #999999, 0 14px 0 #999999;
            box-shadow: 0 7px 0 #999999, 0 14px 0 #999999; }

.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: #000000;
    -webkit-box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
            box-shadow: 0 7px 0 #000000, 0 14px 0 #000000;
    content: ''; }
  .menu-icon.dark:hover::after {
    background: #888888;
    -webkit-box-shadow: 0 7px 0 #888888, 0 14px 0 #888888;
            box-shadow: 0 7px 0 #888888, 0 14px 0 #888888; }

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

.is-drilldown-submenu {
  position: absolute;
  top: 0;
  left: 100%;
  z-index: -1;
  width: 100%;
  background: #ffffff;
  -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; }
  .is-drilldown-submenu.is-active {
    z-index: 1;
    display: block;
    -webkit-transform: translateX(-100%);
        -ms-transform: translateX(-100%);
            transform: translateX(-100%); }
  .is-drilldown-submenu.is-closing {
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%); }

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

.is-drilldown-submenu-parent > a {
  position: relative; }
  .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 #222222;
    position: absolute;
    top: 50%;
    margin-top: -6px;
    right: 1rem; }

.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 #222222 transparent transparent;
  border-left-width: 0;
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.75rem;
  border-left-width: 0; }

.dropdown-pane {
  position: absolute;
  z-index: 10;
  display: block;
  width: 300px;
  padding: 1rem;
  visibility: hidden;
  border: 1px solid #999999;
  border-radius: 0;
  background-color: #ffffff;
  font-size: 1rem; }
  .dropdown-pane.is-open {
    visibility: visible; }

.dropdown-pane.tiny {
  width: 100px; }

.dropdown-pane.small {
  width: 200px; }

.dropdown-pane.large {
  width: 400px; }

.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: #222222 transparent transparent;
  right: 5px;
  margin-top: -3px; }

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

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

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

.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
  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 #222222 transparent transparent; }

.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 #222222; }

@media print, screen and (min-width: 41.875em) {
  .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: #222222 transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
    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 #222222 transparent transparent; }
  .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 #222222; } }

@media print, screen and (min-width: 60em) {
  .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: #222222 transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.large-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
    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 #222222 transparent transparent; }
  .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 #222222; } }

@media screen and (min-width: 75em) {
  .dropdown.menu.xlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.xlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.xlarge-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.xlarge-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: #222222 transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.xlarge-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.xlarge-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .dropdown.menu.xlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.xlarge-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.xlarge-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 #222222 transparent transparent; }
  .dropdown.menu.xlarge-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 #222222; } }

@media screen and (min-width: 90em) {
  .dropdown.menu.xxlarge-horizontal > li.opens-left > .is-dropdown-submenu {
    top: 100%;
    right: 0;
    left: auto; }
  .dropdown.menu.xxlarge-horizontal > li.opens-right > .is-dropdown-submenu {
    top: 100%;
    right: auto;
    left: 0; }
  .dropdown.menu.xxlarge-horizontal > li.is-dropdown-submenu-parent > a {
    position: relative;
    padding-right: 1.5rem; }
  .dropdown.menu.xxlarge-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: #222222 transparent transparent;
    right: 5px;
    margin-top: -3px; }
  .dropdown.menu.xxlarge-vertical > li .is-dropdown-submenu {
    top: 0; }
  .dropdown.menu.xxlarge-vertical > li.opens-left > .is-dropdown-submenu {
    right: 100%;
    left: auto; }
  .dropdown.menu.xxlarge-vertical > li.opens-right > .is-dropdown-submenu {
    right: auto;
    left: 100%; }
  .dropdown.menu.xxlarge-vertical > li > a::after {
    right: 14px; }
  .dropdown.menu.xxlarge-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 #222222 transparent transparent; }
  .dropdown.menu.xxlarge-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 #222222; } }

.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;
    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 #999999;
  background: #ffffff; }
  .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 #222222 transparent transparent; }
  .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 #222222; }
  .is-dropdown-submenu .is-dropdown-submenu {
    margin-top: -1px; }
  .is-dropdown-submenu > li {
    width: 100%; }
  .is-dropdown-submenu.js-dropdown-active {
    display: block; }

.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%; }

.label {
  display: inline-block;
  padding: 0.3333rem 0.5rem;
  border-radius: 0;
  font-size: 0.8rem;
  line-height: 1;
  white-space: nowrap;
  cursor: default;
  background: #222222;
  color: #ffffff; }
  .label.primary {
    background: #222222;
    color: #ffffff; }
  .label.secondary {
    background: #444444;
    color: #ffffff; }
  .label.fporange {
    background: #ffa000;
    color: #000000; }
  .label.success {
    background: #3adb76;
    color: #000000; }
  .label.warning {
    background: #ff0000;
    color: #000000; }
  .label.alert {
    background: #ec5840;
    color: #000000; }

.media-object {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  margin-bottom: 1rem;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap; }
  .media-object img {
    max-width: none; }
  @media screen and (max-width: 41.8125em) {
    .media-object.stack-for-small {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; } }
  @media screen and (max-width: 41.8125em) {
    .media-object.stack-for-small .media-object-section {
      padding: 0;
      padding-bottom: 1rem;
      -webkit-flex-basis: 100%;
          -ms-flex-preferred-size: 100%;
              flex-basis: 100%;
      max-width: 100%; }
      .media-object.stack-for-small .media-object-section img {
        width: 100%; } }

.media-object-section {
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 auto;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto; }
  .media-object-section:first-child {
    padding-right: 1rem; }
  .media-object-section:last-child:not(:nth-child(2)) {
    padding-left: 1rem; }
  .media-object-section > :last-child {
    margin-bottom: 0; }
  .media-object-section.main-section {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0px;
        -ms-flex: 1 1 0px;
            flex: 1 1 0px; }

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

.js-off-canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  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(255, 255, 255, 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: 1;
  -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: #f5f5f5; }
  [data-whatinput='mouse'] .off-canvas {
    outline: 0; }
  .off-canvas.is-transition-overlap {
    z-index: 10; }
    .off-canvas.is-transition-overlap.is-open {
      -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
              box-shadow: 0 0 10px rgba(0, 0, 0, 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: 1;
  -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: #f5f5f5; }
  [data-whatinput='mouse'] .off-canvas-absolute {
    outline: 0; }
  .off-canvas-absolute.is-transition-overlap {
    z-index: 10; }
    .off-canvas-absolute.is-transition-overlap.is-open {
      -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
              box-shadow: 0 0 10px rgba(0, 0, 0, 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;
  width: 250px;
  height: 100%;
  -webkit-transform: translateX(-250px);
      -ms-transform: translateX(-250px);
          transform: translateX(-250px);
  overflow-y: auto; }
  .position-left.is-open ~ .off-canvas-content {
    -webkit-transform: translateX(250px);
        -ms-transform: translateX(250px);
            transform: translateX(250px); }
  .position-left.is-transition-push::after {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 1px;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
    content: " "; }
  .position-left.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.position-right {
  top: 0;
  right: 0;
  width: 250px;
  height: 100%;
  -webkit-transform: translateX(250px);
      -ms-transform: translateX(250px);
          transform: translateX(250px);
  overflow-y: auto; }
  .position-right.is-open ~ .off-canvas-content {
    -webkit-transform: translateX(-250px);
        -ms-transform: translateX(-250px);
            transform: translateX(-250px); }
  .position-right.is-transition-push::after {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 1px;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
    content: " "; }
  .position-right.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.position-top {
  top: 0;
  left: 0;
  width: 100%;
  height: 250px;
  -webkit-transform: translateY(-250px);
      -ms-transform: translateY(-250px);
          transform: translateY(-250px);
  overflow-x: auto; }
  .position-top.is-open ~ .off-canvas-content {
    -webkit-transform: translateY(250px);
        -ms-transform: translateY(250px);
            transform: translateY(250px); }
  .position-top.is-transition-push::after {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1px;
    width: 100%;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
    content: " "; }
  .position-top.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.position-bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  height: 250px;
  -webkit-transform: translateY(250px);
      -ms-transform: translateY(250px);
          transform: translateY(250px);
  overflow-x: auto; }
  .position-bottom.is-open ~ .off-canvas-content {
    -webkit-transform: translateY(-250px);
        -ms-transform: translateY(-250px);
            transform: translateY(-250px); }
  .position-bottom.is-transition-push::after {
    position: absolute;
    top: 0;
    left: 0;
    height: 1px;
    width: 100%;
    -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
    content: " "; }
  .position-bottom.is-transition-overlap.is-open ~ .off-canvas-content {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none; }

.off-canvas-content {
  -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; }

@media print, screen and (min-width: 41.875em) {
  .position-left.reveal-for-medium {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .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: 1; }
    .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: 1; }
    .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: 1; }
    .position-bottom.reveal-for-medium ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media print, screen and (min-width: 60em) {
  .position-left.reveal-for-large {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .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: 1; }
    .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: 1; }
    .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: 1; }
    .position-bottom.reveal-for-large ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media screen and (min-width: 75em) {
  .position-left.reveal-for-xlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-left.reveal-for-xlarge ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-xlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-right.reveal-for-xlarge ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-xlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-top.reveal-for-xlarge ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-xlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-bottom.reveal-for-xlarge ~ .off-canvas-content {
      margin-bottom: 250px; } }

@media screen and (min-width: 90em) {
  .position-left.reveal-for-xxlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-left.reveal-for-xxlarge ~ .off-canvas-content {
      margin-left: 250px; }
  .position-right.reveal-for-xxlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-right.reveal-for-xxlarge ~ .off-canvas-content {
      margin-right: 250px; }
  .position-top.reveal-for-xxlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-top.reveal-for-xxlarge ~ .off-canvas-content {
      margin-top: 250px; }
  .position-bottom.reveal-for-xxlarge {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
    z-index: 1; }
    .position-bottom.reveal-for-xxlarge ~ .off-canvas-content {
      margin-bottom: 250px; } }

.orbit {
  position: relative; }

.orbit-container {
  position: relative;
  height: 0;
  margin: 0;
  list-style: none;
  overflow: hidden; }

.orbit-slide {
  width: 100%; }
  .orbit-slide.no-motionui.is-active {
    top: 0;
    left: 0; }

.orbit-figure {
  margin: 0; }

.orbit-image {
  width: 100%;
  max-width: 100%;
  margin: 0; }

.orbit-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  margin-bottom: 0;
  padding: 1rem;
  background-color: rgba(0, 0, 0, 0.5);
  color: #ffffff; }

.orbit-previous, .orbit-next {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  z-index: 10;
  padding: 1rem;
  color: #ffffff; }
  [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
    outline: 0; }
  .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
    background-color: rgba(0, 0, 0, 0.5); }

.orbit-previous {
  left: 0; }

.orbit-next {
  left: auto;
  right: 0; }

.orbit-bullets {
  position: relative;
  margin-top: 0.8rem;
  margin-bottom: 0.8rem;
  text-align: center; }
  [data-whatinput='mouse'] .orbit-bullets {
    outline: 0; }
  .orbit-bullets button {
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem;
    border-radius: 50%;
    background-color: #999999; }
    .orbit-bullets button:hover {
      background-color: #888888; }
    .orbit-bullets button.is-active {
      background-color: #888888; }

.pagination {
  margin-left: 0;
  margin-bottom: 1rem; }
  .pagination::before, .pagination::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; }
  .pagination::after {
    clear: both; }
  .pagination li {
    margin-right: 0.0625rem;
    border-radius: 0;
    font-size: 0.875rem;
    display: none; }
    .pagination li:last-child, .pagination li:first-child {
      display: inline-block; }
    @media print, screen and (min-width: 41.875em) {
      .pagination li {
        display: inline-block; } }
  .pagination a,
  .pagination button {
    display: block;
    padding: 0.1875rem 0.625rem;
    border-radius: 0;
    color: #000000; }
    .pagination a:hover,
    .pagination button:hover {
      background: #f5f5f5; }
  .pagination .current {
    padding: 0.1875rem 0.625rem;
    background: #222222;
    color: foreground(#222222);
    cursor: default; }
  .pagination .disabled {
    padding: 0.1875rem 0.625rem;
    color: #999999;
    cursor: not-allowed; }
    .pagination .disabled:hover {
      background: transparent; }
  .pagination .ellipsis::after {
    padding: 0.1875rem 0.625rem;
    content: '\2026';
    color: #000000; }

.pagination-previous a::before,
.pagination-previous.disabled::before {
  display: inline-block;
  margin-right: 0.5rem;
  content: '\00ab'; }

.pagination-next a::after,
.pagination-next.disabled::after {
  display: inline-block;
  margin-left: 0.5rem;
  content: '\00bb'; }

.progress {
  height: 1rem;
  margin-bottom: 1rem;
  border-radius: 0;
  background-color: #999999; }
  .progress.primary .progress-meter {
    background-color: #222222; }
  .progress.secondary .progress-meter {
    background-color: #444444; }
  .progress.fporange .progress-meter {
    background-color: #ffa000; }
  .progress.success .progress-meter {
    background-color: #3adb76; }
  .progress.warning .progress-meter {
    background-color: #ff0000; }
  .progress.alert .progress-meter {
    background-color: #ec5840; }

.progress-meter {
  position: relative;
  display: block;
  width: 0%;
  height: 100%;
  background-color: #222222; }

.progress-meter-text {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  position: absolute;
  margin: 0;
  font-size: 0.75rem;
  font-weight: bold;
  color: #ffffff;
  white-space: nowrap; }

.slider {
  position: relative;
  height: 0.5rem;
  margin-top: 1.25rem;
  margin-bottom: 2.25rem;
  background-color: #f5f5f5;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  -ms-touch-action: none;
      touch-action: none; }

.slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  max-width: 100%;
  height: 0.5rem;
  background-color: #999999;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }
  .slider-fill.is-dragging {
    -webkit-transition: all 0s linear;
    transition: all 0s linear; }

.slider-handle {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  position: absolute;
  left: 0;
  z-index: 1;
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background-color: #222222;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  -ms-touch-action: manipulation;
      touch-action: manipulation; }
  [data-whatinput='mouse'] .slider-handle {
    outline: 0; }
  .slider-handle:hover {
    background-color: #1d1d1d; }
  .slider-handle.is-dragging {
    -webkit-transition: all 0s linear;
    transition: all 0s linear; }

.slider.disabled,
.slider[disabled] {
  opacity: 0.25;
  cursor: not-allowed; }

.slider.vertical {
  display: inline-block;
  width: 0.5rem;
  height: 12.5rem;
  margin: 0 1.25rem;
  -webkit-transform: scale(1, -1);
      -ms-transform: scale(1, -1);
          transform: scale(1, -1); }
  .slider.vertical .slider-fill {
    top: 0;
    width: 0.5rem;
    max-height: 100%; }
  .slider.vertical .slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.4rem;
    height: 1.4rem;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }

.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; }
  .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; }

.switch {
  height: 2rem;
  position: relative;
  margin-bottom: 1rem;
  outline: 0;
  font-size: 0.875rem;
  font-weight: bold;
  color: #ffffff;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.switch-input {
  position: absolute;
  margin-bottom: 0;
  opacity: 0; }

.switch-paddle {
  position: relative;
  display: block;
  width: 4rem;
  height: 2rem;
  border-radius: 0;
  background: #999999;
  -webkit-transition: all 0.25s ease-out;
  transition: all 0.25s ease-out;
  font-weight: inherit;
  color: inherit;
  cursor: pointer; }
  input + .switch-paddle {
    margin: 0; }
  .switch-paddle::after {
    position: absolute;
    top: 0.25rem;
    left: 0.25rem;
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    border-radius: 0;
    background: #ffffff;
    -webkit-transition: all 0.25s ease-out;
    transition: all 0.25s ease-out;
    content: ''; }
  input:checked ~ .switch-paddle {
    background: #222222; }
    input:checked ~ .switch-paddle::after {
      left: 2.25rem; }
  [data-whatinput='mouse'] input:focus ~ .switch-paddle {
    outline: 0; }

.switch-active, .switch-inactive {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%); }

.switch-active {
  left: 8%;
  display: none; }
  input:checked + label > .switch-active {
    display: block; }

.switch-inactive {
  right: 15%; }
  input:checked + label > .switch-inactive {
    display: none; }

.switch.tiny {
  height: 1.5rem; }
  .switch.tiny .switch-paddle {
    width: 3rem;
    height: 1.5rem;
    font-size: 0.625rem; }
  .switch.tiny .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1rem;
    height: 1rem; }
  .switch.tiny input:checked ~ .switch-paddle::after {
    left: 1.75rem; }

.switch.small {
  height: 1.75rem; }
  .switch.small .switch-paddle {
    width: 3.5rem;
    height: 1.75rem;
    font-size: 0.75rem; }
  .switch.small .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 1.25rem;
    height: 1.25rem; }
  .switch.small input:checked ~ .switch-paddle::after {
    left: 2rem; }

.switch.large {
  height: 2.5rem; }
  .switch.large .switch-paddle {
    width: 5rem;
    height: 2.5rem;
    font-size: 1rem; }
  .switch.large .switch-paddle::after {
    top: 0.25rem;
    left: 0.25rem;
    width: 2rem;
    height: 2rem; }
  .switch.large input:checked ~ .switch-paddle::after {
    left: 2.75rem; }

table {
  width: 100%;
  margin-bottom: 1rem;
  border-radius: 0; }
  table thead,
  table tbody,
  table tfoot {
    border: 1px solid #f2f2f2;
    background-color: #ffffff; }
  table caption {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold; }
  table thead {
    background: #f9f9f9;
    color: #000000; }
  table tfoot {
    background: #f2f2f2;
    color: #000000; }
  table thead tr,
  table tfoot tr {
    background: transparent; }
  table thead th,
  table thead td,
  table tfoot th,
  table tfoot td {
    padding: 0.5rem 0.625rem 0.625rem;
    font-weight: bold;
    text-align: left; }
  table tbody th,
  table tbody td {
    padding: 0.5rem 0.625rem 0.625rem; }
  table tbody tr:nth-child(even) {
    border-bottom: 0;
    background-color: #f2f2f2; }
  table.unstriped tbody {
    background-color: #ffffff; }
    table.unstriped tbody tr {
      border-bottom: 0;
      border-bottom: 1px solid #f2f2f2;
      background-color: #ffffff; }

@media screen and (max-width: 59.9375em) {
  table.stack thead {
    display: none; }
  table.stack tfoot {
    display: none; }
  table.stack tr,
  table.stack th,
  table.stack td {
    display: block; }
  table.stack td {
    border-top: 0; } }

table.scroll {
  display: block;
  width: 100%;
  overflow-x: auto; }

table.hover thead tr:hover {
  background-color: #f4f4f4; }

table.hover tfoot tr:hover {
  background-color: #ededed; }

table.hover tbody tr:hover {
  background-color: #fafafa; }

table.hover:not(.unstriped) tr:nth-of-type(even):hover {
  background-color: #ededed; }

.table-scroll {
  overflow-x: auto; }
  .table-scroll table {
    width: auto; }

.tabs {
  margin: 0;
  list-style: none;
  background: #ffffff;
  border-bottom: 1px solid #e0e0e0;
  font-size: 0;
  white-space: nowrap; }
  .tabs::before, .tabs::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; }
  .tabs::after {
    clear: both; }

.tabs.vertical > li {
  width: auto;
  float: none;
  display: block; }

.tabs.simple > li > a {
  padding: 0; }
  .tabs.simple > li > a:hover {
    background: transparent; }

.tabs.primary {
  background: #222222; }
  .tabs.primary > li > a {
    color: foreground(#222222); }
    .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
      background: #2d2d2d; }

.tabs-title {
  display: block; }
  @media print, screen and (min-width: 60em) {
    .tabs-title {
      display: inline-block !important;
      margin-bottom: -1px !important; } }
  .tabs-title::before {
    display: none; }
  .tabs-title > a {
    position: relative;
    display: block;
    margin: 0 0 0 0.3125rem;
    padding: 17px 24px;
    font-family: Malleable;
    font-weight: 300;
    font-size: 1.0625rem;
    line-height: 0.875rem;
    text-transform: uppercase;
    letter-spacing: .09em;
    background-color: #f5f5f5;
    border: 0.0625rem solid #e0e0e0;
    -webkit-transition: background .3s;
    transition: background .3s; }
    .tabs-title > a::before {
      content: '';
      visibility: hidden;
      position: absolute;
      top: -0.125rem;
      left: 50%;
      width: 0;
      height: 0.1875rem;
      -webkit-transform: translateX(-50%);
          -ms-transform: translateX(-50%);
              transform: translateX(-50%);
      background-color: #ffa000;
      border-left: 0.375rem solid #ffffff;
      border-right: 0.375rem solid #ffffff;
      -webkit-transition: .3s;
      transition: .3s; }
    .tabs-title > a::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 0.3125rem;
      background: -webkit-gradient(top, bottom, color-stop(0%, transparent), color-stop(100%, #222222));
      background: -webkit-linear-gradient(top, transparent 0%, #222222 100%);
      background: -webkit-gradient(linear, left top, left bottom, from(transparent), to(#222222));
      background: linear-gradient(to bottom, transparent 0%, #222222 100%);
      opacity: .06;
      -webkit-transition: background .3s;
      transition: background .3s; }
    .tabs-title > a:hover {
      background: #ffffff; }
      .tabs-title > a:hover::after {
        opacity: .02; }
    .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
      background: #ffffff;
      border: 0.0625rem solid #e0e0e0; }
  .tabs-title.is-active > a {
    border-bottom-color: #ffffff; }
    .tabs-title.is-active > a::before {
      visibility: visible;
      width: calc(100% - 30px); }
    .tabs-title.is-active > a::after {
      display: none; }

.tabs-content {
  background: #ffffff;
  -webkit-transition: all .5s ease;
  transition: all .5s ease; }

.tabs-content.vertical {
  border: 1px solid #e0e0e0;
  border-left: 0; }

.tabs-panel {
  display: none;
  padding: 1rem; }
  .tabs-panel.is-active {
    display: block; }

.thumbnail {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 1rem;
  border: solid 4px #ffffff;
  border-radius: 0;
  -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
  line-height: 0; }

a.thumbnail {
  -webkit-transition: -webkit-box-shadow 200ms ease-out;
  transition: -webkit-box-shadow 200ms ease-out;
  transition: box-shadow 200ms ease-out;
  transition: box-shadow 200ms ease-out, -webkit-box-shadow 200ms ease-out; }
  a.thumbnail:hover, a.thumbnail:focus {
    -webkit-box-shadow: 0 0 6px 1px rgba(34, 34, 34, 0.5);
            box-shadow: 0 0 6px 1px rgba(34, 34, 34, 0.5); }
  a.thumbnail image {
    -webkit-box-shadow: none;
            box-shadow: none; }

.title-bar {
  padding: 0.5rem;
  background: #000000;
  color: #ffffff;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .title-bar .menu-icon {
    margin-left: 0.25rem;
    margin-right: 0.25rem; }

.title-bar-left,
.title-bar-right {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 0px;
      -ms-flex: 1 1 0px;
          flex: 1 1 0px; }

.title-bar-right {
  text-align: right; }

.title-bar-title {
  display: inline-block;
  vertical-align: middle;
  font-weight: bold; }

.has-tip {
  position: relative;
  display: inline-block;
  border-bottom: dotted 1px #888888;
  font-weight: bold;
  cursor: help; }

.tooltip {
  position: absolute;
  top: calc(100% + 0.6495rem);
  z-index: 1200;
  max-width: 10rem;
  padding: 0.75rem;
  border-radius: 0;
  background-color: #000000;
  font-size: 80%;
  color: #ffffff; }
  .tooltip::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-top-width: 0;
    border-bottom-style: solid;
    border-color: transparent transparent #000000;
    position: absolute;
    bottom: 100%;
    left: 50%;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%); }
  .tooltip.top::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-bottom-width: 0;
    border-top-style: solid;
    border-color: #000000 transparent transparent;
    top: 100%;
    bottom: auto; }
  .tooltip.left::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-right-width: 0;
    border-left-style: solid;
    border-color: transparent transparent transparent #000000;
    top: 50%;
    bottom: auto;
    left: 100%;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }
  .tooltip.right::before {
    display: block;
    width: 0;
    height: 0;
    border: inset 0.75rem;
    content: '';
    border-left-width: 0;
    border-right-style: solid;
    border-color: transparent #000000 transparent transparent;
    top: 50%;
    right: 100%;
    bottom: auto;
    left: auto;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%); }

.top-bar {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.5rem;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .top-bar,
  .top-bar ul {
    background-color: #f5f5f5; }
  .top-bar input {
    max-width: 200px;
    margin-right: 1rem; }
  .top-bar .input-group-field {
    width: 100%;
    margin-right: 0; }
  .top-bar input.button, .top-bar input.button__edit {
    width: auto; }
  .top-bar .top-bar-left,
  .top-bar .top-bar-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    max-width: 100%; }
  @media print, screen and (min-width: 41.875em) {
    .top-bar {
      -webkit-flex-wrap: nowrap;
          -ms-flex-wrap: nowrap;
              flex-wrap: nowrap; }
      .top-bar .top-bar-left {
        -webkit-box-flex: 1;
        -webkit-flex: 1 1 auto;
            -ms-flex: 1 1 auto;
                flex: 1 1 auto; }
      .top-bar .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto; } }
  @media screen and (max-width: 59.9375em) {
    .top-bar.stacked-for-medium {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-medium .top-bar-left,
      .top-bar.stacked-for-medium .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  @media screen and (max-width: 74.9375em) {
    .top-bar.stacked-for-large {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-large .top-bar-left,
      .top-bar.stacked-for-large .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  @media screen and (max-width: 89.9375em) {
    .top-bar.stacked-for-xlarge {
      -webkit-flex-wrap: wrap;
          -ms-flex-wrap: wrap;
              flex-wrap: wrap; }
      .top-bar.stacked-for-xlarge .top-bar-left,
      .top-bar.stacked-for-xlarge .top-bar-right {
        -webkit-box-flex: 0;
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        max-width: 100%; } }
  .top-bar.stacked-for-xxlarge {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .top-bar.stacked-for-xxlarge .top-bar-left,
    .top-bar.stacked-for-xxlarge .top-bar-right {
      -webkit-box-flex: 0;
      -webkit-flex: 0 0 100%;
          -ms-flex: 0 0 100%;
              flex: 0 0 100%;
      max-width: 100%; }

.top-bar-title {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin: 1rem; }

.top-bar-left,
.top-bar-right {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto; }

.hide {
  display: none !important; }

.invisible {
  visibility: hidden; }

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

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

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

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

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

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

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

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

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

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

@media screen and (min-width: 75em) {
  .hide-for-xlarge {
    display: none !important; } }

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

@media screen and (min-width: 75em) and (max-width: 89.9375em) {
  .hide-for-xlarge-only {
    display: none !important; } }

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

@media screen and (min-width: 90em) {
  .hide-for-xxlarge {
    display: none !important; } }

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

@media screen and (min-width: 90em) {
  .hide-for-xxlarge-only {
    display: none !important; } }

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

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

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

.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; } }

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

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

.float-center {
  display: block;
  margin-right: auto;
  margin-left: auto; }

.clearfix::before, .clearfix::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; }

.clearfix::after {
  clear: both; }

.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-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;
              -ms-grid-row-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;
              -ms-grid-row-align: stretch;
          align-self: stretch; }

.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: 41.875em) {
  .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: 60em) {
  .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; } }

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

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

code,
pre {
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-size: 0.75rem;
  text-align: left;
  text-shadow: 0 1px rgba(0, 0, 0, 0.3);
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5em;
  color: #f5f5f5;
  background: none;
  border: 0;
  -moz-tab-size: 4;
       tab-size: 4;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none; }

/* Code blocks */
pre {
  position: relative;
  display: block;
  width: auto;
  padding: 1em;
  margin: 2em 0;
  background: #222222; }

/* Inline code */
:not(pre) > code {
  position: relative;
  top: -1px;
  margin: 0 4px;
  padding: 4px 6px;
  text-shadow: none;
  white-space: normal;
  background-color: #e0e0e0;
  border-radius: 2px;
  color: #222222; }

pre .token.comment, pre .token.prolog, pre .token.doctype, pre .token.cdata {
  color: slategray; }

pre .token.punctuation, pre .token.operator, pre .token.entity, pre .token.url, pre .token.variable {
  color: #f5f5f5; }

pre .token .namespace {
  opacity: .7; }

pre .token.property, pre .token.tag, pre .token.constant, pre .token.symbol, pre .token.deleted {
  color: #f92672; }

pre .token.boolean, pre .token.number {
  color: #ae81ff; }

pre .token.selector, pre .token.attr-name, pre .token.string, pre .token.char, pre .token.builtin, pre .token.inserted {
  color: #a6e22e; }

pre .token.atrule, pre .token.attr-value, pre .token.function {
  color: #e6db74; }

pre .token.keyword {
  color: #66d9ef; }

pre .token.regex, pre .token.important {
  color: #fd971f; }

pre .token.important, pre .token.bold {
  font-weight: bold; }

pre .token.italic {
  font-style: italic; }

pre .token.entity {
  cursor: help; }

pre.language-css .token.string,
pre .style .token.string {
  color: #e0e0e0; }

pre.line-numbers {
  position: relative;
  padding-left: 55px;
  counter-reset: linenumber; }
  pre.line-numbers > code {
    position: relative; }
  pre.line-numbers .line-numbers-rows {
    position: absolute;
    pointer-events: none;
    top: -12px;
    bottom: -12px;
    left: -55px;
    width: 40px;
    padding: 13px 0;
    letter-spacing: -1px;
    background-color: rgba(255, 255, 255, 0.05);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
    pre.line-numbers .line-numbers-rows > span {
      pointer-events: none;
      display: block;
      counter-increment: linenumber; }
      pre.line-numbers .line-numbers-rows > span::before {
        content: counter(linenumber);
        color: #888888;
        display: block;
        padding-right: 10px;
        text-align: right; }

pre.code-toolbar > .toolbar {
  position: absolute;
  bottom: 20px;
  right: 10px;
  opacity: 0;
  -webkit-transition: opacity .3s;
  transition: opacity .3s; }
  pre.code-toolbar > .toolbar .toolbar-item {
    display: inline-block; }
  pre.code-toolbar > .toolbar a {
    padding: 10px 12px;
    color: #222222;
    font-family: "Source Sans Pro", Helvetica, Roboto, Arial, sans-serif;
    font-size: 0.75rem;
    line-height: 1em;
    background: #f5f5f5;
    cursor: pointer; }
    pre.code-toolbar > .toolbar a:hover, pre.code-toolbar > .toolbar a:focus {
      background-color: #ffa000;
      text-decoration: none; }

pre.code-toolbar:hover > .toolbar {
  opacity: 1; }

@media print, screen and (min-width: 41.875em) {
  .header-nav__item {
    position: relative; }
    .header-nav__item:hover > .header-nav__children {
      z-index: +1;
      visibility: visible;
      max-height: calc(100vh - 170px);
      -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
              box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); }
  .header-nav__children {
    position: absolute;
    top: 100%;
    left: 0;
    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;
    width: 100%;
    min-width: 280px;
    max-height: 0;
    padding: 10px 0;
    overflow: hidden;
    visibility: hidden;
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-top: 0;
    -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
            box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
    -webkit-transition: .3s ease-in-out;
    transition: .3s ease-in-out; }
    .header-nav__children li {
      padding-right: 0; }
      .header-nav__children li::before {
        content: '';
        position: absolute;
        top: 50%;
        left: 20px;
        width: 0;
        border-top: 1px solid #e0e0e0; }
      .header-nav__children li::after {
        left: 20px;
        right: 20px;
        top: auto;
        bottom: 0;
        height: 0;
        border-top: 1px solid #e0e0e0;
        border-left: 0; }
      .header-nav__children li a {
        display: block;
        margin: 0;
        padding: 16px 20px;
        padding-right: 40px;
        font-size: 1.0625rem;
        -webkit-transition: padding .2s;
        transition: padding .2s; }
      .header-nav__children li:hover::before {
        width: 10px; }
      .header-nav__children li:hover a {
        padding-left: 40px;
        padding-right: 20px; } }

body {
  overflow-x: hidden;
  height: auto; }

main .postlists {
  padding-bottom: 0; }
  @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
    main .postlists {
      padding: 0 20px; } }

main .blog-posts__image {
  display: block;
  -webkit-background-size: 100% 100%;
          background-size: 100%;
  background-repeat: no-repeat;
  background-color: rgba(0, 0, 0, 0.2);
  height: auto;
  padding-bottom: 33%;
  -webkit-transition: .3s;
  transition: .3s; }
  main .blog-posts__image:not(.sticky):hover {
    opacity: .8; }

@media screen and (max-width: 41.8125em) {
  main .blog-posts__data, main .news-posts__data {
    position: relative;
    margin-top: -25px;
    padding: 20px 0 30px;
    top: 0;
    height: 0;
    display: block; } }

main .blog-posts__text-item p {
  padding-top: 20px; }

main .blog-welcome {
  position: relative;
  background-color: #f5f5f5;
  padding: 40px 0; }
  @media screen and (max-width: 74.9375em) {
    main .blog-welcome {
      padding: 70px 20px; } }
  @media screen and (max-width: 41.8125em) {
    main .blog-welcome {
      padding: 50px 20px 10px; } }
  main .blog-welcome h1 {
    position: relative;
    text-transform: uppercase;
    letter-spacing: .1em;
    padding-bottom: 26px;
    margin-bottom: 26px; }
    @media screen and (max-width: 41.8125em) {
      main .blog-welcome h1 {
        margin-top: 0; } }
    main .blog-welcome h1::before {
      position: absolute;
      content: '';
      left: 0;
      bottom: 0;
      width: 1.875rem;
      height: .0625rem;
      background-color: #cccccc; }
  main .blog-welcome h3 {
    font-weight: 100;
    font-size: 1.8125rem;
    line-height: 30px;
    letter-spacing: 1px; }
    main .blog-welcome h3 strong {
      font-weight: 400; }
  main .blog-welcome .technical-background img {
    position: absolute;
    top: 20px;
    display: none; }
    @media screen and (max-width: 59.9375em) {
      main .blog-welcome .technical-background img {
        display: none; } }
    @media print, screen and (min-width: 60em) {
      main .blog-welcome .technical-background img {
        right: -10%;
        top: -5%;
        -webkit-transform: scale(0.8);
            -ms-transform: scale(0.8);
                transform: scale(0.8); } }
    @media screen and (min-width: 75em) {
      main .blog-welcome .technical-background img {
        left: 50%;
        -webkit-transform: scale(0.8);
            -ms-transform: scale(0.8);
                transform: scale(0.8); } }
    @media screen and (min-width: 90em) {
      main .blog-welcome .technical-background img {
        right: 10%;
        -webkit-transform: scale(1);
            -ms-transform: scale(1);
                transform: scale(1); } }

main .tech-posts {
  position: relative; }
  main .tech-posts .image-shadow {
    position: absolute;
    width: 100%;
    height: 100%;
    background: -webkit-linear-gradient(65deg, rgba(0, 0, 0, 0.6) 10%, rgba(0, 0, 0, 0.2) 65%, transparent 100%);
    background: linear-gradient(25deg, rgba(0, 0, 0, 0.6) 10%, rgba(0, 0, 0, 0.2) 65%, transparent 100%);
    display: block; }
    @media screen and (max-width: 59.9375em) {
      main .tech-posts .image-shadow {
        display: none; } }
  @media screen and (min-width: 60em) and (max-width: 74.9375em) {
    main .tech-posts {
      padding-right: 20px; } }
  main .tech-posts .button.triangle:hover, main .tech-posts .triangle.button__edit:hover {
    color: #ff6000; }
    main .tech-posts .button.triangle:hover::after, main .tech-posts .triangle.button__edit:hover::after {
      border-color: transparent transparent transparent #ff6000; }
  main .tech-posts .sticky {
    height: auto;
    padding-bottom: 35%;
    -webkit-background-size: cover;
            background-size: cover;
    background-repeat: no-repeat; }
    @media screen and (max-width: 74.9375em) {
      main .tech-posts .sticky {
        min-height: auto; } }
  main .tech-posts .blog-posts__title-item {
    margin: 0; }
    @media screen and (max-width: 41.8125em) {
      main .tech-posts .blog-posts__title-item h3 {
        padding: 0;
        margin: 0;
        font-size: 1.375rem;
        letter-spacing: 0; } }
    @media screen and (max-width: 41.8125em) {
      main .tech-posts .blog-posts__title-item a {
        padding: 0;
        font-size: 1.375rem;
        font-weight: 400; } }
  main .tech-posts .blog-posts__post-date {
    display: block;
    font-family: Malleable;
    font-size: 1.0625rem;
    font-weight: 300;
    color: #888888; }
    @media screen and (max-width: 41.8125em) {
      main .tech-posts .blog-posts__post-date {
        margin-bottom: 15px; } }
  main .tech-posts .blog-posts__author {
    margin-left: 0; }
  main .tech-posts .row article:nth-child(even) {
    padding-left: 5%; }
  main .tech-posts .row article:nth-child(odd) {
    padding-right: 5%; }
  @media screen and (max-width: 59.9375em) {
    main .tech-posts .row article:nth-child(even) {
      padding-left: 0; }
    main .tech-posts .row article:nth-child(odd) {
      padding-right: 0; } }
  @media screen and (max-width: 59.9375em) {
    main .tech-posts .row article {
      padding: 0; }
      main .tech-posts .row article:nth-child(even) {
        padding: 0; }
      main .tech-posts .row article:nth-child(odd) {
        padding: 0; } }
  @media screen and (max-width: 41.8125em) {
    main .tech-posts .row article {
      padding: 0; }
      main .tech-posts .row article:nth-child(even) {
        padding: 10px; }
      main .tech-posts .row article:nth-child(odd) {
        padding: 10px; } }
  main .tech-posts .row article a .triangle {
    color: #363636; }
  @media screen and (max-width: 41.8125em) {
    main .tech-posts .row article a {
      margin-left: 0; } }
  main .tech-posts article {
    padding: 0;
    margin-bottom: 0;
    margin-top: 80px; }
    @media screen and (max-width: 59.9375em) {
      main .tech-posts article {
        margin-top: 50px; } }
    @media screen and (max-width: 41.8125em) {
      main .tech-posts article {
        margin-top: 10px; } }
    main .tech-posts article .text-animate-stick {
      height: 80px; }
      main .tech-posts article .text-animate-stick em {
        font-size: 2.25rem;
        color: #ffffff;
        font-weight: 400;
        font-style: normal;
        width: 80%;
        line-height: 35px;
        position: relative;
        z-index: +1; }
        @media screen and (min-width: 60em) and (max-width: 74.9375em) {
          main .tech-posts article .text-animate-stick em {
            font-size: 2rem; } }
        @media screen and (max-width: 59.9375em) {
          main .tech-posts article .text-animate-stick em {
            font-size: 1.4375rem;
            width: 400px;
            line-height: normal;
            color: #666666;
            font-weight: 300; } }
      main .tech-posts article .text-animate-stick span {
        -webkit-animation: cursor_blink 1s infinite;
                animation: cursor_blink 1s infinite;
        color: #ff6000; }
      @media screen and (max-width: 59.9375em) {
        main .tech-posts article .text-animate-stick {
          height: 20px; } }
    main .tech-posts article .category_title {
      font-size: 1rem;
      margin-top: 15px;
      color: #666666;
      text-transform: capitalize; }
      main .tech-posts article .category_title a {
        color: #ff6000; }
        main .tech-posts article .category_title a:hover {
          color: #000000;
          text-decoration: underline; }
    main .tech-posts article .sticky-info {
      position: absolute;
      top: 140px;
      left: 20px;
      right: 20px;
      text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3); }
      @media screen and (min-width: 60em) and (max-width: 74.9375em) {
        main .tech-posts article .sticky-info {
          top: 2%; } }
      @media screen and (max-width: 59.9375em) {
        main .tech-posts article .sticky-info {
          position: relative;
          color: #000000;
          left: 0;
          top: 0;
          text-shadow: none; } }
      @media screen and (max-width: 41.8125em) {
        main .tech-posts article .sticky-info .button, main .tech-posts article .sticky-info .button__edit {
          margin-left: 10px; } }
      main .tech-posts article .sticky-info h3 {
        display: block;
        margin-bottom: 10px;
        line-height: 30px;
        text-align: left; }
        @media screen and (max-width: 41.8125em) {
          main .tech-posts article .sticky-info h3 {
            margin-bottom: 0;
            text-shadow: none;
            display: inline-block;
            padding: 0;
            letter-spacing: 0; } }
        @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
          main .tech-posts article .sticky-info h3 {
            display: inline-table;
            margin-bottom: 30px; } }
      main .tech-posts article .sticky-info .blog-posts__author {
        font-size: 1.3125rem;
        font-family: Malleable;
        letter-spacing: 2px;
        font-weight: 300;
        text-transform: uppercase;
        padding: 0;
        margin: 0;
        background: none; }
        main .tech-posts article .sticky-info .blog-posts__author svg {
          color: #ffffff;
          margin-right: 10px; }
        @media screen and (max-width: 59.9375em) {
          main .tech-posts article .sticky-info .blog-posts__author {
            font-size: 0.75rem;
            color: #ffffff;
            background-color: #000000;
            padding: 8px 20px;
            text-transform: none;
            letter-spacing: normal;
            font-family: "Source Sans Pro", Helvetica, Roboto, Arial, sans-serif; }
            main .tech-posts article .sticky-info .blog-posts__author svg {
              display: none; } }
      main .tech-posts article .sticky-info .blog-posts__title-item {
        width: 80%; }
        @media screen and (max-width: 59.9375em) {
          main .tech-posts article .sticky-info .blog-posts__title-item {
            width: 95%; } }
        main .tech-posts article .sticky-info .blog-posts__title-item a {
          color: #ffffff;
          font-size: 2.25rem; }
          @media screen and (max-width: 59.9375em) {
            main .tech-posts article .sticky-info .blog-posts__title-item a {
              letter-spacing: 0;
              color: #666666;
              font-size: 1.375rem;
              line-height: normal; }
              main .tech-posts article .sticky-info .blog-posts__title-item a::after {
                display: none; } }
  @media screen and (max-width: 59.9375em) and (max-width: 41.8125em) {
    main .tech-posts article .sticky-info .blog-posts__title-item a {
      padding: 0;
      letter-spacing: 0;
      color: #000000; } }
      main .tech-posts article .sticky-info .blog-posts__data-sticky {
        display: block;
        font-family: Malleable;
        color: #ffffff;
        font-size: 1.3125rem;
        font-weight: 300;
        margin-top: 0; }
        @media screen and (max-width: 59.9375em) {
          main .tech-posts article .sticky-info .blog-posts__data-sticky {
            font-size: 1rem;
            padding-top: 0;
            color: #888888;
            margin-top: -20px;
            letter-spacing: .1em; } }
        @media screen and (max-width: 41.8125em) {
          main .tech-posts article .sticky-info .blog-posts__data-sticky {
            margin-top: 0;
            letter-spacing: 0; } }
    main .tech-posts article .blog-posts__text-item-sticky {
      display: block;
      font-family: Malleable;
      font-size: 1.3125rem;
      letter-spacing: .05em;
      font-weight: 100; }
      @media screen and (max-width: 41.8125em) {
        main .tech-posts article .blog-posts__text-item-sticky {
          margin-top: 40px;
          padding: 10px;
          display: none; } }
      @media screen and (max-width: 59.9375em) {
        main .tech-posts article .blog-posts__text-item-sticky {
          font-family: "Source Sans Pro", Helvetica, Roboto, Arial, sans-serif;
          font-size: 1rem;
          color: #666666;
          margin-top: 15px; } }
    main .tech-posts article a.blog-posts__link-item.button.stick, main .tech-posts article a.blog-posts__link-item.stick.button__edit {
      color: #ff6000; }
      main .tech-posts article a.blog-posts__link-item.button.stick:hover, main .tech-posts article a.blog-posts__link-item.stick.button__edit:hover {
        color: #000000; }
    main .tech-posts article a.blog-posts__link-item.button.stick.button.triangle::after, main .tech-posts article a.blog-posts__link-item.stick.triangle.button__edit::after {
      border-color: transparent transparent transparent #ff6000; }
    @media screen and (max-width: 41.8125em) {
      main .tech-posts article .blog-posts__link-item.button, main .tech-posts article .blog-posts__link-item.button__edit {
        margin-left: 0;
        margin-top: 10px; } }

.post-header {
  height: 400px;
  color: #ffffff;
  position: relative;
  margin: 0 -45px;
  -webkit-background-size: cover;
          background-size: cover; }
  .post-header .image-shadow {
    position: relative;
    height: 100%;
    background: -webkit-linear-gradient(60deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 65%, transparent 100%);
    background: linear-gradient(30deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 65%, transparent 100%); }
  .post-header .text-animate-single {
    height: auto;
    width: 80%; }
    .post-header .text-animate-single span {
      -webkit-animation: cursor_blink 1s infinite;
              animation: cursor_blink 1s infinite;
      color: #ff6000;
      font-size: 2.75rem; }
    @media screen and (max-width: 59.9375em) {
      .post-header .text-animate-single {
        line-height: 15px; } }
    .post-header .text-animate-single em {
      font-family: Malleable;
      font-size: 2.75rem;
      color: #ffffff;
      font-weight: 300;
      font-style: normal;
      line-height: 45px;
      text-align: left;
      text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2); }
      @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
        .post-header .text-animate-single em {
          display: block;
          font-size: 2.1875rem;
          line-height: 1.2em;
          color: #ffffff;
          font-weight: 300;
          margin-top: 20px;
          width: 90%; } }
      @media screen and (max-width: 41.8125em) {
        .post-header .text-animate-single em {
          width: 80%;
          line-height: 1.2em;
          color: #ffffff;
          font-size: 1.4375rem;
          font-weight: 300; } }
  .post-header .blog-header__info {
    position: absolute;
    bottom: 0;
    width: 80%; }
    @media screen and (max-width: 59.9375em) {
      .post-header .blog-header__info {
        position: relative;
        padding: 5px;
        top: 10px;
        width: 100%; } }
  .post-header .news-posts__data {
    position: relative;
    font-size: 1.5rem;
    color: #ffffff; }
  .post-header .info-post {
    position: absolute;
    bottom: 10%;
    width: 100%;
    -webkit-box-align: baseline;
    -webkit-align-items: baseline;
        -ms-flex-align: baseline;
            align-items: baseline; }
    @media screen and (max-width: 59.9375em) {
      .post-header .info-post {
        top: 15%;
        bottom: initial;
        margin-right: 0;
        margin-left: 0; } }
  .post-header .post_header__author {
    position: relative;
    background-color: #ffffff;
    color: #000000;
    text-transform: uppercase;
    margin: 20px 0 0 40px;
    padding: 10px;
    width: 100%; }
    .post-header .post_header__author::before {
      content: '';
      position: absolute;
      border-left: 3px solid #ff9b00;
      left: -1px;
      bottom: auto;
      height: 48px; }
    @media screen and (max-width: 59.9375em) {
      .post-header .post_header__author {
        width: auto;
        display: inline-block;
        margin: 0 0 0 8.333%; } }
    .post-header .post_header__author .author {
      display: -webkit-inline-box;
      display: -webkit-inline-flex;
      display: -ms-inline-flexbox;
      display: inline-flex; }
      @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
        .post-header .post_header__author .author {
          display: block;
          position: relative; } }
      @media screen and (max-width: 41.8125em) {
        .post-header .post_header__author .author {
          display: inline-block; } }
    .post-header .post_header__author .author-avatar {
      margin: 5px 10px;
      text-align: left;
      -webkit-flex-shrink: 0;
          -ms-flex-negative: 0;
              flex-shrink: 0; }
      .post-header .post_header__author .author-avatar img {
        width: 30px;
        height: auto; }
        @media screen and (max-width: 41.8125em) {
          .post-header .post_header__author .author-avatar img {
            width: 30px; } }
      @media screen and (max-width: 41.8125em) {
        .post-header .post_header__author .author-avatar {
          margin: 5px; } }
    .post-header .post_header__author h5 {
      display: block;
      letter-spacing: 1px;
      font-size: 0.875rem;
      line-height: normal; }
      @media screen and (max-width: 59.9375em) {
        .post-header .post_header__author h5 {
          font-size: 0.8125rem; } }

@media screen and (max-width: 41.8125em) {
  .post__content {
    padding: 10px; } }

.post__content h3, .post__content h4 {
  font-weight: 100;
  margin-top: 50px; }

.post__content h3 {
  font-size: 1.375rem;
  text-transform: uppercase; }

.post__content h4 {
  font-size: 1.3125rem;
  text-transform: uppercase;
  letter-spacing: .1em; }

@media screen and (max-width: 41.8125em) {
  .post__content h3, .post__content h4 {
    margin-top: 10px; } }

.post__content ul {
  padding: 0;
  margin: 0 0 20px;
  list-style: none; }
  .post__content ul li {
    margin: 0;
    padding: 0 0 0 30px;
    position: relative; }
    .post__content ul li::before {
      content: '';
      position: absolute;
      left: 0;
      border-bottom: 1px solid #ffa000;
      width: 15px;
      top: 12px; }

.post__content strong {
  font-weight: 600; }

.post__content .posts_links {
  display: block;
  margin-top: 50px;
  margin-bottom: 150px; }
  @media screen and (max-width: 41.8125em) {
    .post__content .posts_links {
      margin-bottom: 20px; } }
  .post__content .posts_links h3 {
    text-transform: uppercase;
    font-size: 1.125rem;
    font-weight: 300;
    letter-spacing: .1em; }
  .post__content .posts_links .next-post, .post__content .posts_links .previous-post {
    display: inline-block;
    text-align: center; }
    @media screen and (max-width: 41.8125em) {
      .post__content .posts_links .next-post, .post__content .posts_links .previous-post {
        display: block; } }
    .post__content .posts_links .next-post strong, .post__content .posts_links .previous-post strong {
      font-family: Malleable;
      font-size: 1.125rem;
      font-weight: 300;
      letter-spacing: .1em;
      text-transform: uppercase; }
    .post__content .posts_links .next-post a, .post__content .posts_links .previous-post a {
      display: block; }
      .post__content .posts_links .next-post a:hover span, .post__content .posts_links .previous-post a:hover span {
        opacity: 1;
        -webkit-transition: all .8s ease-in-out;
        transition: all .8s ease-in-out; }
        @media screen and (max-width: 41.8125em) {
          .post__content .posts_links .next-post a:hover span, .post__content .posts_links .previous-post a:hover span {
            text-align: center;
            margin: auto; } }
    .post__content .posts_links .next-post span, .post__content .posts_links .previous-post span {
      position: relative;
      display: block;
      opacity: 0;
      max-width: 200px;
      color: #999999;
      line-height: 19px;
      padding-top: 20px; }
      .post__content .posts_links .next-post span::before, .post__content .posts_links .previous-post span::before {
        content: '';
        position: absolute;
        margin-top: 10px;
        border-top: 1px solid #e0e0e0;
        top: 0;
        left: 35%;
        width: 60px; }
      .post__content .posts_links .next-post span:hover, .post__content .posts_links .previous-post span:hover {
        opacity: 1; }
  .post__content .posts_links .next-post {
    float: right; }
    @media screen and (max-width: 41.8125em) {
      .post__content .posts_links .next-post {
        float: none; } }
    .post__content .posts_links .next-post svg {
      display: inline-block;
      margin-right: 10px; }
    .post__content .posts_links .next-post:hover svg {
      margin-left: 5px;
      -webkit-transition: all .2s ease-out;
      transition: all .2s ease-out; }
  .post__content .posts_links .previous-post strong > svg {
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg);
    margin-right: 10px; }
  .post__content .posts_links .previous-post:hover svg {
    margin-right: 15px;
    -webkit-transition: all .2s ease-out;
    transition: all .2s ease-out; }

.related-posts .related {
  padding: 45px;
  border-top: 1px solid #f2f2f2;
  border-left: 1px solid #f2f2f2;
  border-bottom: 1px solid #f2f2f2; }
  .related-posts .related:last-child {
    border-right: 1px solid #f2f2f2; }
  .related-posts .related img {
    min-height: 100px;
    background: #e0e0e0; }
  .related-posts .related h3 {
    margin-top: 5px;
    font-size: 1.1875rem;
    font-weight: 300; }
  .related-posts .related p {
    font-size: 0.875rem;
    margin-top: 30px;
    font-weight: 300;
    color: #666666; }
  .related-posts .related .button.triangle:hover, .related-posts .related .triangle.button__edit:hover {
    color: #ff6000; }
    .related-posts .related .button.triangle:hover::after, .related-posts .related .triangle.button__edit:hover::after {
      border-color: transparent transparent transparent #ff6000; }
  .related-posts .related .blog-posts__image {
    margin-top: 0; }

.business-panel {
  position: relative;
  border: 1px solid #e0e0e0;
  padding: 10px 20px;
  margin-top: 45px; }
  @media screen and (max-width: 59.9375em) {
    .business-panel {
      margin-top: 30px; } }
  .business-panel p {
    font-family: "Source Sans Pro", Helvetica, Roboto, Arial, sans-serif;
    text-transform: none;
    font-size: 0.875rem;
    text-align: center;
    margin-top: 25px;
    color: #666666;
    display: block; }
    .business-panel p .button, .business-panel p .button__edit {
      margin-top: 20px; }
  .business-panel h3 {
    text-align: center;
    font-size: 1.0625rem;
    padding: 20px;
    margin-top: 0;
    color: #666666; }
    .business-panel h3::before, .business-panel h3::after {
      display: none; }
  .business-panel svg {
    position: absolute;
    top: -20px;
    left: 40%;
    background-color: #ffffff;
    -webkit-box-shadow: 0 0 0 20px #ffffff;
            box-shadow: 0 0 0 20px #ffffff; }
    @media screen and (max-width: 41.8125em) {
      .business-panel svg {
        left: 45%; } }

.blog-sidebar {
  padding: 35px 0; }
  @media screen and (max-width: 74.9375em) {
    .blog-sidebar {
      padding-left: 20px; } }
  @media screen and (max-width: 59.9375em) {
    .blog-sidebar {
      padding: 20px; } }
  .blog-sidebar .button_back {
    font-family: Malleable;
    padding-left: 10px;
    font-size: 1.1875rem;
    display: block;
    letter-spacing: .1em; }
    .blog-sidebar .button_back > svg {
      -webkit-transform: rotate(180deg);
          -ms-transform: rotate(180deg);
              transform: rotate(180deg);
      margin-right: 10px;
      -webkit-transition: all .2s ease-in-out;
      transition: all .2s ease-in-out; }
    .blog-sidebar .button_back:hover svg {
      margin-left: -5px; }
    .blog-sidebar .button_back span {
      text-transform: uppercase; }
      @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
        .blog-sidebar .button_back span {
          display: inline-block;
          max-width: calc(100% - 30px);
          vertical-align: middle;
          line-height: 1.25em; } }
  .blog-sidebar ul {
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
    text-transform: uppercase;
    font-family: Malleable;
    letter-spacing: 1px;
    font-size: 1.1875rem; }
    .blog-sidebar ul a {
      font-weight: 400;
      padding-top: 10px; }
    .blog-sidebar ul .children a {
      font-weight: 300;
      padding: 5px 0 0 15px;
      display: block;
      font-size: 1.0625rem;
      line-height: 20px;
      position: relative; }
      .blog-sidebar ul .children a::before {
        content: '';
        position: absolute;
        display: inline-block;
        margin-right: 5px;
        width: 8px;
        top: 15px;
        left: 0;
        border-bottom: 1px solid #cccccc; }
      .blog-sidebar ul .children a:hover {
        padding-left: 18px;
        color: #ff6000; }
  .blog-sidebar h3 {
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 300;
    position: relative;
    padding: 0;
    margin: 42px 0; }
    .blog-sidebar h3::after {
      content: '';
      position: absolute;
      bottom: -1.25rem;
      left: 0;
      width: 1.875rem;
      height: .0625rem;
      background-color: #cccccc; }
  .blog-sidebar .cat-item {
    padding: 3px 0; }
    .blog-sidebar .cat-item ul {
      margin-bottom: 0;
      text-transform: none;
      font-size: 1.125rem; }
    .blog-sidebar .cat-item a {
      -webkit-transition: all .2s ease;
      transition: all .2s ease;
      display: block;
      font-weight: 300; }
      @media screen and (max-width: 41.8125em) {
        .blog-sidebar .cat-item a {
          font-size: 0.9375rem; } }
      .blog-sidebar .cat-item a:hover {
        opacity: .8; }
  .blog-sidebar .cat-item-1 {
    display: none; }
  .blog-sidebar .widget_categories {
    margin-top: 20px;
    margin-bottom: 20px; }
    @media screen and (max-width: 41.8125em) {
      .blog-sidebar .widget_categories {
        display: none; } }
    .blog-sidebar .widget_categories h3::before {
      content: '';
      display: inline-block;
      margin-right: 12px;
      min-height: 16px;
      min-width: 16px;
      background-image: url("../../dist/images/icons/cat.png");
      background-position: left top;
      background-repeat: no-repeat; }
  @media screen and (max-width: 41.8125em) {
    .blog-sidebar .widget_tag_cloud {
      display: none; } }
  .blog-sidebar .widget_tag_cloud h3::before {
    content: '';
    display: inline-block;
    min-height: 16px;
    min-width: 16px;
    margin-right: 12px;
    background-position: left top;
    background-image: url("../../dist/images/icons/tag.png");
    background-repeat: no-repeat; }
  .blog-sidebar .tagcloud {
    margin-top: 40px; }
    .blog-sidebar .tagcloud a {
      display: inline-block;
      font-weight: 300;
      text-transform: none;
      background: #f5f5f5;
      padding: 1px 5px;
      margin-bottom: 2px; }

.sidebar-right {
  border-left: 1px solid #cccccc;
  padding-left: 20px; }
  @media screen and (max-width: 59.9375em) {
    .sidebar-right {
      margin-top: 5px;
      border-left: none;
      padding-left: 0;
      text-align: center; } }
  .sidebar-right h3 {
    text-transform: uppercase;
    font-weight: 300;
    font-size: 1.3125rem; }
    .sidebar-right h3:first-of-type {
      margin-top: 70px; }
      @media screen and (max-width: 59.9375em) {
        .sidebar-right h3:first-of-type {
          margin-top: 0; } }
  .sidebar-right .share, .sidebar-right .comment {
    text-align: center; }
  .sidebar-right .share {
    border-bottom: 1px solid #cccccc;
    padding-bottom: 20px;
    margin-top: 20px;
    margin-bottom: 20px;
    position: relative;
    cursor: pointer; }
    @media screen and (max-width: 41.8125em) {
      .sidebar-right .share {
        border-bottom: none; } }
    .sidebar-right .share:hover .new-social-shares {
      cursor: pointer;
      display: block; }
  .sidebar-right .comment {
    margin-top: 20px; }
    @media screen and (max-width: 41.8125em) {
      .sidebar-right .comment {
        margin-bottom: 20px; } }
  .sidebar-right svg {
    color: #00a3e3; }
  .sidebar-right a {
    display: block; }

.post-title h2 {
  position: relative;
  text-align: center;
  text-transform: uppercase;
  font-weight: 100;
  padding: 50px 0;
  letter-spacing: .1em;
  font-size: 1.5rem; }
  .post-title h2::before {
    position: absolute;
    content: '';
    margin-left: -1px;
    left: 50%;
    bottom: -35px;
    height: 70px;
    width: 1px;
    background-color: #e0e0e0; }

.subscribe, .subscribe-single {
  position: relative;
  background: #00a3e0;
  height: auto; }
  @media screen and (max-width: 41.8125em) {
    .subscribe, .subscribe-single {
      height: auto;
      text-align: center;
      margin-top: 50px; } }
  .subscribe img, .subscribe-single img {
    margin-top: -20px; }
    @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
      .subscribe img, .subscribe-single img {
        padding: 20px;
        margin-left: -25px;
        margin-top: 0; } }
  .subscribe p, .subscribe-single p {
    font-family: Malleable;
    font-size: 1.3125rem;
    color: #ffffff;
    text-transform: uppercase;
    font-weight: 300;
    letter-spacing: 1px;
    line-height: normal;
    margin-top: 50px; }
    @media screen and (max-width: 41.8125em) {
      .subscribe p, .subscribe-single p {
        margin-top: 0;
        padding: 0 15px; } }
    @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
      .subscribe p, .subscribe-single p {
        text-align: center;
        margin-left: -50px; } }
  .subscribe .button, .subscribe .button__edit, .subscribe-single .button, .subscribe-single .button__edit {
    border: none;
    padding: 15px 30px 20px 35px;
    font-size: 1.3125rem; }
    @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
      .subscribe .button, .subscribe .button__edit, .subscribe-single .button, .subscribe-single .button__edit {
        margin-right: 10px;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        padding: 15px; }
        .subscribe .button svg, .subscribe .button__edit svg, .subscribe-single .button svg, .subscribe-single .button__edit svg {
          margin-left: 35px; } }
    .subscribe .button a, .subscribe .button__edit a, .subscribe-single .button a, .subscribe-single .button__edit a {
      display: block; }
      @media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
        .subscribe .button a, .subscribe .button__edit a, .subscribe-single .button a, .subscribe-single .button__edit a {
          display: -webkit-box;
          display: -webkit-flex;
          display: -ms-flexbox;
          display: flex; } }
  .subscribe .subscribtion, .subscribe-single .subscribtion {
    margin-top: 60px; }
    @media screen and (min-width: 60em) and (max-width: 74.9375em) {
      .subscribe .subscribtion, .subscribe-single .subscribtion {
        margin-right: 10px; } }
    @media screen and (max-width: 41.8125em) {
      .subscribe .subscribtion, .subscribe-single .subscribtion {
        margin: 10px 0; } }

@media screen and (min-width: 60em) and (max-width: 74.9375em) {
  .footer {
    padding-left: 10px; } }

.footer aside {
  padding: 0; }
  @media screen and (max-width: 59.9375em) {
    .footer aside {
      padding: 0 20px; } }

.footer .cr {
  margin-top: 30px; }
  .footer .cr .menu a {
    padding: 10px; }

.footer h3 {
  font-weight: 300;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding-bottom: 30px; }
  @media screen and (max-width: 41.8125em) {
    .footer h3 {
      padding-bottom: 10px;
      margin-top: 20px; } }

@media screen and (min-width: 41.875em) and (max-width: 59.9375em) {
  .footer .footermenu {
    margin-left: 10px; } }

.footer .footermenu ul li a {
  margin-right: 10px; }

@media screen and (max-width: 41.8125em) {
  .footer .archive-block {
    padding: 40px; } }

.footer .archive-block .archives-links {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
  .footer .archive-block .archives-links h2 {
    display: block; }
  .footer .archive-block .archives-links li {
    display: inline-block;
    margin: 0;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    width: calc(50% - 11px); }
  .footer .archive-block .archives-links a.more {
    color: #ffa000;
    margin-top: 15px; }
    .footer .archive-block .archives-links a.more :hover {
      color: #ffffff; }

@media screen and (max-width: 41.8125em) {
  .footer .archive-block .menu {
    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;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start; }
    .footer .archive-block .menu ul {
      margin-left: 20px; }
    .footer .archive-block .menu li {
      padding: 5px;
      text-align: left; } }

.footer .footercopyright {
  padding: 0;
  text-align: auto; }
  @media screen and (max-width: 41.8125em) {
    .footer .footercopyright {
      padding-top: 10px; } }
  @media screen and (max-width: 74.9375em) {
    .footer .footercopyright {
      margin-right: 10px; } }

.footer .tagcloud a {
  color: #ffffff;
  font-family: Malleable;
  font-weight: 300;
  padding-right: 5px;
  margin-bottom: 5px;
  line-height: 25px;
  display: inline-block; }
  @media screen and (max-width: 41.8125em) {
    .footer .tagcloud a {
      line-height: normal;
      font-size: 0.875rem !important;
      letter-spacing: .07em;
      margin: 0; } }

.footer .menu-footer-container {
  display: block;
  margin-top: 15px;
  position: relative; }
  .footer .menu-footer-container ul {
    display: block; }
    .footer .menu-footer-container ul li {
      padding-bottom: 10px;
      display: block; }
      .footer .menu-footer-container ul li ::before {
        content: '';
        position: relative;
        display: inline-block;
        margin-right: 5px;
        width: 10px;
        top: -5px;
        border-bottom: 1px solid #cccccc; }
      .footer .menu-footer-container ul li a {
        display: block;
        padding-top: 3px; }
        .footer .menu-footer-container ul li a:hover {
          padding-left: 4px; }

.subscribe-single {
  background: none;
  height: auto;
  margin-top: 40px; }
  .subscribe-single .button, .subscribe-single .button__edit {
    margin-right: 30px; }

.header__sticky {
  border-bottom: 1px solid #e0e0e0; }
  .header__sticky input {
    border: none;
    -webkit-box-shadow: none;
            box-shadow: none;
    padding-top: 22px 0 0; }
  .header__sticky span {
    padding-right: 15px; }
    @media screen and (max-width: 41.8125em) {
      .header__sticky span {
        display: block; } }

.header .header__top .header__logo {
  display: inline-block;
  margin-left: 0;
  padding: 0;
  width: 250px; }
  @media screen and (max-width: 74.9375em) {
    .header .header__top .header__logo {
      margin-left: 10px; } }

@media screen and (max-width: 41.8125em) {
  .header .header__top span {
    display: none; } }

.header .header__top .header__logo-fp {
  display: inline-block;
  margin-left: 10px;
  padding: 0;
  width: 250px; }
  @media screen and (max-width: 74.9375em) {
    .header .header__top .header__logo-fp {
      width: 210px; } }
  @media screen and (max-width: 41.8125em) {
    .header .header__top .header__logo-fp {
      display: none; } }

.header .header-search input {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-align-content: center;
      -ms-flex-line-pack: center;
          align-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  margin: 0;
  padding-left: 1.25rem;
  font-size: 0.875rem;
  line-height: 1em;
  border: 0;
  -webkit-box-shadow: 0 0 0;
          box-shadow: 0 0 0; }

.content__socialmedia {
  text-align: right; }
  @media screen and (max-width: 74.9375em) {
    .content__socialmedia {
      margin-top: 0; }
      .content__socialmedia li {
        padding: 0 0.75rem; } }

.subscribe-widget {
  position: relative;
  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: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-align-content: stretch;
      -ms-flex-line-pack: stretch;
          align-content: stretch;
  width: 100%; }
  @media screen and (max-width: 59.9375em) {
    .subscribe-widget {
      display: block;
      padding: 0; } }
  .subscribe-widget > .widget {
    width: 100%;
    z-index: +1; }
    .subscribe-widget > .widget:not(:only-child):nth-child(1) {
      width: 50%; }
      @media screen and (max-width: 59.9375em) {
        .subscribe-widget > .widget:not(:only-child):nth-child(1) {
          width: 100%; } }
      .subscribe-widget > .widget:not(:only-child):nth-child(1) .widget-content {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
            -ms-flex-pack: center;
                justify-content: center;
        position: relative; }
      .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__content {
        -webkit-box-ordinal-group: 1;
        -webkit-order: 0;
            -ms-flex-order: 0;
                order: 0;
        -webkit-box-flex: 0;
        -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto;
        -webkit-align-self: center;
            -ms-flex-item-align: center;
                    -ms-grid-row-align: center;
                align-self: center;
        padding: 30px 110px 0 25px; }
        @media screen and (max-width: 59.9375em) {
          .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__content {
            padding: 10px; } }
        .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__content p {
          line-height: 19px;
          margin: 0; }
      .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__image {
        -webkit-box-ordinal-group: 3;
        -webkit-order: 2;
            -ms-flex-order: 2;
                order: 2;
        -webkit-box-flex: 0;
        -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto;
        -webkit-align-self: center;
            -ms-flex-item-align: center;
                    -ms-grid-row-align: center;
                align-self: center;
        position: absolute;
        right: -220px;
        bottom: 50px; }
        @media screen and (max-width: 59.9375em) {
          .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__image {
            display: none; } }
      .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__button {
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
            -ms-flex-order: 1;
                order: 1;
        -webkit-box-flex: 0;
        -webkit-flex: 0 1 auto;
            -ms-flex: 0 1 auto;
                flex: 0 1 auto;
        -webkit-align-self: flex-start;
            -ms-flex-item-align: start;
                align-self: flex-start;
        padding: 10px;
        margin-left: 10px;
        z-index: +1; }
        @media screen and (max-width: 59.9375em) {
          .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__button {
            margin-left: 0; } }
        .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__button .button, .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__button .button__edit {
          border: none;
          font-size: 1.0625rem;
          padding: 10px 20px 13px; }
          .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__button .button:hover svg, .subscribe-widget > .widget:not(:only-child):nth-child(1) .subscribe-widget__button .button__edit:hover svg {
            color: #ffffff; }
    .subscribe-widget > .widget:not(:only-child):nth-child(2) .widget-content {
      -webkit-box-pack: start;
      -webkit-justify-content: flex-start;
          -ms-flex-pack: start;
              justify-content: flex-start; }
    .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__content {
      -webkit-box-ordinal-group: 1;
      -webkit-order: 0;
          -ms-flex-order: 0;
              order: 0;
      -webkit-box-flex: 0;
      -webkit-flex: 0 1 auto;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      -webkit-align-self: center;
          -ms-flex-item-align: center;
                  -ms-grid-row-align: center;
              align-self: center;
      padding: 50px 20px 50px 50px;
      font-family: Malleable;
      text-transform: uppercase;
      font-size: 1.3125rem; }
      @media screen and (max-width: 59.9375em) {
        .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__content {
          padding: 0; } }
      @media screen and (max-width: 41.8125em) {
        .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__content {
          font-size: 1rem;
          font-family: "Source Sans Pro", Helvetica, Roboto, Arial, sans-serif;
          text-transform: none; } }
      .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__content p {
        line-height: 25px; }
        @media screen and (max-width: 41.8125em) {
          .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__content p {
            line-height: 19px; } }
        @media screen and (max-width: 59.9375em) {
          .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__content p {
            padding: 10px 10px 0; } }
    .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__image {
      -webkit-box-ordinal-group: 3;
      -webkit-order: 2;
          -ms-flex-order: 2;
              order: 2;
      -webkit-box-flex: 0;
      -webkit-flex: 0 1 auto;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      -webkit-align-self: center;
          -ms-flex-item-align: center;
                  -ms-grid-row-align: center;
              align-self: center;
      z-index: +1;
      position: absolute;
      right: -80px;
      bottom: 30px; }
      @media screen and (min-width: 60em) and (max-width: 74.9375em) {
        .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__image {
          bottom: 75px; } }
      @media screen and (max-width: 59.9375em) {
        .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__image {
          display: none; } }
    .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__button {
      -webkit-box-ordinal-group: 2;
      -webkit-order: 1;
          -ms-flex-order: 1;
              order: 1;
      -webkit-box-flex: 0;
      -webkit-flex: 0 1 auto;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      -webkit-align-self: center;
          -ms-flex-item-align: center;
                  -ms-grid-row-align: center;
              align-self: center;
      padding: 10px;
      z-index: +1; }
      .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__button .button, .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__button .button__edit {
        border: none;
        font-size: 1.3125rem;
        padding: 10px 20px 13px; }
        @media screen and (max-width: 41.8125em) {
          .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__button .button, .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__button .button__edit {
            font-size: 1.0625rem; } }
        .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__button .button:hover svg, .subscribe-widget > .widget:not(:only-child):nth-child(2) .subscribe-widget__button .button__edit:hover svg {
          color: #ffffff; }
  .subscribe-widget .widget-content {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
    height: 100%; }
    @media screen and (max-width: 41.8125em) {
      .subscribe-widget .widget-content {
        display: block; } }
    body.home .subscribe-widget .widget-content {
      background-color: transparent !important; }
    .subscribe-widget .widget-content.white {
      color: #ffffff; }
    .subscribe-widget .widget-content.black {
      color: #ffffff; }

.new-social-shares {
  padding-top: 20px;
  padding-bottom: 10px;
  margin-top: -50px;
  font-size: 0;
  line-height: 0;
  -webkit-box-shadow: 0 0 20px 1px rgba(186, 186, 186, 0.8);
          box-shadow: 0 0 20px 1px rgba(186, 186, 186, 0.8);
  background-color: #ffffff;
  position: absolute;
  z-index: +1;
  width: 100%;
  height: 0;
  visibility: hidden;
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
  overflow: hidden; }
  .share:hover .new-social-shares {
    visibility: visible;
    height: 400px; }
    @media screen and (max-width: 41.8125em) {
      .share:hover .new-social-shares {
        height: auto; } }
  .new-social-shares .buttons {
    position: relative;
    display: block;
    vertical-align: middle;
    width: calc(100% - 220px);
    text-align: right;
    margin-left: 18px;
    background: #ffffff; }
    @media screen and (max-width: 41.8125em) {
      .new-social-shares .buttons {
        width: 100%;
        text-align: left; } }
  .new-social-shares input[type=radio] {
    display: none; }
  .new-social-shares .social-button {
    position: relative;
    display: block;
    vertical-align: top;
    width: 40px;
    height: 40px;
    margin-right: 0;
    margin-bottom: 5px;
    background-color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    background-image: url("../../dist/images/icons/sprite-social-new.png");
    -webkit-transition: .2s;
    transition: .2s; }
    @media screen and (max-width: 41.8125em) {
      .new-social-shares .social-button {
        display: inline-block;
        margin-right: 5px; } }
    .new-social-shares .social-button:hover {
      opacity: .8; }
  .new-social-shares .social-button:first-of-type {
    margin-left: 0; }
  .new-social-shares .facebook-social {
    background-color: #3b5998;
    background-position: 0 0; }
  .new-social-shares .twitter-social {
    background-color: #00aced;
    background-position: -40px 0; }
  .new-social-shares .google-social {
    background-color: #dd4b39;
    background-position: -80px 0; }
  .new-social-shares .linkedin-social {
    background-color: #0077b5;
    background-position: -120px 0; }
  .new-social-shares .reddit-social {
    background-color: #cee3f8;
    background-position: -160px 0; }
  .new-social-shares .digg-social {
    background-color: #356aa0;
    background-position: -200px 0; }
  .new-social-shares .stumbleupon-social {
    background-color: #eb4924;
    background-position: -240px 0; }
  .new-social-shares .dzone-social {
    background-color: #009ad9;
    background-position: -280px 0; }
  .new-social-shares .delicious-social {
    background-color: #3399ff;
    background-position: -320px 0; }

* {
  outline: none; }

body.no-scroll {
  overflow: hidden; }

main {
  margin-top: 150px;
  padding-bottom: 0; }
  @media screen and (max-width: -0.0625em) {
    main {
      margin-top: 110px;
      padding-bottom: 40px; }
      body.is-mobile main {
        margin-top: 60px; } }
  @media (max-width: 1000px) {
    main {
      margin-top: calc(6.38vw + 86px); } }
  main .header-banner h1 {
    margin-top: 45px; }

.page__content ul {
  margin-bottom: 35px; }
  .page__content ul > li {
    display: block;
    padding: 0;
    margin: 0 0 8px;
    position: relative;
    line-height: 1.2em;
    list-style: none;
    color: #555555; }
    .page__content ul > li::before {
      content: '';
      position: absolute;
      top: 11px;
      left: -20px;
      width: 10px;
      height: 0;
      border-bottom: 1px solid #cccccc; }
    .page__content ul > li ul {
      margin-top: 0.5rem; }
      .page__content ul > li ul > li::before {
        top: 0.375rem;
        height: 0.5rem;
        border-left: 1px solid #cccccc; }
  .page__content ul.ticks > li {
    line-height: 1.135em; }
    .page__content ul.ticks > li::before {
      content: '';
      position: absolute;
      top: 7px;
      height: 6px;
      border-left: 2px solid #ffa000;
      border-bottom: 2px solid #ffa000;
      -webkit-transform: rotate(-45deg);
          -ms-transform: rotate(-45deg);
              transform: rotate(-45deg); }

.page__content p {
  margin-bottom: 30px; }
  .page__content p:empty {
    margin: 0; }
  .page__content p a {
    color: inherit;
    text-decoration: underline; }
    .page__content p a:hover {
      text-decoration: none; }
    .page__content p a.button, .page__content p a.button__edit {
      text-decoration: none; }

.dropdown {
  position: relative;
  display: block;
  margin-bottom: 10px;
  padding: 0;
  border: 1px solid #e0e0e0;
  background-color: #ffffff;
  -webkit-transition: .3s;
  transition: .3s; }
  .dropdown__title {
    position: relative;
    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;
    -webkit-align-content: center;
        -ms-flex-line-pack: center;
            align-content: center;
    min-height: 78px;
    margin: 0;
    padding: 16px 50px 16px 30px;
    white-space: normal;
    -webkit-transition: .3s;
    transition: .3s; }
    @media print, screen and (min-width: 60em) {
      .dropdown__title {
        padding: 16px 30px; } }
    .dropdown__title h3 {
      margin: 0;
      font-size: 1.3125rem;
      font-weight: 100;
      line-height: 21px;
      text-transform: uppercase;
      letter-spacing: .09em;
      text-decoration: none;
      color: #222222; }
      @media print, screen and (min-width: 60em) {
        .dropdown__title h3 {
          font-size: 1.3125rem;
          line-height: 21px; } }
      .dropdown__title h3 strong {
        font-weight: 400; }
      .dropdown__title h3 small {
        display: block;
        font-size: 1.0625rem;
        line-height: 17px;
        color: inherit; }
    .dropdown__title .close {
      position: absolute;
      top: 50%;
      right: 20px;
      -webkit-transform: rotate(-45deg) translateY(-50%);
          -ms-transform: rotate(-45deg) translateY(-50%);
              transform: rotate(-45deg) translateY(-50%);
      -webkit-transform-origin: 50%;
          -ms-transform-origin: 50%;
              transform-origin: 50%;
      color: #222222;
      -webkit-transition: .3s;
      transition: .3s; }
    .dropdown__title::before {
      content: '';
      visibility: hidden;
      position: absolute;
      top: 50%;
      left: -2px;
      width: 3px;
      height: 0;
      background-color: #ffa000;
      border-top: 6px solid #ffffff;
      border-bottom: 6px solid #ffffff;
      -webkit-transform: translateY(-50%);
          -ms-transform: translateY(-50%);
              transform: translateY(-50%);
      -webkit-transition: .3s;
      transition: .3s; }
    .dropdown__title:hover::before {
      visibility: visible;
      height: calc(100% - 20px); }
    .dropdown__title:hover .close {
      color: #ffa000; }
    .dropdown__title .icon-32 {
      margin: 0 25px 0 0; }
  .dropdown__content {
    position: relative;
    display: none;
    margin: 0;
    padding: 30px;
    padding-bottom: 40px;
    -webkit-transition: margin .3s;
    transition: margin .3s; }
    .dropdown__content::before {
      content: '';
      position: absolute;
      top: 0;
      left: 30px;
      width: 30px;
      border-top: 1px solid #e0e0e0;
      -webkit-transition: left .3s;
      transition: left .3s; }
    .dropdown__content::after {
      content: '';
      display: block;
      clear: both; }
    .dropdown__content .alignright {
      display: block;
      margin-bottom: 17px; }
      @media print, screen and (min-width: 60em) {
        .dropdown__content .alignright {
          display: inline-block;
          margin-top: -20px;
          margin-bottom: -27px; } }
    .dropdown__content .button, .dropdown__content .button__edit,
    .dropdown__content .more-link {
      margin-top: 10px; }
  .dropdown.job-offer .dropdown__title h3 {
    font-size: 1.5rem;
    font-weight: 300;
    line-height: 24px; }
    .dropdown.job-offer .dropdown__title h3 small {
      font-weight: 100; }
  .dropdown.is-active {
    position: relative;
    z-index: 1020;
    margin: -11px;
    -webkit-box-shadow: 0 10px 40px 10px #e0e0e0;
            box-shadow: 0 10px 40px 10px #e0e0e0; }
    .dropdown.is-active .dropdown__title {
      margin: 11px; }
      .dropdown.is-active .dropdown__title .close {
        right: 26px;
        -webkit-transform: rotate(0deg) translateY(-50%);
            -ms-transform: rotate(0deg) translateY(-50%);
                transform: rotate(0deg) translateY(-50%); }
      .dropdown.is-active .dropdown__title::before {
        visibility: visible;
        left: -12px;
        height: calc(100% - 32px);
        border-top: 0 solid #ffffff;
        border-bottom: 0 solid #ffffff; }
      .dropdown.is-active .dropdown__title::after {
        width: 40px; }
    .dropdown.is-active .dropdown__content {
      margin: 0 10px; }
  .dropdown.has-icon .dropdown__content {
    padding-left: 86px; }
    .dropdown.has-icon .dropdown__content::before {
      left: 86px; }

.button__edit {
  padding-right: 20px;
  border-color: #e0e0e0;
  background: #e0e0e0; }
  .button__edit:not(:first-child) {
    margin-left: 20px; }
  .button__edit::after {
    display: none; }

.icon-16, .icon-24, .icon-32, .icon-48, .icon-72 {
  display: inline-block;
  color: #000000;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round; }

.icon-16 {
  width: 16px;
  height: 16px; }

.icon-32 {
  width: 32px;
  height: 32px; }

.icon-48 {
  width: 48px;
  height: 48px; }

.icon-72 {
  width: 72px;
  height: 72px; }

.content-text {
  width: 100%;
  padding: 0 20px; }
  @media screen and (max-width: 41.8125em) {
    .content-text {
      padding: 0 5px; } }
  @media screen and (min-width: 60em) and (max-width: 74.9375em) {
    .content-text {
      padding: 0; } }
  @media screen and (max-width: 41.8125em) {
    .content-text > .row > .columns:first-child {
      -webkit-box-ordinal-group: 3;
      -webkit-order: 2;
          -ms-flex-order: 2;
              order: 2; } }

@media screen and (max-width: 41.8125em) {
  .small-text-center {
    text-align: center; } }

blockquote {
  position: relative;
  margin: 2em 0 2em 14px;
  padding: 0 0 0 45px;
  border-left: 1px solid #cccccc; }
  blockquote::before {
    content: '';
    min-height: 35px;
    min-width: 35px;
    background-image: url("../../dist/images/icons/quote.png");
    background-position: left top;
    background-repeat: no-repeat;
    position: absolute;
    left: -2px;
    top: 25px;
    margin-left: -15px;
    margin-top: -25px;
    background-color: #ffffff; }
  blockquote p {
    font-weight: 300;
    font-size: 1.3125rem;
    line-height: 28px;
    letter-spacing: .025em;
    color: #222222;
    font-family: Malleable; }
    blockquote p:last-child {
      margin: 0; }
  blockquote b, blockquote strong, blockquote em {
    font-weight: 400; }
  blockquote .icon-32 {
    position: absolute;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    left: -17px;
    padding-top: 7px;
    padding-bottom: 10px;
    color: #ffa000;
    background: #ffffff; }
  blockquote img {
    position: absolute;
    left: -24px;
    width: 48px;
    border-bottom: 15px solid #ffffff;
    border-top: 2px solid #ffffff; }
  blockquote .author {
    position: relative;
    margin-top: 20px;
    color: #000000;
    font-weight: 600;
    line-height: 1; }
    blockquote .author::before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: -47px;
      display: block;
      width: 3px;
      background: #000000; }

.pagination__bottom {
  width: 100%;
  margin-top: 60px;
  padding-top: 20px;
  border-top: 1px solid #e0e0e0; }
  .pagination__bottom .row .columns {
    padding: 0; }

@media print, screen and (min-width: 41.875em) {
  .pagination__bottom .arrow-right, .pagination__top .arrow-right {
    float: right; } }

.pagination__bottom::after, .pagination__top::after {
  content: '';
  display: block;
  clear: both; }

.gallery {
  margin: 30px 0; }
  .gallery__wrapper {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    margin: -10px; }
  .gallery__item {
    margin: 10px;
    border: 0; }

.width__control {
  width: 100vw;
  position: fixed;
  bottom: -10px; }

.page-numbers {
  margin: 0.3125rem auto 0;
  text-align: center; }
  .page-numbers li {
    display: inline-block;
    list-style: none; }
  .page-numbers .page-numbers {
    padding: 0 .4em;
    font-family: Malleable;
    font-size: 1rem;
    font-weight: 300; }
  .page-numbers .prev,
  .page-numbers .next {
    display: none; }
  .page-numbers .current {
    position: relative;
    font-weight: 500; }
    .page-numbers .current::before {
      content: '';
      position: absolute;
      left: 0;
      width: 100%;
      height: 3px;
      background-color: #ffa000;
      top: -30px; }

.show-only.is-admin {
  padding: 30px 40px;
  background-color: #f5f5f5; }
  .show-only.is-admin h3:nth-child(1), .show-only.is-admin h4:nth-child(2) {
    margin-bottom: 0;
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: .09em; }
    .show-only.is-admin h3:nth-child(1) b, .show-only.is-admin h3:nth-child(1) strong, .show-only.is-admin h4:nth-child(2) b, .show-only.is-admin h4:nth-child(2) strong {
      font-weight: 400;
      color: #222222; }
  .show-only.is-admin h4:nth-child(2) {
    margin-bottom: 30px;
    font-size: 1.0625rem;
    color: #555555; }
  .show-only.is-admin p:last-child {
    margin-bottom: 0; }

@-webkit-keyframes cursor_blink {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

@keyframes cursor_blink {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyIsImNvbXBvbmVudHMvZm91bmRhdGlvbi9fX2ZvdW5kYXRpb24uc2NzcyIsImNvbXBvbmVudHMvZm91bmRhdGlvbi9vdmVyd3JpdGUvX2dsb2JhbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19taXhpbnMuc2NzcyIsImNvbXBvbmVudHMvZm91bmRhdGlvbi9vdmVyd3JpdGUvX2J1dHRvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsImNvbXBvbmVudHMvZm91bmRhdGlvbi9vdmVyd3JpdGUvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9fY2xhc3Nlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvX3NldHRpbmdzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19rZXlmcmFtZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3NsaWRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy90cmFuc2l0aW9ucy9fZmFkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvZWZmZWN0cy9faGluZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19oaW5nZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vdGlvbi11aS9zcmMvdHJhbnNpdGlvbnMvX3pvb20uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb3Rpb24tdWkvc3JjL3RyYW5zaXRpb25zL19zcGluLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy91dGlsL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fZmxleC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19jb2x1bW4uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fY2hlY2tib3guc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19hY2NvcmRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYWNjb3JkaW9uLW1lbnUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYmFkZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnJlYWRjcnVtYnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2NhbGxvdXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fY2xvc2UtYnV0dG9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX21lbnUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fbWVudS1pY29uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2RyaWxsZG93bi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19kcm9wZG93bi1tZW51LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19sYWJlbC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19tZWRpYS1vYmplY3Quc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fb2ZmLWNhbnZhcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19vcmJpdC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Byb2dyZXNzLWJhci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19zbGlkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fc3RpY2t5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3N3aXRjaC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190YWJsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19jb2xvci5zY3NzIiwiY29tcG9uZW50cy9mb3VuZGF0aW9uL292ZXJ3cml0ZS9fdGFicy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL190aHVtYm5haWwuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdGl0bGUtYmFyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdG9wLWJhci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2Zsb2F0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsImNvbXBvbmVudHMvcHJpc20vX19wcmlzbS5zY3NzIiwibGF5b3V0L19tZW51LnNjc3MiLCJsYXlvdXQvcGFnZXMvX2hvbWVwYWdlLnNjc3MiLCJsYXlvdXQvcGFnZXMvX3NpbmdsZS1wb3N0LnNjc3MiLCJsYXlvdXQvX3NpZGViYXIuc2NzcyIsImxheW91dC9fZm9vdGVyLnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L193aWRnZXRzLnNjc3MiLCJsYXlvdXQvX3NvY2lhbG1lZGlhLnNjc3MiLCJsYXlvdXQvX2dsb2JhbC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0VqQjs7Ozs7R0FLRztBQ3dMSDtFQUVFLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLFdBQVc7RUFDWCxVQUFVO0VBQ1YsaUJBL0dlO0VBZ0hmLGVBQWUsRUFDaEI7RUZ6TEM7SUdrS0UsV0FBVyxFQUNaOztBRHlCSDtFQUNDLDBCQUEwQixFQUMxQjs7QUFFRDtFQUNDLHlCQUF5QixFQUN6Qjs7QUV1RUQ7RUFHRSxjQUFjLEVBbUNkO0VDbktJO0lENkhOO01BTUcsZUFBZTtNQUNmLG1CQUFtQjtNQUNuQix3QkV4TW1CO01GeU1uQix1QkduSzJCO01Ib0szQixxQkUxTW1CO01GMk1uQix1QkUzTW1CO01GNE1uQiwwQkU1TW1CO01GNk1uQiwwQkFBMEI7TUFDMUIsZUdsUGM7TUhtUGQsaUJBQWlCO01BQ2pCLFVBQVUsRUFzQlgsRUFBQTtFQ25LSTtJRDZITjtNQW1CSSxvQkFBb0IsRUFtQnRCLEVBQUE7RUF0Q0Y7SUF3QkcsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixTQUFTO0lBQ1QsZ0JFM05tQjtJRjRObkIsZ0JFNU5tQjtJRjZObkIsb0NBQXFCO1FBQXJCLGdDQUFxQjtZQUFyQiw0QkFBcUI7SUFDckIsd0VBQWUsRUFDZjtFQS9CSDtJQW1DRyxpQkFBaUI7SUFDakIsZUFBZSxFQUNmOztBQXJDSDtFQXlDRSxpQkFBaUI7RUFDakIsbUJBQW1CLEVBWW5CO0VBdERGO0lBNkNHLFFBQVE7SUFDUiw2QkFBcUI7SUFBckIscUJBQXFCLEVBQ3JCO0VBL0NIO0lBbURJLGlCRW5Qa0IsRUZvUGxCOztBQXBESjtFQXlERSxrQkFB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O1VBRWpCLDRCQUZpQixFRWhCaEI7O0FKbEJIO0VBZEEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLGlDQUZpQjtNQUVqQiw2QkFGaUI7VUFFakIseUJBRmlCO0VDdkJmLHdEQUF3QztFQUF4QyxnREFBd0M7RUFBeEMsd0NBQXdDO0VBQXhDLDJEQUF3QztFQUcxQyxvQ0FBNEI7VUFBNUIsNEJBQTRCLEVDUjNCOztBSk5IO0VFb0NFLHFDQUZpQjtNQUVqQixpQ0FGaUI7VUFFakIsNkJBRmlCLEVFaEJoQjs7QUpqQkg7RUFmQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsaUNBRmlCO01BRWpCLDZCQUZpQjtVQUVqQix5QkFGaUI7RUN2QmYsd0RBQXdDO0VBQXhDLGdEQUF3QztFQUF4Qyx3Q0FBd0M7RUFBeEMsMkRBQXdDO0VBRzFDLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUNSM0I7O0FKTEg7RUVtQ0UscUNBRmlCO01BRWpCLGlDQUZpQjtVQUVqQiw2QkFGaUIsRUVoQmhCOztBSmRIO0VBbEJBLG1DQ2tCYztVRGxCZCwyQkNrQmM7RURqQmQsMkNDaUNlO1VEakNmLG1DQ2lDZTtFQ2dCYixXRmhDa0M7RUtBbEMscUNBQTZCO0VBQTdCLDZCQUE2QixFREU1Qjs7QUpGSDtFRWdDRSxXRmhDcUMsRUljcEM7O0FKYkg7RUFuQkEsbUNDa0JjO1VEbEJkLDJCQ2tCYztFRGpCZCwyQ0NpQ2U7VURqQ2YsbUNDaUNlO0VDZ0JiLFdGL0JrQztFS0RsQyxxQ0FBNkI7RUFBN0IsNkJBQTZCLEVERTVCOztBSkRIO0VFK0JFLFdGL0JxQyxFSWFwQzs7QUpWSDtFQXRCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsdURJckNZO1VKcUNaLCtDSXJDWTtFSnFDWiw4QkFGaUI7TUFFakIsMEJBRmlCO1VBRWpCLHNCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKRUg7RUU0QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpUSDtFQXZCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsdURJcENjO1VKb0NkLCtDSXBDYztFSm9DZCxnQ0FGaUI7TUFFakIsNEJBRmlCO1VBRWpCLHdCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKR0g7RUUyQkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpSSDtFQXhCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsc0RJbkNlO1VKbUNmLDhDSW5DZTtFSm1DZixpQ0FGaUI7TUFFakIsNkJBRmlCO1VBRWpCLHlCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKSUg7RUUwQkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpQSDtFQXpCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsc0RJbENhO1VKa0NiLDhDSWxDYTtFSmtDYiwrQkFGaUI7TUFFakIsMkJBRmlCO1VBRWpCLHVCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKS0g7RUV5QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpOSDtFQTFCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsdURJckNZO1VKcUNaLCtDSXJDWTtFSnFDWixpQ0FGaUI7TUFFakIsNkJBRmlCO1VBRWpCLHlCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKTUg7RUV3QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpMSDtFQTNCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsdURJcENjO1VKb0NkLCtDSXBDYztFSm9DZCxpQ0FGaUI7TUFFakIsNkJBRmlCO1VBRWpCLHlCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBMkIsRUhONUI7O0FKT0g7RUV1QkUsb0RJVnNDO1VKVXRDLDRDSVZzQztFQ0pwQyxXQUEyQixFSEo1Qjs7QUpKSDtFQTVCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4Qyw4QkFGaUI7TUFFakIsMEJBRmlCO1VBRWpCLHNCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKUUg7RUVzQkUsdURJckNZO1VKcUNaLCtDSXJDWTtFQ3VCVixXQUE4QixFSEovQjs7QUpISDtFQTdCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4QyxnQ0FGaUI7TUFFakIsNEJBRmlCO1VBRWpCLHdCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKU0g7RUVxQkUsdURJcENjO1VKb0NkLCtDSXBDYztFQ3NCWixXQUE4QixFSEovQjs7QUpGSDtFQTlCQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4QyxpQ0FGaUI7TUFFakIsNkJBRmlCO1VBRWpCLHlCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKVUg7RUVvQkUsc0RJbkNlO1VKbUNmLDhDSW5DZTtFQ3FCYixXQUE4QixFSEovQjs7QUpESDtFQS9CQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4QywrQkFGaUI7TUFFakIsMkJBRmlCO1VBRWpCLHVCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKV0g7RUVtQkUsc0RJbENhO1VKa0NiLDhDSWxDYTtFQ29CWCxXQUE4QixFSEovQjs7QUpBSDtFQWhDQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4QyxpQ0FGaUI7TUFFakIsNkJBRmlCO1VBRWpCLHlCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FBOEIsRUhOL0I7O0FKWUg7RUVrQkUsdURJckNZO1VKcUNaLCtDSXJDWTtFQ3VCVixXQUE4QixFSEovQjs7QUpDSDtFQWpDQSxtQ0NrQmM7VURsQmQsMkJDa0JjO0VEakJkLDJDQ2lDZTtVRGpDZixtQ0NpQ2U7RUNnQmIsb0RJUndDO1VKUXhDLDRDSVJ3QztFSlF4QyxpQ0FGaUI7TUFFakIsNkJBRmlCO1VBRWpCLHlCQUZpQjtFS3ZCZix3REFBd0M7RUFBeEMsZ0RBQXdDO0VBQXhDLHdDQUF3QztFQUF4QywyREFBd0M7RUFDeEMsV0FB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RUFpRWhCLCtCQWpFZ0I7TUFpRWhCLDJCQWpFZ0I7VUFpRWhCLHVCQWpFZ0IsRUg2TGI7O0FBRkQ7RUcxSEYsNkJBaEVnQztFQWdFaEMsK0JBaEVnQztFQWdFaEMsdUNBaEVnQztNQWdFaEMsbUNBaEVnQztVQWdFaEMsK0JBaEVnQyxFSDRMN0I7O0FBTUM7RUFDRSxvQkl6TGdCO0VKeUxoQiwyQkl6TGdCO01KeUxoQix1Qkl6TGdCO1VKeUxoQixtQkl6TGdCO0VKMExoQixvQkkxTGdCLEVKMkxqQjs7QUFLRDtFS25MSixnQkRoQnNCLEVKcU1qQjs7QUFWRDtFQUNFLG9CSXpMZ0I7RUp5TGhCLDRCSXpMZ0I7TUp5TGhCLHdCSXpMZ0I7VUp5TGhCLG9CSXpMZ0I7RUowTGhCLHFCSTFMZ0IsRUoyTGpCOztBQUtEO0VLbkxKLHNCRGJzQixFSmtNakI7O0FBVkQ7RUFDRSxvQkl6TGdCO0VKeUxoQixzQkl6TGdCO01KeUxoQixrQkl6TGdCO1VKeUxoQixjSXpMZ0I7RUowTGhCLGVJMUxnQixFSjJMakI7O0FBS0Q7RUtuTEosdUJEYnNCLEVKa01qQjs7QUFWRDtFQUNFLG9CSXpMZ0I7RUp5TGhCLDRCSXpMZ0I7TUp5TGhCLHdCSXpMZ0I7VUp5TGhCLG9CSXpMZ0I7RUowTGhCLHFCSTFMZ0IsRUoyTGpCOztBQUtEO0VLbkxKLGlCRGJzQixFSmtNakI7O0FBVkQ7RUFDRSxvQkl6TGdCO0VKeUxoQiw0Qkl6TGdCO01KeUxoQix3Qkl6TGdCO1VKeUxoQixvQkl6TGdCO0VKMExoQixxQkkxTGdCLEVKMkxqQjs7QUFLRDtFS25MSix1QkRic0IsRUprTWpCOztBQVZEO0VBQ0Usb0JJekxnQjtFSnlMaEIsc0JJekxnQjtNSnlMaEIsa0JJekxnQjtVSnlMaEIsY0l6TGdCO0VKMExoQixlSTFMZ0IsRUoyTGpCOztBQUtEO0VLbkxKLHVCRGJzQixFSmtNakI7O0FBVkQ7RUFDRSxvQkl6TGdCO0VKeUxoQiw0Qkl6TGdCO01KeUxoQix3Qkl6TGdCO1VKeUxoQixvQkl6TGdCO0VKMExoQixxQkkxTGdCLEVKMkxqQjs7QUFLRDtFS25MSixpQkRic0IsRUprTWpCOztBQVZEO0VBQ0Usb0JJekxnQjtFSnlMaEIsNEJJekxnQjtNSnlMaEIsd0JJekxnQjtVSnlMaEIsb0JJekxnQjtFSjBMaEIscUJJMUxnQixFSjJMakI7O0FBS0Q7RUtuTEosdUJEYnNCLEVKa01qQjs7QUFWRDtFQUNFLG9CSXpMZ0I7RUp5TGhCLHNCSXpMZ0I7TUp5TGhCLGtCSXpMZ0I7VUp5TGhCLGNJekxnQjtFSjBMaEIsZUkxTGdCLEVKMkxqQjs7QUFLRDtFS25MSix1QkRic0IsRUprTWpCOztBQVZEO0VBQ0Usb0JJekxnQjtFSnlMaEIsNEJJekxnQjtNSnlMaEIsd0JJekxnQjtVSnlMaEIsb0JJekxnQjtFSjBMaEIscUJJMUxnQixFSjJMakI7O0FBS0Q7RUtuTEosaUJEYnNCLEVKa01qQjs7QUFWRDtFQUNFLG9CSXpMZ0I7RUp5TGhCLDRCSXpMZ0I7TUp5TGhCLHdCSXpMZ0I7VUp5TGhCLG9CSXpMZ0I7RUowTGhCLHFCSTFMZ0IsRUoyTGpCOztBQUtEO0VLbkxKLHVCRGJzQixFSmtNakI7O0FBVkQ7RUFDRSxvQkl6TGdCO0VKeUxoQix1Qkl6TGdCO01KeUxoQixtQkl6TGdCO1VKeUxoQixlSXpMZ0I7RUowTGhCLGdCSTFMZ0IsRUoyTGpCOztBQUtEO0VLbkxKLHVCRGJzQixFSmtNakI7O0FBS0Q7RUczSkosNkJIMEpnQjtFRzFKaEIsaUJIMEpnQjtNRzFKaEIsa0JIMEpnQjtVRzFKaEIsU0gwSmdCLEVBR1g7O0FBRkQ7RUczSkosNkJIMEpnQjtFRzFKaEIsaUJIMEpnQjtNRzFKaEIsa0JIMEpnQjtVRzFKaEIsU0gwSmdCLEVBR1g7O0FBRkQ7RUczSkosNkJIMEpnQjtFRzFKaEIsaUJIMEpnQjtNRzFKaEIsa0JIMEpnQjtVRzFKaEIsU0gwSmdCLEVBR1g7O0FBRkQ7RUczSkosNkJIMEpnQjtFRzFKaEIsaUJIMEpnQjtNRzFKaEIsa0JIMEpnQjtVRzFKaEIsU0gwSmdCLEVBR1g7O0FBRkQ7RUczSkosNkJIMEpnQjtFRzFKaEIsaUJIMEpnQjtNRzFKaEIsa0JIMEpnQjtVRzFKaEIsU0gwSmdCLEVBR1g7O0FBRkQ7RUczSkosNkJIMEpnQjtFRzFKaEIsaUJIMEpnQjtNRzFKaEIsa0JIMEpnQjtVRzFKaEIsU0gwSmdCLEVBR1g7O0FBS0Q7RUFuSUosd0JBQWdCO01BQWhCLG9CQUFnQjtVQUFoQixnQkFBZ0IsRUFxSVg7RUFuSUg7SUFHQSxvQkFGZ0I7SUFFaEIsdUJBRmdCO1FBRWhCLG1CQUZnQjtZQUVoQixlQUZnQjtJQUdoQixnQkFIZ0IsRUFJakI7O0FBNEhHO0VBbklKLHdCQUFnQjtNQUFoQixvQkFBZ0I7VUFBaEIsZ0JBQWdCLEVBcUlYO0VBbklIO0lBR0Esb0JBRmdCO0lBRWhCLHNCQUZnQjtRQUVoQixrQkFGZ0I7WUFFaEIsY0FGZ0I7SUFHaEIsZUFIZ0IsRUFJakI7O0FBNEhHO0VBbklKLHdCQUFnQjtNQUFoQixvQkFBZ0I7VUFBaEIsZ0JBQWdCLEVBcUlYO0VBbklIO0lBR0Esb0JBRmdCO0lBRWhCLDRCQUZnQjtRQUVoQix3QkFGZ0I7WUFFaEIsb0JBRmdCO0lBR2hCLHFCQUhnQixFQUlqQjs7QUE0SEc7RUFuSUosd0JBQWdCO01BQWhCLG9CQUFnQjtVQUFoQixnQkFBZ0IsRUFxSVg7RUFuSUg7SUFHQSxvQkFGZ0I7SUFFaEIsc0JBRmdCO1FBRWhCLGtCQUZnQjtZQUVoQixjQUZnQjtJQUdoQixlQUhnQixFQUlqQjs7QUE0SEc7RUFuSUosd0JBQWdCO01BQWhCLG9CQUFnQjtVQUFoQixnQkFBZ0IsRUFxSVg7RUFuSUg7SUFHQSxvQkFGZ0I7SUFFaEIsc0JBRmdCO1FBRWhCLGtCQUZnQjtZQUVoQixjQUZnQjtJQUdoQixlQUhnQixFQUlqQjs7QUE0SEc7RUFuSUosd0JBQWdCO01BQWhCLG9CQUFnQjtVQUFoQixnQkFBZ0IsRUFxSVg7RUFuSUg7SUFHQSxvQkFGZ0I7SUFFaEIsNEJBRmdCO1FBRWhCLHdCQUZnQjtZQUVoQixvQkFGZ0I7SUFHaEIscUJBSGdCLEVBSWpCOztBQTRIRztFQW5JSix3QkFBZ0I7TUFBaEIsb0JBQWdCO1VBQWhCLGdCQUFnQixFQXFJWDtFQW5JSDtJQUdBLG9CQUZnQjtJQUVoQiw0QkFGZ0I7UUFFaEIsd0JBRmdCO1lBRWhCLG9CQUZnQjtJQUdoQixxQkFIZ0IsRUFJakI7O0FBNEhHO0VBbklKLHdCQUFnQjtNQUFoQixvQkFBZ0I7VUFBaEIsZ0JBQWdCLEVBcUlYO0VBbklIO0lBR0Esb0JBRmdCO0lBRWhCLHdCQUZnQjtRQUVoQixvQkFGZ0I7WUFFaEIsZ0JBRmdCO0lBR2hCLGlCQUhnQixFQUlqQjs7QUEyS0M7RUVwUUEsaUJBRmtCO0VBR2xCLGdCQUhrQixFRnVRMEI7O0FBRzVDO0VFeFFBLHdCQUZrQjtFQUdsQix1QkFIa0IsRUYyUW1DOztBZHBJbkQ7RWMwREE7SUFDRSxvQkl6TGdCO0lKeUxoQiwyQkl6TGdCO1FKeUxoQix1Qkl6TGdCO1lKeUxoQixtQkl6TGdCO0lKMExoQixvQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLGdCRGhCc0IsRUpxTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHNCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLHNCSXpMZ0I7UUp5TGhCLGtCSXpMZ0I7WUp5TGhCLGNJekxnQjtJSjBMaEIsZUkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosaUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQixzQkl6TGdCO1FKeUxoQixrQkl6TGdCO1lKeUxoQixjSXpMZ0I7SUowTGhCLGVJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLGlCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsc0JJekxnQjtRSnlMaEIsa0JJekxnQjtZSnlMaEIsY0l6TGdCO0lKMExoQixlSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSixpQkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLHVCSXpMZ0I7UUp5TGhCLG1CSXpMZ0I7WUp5TGhCLGVJekxnQjtJSjBMaEIsZ0JJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBS0Q7SUczSkosNkJIMEpnQjtJRzFKaEIsaUJIMEpnQjtRRzFKaEIsa0JIMEpnQjtZRzFKaEIsU0gwSmdCLEVBR1g7RUFGRDtJRzNKSiw2QkgwSmdCO0lHMUpoQixpQkgwSmdCO1FHMUpoQixrQkgwSmdCO1lHMUpoQixTSDBKZ0IsRUFHWDtFQUZEO0lHM0pKLDZCSDBKZ0I7SUcxSmhCLGlCSDBKZ0I7UUcxSmhCLGtCSDBKZ0I7WUcxSmhC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LEVBQ2hCLEVBQUE7O0FBSUM7RUFFSSxvQkFBMkI7RUFBM0IsdUJBQTJCO01BQTNCLG1CQUEyQjtVQUEzQixlQUEyQixFQUs1QjtFZHpITDtJY2tIRTtNQUtNLG9CQXZORTtNQXVORixzQkF2TkU7VUF1TkYsa0JBdk5FO2NBdU5GLGNBdk5FLEVBeU5MLEVBQUE7O0FkekhMO0VjK0hGO0lFcFFBLGlCQUZrQjtJQUdsQixnQkFIa0IsRUZ1UTBCO0VBRzVDO0lFeFFBLGlCQUZrQjtJQUdsQixnQkFIa0IsRUYyUW1DLEVBQUE7O0FkcEluRDtFYzBEQTtJQUNFLG9CSXpMZ0I7SUp5TGhCLDJCSXpMZ0I7UUp5TGhCLHVCSXpMZ0I7WUp5TGhCLG1CSXpMZ0I7SUowTGhCLG9CSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosZ0JEaEJzQixFSnFNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosc0JEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsc0JJekxnQjtRSnlMaEIsa0JJekxnQjtZSnlMaEIsY0l6TGdCO0lKMExoQixlSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSixpQkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLHNCSXpMZ0I7UUp5TGhCLGtCSXpMZ0I7WUp5TGhCLGNJekxnQjtJSjBMaEIsZUkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosaUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQixzQkl6TGdCO1FKeUxoQixrQkl6TGdCO1lKeUxoQixjSXpMZ0I7SUowTGhCLGVJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLGlCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsdUJJekxnQjtRSnlMaEIsbUJJekxnQjtZSnlMaEIsZUl6TGdCO0lKMExoQixnQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFLRDtJRzNKSiw2QkgwSmdCO0lHMUpoQixpQkgwSmdCO1FHMUpoQixrQkgwSmdCO1lHMUpoQixTSDBKZ0IsRUFHWDtFQUZEO0lHM0pKLDZCSDBKZ0I7SUcxSmhCLGlCSDBKZ0I7UUcxSmhCLGtCSDBKZ0I7WUcxSmhCLFNIMEpnQixFQUdYO0VBRkQ7SUczSkosNkJIMEpnQjtJRzFKaEIsaUJIMEpnQjtRRzFKaEIsa0JIMEpnQjtZRzFKaEIsU0gwSmdCLEVBR1g7RUFGRDtJRzNKSiw2QkgwSmdCO0lHMUpoQixpQkgwSmdCO1FH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bUJBQTJCO1VBQTNCLGVBQTJCLEVBSzVCO0VkekhMO0lja0hFO01BS00sb0JBdk5FO01BdU5GLHNCQXZORTtVQXVORixrQkF2TkU7Y0F1TkYsY0F2TkUsRUF5TkwsRUFBQTs7QWR6SEw7RWMrSEY7SUVwUUEsaUJBRmtCO0lBR2xCLGdCQUhrQixFRnVRMEI7RUFHNUM7SUV4UUEsaUJBRmtCO0lBR2xCLGdCQUhrQixFRjJRbUMsRUFBQTs7QWQvSG5EO0VjcURBO0lBQ0Usb0JJekxnQjtJSnlMaEIsMkJJekxnQjtRSnlMaEIsdUJJekxnQjtZSnlMaEIsbUJJekxnQjtJSjBMaEIsb0JJMUxnQixFSjJMakI7RUFLRDtJS25MSixnQkRoQnNCLEVKcU1qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSixzQkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQixzQkl6TGdCO1FKeUxoQixrQkl6TGdCO1lKeUxoQixjSXpMZ0I7SUowTGhCLGVJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLGlCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsc0JJekxnQjtRSnlMaEIsa0JJekxnQjtZSnlMaEIsY0l6TGdCO0lKMExoQixlSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSixpQkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLHNCSXpMZ0I7UUp5TGhCLGtCSXpMZ0I7WUp5TGhCLGNJekxnQjtJSjBMaEIsZUkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosaUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQix1Qkl6TGdCO1FKeUxoQixtQkl6TGdCO1lKeUxoQixlSXpMZ0I7SUowTGhCLGdCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQUtEO0lHM0pKLDZCSDBKZ0I7SUcxSmhCLGlCSDBKZ0I7UUcxSmhCLGtCSDBKZ0I7WUcxSmhCLFNIMEpnQixFQUdYO0VBRkQ7SUczSkosNkJIMEpnQjtJRzFKaEIsaUJIMEpnQjtRRzFKaEIsa0JIMEpnQjtZRzFKaEIsU0gwSmdCLEVBR1g7RUFGRDtJRzNKSiw2QkgwSmdCO0lHMUpoQixpQkgwSmdCO1FHMUpoQixrQkgwSmdCO1lHMUpoQixTSDBKZ0IsRUFHWDtFQUZEO0lHM0pKLDZCSDBKZ0I7SUcxSmhCLGlCSDBKZ0I7UUcxSmhCLGtCSDBKZ0I7WUcxSmhCLFNIMEpnQixFQUdYO0VBRkQ7SUczSkosNkJIMEpn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TUF1TkYsc0JBdk5FO1VBdU5GLGtCQXZORTtjQXVORixjQXZORSxFQXlOTCxFQUFBOztBZHBITDtFYzBIRjtJRXBRQSxpQkFGa0I7SUFHbEIsZ0JBSGtCLEVGdVEwQjtFQUc1QztJRXhRQSxpQkFGa0I7SUFHbEIsZ0JBSGtCLEVGMlFtQyxFQUFBOztBZC9IbkQ7RWNxREE7SUFDRSxvQkl6TGdCO0lKeUxoQiwyQkl6TGdCO1FKeUxoQix1Qkl6TGdCO1lKeUxoQixtQkl6TGdCO0lKMExoQixvQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLGdCRGhCc0IsRUpxTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHNCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLHNCSXpMZ0I7UUp5TGhCLGtCSXpMZ0I7WUp5TGhCLGNJekxnQjtJSjBMaEIsZUkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosaUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQixzQkl6TGdCO1FKeUxoQixrQkl6TGdCO1lKeUxoQixjSXpMZ0I7SUowTGhCLGVJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLGlCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLDRCSXpMZ0I7UUp5TGhCLHdCSXpMZ0I7WUp5TGhCLG9CSXpMZ0I7SUowTGhCLHFCSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsc0JJekxnQjtRSnlMaEIsa0JJekxnQjtZSnlMaEIsY0l6TGdCO0lKMExoQixlSTFMZ0IsRUoyTGpCO0VBS0Q7SUtuTEosdUJEYnNCLEVKa01qQjtFQVZEO0lBQ0Usb0JJekxnQjtJSnlMaEIsNEJJekxnQjtRSnlMaEIsd0JJekxnQjtZSnlMaEIsb0JJekxnQjtJSjBMaEIscUJJMUxnQixFSjJMakI7RUFLRDtJS25MSixpQkRic0IsRUprTWpCO0VBVkQ7SUFDRSxvQkl6TGdCO0lKeUxoQiw0Qkl6TGdCO1FKeUxoQix3Qkl6TGdCO1lKeUxoQixvQkl6TGdCO0lKMExoQixxQkkxTGdCLEVKMkxqQjtFQUtEO0lLbkxKLHVCRGJzQixFSmtNakI7RUFWRDtJQUNFLG9CSXpMZ0I7SUp5TGhCLHVCSXpMZ0I7UUp5TGhCLG1CSXpMZ0I7WUp5TGhCLGVJekxnQjtJSjBMaEIsZ0JJMUxnQixFSjJMakI7RUFLRDtJS25MSix1QkRic0IsRUprTWpCO0VBS0Q7SUczSkosNkJIMEpnQjtJRzFKaEIsaUJIMEpnQjtRRzFKaEIsa0JIMEpnQjtZRzFKaEIsU0gwSmdCLEVBR1g7RUFGRDtJRzNKSiw2QkgwSmdCO0lHMUpoQixpQkgwSmdCO1FHMUpoQixrQkgwSmdCO1lHMUpoQixTSDBKZ0IsRUFHWDtFQUZEO0lHM0pKLDZCSDBKZ0I7SUcxSmhCLGlCSDBKZ0I7UUcxSmhCLGtCSDBKZ0I7WUcxSmhCLFNIMEpnQixFQUdYO0VBRkQ7SUczSkosNkJIMEpnQjtJRzFKaEIsaUJIMEpnQjtRRzFKaEIsa0JIMEpnQjtZRzFKaEIsU0gwSmdCLEVBR1g7RUFGRDtJRzNKSiw2QkgwSmdCO0lHMUpoQixpQkgwSmdCO1FHMUpoQixrQkgwSmdCO1lHMUpoQixTSDBKZ0IsRUFH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QnRNVztFa0I4TVgsY0FBYztFQU9kLHNCbEJwTmdCLEVrQnNObkI7O0FBakNEO0VBSUkscUJuQnZQVTtFbUJtUVYsaUJsQnRNVztFa0I4TVgsY0FBYztFQU9kLHNCbEJwTmdCLEVrQnNObkI7O0FBakNEO0VBSUksbUJuQnZQVTtFbUJtUVYsaUJsQnRNVztFa0I4TVgsY0FBYztFQU9kLHNCbEJwTmdCLEVrQnNObkI7O0FwQmpOSDtFb0JnTEU7SUFJSSxtQm5CdlBVLEVtQm9SYjtFQWpDRDtJQUlJLG9CbkJ2UFUsRW1Cb1JiO0VBakNEO0lBSUksa0JuQnZQVSxFbUJvUmI7RUFqQ0Q7SUFJSSxtQm5CdlBVLEVtQm9SYjtFQWpDRDtJQUlJLGdCbkJ2UFUsRW1Cb1JiO0VBakNEO0lBSUksb0JuQnZQVSxFbUJvUmIsRUFBQTs7QUFNUDtFQUNFLHFCQUFxQjtFQUNyQixlbEJoVWE7RWtCaVViLHNCbEJoTnlCO0VrQmtOekIsZ0JBQWdCLEVBYWpCO0VBbEJEO0lBU0ksZWxCdk4wQixFa0IyTjNCO0VBYkg7SUFnQkksVUFBVSxFQUNYOztBQUlIO0VBQ0UsWUFBWTtFQUVaLGlCbkJsVGtCO0VtQm1UbEIsVUFBVTtFQUNWLHFCbEJuT3lCO0VrQnFPekIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixpQ2xCL1VpQjtFa0JnVmpCLGVBQWUsRUFDaEI7O0FBR0Q7OztFQUdFLG9CbEI3UDBCO0VrQjhQMUIsNkJsQjVPeUI7RWtCNk96QixpQmxCaFFzQixFa0JpUXZCOztBQUdEO0VBQ0UsbUJBQW1CLEVBQ3BCOztBQUdEO0VBQ0UscUJsQnRQc0I7RWtCdVB0QixzQmxCelBrQixFa0IwUG5COztBQUdEO0VBQ0UscUJsQjVQc0IsRWtCNlB2Qjs7QUFHRDtFQUVJLHFCbEJqUTJCO0VrQmtRM0IsaUJBQWlCLEVBQ2xCOztBQUlIO0VBQ0Usb0JsQnZReUIsRWtCNlExQjtFQVBEO0lBSUksc0JsQnhRNkI7SWtCeVE3QixrQmxCaldtQixFa0JrV3BCOztBQUlIO0VBQ0UsaUJsQnRTMEI7RWtCdVMxQix1Q25CMVdrQjtFbUIyV2xCLCtC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LGtCQUwwQjtFQU0xQixpQnZCS29CO0V1QkpwQixnQkFBc0I7RUFFdEIsMEJ0QnJCbUI7RXNCc0JuQixpQnRCSWU7RXNCSGYsMEJ0QmxCYTtFc0JtQmIsdUR0QnBCYTtVc0JvQmIsK0N0QnBCYTtFc0JzQmIscUJ0QnNSeUI7RXNCclJ6QixnQnZCSm9CO0V1QktwQixvQnRCSjJCO0VzQkszQixldEJ6QmE7RXNCNEJYLDRFdEIwUjREO0VzQjFSNUQsb0V0QjBSNEQ7RXNCMVI1RCw0RHRCMFI0RDtFc0IxUjVELHFGdEIwUjREO0VzQnRRNUQseUJBQWlCO0tBQWpCLHNCQUFpQjtVQUFqQixpQkFBaUIsRUFDbEI7RTdCdytERDs7STZCeC9ERSxjQUFjO0lBQ2QsMEJ0QnJDZTtJc0JzQ2YsMEJ0QmxDVztJc0JtQ1gsb0N0QnhDaUI7WXNCd0NqQiw0QnRCeENpQjtJc0IyQ2YsNEV0QitRMEQ7SXNCL1ExRCxvRXRCK1EwRDtJc0IvUTFELDREdEIrUTBEO0lzQi9RMUQscUZ0QitRMEQsRXNCN1E3RDs7QUFXRDtFQUNFLGdCQUFnQixFQUtqQjtFQU5EO0lBSUksYUFBYSxFQUNkOztBQUdIOztFQUlJLGV0QnBFZSxFc0JxRWhCOztBQUxIOztFQUlJLGV0QnBFZSxFc0JxRWhCOztBQUxIOztFQUlJLGV0QnBFZSxFc0JxRWhCOztBQUxIOzs7RUFVSSwwQnRCOUVjO0VzQitFZCxnQnRCOE95QixFc0I3TzFCOztBN0J3K0RMOztFNkJsK0RJLHlCQUFpQjtLQUFqQixzQkFBaUI7VUFBakIsaUJBQWlCO0VBQ2pCLGlCdEJ6RGEsRXNCMERkOztBQUdEO0VBQ0UsK0JBQXVCO1VBQXZCLHVCQUF1QixFQUN4Qjs7QTdCbStESDs7O0U4QmpuRUksaUJ4QjRFa0IsRXdCM0VuQjs7QTlCcW5FSDs7RThCaG5FSSxzQkFBc0I7RUFDdEIseUJBQXlCO0VBRXpCLG9CQUE0QztFQUM1QyxtQnhCa0VrQjtFd0JqRWxCLGlCQUFpQixFQUtsQjtFOUI2bUVEOztJOEIvbUVJLGdCQUFnQixFQUNqQjs7QUFJSDs7RUFFRSxxQkFBNkMsRUFDOUM7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WDtJQWxCUDtNckMxRUEsMEJHM0MwQjtNSDRDMUIsZUdoRGE7TUhpRGIsc0JHN0MwQixFSDhDMUI7RXFDdUVBO0lyQzlFRCwwQkczRGlCO0lINERqQiw2Q0FQbUIsRXFDc0dYO0lBbEJQO01yQzFFQSwwQkczQzBCO01INEMxQixlR2hEYTtNSGlEYixzQkc3QzBCLEVIOEMxQjtFcUN1RUE7SXJDOUVELDBCRzFEZ0I7SUgyRGhCLDZDQVBtQixFcUNzR1g7SUFsQlA7TXJDMUVBLDBCRzNDMEI7TUg0QzFCLGVHaERhO01IaURiLHNCRzdDMEIsRUg4QzFCO0VxQ3VFQTtJckM5RUQsMEJHekRnQjtJSDBEaEIsNkNBUG1CLEVxQ3NHWDtJQWxCUDtNckMxRUEsMEJHM0MwQjtNSDRDMUIsZUdoRGE7TUhpRGIsc0JHN0MwQixFSDhDMUI7RXFDdUVBO0lyQzlFRCwwQkd4RGM7SUh5RGQsNkNBUG1CLEVxQ3NHWDtJQWxCUDtNckMxRUEsMEJHM0MwQjtNSDRDMUIsZUdoRGE7TUhpRGIsc0JHN0MwQixFSDhDMUI7RXFDdUVBO0lBbEVFLHdCQUFnQjtRQUFoQixvQkFBZ0I7WUFBaEIsZ0JBQWdCLEVBa0dmO0lBL0ZIO01BRUksb0JBQWU7TUFBZix1QkFBZTtVQUFmLG1CQUFlO2NBQWYsZUFBZSxFQTBCbEI7TUE1QkQ7UUFTSSxpQkFBaUIsRUFDbEI7RXBDaUJDO0lvQ1NKO01BRUksb0JBQWM7TUFBZCxzQkFBYztVQUFkLGtCQUFjO2NBQWQsY0FBYztNQUtoQixpQkFBaUIsRUFnQmxCLEVBQUE7RXBDaENHO0lvQ1NKO01BRUksb0JBQWM7TUFBZCxzQkFBYztVQUFkLGtCQUFjO2NBQWQsY0FBYztNQUtoQixpQkFBaUIsRUFnQmxCLEVBQUE7RXBDM0JHO0lvQytCSjtNQWdETSxlQUFlLEVBT2xCO01BdkRIO1FBbURRLGVBQWU7UUFDZixnQkFBa0MsRUFDbkMsRUFBQTs7QUM1SlA7RUExQ0EsbUJBQW1CO0VBQ25CLG1CbkNrUHlCO0VtQ2pQekIsY25Da1BvQjtFbUNoUHBCLHNDbkNtQmE7RW1DbEJiLGlCbkN3Q2U7RW1DdkJm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Q2tCO0VBdUNsQiw2QkF2Q2tCO01BdUNsQix3QkF2Q2tCO1VBdUNsQixxQkF2Q2tCLEUrQ0FmOztBQUVEO0UvQ3FERiw0QkF2RGtCO01BdURsQiw2QkF2RGtCO2NBdURsQiw0QkF2RGtCO1VBdURsQixvQkF2RGtCLEUrQ0lmOztBQU1DO0UvQ21ESiw2QitDcERnQjtFL0NvRGhCLGlCK0NwRGdCO00vQ29EaEIsa0IrQ3BEZ0I7VS9Db0RoQixTK0NwRGdCLEVBR1g7O0FBRkQ7RS9DbURKLDZCK0NwRGdCO0UvQ29EaEIsaUIrQ3BEZ0I7TS9Db0RoQixrQitDcERnQjtVL0NvRGhCLFMrQ3BEZ0IsRUFHWDs7QUFGRDtFL0NtREosNkIrQ3BEZ0I7RS9Db0RoQixpQitDcERnQjtNL0NvRGhCLGtCK0NwRGdCO1UvQ29EaEIsUytDcERnQixFQUdYOztBQUZEO0UvQ21ESiw2QitDcERnQjtFL0NvRGhCLGlCK0NwRGdCO00vQ29EaEIsa0IrQ3BEZ0I7VS9Db0RoQixTK0NwRGdCLEVBR1g7O0FBRkQ7RS9DbURKLDZCK0NwRGdCO0UvQ29EaEIsaUIrQ3BEZ0I7TS9Db0RoQixrQitDcERnQjtVL0NvRGhCLFMrQ3BEZ0IsRUFHWDs7QUFGRDtFL0NtREosNkIrQ3BEZ0I7RS9Db0RoQixpQitDcERnQjtNL0NvRGhCLGtCK0NwRGdCO1UvQ29EaEIsUytDcERnQixFQUdYOztBaEVtSUQ7RWdFcklBO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWDtFQUZEO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWCxFQUFBOztBaEVtSUQ7RWdFcklBO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWDtFQUZEO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWCxFQUFBOztBaEV3SUQ7RWdFMUlBO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWDtFQUZEO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWCxFQUFBOztBaEV3SUQ7RWdFMUlBO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWDtFQUZEO0kvQ21ESiw2QitDcERnQjtJL0NvRGhCLGlCK0NwRGdCO1EvQ29EaEIsa0IrQ3BEZ0I7WS9Db0RoQixTK0NwRGdCLEVBR1g7RUFGRDtJL0NtREosNkIrQ3BEZ0I7SS9Db0RoQixpQitDcERnQjtRL0NvRGhCLGtCK0NwRGdCO1kvQ29EaEIsUytDcERnQixFQUdYO0VBRkQ7SS9DbURKLDZCK0NwRGdCO0kvQ29EaEIsaUIrQ3BEZ0I7US9Db0RoQixrQitDcERnQjtZL0NvRGhCLFMrQ3BEZ0IsRUFHWCxFQUFBOztBQ3hCUDs7RUFFQyw2RC9EK0hzRTtFK0Q5SHRFLG1CaEVxRnFCO0VnRXBGckIsaUJBQWlCO0VBQ2pCLHNDQUF1QjtFQUN2QixpQkFBaUI7RUFDakIscUJBQXFCO0VBQ3JCLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGUvRGtEbUI7RStEakRuQixpQkFBaUI7RUFDakIsVUFBVTtFQUNWLGlCQUFZO09BQVosWUFBWTtFQUNaLHNCQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjLEVB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QUNkOztBQUdGO0VBQ0MseUJBQTBCO0VBQzFCLG1CQUFtQixFQWlDbkI7RUFuQ0Q7SUFLRSxzQkFBc0I7SUFDdEIsaUJBQWlCLEVBQ2pCO0VBUEY7SUFVRSxnQkFBZ0I7SUFDaEIsdUJ4RTdZNEI7SXdFOFk1QixnQnpFcGJvQjtJeUVxYnBCLGlCQUFpQixFQUNqQjtFQWRGOztJQWtCRSxjQUFjLEVBQ2Q7RUFuQkY7SUFzQkUsbUJBQW1CO0lBQ25CLGlCQUFpQixFQVdqQjtJQWxDRjtNQTBCRyxZQUFZO01BQ1osbUJBQW1CO01BQ25CLFFBQVE7TUFDUixZQUFZO01BQ1osWUFBWTtNQUNaLDBCN0VuZ0JlO002RW9nQmYsV0FBVyxFQUNYOztBQUlIO0VBRUUsbUJBQW1CO0VBQ25CLDBCeEUzZWtCLEV3RWtnQmxCO0VBMUJGO0lBTUcsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQiwwQkFBMEI7SUFDMUIsc0JBQXNCLEVBTXRCO0lBZkg7TUFZSSxpQkFBaUI7TUFDakIsZXhFOWZhLEV3RStmYjtFQWRKO0lBa0JHLG9CQUFvQjtJQUNwQixxQnpFaGVtQjtJeUVpZW5CLGV4RXJmZ0IsRXdFc2ZoQjtFQXJCSDtJQXdCRyxpQkFBaUIsRUFDakI7O0FBSUg7RUFDQztJQUNDLFdBQVcsRUFBQTtFQUdaO0lBQ0MsV0FBVyxFQUFBLEVBQUE7O0FBTmI7RUFDQztJQUNDLFdBQVcsRUFBQTtFQUdaO0lBQ0MsV0FBVyxFQUFBLEVBQUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4gKiBWZXJzaW9uIDYuMi4zXG4gKiBmb3VuZGF0aW9uLnp1cmIuY29tXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcbiAqL1xuYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSBidXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cblxuLmlzLXZpc2libGUge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmJ1dHRvbi5hcnJvdy1sZWZ0LCAuYXJyb3ctbGVmdC5idXR0b25fX2VkaXQsIC5idXR0b24uYXJyb3ctcmlnaHQsIC5hcnJvdy1yaWdodC5idXR0b25fX2VkaXQge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkge1xuICAgIC5idXR0b24uYXJyb3ctbGVmdCwgLmFycm93LWxlZnQuYnV0dG9uX19lZGl0LCAuYnV0dG9uLmFycm93LXJpZ2h0LCAuYXJyb3ctcmlnaHQuYnV0dG9uX19lZGl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMy4xMjVyZW07XG4gICAgICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4wNjI1cmVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMTEyNXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjb2xvcjogIzIyMjIyMjtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBib3JkZXI6IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkge1xuICAgIC5idXR0b24uYXJyb3ctbGVmdCwgLmFycm93LWxlZnQuYnV0dG9uX19lZGl0LCAuYnV0dG9uLmFycm93LXJpZ2h0LCAuYXJyb3ctcmlnaHQuYnV0dG9uX19lZGl0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7IH0gfVxuICAuYnV0dG9uLmFycm93LWxlZnQ6OmJlZm9yZSwgLmFycm93LWxlZnQuYnV0dG9uX19lZGl0OjpiZWZvcmUsIC5idXR0b24uYXJyb3ctcmlnaHQ6OmJlZm9yZSwgLmFycm93LXJpZ2h0LmJ1dHRvbl9fZWRpdDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDAuODc1cmVtO1xuICAgIGhlaWdodDogMC43NXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2Z1dHVyZS9kaXN0L2ltYWdlcy9hcnJvdy1iYWNrLnBuZ1wiKTsgfVxuICAuYnV0dG9uLmFycm93LWxlZnQ6aG92ZXIsIC5hcnJvdy1sZWZ0LmJ1dHRvbl9fZWRpdDpob3ZlciwgLmJ1dHRvbi5hcnJvdy1sZWZ0OmZvY3VzLCAuYXJyb3ctbGVmdC5idXR0b25fX2VkaXQ6Zm9jdXMsIC5idXR0b24uYXJyb3ctcmlnaHQ6aG92ZXIsIC5hcnJvdy1yaWdodC5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uYXJyb3ctcmlnaHQ6Zm9jdXMsIC5hcnJvdy1yaWdodC5idXR0b25fX2VkaXQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLmJ1dHRvbi5hcnJvdy1sZWZ0LCAuYXJyb3ctbGVmdC5idXR0b25fX2VkaXQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWxlZnQ6IDI4cHg7IH1cbiAgLmJ1dHRvbi5hcnJvdy1sZWZ0OjpiZWZvcmUsIC5hcnJvdy1sZWZ0LmJ1dHRvbl9fZWRpdDo6YmVmb3JlIHtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zaXRpb246IGxlZnQgLjNzOyB9XG4gIC5idXR0b24uYXJyb3ctbGVmdDpob3Zlcjo6YmVmb3JlLCAuYXJyb3ctbGVmdC5idXR0b25fX2VkaXQ6aG92ZXI6OmJlZm9yZSB7XG4gICAgbGVmdDogLTAuMzEyNXJlbTsgfVxuXG4uYnV0dG9uLmFycm93LXJpZ2h0LCAuYXJyb3ctcmlnaHQuYnV0dG9uX19lZGl0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNzVyZW07IH1cbiAgLmJ1dHRvbi5hcnJvdy1yaWdodDo6YmVmb3JlLCAuYXJyb3ctcmlnaHQuYnV0dG9uX19lZGl0OjpiZWZvcmUge1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbi10b3A6IC0wLjQzNzVyZW07XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICB0cmFuc2l0aW9uOiByaWdodCAuM3M7IH1cbiAgLmJ1dHRvbi5hcnJvdy1yaWdodDpob3Zlcjo6YmVmb3JlLCAuYXJyb3ctcmlnaHQuYnV0dG9uX19lZGl0OmhvdmVyOjpiZWZvcmUge1xuICAgIHJpZ2h0OiAtMC4zMTI1cmVtOyB9XG5cbi5idXR0b24udHJpYW5nbGUsIC50cmlhbmdsZS5idXR0b25fX2VkaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDQwcHg7IH1cbiAgLmJ1dHRvbi50cmlhbmdsZTo6YWZ0ZXIsIC50cmlhbmdsZS5idXR0b25fX2VkaXQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDRweCAwIDRweCA4cHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMjIyMjIyO1xuICAgIHRyYW5zaXRpb246IGFsbCAuMnM7IH1cbiAgLmJ1dHRvbi50cmlhbmdsZTpob3Zlcjo6YWZ0ZXIsIC50cmlhbmdsZS5idXR0b25fX2VkaXQ6aG92ZXI6OmFmdGVyIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmZmZmY7IH1cblxuLmJ1dHRvbjpob3ZlciBzdmcsIC5idXR0b25fX2VkaXQ6aG92ZXIgc3ZnIHtcbiAgdHJhbnNpdGlvbjogYWxsIC4yczsgfVxuXG4uc2xpZGUtaW4tZG93bi5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLWluLWRvd24ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1sZWZ0Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG5cbi5zbGlkZS1pbi11cC5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtaW4tdXAubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnNsaWRlLWluLXJpZ2h0Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1pbi1yaWdodC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuXG4uc2xpZGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1kb3duLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnNsaWRlLW91dC1yaWdodC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uc2xpZGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zbGlkZS1vdXQtdXAubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOyB9XG5cbi5zbGlkZS1vdXQtbGVmdC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc2xpZGUtb3V0LWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpOyB9XG5cbi5mYWRlLWluLm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5OyB9XG5cbi5mYWRlLWluLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgb3BhY2l0eTogMTsgfVxuXG4uZmFkZS1vdXQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7IH1cblxuLmZhZGUtb3V0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS10b3AubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVYKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHRvcDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLXRvcC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLWluLWZyb20tcmlnaHQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWJvdHRvbS5tdWktZW50ZXIge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1ib3R0b20ubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKDkwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLWxlZnQubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS14Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2UtaW4tZnJvbS1taWRkbGUteC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLWluLWZyb20tbWlkZGxlLXkubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGVZKC05MGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1pbi1mcm9tLW1pZGRsZS15Lm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tdG9wLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tcmlnaHQubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMjAwMHB4KSByb3RhdGUoMGRlZyk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLXJpZ2h0Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBib3R0b207XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tYm90dG9tLm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1sZWZ0Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLWxlZnQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS14Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlKDBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uaGluZ2Utb3V0LWZyb20tbWlkZGxlLXgubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDIwMDBweCkgcm90YXRlWCgtOTBkZWcpO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5oaW5nZS1vdXQtZnJvbS1taWRkbGUteS5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZSgwZGVnKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLmhpbmdlLW91dC1mcm9tLW1pZGRsZS15Lm11aS1sZWF2ZS5tdWktbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgyMDAwcHgpIHJvdGF0ZVkoLTkwZGVnKTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtaW4tdXAubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi11cC5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLWluLWRvd24ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zY2FsZS1pbi1kb3duLm11aS1lbnRlci5tdWktZW50ZXItYWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LXVwLm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIG9wYWNpdHk6IDE7IH1cblxuLnNjYWxlLW91dC11cC5tdWktbGVhdmUubXVpLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc2NhbGUtb3V0LWRvd24ubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4ubXVpLWVudGVyIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0wLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi5tdWktZW50ZXIubXVpLWVudGVyLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC5tdWktbGVhdmUge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA1MDBtcztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIG9wYWNpdHk6IDA7IH1cblxuLnNwaW4taW4tY2N3Lm11aS1lbnRlciB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwLjc1dHVybik7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3Bpbi1pbi1jY3cubXVpLWVudGVyLm11aS1lbnRlci1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgb3BhY2l0eTogMTsgfVxuXG4uc3Bpbi1vdXQtY2N3Lm11aS1sZWF2ZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwMG1zO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICBvcGFjaXR5OiAxOyB9XG5cbi5zcGluLW91dC1jY3cubXVpLWxlYXZlLm11aS1sZWF2ZS1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMC43NXR1cm4pO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5zbG93IHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNzUwbXMgIWltcG9ydGFudDsgfVxuXG4uZmFzdCB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWltcG9ydGFudDsgfVxuXG4uZWFzZSB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dCAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluLW91dCB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dCAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSAhaW1wb3J0YW50OyB9XG5cbi5ib3VuY2UtaW4tb3V0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc2LCAtMC4yNDUsIDAuMjQsIDEuMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5zaG9ydC1kZWxheSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICB0cmFuc2l0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50OyB9XG5cbi5zaGFrZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzaGFrZS03OyB9XG5cbkBrZXlmcmFtZXMgc2hha2UtNyB7XG4gIDAlLCAxMCUsIDIwJSwgMzAlLCA0MCUsIDUwJSwgNjAlLCA3MCUsIDgwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNyUpOyB9XG4gIDUlLCAxNSUsIDI1JSwgMzUlLCA0NSUsIDU1JSwgNjUlLCA3NSUsIDg1JSwgOTUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTclKTsgfSB9XG5cbi5zcGluLWN3IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNwaW4tY3ctMXR1cm47IH1cblxuQGtleWZyYW1lcyBzcGluLWN3LTF0dXJuIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xdHVybik7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG4uc3Bpbi1jY3cge1xuICBhbmltYXRpb24tbmFtZTogc3Bpbi1jdy0xdHVybjsgfVxuXG5Aa2V5ZnJhbWVzIHNwaW4tY3ctMXR1cm4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pOyB9IH1cblxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB3aWdnbGUtN2RlZzsgfVxuXG5Aa2V5ZnJhbWVzIHdpZ2dsZS03ZGVnIHtcbiAgNDAlLCA1MCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoN2RlZyk7IH1cbiAgMzUlLCA0NSUsIDU1JSwgNjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtN2RlZyk7IH1cbiAgMCUsIDMwJSwgNzAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfSB9XG5cbi5zaGFrZSxcbi5zcGluLWN3LFxuLnNwaW4tY2N3LFxuLndpZ2dsZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7IH1cblxuLmluZmluaXRlIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7IH1cblxuLnNsb3cge1xuICBhbmltYXRpb24tZHVyYXRpb246IDc1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmZhc3Qge1xuICBhbmltYXRpb24tZHVyYXRpb246IDI1MG1zICFpbXBvcnRhbnQ7IH1cblxuLmxpbmVhciB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50OyB9XG5cbi5lYXNlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZSAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbiAhaW1wb3J0YW50OyB9XG5cbi5lYXNlLW91dCB7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0ICFpbXBvcnRhbnQ7IH1cblxuLmVhc2UtaW4tb3V0IHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQgIWltcG9ydGFudDsgfVxuXG4uYm91bmNlLWluIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC4yNCwgMS4yNDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40ODUsIDAuMTU1LCAwLjUxNSwgMC44NDUpICFpbXBvcnRhbnQ7IH1cblxuLmJvdW5jZS1pbi1vdXQge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NiwgLTAuMjQ1LCAwLjI0LCAxLjI0NSkgIWltcG9ydGFudDsgfVxuXG4uc2hvcnQtZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7IH1cblxuLmxvbmctZGVsYXkge1xuICBhbmltYXRpb24tZGVsYXk6IDcwMG1zICFpbXBvcnRhbnQ7IH1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqXG5cdCogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cblx0KiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuXHQqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cblx0Ki9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcblx0KiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG5cdCovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcblx0KiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuXHQqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG5cdCogYW5kIEZpcmVmb3guXG5cdCogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cblx0Ki9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuXHQqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG5cdCogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuXHQqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuXHQqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG5cdCogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cblx0Ki9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcblx0KiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXG5cdCogSGlkZSB0aGUgYHRlbXBsYXRlYCBlbGVtZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgRmlyZWZveCA8IDIyLlxuXHQqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3Ncblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcblx0KiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblx0Ki9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcblx0KiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG5cdCogYWN0aXZlL2hvdmVyIHN0YXRlLlxuXHQqL1xuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgb3V0bGluZTogMDsgfVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuXHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuXHQqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cblx0Ki9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDsgfVxuXG4vKipcblx0KiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG5cdCovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyoqXG5cdCogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuXHQqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuXHQqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcblx0KiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG5cdCovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IC42N2VtIDA7IH1cblxuLyoqXG4gICAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4gICAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICAgKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gICAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cbmltZyB7XG4gIGJvcmRlcjogMDsgfVxuXG4vKipcbiAgICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXG4gICAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAgICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICAgKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXG4gICAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICAgKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAgICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBvZGQgYGVtYC11bml0IGZvbnQgc2l6ZSByZW5kZXJpbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cbmNvZGUsXG5rYmQsXG5wcmUsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBGb3Jtc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAgICovXG4vKipcbiAgICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICAgKiAgICBLbm93biBpc3N1ZTogYWZmZWN0cyBjb2xvciBvZiBkaXNhYmxlZCBlbGVtZW50cy5cbiAgICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gICAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDMgKi8gfVxuXG4vKipcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuYnV0dG9uIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyoqXG4gICAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbiAgICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAgICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAgICogQ29ycmVjdCBgc2VsZWN0YCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LlxuICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICAgKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAgICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICAgKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gICAqL1xuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAyICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogMyAqLyB9XG5cbi8qKlxuICAgKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLyoqXG4gICAqIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBib3JkZXIgaW4gRmlyZWZveCA0Ky5cbiAgICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAgICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICAgKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAgICovXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICAgKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICAgKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAgICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gICAqIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbiAgICogcGFkZGluZyAoYW5kIGB0ZXh0ZmllbGRgIGFwcGVhcmFuY2UpLlxuICAgKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cbiAgICovXG4vKiBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbiAgfSAqL1xuLyoqXG4gICAqIDEuIENvcnJlY3QgYGNvbG9yYCBub3QgYmVpbmcgaW5oZXJpdGVkIGluIElFIDgvOS8xMC8xMS5cbiAgICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICAgKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKipcbiAgICogRG9uJ3QgaW5oZXJpdCB0aGUgYGZvbnQtd2VpZ2h0YCAoYXBwbGllZCBieSBhIHJ1bGUgYWJvdmUpLlxuICAgKiBOT1RFOiB0aGUgZGVmYXVsdCBjYW5ub3Qgc2FmZWx5IGJlIGNoYW5nZWQgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAgICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qIFRhYmxlc1xuICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAgICovXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbnRkLFxudGgge1xuICBwYWRkaW5nOiAwOyB9XG5cbi5mb3VuZGF0aW9uLW1xIHtcbiAgZm9udC1mYW1pbHk6IFwieHNtYWxsPTBlbSZzbWFsbD0wZW0mbWVkaXVtPTQxLjg3NWVtJmxhcmdlPTYwZW0meGxhcmdlPTc1ZW0meHhsYXJnZT05MGVtXCI7IH1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4qLFxuKjo6YmVmb3JlLFxuKjo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiA1MHB4O1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbnNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbiNtYXBfY2FudmFzLFxuLm1hcF9jYW52YXMsXG4ubXFhLWRpc3BsYXkgaW1nLFxuZW1iZWQsXG5vYmplY3Qge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4ucm93IHtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDsgfVxuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuNjI1cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC42MjVyZW07IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAucm93IC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgICAucm93IC5yb3cuY29sbGFwc2Uge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLnJvdy5leHBhbmRlZCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uLCAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5yb3cuaXMtY29sbGFwc2UtY2hpbGQsXG4gIC5yb3cuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyxcbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW5zID4gLnJvdyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5jb2x1bW4sIC5jb2x1bW5zIHtcbiAgZmxleDogMSAxIDBweDtcbiAgcGFkZGluZy1yaWdodDogMC42MjVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIG1pbi13aWR0aDogaW5pdGlhbDsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgICAuY29sdW1uLCAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5yb3cgLmNvbHVtbi5yb3cucm93LCAucm93IC5yb3cucm93LmNvbHVtbnMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLmZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uZmxleC1jaGlsZC1hdXRvIHtcbiAgZmxleDogMSAxIGF1dG87IH1cblxuLmZsZXgtY2hpbGQtZ3JvdyB7XG4gIGZsZXg6IDEgMCBhdXRvOyB9XG5cbi5mbGV4LWNoaWxkLXNocmluayB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG5cbi5mbGV4LWRpci1yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG5cbi5mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuXG4uZmxleC1kaXItY29sdW1uIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4uZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cblxuLnNtYWxsLTEge1xuICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gIG1heC13aWR0aDogOC4zMzMzMyU7IH1cblxuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi5zbWFsbC0yIHtcbiAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cblxuLnNtYWxsLW9mZnNldC0xIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG5cbi5zbWFsbC0zIHtcbiAgZmxleDogMCAwIDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLW9mZnNldC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtNCB7XG4gIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLnNtYWxsLTUge1xuICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG5cbi5zbWFsbC02IHtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7IH1cblxuLnNtYWxsLW9mZnNldC01IHtcbiAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuXG4uc21hbGwtNyB7XG4gIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLnNtYWxsLTgge1xuICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtb2Zmc2V0LTcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG5cbi5zbWFsbC05IHtcbiAgZmxleDogMCAwIDc1JTtcbiAgbWF4LXdpZHRoOiA3NSU7IH1cblxuLnNtYWxsLW9mZnNldC04IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuXG4uc21hbGwtMTAge1xuICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi5zbWFsbC0xMSB7XG4gIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG5cbi5zbWFsbC1vZmZzZXQtMTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG5cbi5zbWFsbC0xMiB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLW9mZnNldC0xMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cblxuLnNtYWxsLW9yZGVyLTEge1xuICBvcmRlcjogMTsgfVxuXG4uc21hbGwtb3JkZXItMiB7XG4gIG9yZGVyOiAyOyB9XG5cbi5zbWFsbC1vcmRlci0zIHtcbiAgb3JkZXI6IDM7IH1cblxuLnNtYWxsLW9yZGVyLTQge1xuICBvcmRlcjogNDsgfVxuXG4uc21hbGwtb3JkZXItNSB7XG4gIG9yZGVyOiA1OyB9XG5cbi5zbWFsbC1vcmRlci02IHtcbiAgb3JkZXI6IDY7IH1cblxuLnNtYWxsLXVwLTEge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTEgPiAuY29sdW1uLCAuc21hbGwtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNtYWxsLXVwLTIge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTIgPiAuY29sdW1uLCAuc21hbGwtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG5cbi5zbWFsbC11cC0zIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC0zID4gLmNvbHVtbiwgLnNtYWxsLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uc21hbGwtdXAtNCB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNCA+IC5jb2x1bW4sIC5zbWFsbC11cC00ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLnNtYWxsLXVwLTUge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTUgPiAuY29sdW1uLCAuc21hbGwtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMjAlO1xuICAgIG1heC13aWR0aDogMjAlOyB9XG5cbi5zbWFsbC11cC02IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zbWFsbC11cC02ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uc21hbGwtdXAtNyB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc21hbGwtdXAtNyA+IC5jb2x1bW4sIC5zbWFsbC11cC03ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cblxuLnNtYWxsLXVwLTgge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnNtYWxsLXVwLTggPiAuY29sdW1uLCAuc21hbGwtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgbWF4LXdpZHRoOiAxMi41JTsgfVxuXG4uc21hbGwtY29sbGFwc2UgPiAuY29sdW1uLCAuc21hbGwtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjYyNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjYyNXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLm1lZGl1bS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLm1lZGl1bS0yIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubWVkaXVtLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWVkaXVtLTUge1xuICAgIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JTsgfVxuICAubWVkaXVtLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWVkaXVtLTgge1xuICAgIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubWVkaXVtLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtOCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JTsgfVxuICAubWVkaXVtLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLm1lZGl1bS0xMSB7XG4gICAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JTsgfVxuICAubWVkaXVtLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubWVkaXVtLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLm1lZGl1bS1vZmZzZXQtMTEge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyU7IH1cbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5tZWRpdW0tb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5tZWRpdW0tb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH1cbiAgLm1lZGl1bS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWVkaXVtLXVwLTEgPiAuY29sdW1uLCAubWVkaXVtLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubWVkaXVtLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubWVkaXVtLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMyA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAubWVkaXVtLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNCA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubWVkaXVtLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAubWVkaXVtLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNiA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubWVkaXVtLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNyA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAubWVkaXVtLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICAgIG1heC13aWR0aDogMTIuNSU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkge1xuICAubWVkaXVtLWV4cGFuZCB7XG4gICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkge1xuICAubWVkaXVtLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAubWVkaXVtLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAubWVkaXVtLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87IH0gfVxuXG4ucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gICAgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubWVkaXVtLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1uLCAubWVkaXVtLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5sYXJnZS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAubGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAubGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5sYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAubGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLmxhcmdlLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLmxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC5sYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC5sYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAubGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAubGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLmxhcmdlLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLmxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAubGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAubGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC5sYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubGFyZ2Utb3JkZXItMiB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLmxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC5sYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubGFyZ2Utb3JkZXItNSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLmxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9XG4gIC5sYXJnZS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubGFyZ2UtdXAtMSA+IC5jb2x1bW4sIC5sYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLmxhcmdlLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLmxhcmdlLXVwLTMge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC0zID4gLmNvbHVtbiwgLmxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLmxhcmdlLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC00ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLmxhcmdlLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLmxhcmdlLXVwLTYge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC02ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLmxhcmdlLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC03ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLmxhcmdlLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5sYXJnZS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5sYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLmxhcmdlLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfSB9XG5cbi5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cubGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC54bGFyZ2UtMSB7XG4gICAgZmxleDogMCAwIDguMzMzMzMlO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC54bGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAueGxhcmdlLW9mZnNldC0xIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyU7IH1cbiAgLnhsYXJnZS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLnhsYXJnZS00IHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLnhsYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyU7IH1cbiAgLnhsYXJnZS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLnhsYXJnZS03IHtcbiAgICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLnhsYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTcge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyU7IH1cbiAgLnhsYXJnZS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLnhsYXJnZS0xMCB7XG4gICAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAueGxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC54bGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLnhsYXJnZS1vZmZzZXQtMTAge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyU7IH1cbiAgLnhsYXJnZS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC54bGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC54bGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLnhsYXJnZS1vcmRlci0yIHtcbiAgICBvcmRlcjogMjsgfVxuICAueGxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC54bGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLnhsYXJnZS1vcmRlci01IHtcbiAgICBvcmRlcjogNTsgfVxuICAueGxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9XG4gIC54bGFyZ2UtdXAtMSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnhsYXJnZS11cC0xID4gLmNvbHVtbiwgLnhsYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnhsYXJnZS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTIgPiAuY29sdW1uLCAueGxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLnhsYXJnZS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTMgPiAuY29sdW1uLCAueGxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLnhsYXJnZS11cC00IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTQgPiAuY29sdW1uLCAueGxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLnhsYXJnZS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTUgPiAuY29sdW1uLCAueGxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLnhsYXJnZS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTYgPiAuY29sdW1uLCAueGxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnhsYXJnZS11cC03IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTcgPiAuY29sdW1uLCAueGxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLnhsYXJnZS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAueGxhcmdlLXVwLTggPiAuY29sdW1uLCAueGxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkgYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnhsYXJnZS1leHBhbmQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC54bGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC54bGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgLnhsYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC54bGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAueGxhcmdlLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfSB9XG5cbi5yb3cueGxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LnhsYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLnJvdy54bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cueGxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAueGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbiwgLnhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAueGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAueGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC54eGxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC54eGxhcmdlLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLnh4bGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAueHhsYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC54eGxhcmdlLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAueHhsYXJnZS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAueHhsYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC54eGxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAueHhsYXJnZS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAueHhsYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC54eGxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC54eGxhcmdlLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLnh4bGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC54eGxhcmdlLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnh4bGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC54eGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC54eGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC54eGxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC54eGxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC54eGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC54eGxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9XG4gIC54eGxhcmdlLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC54eGxhcmdlLXVwLTEgPiAuY29sdW1uLCAueHhsYXJnZS11cC0xID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnh4bGFyZ2UtdXAtMiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnh4bGFyZ2UtdXAtMiA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLnh4bGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnh4bGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLnh4bGFyZ2UtdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnh4bGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLnh4bGFyZ2UtdXAtNSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnh4bGFyZ2UtdXAtNSA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLnh4bGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnh4bGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLnh4bGFyZ2UtdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnh4bGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTQuMjg1NzElO1xuICAgICAgbWF4LXdpZHRoOiAxNC4yODU3MSU7IH1cbiAgLnh4bGFyZ2UtdXAtOCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLnh4bGFyZ2UtdXAtOCA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkgYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLnh4bGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAueHhsYXJnZS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLnh4bGFyZ2UtZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAueHhsYXJnZS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLnh4bGFyZ2UtZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuICAueHhsYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLnh4bGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9IH1cblxuLnJvdy54eGxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lnh4bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5yb3cueHhsYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy54eGxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAueHhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC54eGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC54eGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAueHhsYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuLnNocmluayB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmNvbHVtbi1ibG9jayB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07IH1cbiAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkge1xuICAgIC5jb2x1bW4tYmxvY2sge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnByZSxcbmZvcm0sXG5wLFxuYmxvY2txdW90ZSxcbnRoLFxudGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxucCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1mYW1pbHk6IE1hbGxlYWJsZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuICBoMSBzbWFsbCxcbiAgaDIgc21hbGwsXG4gIGgzIHNtYWxsLFxuICBoNCBzbWFsbCxcbiAgaDUgc21hbGwsXG4gIGg2IHNtYWxsIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBjb2xvcjogIzk5OTk5OTsgfVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg0IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbmg1IHtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIGgxIHtcbiAgICBmb250LXNpemU6IDIuMjVyZW07IH1cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS44NzVyZW07IH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9XG4gIGg0IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICBoNiB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTsgfSB9XG5cbmEge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMyMjIyMjI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMWQxZDFkOyB9XG4gIGEgaW1nIHtcbiAgICBib3JkZXI6IDA7IH1cblxuaHIge1xuICBjbGVhcjogYm90aDtcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzk5OTk5OTtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICBkbCBkdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMS4yNXJlbSAwIDEuMTg3NXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOTk5OTk5OyB9XG4gIGJsb2NrcXVvdGUsIGJsb2NrcXVvdGUgcCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogIzg4ODg4ODsgfVxuXG5jaXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBjb2xvcjogIzg4ODg4ODsgfVxuICBjaXRlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigJQgXCI7IH1cblxuYWJiciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgIzAwMDAwMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGN1cnNvcjogaGVscDsgfVxuXG5maWd1cmUge1xuICBtYXJnaW46IDA7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBjb2xvcjogIzAwMDAwMDsgfVxuXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4ODg4ODg7IH1cblxuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgcCArIC5zdGF0IHtcbiAgICBtYXJnaW4tdG9wOiAtMXJlbTsgfVxuXG4ubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gIC5tZWRpdW0tdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZWRpdW0tdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm1lZGl1bS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5tZWRpdW0tdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnhsYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnhsYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAueGxhcmdlLXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnhsYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC54eGxhcmdlLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAueHhsYXJnZS10ZXh0LXJpZ2h0IHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAueHhsYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC54eGxhcmdlLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbi5zaG93LWZvci1wcmludCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuaGlkZS1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICB0YWJsZS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgfVxuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgdGJvZHkuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cCAhaW1wb3J0YW50OyB9XG4gIHRyLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3cgIWltcG9ydGFudDsgfVxuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIHRoLnNob3ctZm9yLXByaW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgYVtocmVmXj0nIyddOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODg4ODtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH0gfVxuXG5bdHlwZT0ndGV4dCddLCBbdHlwZT0ncGFzc3dvcmQnXSwgW3R5cGU9J2RhdGUnXSwgW3R5cGU9J2RhdGV0aW1lJ10sIFt0eXBlPSdkYXRldGltZS1sb2NhbCddLCBbdHlwZT0nbW9udGgnXSwgW3R5cGU9J3dlZWsnXSwgW3R5cGU9J2VtYWlsJ10sIFt0eXBlPSdudW1iZXInXSwgW3R5cGU9J3NlYXJjaCddLCBbdHlwZT0ndGVsJ10sIFt0eXBlPSd0aW1lJ10sIFt0eXBlPSd1cmwnXSwgW3R5cGU9J2NvbG9yJ10sXG50ZXh0YXJlYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyLjQzNzVyZW07XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTk5OTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC41cywgYm9yZGVyLWNvbG9yIDAuMjVzIGVhc2UtaW4tb3V0O1xuICBhcHBlYXJhbmNlOiBub25lOyB9XG4gIFt0eXBlPSd0ZXh0J106Zm9jdXMsIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLCBbdHlwZT0nZGF0ZSddOmZvY3VzLCBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cywgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106Zm9jdXMsIFt0eXBlPSdtb250aCddOmZvY3VzLCBbdHlwZT0nd2VlayddOmZvY3VzLCBbdHlwZT0nZW1haWwnXTpmb2N1cywgW3R5cGU9J251bWJlciddOmZvY3VzLCBbdHlwZT0nc2VhcmNoJ106Zm9jdXMsIFt0eXBlPSd0ZWwnXTpmb2N1cywgW3R5cGU9J3RpbWUnXTpmb2N1cywgW3R5cGU9J3VybCddOmZvY3VzLCBbdHlwZT0nY29sb3InXTpmb2N1cyxcbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODg4ODtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggIzk5OTk5OTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dDsgfVxuXG50ZXh0YXJlYSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICB0ZXh0YXJlYVtyb3dzXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5OTk5OyB9XG5cbmlucHV0OmRpc2FibGVkLCBpbnB1dFtyZWFkb25seV0sXG50ZXh0YXJlYTpkaXNhYmxlZCxcbnRleHRhcmVhW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG5bdHlwZT0nc3VibWl0J10sXG5bdHlwZT0nYnV0dG9uJ10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5bdHlwZT0nZmlsZSddLFxuW3R5cGU9J2NoZWNrYm94J10sXG5bdHlwZT0ncmFkaW8nXSB7XG4gIG1hcmdpbjogMCAwIDFyZW07IH1cblxuW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcblt0eXBlPSdyYWRpbyddICsgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIFt0eXBlPSdjaGVja2JveCddICsgbGFiZWxbZm9yXSxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbFtmb3JdIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxubGFiZWwgPiBbdHlwZT0nY2hlY2tib3gnXSxcbmxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG5bdHlwZT0nZmlsZSddIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS44O1xuICBjb2xvcjogIzAwMDAwMDsgfVxuICBsYWJlbC5taWRkbGUge1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG4gICAgcGFkZGluZzogMC41NjI1cmVtIDA7IH1cblxuLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5pbnB1dC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuaW5wdXQtZ3JvdXAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cbiAgLmlucHV0LWdyb3VwID4gOmxhc3QtY2hpbGQgPiAqIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCwgLmlucHV0LWdyb3VwLWZpZWxkLCAuaW5wdXQtZ3JvdXAtYnV0dG9uLCAuaW5wdXQtZ3JvdXAtYnV0dG9uIGEsXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuLmlucHV0LWdyb3VwLWJ1dHRvbiBidXR0b24sXG4uaW5wdXQtZ3JvdXAtYnV0dG9uIGxhYmVsIHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5pbnB1dC1ncm91cC1sYWJlbCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTk5OTtcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgLmlucHV0LWdyb3VwLWxhYmVsOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5pbnB1dC1ncm91cC1maWVsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLXdpZHRoOiAwOyB9XG5cbi5pbnB1dC1ncm91cC1idXR0b24ge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZmxleDogMCAwIGF1dG87IH1cbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBhLFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGlucHV0LFxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIGJ1dHRvbixcbiAgLmlucHV0LWdyb3VwLWJ1dHRvbiBsYWJlbCB7XG4gICAgaGVpZ2h0OiAyLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuLmZpZWxkc2V0IHtcbiAgbWFyZ2luOiAxLjEyNXJlbSAwO1xuICBwYWRkaW5nOiAxLjI1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5OTk5OyB9XG4gIC5maWVsZHNldCBsZWdlbmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogLTAuMTg3NXJlbTtcbiAgICBwYWRkaW5nOiAwIDAuMTg3NXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9XG5cbnNlbGVjdCB7XG4gIGhlaWdodDogMi40Mzc1cmVtO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6IHJnYiUyODEzNiwgMTM2LCAxMzYlMjknPjwvcG9seWdvbj48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLTFyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDlweCA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMFxcMCkge1xuICAgIHNlbGVjdCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUlwSlJFRlVlTnJFa2NrTmdEQU1CQmZSa0V0ME9iUkJCZHNHWFVEZ21RZks0WGhIMm04Y3pRQUF5MjdSM3RzdzRRZmUyeDh1T082b1lMYjZHbE9vcjNHRitzd1VSQU9tVUorUnd0RUpzOVd2VEdFWXhCWHFJMU1RQVpoQ2ZVUUtSekRNVmorVHdyQUlWNmp2U1VFa1lBcjFMU2tjeVRCYi9WK0tZZlg3eEFldXNxM3NMRHRHSDNrRUdBQ1BXSWZsTlpmaFJRQUFBQUJKUlU1RXJrSmdnZz09XCIpOyB9IH1cbiAgc2VsZWN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM4ODg4ODg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4ICM5OTk5OTk7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQ7IH1cbiAgc2VsZWN0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIGN1cnNvcjogZGVmYXVsdDsgfVxuICBzZWxlY3Q6Oi1tcy1leHBhbmQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cblxuLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cykge1xuICBib3JkZXItY29sb3I6ICNlYzU4NDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGVlZWM7IH1cbiAgLmlzLWludmFsaWQtaW5wdXQ6bm90KDpmb2N1cyk6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2VjNTg0MDsgfVxuXG4uaXMtaW52YWxpZC1sYWJlbCB7XG4gIGNvbG9yOiAjZWM1ODQwOyB9XG5cbi5mb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNlYzU4NDA7IH1cbiAgLmZvcm0tZXJyb3IuaXMtdmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmJ1dHRvbiwgLmJ1dHRvbl9fZWRpdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMjVzIGVhc2Utb3V0LCBjb2xvciAuMjVzIGVhc2Utb3V0LCBib3JkZXIgLjI1cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgcGFkZGluZzogMC42MjVyZW0gMS4yNXJlbTtcbiAgbWFyZ2luOiAwIDAgMCAwO1xuICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmEwMDA7XG4gIGNvbG9yOiAjMjIyMjIyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzIyMjIyMjsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLmJ1dHRvbiwgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5idXR0b25fX2VkaXQge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbl9fZWRpdDpob3ZlciwgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjAwMDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItY29sb3I6ICNmZjYwMDA7IH1cbiAgLmJ1dHRvbi50aW55LCAudGlueS5idXR0b25fX2VkaXQge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5idXR0b24uc21hbGwsIC5zbWFsbC5idXR0b25fX2VkaXQge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuICAuYnV0dG9uLmxhcmdlLCAubGFyZ2UuYnV0dG9uX19lZGl0IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi5leHBhbmRlZCwgLmV4cGFuZGVkLmJ1dHRvbl9fZWRpdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5idXR0b24ucHJpbWFyeSwgLnByaW1hcnkuYnV0dG9uX19lZGl0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyO1xuICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCMyMjIyMjIsICMwMDAwMDAsICMyMjIyMjIpOyB9XG4gICAgLmJ1dHRvbi5wcmltYXJ5OmhvdmVyLCAucHJpbWFyeS5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cywgLnByaW1hcnkuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjYwMDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJvcmRlci1jb2xvcjogI2ZmNjAwMDsgfVxuICAuYnV0dG9uLnNlY29uZGFyeSwgLnNlY29uZGFyeS5idXR0b25fX2VkaXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ0NDQ7XG4gICAgY29sb3I6IGZvcmVncm91bmQoIzQ0NDQ0NCwgIzAwMDAwMCwgIzIyMjIyMik7IH1cbiAgICAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLnNlY29uZGFyeS5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uc2Vjb25kYXJ5OmZvY3VzLCAuc2Vjb25kYXJ5LmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2MDAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXItY29sb3I6ICNmZjYwMDA7IH1cbiAgLmJ1dHRvbi5mcG9yYW5nZSwgLmZwb3JhbmdlLmJ1dHRvbl9fZWRpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTAwMDtcbiAgICBjb2xvcjogZm9yZWdyb3VuZCgjZmZhMDAwLCAjMDAwMDAwLCAjMjIyMjIyKTsgfVxuICAgIC5idXR0b24uZnBvcmFuZ2U6aG92ZXIsIC5mcG9yYW5nZS5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uZnBvcmFuZ2U6Zm9jdXMsIC5mcG9yYW5nZS5idXR0b25fX2VkaXQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjAwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZmY2MDAwOyB9XG4gIC5idXR0b24uc3VjY2VzcywgLnN1Y2Nlc3MuYnV0dG9uX19lZGl0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCMzYWRiNzYsICMwMDAwMDAsICMyMjIyMjIpOyB9XG4gICAgLmJ1dHRvbi5zdWNjZXNzOmhvdmVyLCAuc3VjY2Vzcy5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uc3VjY2Vzczpmb2N1cywgLnN1Y2Nlc3MuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjYwMDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJvcmRlci1jb2xvcjogI2ZmNjAwMDsgfVxuICAuYnV0dG9uLndhcm5pbmcsIC53YXJuaW5nLmJ1dHRvbl9fZWRpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICBjb2xvcjogZm9yZWdyb3VuZCgjZmYwMDAwLCAjMDAwMDAwLCAjMjIyMjIyKTsgfVxuICAgIC5idXR0b24ud2FybmluZzpob3ZlciwgLndhcm5pbmcuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLndhcm5pbmc6Zm9jdXMsIC53YXJuaW5nLmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2MDAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXItY29sb3I6ICNmZjYwMDA7IH1cbiAgLmJ1dHRvbi5hbGVydCwgLmFsZXJ0LmJ1dHRvbl9fZWRpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNTg0MDtcbiAgICBjb2xvcjogZm9yZWdyb3VuZCgjZWM1ODQwLCAjMDAwMDAwLCAjMjIyMjIyKTsgfVxuICAgIC5idXR0b24uYWxlcnQ6aG92ZXIsIC5hbGVydC5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uYWxlcnQ6Zm9jdXMsIC5hbGVydC5idXR0b25fX2VkaXQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjAwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZmY2MDAwOyB9XG4gIC5idXR0b24uaG9sbG93LCAuaG9sbG93LmJ1dHRvbl9fZWRpdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzIyMjIyMjtcbiAgICBjb2xvcjogIzIyMjIyMjsgfVxuICAgIC5idXR0b24uaG9sbG93LCAuaG9sbG93LmJ1dHRvbl9fZWRpdCwgLmJ1dHRvbi5ob2xsb3c6aG92ZXIsIC5ob2xsb3cuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdzpmb2N1cywgLmhvbGxvdy5idXR0b25fX2VkaXQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuYnV0dG9uLmhvbGxvdzpob3ZlciwgLmhvbGxvdy5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uaG9sbG93OmZvY3VzLCAuaG9sbG93LmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICMxMTExMTE7XG4gICAgICBjb2xvcjogIzExMTExMTsgfVxuICAgIC5idXR0b24uaG9sbG93LnByaW1hcnksIC5ob2xsb3cucHJpbWFyeS5idXR0b25fX2VkaXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzIyMjIyMjtcbiAgICAgIGNvbG9yOiAjMjIyMjIyOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmhvdmVyLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5wcmltYXJ5OmZvY3VzLCAuaG9sbG93LnByaW1hcnkuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTExMTExO1xuICAgICAgICBjb2xvcjogIzExMTExMTsgfVxuICAgIC5idXR0b24uaG9sbG93LnNlY29uZGFyeSwgLmhvbGxvdy5zZWNvbmRhcnkuYnV0dG9uX19lZGl0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0NDQ0NDQ7XG4gICAgICBjb2xvcjogIzQ0NDQ0NDsgfVxuICAgICAgLmJ1dHRvbi5ob2xsb3cuc2Vjb25kYXJ5OmhvdmVyLCAuaG9sbG93LnNlY29uZGFyeS5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uaG9sbG93LnNlY29uZGFyeTpmb2N1cywgLmhvbGxvdy5zZWNvbmRhcnkuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMjIyMjIyO1xuICAgICAgICBjb2xvcjogIzIyMjIyMjsgfVxuICAgIC5idXR0b24uaG9sbG93LmZwb3JhbmdlLCAuaG9sbG93LmZwb3JhbmdlLmJ1dHRvbl9fZWRpdCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZhMDAwO1xuICAgICAgY29sb3I6ICNmZmEwMDA7IH1cbiAgICAgIC5idXR0b24uaG9sbG93LmZwb3JhbmdlOmhvdmVyLCAuaG9sbG93LmZwb3JhbmdlLmJ1dHRvbl9fZWRpdDpob3ZlciwgLmJ1dHRvbi5ob2xsb3cuZnBvcmFuZ2U6Zm9jdXMsIC5ob2xsb3cuZnBvcmFuZ2UuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjODA1MDAwO1xuICAgICAgICBjb2xvcjogIzgwNTAwMDsgfVxuICAgIC5idXR0b24uaG9sbG93LnN1Y2Nlc3MsIC5ob2xsb3cuc3VjY2Vzcy5idXR0b25fX2VkaXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzNhZGI3NjtcbiAgICAgIGNvbG9yOiAjM2FkYjc2OyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmhvdmVyLCAuaG9sbG93LnN1Y2Nlc3MuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy5zdWNjZXNzOmZvY3VzLCAuaG9sbG93LnN1Y2Nlc3MuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTU3NTM5O1xuICAgICAgICBjb2xvcjogIzE1NzUzOTsgfVxuICAgIC5idXR0b24uaG9sbG93Lndhcm5pbmcsIC5ob2xsb3cud2FybmluZy5idXR0b25fX2VkaXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ZmMDAwMDtcbiAgICAgIGNvbG9yOiAjZmYwMDAwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmhvdmVyLCAuaG9sbG93Lndhcm5pbmcuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLmhvbGxvdy53YXJuaW5nOmZvY3VzLCAuaG9sbG93Lndhcm5pbmcuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXJvb247XG4gICAgICAgIGNvbG9yOiBtYXJvb247IH1cbiAgICAuYnV0dG9uLmhvbGxvdy5hbGVydCwgLmhvbGxvdy5hbGVydC5idXR0b25fX2VkaXQge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VjNTg0MDtcbiAgICAgIGNvbG9yOiAjZWM1ODQwOyB9XG4gICAgICAuYnV0dG9uLmhvbGxvdy5hbGVydDpob3ZlciwgLmhvbGxvdy5hbGVydC5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b24uaG9sbG93LmFsZXJ0OmZvY3VzLCAuaG9sbG93LmFsZXJ0LmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzg4MWYwZTtcbiAgICAgICAgY29sb3I6ICM4ODFmMGU7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCwgLmRpc2FibGVkLmJ1dHRvbl9fZWRpdCwgLmJ1dHRvbltkaXNhYmxlZF0sIFtkaXNhYmxlZF0uYnV0dG9uX19lZGl0IHtcbiAgICBvcGFjaXR5OiAwLjI1O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuYnV0dG9uLmRpc2FibGVkOmhvdmVyLCAuZGlzYWJsZWQuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLmRpc2FibGVkOmZvY3VzLCAuZGlzYWJsZWQuYnV0dG9uX19lZGl0OmZvY3VzLCAuYnV0dG9uW2Rpc2FibGVkXTpob3ZlciwgW2Rpc2FibGVkXS5idXR0b25fX2VkaXQ6aG92ZXIsIC5idXR0b25bZGlzYWJsZWRdOmZvY3VzLCBbZGlzYWJsZWRdLmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgLmJ1dHRvbi5kcm9wZG93bjo6YWZ0ZXIsIC5kcm9wZG93bi5idXR0b25fX2VkaXQ6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjRlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZmZmZiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAuNGVtO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmJ1dHRvbi5hcnJvdy1vbmx5OjphZnRlciwgLmFycm93LW9ubHkuYnV0dG9uX19lZGl0OjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdG9wOiAtLjFlbTsgfVxuICAuYnV0dG9uIHN0cm9uZywgLmJ1dHRvbl9fZWRpdCBzdHJvbmcsIC5idXR0b24gYiwgLmJ1dHRvbl9fZWRpdCBiIHtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG5cbi5hY2NvcmRpb24ge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lOyB9XG5cbi5hY2NvcmRpb24taXRlbTpmaXJzdC1jaGlsZCA+IDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi1pdGVtOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAwIDA7IH1cblxuLmFjY29yZGlvbi10aXRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2Y1ZjVmNTtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGZvcmVncm91bmQoI2ZmZmZmZiwgIzIyMjIyMik7IH1cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gLmFjY29yZGlvbi10aXRsZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmNWY1ZjU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMDsgfVxuICAuYWNjb3JkaW9uLXRpdGxlOmhvdmVyLCAuYWNjb3JkaW9uLXRpdGxlOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OyB9XG4gIC5hY2NvcmRpb24tdGl0bGU6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgY29udGVudDogJysnOyB9XG4gIC5pcy1hY3RpdmUgPiAuYWNjb3JkaW9uLXRpdGxlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdcXDIwMTMnOyB9XG5cbi5hY2NvcmRpb24tY29udGVudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmNWY1ZjU7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGNvbG9yOiBmb3JlZ3JvdW5kKCNmZmZmZmYsICMyMjIyMjIpOyB9XG4gIDpsYXN0LWNoaWxkID4gLmFjY29yZGlvbi1jb250ZW50Omxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjVmNWY1OyB9XG5cbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjIyMjIyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnRbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gYTo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlOyB9XG5cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAyLjFlbTtcbiAgcGFkZGluZzogMC4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogIzIyMjIyMjtcbiAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJhZGdlLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6ICMyMjIyMjI7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLmJhZGdlLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogIzQ0NDQ0NDtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAuYmFkZ2UuZnBvcmFuZ2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmEwMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJhZGdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICMzYWRiNzY7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJhZGdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZjAwMDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmJhZGdlLmFsZXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWM1ODQwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5icmVhZGNydW1icyB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuYnJlYWRjcnVtYnM6OmJlZm9yZSwgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogJyAnO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmJyZWFkY3J1bWJzOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmJyZWFkY3J1bWJzIGxpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5icmVhZGNydW1icyBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIG1hcmdpbjogMCAwLjc1cmVtO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgY29sb3I6ICM5OTk5OTk7IH1cbiAgLmJyZWFkY3J1bWJzIGEge1xuICAgIGNvbG9yOiAjMjIyMjIyOyB9XG4gICAgLmJyZWFkY3J1bWJzIGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmJyZWFkY3J1bWJzIC5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICM5OTk5OTk7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uYnV0dG9uLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5idXR0b24tZ3JvdXA6OmJlZm9yZSwgLmJ1dHRvbi1ncm91cDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIG9yZGVyOiAxOyB9XG4gIC5idXR0b24tZ3JvdXA6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAuYnV0dG9uLWdyb3VwIC5idXR0b24sIC5idXR0b24tZ3JvdXAgLmJ1dHRvbl9fZWRpdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFweDtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIC5idXR0b24tZ3JvdXAgLmJ1dHRvbjpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwIC5idXR0b25fX2VkaXQ6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmJ1dHRvbi1ncm91cC50aW55IC5idXR0b24sIC5idXR0b24tZ3JvdXAudGlueSAuYnV0dG9uX19lZGl0IHtcbiAgICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuYnV0dG9uLWdyb3VwLnNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc21hbGwgLmJ1dHRvbl9fZWRpdCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtOyB9XG4gIC5idXR0b24tZ3JvdXAubGFyZ2UgLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5sYXJnZSAuYnV0dG9uX19lZGl0IHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07IH1cbiAgLmJ1dHRvbi1ncm91cC5leHBhbmRlZCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLmV4cGFuZGVkIC5idXR0b25fX2VkaXQge1xuICAgIGZsZXg6IDEgMSAwcHg7IH1cbiAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uX19lZGl0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyO1xuICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCMyMjIyMjIsICMwMDAwMDAsICMyMjIyMjIpOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAucHJpbWFyeSAuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLnByaW1hcnkgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5wcmltYXJ5IC5idXR0b25fX2VkaXQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjAwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZmY2MDAwOyB9XG4gIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b24sIC5idXR0b24tZ3JvdXAuc2Vjb25kYXJ5IC5idXR0b25fX2VkaXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ0NDQ7XG4gICAgY29sb3I6IGZvcmVncm91bmQoIzQ0NDQ0NCwgIzAwMDAwMCwgIzIyMjIyMik7IH1cbiAgICAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uOmZvY3VzLCAuYnV0dG9uLWdyb3VwLnNlY29uZGFyeSAuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjYwMDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJvcmRlci1jb2xvcjogI2ZmNjAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmZwb3JhbmdlIC5idXR0b24sIC5idXR0b24tZ3JvdXAuZnBvcmFuZ2UgLmJ1dHRvbl9fZWRpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTAwMDtcbiAgICBjb2xvcjogZm9yZWdyb3VuZCgjZmZhMDAwLCAjMDAwMDAwLCAjMjIyMjIyKTsgfVxuICAgIC5idXR0b24tZ3JvdXAuZnBvcmFuZ2UgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5mcG9yYW5nZSAuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmZwb3JhbmdlIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuZnBvcmFuZ2UgLmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2MDAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXItY29sb3I6ICNmZjYwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uX19lZGl0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2FkYjc2O1xuICAgIGNvbG9yOiBmb3JlZ3JvdW5kKCMzYWRiNzYsICMwMDAwMDAsICMyMjIyMjIpOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b246aG92ZXIsIC5idXR0b24tZ3JvdXAuc3VjY2VzcyAuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLnN1Y2Nlc3MgLmJ1dHRvbjpmb2N1cywgLmJ1dHRvbi1ncm91cC5zdWNjZXNzIC5idXR0b25fX2VkaXQ6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjAwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZmY2MDAwOyB9XG4gIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbl9fZWRpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICBjb2xvcjogZm9yZWdyb3VuZCgjZmYwMDAwLCAjMDAwMDAwLCAjMjIyMjIyKTsgfVxuICAgIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uLWdyb3VwLndhcm5pbmcgLmJ1dHRvbl9fZWRpdDpob3ZlciwgLmJ1dHRvbi1ncm91cC53YXJuaW5nIC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAud2FybmluZyAuYnV0dG9uX19lZGl0OmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZjYwMDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGJvcmRlci1jb2xvcjogI2ZmNjAwMDsgfVxuICAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b24sIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbl9fZWRpdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VjNTg0MDtcbiAgICBjb2xvcjogZm9yZWdyb3VuZCgjZWM1ODQwLCAjMDAwMDAwLCAjMjIyMjIyKTsgfVxuICAgIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbjpob3ZlciwgLmJ1dHRvbi1ncm91cC5hbGVydCAuYnV0dG9uX19lZGl0OmhvdmVyLCAuYnV0dG9uLWdyb3VwLmFsZXJ0IC5idXR0b246Zm9jdXMsIC5idXR0b24tZ3JvdXAuYWxlcnQgLmJ1dHRvbl9fZWRpdDpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2MDAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBib3JkZXItY29sb3I6ICNmZjYwMDA7IH1cbiAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZCAuYnV0dG9uX19lZGl0LCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbl9fZWRpdCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1tZWRpdW0gLmJ1dHRvbl9fZWRpdCB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTsgfVxuICAgICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b246bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkIC5idXR0b25fX2VkaXQ6bGFzdC1jaGlsZCwgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwgLmJ1dHRvbl9fZWRpdDpsYXN0LWNoaWxkLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLW1lZGl1bSAuYnV0dG9uOmxhc3QtY2hpbGQsIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b25fX2VkaXQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gICAgLmJ1dHRvbi1ncm91cC5zdGFja2VkLWZvci1zbWFsbCAuYnV0dG9uLCAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsIC5idXR0b25fX2VkaXQge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAgIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3ItbWVkaXVtIC5idXR0b25fX2VkaXQge1xuICAgICAgZmxleDogMSAxIDBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuYnV0dG9uLWdyb3VwLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIC5idXR0b24sIC5idXR0b24tZ3JvdXAuc3RhY2tlZC1mb3Itc21hbGwuZXhwYW5kZWQgLmJ1dHRvbl9fZWRpdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uY2FsbG91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNhbGxvdXQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLmNhbGxvdXQgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY2FsbG91dC5wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5jYWxsb3V0LnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTNlMztcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuY2FsbG91dC5mcG9yYW5nZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjFkOTtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAuY2FsbG91dC5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTFmYWVhO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gIC5jYWxsb3V0Lndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmQ5ZDk7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNhbGxvdXQuYWxlcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2U2ZTI7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNhbGxvdXQuc21hbGwge1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07IH1cbiAgLmNhbGxvdXQubGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDNyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAzcmVtOyB9XG5cbi5jbG9zZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiAjMjIyMjIyO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5jbG9zZS1idXR0b24ge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLmNsb3NlLWJ1dHRvbjpob3ZlciwgLmNsb3NlLWJ1dHRvbjpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgLmNsb3NlLWJ1dHRvbi5zbWFsbCB7XG4gICAgcmlnaHQ6IDEuODc1cmVtO1xuICAgIHRvcDogMS44NzVyZW07XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmNsb3NlLWJ1dHRvbiwgLmNsb3NlLWJ1dHRvbi5tZWRpdW0ge1xuICAgIHJpZ2h0OiAxLjg3NXJlbTtcbiAgICB0b3A6IDEuODc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi5tZW51IHtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMTAwJTsgfVxuICAubWVudSA+IGxpIHtcbiAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAgIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAubWVudSA+IGxpIHtcbiAgICAgIG91dGxpbmU6IDA7IH1cbiAgLm1lbnUgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLm1lbnUgaW5wdXQsXG4gIC5tZW51IHNlbGVjdCxcbiAgLm1lbnUgYSxcbiAgLm1lbnUgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5tZW51ID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5tZW51ID4gbGkgPiBhIHtcbiAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7IH1cbiAgICAubWVudSA+IGxpID4gYSBpbWcsXG4gICAgLm1lbnUgPiBsaSA+IGEgaSxcbiAgICAubWVudSA+IGxpID4gYSBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG4gIC5tZW51LCAubWVudS5ob3Jpem9udGFsIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgIC5tZW51ID4gbGksIC5tZW51Lmhvcml6b250YWwgPiBsaSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bzsgfVxuICAubWVudS5leHBhbmRlZCA+IGxpIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG4gIC5tZW51LmV4cGFuZGVkID4gbGk6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1lbnUudmVydGljYWwge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5tZW51LnZlcnRpY2FsID4gbGkge1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAubWVudS52ZXJ0aWNhbCA+IGxpID4gYSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgID4gbGkge1xuICAgICAgZmxleDogMCAwIGF1dG87IH1cbiAgPiBsaSB7XG4gICAgZmxleDogMSAxIDBweDsgfVxuICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgPiBsaSB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgID4gbGkgPiBhIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5tZW51LnNpbXBsZSBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLm1lbnUuc2ltcGxlIGEge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1lbnUuc2ltcGxlIGxpIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLm1lbnUuc2ltcGxlLmFsaWduLXJpZ2h0IGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLm1lbnUuYWxpZ24tcmlnaHQge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgLm1lbnUuaWNvbi10b3AgPiBsaSA+IGEge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5tZW51Lmljb24tdG9wID4gbGkgPiBhIGltZyxcbiAgICAubWVudS5pY29uLXRvcCA+IGxpID4gYSBpLFxuICAgIC5tZW51Lmljb24tdG9wID4gbGkgPiBhIHN2ZyB7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubWVudS5pY29uLXRvcC52ZXJ0aWNhbCBhID4gc3BhbiB7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG4gIC5tZW51Lm5lc3RlZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLm1lbnUgLmFjdGl2ZSA+IGEge1xuICAgIGJhY2tncm91bmQ6ICMyMjIyMjI7XG4gICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLm1lbnUubWVudS1ib3JkZXJlZCBsaSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Y1ZjVmNTsgfVxuICAgIC5tZW51Lm1lbnUtYm9yZGVyZWQgbGk6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgYm9yZGVyLXRvcDogMDsgfVxuICAubWVudS5tZW51LWhvdmVyIGxpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1OyB9XG5cbi5tZW51LXRleHQge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuLm1lbnUtY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm1lbnUtY2VudGVyZWQgPiAubWVudSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cblxuLm5vLWpzIFtkYXRhLXJlc3BvbnNpdmUtbWVudV0gdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZW51LWljb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5tZW51LWljb246OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDdweCAwICNmZmZmZmYsIDAgMTRweCAwICNmZmZmZmY7XG4gICAgY29udGVudDogJyc7IH1cbiAgLm1lbnUtaWNvbjpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM5OTk5OTk7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjOTk5OTk5LCAwIDE0cHggMCAjOTk5OTk5OyB9XG5cbi5tZW51LWljb24uZGFyayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1lbnUtaWNvbi5kYXJrOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjMDAwMDAwLCAwIDE0cHggMCAjMDAwMDAwO1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5tZW51LWljb24uZGFyazpob3Zlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICM4ODg4ODg7XG4gICAgYm94LXNoYWRvdzogMCA3cHggMCAjODg4ODg4LCAwIDE0cHggMCAjODg4ODg4OyB9XG5cbi5pcy1kcmlsbGRvd24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmlzLWRyaWxsZG93biBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLWRyaWxsZG93bi5hbmltYXRlLWhlaWdodCB7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7IH1cblxuLmlzLWRyaWxsZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IC0xO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhcjsgfVxuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUuaXMtYWN0aXZlIHtcbiAgICB6LWluZGV4OiAxO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgLmlzLWRyaWxsZG93bi1zdWJtZW51LmlzLWNsb3Npbmcge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTsgfVxuXG4uZHJpbGxkb3duLXN1Ym1lbnUtY292ZXItcHJldmlvdXMge1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG5cbi5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5pcy1kcmlsbGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMjIyMjIyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgIHJpZ2h0OiAxcmVtOyB9XG5cbi5qcy1kcmlsbGRvd24tYmFjayA+IGE6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyMjIyMjIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7IH1cblxuLmRyb3Bkb3duLXBhbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuZHJvcGRvd24tcGFuZS5pcy1vcGVuIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5kcm9wZG93bi1wYW5lLnRpbnkge1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUuc21hbGwge1xuICB3aWR0aDogMjAwcHg7IH1cblxuLmRyb3Bkb3duLXBhbmUubGFyZ2Uge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvOyB9XG5cbi5kcm9wZG93bi5tZW51ID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuXG4uZHJvcGRvd24ubWVudSA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBpbnNldCA2cHg7XG4gIGNvbnRlbnQ6ICcnO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjMjIyMjIyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICByaWdodDogNXB4O1xuICBtYXJnaW4tdG9wOiAtM3B4OyB9XG5cbltkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuZHJvcGRvd24ubWVudSBhIHtcbiAgb3V0bGluZTogMDsgfVxuXG4ubm8tanMgLmRyb3Bkb3duLm1lbnUgdWwge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5kcm9wZG93bi5tZW51LnZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICB0b3A6IDA7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogMTAwJTtcbiAgbGVmdDogYXV0bzsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICByaWdodDogYXV0bztcbiAgbGVmdDogMTAwJTsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICByaWdodDogMTRweDsgfVxuXG4uZHJvcGRvd24ubWVudS52ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IGluc2V0IDZweDtcbiAgY29udGVudDogJyc7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyMjIyMjIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cblxuLmRyb3Bkb3duLm1lbnUudmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogaW5zZXQgNnB4O1xuICBjb250ZW50OiAnJztcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzIyMjIyMjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5vcGVucy1sZWZ0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS1ob3Jpem9udGFsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6ICMyMjIyMjIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtM3B4OyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDA7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lm1lZGl1bS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkgPiBhOjphZnRlciB7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyMjIyMjIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUubWVkaXVtLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMjIyMjIyOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAxMDAlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtaG9yaXpvbnRhbCA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogIzIyMjIyMiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICByaWdodDogNXB4O1xuICAgIG1hcmdpbi10b3A6IC0zcHg7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtcmlnaHQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTAwJTsgfVxuICAuZHJvcGRvd24ubWVudS5sYXJnZS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LmxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyMjIyMjIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUubGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMyMjIyMjI7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtaG9yaXpvbnRhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjIyMjIyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaSAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgdG9wOiAwOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS54bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLWxlZnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMjIyMjIyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyB9XG4gIC5kcm9wZG93bi5tZW51LnhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzIyMjIyMjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLmRyb3Bkb3duLm1lbnUueHhsYXJnZS1ob3Jpem9udGFsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLWhvcml6b250YWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMDsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLWhvcml6b250YWwgPiBsaS5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH1cbiAgLmRyb3Bkb3duLm1lbnUueHhsYXJnZS1ob3Jpem9udGFsID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjIyMjIyIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgbWFyZ2luLXRvcDogLTNweDsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkgLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgIHRvcDogMDsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaS5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG4gIC5kcm9wZG93bi5tZW51Lnh4bGFyZ2UtdmVydGljYWwgPiBsaSA+IGE6OmFmdGVyIHtcbiAgICByaWdodDogMTRweDsgfVxuICAuZHJvcGRvd24ubWVudS54eGxhcmdlLXZlcnRpY2FsID4gbGkub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCA2cHg7XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICMyMjIyMjIgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7IH1cbiAgLmRyb3Bkb3duLm1lbnUueHhsYXJnZS12ZXJ0aWNhbCA+IGxpLm9wZW5zLXJpZ2h0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzIyMjIyMjsgfSB9XG5cbi5kcm9wZG93bi5tZW51LmFsaWduLXJpZ2h0IC5pcy1kcm9wZG93bi1zdWJtZW51LmZpcnN0LXN1YiB7XG4gIHRvcDogMTAwJTtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IGF1dG87IH1cblxuLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwge1xuICB3aWR0aDogMTAwcHg7IH1cbiAgLmlzLWRyb3Bkb3duLW1lbnUudmVydGljYWwuYWxpZ24tcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDsgfVxuXG4uaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IGE6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBtYXJnaW4tdG9wOiAtNnB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogYXV0bzsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtbGVmdCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogMTAwJTtcbiAgICBsZWZ0OiBhdXRvOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlOyB9XG5cbi5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYTo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAxNHB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudC5vcGVucy1sZWZ0ID4gYTo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDZweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzIyMjIyMiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDsgfVxuICAuaXMtZHJvcGRvd24tc3VibWVudSAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogaW5zZXQgNnB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMjIyMjIyOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51ID4gbGkge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5pcy1kcm9wZG93bi1zdWJtZW51LmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnJlc3BvbnNpdmUtZW1iZWQsXG4uZmxleC12aWRlbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yZXNwb25zaXZlLWVtYmVkIGlmcmFtZSxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgb2JqZWN0LFxuICAucmVzcG9uc2l2ZS1lbWJlZCBlbWJlZCxcbiAgLnJlc3BvbnNpdmUtZW1iZWQgdmlkZW8sXG4gIC5mbGV4LXZpZGVvIGlmcmFtZSxcbiAgLmZsZXgtdmlkZW8gb2JqZWN0LFxuICAuZmxleC12aWRlbyBlbWJlZCxcbiAgLmZsZXgtdmlkZW8gdmlkZW8ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnJlc3BvbnNpdmUtZW1iZWQud2lkZXNjcmVlbixcbiAgLmZsZXgtdmlkZW8ud2lkZXNjcmVlbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMzMzM3JlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiAjMjIyMjIyO1xuICBjb2xvcjogI2ZmZmZmZjsgfVxuICAubGFiZWwucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogIzIyMjIyMjtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAubGFiZWwuc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiAjNDQ0NDQ0O1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC5sYWJlbC5mcG9yYW5nZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmYTAwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAubGFiZWwuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZDogIzNhZGI3NjtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAubGFiZWwud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDAwMDtcbiAgICBjb2xvcjogIzAwMDAwMDsgfVxuICAubGFiZWwuYWxlcnQge1xuICAgIGJhY2tncm91bmQ6ICNlYzU4NDA7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cblxuLm1lZGlhLW9iamVjdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5tZWRpYS1vYmplY3QgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgLm1lZGlhLW9iamVjdC5zdGFjay1mb3Itc21hbGwgLm1lZGlhLW9iamVjdC1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5tZWRpYS1vYmplY3Quc3RhY2stZm9yLXNtYWxsIC5tZWRpYS1vYmplY3Qtc2VjdGlvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5tZWRpYS1vYmplY3Qtc2VjdGlvbiB7XG4gIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC5tZWRpYS1vYmplY3Qtc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb246bGFzdC1jaGlsZDpub3QoOm50aC1jaGlsZCgyKSkge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24gPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ubWFpbi1zZWN0aW9uIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9XG5cbi5pcy1vZmYtY2FudmFzLW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5qcy1vZmYtY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzIGVhc2UsIHZpc2liaWxpdHkgMC41cyBlYXNlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheS5pcy1jbG9zYWJsZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1hYnNvbHV0ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC5qcy1vZmYtY2FudmFzLW92ZXJsYXkuaXMtb3ZlcmxheS1maXhlZCB7XG4gICAgcG9zaXRpb246IGZpeGVkOyB9XG5cbi5vZmYtY2FudmFzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9mZi1jYW52YXMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gLm9mZi1jYW52YXMge1xuICAgIG91dGxpbmU6IDA7IH1cbiAgLm9mZi1jYW52YXMuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAxMDsgfVxuICAgIC5vZmYtY2FudmFzLmlzLXRyYW5zaXRpb24tb3ZlcmxhcC5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuICAub2ZmLWNhbnZhcy5pcy1vcGVuIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfVxuXG4ub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgZWFzZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZjVmNWY1OyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZS5pcy10cmFuc2l0aW9uLW92ZXJsYXAge1xuICAgIHotaW5kZXg6IDEwOyB9XG4gICAgLm9mZi1jYW52YXMtYWJzb2x1dGUuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4ge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjcpOyB9XG4gIC5vZmYtY2FudmFzLWFic29sdXRlLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG5cbi5wb3NpdGlvbi1sZWZ0IHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNTBweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgLnBvc2l0aW9uLWxlZnQuaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNTBweCk7IH1cbiAgLnBvc2l0aW9uLWxlZnQuaXMtdHJhbnNpdGlvbi1wdXNoOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICAgY29udGVudDogXCIgXCI7IH1cbiAgLnBvc2l0aW9uLWxlZnQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7IH1cblxuLnBvc2l0aW9uLXJpZ2h0IHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDI1MHB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNTBweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTsgfVxuICAucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1wdXNoOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICBjb250ZW50OiBcIiBcIjsgfVxuICAucG9zaXRpb24tcmlnaHQuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7IH1cblxuLnBvc2l0aW9uLXRvcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwcHgpO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG4gIC5wb3NpdGlvbi10b3AuaXMtb3BlbiB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7IH1cbiAgLnBvc2l0aW9uLXRvcC5pcy10cmFuc2l0aW9uLXB1c2g6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIGNvbnRlbnQ6IFwiIFwiOyB9XG4gIC5wb3NpdGlvbi10b3AuaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7IH1cblxuLnBvc2l0aW9uLWJvdHRvbSB7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjUwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTBweCk7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5pcy1vcGVuIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTBweCk7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5pcy10cmFuc2l0aW9uLXB1c2g6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIGNvbnRlbnQ6IFwiIFwiOyB9XG4gIC5wb3NpdGlvbi1ib3R0b20uaXMtdHJhbnNpdGlvbi1vdmVybGFwLmlzLW9wZW4gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7IH1cblxuLm9mZi1jYW52YXMtY29udGVudCB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2U7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1tZWRpdW0gfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyNTBweDsgfVxuICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1tZWRpdW0ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLW1lZGl1bSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLXRvcDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLWJvdHRvbS5yZXZlYWwtZm9yLW1lZGl1bSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbWVkaXVtIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNTBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItbGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci1sYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLWxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci1sYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3ItbGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi1yaWdodC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXRvcC5yZXZlYWwtZm9yLXhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tdG9wLnJldmVhbC1mb3IteGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiAyNTBweDsgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci14bGFyZ2UgfiAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1MHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAucG9zaXRpb24tbGVmdC5yZXZlYWwtZm9yLXh4bGFyZ2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnBvc2l0aW9uLWxlZnQucmV2ZWFsLWZvci14eGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUwcHg7IH1cbiAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tcmlnaHQucmV2ZWFsLWZvci14eGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDI1MHB4OyB9XG4gIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eGxhcmdlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgei1pbmRleDogMTsgfVxuICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci14eGxhcmdlIH4gLm9mZi1jYW52YXMtY29udGVudCB7XG4gICAgICBtYXJnaW4tdG9wOiAyNTBweDsgfVxuICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHhsYXJnZSB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucG9zaXRpb24tYm90dG9tLnJldmVhbC1mb3IteHhsYXJnZSB+IC5vZmYtY2FudmFzLWNvbnRlbnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjUwcHg7IH0gfVxuXG4ub3JiaXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLm9yYml0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLm9yYml0LXNsaWRlIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLm9yYml0LXNsaWRlLm5vLW1vdGlvbnVpLmlzLWFjdGl2ZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7IH1cblxuLm9yYml0LWZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ub3JiaXQtaW1hZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7IH1cblxuLm9yYml0LWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgY29sb3I6ICNmZmZmZmY7IH1cblxuLm9yYml0LXByZXZpb3VzLCAub3JiaXQtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtcHJldmlvdXMsIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAub3JiaXQtbmV4dCB7XG4gICAgb3V0bGluZTogMDsgfVxuICAub3JiaXQtcHJldmlvdXM6aG92ZXIsIC5vcmJpdC1uZXh0OmhvdmVyLCAub3JiaXQtcHJldmlvdXM6YWN0aXZlLCAub3JiaXQtbmV4dDphY3RpdmUsIC5vcmJpdC1wcmV2aW91czpmb2N1cywgLm9yYml0LW5leHQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuXG4ub3JiaXQtcHJldmlvdXMge1xuICBsZWZ0OiAwOyB9XG5cbi5vcmJpdC1uZXh0IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDA7IH1cblxuLm9yYml0LWJ1bGxldHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIC5vcmJpdC1idWxsZXRzIHtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIC5vcmJpdC1idWxsZXRzIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBtYXJnaW46IDAuMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTk5OTsgfVxuICAgIC5vcmJpdC1idWxsZXRzIGJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4OyB9XG4gICAgLm9yYml0LWJ1bGxldHMgYnV0dG9uLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4ODg4OyB9XG5cbi5wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLnBhZ2luYXRpb246OmJlZm9yZSwgLnBhZ2luYXRpb246OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAucGFnaW5hdGlvbjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5wYWdpbmF0aW9uIGxpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuMDYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5wYWdpbmF0aW9uIGxpOmxhc3QtY2hpbGQsIC5wYWdpbmF0aW9uIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkge1xuICAgICAgLnBhZ2luYXRpb24gbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAucGFnaW5hdGlvbiBhLFxuICAucGFnaW5hdGlvbiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMTg3NXJlbSAwLjYyNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgLnBhZ2luYXRpb24gYTpob3ZlcixcbiAgICAucGFnaW5hdGlvbiBidXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2Y1ZjVmNTsgfVxuICAucGFnaW5hdGlvbiAuY3VycmVudCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGJhY2tncm91bmQ6ICMyMjIyMjI7XG4gICAgY29sb3I6IGZvcmVncm91bmQoIzIyMjIyMik7XG4gICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbG9yOiAjOTk5OTk5O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAucGFnaW5hdGlvbiAuZGlzYWJsZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnBhZ2luYXRpb24gLmVsbGlwc2lzOjphZnRlciB7XG4gICAgcGFkZGluZzogMC4xODc1cmVtIDAuNjI1cmVtO1xuICAgIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICAgIGNvbG9yOiAjMDAwMDAwOyB9XG5cbi5wYWdpbmF0aW9uLXByZXZpb3VzIGE6OmJlZm9yZSxcbi5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBjb250ZW50OiAnXFwwMGFiJzsgfVxuXG4ucGFnaW5hdGlvbi1uZXh0IGE6OmFmdGVyLFxuLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGNvbnRlbnQ6ICdcXDAwYmInOyB9XG5cbi5wcm9ncmVzcyB7XG4gIGhlaWdodDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTk5OTsgfVxuICAucHJvZ3Jlc3MucHJpbWFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7IH1cbiAgLnByb2dyZXNzLnNlY29uZGFyeSAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NDQ0NDQ7IH1cbiAgLnByb2dyZXNzLmZwb3JhbmdlIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTAwMDsgfVxuICAucHJvZ3Jlc3Muc3VjY2VzcyAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYWRiNzY7IH1cbiAgLnByb2dyZXNzLndhcm5pbmcgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwMDAwOyB9XG4gIC5wcm9ncmVzcy5hbGVydCAucHJvZ3Jlc3MtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlYzU4NDA7IH1cblxuLnByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjIyMjI7IH1cblxuLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTsgfVxuXG4uc2xpZGVyLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMC41cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5OTk5O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuICAuc2xpZGVyLWZpbGwuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7IH1cblxuLnNsaWRlci1oYW5kbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMS40cmVtO1xuICBoZWlnaHQ6IDEuNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIyMjIyMjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAuc2xpZGVyLWhhbmRsZSB7XG4gICAgb3V0bGluZTogMDsgfVxuICAuc2xpZGVyLWhhbmRsZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzFkMWQxZDsgfVxuICAuc2xpZGVyLWhhbmRsZS5pcy1kcmFnZ2luZyB7XG4gICAgdHJhbnNpdGlvbjogYWxsIDBzIGxpbmVhcjsgfVxuXG4uc2xpZGVyLmRpc2FibGVkLFxuLnNsaWRlcltkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjI1O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG5cbi5zbGlkZXIudmVydGljYWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwLjVyZW07XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOyB9XG4gIC5zbGlkZXIudmVydGljYWwgLnNsaWRlci1maWxsIHtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDAuNXJlbTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4gIC5zbGlkZXIudmVydGljYWwgLnNsaWRlci1oYW5kbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG5cbi5zdGlja3ktY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5zdGlja3kge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cblxuLnN0aWNreS5pcy1zdHVjayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNTsgfVxuICAuc3RpY2t5LmlzLXN0dWNrLmlzLWF0LXRvcCB7XG4gICAgdG9wOiAwOyB9XG4gIC5zdGlja3kuaXMtc3R1Y2suaXMtYXQtYm90dG9tIHtcbiAgICBib3R0b206IDA7IH1cblxuLnN0aWNreS5pcy1hbmNob3JlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IGF1dG87IH1cbiAgLnN0aWNreS5pcy1hbmNob3JlZC5pcy1hdC1ib3R0b20ge1xuICAgIGJvdHRvbTogMDsgfVxuXG4uc3dpdGNoIHtcbiAgaGVpZ2h0OiAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLnN3aXRjaC1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgb3BhY2l0eTogMDsgfVxuXG4uc3dpdGNoLXBhZGRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJhY2tncm91bmQ6ICM5OTk5OTk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlLW91dDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgaW5wdXQgKyAuc3dpdGNoLXBhZGRsZSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGVhc2Utb3V0O1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZSB7XG4gICAgYmFja2dyb3VuZDogIzIyMjIyMjsgfVxuICAgIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgICAgbGVmdDogMi4yNXJlbTsgfVxuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gaW5wdXQ6Zm9jdXMgfiAuc3dpdGNoLXBhZGRsZSB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4uc3dpdGNoLWFjdGl2ZSwgLnN3aXRjaC1pbmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4uc3dpdGNoLWFjdGl2ZSB7XG4gIGxlZnQ6IDglO1xuICBkaXNwbGF5OiBub25lOyB9XG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+IC5zd2l0Y2gtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc3dpdGNoLWluYWN0aXZlIHtcbiAgcmlnaHQ6IDE1JTsgfVxuICBpbnB1dDpjaGVja2VkICsgbGFiZWwgPiAuc3dpdGNoLWluYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5zd2l0Y2gudGlueSB7XG4gIGhlaWdodDogMS41cmVtOyB9XG4gIC5zd2l0Y2gudGlueSAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjYyNXJlbTsgfVxuICAuc3dpdGNoLnRpbnkgLnN3aXRjaC1wYWRkbGU6OmFmdGVyIHtcbiAgICB0b3A6IDAuMjVyZW07XG4gICAgbGVmdDogMC4yNXJlbTtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07IH1cbiAgLnN3aXRjaC50aW55IGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDEuNzVyZW07IH1cblxuLnN3aXRjaC5zbWFsbCB7XG4gIGhlaWdodDogMS43NXJlbTsgfVxuICAuc3dpdGNoLnNtYWxsIC5zd2l0Y2gtcGFkZGxlIHtcbiAgICB3aWR0aDogMy41cmVtO1xuICAgIGhlaWdodDogMS43NXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07IH1cbiAgLnN3aXRjaC5zbWFsbCAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogMC4yNXJlbTtcbiAgICBsZWZ0OiAwLjI1cmVtO1xuICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgIGhlaWdodDogMS4yNXJlbTsgfVxuICAuc3dpdGNoLnNtYWxsIGlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIGxlZnQ6IDJyZW07IH1cblxuLnN3aXRjaC5sYXJnZSB7XG4gIGhlaWdodDogMi41cmVtOyB9XG4gIC5zd2l0Y2gubGFyZ2UgLnN3aXRjaC1wYWRkbGUge1xuICAgIHdpZHRoOiA1cmVtO1xuICAgIGhlaWdodDogMi41cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuc3dpdGNoLmxhcmdlIC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgdG9wOiAwLjI1cmVtO1xuICAgIGxlZnQ6IDAuMjVyZW07XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAycmVtOyB9XG4gIC5zd2l0Y2gubGFyZ2UgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgbGVmdDogMi43NXJlbTsgfVxuXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIHRhYmxlIHRoZWFkLFxuICB0YWJsZSB0Ym9keSxcbiAgdGFibGUgdGZvb3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMmYyZjI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICB0YWJsZSBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgdGFibGUgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgdGFibGUgdGZvb3Qge1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gICAgY29sb3I6ICMwMDAwMDA7IH1cbiAgdGFibGUgdGhlYWQgdHIsXG4gIHRhYmxlIHRmb290IHRyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICB0YWJsZSB0aGVhZCB0aCxcbiAgdGFibGUgdGhlYWQgdGQsXG4gIHRhYmxlIHRmb290IHRoLFxuICB0YWJsZSB0Zm9vdCB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtIDAuNjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgdGFibGUgdGJvZHkgdGgsXG4gIHRhYmxlIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42MjVyZW0gMC42MjVyZW07IH1cbiAgdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjI7IH1cbiAgdGFibGUudW5zdHJpcGVkIHRib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gICAgdGFibGUudW5zdHJpcGVkIHRib2R5IHRyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YyZjJmMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gIHRhYmxlLnN0YWNrIHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIHRhYmxlLnN0YWNrIHRyLFxuICB0YWJsZS5zdGFjayB0aCxcbiAgdGFibGUuc3RhY2sgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRhYmxlLnN0YWNrIHRkIHtcbiAgICBib3JkZXItdG9wOiAwOyB9IH1cblxudGFibGUuc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbnRhYmxlLmhvdmVyIHRoZWFkIHRyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDsgfVxuXG50YWJsZS5ob3ZlciB0Zm9vdCB0cjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7IH1cblxudGFibGUuaG92ZXIgdGJvZHkgdHI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XG5cbnRhYmxlLmhvdmVyOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVkZWQ7IH1cblxuLnRhYmxlLXNjcm9sbCB7XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cbiAgLnRhYmxlLXNjcm9sbCB0YWJsZSB7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuLnRhYnMge1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLnRhYnM6OmJlZm9yZSwgLnRhYnM6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBvcmRlcjogMTsgfVxuICAudGFiczo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi50YWJzLnZlcnRpY2FsID4gbGkge1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi50YWJzLnNpbXBsZSA+IGxpID4gYSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnRhYnMuc2ltcGxlID4gbGkgPiBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4udGFicy5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzIyMjIyMjsgfVxuICAudGFicy5wcmltYXJ5ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogZm9yZWdyb3VuZCgjMjIyMjIyKTsgfVxuICAgIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6aG92ZXIsIC50YWJzLnByaW1hcnkgPiBsaSA+IGE6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogIzJkMmQyZDsgfVxuXG4udGFicy10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgLnRhYnMtdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMXB4ICFpbXBvcnRhbnQ7IH0gfVxuICAudGFicy10aXRsZTo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC50YWJzLXRpdGxlID4gYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCAwIDAgMC4zMTI1cmVtO1xuICAgIHBhZGRpbmc6IDE3cHggMjRweDtcbiAgICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuODc1cmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wOWVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgYm9yZGVyOiAwLjA2MjVyZW0gc29saWQgI2UwZTBlMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zczsgfVxuICAgIC50YWJzLXRpdGxlID4gYTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMC4xMjVyZW07XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMC4xODc1cmVtO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYTAwMDtcbiAgICAgIGJvcmRlci1sZWZ0OiAwLjM3NXJlbSBzb2xpZCAjZmZmZmZmO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwLjM3NXJlbSBzb2xpZCAjZmZmZmZmO1xuICAgICAgdHJhbnNpdGlvbjogLjNzOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGhlaWdodDogMC4zMTI1cmVtO1xuICAgICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCB0cmFuc3BhcmVudCAwJSwgIzIyMjIyMiAxMDAlKTtcbiAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQodG9wLCBib3R0b20sIGNvbG9yLXN0b3AoMCUsIHRyYW5zcGFyZW50KSwgY29sb3Itc3RvcCgxMDAlLCAjMjIyMjIyKSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIHRyYW5zcGFyZW50IDAlLCAjMjIyMjIyIDEwMCUpO1xuICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgdHJhbnNwYXJlbnQgMCUsICMyMjIyMjIgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgdHJhbnNwYXJlbnQgMCUsICMyMjIyMjIgMTAwJSk7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCAwJSwgIzIyMjIyMiAxMDAlKTtcbiAgICAgIG9wYWNpdHk6IC4wNjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzOyB9XG4gICAgLnRhYnMtdGl0bGUgPiBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgICAgIC50YWJzLXRpdGxlID4gYTpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAuMDI7IH1cbiAgICAudGFicy10aXRsZSA+IGE6Zm9jdXMsIC50YWJzLXRpdGxlID4gYVthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkICNlMGUwZTA7IH1cbiAgLnRhYnMtdGl0bGUuaXMtYWN0aXZlID4gYSB7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2ZmZmZmZjsgfVxuICAgIC50YWJzLXRpdGxlLmlzLWFjdGl2ZSA+IGE6OmJlZm9yZSB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpOyB9XG4gICAgLnRhYnMtdGl0bGUuaXMtYWN0aXZlID4gYTo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuXG4udGFicy1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgdHJhbnNpdGlvbjogYWxsIC41cyBlYXNlOyB9XG5cbi50YWJzLWNvbnRlbnQudmVydGljYWwge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBib3JkZXItbGVmdDogMDsgfVxuXG4udGFicy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDFyZW07IH1cbiAgLnRhYnMtcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4udGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGJvcmRlcjogc29saWQgNHB4ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGxpbmUtaGVpZ2h0OiAwOyB9XG5cbmEudGh1bWJuYWlsIHtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dDsgfVxuICBhLnRodW1ibmFpbDpob3ZlciwgYS50aHVtYm5haWw6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHJnYmEoMzQsIDM0LCAzNCwgMC41KTsgfVxuICBhLnRodW1ibmFpbCBpbWFnZSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4udGl0bGUtYmFyIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC50aXRsZS1iYXIgLm1lbnUtaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtOyB9XG5cbi50aXRsZS1iYXItbGVmdCxcbi50aXRsZS1iYXItcmlnaHQge1xuICBmbGV4OiAxIDEgMHB4OyB9XG5cbi50aXRsZS1iYXItcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGl0bGUtYmFyLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uaGFzLXRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICM4ODg4ODg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGhlbHA7IH1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgMC42NDk1cmVtKTtcbiAgei1pbmRleDogMTIwMDtcbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjZmZmZmZmOyB9XG4gIC50b29sdGlwOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXI6IGluc2V0IDAuNzVyZW07XG4gICAgY29udGVudDogJyc7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICMwMDAwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC50b29sdGlwLnRvcDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogMTAwJTtcbiAgICBib3R0b206IGF1dG87IH1cbiAgLnRvb2x0aXAubGVmdDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjMDAwMDAwO1xuICAgIHRvcDogNTAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAudG9vbHRpcC5yaWdodDo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiBpbnNldCAwLjc1cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMDAwMDAwIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4udG9wLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC50b3AtYmFyLFxuICAudG9wLWJhciB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTsgfVxuICAudG9wLWJhciBpbnB1dCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLnRvcC1iYXIgLmlucHV0LWdyb3VwLWZpZWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnRvcC1iYXIgaW5wdXQuYnV0dG9uLCAudG9wLWJhciBpbnB1dC5idXR0b25fX2VkaXQge1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC50b3AtYmFyIC50b3AtYmFyLWxlZnQsXG4gIC50b3AtYmFyIC50b3AtYmFyLXJpZ2h0IHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gICAgLnRvcC1iYXIge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgIC50b3AtYmFyIC50b3AtYmFyLWxlZnQge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAgICAgLnRvcC1iYXIgLnRvcC1iYXItcmlnaHQge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bzsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLW1lZGl1bSAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbWVkaXVtIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3ItbGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLWxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5LjkzNzVlbSkge1xuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXhsYXJnZSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXhsYXJnZSAudG9wLWJhci1sZWZ0LFxuICAgICAgLnRvcC1iYXIuc3RhY2tlZC1mb3IteGxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIC50b3AtYmFyLnN0YWNrZWQtZm9yLXh4bGFyZ2Uge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC50b3AtYmFyLnN0YWNrZWQtZm9yLXh4bGFyZ2UgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci5zdGFja2VkLWZvci14eGxhcmdlIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi50b3AtYmFyLXRpdGxlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1hcmdpbjogMXJlbTsgfVxuXG4udG9wLWJhci1sZWZ0LFxuLnRvcC1iYXItcmlnaHQge1xuICBmbGV4OiAwIDAgYXV0bzsgfVxuXG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAuaGlkZS1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMGVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkge1xuICAuc2hvdy1mb3Itc21hbGwtb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gIC5oaWRlLWZvci1tZWRpdW0ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkgYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAuc2hvdy1mb3ItbWVkaXVtLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gIC5oaWRlLWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuaGlkZS1mb3ItbGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAuc2hvdy1mb3IteGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSBhbmQgKG1heC13aWR0aDogODkuOTM3NWVtKSB7XG4gIC5oaWRlLWZvci14bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5zaG93LWZvci14bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAuaGlkZS1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTM3NWVtKSB7XG4gIC5zaG93LWZvci14eGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC5oaWRlLWZvci14eGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5LjkzNzVlbSkge1xuICAuc2hvdy1mb3IteHhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc2hvdy1mb3Itc3IsXG4uc2hvdy1vbi1mb2N1cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsgfVxuXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bzsgfVxuXG4uc2hvdy1mb3ItbGFuZHNjYXBlLFxuLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5zaG93LWZvci1sYW5kc2NhcGUsXG4gICAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9IH1cblxuLmZsb2F0LWxlZnQge1xuICBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50OyB9XG5cbi5mbG9hdC1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4uY2xlYXJmaXg6OmJlZm9yZSwgLmNsZWFyZml4OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiAnICc7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG9yZGVyOiAxOyB9XG5cbi5jbGVhcmZpeDo6YWZ0ZXIge1xuICBjbGVhcjogYm90aDsgfVxuXG4uYWxpZ24tcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYWxpZ24tanVzdGlmeSB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuXG4uYWxpZ24tc3BhY2VkIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IH1cblxuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi5hbGlnbi1zZWxmLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLmFsaWduLWJvdHRvbSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uYWxpZ24tbWlkZGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uYWxpZ24tc2VsZi1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4uYWxpZ24tc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxuXG4uc21hbGwtb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi5zbWFsbC1vcmRlci0yIHtcbiAgb3JkZXI6IDI7IH1cblxuLnNtYWxsLW9yZGVyLTMge1xuICBvcmRlcjogMzsgfVxuXG4uc21hbGwtb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi5zbWFsbC1vcmRlci01IHtcbiAgb3JkZXI6IDU7IH1cblxuLnNtYWxsLW9yZGVyLTYge1xuICBvcmRlcjogNjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLm1lZGl1bS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5tZWRpdW0tb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLm1lZGl1bS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5tZWRpdW0tb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkge1xuICAubGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC5sYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAubGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC5sYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLnhsYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAueGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC54bGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLnhsYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAueGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC54bGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC54eGxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC54eGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC54eGxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC54eGxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC54eGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC54eGxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuY29kZSxcbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgQ291cmllciwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHRleHQtc2hhZG93OiAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41ZW07XG4gIGNvbG9yOiAjZjVmNWY1O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDA7XG4gIHRhYi1zaXplOiA0O1xuICBoeXBoZW5zOiBub25lOyB9XG5cbi8qIENvZGUgYmxvY2tzICovXG5wcmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMWVtO1xuICBtYXJnaW46IDJlbSAwO1xuICBiYWNrZ3JvdW5kOiAjMjIyMjIyOyB9XG5cbi8qIElubGluZSBjb2RlICovXG46bm90KHByZSkgPiBjb2RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG4gIG1hcmdpbjogMCA0cHg7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiAjMjIyMjIyOyB9XG5cbnByZSAudG9rZW4uY29tbWVudCwgcHJlIC50b2tlbi5wcm9sb2csIHByZSAudG9rZW4uZG9jdHlwZSwgcHJlIC50b2tlbi5jZGF0YSB7XG4gIGNvbG9yOiBzbGF0ZWdyYXk7IH1cblxucHJlIC50b2tlbi5wdW5jdHVhdGlvbiwgcHJlIC50b2tlbi5vcGVyYXRvciwgcHJlIC50b2tlbi5lbnRpdHksIHByZSAudG9rZW4udXJsLCBwcmUgLnRva2VuLnZhcmlhYmxlIHtcbiAgY29sb3I6ICNmNWY1ZjU7IH1cblxucHJlIC50b2tlbiAubmFtZXNwYWNlIHtcbiAgb3BhY2l0eTogLjc7IH1cblxucHJlIC50b2tlbi5wcm9wZXJ0eSwgcHJlIC50b2tlbi50YWcsIHByZSAudG9rZW4uY29uc3RhbnQsIHByZSAudG9rZW4uc3ltYm9sLCBwcmUgLnRva2VuLmRlbGV0ZWQge1xuICBjb2xvcjogI2Y5MjY3MjsgfVxuXG5wcmUgLnRva2VuLmJvb2xlYW4sIHByZSAudG9rZW4ubnVtYmVyIHtcbiAgY29sb3I6ICNhZTgxZmY7IH1cblxucHJlIC50b2tlbi5zZWxlY3RvciwgcHJlIC50b2tlbi5hdHRyLW5hbWUsIHByZSAudG9rZW4uc3RyaW5nLCBwcmUgLnRva2VuLmNoYXIsIHByZSAudG9rZW4uYnVpbHRpbiwgcHJlIC50b2tlbi5pbnNlcnRlZCB7XG4gIGNvbG9yOiAjYTZlMjJlOyB9XG5cbnByZSAudG9rZW4uYXRydWxlLCBwcmUgLnRva2VuLmF0dHItdmFsdWUsIHByZSAudG9rZW4uZnVuY3Rpb24ge1xuICBjb2xvcjogI2U2ZGI3NDsgfVxuXG5wcmUgLnRva2VuLmtleXdvcmQge1xuICBjb2xvcjogIzY2ZDllZjsgfVxuXG5wcmUgLnRva2VuLnJlZ2V4LCBwcmUgLnRva2VuLmltcG9ydGFudCB7XG4gIGNvbG9yOiAjZmQ5NzFmOyB9XG5cbnByZSAudG9rZW4uaW1wb3J0YW50LCBwcmUgLnRva2VuLmJvbGQge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5wcmUgLnRva2VuLml0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5wcmUgLnRva2VuLmVudGl0eSB7XG4gIGN1cnNvcjogaGVscDsgfVxuXG5wcmUubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsXG5wcmUgLnN0eWxlIC50b2tlbi5zdHJpbmcge1xuICBjb2xvcjogI2UwZTBlMDsgfVxuXG5wcmUubGluZS1udW1iZXJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDU1cHg7XG4gIGNvdW50ZXItcmVzZXQ6IGxpbmVudW1iZXI7IH1cbiAgcHJlLmxpbmUtbnVtYmVycyA+IGNvZGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICBwcmUubGluZS1udW1iZXJzIC5saW5lLW51bWJlcnMtcm93cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRvcDogLTEycHg7XG4gICAgYm90dG9tOiAtMTJweDtcbiAgICBsZWZ0OiAtNTVweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBwYWRkaW5nOiAxM3B4IDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIHByZS5saW5lLW51bWJlcnMgLmxpbmUtbnVtYmVycy1yb3dzID4gc3BhbiB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGxpbmVudW1iZXI7IH1cbiAgICAgIHByZS5saW5lLW51bWJlcnMgLmxpbmUtbnVtYmVycy1yb3dzID4gc3Bhbjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogY291bnRlcihsaW5lbnVtYmVyKTtcbiAgICAgICAgY29sb3I6ICM4ODg4ODg7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG5wcmUuY29kZS10b29sYmFyID4gLnRvb2xiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzOyB9XG4gIHByZS5jb2RlLXRvb2xiYXIgPiAudG9vbGJhciAudG9vbGJhci1pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgcHJlLmNvZGUtdG9vbGJhciA+IC50b29sYmFyIGEge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBjb2xvcjogIzIyMjIyMjtcbiAgICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgcHJlLmNvZGUtdG9vbGJhciA+IC50b29sYmFyIGE6aG92ZXIsIHByZS5jb2RlLXRvb2xiYXIgPiAudG9vbGJhciBhOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmEwMDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxucHJlLmNvZGUtdG9vbGJhcjpob3ZlciA+IC50b29sYmFyIHtcbiAgb3BhY2l0eTogMTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIHtcbiAgLmhlYWRlci1uYXZfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5oZWFkZXItbmF2X19pdGVtOmhvdmVyID4gLmhlYWRlci1uYXZfX2NoaWxkcmVuIHtcbiAgICAgIHotaW5kZXg6ICsxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNzBweCk7XG4gICAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cbiAgLmhlYWRlci1uYXZfX2NoaWxkcmVuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjgwcHg7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICAgIGJvcmRlci10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIHRyYW5zaXRpb246IC4zcyBlYXNlLWluLW91dDsgfVxuICAgIC5oZWFkZXItbmF2X19jaGlsZHJlbiBsaSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAuaGVhZGVyLW5hdl9fY2hpbGRyZW4gbGk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMGUwZTA7IH1cbiAgICAgIC5oZWFkZXItbmF2X19jaGlsZHJlbiBsaTo6YWZ0ZXIge1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMGUwZTA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XG4gICAgICAuaGVhZGVyLW5hdl9fY2hpbGRyZW4gbGkgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgICAgIHRyYW5zaXRpb246IHBhZGRpbmcgLjJzOyB9XG4gICAgICAuaGVhZGVyLW5hdl9fY2hpbGRyZW4gbGk6aG92ZXI6OmJlZm9yZSB7XG4gICAgICAgIHdpZHRoOiAxMHB4OyB9XG4gICAgICAuaGVhZGVyLW5hdl9fY2hpbGRyZW4gbGk6aG92ZXIgYSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDsgfSB9XG5cbmJvZHkge1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGhlaWdodDogYXV0bzsgfVxuXG5tYWluIC5wb3N0bGlzdHMge1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkgYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgIG1haW4gLnBvc3RsaXN0cyB7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7IH0gfVxuXG5tYWluIC5ibG9nLXBvc3RzX19pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMzMlO1xuICB0cmFuc2l0aW9uOiAuM3M7IH1cbiAgbWFpbiAuYmxvZy1wb3N0c19faW1hZ2U6bm90KC5zdGlja3kpOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAuODsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgbWFpbiAuYmxvZy1wb3N0c19fZGF0YSwgbWFpbiAubmV3cy1wb3N0c19fZGF0YSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgIHBhZGRpbmc6IDIwcHggMCAzMHB4O1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG5tYWluIC5ibG9nLXBvc3RzX190ZXh0LWl0ZW0gcCB7XG4gIHBhZGRpbmctdG9wOiAyMHB4OyB9XG5cbm1haW4gLmJsb2ctd2VsY29tZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgcGFkZGluZzogNDBweCAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIG1haW4gLmJsb2ctd2VsY29tZSB7XG4gICAgICBwYWRkaW5nOiA3MHB4IDIwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICBtYWluIC5ibG9nLXdlbGNvbWUge1xuICAgICAgcGFkZGluZzogNTBweCAyMHB4IDEwcHg7IH0gfVxuICBtYWluIC5ibG9nLXdlbGNvbWUgaDEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMWVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAyNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI2cHg7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgIG1haW4gLmJsb2ctd2VsY29tZSBoMSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICAgIG1haW4gLmJsb2ctd2VsY29tZSBoMTo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHdpZHRoOiAxLjg3NXJlbTtcbiAgICAgIGhlaWdodDogLjA2MjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjOyB9XG4gIG1haW4gLmJsb2ctd2VsY29tZSBoMyB7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBmb250LXNpemU6IDEuODEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4OyB9XG4gICAgbWFpbiAuYmxvZy13ZWxjb21lIGgzIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIG1haW4gLmJsb2ctd2VsY29tZSAudGVjaG5pY2FsLWJhY2tncm91bmQgaW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgIG1haW4gLmJsb2ctd2VsY29tZSAudGVjaG5pY2FsLWJhY2tncm91bmQgaW1nIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIG1haW4gLmJsb2ctd2VsY29tZSAudGVjaG5pY2FsLWJhY2tncm91bmQgaW1nIHtcbiAgICAgICAgcmlnaHQ6IC0xMCU7XG4gICAgICAgIHRvcDogLTUlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIG1haW4gLmJsb2ctd2VsY29tZSAudGVjaG5pY2FsLWJhY2tncm91bmQgaW1nIHtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIG1haW4gLmJsb2ctd2VsY29tZSAudGVjaG5pY2FsLWJhY2tncm91bmQgaW1nIHtcbiAgICAgICAgcmlnaHQ6IDEwJTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5cbm1haW4gLnRlY2gtcG9zdHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgbWFpbiAudGVjaC1wb3N0cyAuaW1hZ2Utc2hhZG93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyNWRlZywgcmdiYSgwLCAwLCAwLCAwLjYpIDEwJSwgcmdiYSgwLCAwLCAwLCAwLjIpIDY1JSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLmltYWdlLXNoYWRvdyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgbWFpbiAudGVjaC1wb3N0cyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9IH1cbiAgbWFpbiAudGVjaC1wb3N0cyAuYnV0dG9uLnRyaWFuZ2xlOmhvdmVyLCBtYWluIC50ZWNoLXBvc3RzIC50cmlhbmdsZS5idXR0b25fX2VkaXQ6aG92ZXIge1xuICAgIGNvbG9yOiAjZmY2MDAwOyB9XG4gICAgbWFpbiAudGVjaC1wb3N0cyAuYnV0dG9uLnRyaWFuZ2xlOmhvdmVyOjphZnRlciwgbWFpbiAudGVjaC1wb3N0cyAudHJpYW5nbGUuYnV0dG9uX19lZGl0OmhvdmVyOjphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZjYwMDA7IH1cbiAgbWFpbiAudGVjaC1wb3N0cyAuc3RpY2t5IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1ib3R0b206IDM1JTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLnN0aWNreSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87IH0gfVxuICBtYWluIC50ZWNoLXBvc3RzIC5ibG9nLXBvc3RzX190aXRsZS1pdGVtIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLmJsb2ctcG9zdHNfX3RpdGxlLWl0ZW0gaDMge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLmJsb2ctcG9zdHNfX3RpdGxlLWl0ZW0gYSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH0gfVxuICBtYWluIC50ZWNoLXBvc3RzIC5ibG9nLXBvc3RzX19wb3N0LWRhdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiBNYWxsZWFibGU7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBjb2xvcjogIzg4ODg4ODsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgbWFpbiAudGVjaC1wb3N0cyAuYmxvZy1wb3N0c19fcG9zdC1kYXRlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfSB9XG4gIG1haW4gLnRlY2gtcG9zdHMgLmJsb2ctcG9zdHNfX2F1dGhvciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgbWFpbiAudGVjaC1wb3N0cyAucm93IGFydGljbGU6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDUlOyB9XG4gIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlOm50aC1jaGlsZChvZGQpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA1JTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICBtYWluIC50ZWNoLXBvc3RzIC5yb3cgYXJ0aWNsZTpudGgtY2hpbGQoZXZlbikge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgbWFpbiAudGVjaC1wb3N0cyAucm93IGFydGljbGU6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7IH1cbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgcGFkZGluZzogMTBweDsgfSB9XG4gIG1haW4gLnRlY2gtcG9zdHMgLnJvdyBhcnRpY2xlIGEgLnRyaWFuZ2xlIHtcbiAgICBjb2xvcjogIzM2MzYzNjsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICBtYWluIC50ZWNoLXBvc3RzIC5yb3cgYXJ0aWNsZSBhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXRvcDogODBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4OyB9IH1cbiAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnRleHQtYW5pbWF0ZS1zdGljayB7XG4gICAgICBoZWlnaHQ6IDgwcHg7IH1cbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAudGV4dC1hbmltYXRlLXN0aWNrIGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiArMTsgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC50ZXh0LWFuaW1hdGUtc3RpY2sgZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOyB9IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC50ZXh0LWFuaW1hdGUtc3RpY2sgZW0ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjQzNzVyZW07XG4gICAgICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgY29sb3I6ICM2NjY2NjY7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwOyB9IH1cbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAudGV4dC1hbmltYXRlLXN0aWNrIHNwYW4ge1xuICAgICAgICBhbmltYXRpb246IGN1cnNvcl9ibGluayAxcyBpbmZpbml0ZTtcbiAgICAgICAgY29sb3I6ICNmZjYwMDA7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnRleHQtYW5pbWF0ZS1zdGljayB7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4OyB9IH1cbiAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLmNhdGVnb3J5X3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4gICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLmNhdGVnb3J5X3RpdGxlIGEge1xuICAgICAgICBjb2xvcjogI2ZmNjAwMDsgfVxuICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLmNhdGVnb3J5X3RpdGxlIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDE0MHB4O1xuICAgICAgbGVmdDogMjBweDtcbiAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgdGV4dC1zaGFkb3c6IDFweCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjBlbSkgYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnN0aWNreS1pbmZvIHtcbiAgICAgICAgICB0b3A6IDIlOyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnN0aWNreS1pbmZvIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuc3RpY2t5LWluZm8gLmJ1dHRvbiwgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYnV0dG9uX19lZGl0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsgfSB9XG4gICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnN0aWNreS1pbmZvIGgzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuc3RpY2t5LWluZm8gaDMge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwOyB9IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnN0aWNreS1pbmZvIGgzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS10YWJsZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYmxvZy1wb3N0c19fYXV0aG9yIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gICAgICAgIGZvbnQtZmFtaWx5OiBNYWxsZWFibGU7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsgfVxuICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnN0aWNreS1pbmZvIC5ibG9nLXBvc3RzX19hdXRob3Igc3ZnIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYmxvZy1wb3N0c19fYXV0aG9yIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMHB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICAgICAgICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYmxvZy1wb3N0c19fYXV0aG9yIHN2ZyB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYmxvZy1wb3N0c19fdGl0bGUtaXRlbSB7XG4gICAgICAgIHdpZHRoOiA4MCU7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYmxvZy1wb3N0c19fdGl0bGUtaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogOTUlOyB9IH1cbiAgICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYmxvZy1wb3N0c19fdGl0bGUtaXRlbSBhIHtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICBmb250LXNpemU6IDIuMjVyZW07IH1cbiAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgICAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuc3RpY2t5LWluZm8gLmJsb2ctcG9zdHNfX3RpdGxlLWl0ZW0gYSB7XG4gICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnN0aWNreS1pbmZvIC5ibG9nLXBvc3RzX190aXRsZS1pdGVtIGE6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5zdGlja3ktaW5mbyAuYmxvZy1wb3N0c19fdGl0bGUtaXRlbSBhIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIGNvbG9yOiAjMDAwMDAwOyB9IH1cbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuc3RpY2t5LWluZm8gLmJsb2ctcG9zdHNfX2RhdGEtc3RpY2t5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBNYWxsZWFibGU7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBmb250LXNpemU6IDEuMzEyNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgICAgICBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgLnN0aWNreS1pbmZvIC5ibG9nLXBvc3RzX19kYXRhLXN0aWNreSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAjODg4ODg4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTIwcHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLjFlbTsgfSB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuc3RpY2t5LWluZm8gLmJsb2ctcG9zdHNfX2RhdGEtc3RpY2t5IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDsgfSB9XG4gICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5ibG9nLXBvc3RzX190ZXh0LWl0ZW0tc3RpY2t5IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IE1hbGxlYWJsZTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wNWVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuYmxvZy1wb3N0c19fdGV4dC1pdGVtLXN0aWNreSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuYmxvZy1wb3N0c19fdGV4dC1pdGVtLXN0aWNreSB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IFwiU291cmNlIFNhbnMgUHJvXCIsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgICAgY29sb3I6ICM2NjY2NjY7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTVweDsgfSB9XG4gICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIGEuYmxvZy1wb3N0c19fbGluay1pdGVtLmJ1dHRvbi5zdGljaywgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIGEuYmxvZy1wb3N0c19fbGluay1pdGVtLnN0aWNrLmJ1dHRvbl9fZWRpdCB7XG4gICAgICBjb2xvcjogI2ZmNjAwMDsgfVxuICAgICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIGEuYmxvZy1wb3N0c19fbGluay1pdGVtLmJ1dHRvbi5zdGljazpob3ZlciwgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIGEuYmxvZy1wb3N0c19fbGluay1pdGVtLnN0aWNrLmJ1dHRvbl9fZWRpdDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwOyB9XG4gICAgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIGEuYmxvZy1wb3N0c19fbGluay1pdGVtLmJ1dHRvbi5zdGljay5idXR0b24udHJpYW5nbGU6OmFmdGVyLCBtYWluIC50ZWNoLXBvc3RzIGFydGljbGUgYS5ibG9nLXBvc3RzX19saW5rLWl0ZW0uc3RpY2sudHJpYW5nbGUuYnV0dG9uX19lZGl0OjphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZjYwMDA7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgIG1haW4gLnRlY2gtcG9zdHMgYXJ0aWNsZSAuYmxvZy1wb3N0c19fbGluay1pdGVtLmJ1dHRvbiwgbWFpbiAudGVjaC1wb3N0cyBhcnRpY2xlIC5ibG9nLXBvc3RzX19saW5rLWl0ZW0uYnV0dG9uX19lZGl0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuXG4ucG9zdC1oZWFkZXIge1xuICBoZWlnaHQ6IDQwMHB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgLTQ1cHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgLnBvc3QtaGVhZGVyIC5pbWFnZS1zaGFkb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDMwZGVnLCByZ2JhKDAsIDAsIDAsIDAuOCkgMCUsIHJnYmEoMCwgMCwgMCwgMC4yKSA2NSUsIHRyYW5zcGFyZW50IDEwMCUpOyB9XG4gIC5wb3N0LWhlYWRlciAudGV4dC1hbmltYXRlLXNpbmdsZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgICAucG9zdC1oZWFkZXIgLnRleHQtYW5pbWF0ZS1zaW5nbGUgc3BhbiB7XG4gICAgICBhbmltYXRpb246IGN1cnNvcl9ibGluayAxcyBpbmZpbml0ZTtcbiAgICAgIGNvbG9yOiAjZmY2MDAwO1xuICAgICAgZm9udC1zaXplOiAyLjc1cmVtOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAucG9zdC1oZWFkZXIgLnRleHQtYW5pbWF0ZS1zaW5nbGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMTVweDsgfSB9XG4gICAgLnBvc3QtaGVhZGVyIC50ZXh0LWFuaW1hdGUtc2luZ2xlIGVtIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBNYWxsZWFibGU7XG4gICAgICBmb250LXNpemU6IDIuNzVyZW07XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogNDVweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkgYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICAucG9zdC1oZWFkZXIgLnRleHQtYW5pbWF0ZS1zaW5nbGUgZW0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMi4xODc1cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgd2lkdGg6IDkwJTsgfSB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgICAgLnBvc3QtaGVhZGVyIC50ZXh0LWFuaW1hdGUtc2luZ2xlIGVtIHtcbiAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICBmb250LXNpemU6IDEuNDM3NXJlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogMzAwOyB9IH1cbiAgLnBvc3QtaGVhZGVyIC5ibG9nLWhlYWRlcl9faW5mbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogODAlOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAucG9zdC1oZWFkZXIgLmJsb2ctaGVhZGVyX19pbmZvIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAucG9zdC1oZWFkZXIgLm5ld3MtcG9zdHNfX2RhdGEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAucG9zdC1oZWFkZXIgLmluZm8tcG9zdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgLnBvc3QtaGVhZGVyIC5pbmZvLXBvc3Qge1xuICAgICAgICB0b3A6IDE1JTtcbiAgICAgICAgYm90dG9tOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgLnBvc3QtaGVhZGVyIC5wb3N0X2hlYWRlcl9fYXV0aG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbjogMjBweCAwIDAgNDBweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnBvc3QtaGVhZGVyIC5wb3N0X2hlYWRlcl9fYXV0aG9yOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNmZjliMDA7XG4gICAgICBsZWZ0OiAtMXB4O1xuICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgaGVpZ2h0OiA0OHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAucG9zdC1oZWFkZXIgLnBvc3RfaGVhZGVyX19hdXRob3Ige1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAwIDguMzMzJTsgfSB9XG4gICAgLnBvc3QtaGVhZGVyIC5wb3N0X2hlYWRlcl9fYXV0aG9yIC5hdXRob3Ige1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAgIC5wb3N0LWhlYWRlciAucG9zdF9oZWFkZXJfX2F1dGhvciAuYXV0aG9yIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH0gfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAgIC5wb3N0LWhlYWRlciAucG9zdF9oZWFkZXJfX2F1dGhvciAuYXV0aG9yIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAgIC5wb3N0LWhlYWRlciAucG9zdF9oZWFkZXJfX2F1dGhvciAuYXV0aG9yLWF2YXRhciB7XG4gICAgICBtYXJnaW46IDVweCAxMHB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwOyB9XG4gICAgICAucG9zdC1oZWFkZXIgLnBvc3RfaGVhZGVyX19hdXRob3IgLmF1dGhvci1hdmF0YXIgaW1nIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgICAgICAucG9zdC1oZWFkZXIgLnBvc3RfaGVhZGVyX19hdXRob3IgLmF1dGhvci1hdmF0YXIgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMHB4OyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgICAucG9zdC1oZWFkZXIgLnBvc3RfaGVhZGVyX19hdXRob3IgLmF1dGhvci1hdmF0YXIge1xuICAgICAgICAgIG1hcmdpbjogNXB4OyB9IH1cbiAgICAucG9zdC1oZWFkZXIgLnBvc3RfaGVhZGVyX19hdXRob3IgaDUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICAucG9zdC1oZWFkZXIgLnBvc3RfaGVhZGVyX19hdXRob3IgaDUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gIC5wb3N0X19jb250ZW50IHtcbiAgICBwYWRkaW5nOiAxMHB4OyB9IH1cblxuLnBvc3RfX2NvbnRlbnQgaDMsIC5wb3N0X19jb250ZW50IGg0IHtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgbWFyZ2luLXRvcDogNTBweDsgfVxuXG4ucG9zdF9fY29udGVudCBoMyB7XG4gIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnBvc3RfX2NvbnRlbnQgaDQge1xuICBmb250LXNpemU6IDEuMzEyNXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4xZW07IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gIC5wb3N0X19jb250ZW50IGgzLCAucG9zdF9fY29udGVudCBoNCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDsgfSB9XG5cbi5wb3N0X19jb250ZW50IHVsIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgMjBweDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAucG9zdF9fY29udGVudCB1bCBsaSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAwIDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLnBvc3RfX2NvbnRlbnQgdWwgbGk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmYTAwMDtcbiAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgdG9wOiAxMnB4OyB9XG5cbi5wb3N0X19jb250ZW50IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgIC5wb3N0X19jb250ZW50IC5wb3N0c19saW5rcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cbiAgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIGgzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjFlbTsgfVxuICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLm5leHQtcG9zdCwgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIC5wcmV2aW91cy1wb3N0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLm5leHQtcG9zdCwgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIC5wcmV2aW91cy1wb3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIC5wb3N0X19jb250ZW50IC5wb3N0c19saW5rcyAubmV4dC1wb3N0IHN0cm9uZywgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIC5wcmV2aW91cy1wb3N0IHN0cm9uZyB7XG4gICAgICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLjFlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLm5leHQtcG9zdCBhLCAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLnByZXZpb3VzLXBvc3QgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIC5uZXh0LXBvc3QgYTpob3ZlciBzcGFuLCAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLnByZXZpb3VzLXBvc3QgYTpob3ZlciBzcGFuIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC44cyBlYXNlLWluLW91dDsgfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgICAgICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLm5leHQtcG9zdCBhOmhvdmVyIHNwYW4sIC5wb3N0X19jb250ZW50IC5wb3N0c19saW5rcyAucHJldmlvdXMtcG9zdCBhOmhvdmVyIHNwYW4ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvOyB9IH1cbiAgICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLm5leHQtcG9zdCBzcGFuLCAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLnByZXZpb3VzLXBvc3Qgc3BhbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgY29sb3I6ICM5OTk5OTk7XG4gICAgICBsaW5lLWhlaWdodDogMTlweDtcbiAgICAgIHBhZGRpbmctdG9wOiAyMHB4OyB9XG4gICAgICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLm5leHQtcG9zdCBzcGFuOjpiZWZvcmUsIC5wb3N0X19jb250ZW50IC5wb3N0c19saW5rcyAucHJldmlvdXMtcG9zdCBzcGFuOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UwZTBlMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAzNSU7XG4gICAgICAgIHdpZHRoOiA2MHB4OyB9XG4gICAgICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLm5leHQtcG9zdCBzcGFuOmhvdmVyLCAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLnByZXZpb3VzLXBvc3Qgc3Bhbjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIC5uZXh0LXBvc3Qge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIC5uZXh0LXBvc3Qge1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG4gICAgLnBvc3RfX2NvbnRlbnQgLnBvc3RzX2xpbmtzIC5uZXh0LXBvc3Qgc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAgIC5wb3N0X19jb250ZW50IC5wb3N0c19saW5rcyAubmV4dC1wb3N0OmhvdmVyIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLW91dDsgfVxuICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLnByZXZpb3VzLXBvc3Qgc3Ryb25nID4gc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAucG9zdF9fY29udGVudCAucG9zdHNfbGlua3MgLnByZXZpb3VzLXBvc3Q6aG92ZXIgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLW91dDsgfVxuXG4ucmVsYXRlZC1wb3N0cyAucmVsYXRlZCB7XG4gIHBhZGRpbmc6IDQ1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjJmMmYyO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNmMmYyZjI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjJmMmYyOyB9XG4gIC5yZWxhdGVkLXBvc3RzIC5yZWxhdGVkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmMmYyZjI7IH1cbiAgLnJlbGF0ZWQtcG9zdHMgLnJlbGF0ZWQgaW1nIHtcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZTBlMGUwOyB9XG4gIC5yZWxhdGVkLXBvc3RzIC5yZWxhdGVkIGgzIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAucmVsYXRlZC1wb3N0cyAucmVsYXRlZCBwIHtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBjb2xvcjogIzY2NjY2NjsgfVxuICAucmVsYXRlZC1wb3N0cyAucmVsYXRlZCAuYnV0dG9uLnRyaWFuZ2xlOmhvdmVyLCAucmVsYXRlZC1wb3N0cyAucmVsYXRlZCAudHJpYW5nbGUuYnV0dG9uX19lZGl0OmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmNjAwMDsgfVxuICAgIC5yZWxhdGVkLXBvc3RzIC5yZWxhdGVkIC5idXR0b24udHJpYW5nbGU6aG92ZXI6OmFmdGVyLCAucmVsYXRlZC1wb3N0cyAucmVsYXRlZCAudHJpYW5nbGUuYnV0dG9uX19lZGl0OmhvdmVyOjphZnRlciB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZjYwMDA7IH1cbiAgLnJlbGF0ZWQtcG9zdHMgLnJlbGF0ZWQgLmJsb2ctcG9zdHNfX2ltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5idXNpbmVzcy1wYW5lbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW4tdG9wOiA0NXB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgIC5idXNpbmVzcy1wYW5lbCB7XG4gICAgICBtYXJnaW4tdG9wOiAzMHB4OyB9IH1cbiAgLmJ1c2luZXNzLXBhbmVsIHAge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBTYW5zIFByb1wiLCBIZWx2ZXRpY2EsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICBjb2xvcjogIzY2NjY2NjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5idXNpbmVzcy1wYW5lbCBwIC5idXR0b24sIC5idXNpbmVzcy1wYW5lbCBwIC5idXR0b25fX2VkaXQge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAuYnVzaW5lc3MtcGFuZWwgaDMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgY29sb3I6ICM2NjY2NjY7IH1cbiAgICAuYnVzaW5lc3MtcGFuZWwgaDM6OmJlZm9yZSwgLmJ1c2luZXNzLXBhbmVsIGgzOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5idXNpbmVzcy1wYW5lbCBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0yMHB4O1xuICAgIGxlZnQ6IDQwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDIwcHggI2ZmZmZmZjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgLmJ1c2luZXNzLXBhbmVsIHN2ZyB7XG4gICAgICAgIGxlZnQ6IDQ1JTsgfSB9XG5cbi5ibG9nLXNpZGViYXIge1xuICBwYWRkaW5nOiAzNXB4IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgLmJsb2ctc2lkZWJhciB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAuYmxvZy1zaWRlYmFyIHtcbiAgICAgIHBhZGRpbmc6IDIwcHg7IH0gfVxuICAuYmxvZy1zaWRlYmFyIC5idXR0b25fYmFjayB7XG4gICAgZm9udC1mYW1pbHk6IE1hbGxlYWJsZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxLjE4NzVyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4xZW07IH1cbiAgICAuYmxvZy1zaWRlYmFyIC5idXR0b25fYmFjayA+IHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluLW91dDsgfVxuICAgIC5ibG9nLXNpZGViYXIgLmJ1dHRvbl9iYWNrOmhvdmVyIHN2ZyB7XG4gICAgICBtYXJnaW4tbGVmdDogLTVweDsgfVxuICAgIC5ibG9nLXNpZGViYXIgLmJ1dHRvbl9iYWNrIHNwYW4ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgICAgLmJsb2ctc2lkZWJhciAuYnV0dG9uX2JhY2sgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNWVtOyB9IH1cbiAgLmJsb2ctc2lkZWJhciB1bCB7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgZm9udC1zaXplOiAxLjE4NzVyZW07IH1cbiAgICAuYmxvZy1zaWRlYmFyIHVsIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9XG4gICAgLmJsb2ctc2lkZWJhciB1bCAuY2hpbGRyZW4gYSB7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgcGFkZGluZzogNXB4IDAgMCAxNXB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuYmxvZy1zaWRlYmFyIHVsIC5jaGlsZHJlbiBhOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICB0b3A6IDE1cHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjY2NjOyB9XG4gICAgICAuYmxvZy1zaWRlYmFyIHVsIC5jaGlsZHJlbiBhOmhvdmVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgICAgICBjb2xvcjogI2ZmNjAwMDsgfVxuICAuYmxvZy1zaWRlYmFyIGgzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDQycHggMDsgfVxuICAgIC5ibG9nLXNpZGViYXIgaDM6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMS4yNXJlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMS44NzVyZW07XG4gICAgICBoZWlnaHQ6IC4wNjI1cmVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYzsgfVxuICAuYmxvZy1zaWRlYmFyIC5jYXQtaXRlbSB7XG4gICAgcGFkZGluZzogM3B4IDA7IH1cbiAgICAuYmxvZy1zaWRlYmFyIC5jYXQtaXRlbSB1bCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtOyB9XG4gICAgLmJsb2ctc2lkZWJhciAuY2F0LWl0ZW0gYSB7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgICAuYmxvZy1zaWRlYmFyIC5jYXQtaXRlbSBhIHtcbiAgICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTsgfSB9XG4gICAgICAuYmxvZy1zaWRlYmFyIC5jYXQtaXRlbSBhOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjg7IH1cbiAgLmJsb2ctc2lkZWJhciAuY2F0LWl0ZW0tMSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYmxvZy1zaWRlYmFyIC53aWRnZXRfY2F0ZWdvcmllcyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAuYmxvZy1zaWRlYmFyIC53aWRnZXRfY2F0ZWdvcmllcyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5ibG9nLXNpZGViYXIgLndpZGdldF9jYXRlZ29yaWVzIGgzOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICBtaW4taGVpZ2h0OiAxNnB4O1xuICAgICAgbWluLXdpZHRoOiAxNnB4O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWFnZXMvaWNvbnMvY2F0LnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAuYmxvZy1zaWRlYmFyIC53aWRnZXRfdGFnX2Nsb3VkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuYmxvZy1zaWRlYmFyIC53aWRnZXRfdGFnX2Nsb3VkIGgzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4taGVpZ2h0OiAxNnB4O1xuICAgIG1pbi13aWR0aDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWFnZXMvaWNvbnMvdGFnLnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG4gIC5ibG9nLXNpZGViYXIgLnRhZ2Nsb3VkIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4OyB9XG4gICAgLmJsb2ctc2lkZWJhciAudGFnY2xvdWQgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICAgICAgcGFkZGluZzogMXB4IDVweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJweDsgfVxuXG4uc2lkZWJhci1yaWdodCB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjY2NjYztcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgIC5zaWRlYmFyLXJpZ2h0IHtcbiAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9IH1cbiAgLnNpZGViYXItcmlnaHQgaDMge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXNpemU6IDEuMzEyNXJlbTsgfVxuICAgIC5zaWRlYmFyLXJpZ2h0IGgzOmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXRvcDogNzBweDsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAgIC5zaWRlYmFyLXJpZ2h0IGgzOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICAuc2lkZWJhci1yaWdodCAuc2hhcmUsIC5zaWRlYmFyLXJpZ2h0IC5jb21tZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnNpZGViYXItcmlnaHQgLnNoYXJlIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY2NjYztcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgLnNpZGViYXItcmlnaHQgLnNoYXJlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfSB9XG4gICAgLnNpZGViYXItcmlnaHQgLnNoYXJlOmhvdmVyIC5uZXctc29jaWFsLXNoYXJlcyB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuc2lkZWJhci1yaWdodCAuY29tbWVudCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgLnNpZGViYXItcmlnaHQgLmNvbW1lbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cbiAgLnNpZGViYXItcmlnaHQgc3ZnIHtcbiAgICBjb2xvcjogIzAwYTNlMzsgfVxuICAuc2lkZWJhci1yaWdodCBhIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucG9zdC10aXRsZSBoMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogMTAwO1xuICBwYWRkaW5nOiA1MHB4IDA7XG4gIGxldHRlci1zcGFjaW5nOiAuMWVtO1xuICBmb250LXNpemU6IDEuNXJlbTsgfVxuICAucG9zdC10aXRsZSBoMjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogJyc7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvdHRvbTogLTM1cHg7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIHdpZHRoOiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsgfVxuXG4uc3Vic2NyaWJlLCAuc3Vic2NyaWJlLXNpbmdsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzAwYTNlMDtcbiAgaGVpZ2h0OiBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgIC5zdWJzY3JpYmUsIC5zdWJzY3JpYmUtc2luZ2xlIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDUwcHg7IH0gfVxuICAuc3Vic2NyaWJlIGltZywgLnN1YnNjcmliZS1zaW5nbGUgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAuc3Vic2NyaWJlIGltZywgLnN1YnNjcmliZS1zaW5nbGUgaW1nIHtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0yNXB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgLnN1YnNjcmliZSBwLCAuc3Vic2NyaWJlLXNpbmdsZSBwIHtcbiAgICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLXRvcDogNTBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgLnN1YnNjcmliZSBwLCAuc3Vic2NyaWJlLXNpbmdsZSBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4OyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkgYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgLnN1YnNjcmliZSBwLCAuc3Vic2NyaWJlLXNpbmdsZSBwIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTUwcHg7IH0gfVxuICAuc3Vic2NyaWJlIC5idXR0b24sIC5zdWJzY3JpYmUgLmJ1dHRvbl9fZWRpdCwgLnN1YnNjcmliZS1zaW5nbGUgLmJ1dHRvbiwgLnN1YnNjcmliZS1zaW5nbGUgLmJ1dHRvbl9fZWRpdCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDE1cHggMzBweCAyMHB4IDM1cHg7XG4gICAgZm9udC1zaXplOiAxLjMxMjVyZW07IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MS44NzVlbSkgYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgLnN1YnNjcmliZSAuYnV0dG9uLCAuc3Vic2NyaWJlIC5idXR0b25fX2VkaXQsIC5zdWJzY3JpYmUtc2luZ2xlIC5idXR0b24sIC5zdWJzY3JpYmUtc2luZ2xlIC5idXR0b25fX2VkaXQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7IH1cbiAgICAgICAgLnN1YnNjcmliZSAuYnV0dG9uIHN2ZywgLnN1YnNjcmliZSAuYnV0dG9uX19lZGl0IHN2ZywgLnN1YnNjcmliZS1zaW5nbGUgLmJ1dHRvbiBzdmcsIC5zdWJzY3JpYmUtc2luZ2xlIC5idXR0b25fX2VkaXQgc3ZnIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMzVweDsgfSB9XG4gICAgLnN1YnNjcmliZSAuYnV0dG9uIGEsIC5zdWJzY3JpYmUgLmJ1dHRvbl9fZWRpdCBhLCAuc3Vic2NyaWJlLXNpbmdsZSAuYnV0dG9uIGEsIC5zdWJzY3JpYmUtc2luZ2xlIC5idXR0b25fX2VkaXQgYSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgICAgLnN1YnNjcmliZSAuYnV0dG9uIGEsIC5zdWJzY3JpYmUgLmJ1dHRvbl9fZWRpdCBhLCAuc3Vic2NyaWJlLXNpbmdsZSAuYnV0dG9uIGEsIC5zdWJzY3JpYmUtc2luZ2xlIC5idXR0b25fX2VkaXQgYSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC5zdWJzY3JpYmUgLnN1YnNjcmlidGlvbiwgLnN1YnNjcmliZS1zaW5nbGUgLnN1YnNjcmlidGlvbiB7XG4gICAgbWFyZ2luLXRvcDogNjBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAgIC5zdWJzY3JpYmUgLnN1YnNjcmlidGlvbiwgLnN1YnNjcmliZS1zaW5nbGUgLnN1YnNjcmlidGlvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfSB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAuc3Vic2NyaWJlIC5zdWJzY3JpYnRpb24sIC5zdWJzY3JpYmUtc2luZ2xlIC5zdWJzY3JpYnRpb24ge1xuICAgICAgICBtYXJnaW46IDEwcHggMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgLmZvb3RlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9IH1cblxuLmZvb3RlciBhc2lkZSB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgLmZvb3RlciBhc2lkZSB7XG4gICAgICBwYWRkaW5nOiAwIDIwcHg7IH0gfVxuXG4uZm9vdGVyIC5jciB7XG4gIG1hcmdpbi10b3A6IDMwcHg7IH1cbiAgLmZvb3RlciAuY3IgLm1lbnUgYSB7XG4gICAgcGFkZGluZzogMTBweDsgfVxuXG4uZm9vdGVyIGgzIHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4xZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgIC5mb290ZXIgaDMge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDEuODc1ZW0pIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgLmZvb3RlciAuZm9vdGVybWVudSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH0gfVxuXG4uZm9vdGVyIC5mb290ZXJtZW51IHVsIGxpIGEge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gIC5mb290ZXIgLmFyY2hpdmUtYmxvY2sge1xuICAgIHBhZGRpbmc6IDQwcHg7IH0gfVxuXG4uZm9vdGVyIC5hcmNoaXZlLWJsb2NrIC5hcmNoaXZlcy1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuZm9vdGVyIC5hcmNoaXZlLWJsb2NrIC5hcmNoaXZlcy1saW5rcyBoMiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmZvb3RlciAuYXJjaGl2ZS1ibG9jayAuYXJjaGl2ZXMtbGlua3MgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDExcHgpOyB9XG4gIC5mb290ZXIgLmFyY2hpdmUtYmxvY2sgLmFyY2hpdmVzLWxpbmtzIGEubW9yZSB7XG4gICAgY29sb3I6ICNmZmEwMDA7XG4gICAgbWFyZ2luLXRvcDogMTVweDsgfVxuICAgIC5mb290ZXIgLmFyY2hpdmUtYmxvY2sgLmFyY2hpdmVzLWxpbmtzIGEubW9yZSA6aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gIC5mb290ZXIgLmFyY2hpdmUtYmxvY2sgLm1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgIC5mb290ZXIgLmFyY2hpdmUtYmxvY2sgLm1lbnUgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cbiAgICAuZm9vdGVyIC5hcmNoaXZlLWJsb2NrIC5tZW51IGxpIHtcbiAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0gfVxuXG4uZm9vdGVyIC5mb290ZXJjb3B5cmlnaHQge1xuICBwYWRkaW5nOiAwO1xuICB0ZXh0LWFsaWduOiBhdXRvOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgIC5mb290ZXIgLmZvb3RlcmNvcHlyaWdodCB7XG4gICAgICBwYWRkaW5nLXRvcDogMTBweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIC5mb290ZXIgLmZvb3RlcmNvcHlyaWdodCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH0gfVxuXG4uZm9vdGVyIC50YWdjbG91ZCBhIHtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiBNYWxsZWFibGU7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBsaW5lLWhlaWdodDogMjVweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgIC5mb290ZXIgLnRhZ2Nsb3VkIGEge1xuICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuMDdlbTtcbiAgICAgIG1hcmdpbjogMDsgfSB9XG5cbi5mb290ZXIgLm1lbnUtZm9vdGVyLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmZvb3RlciAubWVudS1mb290ZXItY29udGFpbmVyIHVsIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5mb290ZXIgLm1lbnUtZm9vdGVyLWNvbnRhaW5lciB1bCBsaSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuZm9vdGVyIC5tZW51LWZvb3Rlci1jb250YWluZXIgdWwgbGkgOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgdG9wOiAtNXB4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY2NjYzsgfVxuICAgICAgLmZvb3RlciAubWVudS1mb290ZXItY29udGFpbmVyIHVsIGxpIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZy10b3A6IDNweDsgfVxuICAgICAgICAuZm9vdGVyIC5tZW51LWZvb3Rlci1jb250YWluZXIgdWwgbGkgYTpob3ZlciB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7IH1cblxuLnN1YnNjcmliZS1zaW5nbGUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbi10b3A6IDQwcHg7IH1cbiAgLnN1YnNjcmliZS1zaW5nbGUgLmJ1dHRvbiwgLnN1YnNjcmliZS1zaW5nbGUgLmJ1dHRvbl9fZWRpdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4OyB9XG5cbi5oZWFkZXJfX3N0aWNreSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwOyB9XG4gIC5oZWFkZXJfX3N0aWNreSBpbnB1dCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDIycHggMCAwOyB9XG4gIC5oZWFkZXJfX3N0aWNreSBzcGFuIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAuaGVhZGVyX19zdGlja3kgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLmhlYWRlciAuaGVhZGVyX190b3AgLmhlYWRlcl9fbG9nbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAyNTBweDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAuaGVhZGVyIC5oZWFkZXJfX3RvcCAuaGVhZGVyX19sb2dvIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gIC5oZWFkZXIgLmhlYWRlcl9fdG9wIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uaGVhZGVyIC5oZWFkZXJfX3RvcCAuaGVhZGVyX19sb2dvLWZwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDI1MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0LjkzNzVlbSkge1xuICAgIC5oZWFkZXIgLmhlYWRlcl9fdG9wIC5oZWFkZXJfX2xvZ28tZnAge1xuICAgICAgd2lkdGg6IDIxMHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgLmhlYWRlciAuaGVhZGVyX190b3AgLmhlYWRlcl9fbG9nby1mcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmhlYWRlciAuaGVhZGVyLXNlYXJjaCBpbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogMCAwIDA7IH1cblxuLmNvbnRlbnRfX3NvY2lhbG1lZGlhIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgLmNvbnRlbnRfX3NvY2lhbG1lZGlhIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAgIC5jb250ZW50X19zb2NpYWxtZWRpYSBsaSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NXJlbTsgfSB9XG5cbi5zdWJzY3JpYmUtd2lkZ2V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAuc3Vic2NyaWJlLXdpZGdldCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6ICsxOyB9XG4gICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDEpIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAgIC5zdWJzY3JpYmUtd2lkZ2V0ID4gLndpZGdldDpub3QoOm9ubHktY2hpbGQpOm50aC1jaGlsZCgxKSAud2lkZ2V0LWNvbnRlbnQge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMSkgLnN1YnNjcmliZS13aWRnZXRfX2NvbnRlbnQge1xuICAgICAgICBvcmRlcjogMDtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMzBweCAxMTBweCAwIDI1cHg7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTkuOTM3NWVtKSB7XG4gICAgICAgICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDEpIC5zdWJzY3JpYmUtd2lkZ2V0X19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7IH0gfVxuICAgICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMSkgLnN1YnNjcmliZS13aWRnZXRfX2NvbnRlbnQgcCB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMSkgLnN1YnNjcmliZS13aWRnZXRfX2ltYWdlIHtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0yMjBweDtcbiAgICAgICAgYm90dG9tOiA1MHB4OyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICAgIC5zdWJzY3JpYmUtd2lkZ2V0ID4gLndpZGdldDpub3QoOm9ubHktY2hpbGQpOm50aC1jaGlsZCgxKSAuc3Vic2NyaWJlLXdpZGdldF9faW1hZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMSkgLnN1YnNjcmliZS13aWRnZXRfX2J1dHRvbiB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIHotaW5kZXg6ICsxOyB9XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICAgIC5zdWJzY3JpYmUtd2lkZ2V0ID4gLndpZGdldDpub3QoOm9ubHktY2hpbGQpOm50aC1jaGlsZCgxKSAuc3Vic2NyaWJlLXdpZGdldF9fYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgICAgICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDEpIC5zdWJzY3JpYmUtd2lkZ2V0X19idXR0b24gLmJ1dHRvbiwgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDEpIC5zdWJzY3JpYmUtd2lkZ2V0X19idXR0b24gLmJ1dHRvbl9fZWRpdCB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDEwcHggMjBweCAxM3B4OyB9XG4gICAgICAgICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDEpIC5zdWJzY3JpYmUtd2lkZ2V0X19idXR0b24gLmJ1dHRvbjpob3ZlciBzdmcsIC5zdWJzY3JpYmUtd2lkZ2V0ID4gLndpZGdldDpub3QoOm9ubHktY2hpbGQpOm50aC1jaGlsZCgxKSAuc3Vic2NyaWJlLXdpZGdldF9fYnV0dG9uIC5idXR0b25fX2VkaXQ6aG92ZXIgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDIpIC53aWRnZXQtY29udGVudCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2NvbnRlbnQge1xuICAgICAgb3JkZXI6IDA7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDUwcHggMjBweCA1MHB4IDUwcHg7XG4gICAgICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtOyB9XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDIpIC5zdWJzY3JpYmUtd2lkZ2V0X19jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2NvbnRlbnQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICBmb250LWZhbWlseTogXCJTb3VyY2UgU2FucyBQcm9cIiwgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9IH1cbiAgICAgIC5zdWJzY3JpYmUtd2lkZ2V0ID4gLndpZGdldDpub3QoOm9ubHktY2hpbGQpOm50aC1jaGlsZCgyKSAuc3Vic2NyaWJlLXdpZGdldF9fY29udGVudCBwIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAgICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDIpIC5zdWJzY3JpYmUtd2lkZ2V0X19jb250ZW50IHAge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE5cHg7IH0gfVxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1OS45Mzc1ZW0pIHtcbiAgICAgICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2NvbnRlbnQgcCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHggMDsgfSB9XG4gICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDIpIC5zdWJzY3JpYmUtd2lkZ2V0X19pbWFnZSB7XG4gICAgICBvcmRlcjogMjtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgei1pbmRleDogKzE7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogLTgwcHg7XG4gICAgICBib3R0b206IDMwcHg7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIGFuZCAobWF4LXdpZHRoOiA3NC45Mzc1ZW0pIHtcbiAgICAgICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDIpIC5zdWJzY3JpYmUtd2lkZ2V0X19pbWFnZSB7XG4gICAgICAgICAgYm90dG9tOiA3NXB4OyB9IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5LjkzNzVlbSkge1xuICAgICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2ltYWdlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2J1dHRvbiB7XG4gICAgICBvcmRlcjogMTtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIHotaW5kZXg6ICsxOyB9XG4gICAgICAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2J1dHRvbiAuYnV0dG9uLCAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2J1dHRvbiAuYnV0dG9uX19lZGl0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDEuMzEyNXJlbTtcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4IDEzcHg7IH1cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAgICAgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDIpIC5zdWJzY3JpYmUtd2lkZ2V0X19idXR0b24gLmJ1dHRvbiwgLnN1YnNjcmliZS13aWRnZXQgPiAud2lkZ2V0Om5vdCg6b25seS1jaGlsZCk6bnRoLWNoaWxkKDIpIC5zdWJzY3JpYmUtd2lkZ2V0X19idXR0b24gLmJ1dHRvbl9fZWRpdCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMDYyNXJlbTsgfSB9XG4gICAgICAgIC5zdWJzY3JpYmUtd2lkZ2V0ID4gLndpZGdldDpub3QoOm9ubHktY2hpbGQpOm50aC1jaGlsZCgyKSAuc3Vic2NyaWJlLXdpZGdldF9fYnV0dG9uIC5idXR0b246aG92ZXIgc3ZnLCAuc3Vic2NyaWJlLXdpZGdldCA+IC53aWRnZXQ6bm90KDpvbmx5LWNoaWxkKTpudGgtY2hpbGQoMikgLnN1YnNjcmliZS13aWRnZXRfX2J1dHRvbiAuYnV0dG9uX19lZGl0OmhvdmVyIHN2ZyB7XG4gICAgICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgLnN1YnNjcmliZS13aWRnZXQgLndpZGdldC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgIC5zdWJzY3JpYmUtd2lkZ2V0IC53aWRnZXQtY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICBib2R5LmhvbWUgLnN1YnNjcmliZS13aWRnZXQgLndpZGdldC1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cbiAgICAuc3Vic2NyaWJlLXdpZGdldCAud2lkZ2V0LWNvbnRlbnQud2hpdGUge1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cbiAgICAuc3Vic2NyaWJlLXdpZGdldCAud2lkZ2V0LWNvbnRlbnQuYmxhY2sge1xuICAgICAgY29sb3I6ICNmZmZmZmY7IH1cblxuLm5ldy1zb2NpYWwtc2hhcmVzIHtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAtNTBweDtcbiAgZm9udC1zaXplOiAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgYm94LXNoYWRvdzogMCAwIDIwcHggMXB4IHJnYmEoMTg2LCAxODYsIDE4NiwgMC44KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiArMTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiAuM3MgZWFzZS1pbi1vdXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnNoYXJlOmhvdmVyIC5uZXctc29jaWFsLXNoYXJlcyB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBoZWlnaHQ6IDQwMHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgICAuc2hhcmU6aG92ZXIgLm5ldy1zb2NpYWwtc2hhcmVzIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvOyB9IH1cbiAgLm5ldy1zb2NpYWwtc2hhcmVzIC5idXR0b25zIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjIwcHgpO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0MS44MTI1ZW0pIHtcbiAgICAgIC5uZXctc29jaWFsLXNoYXJlcyAuYnV0dG9ucyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgLm5ldy1zb2NpYWwtc2hhcmVzIGlucHV0W3R5cGU9cmFkaW9dIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAuc29jaWFsLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vZGlzdC9pbWFnZXMvaWNvbnMvc3ByaXRlLXNvY2lhbC1uZXcucG5nXCIpO1xuICAgIHRyYW5zaXRpb246IC4yczsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgICAgLm5ldy1zb2NpYWwtc2hhcmVzIC5zb2NpYWwtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfSB9XG4gICAgLm5ldy1zb2NpYWwtc2hhcmVzIC5zb2NpYWwtYnV0dG9uOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IC44OyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAuc29jaWFsLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubmV3LXNvY2lhbC1zaGFyZXMgLmZhY2Vib29rLXNvY2lhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNiNTk5ODtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7IH1cbiAgLm5ldy1zb2NpYWwtc2hhcmVzIC50d2l0dGVyLXNvY2lhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYWNlZDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDBweCAwOyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAuZ29vZ2xlLXNvY2lhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkNGIzOTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAwOyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAubGlua2VkaW4tc29jaWFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3N2I1O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMjBweCAwOyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAucmVkZGl0LXNvY2lhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NlZTNmODtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggMDsgfVxuICAubmV3LXNvY2lhbC1zaGFyZXMgLmRpZ2ctc29jaWFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU2YWEwO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDBweCAwOyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAuc3R1bWJsZXVwb24tc29jaWFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWI0OTI0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNDBweCAwOyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAuZHpvbmUtc29jaWFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5YWQ5O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yODBweCAwOyB9XG4gIC5uZXctc29jaWFsLXNoYXJlcyAuZGVsaWNpb3VzLXNvY2lhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzOTlmZjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzIwcHggMDsgfVxuXG4qIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG5ib2R5Lm5vLXNjcm9sbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxubWFpbiB7XG4gIG1hcmdpbi10b3A6IDE1MHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAtMC4wNjI1ZW0pIHtcbiAgICBtYWluIHtcbiAgICAgIG1hcmdpbi10b3A6IDExMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cbiAgICAgIGJvZHkuaXMtbW9iaWxlIG1haW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICAgIG1haW4ge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyg2LjM4dncgKyA4NnB4KTsgfSB9XG4gIG1haW4gLmhlYWRlci1iYW5uZXIgaDEge1xuICAgIG1hcmdpbi10b3A6IDQ1cHg7IH1cblxuLnBhZ2VfX2NvbnRlbnQgdWwge1xuICBtYXJnaW4tYm90dG9tOiAzNXB4OyB9XG4gIC5wYWdlX19jb250ZW50IHVsID4gbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBjb2xvcjogIzU1NTU1NTsgfVxuICAgIC5wYWdlX19jb250ZW50IHVsID4gbGk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTFweDtcbiAgICAgIGxlZnQ6IC0yMHB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjY2NjYzsgfVxuICAgIC5wYWdlX19jb250ZW50IHVsID4gbGkgdWwge1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gICAgICAucGFnZV9fY29udGVudCB1bCA+IGxpIHVsID4gbGk6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogMC4zNzVyZW07XG4gICAgICAgIGhlaWdodDogMC41cmVtO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2NjY2M7IH1cbiAgLnBhZ2VfX2NvbnRlbnQgdWwudGlja3MgPiBsaSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTM1ZW07IH1cbiAgICAucGFnZV9fY29udGVudCB1bC50aWNrcyA+IGxpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDdweDtcbiAgICAgIGhlaWdodDogNnB4O1xuICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjZmZhMDAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmEwMDA7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG5cbi5wYWdlX19jb250ZW50IHAge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIC5wYWdlX19jb250ZW50IHA6ZW1wdHkge1xuICAgIG1hcmdpbjogMDsgfVxuICAucGFnZV9fY29udGVudCBwIGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgLnBhZ2VfX2NvbnRlbnQgcCBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5wYWdlX19jb250ZW50IHAgYS5idXR0b24sIC5wYWdlX19jb250ZW50IHAgYS5idXR0b25fX2VkaXQge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHRyYW5zaXRpb246IC4zczsgfVxuICAuZHJvcGRvd25fX3RpdGxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiA3OHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxNnB4IDUwcHggMTZweCAzMHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgdHJhbnNpdGlvbjogLjNzOyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwZW0pIHtcbiAgICAgIC5kcm9wZG93bl9fdGl0bGUge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDMwcHg7IH0gfVxuICAgIC5kcm9wZG93bl9fdGl0bGUgaDMge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDIxcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wOWVtO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAgIC5kcm9wZG93bl9fdGl0bGUgaDMge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMXB4OyB9IH1cbiAgICAgIC5kcm9wZG93bl9fdGl0bGUgaDMgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgLmRyb3Bkb3duX190aXRsZSBoMyBzbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyB9XG4gICAgLmRyb3Bkb3duX190aXRsZSAuY2xvc2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMjBweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgICAgIGNvbG9yOiAjMjIyMjIyO1xuICAgICAgdHJhbnNpdGlvbjogLjNzOyB9XG4gICAgLmRyb3Bkb3duX190aXRsZTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiAtMnB4O1xuICAgICAgd2lkdGg6IDNweDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmEwMDA7XG4gICAgICBib3JkZXItdG9wOiA2cHggc29saWQgI2ZmZmZmZjtcbiAgICAgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAjZmZmZmZmO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgdHJhbnNpdGlvbjogLjNzOyB9XG4gICAgLmRyb3Bkb3duX190aXRsZTpob3Zlcjo6YmVmb3JlIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIwcHgpOyB9XG4gICAgLmRyb3Bkb3duX190aXRsZTpob3ZlciAuY2xvc2Uge1xuICAgICAgY29sb3I6ICNmZmEwMDA7IH1cbiAgICAuZHJvcGRvd25fX3RpdGxlIC5pY29uLTMyIHtcbiAgICAgIG1hcmdpbjogMCAyNXB4IDAgMDsgfVxuICAuZHJvcGRvd25fX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgIHRyYW5zaXRpb246IG1hcmdpbiAuM3M7IH1cbiAgICAuZHJvcGRvd25fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBlMGUwO1xuICAgICAgdHJhbnNpdGlvbjogbGVmdCAuM3M7IH1cbiAgICAuZHJvcGRvd25fX2NvbnRlbnQ6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5kcm9wZG93bl9fY29udGVudCAuYWxpZ25yaWdodCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDE3cHg7IH1cbiAgICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7XG4gICAgICAgIC5kcm9wZG93bl9fY29udGVudCAuYWxpZ25yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0yMHB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0yN3B4OyB9IH1cbiAgICAuZHJvcGRvd25fX2NvbnRlbnQgLmJ1dHRvbiwgLmRyb3Bkb3duX19jb250ZW50IC5idXR0b25fX2VkaXQsXG4gICAgLmRyb3Bkb3duX19jb250ZW50IC5tb3JlLWxpbmsge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAuZHJvcGRvd24uam9iLW9mZmVyIC5kcm9wZG93bl9fdGl0bGUgaDMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7IH1cbiAgICAuZHJvcGRvd24uam9iLW9mZmVyIC5kcm9wZG93bl9fdGl0bGUgaDMgc21hbGwge1xuICAgICAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuICAuZHJvcGRvd24uaXMtYWN0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTAyMDtcbiAgICBtYXJnaW46IC0xMXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IDEwcHggI2UwZTBlMDsgfVxuICAgIC5kcm9wZG93bi5pcy1hY3RpdmUgLmRyb3Bkb3duX190aXRsZSB7XG4gICAgICBtYXJnaW46IDExcHg7IH1cbiAgICAgIC5kcm9wZG93bi5pcy1hY3RpdmUgLmRyb3Bkb3duX190aXRsZSAuY2xvc2Uge1xuICAgICAgICByaWdodDogMjZweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgICAgLmRyb3Bkb3duLmlzLWFjdGl2ZSAuZHJvcGRvd25fX3RpdGxlOjpiZWZvcmUge1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICBsZWZ0OiAtMTJweDtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzMnB4KTtcbiAgICAgICAgYm9yZGVyLXRvcDogMCBzb2xpZCAjZmZmZmZmO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwIHNvbGlkICNmZmZmZmY7IH1cbiAgICAgIC5kcm9wZG93bi5pcy1hY3RpdmUgLmRyb3Bkb3duX190aXRsZTo6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogNDBweDsgfVxuICAgIC5kcm9wZG93bi5pcy1hY3RpdmUgLmRyb3Bkb3duX19jb250ZW50IHtcbiAgICAgIG1hcmdpbjogMCAxMHB4OyB9XG4gIC5kcm9wZG93bi5oYXMtaWNvbiAuZHJvcGRvd25fX2NvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogODZweDsgfVxuICAgIC5kcm9wZG93bi5oYXMtaWNvbiAuZHJvcGRvd25fX2NvbnRlbnQ6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiA4NnB4OyB9XG5cbi5idXR0b25fX2VkaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBib3JkZXItY29sb3I6ICNlMGUwZTA7XG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7IH1cbiAgLmJ1dHRvbl9fZWRpdDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cbiAgLmJ1dHRvbl9fZWRpdDo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmljb24tMTYsIC5pY29uLTI0LCAuaWNvbi0zMiwgLmljb24tNDgsIC5pY29uLTcyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgc3Ryb2tlLXdpZHRoOiAyO1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIHN0cm9rZS1saW5lam9pbjogcm91bmQ7IH1cblxuLmljb24tMTYge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4OyB9XG5cbi5pY29uLTMyIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDsgfVxuXG4uaWNvbi00OCB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7IH1cblxuLmljb24tNzIge1xuICB3aWR0aDogNzJweDtcbiAgaGVpZ2h0OiA3MnB4OyB9XG5cbi5jb250ZW50LXRleHQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAyMHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAgIC5jb250ZW50LXRleHQge1xuICAgICAgcGFkZGluZzogMCA1cHg7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTM3NWVtKSB7XG4gICAgLmNvbnRlbnQtdGV4dCB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDEuODEyNWVtKSB7XG4gICAgLmNvbnRlbnQtdGV4dCA+IC5yb3cgPiAuY29sdW1uczpmaXJzdC1jaGlsZCB7XG4gICAgICBvcmRlcjogMjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQxLjgxMjVlbSkge1xuICAuc21hbGwtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfSB9XG5cbmJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMmVtIDAgMmVtIDE0cHg7XG4gIHBhZGRpbmc6IDAgMCAwIDQ1cHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjY2NjYzsgfVxuICBibG9ja3F1b3RlOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIG1pbi1oZWlnaHQ6IDM1cHg7XG4gICAgbWluLXdpZHRoOiAzNXB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Rpc3QvaW1hZ2VzL2ljb25zL3F1b3RlLnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMnB4O1xuICAgIHRvcDogMjVweDtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgbWFyZ2luLXRvcDogLTI1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICBibG9ja3F1b3RlIHAge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgZm9udC1zaXplOiAxLjMxMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wMjVlbTtcbiAgICBjb2xvcjogIzIyMjIyMjtcbiAgICBmb250LWZhbWlseTogTWFsbGVhYmxlOyB9XG4gICAgYmxvY2txdW90ZSBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gIGJsb2NrcXVvdGUgYiwgYmxvY2txdW90ZSBzdHJvbmcsIGJsb2NrcXVvdGUgZW0ge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgYmxvY2txdW90ZSAuaWNvbi0zMiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGxlZnQ6IC0xN3B4O1xuICAgIHBhZGRpbmctdG9wOiA3cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICNmZmEwMDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjsgfVxuICBibG9ja3F1b3RlIGltZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0yNHB4O1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGJvcmRlci1ib3R0b206IDE1cHggc29saWQgI2ZmZmZmZjtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgI2ZmZmZmZjsgfVxuICBibG9ja3F1b3RlIC5hdXRob3Ige1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICBibG9ja3F1b3RlIC5hdXRob3I6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IC00N3B4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogM3B4O1xuICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDsgfVxuXG4ucGFnaW5hdGlvbl9fYm90dG9tIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UwZTBlMDsgfVxuICAucGFnaW5hdGlvbl9fYm90dG9tIC5yb3cgLmNvbHVtbnMge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQxLjg3NWVtKSB7XG4gIC5wYWdpbmF0aW9uX19ib3R0b20gLmFycm93LXJpZ2h0LCAucGFnaW5hdGlvbl9fdG9wIC5hcnJvdy1yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuLnBhZ2luYXRpb25fX2JvdHRvbTo6YWZ0ZXIsIC5wYWdpbmF0aW9uX190b3A6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDsgfVxuXG4uZ2FsbGVyeSB7XG4gIG1hcmdpbjogMzBweCAwOyB9XG4gIC5nYWxsZXJ5X193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW46IC0xMHB4OyB9XG4gIC5nYWxsZXJ5X19pdGVtIHtcbiAgICBtYXJnaW46IDEwcHg7XG4gICAgYm9yZGVyOiAwOyB9XG5cbi53aWR0aF9fY29udHJvbCB7XG4gIHdpZHRoOiAxMDB2dztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IC0xMHB4OyB9XG5cbi5wYWdlLW51bWJlcnMge1xuICBtYXJnaW46IDAuMzEyNXJlbSBhdXRvIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucGFnZS1udW1iZXJzIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAucGFnZS1udW1iZXJzIC5wYWdlLW51bWJlcnMge1xuICAgIHBhZGRpbmc6IDAgLjRlbTtcbiAgICBmb250LWZhbWlseTogTWFsbGVhYmxlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5wYWdlLW51bWJlcnMgLnByZXYsXG4gIC5wYWdlLW51bWJlcnMgLm5leHQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnBhZ2UtbnVtYmVycyAuY3VycmVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7IH1cbiAgICAucGFnZS1udW1iZXJzIC5jdXJyZW50OjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDNweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmEwMDA7XG4gICAgICB0b3A6IC0zMHB4OyB9XG5cbi5zaG93LW9ubHkuaXMtYWRtaW4ge1xuICBwYWRkaW5nOiAzMHB4IDQwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7IH1cbiAgLnNob3ctb25seS5pcy1hZG1pbiBoMzpudGgtY2hpbGQoMSksIC5zaG93LW9ubHkuaXMtYWRtaW4gaDQ6bnRoLWNoaWxkKDIpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA5ZW07IH1cbiAgICAuc2hvdy1vbmx5LmlzLWFkbWluIGgzOm50aC1jaGlsZCgxKSBiLCAuc2hvdy1vbmx5LmlzLWFkbWluIGgzOm50aC1jaGlsZCgxKSBzdHJvbmcsIC5zaG93LW9ubHkuaXMtYWRtaW4gaDQ6bnRoLWNoaWxkKDIpIGIsIC5zaG93LW9ubHkuaXMtYWRtaW4gaDQ6bnRoLWNoaWxkKDIpIHN0cm9uZyB7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgY29sb3I6ICMyMjIyMjI7IH1cbiAgLnNob3ctb25seS5pcy1hZG1pbiBoNDpudGgtY2hpbGQoMikge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgY29sb3I6ICM1NTU1NTU7IH1cbiAgLnNob3ctb25seS5pcy1hZG1pbiBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuQGtleWZyYW1lcyBjdXJzb3JfYmxpbmsge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxOyB9IH1cbiIsIkBjaGFyc2V0ICd1dGYtOCc7XG5cbi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuICogVmVyc2lvbiA2LjIuM1xuICogZm91bmRhdGlvbi56dXJiLmNvbVxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cblxuXG5AbWl4aW4gZm91bmRhdGlvbi1ldmVyeXRoaW5nKCRmbGV4OiBmYWxzZSkge1xuXHRAaWYgJGZsZXgge1xuXHRcdCRnbG9iYWwtZmxleGJveDogdHJ1ZSAhZ2xvYmFsO1xuXHR9XG5cblx0QGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuXHRAaWYgbm90ICRmbGV4IHtcblx0XHRAaW5jbHVkZSBmb3VuZGF0aW9uLWdyaWQ7XG5cdH1cblx0QGVsc2Uge1xuXHRcdEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuXHR9XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeTtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1mb3Jtcztcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWFjY29yZGlvbi1tZW51O1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWJhZGdlO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWNsb3NlLWJ1dHRvbjtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtdmlkZW87XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tbGFiZWw7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tbWVkaWEtb2JqZWN0O1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLW9mZi1jYW52YXM7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1wcm9ncmVzcy1iYXI7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tc2xpZGVyO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi1zd2l0Y2g7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tdGFicztcblx0QGluY2x1ZGUgZm91bmRhdGlvbi10aHVtYm5haWw7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuXHRAaW5jbHVkZSBmb3VuZGF0aW9uLXRvb2x0aXA7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tdG9wLWJhcjtcblx0QGluY2x1ZGUgZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXM7XG5cdEBpbmNsdWRlIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcztcblxuXHRAaWYgJGZsZXgge1xuXHRcdEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzO1xuXHR9XG59XG5cbi8vIFNhc3MgdXRpbGl0aWVzXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvdXRpbCc7XG5cbi8vIEdsb2JhbCB2YXJpYWJsZXMgYW5kIHN0eWxlc1xuQGltcG9ydCAnb3ZlcndyaXRlL2dsb2JhbCc7XG5AaW1wb3J0ICdvdmVyd3JpdGUvc2V0dGluZ3MnO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvZ3JpZCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdvdmVyd3JpdGUvYnV0dG9uJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9hY2NvcmRpb24nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL2JhZGdlJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvY2FsbG91dCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvY2xvc2UtYnV0dG9uJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9kcmlsbGRvd24nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL2Ryb3Bkb3duLW1lbnUnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL2Ryb3Bkb3duJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9mbGV4JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9mbGV4LXZpZGVvJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9tZW51JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9tZW51LWljb24nO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL29yYml0JztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9wcm9ncmVzcy1iYXInO1xuQGltcG9ydCAnb3ZlcndyaXRlL3JldmVhbCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvc2xpZGVyJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvdGFibGUnO1xuQGltcG9ydCAnb3ZlcndyaXRlL3RhYnMnO1xuQGltcG9ydCAnLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL3RpdGxlLWJhcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvdG9wLWJhcic7XG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvdGh1bWJuYWlsJztcbkBpbXBvcnQgJy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy90b29sdGlwJztcblxuLy8gTW90aW9uXG5AaW1wb3J0ICcuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvbW90aW9uLXVpL3NyYy9tb3Rpb24tdWknO1xuQGluY2x1ZGUgbW90aW9uLXVpLXRyYW5zaXRpb25zO1xuQGluY2x1ZGUgbW90aW9uLXVpLWFuaW1hdGlvbnM7XG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tZXZlcnl0aGluZyh0cnVlKTtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBDb2xvclZhcmlhYmxlLCBRdWFsaWZ5aW5nRWxlbWVudCwgVmVuZG9yUHJlZml4XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4vLy8vXG5cbi8vLyBGb250IHNpemUgYXR0cmlidXRlIGFwcGxpZWQgdG8gYDxodG1sPmAgYW5kIGA8Ym9keT5gLiBXZSB1c2UgMTAwJSBieSBkZWZhdWx0IHNvIHRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgdXNlcidzIGJyb3dzZXIgc2V0dGluZ3MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB3aWR0aCBvZiB5b3VyIHNpdGUuIFVzZWQgYnkgdGhlIGdyaWQgdG8gZGV0ZXJtaW5lIHJvdyB3aWR0aC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEyMDApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgYWxsIHR5cGUuIGAkZ2xvYmFsLWxpbmVoZWlnaHRgIGlzIDI0cHggd2hpbGUgYCRnbG9iYWwtZm9udC1zaXplYCBpcyAxNnB4XG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8vIENvbG9ycyB1c2VkIGZvciBidXR0b25zLCBjYWxsb3V0cywgbGlua3MsIGV0Yy4gVGhlcmUgbXVzdCBhbHdheXMgYmUgYSBjb2xvciBjYWxsZWQgYHByaW1hcnlgLlxuLy8vIEB0eXBlIE1hcFxuJGZvdW5kYXRpb24tcGFsZXR0ZTogKFxuXHRwcmltYXJ5OiAjMjE5OWU4LFxuXHRzZWNvbmRhcnk6ICM3NzcsXG5cdHN1Y2Nlc3M6ICMzYWRiNzYsXG5cdGZwb3JhbmdlOiAjZmZhMDAwLFxuXHR3YXJuaW5nOiAjZmZhZTAwLFxuXHRhbGVydDogI2VjNTg0MCxcblx0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGxpZ2h0IGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsaWdodC1ncmF5OiAjZTZlNmU2ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3IgbWVkaXVtIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRtZWRpdW0tZ3JheTogI2NhY2FjYSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGRhcmsgZ3JheSBVSSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRhcmstZ3JheTogIzhhOGE4YSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIGJsYWNrIHVpIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxhY2s6ICMwYTBhMGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciB3aGl0ZSB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHdoaXRlOiAjZmVmZWZlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBDb2xvclxuJGJvZHktZm9udC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayBvZiB0aGUgYm9keS5cbi8vLyBAdHlwZSBMaXN0XG4kYm9keS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIENTUy4gQ2FuIGJlIGVpdGhlciBgbHRyYCBvciBgcnRsYC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZ2xvYmFsLXRleHQtZGlyZWN0aW9uOiBsdHIgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggZm9yIGNvbXBvbmVudHMgdGhhdCBzdXBwb3J0IGl0LlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRnbG9iYWwtZmxleGJveDogZmFsc2UgIWRlZmF1bHQ7XG5cbkBpZiBub3QgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuXHRAZXJyb3IgJ0luICRmb3VuZGF0aW9uLXBhbGV0dGUsIHlvdSBtdXN0IGhhdmUgYSBjb2xvciBuYW1lZCBcInByaW1hcnlcIi4nO1xufVxuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZXMgdXNlZCBmb3IgdGV4dCBkaXJlY3Rpb25cbiRnbG9iYWwtbGVmdDogaWYoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSBydGwsIHJpZ2h0LCBsZWZ0KTtcbiRnbG9iYWwtcmlnaHQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBsZWZ0LCByaWdodCk7XG5cbi8vIEludGVybmFsIHZhcmlhYmxlcyB1c2VkIGZvciBjb2xvcnNcbiRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpO1xuJHNlY29uZGFyeS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzZWNvbmRhcnkpO1xuJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2Vzcyk7XG4kd2FybmluZy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKTtcbiRhbGVydC1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCk7XG5cbiRmcG9yYW5nZS1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBmcG9yYW5nZSk7XG5cbi8vIFJlbW92ZSB0aGlzIGluIDYuM1xuJC16Zi1tZW51LWljb24taW1wb3J0ZWQ6IGZhbHNlO1xuJC16Zi1mbGV4LWNsYXNzZXMtaW1wb3J0ZWQ6IGZhbHNlO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcblx0QGluY2x1ZGUgLXpmLW5vcm1hbGl6ZTtcblxuXHQvLyBUaGVzZSBzdHlsZXMgYXJlIGFwcGxpZWQgdG8gYSA8bWV0YT4gdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHRcblx0LmZvdW5kYXRpb24tbXEge1xuXHRcdGZvbnQtZmFtaWx5OiAnI3stemYtYnAtc2VyaWFsaXplKCRicmVha3BvaW50cyl9Jztcblx0fVxuXG5cdGh0bWwge1xuXHRcdGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG5cdCosXG5cdCo6OmJlZm9yZSxcblx0Kjo6YWZ0ZXIge1xuXHRcdGJveC1zaXppbmc6IGluaGVyaXQ7XG5cdH1cblxuXHQvLyBEZWZhdWx0IGJvZHkgc3R5bGVzXG5cdGJvZHkge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblx0XHRmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuXHRcdGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG5cdFx0Y29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cdFx0YmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcblxuXHRcdEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcblx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblx0XHR9XG5cdH1cblxuXHRpbWcge1xuXHRcdC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG5cblx0XHQvLyBHZXQgcmlkIG9mIGdhcCB1bmRlciBpbWFnZXMgYnkgbWFraW5nIHRoZW0gZGlzcGxheTogaW5saW5lLWJsb2NrOyBieSBkZWZhdWx0XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cblxuXHQvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcblx0dGV4dGFyZWEge1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRtaW4taGVpZ2h0OiA1MHB4O1xuXHRcdGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXHR9XG5cblx0Ly8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuXHRzZWxlY3Qge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXHR9XG5cblx0Ly8gU3R5bGVzIEdvb2dsZSBNYXBzIGFuZCBNYXBRdWVzdCBlbWJlZHMgcHJvcGVybHlcblx0Ly8gc2Nzcy1saW50OmRpc2FibGUgSWRTZWxlY3RvclxuXHQjbWFwX2NhbnZhcyxcblx0Lm1hcF9jYW52YXMsXG5cdC5tcWEtZGlzcGxheVxuXHRpbWcsXG5cdGVtYmVkLFxuXHRvYmplY3Qge1xuXHQgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG59XG5cblx0Ly8gUmVzZXQgPGJ1dHRvbj4gc3R5bGVzIGNyZWF0ZWQgYnkgbW9zdCBicm93c2Vyc1xuYnV0dG9uIHtcblx0QGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG59XG5cblx0Ly8gSW50ZXJuYWwgY2xhc3NlcyB0byBzaG93L2hpZGUgZWxlbWVudHMgaW4gSmF2YVNjcmlwdFxuLmlzLXZpc2libGUge1xuXHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4uaXMtaGlkZGVuIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLyBMb2FkcyBub3JtYWxpemUuY3NzLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuQG1peGluIC16Zi1ub3JtYWxpemUge1xuXHQvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cblx0LyoqXG5cdCogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cblx0KiAyLiBQcmV2ZW50IGlPUyBhbmQgSUUgdGV4dCBzaXplIGFkanVzdCBhZnRlciBkZXZpY2Ugb3JpZW50YXRpb24gY2hhbmdlLFxuXHQqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cblx0Ki9cblxuXHRodG1sIHtcblx0XHRmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuXHRcdC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG5cdFx0LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG5cdH1cblxuXHQvKipcblx0KiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4uXG5cdCovXG5cblx0Ym9keSB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0LyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuXHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXHQvKipcblx0KiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuXHQqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG5cdCogYW5kIEZpcmVmb3guXG5cdCogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cblx0Ki9cblxuXHRhcnRpY2xlLFxuXHRhc2lkZSxcblx0ZGV0YWlscyxcblx0ZmlnY2FwdGlvbixcblx0ZmlndXJlLFxuXHRmb290ZXIsXG5cdGhlYWRlcixcblx0aGdyb3VwLFxuXHRtYWluLFxuXHRtZW51LFxuXHRuYXYsXG5cdHNlY3Rpb24sXG5cdHN1bW1hcnkge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LyoqXG5cdCogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cblx0KiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cdCovXG5cblx0YXVkaW8sXG5cdGNhbnZhcyxcblx0cHJvZ3Jlc3MsXG5cdHZpZGVvIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cblx0fVxuXG5cdC8qKlxuXHQqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG5cdCogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cblx0Ki9cblxuXHRhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cblx0LyoqXG5cdCogQWRkcmVzcyBgW2hpZGRlbl1gIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLlxuXHQqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cblx0Ki9cblxuXHRbaGlkZGVuXSxcblx0dGVtcGxhdGUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQvKiBMaW5rc1xuXHQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuXHQvKipcblx0KiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblx0Ki9cblxuXHRhIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQvKipcblx0KiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG5cdCogYWN0aXZlL2hvdmVyIHN0YXRlLlxuXHQqL1xuXG5cdGE6YWN0aXZlLFxuXHRhOmhvdmVyIHtcblx0XHRvdXRsaW5lOiAwO1xuXHR9XG5cblx0LyogVGV4dC1sZXZlbCBzZW1hbnRpY3Ncblx0ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblx0LyoqXG5cdCogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC8xMSwgU2FmYXJpLCBhbmQgQ2hyb21lLlxuXHQqL1xuXG5cdGFiYnJbdGl0bGVdIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuXHR9XG5cblx0LyoqXG5cdCogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuXHQqL1xuXG5cdGIsXG5cdHN0cm9uZyB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHQvKipcblx0KiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG5cdCovXG5cblx0ZGZuIHtcblx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdH1cblxuXHQvKipcblx0KiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG5cdCogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuXHQqL1xuXG5cdGgxIHtcblx0XHRmb250LXNpemU6IDJlbTtcblx0XHRtYXJnaW46IC42N2VtIDA7XG5cdH1cblxuICAvKipcbiAgICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAgICovXG5cbiAgbWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdXAge1xuICAgIHRvcDogLTAuNWVtO1xuICB9XG5cbiAgc3ViIHtcbiAgICBib3R0b206IC0wLjI1ZW07XG4gIH1cblxuICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxuICAgKi9cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAgICovXG5cbiAgc3ZnOm5vdCg6cm9vdCkge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvKiBHcm91cGluZyBjb250ZW50XG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFIDgvOSBhbmQgU2FmYXJpLlxuICAgKi9cblxuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICAgKi9cblxuICBociB7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxuICAgKi9cblxuICBwcmUge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAgICovXG5cbiAgY29kZSxcbiAga2JkLFxuICBwcmUsXG4gIHNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgfVxuXG4gIC8qIEZvcm1zXG4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgLyoqXG4gICAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gICAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAgICovXG5cbiAgLyoqXG4gICAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAgICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gICAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXG4gICAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICAgKi9cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIGJ1dHRvbiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICAgKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICAgKiBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3gsIElFIDgvOS8xMC8xMSwgYW5kIE9wZXJhLlxuICAgKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICAgKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAgICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxuICAgKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICAgKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gICAqL1xuXG4gIGJ1dHRvbixcbiAgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG4gIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7IC8qIDMgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICAgKi9cblxuICBidXR0b25bZGlzYWJsZWRdLFxuICBodG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4gICAqL1xuXG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHJlc3MgRmlyZWZveCA0KyBzZXR0aW5nIGBsaW5lLWhlaWdodGAgb24gYGlucHV0YCB1c2luZyBgIWltcG9ydGFudGAgaW5cbiAgICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gICAqL1xuXG4gIGlucHV0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cbiAgICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAgICpcbiAgICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cbiAgICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAgICovXG5cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gIH1cblxuICAvKipcbiAgICogRml4IHRoZSBjdXJzb3Igc3R5bGUgZm9yIENocm9tZSdzIGluY3JlbWVudC9kZWNyZW1lbnQgYnV0dG9ucy4gRm9yIGNlcnRhaW5cbiAgICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAgICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICAgKi9cblxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAvKipcbiAgICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqIDIuIEFkZHJlc3MgYGJveC1zaXppbmdgIHNldCB0byBgYm9yZGVyLWJveGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDIgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbiAgICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xuICAgKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gICAqL1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gICAqIFtOT1RFXSBXZSBkb24ndCBlbmFibGUgdGhpcyBydWxlc2V0IGluIEZvdW5kYXRpb24sIGJlY2F1c2Ugd2Ugd2FudCB0aGUgPGZpZWxkc2V0PiBlbGVtZW50IHRvIGhhdmUgcGxhaW4gc3R5bGluZy5cbiAgICovXG5cbiAgLyogZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG4gIH0gKi9cblxuICAvKipcbiAgICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICAgKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gICAqL1xuXG4gIGxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gICAqL1xuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8qKlxuICAgKiBEb24ndCBpbmhlcml0IHRoZSBgZm9udC13ZWlnaHRgIChhcHBsaWVkIGJ5IGEgcnVsZSBhYm92ZSkuXG4gICAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICAgKi9cblxuICBvcHRncm91cCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAvKiBUYWJsZXNcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAvKipcbiAgICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICAgKi9cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuXG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlcjogaW5zZXQgJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1yaWdodC1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6ICgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycykpIC8gKCRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7ICAgIFxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgQGlmICRjb2xvci1ob3ZlciB7XG4gICAgLy8gR2VuZXJhdGUgQ1NTXG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkYmFycyB7XG4gICAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICAgJGhvdmVyLXNoYWRvdzogYXBwZW5kKCRob3Zlci1zaGFkb3csIDAgJG9mZnNldCAwICRjb2xvci1ob3ZlciwgY29tbWEpO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1ob3ZlcjtcbiAgICAgIGJveC1zaGFkb3c6ICRob3Zlci1zaGFkb3c7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGEgZG93bndhcmQtZmFjaW5nIHRyaWFuZ2xlIGFzIGEgYmFja2dyb3VuZCBpbWFnZSB0byBhbiBlbGVtZW50LiBUaGUgaW1hZ2UgaXMgZm9ybWF0dGVkIGFzIGFuIFNWRywgbWFraW5nIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSBjb2xvci4gQmVjYXVzZSBJbnRlcm5ldCBFeHBsb3JlciBkb2Vzbid0IHN1cHBvcnQgZW5jb2RlZCBTVkdzIGFzIGJhY2tncm91bmQgaW1hZ2VzLCBhIFBORyBmYWxsYmFjayBpcyBhbHNvIGluY2x1ZGVkLlxuLy8vIFRoZXJlIGFyZSB0d28gUE5HIGZhbGxiYWNrczogYSBibGFjayB0cmlhbmdsZSBhbmQgYSB3aGl0ZSB0cmlhbmdsZS4gVGhlIG9uZSB1c2VkIGRlcGVuZHMgb24gdGhlIGxpZ2h0bmVzcyBvZiB0aGUgaW5wdXQgY29sb3IuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRibGFja10gLSBDb2xvciB0byB1c2UgZm9yIHRoZSB0cmlhbmdsZS5cbkBtaXhpbiBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRjb2xvcjogJGJsYWNrKSB7XG4gICRyZ2I6ICdyZ2IlMjgje3JvdW5kKHJlZCgkY29sb3IpKX0sICN7cm91bmQoZ3JlZW4oJGNvbG9yKSl9LCAje3JvdW5kKGJsdWUoJGNvbG9yKSl9JTI5JztcblxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyB3aWR0aD0nMzInIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAzMiAyNCc+PHBvbHlnb24gcG9pbnRzPScwLDAgMzIsMCAxNiwyNCcgc3R5bGU9J2ZpbGw6ICN7JHJnYn0nPjwvcG9seWdvbj48L3N2Zz5cIik7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDowXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoMSAvICRpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgY2xpcDogYXV0bztcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IHRydWUpIHtcbiAgJGxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG5cbiAgQGlmIG5vdCAkc21hbGwge1xuICAgICRsaXN0OiBzbC1yZW1vdmUoJGxpc3QsICQtemYtemVyby1icmVha3BvaW50KTtcbiAgfVxuXG4gIEBlYWNoICRuYW1lIGluICRsaXN0IHtcbiAgICAkLXpmLXNpemU6ICRuYW1lICFnbG9iYWw7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSBvciBicmVha3BvaW50IG5hbWUgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJG5hbWU6IC16Zi1nZXQtYnAtdmFsKCRtYXAsICRuYW1lKTtcbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uXG4vLy8vXG5cbi8vLyBQYWRkaW5nIGluc2lkZSBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tcGFkZGluZzogLjg1ZW0gMWVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGFyb3VuZCBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gMCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmlsbCBmb3IgYnV0dG9ucy4gQ2FuIGVpdGhlciBiZSBgc29saWRgIG9yIGBob2xsb3dgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRidXR0b24tZmlsbDogc29saWQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZDogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIENvbG9yXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXI6IHNjYWxlLWNvbG9yKCRidXR0b24tYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTE1JSkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGNvbG9yIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMsIGlmIHRoZSBiYWNrZ3JvdW5kIGlzIGxpZ2h0LlxuLy8vIEB0eXBlIExpc3RcbiRidXR0b24tY29sb3ItYWx0OiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBidXR0b25zLCBkZWZhdWx0ZWQgdG8gZ2xvYmFsLXJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuXHR0aW55OiAuNnJlbSxcblx0c21hbGw6IC43NXJlbSxcblx0ZGVmYXVsdDogLjlyZW0sXG5cdGxhcmdlOiAuMjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAuMjUgIWRlZmF1bHQ7XG5cbi8vIEludGVybmFsOiBmbGlwIGZyb20gbWFyZ2luLXJpZ2h0IHRvIG1hcmdpbi1sZWZ0IGZvciBkZWZhdWx0c1xuQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuXHQkYnV0dG9uLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xufVxuXG4vLyBUT0RPOiBEb2N1bWVudCBidXR0b24tYmFzZSgpIG1peGluXG5AbWl4aW4gYnV0dG9uLWJhc2Uge1xuXHRAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRsaW5lLWhlaWdodDogMWVtO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMjVzIGVhc2Utb3V0LCBjb2xvciAuMjVzIGVhc2Utb3V0LCBib3JkZXIgLjI1cztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Ym9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG5cdHBhZGRpbmc6ICRidXR0b24tcGFkZGluZztcblx0bWFyZ2luOiAkYnV0dG9uLW1hcmdpbjtcblx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcblx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XG5cdGJvcmRlcjogMnB4IHNvbGlkICRmcG9yYW5nZS1jb2xvcjtcblx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcblx0QGlmICRleHBhbmQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXHRAZWxzZSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG5cdH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW5cblx0YnV0dG9uLXN0eWxlIChcblx0XHQkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuXHRcdCRiYWNrZ3JvdW5kLWhvdmVyOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXIsXG5cdFx0JGNvbG9yOiAkYnV0dG9uLWNvbG9yXG5cdCkge1xuXHRAaWYgJGNvbG9yID09IGF1dG8ge1xuXHRcdCRjb2xvcjogZm9yZWdyb3VuZCgkYmFja2dyb3VuZCwgJGJ1dHRvbi1jb2xvci1hbHQsICRidXR0b24tY29sb3IpO1xuXHR9XG5cblx0QGlmICRiYWNrZ3JvdW5kLWhvdmVyID09IGF1dG8ge1xuXHRcdCRiYWNrZ3JvdW5kLWhvdmVyOiBzY2FsZS1jb2xvcigkYmFja2dyb3VuZCwgJGxpZ2h0bmVzczogLTIwJSk7XG5cdH1cblx0YmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cdGNvbG9yOiAkY29sb3I7XG5cblx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQtaG92ZXI7XG5cdH1cbn1cblxuLy8vIFJlbW92ZXMgYmFja2dyb3VuZCBmaWxsIG9uIGhvdmVyIGFuZCBmb2N1cyBmb3IgaG9sbG93IGJ1dHRvbnMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG5cdCYsXG5cdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKCRjb2xvcjogJHByaW1hcnktY29sb3IpIHtcblx0JGNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6IC01MCUpO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkY29sb3I7XG5cdGNvbG9yOiAkY29sb3I7XG5cblx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3ItaG92ZXI7XG5cdFx0Y29sb3I6ICRjb2xvci1ob3Zlcjtcblx0fVxufVxuXG4vLy8gQWRkcyBkaXNhYmxlZCBzdHlsZXMgdG8gYSBidXR0b24gYnkgZmFkaW5nIHRoZSBlbGVtZW50LCByZXNldGluZyB0aGUgY3Vyc29yLCBhbmQgZGlzYWJsaW5nIHBvaW50ZXIgZXZlbnRzLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZCB7XG5cdG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcblx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblxuXHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWJhY2tncm91bmQ7XG5cdFx0Y29sb3I6ICRidXR0b24tY29sb3I7XG5cdH1cbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW5cblx0YnV0dG9uLWRyb3Bkb3duIChcblx0XHQkc2l6ZTogLjRlbSxcblx0XHQkY29sb3I6ICR3aGl0ZSxcblx0XHQkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuXHQpIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCBkb3duKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0dG9wOiAuNGVtOyAvLyBBbGlnbnMgdGhlIGFycm93IHdpdGggdGhlIHRleHQgb2YgdGhlIGJ1dHRvblxuXHRcdGZsb2F0OiAjeyRnbG9iYWwtcmlnaHR9O1xuXHRcdG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdldC1zaWRlKCRidXR0b24tcGFkZGluZywgcmlnaHQpO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW5cblx0YnV0dG9uKFxuXHRcdCRleHBhbmQ6IGZhbHNlLFxuXHRcdCRiYWNrZ3JvdW5kOiAkYnV0dG9uLWJhY2tncm91bmQsXG5cdFx0JGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3Zlcixcblx0XHQkY29sb3I6ICRidXR0b24tY29sb3IsXG5cdFx0JHN0eWxlOiAkYnV0dG9uLWZpbGxcblx0KSB7XG5cdEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuXG5cdEBpZiAkc3R5bGUgPT0gc29saWQge1xuXHRcdEBpbmNsdWRlIGJ1dHRvbi1zdHlsZSgkYmFja2dyb3VuZCwgJGJhY2tncm91bmQtaG92ZXIsICRjb2xvcik7XG5cdH1cblx0QGVsc2UgaWYgJHN0eWxlID09IGhvbGxvdyB7XG5cdFx0QGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcblx0XHRAaW5jbHVkZSBidXR0b24taG9sbG93LXN0eWxlKCRiYWNrZ3JvdW5kKTtcblx0fVxuXG5cdEBpZiAkZXhwYW5kIHtcblx0XHRAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuXHR9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbiB7XG5cdC5idXR0b24ge1xuXHRcdEBpbmNsdWRlIGJ1dHRvbjtcblxuXHRcdC8vIFNpemVzXG5cdFx0QGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcblx0XHRcdCYuI3skc2l6ZX0ge1xuXHRcdFx0XHRmb250LXNpemU6ICR2YWx1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmV4cGFuZGVkIHtcblx0XHRcdEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG5cdFx0fVxuXG5cdFx0Ly8gQ29sb3JzXG5cdFx0QGVhY2ggJG5hbWUsICRjb2xvciBpbiAkZm91bmRhdGlvbi1wYWxldHRlIHtcblx0XHRcdEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcblx0XHRcdFx0Ji4jeyRuYW1lfSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdEBlbHNlIHtcblx0XHRcdFx0Ji4jeyRuYW1lfSB7XG5cdFx0XHRcdFx0QGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji4jeyRuYW1lfS5kcm9wZG93bjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEhvbGxvdyBzdHlsZVxuXHRcdEBpZiAkYnV0dG9uLWZpbGwgIT0gaG9sbG93IHtcblx0XHRcdCYuaG9sbG93IHtcblx0XHRcdFx0QGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcblx0XHRcdFx0QGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZTtcblxuXHRcdFx0XHRAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuXHRcdFx0XHRcdCYuI3skbmFtZX0ge1xuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIERpc2FibGVkIHN0eWxlXG5cdFx0Ji5kaXNhYmxlZCxcblx0XHQmW2Rpc2FibGVkXSB7XG5cdFx0XHRAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gRHJvcGRvd24gYXJyb3dcblx0XHQmLmRyb3Bkb3duIHtcblx0XHRcdEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuXHRcdFx0QGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuXHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQnV0dG9uIHdpdGggZHJvcGRvd24gYXJyb3cgb25seVxuXHRcdCYuYXJyb3ctb25seTo6YWZ0ZXIge1xuXHRcdFx0bWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0dG9wOiAtLjFlbTtcblx0XHR9XG5cblx0XHRzdHJvbmcsIGIge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHR9XG5cdH1cbn1cblxuXG4uYnV0dG9uIHtcblx0Ji5hcnJvdy1sZWZ0LFxuXHQmLmFycm93LXJpZ2h0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNTApO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcblx0XHRcdGxpbmUtaGVpZ2h0OiByZW0tY2FsYygxNyk7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtLWNhbGMoMS44KTtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0Ym9yZGVyOiAwO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiA1MHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0d2lkdGg6IHJlbS1jYWxjKDE0KTtcblx0XHRcdGhlaWdodDogcmVtLWNhbGMoMTIpO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKCcjeyR0aGVtZS11cmwtaW1hZ2VzfS9hcnJvdy1iYWNrLnBuZycpO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5hcnJvdy1sZWZ0IHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdHBhZGRpbmctbGVmdDogMjhweDtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogbGVmdCAuM3M7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRsZWZ0OiAtKHJlbS1jYWxjKDUpKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmFycm93LXJpZ2h0IHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyOCk7XG5cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdG1hcmdpbi10b3A6IHJlbS1jYWxjKC03KTtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0XHR0cmFuc2l0aW9uOiByaWdodCAuM3M7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRyaWdodDogLShyZW0tY2FsYyg1KSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji50cmlhbmdsZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDQwcHg7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRyaWdodDogMjBweDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdFx0bWFyZ2luLXRvcDogLTNweDtcblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRib3JkZXItd2lkdGg6IDRweCAwIDRweCA4cHg7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIC4ycztcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkd2hpdGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0c3ZnIHtcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuMnM7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuICRudW0gLyAoJG51bSAqIDAgKyAxKTtcbn1cblxuLy8vIENvbnZlcnRzIG9uZSBvciBtb3JlIHBpeGVsIHZhbHVlcyBpbnRvIG1hdGNoaW5nIHJlbSB2YWx1ZXMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkdmFsdWVzIC0gT25lIG9yIG1vcmUgdmFsdWVzIHRvIGNvbnZlcnQuIEJlIHN1cmUgdG8gc2VwYXJhdGUgdGhlbSB3aXRoIHNwYWNlcyBhbmQgbm90IGNvbW1hcy4gSWYgeW91IG5lZWQgdG8gY29udmVydCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCB3cmFwIHRoZSBsaXN0IGluIHBhcmVudGhlc2VzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBUaGUgYmFzZSB2YWx1ZSB0byB1c2Ugd2hlbiBjYWxjdWxhdGluZyB0aGUgYHJlbWAuIElmIHlvdSdyZSB1c2luZyBGb3VuZGF0aW9uIG91dCBvZiB0aGUgYm94LCB0aGlzIGlzIDE2cHguIElmIHRoaXMgcGFyYW1ldGVyIGlzIGBudWxsYCwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBgJGJhc2UtZm9udC1zaXplYCB2YXJpYWJsZSBhcyB0aGUgYmFzZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtMaXN0fSBBIGxpc3Qgb2YgY29udmVydGVkIHZhbHVlcy5cbkBmdW5jdGlvbiByZW0tY2FsYygkdmFsdWVzLCAkYmFzZTogbnVsbCkge1xuICAkcmVtLXZhbHVlczogKCk7XG4gICRjb3VudDogbGVuZ3RoKCR2YWx1ZXMpO1xuXG4gIC8vIElmIG5vIGJhc2UgaXMgZGVmaW5lZCwgZGVmZXIgdG8gdGhlIGdsb2JhbCBmb250IHNpemVcbiAgQGlmICRiYXNlID09IG51bGwge1xuICAgICRiYXNlOiAkZ2xvYmFsLWZvbnQtc2l6ZTtcbiAgfVxuXG4gIC8vIElmIHRoZSBiYXNlIGZvbnQgc2l6ZSBpcyBhICUsIHRoZW4gbXVsdGlwbHkgaXQgYnkgMTZweFxuICAvLyBUaGlzIGlzIGJlY2F1c2UgMTAwJSBmb250IHNpemUgPSAxNnB4IGluIG1vc3QgYWxsIGJyb3dzZXJzXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEB3YXJuIGluc3BlY3QoJHZhbHVlKSArICcgd2FzIHBhc3NlZCB0byByZW0tY2FsYygpLCB3aGljaCBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBlbSBpbnRvIHJlbSBpZiBzb21lb25lIGhhbmRzIG92ZXIgJ2VtJ3NcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqIDFyZW07XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgcmVtIGlmIHVuaXRzIGZvciAkdmFsdWUgaXMgbm90IHJlbSBvciBlbVxuICBAaWYgdW5pdCgkdmFsdWUpICE9ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAvIHN0cmlwLXVuaXQoJGJhc2UpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiAoJGJhc2UgLyAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ3JlbScge1xuICAgICRiYXNlOiBzdHJpcC11bml0KCRiYXNlKSAqIDE2cHg7XG4gIH1cblxuICBAaWYgdW5pdCgkYmFzZSkgPT0gJ2VtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIC8vIE5vdyBsZXRzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogKCR2YWx1ZSAvIDEwMCUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdyZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnZW0nIHtcbiAgICAkdmFsdWU6IHN0cmlwLXVuaXQoJHZhbHVlKSAqICRiYXNlO1xuICB9XG5cbiAgLy8gJ3B4J1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdweCcge1xuICAgIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpIC8gc3RyaXAtdW5pdCgkYmFzZSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlcm4gdGhlbiAxMCBhcmUgbWVhbnQgdG8gYmUgYWJzb2x1dGUgaW4gJ3B4J1xuICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgKCR2YWx1ZSA+IDEwKSB7XG4gICAgQHJldHVybiAkdmFsdWUgLyBzdHJpcC11bml0KCRiYXNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gIEZvdW5kYXRpb24gZm9yIFNpdGVzIFNldHRpbmdzXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vXG4vLyAgVGFibGUgb2YgQ29udGVudHM6XG4vL1xuLy8gICAxLiBHbG9iYWxcbi8vICAgMi4gQnJlYWtwb2ludHNcbi8vICAgMy4gVGhlIEdyaWRcbi8vICAgNC4gQmFzZSBUeXBvZ3JhcGh5XG4vLyAgIDUuIFR5cG9ncmFwaHkgSGVscGVyc1xuLy8gICA2LiBBYmlkZVxuLy8gICA3LiBBY2NvcmRpb25cbi8vICAgOC4gQWNjb3JkaW9uIE1lbnVcbi8vICAgOS4gQmFkZ2Vcbi8vICAxMC4gQnJlYWRjcnVtYnNcbi8vICAxMS4gQnV0dG9uXG4vLyAgMTIuIEJ1dHRvbiBHcm91cFxuLy8gIDEzLiBDYWxsb3V0XG4vLyAgMTQuIENsb3NlIEJ1dHRvblxuLy8gIDE1LiBEcmlsbGRvd25cbi8vICAxNi4gRHJvcGRvd25cbi8vICAxNy4gRHJvcGRvd24gTWVudVxuLy8gIDE4LiBGbGV4IFZpZGVvXG4vLyAgMTkuIEZvcm1zXG4vLyAgMjAuIExhYmVsXG4vLyAgMjEuIE1lZGlhIE9iamVjdFxuLy8gIDIyLiBNZW51XG4vLyAgMjMuIE1ldGVyXG4vLyAgMjQuIE9mZi1jYW52YXNcbi8vICAyNS4gT3JiaXRcbi8vICAyNi4gUGFnaW5hdGlvblxuLy8gIDI3LiBQcm9ncmVzcyBCYXJcbi8vICAyOC4gUmV2ZWFsXG4vLyAgMjkuIFNsaWRlclxuLy8gIDMwLiBTd2l0Y2hcbi8vICAzMS4gVGFibGVcbi8vICAzMi4gVGFic1xuLy8gIDMzLiBUaHVtYm5haWxcbi8vICAzNC4gVGl0bGUgQmFyXG4vLyAgMzUuIFRvb2x0aXBcbi8vICAzNi4gVG9wIEJhclxuXG4vLyAxLiBHbG9iYWxcbi8vIC0tLS0tLS0tLVxuXG4kdGhlbWUtdXJsOiBcIi93cC1jb250ZW50L3RoZW1lcy9mdXR1cmVcIjtcbiR0aGVtZS11cmwtaW1hZ2VzOiAkdGhlbWUtdXJsICsgJy9kaXN0L2ltYWdlcyc7XG5cbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlO1xuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCk7XG4kZ2xvYmFsLWxpbmVoZWlnaHQ6IDEuNTtcbiRmb3VuZGF0aW9uLXBhbGV0dGU6IChcblx0cHJpbWFyeTogIzIyMjIyMixcblx0c2Vjb25kYXJ5OiAjNDQ0NDQ0LFxuXHRmcG9yYW5nZTogI2ZmYTAwMCxcblx0c3VjY2VzczogIzNhZGI3Nixcblx0d2FybmluZzogI2ZmMDAwMCxcblx0YWxlcnQ6ICNlYzU4NDAsXG4pO1xuJGZwb3JhbmdlOiAjZmY2MDAwO1xuJGxpZ2h0bmVzcy1ncmF5OiAjZTBlMGUwO1xuJGxpZ2h0LWdyYXk6ICNmNWY1ZjU7XG4kbWVkaXVtLWdyYXk6ICNhYWFhYWE7XG4kZ3JheTogIzY2NjY2NjtcbiRncmF5LW5vcm1hbDogI2NjY2NjYztcbiRtZWRpdW0tZ3JheTogIzk5OTk5OTtcbiRkYXJrLWdyYXk6ICM4ODg4ODg7XG4kYnV0dG9uLWdyYXk6ICMzNjM2MzY7XG4kdGV4dC1ncmF5OiAjNTU1NTU1O1xuJGJsYWNrOiAjMDAwMDAwO1xuJHdoaXRlOiAjZmZmZmZmO1xuJGJsdWU6ICMwNmExZTE7XG4kYmx1ZS1kYXJrOiAjMDA2ZmQ2O1xuJHNlY3Rpb24yLWJnY29sb3I6ICNmYWZhZmE7XG4kY29sb3ItYnV0dG9uLWhvdmVyOiAjZmY2MDAwO1xuJHByaW1hcnktYm9yZGVyOiAjZjJmMmYyO1xuJHNlY29uZGFyeS1ib3JkZXI6ICRsaWdodC1ncmF5O1xuJHllbGxvdy1ib3JkZXI6ICNmZjliMDA7XG4kc2hhZG93LWNvbG9yOiAjYmFiYWJhO1xuJHNvY2lhbC1sYWJlbDogI2U1ZTVlNTtcbiRtb3JlLWNvbG9yOiAjZmZhMDAwO1xuJHN1YnNjcmliZS1iZzogIzAwYTNlMDtcbiRwcmltYXJ5LXN2ZzogIzAwYTNlMztcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjaztcbiRib2R5LWZvbnQtZmFtaWx5OiAnU291cmNlIFNhbnMgUHJvJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJvZHktYW50aWFsaWFzZWQ6IHRydWU7XG4kZ2xvYmFsLW1hcmdpbjogMXJlbTtcbiRnbG9iYWwtcGFkZGluZzogMXJlbTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZDtcbiRnbG9iYWwtcmFkaXVzOiAwO1xuJGdsb2JhbC10ZXh0LWRpcmVjdGlvbjogbHRyO1xuJGdsb2JhbC1mbGV4Ym94OiBmYWxzZTtcbiRwcmludC10YW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlO1xuXG5AaW5jbHVkZSBhZGQtZm91bmRhdGlvbi1jb2xvcnM7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4kYnJlYWtwb2ludHM6IChcblx0eHNtYWxsOiAwLFxuXHRzbWFsbDogMCxcblx0bWVkaXVtOiA2NzBweCxcblx0bGFyZ2U6IDk2MHB4LFxuXHR4bGFyZ2U6IDEyMDBweCxcblx0eHhsYXJnZTogMTQ0MHB4LFxuKTtcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UgeGxhcmdlIHh4bGFyZ2UpO1xuXG4vLyAzLiBUaGUgR3JpZFxuLy8gLS0tLS0tLS0tLS1cblxuJGdyaWQtcm93LXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGdyaWQtY29sdW1uLWNvdW50OiAxMjtcbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcblx0c21hbGw6IDIwcHgsXG5cdG1lZGl1bTogMHB4XG4pO1xuJGdyaWQtY29sdW1uLWFsaWduLWVkZ2U6IHRydWU7XG4kYmxvY2stZ3JpZC1tYXg6IDg7XG5cbi8vIDQuIEJhc2UgVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoZWFkZXItZm9udC1mYW1pbHk6IE1hbGxlYWJsZTtcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsO1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kaGVhZGVyLXNpemVzOiAoXG5cdHNtYWxsOiAoXG5cdFx0J2gxJzogMzAsXG5cdFx0J2gyJzogMjYsXG5cdFx0J2gzJzogMTYsXG5cdFx0J2g0JzogMTQsXG5cdFx0J2g1JzogMTMsXG5cdFx0J2g2JzogMTIsXG5cdCksXG5cdGxhcmdlOiAoXG5cdFx0J2gxJzogMzYsXG5cdFx0J2gyJzogMzAsXG5cdFx0J2gzJzogMjQsXG5cdFx0J2g0JzogMjAsXG5cdFx0J2g1JzogMTYsXG5cdFx0J2g2JzogMTQsXG5cdCksXG4pO1xuJGhlYWRlci1jb2xvcjogaW5oZXJpdDtcbiRoZWFkZXItbGluZWhlaWdodDogMS40O1xuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAuNXJlbTtcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiRzbWFsbC1mb250LXNpemU6IDgwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5O1xuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjY7XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW07XG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4kY29kZS1jb2xvcjogJGJsYWNrO1xuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSk7XG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpO1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmU7XG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZTtcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aDtcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0bztcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtO1xuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW07XG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAuM3JlbTtcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5O1xuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KTtcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheTtcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpO1xuJGNpdGUtY29sb3I6ICRkYXJrLWdyYXk7XG4ka2V5c3Ryb2tlLWZvbnQ6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG4ka2V5c3Ryb2tlLWNvbG9yOiAkYmxhY2s7XG4ka2V5c3Ryb2tlLWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCk7XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrO1xuXG4vLyA1LiBUeXBvZ3JhcGh5IEhlbHBlcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNTtcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNjtcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40O1xuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheTtcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbDtcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogLjJyZW07XG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IC41cmVtO1xuJHN0YXQtZm9udC1zaXplOiAyLjVyZW07XG5cbi8vIDYuIEFiaWRlXG4vLyAtLS0tLS0tLVxuXG4kYWJpZGUtaW5wdXRzOiB0cnVlO1xuJGFiaWRlLWxhYmVsczogdHJ1ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQ6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGZvcm0tbGFiZWwtY29sb3ItaW52YWxpZDogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBhbGVydCk7XG4kaW5wdXQtZXJyb3ItY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpO1xuJGlucHV0LWVycm9yLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuXG4vLyA3LiBBY2NvcmRpb25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRhY2NvcmRpb24tcGx1c21pbnVzOiB0cnVlO1xuJGFjY29yZGlvbi1pdGVtLWNvbG9yOiBmb3JlZ3JvdW5kKCRhY2NvcmRpb24tYmFja2dyb3VuZCwgJHByaW1hcnktY29sb3IpO1xuJGFjY29yZGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJGFjY29yZGlvbi1pdGVtLXBhZGRpbmc6IDEuMjVyZW0gMXJlbTtcbiRhY2NvcmRpb24tY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kYWNjb3JkaW9uLWNvbnRlbnQtYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0LWdyYXk7XG4kYWNjb3JkaW9uLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJGFjY29yZGlvbi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gOC4gQWNjb3JkaW9uIE1lbnVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhY2NvcmRpb25tZW51LWFycm93czogdHJ1ZTtcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuLy8gOS4gQmFkZ2Vcbi8vIC0tLS0tLS0tXG5cbiRiYWRnZS1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbiRiYWRnZS1jb2xvcjogJHdoaXRlO1xuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJhZGdlLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG4kYmFkZ2UtcGFkZGluZzogLjNlbTtcbiRiYWRnZS1taW53aWR0aDogMi4xZW07XG4kYmFkZ2UtZm9udC1zaXplOiAuNnJlbTtcblxuLy8gMTAuIEJyZWFkY3J1bWJzXG4vLyAtLS0tLS0tLS0tLS0tLS1cblxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDA7XG4kYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDExKTtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjaztcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXk7XG4kYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW46IC43NXJlbTtcbiRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZTogdHJ1ZTtcbiRicmVhZGNydW1icy1pdGVtLXNsYXNoOiB0cnVlO1xuXG4vLyAxMS4gQnV0dG9uXG4vLyAtLS0tLS0tLS0tXG5cbiRidXR0b24tcGFkZGluZzogcmVtLWNhbGMoMTApIHJlbS1jYWxjKDIwKTtcbiRidXR0b24tbWFyZ2luOiAwIDAgMCAwO1xuJGJ1dHRvbi1maWxsOiBzb2xpZDtcbiRidXR0b24tYmFja2dyb3VuZDogJHdoaXRlO1xuJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyOiAkY29sb3ItYnV0dG9uLWhvdmVyO1xuJGJ1dHRvbi1jb2xvcjogJHByaW1hcnktY29sb3I7XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrO1xuJGJ1dHRvbi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGJ1dHRvbi1zaXplczogKFxuXHR0aW55OiAuNnJlbSxcblx0c21hbGw6IC43NXJlbSxcblx0ZGVmYXVsdDogcmVtLWNhbGMoMTcpLFxuXHRsYXJnZTogMS4yNXJlbSxcbik7XG4kYnV0dG9uLW9wYWNpdHktZGlzYWJsZWQ6IC4yNTtcblxuLy8gMTIuIEJ1dHRvbiBHcm91cFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtO1xuJGJ1dHRvbmdyb3VwLXNwYWNpbmc6IDFweDtcbiRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcjogJy5idXR0b24nO1xuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDY7XG5cbi8vIDEzLiBDYWxsb3V0XG4vLyAtLS0tLS0tLS0tLVxuXG4kY2FsbG91dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kY2FsbG91dC1iYWNrZ3JvdW5kLWZhZGU6IDg1JTtcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAuMjUpO1xuJGNhbGxvdXQtbWFyZ2luOiAwIDAgMXJlbSAwO1xuJGNhbGxvdXQtcGFkZGluZzogMXJlbTtcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4kY2FsbG91dC1mb250LWNvbG9yLWFsdDogJGJvZHktYmFja2dyb3VuZDtcbiRjYWxsb3V0LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJTtcblxuLy8gMTQuIENsb3NlIEJ1dHRvblxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuXG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcDtcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogcmVtLWNhbGMoMzApO1xuJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbDogcmVtLWNhbGMoMzApO1xuJGNsb3NlYnV0dG9uLXNpemU6IDJlbTtcbiRjbG9zZWJ1dHRvbi1saW5laGVpZ2h0OiAxO1xuJGNsb3NlYnV0dG9uLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrO1xuXG4vLyAxNS4gRHJpbGxkb3duXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMgbGluZWFyO1xuJGRyaWxsZG93bi1hcnJvd3M6IHRydWU7XG4kZHJpbGxkb3duLWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlO1xuXG4vLyAxNi4gRHJvcGRvd25cbi8vIC0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd24tcGFkZGluZzogMXJlbTtcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZHJvcGRvd24tZm9udC1zaXplOiAxcmVtO1xuJGRyb3Bkb3duLXdpZHRoOiAzMDBweDtcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJGRyb3Bkb3duLXNpemVzOiAoXG5cdHRpbnk6IDEwMHB4LFxuXHRzbWFsbDogMjAwcHgsXG5cdGxhcmdlOiA0MDBweCxcbik7XG5cbi8vIDE3LiBEcm9wZG93biBNZW51XG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4kZHJvcGRvd25tZW51LWFycm93czogdHJ1ZTtcbiRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3I6ICRhbmNob3ItY29sb3I7XG4kZHJvcGRvd25tZW51LW1pbi13aWR0aDogMjAwcHg7XG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZTtcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5O1xuXG4vLyAxOC4gRmxleCBWaWRlb1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJGZsZXh2aWRlby1tYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNik7XG4kZmxleHZpZGVvLXJhdGlvOiA0IGJ5IDM7XG4kZmxleHZpZGVvLXJhdGlvLXdpZGVzY3JlZW46IDE2IGJ5IDk7XG5cbi8vIDE5LiBGb3Jtc1xuLy8gLS0tLS0tLS0tXG5cbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApO1xuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCk7XG4kbGVnZW5kLXBhZGRpbmc6IHJlbS1jYWxjKDAgMyk7XG4kZm9ybS1zcGFjaW5nOiByZW0tY2FsYygxNik7XG4kaGVscHRleHQtY29sb3I6ICRibGFjaztcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKTtcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWM7XG4kaW5wdXQtcHJlZml4LWNvbG9yOiAkYmxhY2s7XG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuJGlucHV0LXByZWZpeC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW07XG4kZm9ybS1sYWJlbC1jb2xvcjogJGJsYWNrO1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsO1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuODtcbiRzZWxlY3QtYmFja2dyb3VuZDogJHdoaXRlO1xuJHNlbGVjdC10cmlhbmdsZS1jb2xvcjogJGRhcmstZ3JheTtcbiRzZWxlY3QtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiRpbnB1dC1jb2xvcjogJGJsYWNrO1xuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4kaW5wdXQtZm9udC1zaXplOiByZW0tY2FsYygxNik7XG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuJGlucHV0LWJhY2tncm91bmQtZm9jdXM6ICR3aGl0ZTtcbiRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkOiAkbGlnaHQtZ3JheTtcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtYm9yZGVyLWZvY3VzOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgLjEpO1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXk7XG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBkZWZhdWx0O1xuJGlucHV0LXRyYW5zaXRpb246IGJveC1zaGFkb3cgLjVzLCBib3JkZXItY29sb3IgLjI1cyBlYXNlLWluLW91dDtcbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWU7XG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMjAuIExhYmVsXG4vLyAtLS0tLS0tLS1cblxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJGxhYmVsLWNvbG9yOiAkd2hpdGU7XG4kbGFiZWwtY29sb3ItYWx0OiAkYmxhY2s7XG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZTtcbiRsYWJlbC1mb250LXNpemU6IC44cmVtO1xuJGxhYmVsLXBhZGRpbmc6IC4zMzMzcmVtIC41cmVtO1xuJGxhYmVsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDIxLiBNZWRpYSBPYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS1cblxuJG1lZGlhb2JqZWN0LW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJG1lZGlhb2JqZWN0LXNlY3Rpb24tcGFkZGluZzogJGdsb2JhbC1wYWRkaW5nO1xuJG1lZGlhb2JqZWN0LWltYWdlLXdpZHRoLXN0YWNrZWQ6IDEwMCU7XG5cbi8vIDIyLiBNZW51XG4vLyAtLS0tLS0tLVxuXG4kbWVudS1tYXJnaW46IDA7XG4kbWVudS1tYXJnaW4tbmVzdGVkOiAxcmVtO1xuJG1lbnUtaXRlbS1wYWRkaW5nOiAwO1xuJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU6ICR3aGl0ZTtcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSk7XG4kbWVudS1pY29uLXNwYWNpbmc6IC4yNXJlbTtcblxuLy8gMjMuIE1ldGVyXG4vLyAtLS0tLS0tLS1cblxuJG1ldGVyLWhlaWdodDogMXJlbTtcbiRtZXRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuJG1ldGVyLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRtZXRlci1maWxsLWdvb2Q6ICRzdWNjZXNzLWNvbG9yO1xuJG1ldGVyLWZpbGwtbWVkaXVtOiAkd2FybmluZy1jb2xvcjtcbiRtZXRlci1maWxsLWJhZDogJGFsZXJ0LWNvbG9yO1xuXG4vLyAyNC4gT2ZmLWNhbnZhc1xuLy8gLS0tLS0tLS0tLS0tLS1cblxuJG9mZmNhbnZhcy1zaXplOiAyNTBweDtcbiRvZmZjYW52YXMtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kb2ZmY2FudmFzLXppbmRleDogLTE7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoOiAuNXM7XG4kb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nOiBlYXNlO1xuJG9mZmNhbnZhcy1maXhlZC1yZXZlYWw6IHRydWU7XG4kb2ZmY2FudmFzLWV4aXQtYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIC4yNSk7XG4kbWFpbmNvbnRlbnQtY2xhc3M6ICdvZmYtY2FudmFzLWNvbnRlbnQnO1xuJG1haW5jb250ZW50LXNoYWRvdzogMCAwIDEwcHggcmdiYSgkYmxhY2ssIC41KTtcblxuLy8gMjUuIE9yYml0XG4vLyAtLS0tLS0tLS1cblxuJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kOiAkbWVkaXVtLWdyYXk7XG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlOiAkZGFyay1ncmF5O1xuJG9yYml0LWJ1bGxldC1kaWFtZXRlcjogMS4ycmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW46IC4xcmVtO1xuJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wOiAuOHJlbTtcbiRvcmJpdC1idWxsZXQtbWFyZ2luLWJvdHRvbTogLjhyZW07XG4kb3JiaXQtY2FwdGlvbi1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgLjUpO1xuJG9yYml0LWNhcHRpb24tcGFkZGluZzogMXJlbTtcbiRvcmJpdC1jb250cm9sLWJhY2tncm91bmQtaG92ZXI6IHJnYmEoJGJsYWNrLCAuNSk7XG4kb3JiaXQtY29udHJvbC1wYWRkaW5nOiAxcmVtO1xuJG9yYml0LWNvbnRyb2wtemluZGV4OiAxMDtcblxuLy8gMjYuIFBhZ2luYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tXG5cbiRwYWdpbmF0aW9uLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1pdGVtLXBhZGRpbmc6IHJlbS1jYWxjKDMgMTApO1xuJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nOiByZW0tY2FsYygxKTtcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcGFnaW5hdGlvbi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRsaWdodC1ncmF5O1xuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yO1xuJHBhZ2luYXRpb24taXRlbS1jb2xvci1jdXJyZW50OiBmb3JlZ3JvdW5kKCRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1jdXJyZW50KTtcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheTtcbiRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yOiAkYmxhY2s7XG4kcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXM6IGZhbHNlO1xuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlO1xuXG4vLyAyNy4gUHJvZ3Jlc3MgQmFyXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5cbiRwcm9ncmVzcy1oZWlnaHQ6IDFyZW07XG4kcHJvZ3Jlc3MtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHByb2dyZXNzLW1hcmdpbi1ib3R0b206ICRnbG9iYWwtbWFyZ2luO1xuJHByb2dyZXNzLW1ldGVyLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yO1xuJHByb2dyZXNzLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbi8vIDI4LiBSZXZlYWxcbi8vIC0tLS0tLS0tLS1cblxuJHJldmVhbC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kcmV2ZWFsLXdpZHRoOiA3MDBweDtcbiRyZXZlYWwtbWF4LXdpZHRoOiAxMDAlO1xuJHJldmVhbC1wYWRkaW5nOiByZW0tY2FsYyg0MCkgcmVtLWNhbGMoNTApO1xuJHJldmVhbC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXk7XG4kcmV2ZWFsLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kcmV2ZWFsLXppbmRleDogMTAwNTtcbiRyZXZlYWwtb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgLjg1KTtcblxuLy8gMjkuIFNsaWRlclxuLy8gLS0tLS0tLS0tLVxuXG4kc2xpZGVyLXdpZHRoLXZlcnRpY2FsOiAuNXJlbTtcbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlLWluLW91dDtcbiRzbGlkZXItaGVpZ2h0OiAuNXJlbTtcbiRzbGlkZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kc2xpZGVyLWZpbGwtYmFja2dyb3VuZDogJG1lZGl1bS1ncmF5O1xuJHNsaWRlci1oYW5kbGUtaGVpZ2h0OiAxLjRyZW07XG4kc2xpZGVyLWhhbmRsZS13aWR0aDogMS40cmVtO1xuJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4kc2xpZGVyLW9wYWNpdHktZGlzYWJsZWQ6IC4yNTtcbiRzbGlkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblxuLy8gMzAuIFN3aXRjaFxuLy8gLS0tLS0tLS0tLVxuXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheTtcbiRzd2l0Y2gtYmFja2dyb3VuZC1hY3RpdmU6ICRwcmltYXJ5LWNvbG9yO1xuJHN3aXRjaC1oZWlnaHQ6IDJyZW07XG4kc3dpdGNoLWhlaWdodC10aW55OiAxLjVyZW07XG4kc3dpdGNoLWhlaWdodC1zbWFsbDogMS43NXJlbTtcbiRzd2l0Y2gtaGVpZ2h0LWxhcmdlOiAyLjVyZW07XG4kc3dpdGNoLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLW1hcmdpbjogJGdsb2JhbC1tYXJnaW47XG4kc3dpdGNoLXBhZGRsZS1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IC4yNXJlbTtcbiRzd2l0Y2gtcGFkZGxlLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLW91dDtcblxuLy8gMzEuIFRhYmxlXG4vLyAtLS0tLS0tLS1cblxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZTtcbiR0YWJsZS1jb2xvci1zY2FsZTogNSU7XG4kdGFibGUtYm9yZGVyOiAxcHggc29saWQgc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSk7XG4kdGFibGUtcGFkZGluZzogcmVtLWNhbGMoOCAxMCAxMCk7XG4kdGFibGUtaG92ZXItc2NhbGU6IDIlO1xuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpO1xuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKTtcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLXN0cmlwZTogZXZlbjtcbiR0YWJsZS1oZWFkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUgLyAyKTtcbiR0YWJsZS1mb290LWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpO1xuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcbiRzaG93LWhlYWRlci1mb3Itc3RhY2tlZDogZmFsc2U7XG5cbi8vIDMyLiBUYWJzXG4vLyAtLS0tLS0tLVxuXG4kdGFiLW1hcmdpbjogMDtcbiR0YWItYmFja2dyb3VuZDogJHdoaXRlO1xuJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTogJHdoaXRlO1xuJHRhYi1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZTtcbiR0YWItaXRlbS1wYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiR0YWItZXhwYW5kLW1heDogNjtcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG4kdGFiLWNvbnRlbnQtYm9yZGVyOiAkbGlnaHRuZXNzLWdyYXk7XG4kdGFiLWNvbnRlbnQtY29sb3I6IGZvcmVncm91bmQoJHRhYi1iYWNrZ3JvdW5kLCAkcHJpbWFyeS1jb2xvcik7XG4kdGFiLWNvbnRlbnQtcGFkZGluZzogMXJlbTtcblxuLy8gMzMuIFRodW1ibmFpbFxuLy8gLS0tLS0tLS0tLS0tLVxuXG4kdGh1bWJuYWlsLWJvcmRlcjogc29saWQgNHB4ICR3aGl0ZTtcbiR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW47XG4kdGh1bWJuYWlsLXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoJGJsYWNrLCAuMik7XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgLjUpO1xuJHRodW1ibmFpbC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDIwMG1zIGVhc2Utb3V0O1xuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNC4gVGl0bGUgQmFyXG4vLyAtLS0tLS0tLS0tLS0tXG5cbiR0aXRsZWJhci1iYWNrZ3JvdW5kOiAkYmxhY2s7XG4kdGl0bGViYXItY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1wYWRkaW5nOiAuNXJlbTtcbiR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0OiBib2xkO1xuJHRpdGxlYmFyLWljb24tY29sb3I6ICR3aGl0ZTtcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXk7XG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAuMjVyZW07XG5cbi8vIDM1LiBUb29sdGlwXG4vLyAtLS0tLS0tLS0tLVxuXG4kaGFzLXRpcC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiRoYXMtdGlwLWJvcmRlci1ib3R0b206IGRvdHRlZCAxcHggJGRhcmstZ3JheTtcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjaztcbiR0b29sdGlwLWNvbG9yOiAkd2hpdGU7XG4kdG9vbHRpcC1wYWRkaW5nOiAuNzVyZW07XG4kdG9vbHRpcC1mb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4kdG9vbHRpcC1waXAtd2lkdGg6IC43NXJlbTtcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIC44NjY7XG4kdG9vbHRpcC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuXG4vLyAzNi4gVG9wIEJhclxuLy8gLS0tLS0tLS0tLS1cblxuJHRvcGJhci1wYWRkaW5nOiAuNXJlbTtcbiR0b3BiYXItYmFja2dyb3VuZDogJGxpZ2h0LWdyYXk7XG4kdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDogJHRvcGJhci1iYWNrZ3JvdW5kO1xuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAxcmVtO1xuJHRvcGJhci1pbnB1dC13aWR0aDogMjAwcHg7XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtO1xuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgSW1wb3J0YW50UnVsZSwgU3BhY2VBZnRlckNvbW1hLCBTaW5nbGVMaW5lUGVyUHJvcGVydHlcblxuQG1peGluIC1tb3Rpb24tdWktZGVmYXVsdHMge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiBtYXAtZ2V0KCRtb3Rpb24tdWktc3BlZWRzLCBkZWZhdWx0KTtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IG1hcC1nZXQoJG1vdGlvbi11aS1lYXNpbmdzLCBkZWZhdWx0KTtcbn1cblxuLy8gVHJhbnNpdGlvbnNcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG5AbWl4aW4gbW90aW9uLXVpLXRyYW5zaXRpb25zIHtcbiAgLy8gU2xpZGVcbiAgLnNsaWRlLWluLWRvd24gICAgeyBAaW5jbHVkZSBtdWktc2xpZGUoaW4sICBkb3duKTsgfVxuICAuc2xpZGUtaW4tbGVmdCAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHJpZ2h0KTsgfVxuICAuc2xpZGUtaW4tdXAgICAgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIHVwKTsgfVxuICAuc2xpZGUtaW4tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1zbGlkZShpbiwgIGxlZnQpOyB9XG4gIC5zbGlkZS1vdXQtZG93biAgIHsgQGluY2x1ZGUgbXVpLXNsaWRlKG91dCwgZG93bik7IH1cbiAgLnNsaWRlLW91dC1yaWdodCAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCByaWdodCk7IH1cbiAgLnNsaWRlLW91dC11cCAgICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCB1cCk7IH1cbiAgLnNsaWRlLW91dC1sZWZ0ICAgeyBAaW5jbHVkZSBtdWktc2xpZGUob3V0LCBsZWZ0KTsgfVxuXG4gIC8vIEZhZGVcbiAgLmZhZGUtaW4gIHsgQGluY2x1ZGUgbXVpLWZhZGUoaW4sICAwLCAxKTsgfVxuICAuZmFkZS1vdXQgeyBAaW5jbHVkZSBtdWktZmFkZShvdXQsIDEsIDApOyB9XG5cbiAgLy8gSGluZ2VcbiAgLmhpbmdlLWluLWZyb20tdG9wICAgICAgeyBAaW5jbHVkZSBtdWktaGluZ2UoaW4sICB0b3ApOyB9XG4gIC5oaW5nZS1pbi1mcm9tLXJpZ2h0ICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgcmlnaHQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLWJvdHRvbSAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKGluLCAgYm90dG9tKTsgfVxuICAuaGluZ2UtaW4tZnJvbS1sZWZ0ICAgICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIGxlZnQpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS14ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHRvcCwgICBjZW50ZXIpOyB9XG4gIC5oaW5nZS1pbi1mcm9tLW1pZGRsZS15ICB7IEBpbmNsdWRlIG11aS1oaW5nZShpbiwgIHJpZ2h0LCBjZW50ZXIpOyB9XG4gIC5oaW5nZS1vdXQtZnJvbS10b3AgICAgIHsgQGluY2x1ZGUgbXVpLWhpbmdlKG91dCwgdG9wKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tcmlnaHQgICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIHJpZ2h0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tYm90dG9tICB7IEBpbmNsdWRlIG11aS1oaW5nZShvdXQsIGJvdHRvbSk7IH1cbiAgLmhpbmdlLW91dC1mcm9tLWxlZnQgICAgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCBsZWZ0KTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXggeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCB0b3AsICAgY2VudGVyKTsgfVxuICAuaGluZ2Utb3V0LWZyb20tbWlkZGxlLXkgeyBAaW5jbHVkZSBtdWktaGluZ2Uob3V0LCByaWdodCwgY2VudGVyKTsgfVxuXG4gIC8vIFNjYWxlXG4gIC5zY2FsZS1pbi11cCAgICB7IEBpbmNsdWRlIG11aS16b29tKGluLCAgMC41LCAxKTsgfVxuICAuc2NhbGUtaW4tZG93biAgeyBAaW5jbHVkZSBtdWktem9vbShpbiwgIDEuNSwgMSk7IH1cbiAgLnNjYWxlLW91dC11cCAgIHsgQGluY2x1ZGUgbXVpLXpvb20ob3V0LCAxLCAxLjUpOyB9XG4gIC5zY2FsZS1vdXQtZG93biB7IEBpbmNsdWRlIG11aS16b29tKG91dCwgMSwgMC41KTsgfVxuXG4gIC8vIFNwaW5cbiAgLnNwaW4taW4gICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4oaW4sICBjdyk7IH1cbiAgLnNwaW4tb3V0ICAgIHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjdyk7IH1cbiAgLnNwaW4taW4tY2N3ICB7IEBpbmNsdWRlIG11aS1zcGluKGluLCAgY2N3KTsgfVxuICAuc3Bpbi1vdXQtY2N3IHsgQGluY2x1ZGUgbXVpLXNwaW4ob3V0LCBjY3cpOyB9XG5cbiAgLy8gVHJhbnNpdGlvbiBNb2RpZmllcnNcbiAgLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktc3BlZWRzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1lYXNpbmdzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0geyB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyB0cmFuc2l0aW9uLWRlbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbmltYXRpb25zXG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuQG1peGluIG1vdGlvbi11aS1hbmltYXRpb25zIHtcbiAgLnNoYWtlICAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzaGFrZSk7IH1cbiAgLnNwaW4tY3cgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbihzcGluKTsgfVxuICAuc3Bpbi1jY3cgeyBAaW5jbHVkZSBtdWktYW5pbWF0aW9uKHNwaW4oY2N3KSk7IH1cbiAgLndpZ2dsZSAgIHsgQGluY2x1ZGUgbXVpLWFuaW1hdGlvbih3aWdnbGUpOyB9XG5cbiAgLnNoYWtlLFxuICAuc3Bpbi1jdyxcbiAgLnNwaW4tY2N3LFxuICAud2lnZ2xlIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IG1hcC1nZXQoJG1vdGlvbi11aS1zcGVlZHMsIGRlZmF1bHQpO1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIE1vZGlmaWVyc1xuICAvLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuICAuaW5maW5pdGUgeyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsgfVxuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJG1vdGlvbi11aS1zcGVlZHMge1xuICAgIEBpZiAkbmFtZSAhPSBkZWZhdWx0IHtcbiAgICAgIC4jeyRuYW1lfSB7IGFuaW1hdGlvbi1kdXJhdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZWFzaW5ncyB7XG4gICAgQGlmICRuYW1lICE9IGRlZmF1bHQge1xuICAgICAgLiN7JG5hbWV9IHsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbiAgICB9XG4gIH1cblxuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRtb3Rpb24tdWktZGVsYXlzIHtcbiAgICBAaWYgJG5hbWUgIT0gZGVmYXVsdCB7XG4gICAgICAuI3skbmFtZX0tZGVsYXkgeyBhbmltYXRpb24tZGVsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG4iLCIvLy8gRm9ybWF0IGZvciBDU1MgY2xhc3NlcyBjcmVhdGVkIHdpdGggTW90aW9uIFVJLlxuLy8vIEB0eXBlIE1hcFxuLy8vIEBwcm9wIHtCb29sZWFufSBhcHBlbmQgW3RydWVdIC0gRGVmaW5lcyBpZiBzZWxlY3RvcnMgYXJlIGNoYWluZWQgdG8gdGhlIHNlbGVjdG9yIChgLmNsYXNzLmVudGVyYCksIG9yIGFwcGVuZGVkIGFzIGEgbmV3IGNsYXNzIChgLmNsYXNzLWVudGVyYCkuXG4vLy8gQHByb3Age1N0cmluZ30gcHJlZml4IFsnbXVpLSddIC0gUHJlZml4IHRvIGFkZCBiZWZvcmUgdGhlIHN0YXRlIG9mIGEgY2xhc3MuIEVudGVyIGFuIGVtcHR5IHN0cmluZyB0byB1c2Ugbm8gcHJlZml4LlxuLy8vIEBwcm9wIHtTdHJpbmd9IHByZWZpeCBbJy1hY3RpdmUnXSAtIFN1ZmZpeCB0byBhZGQgdG8gdGhlIGFjdGl2ZSBzdGF0ZSBjbGFzcy5cbiRtb3Rpb24tdWktY2xhc3NlczogKFxuICBjaGFpbjogdHJ1ZSxcbiAgcHJlZml4OiAnbXVpLScsXG4gIGFjdGl2ZTogJy1hY3RpdmUnLFxuKSAhZGVmYXVsdDtcblxuLy8vIFN0YXRlIG5hbWVzIHRvIHJlZmVyZW5jZSB3aGVuIHdyaXRpbmcgbW90aW9uIGNsYXNzZXMuIFRvIHVzZSBtdWx0aXBsZSBjbGFzcyBuYW1lcyBmb3Igb25lIHN0YXRlLCBlbnRlciBhIGxpc3Qgb2Ygc3RyaW5ncyBpbnN0ZWFkIG9mIG9uZSBzdHJpbmcuXG4vLy8gQHR5cGUgTWFwXG4kbW90aW9uLXVpLXN0YXRlczogKFxuICBpbjogJ2VudGVyJyxcbiAgb3V0OiAnbGVhdmUnLFxuKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc3BlZWQgdGhhdCB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucyBwbGF5IGF0LCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIHNwZWVkLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1zcGVlZHM6IChcbiAgZGVmYXVsdDogNTAwbXMsXG4gIHNsb3c6IDc1MG1zLFxuICBmYXN0OiAyNTBtcyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRlbGF5IHRvIGFkZCBiZWZvcmUgbW90aW9uLCBhbG9uZyB3aXRoIHZhbHVlcyBmb3IgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGRlbGF5LlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1kZWxheXM6IChcbiAgZGVmYXVsdDogMCxcbiAgc2hvcnQ6IDMwMG1zLFxuICBsb25nOiA3MDBtcyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGVhc2luZyBmb3IgdHJhbnNpdGlvbnMgYW5kIGFuaW1hdGlvbnMsIGFsb25nIHdpdGggdmFsdWVzIGZvciBtb2RpZmllciBjbGFzc2VzIHRvIGNoYW5nZSB0aGUgZWFzaW5nLlxuLy8vIEB0eXBlIE1hcFxuJG1vdGlvbi11aS1lYXNpbmdzOiAoXG4gIGRlZmF1bHQ6IGxpbmVhcixcbiAgbGluZWFyOiBsaW5lYXIsXG4gIGVhc2U6IGVhc2UsXG4gIGVhc2UtaW46IGVhc2UtaW4sXG4gIGVhc2Utb3V0OiBlYXNlLW91dCxcbiAgZWFzZS1pbi1vdXQ6IGVhc2UtaW4tb3V0LFxuICBib3VuY2UtaW46IGN1YmljLWJlemllcigwLjQ4NSwgMC4xNTUsIDAuMjQsIDEuMjQ1KSxcbiAgYm91bmNlLW91dDogY3ViaWMtYmV6aWVyKDAuNDg1LCAwLjE1NSwgMC41MTUsIDAuODQ1KSxcbiAgYm91bmNlLWluLW91dDogY3ViaWMtYmV6aWVyKDAuNzYsIC0wLjI0NSwgMC4yNCwgMS4yNDUpLFxuKSAhZGVmYXVsdDtcblxuLy8vIE1pc2NlbGxhbmVvdXMgc2V0dGluZ3MgcmVsYXRlZCB0byBNb3Rpb24gVUkuXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFtmYWxzZV0gLSBEZWZpbmVzIGlmIHNsaWRlIG1vdGlvbnMgc2hvdWxkIGFsc28gZmFkZSBpbi9vdXQuXG4vLy8gQHByb3Age0Jvb2xlYW59IHNsaWRlLWFuZC1mYWRlIFt0cnVlXSAtIERlZmluZXMgaWYgaGluZ2UgbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbi8vLyBAcHJvcCB7Qm9vbGVhbn0gc2xpZGUtYW5kLWZhZGUgW3RydWVdIC0gRGVmaW5lcyBpZiBzY2FsZSBtb3Rpb25zIHNob3VsZCBhbHNvIGZhZGUgaW4vb3V0LlxuLy8vIEBwcm9wIHtCb29sZWFufSBzbGlkZS1hbmQtZmFkZSBbdHJ1ZV0gLSBEZWZpbmVzIGlmIHNwaW4gbW90aW9ucyBzaG91bGQgYWxzbyBmYWRlIGluL291dC5cbiRtb3Rpb24tdWktc2V0dGluZ3M6IChcbiAgc2xpZGUtYW5kLWZhZGU6IGZhbHNlLFxuICBoaW5nZS1hbmQtZmFkZTogdHJ1ZSxcbiAgc2NhbGUtYW5kLWZhZGU6IHRydWUsXG4gIHNwaW4tYW5kLWZhZGU6IHRydWUsXG4gIGFjdGl2YXRlLXF1ZXVlLWNsYXNzOiAnaXMtYW5pbWF0aW5nJyxcbikgIWRlZmF1bHQ7XG4iLCIvLyBJbnRlcm5hbCBjb3VudGVyIGZvciBjcmVhdGluZyB1bmlxdWUga2V5ZnJhbWUgbmFtZXNcbiQtbXVpLWN1c3RvbTogMDtcblxuLy8vIENyZWF0ZXMgYSBrZXlmcmFtZSBmcm9tIG9uZSBvciBtb3JlIGVmZmVjdCBmdW5jdGlvbnMuIFVzZSB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgYG11aS1hbmltYXRpb25gIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSBhIGtleWZyYW1lIGFuaW1hdGlvbiAqd2l0aG91dCogYXV0b21hdGljYWxseSBhc3NpZ25pbmcgaXQgdG8gdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUga2V5ZnJhbWUuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1rZXlmcmFtZXMoJG5hbWUsICRlZmZlY3RzLi4uKSB7XG4gICRvYmo6IC1tdWktcHJvY2Vzcy1hcmdzKCRlZmZlY3RzLi4uKTtcbiAgJG9iajogbWFwLXJlbW92ZSgkb2JqLCBuYW1lKTtcblxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAvLyBOb3cgaXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgcGVyY2VudGFnZVxuICAgIEBlYWNoICRwY3QsICRwcm9wcyBpbiAkb2JqIHtcbiAgICAgICN7LW11aS1rZXlmcmFtZS1wY3QoJHBjdCl9IHtcbiAgICAgICAgLy8gTGFzdGx5LCBpdGVyYXRlIHRocm91Z2ggZWFjaCBDU1MgcHJvcGVydHkgd2l0aGluIGEgcGVyY2VudGFnZSBhbmQgcHJpbnQgaXQgb3V0XG4gICAgICAgIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BzIHtcbiAgICAgICAgICAjeyRwcm9wfTogI3skdmFsdWV9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgc3RyaW5nIGZvciBhIENTUyBrZXlmcmFtZSwgYnkgY29udmVydGluZyBhIGxpc3Qgb2YgbnVtYmVycyB0byBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHBlcmNlbnRhZ2UgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRpbnB1dCAtIExpc3Qgb2YgbnVtYmVycyB0byB1c2UuXG4vLy8gQHJldHVybiB7U3RyaW5nfSBBIHNldCBvZiBjb21tYS1zZXBhcmF0ZWQgcGVyY2VudGFnZSB2YWx1ZXMuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1rZXlmcmFtZS1wY3QoJGlucHV0KSB7XG4gICRvdXRwdXQ6ICgpO1xuXG4gIEBpZiB0eXBlLW9mKCRpbnB1dCkgPT0gJ251bWJlcicge1xuICAgICRvdXRwdXQ6ICgkaW5wdXQgKiAxJSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkaW5wdXQpID09ICdsaXN0JyB7XG4gICAgQGVhY2ggJGkgaW4gJGlucHV0IHtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAoJGkgKiAxJSksIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBQcmludHMgdGhlIENTUyBwcm9wZXJ0aWVzIGZyb20gYSBzcGVjaWZpYyBrZXkgaW4gYSBrZXlmcmFtZXMgbWFwLiBVc2VkIHRvIGJvcnJvdyBDU1MgZnJvbSBrZXlmcmFtZSBmdW5jdGlvbnMgZm9yIHVzZSBpbiB0cmFuc2l0aW9ucy5cbi8vLyBAcGFyYW0ge01hcH0gJGtmIC0gS2V5ZnJhbWUgbWFwIHRvIGV4dHJhY3QgZnJvbS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGtleSAtIEtleSBpbiB0aGUgbWFwIHRvIHByaW50IHRoZSBDU1Mgb2YuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AbWl4aW4gLW11aS1rZXlmcmFtZS1nZXQoJGtmLCAka2V5KSB7XG4gICRtYXA6IG1hcC1nZXQoJGtmLCAka2V5KTtcblxuICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRtYXAgb3IgKCkge1xuICAgIC8vIFNvbWUga2V5ZnJhbWUgbWFwcyBzdG9yZSB0cmFuc2Zvcm1zIGFzIHF1b3RlZCBzdHJpbmdzXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkdmFsdWU6IHVucXVvdGUoJHZhbHVlKTtcbiAgICB9XG4gICAgI3skcHJvcH06ICR2YWx1ZTtcbiAgfVxufVxuXG4vLy8gUmVmb3JtYXRzIGEgbWFwIGNvbnRhaW5pbmcga2V5cyB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMsIHNvIHRoYXQgZWFjaCBrZXkgaXMgYSBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gc3BsaXQgdXAuXG4vLy8gQHJldHVybiB7TWFwfSBBIHJlZm9ybWF0dGVkIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIFNwbGl0IGtleXMgd2l0aCBtdWx0aXBsZSB2YWx1ZXMgaW50byBpbmRpdmlkdWFsIGtleXNcbiAgQGVhY2ggJGtleSwgJGl0ZW0gaW4gJG1hcCB7XG4gICAgJGtleS10eXBlOiB0eXBlLW9mKCRrZXkpO1xuXG4gICAgQGlmICRrZXktdHlwZSA9PSAnbnVtYmVyJyB7XG4gICAgICAkbmV3LW1hcDogbWFwLW1lcmdlKCRuZXctbWFwLCAoJGtleTogJGl0ZW0pKTtcbiAgICB9IEBlbHNlIGlmICRrZXktdHlwZSA9PSAnbGlzdCcge1xuICAgICAgQGVhY2ggJGsgaW4gJGtleSB7XG4gICAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgkazogJGl0ZW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRuZXctbWFwO1xufVxuXG4vLy8gQ29tYmluZXMgYSBzZXJpZXMgb2Yga2V5ZnJhbWUgb2JqZWN0cyBpbnRvIG9uZS5cbi8vLyBAcGFyYW0ge01hcH0gJG1hcHMuLi4gLSBBIHNlcmllcyBvZiBtYXBzIHRvIG1lcmdlLCBhcyBpbmRpdmlkdWFsIHBhcmFtZXRlcnMuXG4vLy8gQHJldHVybiB7TWFwfSBBIGNvbWJpbmVkIGtleWZyYW1lIG9iamVjdC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbkBmdW5jdGlvbiAtbXVpLWtleWZyYW1lLWNvbWJpbmUoJG1hcHMuLi4pIHtcbiAgJG5ldy1tYXA6ICgpO1xuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIG1hcCBwYXNzZWQgaW5cbiAgQGVhY2ggJG1hcCBpbiAkbWFwcyB7XG4gICAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ3N0cmluZycge1xuICAgICAgJG1hcDogY2FsbCgkbWFwKTtcbiAgICB9XG5cbiAgICAkbWFwOiAtbXVpLWtleWZyYW1lLXNwbGl0KCRtYXApO1xuXG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGVhY2gga2V5ZnJhbWUgaW4gdGhlIG1hcFxuICAgIC8vICRrZXkgaXMgdGhlIGtleWZyYW1lIHBlcmNlbnRhZ2VcbiAgICAvLyAkdmFsdWUgaXMgYSBtYXAgb2YgQ1NTIHByb3BlcnRpZXNcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgICAkbmV3LXZhbHVlOiAoKTtcblxuICAgICAgQGlmIG1hcC1oYXMta2V5KCRuZXctbWFwLCAka2V5KSB7XG4gICAgICAgIC8vIElmIHRoZSBtYXAgYWxyZWFkeSBoYXMgdGhlIGtleWZyYW1lICUsIGFwcGVuZCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6IC1tdWktbWVyZ2UtcHJvcGVydGllcyhtYXAtZ2V0KCRuZXctbWFwLCAka2V5KSwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSBhIG5ldyBtYXAgd2l0aCB0aGUgbmV3IHByb3BlcnR5XG4gICAgICAgICRuZXctdmFsdWU6ICR2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgbWVyZ2UgdGhlIG1vZGlmaWVkIGtleWZyYW1lIHZhbHVlIGludG8gdGhlIG91dHB1dCBtYXBcbiAgICAgICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICgka2V5OiAkbmV3LXZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTWFrZSBhIG5hbWUgZm9yIHRoZSBrZXlmcmFtZXNcbiAgJC1tdWktY3VzdG9tOiAkLW11aS1jdXN0b20gKyAxICFnbG9iYWw7XG4gICRtYXAtbmFtZTogKG5hbWU6ICdjdXN0b20tI3skLW11aS1jdXN0b219Jyk7XG4gICRuZXctbWFwOiBtYXAtbWVyZ2UoJG5ldy1tYXAsICRtYXAtbmFtZSk7XG5cbiAgQHJldHVybiAkbmV3LW1hcDtcbn1cblxuLy8vIENvbWJpbmVzIHR3byBtYXBzIG9mIENTUyBwcm9wZXJ0aWVzIGludG8gb25lIG1hcC4gSWYgYm90aCBtYXBzIGhhdmUgYSB0cmFuc2Zvcm0gcHJvcGVydHksIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIHdpbGwgYmUgY29tYmluZWQgaW50byBvbmUgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtNYXB9ICRvbmUgLSBGaXJzdCBtYXAgdG8gbWVyZ2UuXG4vLy8gQHBhcmFtIHtNYXB9ICR0d28gLSBTZWNvbmQgbWFwIHRvIG1lcmdlLlxuLy8vIEByZXR1cm4ge01hcH0gQSBjb21iaW5lZCBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5AZnVuY3Rpb24gLW11aS1tZXJnZS1wcm9wZXJ0aWVzKCRvbmUsICR0d28pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRvbmUsIHRyYW5zZm9ybSkgYW5kIG1hcC1oYXMta2V5KCR0d28sIHRyYW5zZm9ybSkge1xuICAgICR0cmFuc2Zvcm06IGpvaW4obWFwLWdldCgkb25lLCB0cmFuc2Zvcm0pLCBtYXAtZ2V0KCR0d28sIHRyYW5zZm9ybSkpO1xuICAgICRvbmU6IG1hcC1tZXJnZSgkb25lLCAodHJhbnNmb3JtOiAkdHJhbnNmb3JtKSk7XG4gICAgJHR3bzogbWFwLXJlbW92ZSgkdHdvLCB0cmFuc2Zvcm0pO1xuICB9XG5cbiAgQHJldHVybiBtYXAtbWVyZ2UoJG9uZSwgJHR3byk7XG59XG4iLCIvLy8gQ3JlYXRlcyBhIHNsaWRpbmcgdHJhbnNpdGlvbiBieSB0cmFuc2xhdGluZyB0aGUgZWxlbWVudCBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXJlY3Rpb24gW2xlZnRdIC0gRGlyZWN0aW9uIHRvIHNsaWRlIHRvLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtMZW5ndGh9ICRhbW91bnQgWzEwMCVdIC0gTGVuZ3RoIG9mIHRoZSBzbGlkZSBhcyBhIHBlcmNlbnRhZ2UgdmFsdWUuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc2xpZGUgKFxuICAkc3RhdGU6IGluLFxuICAkZGlyZWN0aW9uOiBsZWZ0LFxuICAkYW1vdW50OiAxMDAlLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzbGlkZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJHNsaWRlOiBzbGlkZSgkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIC8vIENTUyBPdXRwdXRcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNsaWRlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cblxuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzbGlkZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIEFwcGxpZXMgYmFzaWMgdHJhbnNpdGlvbiBzZXR0aW5ncyB0byBhbiBlbGVtZW50LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIHRyYW5zaXRpb24tYmFzaWNzKFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gIEBpbmNsdWRlIC1tb3Rpb24tdWktZGVmYXVsdHM7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246ICRkdXJhdGlvbjtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICR0aW1pbmc7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheTtcbn1cblxuLy8vIFdyYXBzIHRoZSBjb250ZW50IGluIHRoZSBzZXR1cCBjbGFzcyBmb3IgYSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciAtIFN0YXRlIHRvIHNldHVwIGZvciB0cmFuc2l0aW9uLlxuQG1peGluIHRyYW5zaXRpb24tc3RhcnQoJGRpcikge1xuICAkc2VsZWN0b3I6IC1tdWktYnVpbGQtc2VsZWN0b3IobWFwLWdldCgkbW90aW9uLXVpLXN0YXRlcywgJGRpcikpO1xuXG4gIEBhdC1yb290IHtcbiAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBXcmFwcyB0aGUgY29udGVudCBpbiB0aGUgYWN0aXZlIGNsYXNzIGZvciBhIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyIC0gU3RhdGUgdG8gYWN0aXZhdGUgYSB0cmFuc2l0aW9uIG9uLlxuQG1peGluIHRyYW5zaXRpb24tZW5kKCRkaXIpIHtcbiAgJHNlbGVjdG9yOiAtbXVpLWJ1aWxkLXNlbGVjdG9yKG1hcC1nZXQoJG1vdGlvbi11aS1zdGF0ZXMsICRkaXIpLCB0cnVlKTtcblxuICBAYXQtcm9vdCB7XG4gICAgI3skc2VsZWN0b3J9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3RhZ2dlciBhbmltYXRpb24sIHdoaWNoIGNhbiBiZSB1c2VkIHdpdGggQW5ndWxhcidzIGBuZy1yZXBlYXRgLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheS1hbW91bnQgLSBBbW91bnQgb2YgdGltZSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyB0byBhZGQgYmV0d2VlbiBlYWNoIGl0ZW0ncyBhbmltYXRpb24uXG5AbWl4aW4gc3RhZ2dlcigkZGVsYXktYW1vdW50KSB7XG4gIHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheS1hbW91bnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDA7IC8vIFByZXZlbnQgYWNjaWRlbnRhbCBDU1MgaW5oZXJpdGFuY2Vcbn1cbiIsIi8vLyBDcmVhdGVzIGEgZmFkZSB0cmFuc2l0aW9uIGJ5IGFkanVzdGluZyB0aGUgb3BhY2l0eSBvZiB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzBdIC0gT3BhY2l0eSB0byBzdGFydCBhdC4gTXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0byBbMV0gLSBPcGFjaXR5IHRvIGVuZCBvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1mYWRlKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogMCxcbiAgJHRvOiAxLFxuICAkZHVyYXRpb246IG51bGwsXG4gICR0aW1pbmc6IG51bGwsXG4gICRkZWxheTogbnVsbFxuKSB7XG4gICRmYWRlOiBmYWRlKCRmcm9tLCAkdG8pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRmYWRlLCAwKTtcblxuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkZmFkZSwgMTAwKTtcbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBoaW5nZSBlZmZlY3QgYnkgcm90YXRpbmcgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZnJvbSBbbGVmdF0gLSBFZGdlIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBmcm9tLiBDYW4gYmUgYHRvcGAsIGByaWdodGAsIGBib3R0b21gLCBvciBgbGVmdGAuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkYXhpcyBbZWRnZV0gLSBBeGlzIG9mIHRoZSBlbGVtZW50IHRvIHJvdGF0ZSBvbi4gQ2FuIGJlIGBlZGdlYCBvciBgY2VudGVyYC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBlcnNwZWN0aXZlIFsyMDAwcHhdIC0gUGVyY2VpdmVkIGRpc3RhbmNlIGJldHdlZW4gdGhlIHZpZXdlciBhbmQgdGhlIGVsZW1lbnQuIEEgaGlnaGVyIG51bWJlciB3aWxsIG1ha2UgdGhlIHJvdGF0aW9uIGVmZmVjdCBtb3JlIHByb25vdW5jZWQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdHVybi1vcmlnaW4gW2Zyb20tYmFja10gLSBTaWRlIG9mIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSByb3RhdGlvbiBmcm9tLiBDYW4gYmUgYGZyb20tYmFja2Agb3IgYGZyb20tZnJvbnRgLlxuQGZ1bmN0aW9uIGhpbmdlIChcbiAgJHN0YXRlOiBpbixcbiAgJGZyb206IGxlZnQsXG4gICRheGlzOiBlZGdlLFxuICAkcGVyc3BlY3RpdmU6IDIwMDBweCxcbiAgJHR1cm4tb3JpZ2luOiBmcm9tLWJhY2tcbikge1xuICAvLyBSb3RhdGlvbiBkaXJlY3Rpb25zIHdoZW4gaGluZ2luZyBmcm9tIGJhY2sgdnMuIGZyb250XG4gICRyb3RhdGlvbi1hbW91bnQ6IDkwZGVnO1xuICAkcm90YXRpb25zLWJhY2s6IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCAqIC0xKSxcbiAgICByaWdodDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICAgIGJvdHRvbTogcm90YXRlWCgkcm90YXRpb24tYW1vdW50KSxcbiAgICBsZWZ0OiByb3RhdGVZKCRyb3RhdGlvbi1hbW91bnQpLFxuICApO1xuICAkcm90YXRpb25zLWZyb206IChcbiAgICB0b3A6IHJvdGF0ZVgoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgcmlnaHQ6IHJvdGF0ZVkoJHJvdGF0aW9uLWFtb3VudCksXG4gICAgYm90dG9tOiByb3RhdGVYKCRyb3RhdGlvbi1hbW91bnQgKiAtMSksXG4gICAgbGVmdDogcm90YXRlWSgkcm90YXRpb24tYW1vdW50ICogLTEpLFxuICApO1xuXG4gIC8vIFJvdGF0aW9uIG9yaWdpblxuICAkcm90YXRpb246ICcnO1xuICBAaWYgJHR1cm4tb3JpZ2luID09IGZyb20tZnJvbnQge1xuICAgICRyb3RhdGlvbjogbWFwLWdldCgkcm90YXRpb25zLWZyb20sICRmcm9tKTtcbiAgfSBAZWxzZSBpZiAkdHVybi1vcmlnaW4gPT0gZnJvbS1iYWNrIHtcbiAgICAkcm90YXRpb246IG1hcC1nZXQoJHJvdGF0aW9ucy1iYWNrLCAkZnJvbSk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICckdHVybi1vcmlnaW4gbXVzdCBiZSBlaXRoZXIgXCJmcm9tLWJhY2tcIiBvciBcImZyb20tZnJvbnRcIic7XG4gIH1cblxuICAvLyBTdGFydCBhbmQgZW5kIHN0YXRlXG4gICRzdGFydDogJyc7XG4gICRlbmQ6ICcnO1xuICBAaWYgJHN0YXRlID09IGluIHtcbiAgICAkc3RhcnQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgcm90YXRlKDBkZWcpO1xuICB9IEBlbHNlIHtcbiAgICAkc3RhcnQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgcm90YXRlKDBkZWcpO1xuICAgICRlbmQ6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHJvdGF0aW9uO1xuICB9XG5cbiAgLy8gVHVybiBheGlzXG4gICRvcmlnaW46ICcnO1xuICBAaWYgJGF4aXMgPT0gZWRnZSB7XG4gICAgJG9yaWdpbjogJGZyb207XG4gIH0gQGVsc2Uge1xuICAgICRvcmlnaW46IGNlbnRlcjtcbiAgfVxuXG4gICRrZXlmcmFtZXM6IChcbiAgICBuYW1lOiAnaGluZ2UtI3skc3RhdGV9LSN7JGZyb219LSN7JGF4aXN9LSN7JHR1cm4tb3JpZ2lufScsXG4gICAgMDogKHRyYW5zZm9ybTogJHN0YXJ0LCB0cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luKSxcbiAgICAxMDA6ICh0cmFuc2Zvcm06ICRlbmQpLFxuICApO1xuXG4gIEByZXR1cm4gJGtleWZyYW1lcztcbn1cbiIsIi8vLyBDcmVhdGVzIGEgaGluZ2UgdHJhbnNpdGlvbiBieSByb3RhdGluZyB0aGUgZWxlbWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdGF0ZSBbaW5dIC0gU3RhdGUgdG8gdHJhbnNpdGlvbiB0by5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmcm9tIFtsZWZ0XSAtIEVkZ2Ugb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIGZyb20uIENhbiBiZSBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAsIG9yIGBsZWZ0YC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRheGlzIFtlZGdlXSAtIEF4aXMgb2YgdGhlIGVsZW1lbnQgdG8gcm90YXRlIG9uLiBDYW4gYmUgYGVkZ2VgIG9yIGBjZW50ZXJgLlxuLy8vIEBwYXJhbSB7TGVuZ3RofSAkcGVyc3BlY3RpdmUgWzIwMDBweF0gLSBQZXJjZWl2ZWQgZGlzdGFuY2UgYmV0d2VlbiB0aGUgdmlld2VyIGFuZCB0aGUgZWxlbWVudC4gQSBoaWdoZXIgbnVtYmVyIHdpbGwgbWFrZSB0aGUgcm90YXRpb24gZWZmZWN0IG1vcmUgcHJvbm91bmNlZC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0dXJuLW9yaWdpbiBbZnJvbS1iYWNrXSAtIFNpZGUgb2YgdGhlIGVsZW1lbnQgdG8gc3RhcnQgdGhlIHJvdGF0aW9uIGZyb20uIENhbiBiZSBgZnJvbS1iYWNrYCBvciBgZnJvbS1mcm9udGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS1oaW5nZSAoXG4gICRzdGF0ZTogaW4sXG4gICRmcm9tOiBsZWZ0LFxuICAkYXhpczogZWRnZSxcbiAgJHBlcnNwZWN0aXZlOiAyMDAwcHgsXG4gICR0dXJuLW9yaWdpbjogZnJvbS1iYWNrLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBoaW5nZS1hbmQtZmFkZSksXG4gICRkdXJhdGlvbjogbnVsbCxcbiAgJHRpbWluZzogbnVsbCxcbiAgJGRlbGF5OiBudWxsXG4pIHtcbiAgJGhpbmdlOiBoaW5nZSgkc3RhdGUsICRmcm9tLCAkYXhpcywgJHBlcnNwZWN0aXZlLCAkdHVybi1vcmlnaW4pO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRoaW5nZSwgMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAwLCAxKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uLWVuZCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSAtbXVpLWtleWZyYW1lLWdldCgkaGluZ2UsIDEwMCk7XG5cbiAgICBAaWYgJGZhZGUge1xuICAgICAgb3BhY2l0eTogaWYoJHN0YXRlID09IGluLCAxLCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBDcmVhdGVzIGEgc2NhbGluZyB0cmFuc2l0aW9uLiBBIHNjYWxlIG9mIGAxYCBtZWFucyB0aGUgZWxlbWVudCBpcyB0aGUgc2FtZSBzaXplLiBMYXJnZXIgbnVtYmVycyBtYWtlIHRoZSBlbGVtZW50IGJpZ2dlciwgd2hpbGUgbnVtYmVycyBsZXNzIHRoYW4gMSBtYWtlIHRoZSBlbGVtZW50IHNtYWxsZXIuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc3RhdGUgW2luXSAtIFN0YXRlIHRvIHRyYW5zaXRpb24gdG8uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRmcm9tIFsxLjVdIC0gU2l6ZSB0byBzdGFydCBhdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGZyb20gWzFdIC0gU2l6ZSB0byBlbmQgYXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbdHJ1ZV0gLSBTZXQgdG8gYHRydWVgIHRvIGZhZGUgdGhlIGVsZW1lbnQgaW4gb3Igb3V0IHNpbXVsdGFuZW91c2x5LlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkdXJhdGlvbiBbbnVsbF0gLSBMZW5ndGggKHNwZWVkKSBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR8RnVuY3Rpb259ICR0aW1pbmcgW251bGxdIC0gRWFzaW5nIG9mIHRoZSB0cmFuc2l0aW9uLlxuLy8vIEBwYXJhbSB7RHVyYXRpb259ICRkZWxheSBbbnVsbF0gLSBEZWxheSBpbiBzZWNvbmRzIG9yIG1pbGxpc2Vjb25kcyBiZWZvcmUgdGhlIHRyYW5zaXRpb24gc3RhcnRzLlxuQG1peGluIG11aS16b29tKFxuICAkc3RhdGU6IGluLFxuICAkZnJvbTogMS41LFxuICAkdG86IDEsXG4gICRmYWRlOiBtYXAtZ2V0KCRtb3Rpb24tdWktc2V0dGluZ3MsIHNjYWxlLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc2NhbGU6IHpvb20oJGZyb20sICR0byk7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbi1zdGFydCgkc3RhdGUpIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWJhc2ljcygkZHVyYXRpb24sICR0aW1pbmcsICRkZWxheSk7XG4gICAgQGluY2x1ZGUgLW11aS1rZXlmcmFtZS1nZXQoJHNjYWxlLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzY2FsZSwgMTAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDEsIDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8vIENyZWF0ZXMgYSBzcGlubmluZyB0cmFuc2l0aW9uIGJ5IHJvdGF0aW5nIHRoZSBlbGVtZW50LiBUaGUgYHR1cm5gIHVuaXQgaXMgdXNlZCB0byBzcGVjaWZ5IGhvdyBmYXIgdG8gcm90YXRlLiBgMXR1cm5gIGlzIGVxdWFsIHRvIGEgMzYwLWRlZ3JlZSBzcGluLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0YXRlIFtpbl0gLSBTdGF0ZSB0byB0cmFuc2l0aW9uIHRvLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGRpcmVjdGlvbiBbY3ddIC0gRGlyZWN0aW9uIHRvIHNwaW4uIFNob3VsZCBiZSBgY3dgIChjbG9ja3dpc2UpIG9yIGBjY3dgIChjb3VudGVyY2xvY2t3aXNlKS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGFtb3VudCBbMC43NXR1cm5dIC0gQW1vdW50IHRvIGVsZW1lbnQgdGhlIGVsZW1lbnQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZmFkZSBbZmFsc2VdIC0gU2V0IHRvIGB0cnVlYCB0byBmYWRlIHRoZSBlbGVtZW50IGluIG9yIG91dCBzaW11bHRhbmVvdXNseS5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZHVyYXRpb24gW251bGxdIC0gTGVuZ3RoIChzcGVlZCkgb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfEZ1bmN0aW9ufSAkdGltaW5nIFtudWxsXSAtIEVhc2luZyBvZiB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcGFyYW0ge0R1cmF0aW9ufSAkZGVsYXkgW251bGxdIC0gRGVsYXkgaW4gc2Vjb25kcyBvciBtaWxsaXNlY29uZHMgYmVmb3JlIHRoZSB0cmFuc2l0aW9uIHN0YXJ0cy5cbkBtaXhpbiBtdWktc3BpbihcbiAgJHN0YXRlOiBpbixcbiAgJGRpcmVjdGlvbjogY3csXG4gICRhbW91bnQ6IDAuNzV0dXJuLFxuICAkZmFkZTogbWFwLWdldCgkbW90aW9uLXVpLXNldHRpbmdzLCBzcGluLWFuZC1mYWRlKSxcbiAgJGR1cmF0aW9uOiBudWxsLFxuICAkdGltaW5nOiBudWxsLFxuICAkZGVsYXk6IG51bGxcbikge1xuICAkc3Bpbjogc3Bpbigkc3RhdGUsICRkaXJlY3Rpb24sICRhbW91bnQpO1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tc3RhcnQoJHN0YXRlKSB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1iYXNpY3MoJGR1cmF0aW9uLCAkdGltaW5nLCAkZGVsYXkpO1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAwKTtcblxuICAgIEBpZiAkZmFkZSB7XG4gICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgICBvcGFjaXR5OiBpZigkc3RhdGUgPT0gaW4sIDAsIDEpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24tZW5kKCRzdGF0ZSkge1xuICAgIEBpbmNsdWRlIC1tdWkta2V5ZnJhbWUtZ2V0KCRzcGluLCAxMDApO1xuXG4gICAgQGlmICRmYWRlIHtcbiAgICAgIG9wYWNpdHk6IGlmKCRzdGF0ZSA9PSBpbiwgMSwgMCk7XG4gICAgfVxuICB9XG59XG4iLCIvLy8gQ3JlYXRlcyBhIGtleWZyYW1lIGZyb20gb25lIG9yIG1vcmUgZWZmZWN0IGZ1bmN0aW9ucyBhbmQgYXNzaWducyBpdCB0byB0aGUgZWxlbWVudCBieSBhZGRpbmcgdGhlIGBhbmltYXRpb24tbmFtZWAgcHJvcGVydHkuXG4vLy8gQHBhcmFtIHtGdW5jdGlvbn0gJGVmZmVjdHMuLi4gLSBPbmUgb3IgbW9yZSBlZmZlY3QgZnVuY3Rpb25zIHRvIGJ1aWxkIHRoZSBrZXlmcmFtZSB3aXRoLlxuQG1peGluIG11aS1hbmltYXRpb24oJGFyZ3MuLi4pIHtcbiAgJG5hbWU6IG1hcC1nZXQoLW11aS1wcm9jZXNzLWFyZ3MoJGFyZ3MuLi4pLCBuYW1lKTtcbiAgQGluY2x1ZGUgbXVpLWtleWZyYW1lcygkbmFtZSwgJGFyZ3MuLi4pO1xuICBhbmltYXRpb24tbmFtZTogdW5xdW90ZSgkbmFtZSk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWUsXG4gICR3cmFwOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93ICR3cmFwO1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IGV4cGFuZCkge1xuICAkZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcblxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcbiAgICAkZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gZXhwYW5kIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMgd2lkdGguIFNlZSB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcmAgbWl4aW4uXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IGV4cGFuZCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoJGNvbHVtbnMpO1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcbiAgICBtaW4td2lkdGg6IGluaXRpYWw7XG4gIH1cbiAgLy8gbWF4LXdpZHRoIGZpeGVzIElFIDEwLzExIG5vdCByZXNwZWN0aW5nIHRoZSBmbGV4LWJhc2lzIHByb3BlcnR5XG4gIEBpZiAkY29sdW1ucyAhPSBleHBhbmQgYW5kICRjb2x1bW5zICE9IHNocmluayB7XG4gICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKDEvJG4pO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSB3aWR0aCBmbGV4IGdyaWQgY29sdW1uLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZmxleC1ncmlkLXNpemUoJGNvbHVtbnM6IG51bGwpIHtcbiAgJGNvbHVtbnM6ICRjb2x1bW5zIG9yIGV4cGFuZDtcblxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XG4gIC8vIFJvd1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxuICAgICYgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG5cbiAgLmZsZXgtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4O1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLXNocmluayB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gIH1cblxuICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAuZmxleC1kaXItI3skZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbigkcHJvcCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW4tY291bnQge1xuICAgICAgLy8gU2l6aW5nIChwZXJjZW50YWdlKVxuICAgICAgLiN7JC16Zi1zaXplfS0jeyRpfSB7XG4gICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRpKTtcbiAgICAgIH1cblxuICAgICAgLy8gT2Zmc2V0c1xuICAgICAgJG86ICRpIC0gMTtcblxuICAgICAgLiN7JC16Zi1zaXplfS1vZmZzZXQtI3skb30ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNvdXJjZSBvcmRlcmluZ1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtbGF5b3V0KCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBkaXJlY3Rpb24gaGVscGVyIGNsYXNzZXNcbiAgICAgIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgICAgICAuI3skLXpmLXNpemV9LWZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gY2hpbGQgaGVscGVyIGNsYXNzZXNcbiAgICAgIC4jeyQtemYtc2l6ZX0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tZmxleC1jaGlsZC1zaHJpbmsge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIH1cblxuICAgICAgLy8gQXV0by1zdGFja2luZy91bnN0YWNraW5nXG4gICAgICBAYXQtcm9vdCAod2l0aG91dDogbWVkaWEpIHtcbiAgICAgICAgLnJvdy4jeyQtemYtc2l6ZX0tdW5zdGFjayB7XG4gICAgICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oMTAwJSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJC16Zi1zaXplKSB7XG4gICAgICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXNwb25zaXZlIGNvbGxhcHNpbmdcbiAgICAuI3skLXpmLXNpemV9LWNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWNvbGxhcHNlOyB9XG4gICAgfVxuXG4gICAgLiN7JC16Zi1zaXplfS11bmNvbGxhcHNlIHtcbiAgICAgID4gLmNvbHVtbiB7IEBpbmNsdWRlIGdyaWQtY29sLWd1dHRlcigkLXpmLXNpemUpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2l6aW5nIChzaHJpbmspXG4gIC5zaHJpbmsge1xuICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oc2hyaW5rKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBCbG9jayBncmlkIGNvbHVtbnNcbiAgLmNvbHVtbi1ibG9jayB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tbWFyZ2luO1xuICB9XG5cbiAgLmNvbHVtbnMge1xuICAgIEBleHRlbmQgLmNvbHVtbjsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBwbGFjZWhvbGRlci1pbi1leHRlbmRcblxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgLyAyICogLTE7XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldCBhIGdyaWQgcm93IHNpemVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbkBtaXhpbiBncmlkLXJvdy1zaXplKCRzaXplOiAkZ3JpZC1yb3ctd2lkdGgpIHtcbiAgQGlmICRzaXplID09IGV4cGFuZCB7XG4gICAgJHNpemU6IG5vbmU7XG4gIH1cblxuICBtYXgtd2lkdGg6ICRzaXplO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAvIDI7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiAkcGFkZGluZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICB9XG59XG5cbi8vLyBDb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZW1vdmluZyB0aGUgcGFkZGluZy4gKipOb3RlOioqIG9ubHkgdXNlIHRoaXMgbWl4aW4gd2l0aGluIGEgYnJlYWtwb2ludC4gVG8gY29sbGFwc2UgYSBjb2x1bW4ncyBndXR0ZXJzIG9uIGFsbCBzY3JlZW4gc2l6ZXMsIHVzZSB0aGUgYCRndXR0ZXJgIHBhcmFtZXRlciBvZiB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluIGluc3RlYWQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tY29sbGFwc2Uge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoMCk7XG59XG5cbi8vLyBVbi1jb2xsYXBzZSB0aGUgZ3V0dGVycyBvbiBhIGNvbHVtbiBieSByZS1hZGRpbmcgdGhlIHBhZGRpbmcuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGd1dHRlciBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBTcGFjaW5nIGJldHdlZW4gY29sdW1ucy5cbkBtaXhpbiBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXI6ICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZ3JpZC1jb2x1bW4tZ3V0dGVyKCkuIGdyaWQtY29sdW1uLXVuY29sbGFwc2UoKSB3aWxsIGJlIHJlbW92ZWQgaW4gRm91bmRhdGlvbiA2LjQuJztcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVyKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLXVuY29sbGFwc2UoJGd1dHRlcjogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAd2FybiAnVGhpcyBtaXhpbiBpcyBiZWluZyByZXBsYWNlZCBieSBncmlkLWNvbC1ndXR0ZXIoKS4gZ3JpZC1jb2wtdW5jb2xsYXBzZSgpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bmNvbGxhcHNlKCRndXR0ZXIpO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIkLXpmLWZsZXgtanVzdGlmeTogKFxuICAnbGVmdCc6IGZsZXgtc3RhcnQsXG4gICdyaWdodCc6IGZsZXgtZW5kLFxuICAnY2VudGVyJzogY2VudGVyLFxuICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4pO1xuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIGEgY29sdW1uIGJhc2VkIG9uIGEgbnVtYmVyIG9mIGZhY3RvcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkY29sdW1uc1xuLy8vICAgV2lkdGggb2YgdGhlIGNvbHVtbi4gQWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgcGVyY2VudGFnZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGNvbHVtbiB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgc2luZ2xlIGRpZ2l0IHdpbGwgbWFrZSB0aGUgY29sdW1uIHNwYW4gdGhhdCBudW1iZXIgb2YgY29sdW1ucyB3aWRlLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSBjb2x1bW4gY291bnQgb2YgdGhlIHBhcmVudCByb3cuXG4vLy8gICAtIEEgbGlzdCBvZiB0aGUgZm9ybWF0IFwieCBvZiB5XCIgKHdpdGhvdXQgcXVvdGVzKSB3aWxsIG1ha2UgYSBjb2x1bW4gdGhhdCBpcyAqeCogY29sdW1ucyB3aWRlLCBhc3N1bWluZyAqeSogdG90YWwgY29sdW1ucyBmb3IgdGhlIHBhcmVudC5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IEEgY2FsY3VsYXRlZCBwZXJjZW50YWdlIHZhbHVlLlxuQGZ1bmN0aW9uIGdyaWQtY29sdW1uKCRjb2x1bW5zKSB7XG4gICR3aWR0aDogMCU7XG5cbiAgLy8gUGFyc2luZyBwZXJjZW50cywgZGVjaW1hbHMsIGFuZCBjb2x1bW4gY291bnRzXG4gIEBpZiB0eXBlLW9mKCRjb2x1bW5zKSA9PSAnbnVtYmVyJyB7XG4gICAgQGlmIHVuaXQoJGNvbHVtbnMpID09ICclJyB7XG4gICAgICAkd2lkdGg6ICRjb2x1bW5zO1xuICAgIH1cbiAgICBAZWxzZSBpZiAkY29sdW1ucyA8IDEge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGdyaWQtY29sdW1uLWNvdW50KTtcbiAgICB9XG4gIH1cblxuICAvLyBQYXJzaW5nIFwibiBvZiBuXCIgZXhwcmVzc2lvbnNcbiAgQGVsc2UgaWYgdHlwZS1vZigkY29sdW1ucykgPT0gJ2xpc3QnIHtcbiAgICBAaWYgbGVuZ3RoKCRjb2x1bW5zKSAhPSAzIHtcbiAgICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgdGhlIGZvcm1hdCBcIm4gb2YgblwiLic7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZShudGgoJGNvbHVtbnMsIDEpIC8gbnRoKCRjb2x1bW5zLCAzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW55dGhpbmcgZWxzZSBpcyBpbmNvcnJlY3RcbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbigpLiBVc2UgYSBudW1iZXIsIGRlY2ltYWwsIHBlcmNlbnRhZ2UsIG9yIFwibiBvZiBuXCIuJztcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgWyRncmlkLWNvbHVtbi1jb3VudF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4oXG4gICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW4tY291bnQsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tc2l6ZSgkY29sdW1ucyk7XG4gIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgQGlmICRncmlkLWNvbHVtbi1hbGlnbi1lZGdlIHtcbiAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gcm93LiBUaGlzIGlzIHRoZSBlcXVpdmFsZW50IG9mIGFkZGluZyBgLnJvd2AgYW5kIGAuY29sdW1uYCB0byB0aGUgc2FtZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gV2lkdGggb2YgdGhlIGd1dHRlcnMgb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNvbHVtbiByb3cuIFJlZmVyIHRvIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcm93KFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtcm93O1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkZ3V0dGVyczogJGd1dHRlcnMpO1xuXG4gICYsXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtblxuQGZ1bmN0aW9uIGdyaWQtY29sKFxuICAkY29sdW1uczogJGdyaWQtY29sdW1uLWNvdW50XG4pIHtcbiAgQHJldHVybiBncmlkLWNvbHVtbigkY29sdW1ucyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW5cbkBtaXhpbiBncmlkLWNvbChcbiAgJGNvbHVtbnM6ICRncmlkLWNvbHVtbi1jb3VudCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbigkY29sdW1ucywgJGd1dHRlcnMpO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcm93KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1yb3dcbkBtaXhpbiBncmlkLWNvbC1yb3coXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcm93KCRndXR0ZXJzKTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIFJlcG9zaXRpb24gYSBjb2x1bW4uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkcG9zaXRpb24gLSBEaXJlY3Rpb24gYW5kIGFtb3VudCB0byBtb3ZlLiBUaGUgY29sdW1uIHdpbGwgbW92ZSBlcXVhbCB0byB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBjb3VudCBzcGVjaWZpZWQuIEEgcG9zaXRpdmUgbnVtYmVyIHdpbGwgcHVzaCB0aGUgY29sdW1uIHRvIHRoZSByaWdodCwgd2hpbGUgYSBuZWdhdGl2ZSBudW1iZXIgd2lsbCBwdWxsIGl0IHRvIHRoZSBsZWZ0LiBTZXQgdG8gY2VudGVyIHRvIGNlbnRlciB0aGUgY29sdW1uLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKCRwb3NpdGlvbiAvICRncmlkLWNvbHVtbi1jb3VudCk7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkb2Zmc2V0O1xuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBjZW50ZXIge1xuICAgICYsICY6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBvciBjZW50ZXIuJztcbiAgfVxufVxuXG4vLy8gUmVzZXQgYSBwb3NpdGlvbiBkZWZpbml0aW9uLlxuQG1peGluIGdyaWQtY29sdW1uLXVucG9zaXRpb24ge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLy8vIE9mZnNldHMgYSBjb2x1bW4gdG8gdGhlIHJpZ2h0IGJ5IGAkbmAgY29sdW1ucy5cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkbiAtIFdpZHRoIHRvIG9mZnNldCBieS4gWW91IGNhbiBwYXNzIGluIGFueSB2YWx1ZSBhY2NlcHRlZCBieSB0aGUgYGdyaWQtY29sdW1uKClgIG1peGluLCBzdWNoIGFzIGA2YCwgYDUwJWAsIG9yIGAxIG9mIDJgLlxuQG1peGluIGdyaWQtY29sdW1uLW9mZnNldCgkbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiBncmlkLWNvbHVtbigkbik7XG59XG5cbi8vLyBEaXNhYmxlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBsYXN0IGNvbHVtbiBpbiBhIHJvdyBhbGlnbmluZyB0byB0aGUgb3Bwb3NpdGUgZWRnZS5cbkBtaXhpbiBncmlkLWNvbHVtbi1lbmQge1xuICAvLyBUaGlzIGV4dHJhIHNwZWNpZmljaXR5IGlzIHJlcXVpcmVkIGZvciB0aGUgcHJvcGVydHkgdG8gYmUgYXBwbGllZFxuICAmOmxhc3QtY2hpbGQ6bGFzdC1jaGlsZCB7XG4gICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgfVxufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tcG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtcG9zKCRwb3NpdGlvbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1wb3NpdGlvbigkcG9zaXRpb24pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXVucG9zIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbjtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLW9mZnNldCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tb2Zmc2V0XG5AbWl4aW4gZ3JpZC1jb2wtb2ZmKCRuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1lbmQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLWVuZFxuQG1peGluIGdyaWQtY29sLWVuZCB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWVuZDtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktYmFzZVxuLy8vL1xuXG4vLyBCYXNlIFR5cG9ncmFwaHlcbi8vIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtXG4vLyBUaGVzZSBhcmUgc3R5bGVzIGFwcGxpZWQgdG8gYmFzaWMgSFRNTCB0YWdzLCBpbmNsdWRpbmc6XG4vLyAgIC0gUGFyYWdyYXBocyA8cD5cbi8vICAgLSBCb2xkL2l0YWxpY3MgPGI+IDxzdHJvbmc+IDxpPiA8ZW0+XG4vLyAgIC0gU21hbGwgdGV4dCA8c21hbGw+XG4vLyAgIC0gSGVhZGluZ3MgPGgxPi08aDY+XG4vLyAgIC0gQW5jaG9ycyA8YT5cbi8vICAgLSBEaXZpZGVycyA8aHI+XG4vLyAgIC0gTGlzdHMgPHVsPiA8b2w+IDxkbD5cbi8vICAgLSBCbG9ja3F1b3RlcyA8YmxvY2txdW90ZT5cbi8vICAgLSBDb2RlIGJsb2NrcyA8Y29kZT5cbi8vICAgLSBBYmJyZXZpYXRpb25zIDxhYmJyPlxuLy8gICAtIENpdGF0aW9ucyA8Y2l0ZT5cbi8vICAgLSBLZXlzdHJva2VzIDxrYmQ+XG5cbi8vLyBGb250IGZhbWlseSBmb3IgaGVhZGVyIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRoZWFkZXItZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3R5bGUgKGUuZy4gaXRhbGljaXplZCkgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItZm9udC1zdHlsZTogbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdGFjayB1c2VkIGZvciBlbGVtZW50cyB0aGF0IHVzZSBtb25vc3BhY2VkIHR5cGUsIHN1Y2ggYXMgY29kZSBzYW1wbGVzXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBDb3VyaWVyLCBtb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLWNvbG9yOiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgZm9yIGhlYWRpbmdzIGF0IHZhcmlvdXMgc2NyZWVuIHNpemVzLiBFYWNoIGtleSBpcyBhIGJyZWFrcG9pbnQsIGFuZCBlYWNoIHZhbHVlIGlzIGEgbWFwIG9mIGhlYWRpbmcgc3R5bGVzLlxuLy8vIEB0eXBlIE1hcFxuJGhlYWRlci1zdHlsZXM6IChcbiAgc21hbGw6IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDI0KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDE5KSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDE4KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDE3KSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbiAgbWVkaXVtOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiA0OCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiA0MCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAzMSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAyNSksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4pICFkZWZhdWx0O1xuXG4vLyAkaGVhZGVyLXN0eWxlcyBtYXAgaXMgYnVpbHQgZnJvbSAkaGVhZGVyLXNpemVzIGluIG9yZGVyIHRvIGVuc3VyZSBkb3dud2FyZCBjb21wYXRpYmlsaXR5XG4vLyB3aGVuICRoZWFkZXItc2l6ZXMgaXMgZGVwcmVjaWF0ZWQsICRoZWFkZXItc3R5bGVzIG5lZWRzIHRvIGdldCAhZGVmYXVsdCB2YWx1ZXMgbGlrZSBzZXR0aW5ncy5zY3NzXG5AZnVuY3Rpb24gYnVpbGRfZnJvbV9oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcykge1xuICBAd2FybiAnTm90ZSwgdGhhdCAkaGVhZGVyLXNpemVzIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggJGhlYWRlci1zdHlsZXMuICRoZWFkZXItc2l6ZXMgc3RpbGwgd29ya3MsIGJ1dCBpdCBpcyBnb2luZyB0byBiZSBkZXByZWNpYXRlZC4nO1xuICAkaGVhZGVyLXN0eWxlczogKCk7XG4gIEBlYWNoICRzaXplLCAkaGVhZGVycyBpbiAkaGVhZGVyLXNpemVzIHtcbiAgICAkaGVhZGVyLW1hcDogKCk7XG4gICAgQGVhY2ggJGhlYWRlciwgJGZvbnQtc2l6ZSBpbiAkaGVhZGVycyB7XG4gICAgICAkaGVhZGVyLW1hcDogbWFwLW1lcmdlKCRoZWFkZXItbWFwLCAoJGhlYWRlcjogKCdmb250LXNpemUnOiAkZm9udC1zaXplKSkpOyAgXG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkX2Zyb21faGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBjb2RlIHNhbXBsZXMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjb2RlLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIGNvZGUgc2FtcGxlcy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kY29kZS1wYWRkaW5nOiByZW0tY2FsYygyIDUgMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvcjogJHByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBDb2xvclxuJGFuY2hvci1jb2xvci1ob3Zlcjogc2NhbGUtY29sb3IoJGFuY2hvci1jb2xvciwgJGxpZ2h0bmVzczogLTE0JSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVvY3JhdGlvbiBmb3IgbGlua3MuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcyBvbiBob3Zlci5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuXG4vLy8gTWF4aW11bSB3aWR0aCBvZiBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaHItd2lkdGg6ICRnbG9iYWwtd2lkdGggIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIExpc3RcbiRoci1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBmb3IgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRoci1tYXJnaW46IHJlbS1jYWxjKDIwKSBhdXRvICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LWxpbmVoZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGl0ZW1zIGluIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAhZGVmYXVsdDtcblxuLy8vIEJ1bGxldCB0eXBlIHRvIHVzZSBmb3IgdW5vcmRlcmVkIGxpc3RzIChlLmcuLCBgc3F1YXJlYCwgYGNpcmNsZWAsIGBkaXNjYCkuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS10eXBlOiBkaXNjICFkZWZhdWx0O1xuXG4vLy8gUG9zaXRpb25pbmcgZm9yIGJ1bGxldHMgb24gdW5vcmRlcmVkIGxpc3QgaXRlbXMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGxpc3RzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3Qtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBhIGxpc3QgaW5zaWRlIGEgbGlzdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gZm9yIGA8ZGw+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgZm9yIGA8ZHQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRkZWZubGlzdC10ZXJtLXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBgPGR0PmAgYW5kIGA8ZGQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b206IDAuM3JlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRibG9ja3F1b3RlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSBgPGJsb2NrcXVvdGU+YCBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRibG9ja3F1b3RlLXBhZGRpbmc6IHJlbS1jYWxjKDkgMjAgMCAxOSkgIWRlZmF1bHQ7XG5cbi8vLyBTaWRlIGJvcmRlciBmb3IgYDxibG9ja3F1b3RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGJsb2NrcXVvdGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgPGNpdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBDaXRhdGlvbnNcbiAgY2l0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG4gICAgY29sb3I6ICRjaXRlLWNvbG9yO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJGNpdGUtcHNldWRvLWNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyIHtcbiAgICBib3JkZXItYm90dG9tOiAkYWJici11bmRlcmxpbmU7XG4gICAgY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG4gICAgY3Vyc29yOiBoZWxwO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBcbiAgLy8gQ29kZVxuICBjb2RlIHtcbiAgICBwYWRkaW5nOiAkY29kZS1wYWRkaW5nO1xuXG4gICAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICAgIGZvbnQtZmFtaWx5OiAkY29kZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2RlLWNvbG9yO1xuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWhlbHBlcnNcbi8vLy9cblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGVhZC1mb250LXNpemU6ICRnbG9iYWwtZm9udC1zaXplICogMS4yNSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsZWFkLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbGluZSBoZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJHN1YmhlYWRlci1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kc3ViaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRvcCBtYXJnaW4gZm9yIHN1YmhoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgLy8gVXNlIHRvIHJlbW92ZSB0aGUgYnVsbGV0cyBmcm9tIGFuIHVub3JkZXJlZCBsaXN0XG4gIC5uby1idWxsZXQge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG4kcHJpbnQtaHJlZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIHNhc3MtbGludDpkaXNhYmxlLWFsbFxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcmludC1zdHlsZXMge1xuICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuICBAbWVkaWEgcHJpbnQge1xuICAgICoge1xuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblxuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IC8vIEJsYWNrIHByaW50cyBmYXN0ZXI6IGg1YnAuY29tL3NcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBmb2N1c2VkIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1mb2N1czogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBkaXNhYmxlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRpbnB1dC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGZvY3VzZWQgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1ib3JkZXItZm9jdXM6IDFweCBzb2xpZCAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm94IHNoYWRvdyBpbnNpZGUgdGV4dCBpbnB1dHMgd2hlbiBub3QgZm9jdXNlZC5cbi8vLyBAdHlwZSBTaGFkb3dcbiRpbnB1dC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKCRibGFjaywgMC4xKSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgb3V0c2lkZSB0ZXh0IGlucHV0cyB3aGVuIGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93LWZvY3VzOiAwIDAgNXB4ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEN1cnNvciB0byB1c2Ugd2hlbiBob3ZlcmluZyBvdmVyIGEgZGlzYWJsZWQgdGV4dCBpbnB1dC5cbi8vLyBAdHlwZSBDdXJzb3JcbiRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ6IG5vdC1hbGxvd2VkICFkZWZhdWx0O1xuXG4vLy8gUHJvcGVydGllcyB0byB0cmFuc2l0aW9uIG9uIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRpbnB1dC10cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuNXMsIGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgdGhlIHVwL2Rvd24gYnV0dG9ucyB0aGF0IENocm9tZSBhbmQgRmlyZWZveCBhZGQgdG8gYDxpbnB1dCB0eXBlPSdudW1iZXInPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGlucHV0LW51bWJlci1zcGlubmVyczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFJhZGl1cyBmb3IgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgZm9yIGZvcm0gYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1idXR0b24tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tZWxlbWVudCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkZm9ybS1zcGFjaW5nIC8gMjtcblxuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRpbnB1dC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kO1xuICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93O1xuXG4gIGZvbnQtZmFtaWx5OiAkaW5wdXQtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGlucHV0LWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1jb2xvcjtcblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tdGV4dCB7XG4gIC8vIFRleHQgaW5wdXRzXG4gICN7dGV4dC1pbnB1dHMoKX0sXG4gIHRleHRhcmVhIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVsZW1lbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxuXG4gIC8vIFRleHQgYXJlYXNcbiAgdGV4dGFyZWEge1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICZbcm93c10ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0LFxuICB0ZXh0YXJlYSB7XG4gICAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQvcmVhZG9ubHkgc3RhdGVcbiAgICAmOmRpc2FibGVkLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWRpc2FibGVkO1xuICAgICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IHN0eWxlcyBvbiBidXR0b24tbGlrZSBpbnB1dHNcbiAgW3R5cGU9J3N1Ym1pdCddLFxuICBbdHlwZT0nYnV0dG9uJ10ge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvcm0tYnV0dG9uLXJhZGl1cztcbiAgfVxuXG4gIC8vIFJlc2V0IE5vcm1hbGl6ZSBzZXR0aW5nIGNvbnRlbnQtYm94IHRvIHNlYXJjaCBlbGVtZW50c1xuICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tcXVhbGlmeWluZy1lbGVtZW50c1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBOdW1iZXIgaW5wdXQgc3R5bGVzXG4gIFt0eXBlPSdudW1iZXInXSB7XG4gICAgQGlmIG5vdCAkaW5wdXQtbnVtYmVyLXNwaW5uZXJzIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhcblxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWNoZWNrYm94IHtcbiAgW3R5cGU9J2ZpbGUnXSxcbiAgW3R5cGU9J2NoZWNrYm94J10sXG4gIFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dC9sYWJlbCBzaWJsaW5nc1xuICBbdHlwZT0nY2hlY2tib3gnXSArIGxhYmVsLFxuICBbdHlwZT0ncmFkaW8nXSArIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgJltmb3JdIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsZXMgZm9yIGlucHV0cyBpbnNpZGUgbGFiZWxzXG4gIGxhYmVsID4gW3R5cGU9J2NoZWNrYm94J10sXG4gIGxhYmVsID4gW3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkZm9ybS1zcGFjaW5nICogMC41O1xuICB9XG5cbiAgLy8gTm9ybWFsaXplIGZpbGUgaW5wdXQgd2lkdGhcbiAgW3R5cGU9J2ZpbGUnXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGZvcm0gbGFiZWxzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtZm9udC1zaXplOiByZW0tY2FsYygxNCkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBmb3JtIGxhYmVscy4gVGhlIGhpZ2hlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBzcGFjZSBiZXR3ZWVuIHRoZSBsYWJlbCBhbmQgaXRzIGlucHV0IGZpZWxkLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDEuOCAhZGVmYXVsdDtcblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGZvcm0tbGFiZWwtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yO1xufVxuXG5AbWl4aW4gZm9ybS1sYWJlbC1taWRkbGUge1xuICAkaW5wdXQtYm9yZGVyLXdpZHRoOiBnZXQtYm9yZGVyLXZhbHVlKCRpbnB1dC1ib3JkZXIsIHdpZHRoKTtcblxuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAoJGZvcm0tc3BhY2luZyAvIDIgKyByZW0tY2FsYygkaW5wdXQtYm9yZGVyLXdpZHRoKSkgMDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1sYWJlbCB7XG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmb3JtLWxhYmVsO1xuXG4gICAgJi5taWRkbGUge1xuICAgICAgQGluY2x1ZGUgZm9ybS1sYWJlbC1taWRkbGU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIENvbG9yXG4kaGVscHRleHQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVscHRleHQtZm9udC1zaXplOiByZW0tY2FsYygxMykgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc3R5bGUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaGVscHRleHQtZm9udC1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0IHtcbiAgLmhlbHAtdGV4dCB7XG4gICAgJG1hcmdpbi10b3A6ICgkZm9ybS1zcGFjaW5nICogMC41KSAqIC0xO1xuXG4gICAgbWFyZ2luLXRvcDogJG1hcmdpbi10b3A7XG4gICAgZm9udC1zaXplOiAkaGVscHRleHQtZm9udC1zaXplO1xuICAgIGZvbnQtc3R5bGU6ICRoZWxwdGV4dC1mb250LXN0eWxlO1xuICAgIGNvbG9yOiAkaGVscHRleHQtY29sb3I7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgJGZvcm0tc3BhY2luZyAqIDEuNSk7XG5cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBpZigkZ2xvYmFsLWZsZXhib3gsIGZsZXgsIHRhYmxlKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cyk7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICA+ICoge1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgJGlucHV0LXJhZGl1cyAwIDAgJGlucHV0LXJhZGl1cywgMCAkaW5wdXQtcmFkaXVzICRpbnB1dC1yYWRpdXMgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJWlucHV0LWdyb3VwLWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1sYWJlbCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgcGFkZGluZzogMCAkaW5wdXQtcHJlZml4LXBhZGRpbmc7XG4gICAgYm9yZGVyOiAkaW5wdXQtcHJlZml4LWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kOiAkaW5wdXQtcHJlZml4LWJhY2tncm91bmQ7XG5cbiAgICBjb2xvcjogJGlucHV0LXByZWZpeC1jb2xvcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIEBpZiBoYXMtdmFsdWUoJGlucHV0LXByZWZpeC1ib3JkZXIpIHtcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgYSxcbiAgICBpbnB1dCxcbiAgICBidXR0b24sXG4gICAgbGFiZWwge1xuICAgICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuXG4gICAgICBmb250LXNpemU6ICRpbnB1dC1mb250LXNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNpdHkgYnVtcCBuZWVkZWQgdG8gcHJldmVudCBvdmVycmlkZSBieSBidXR0b25zXG4gIEBpZiBub3QgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgQm9yZGVyXG4kZmllbGRzZXQtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGluc2lkZSBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LXBhZGRpbmc6IHJlbS1jYWxjKDIwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGFyb3VuZCBjdXN0b20gZmllbGRzZXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZpZWxkc2V0LW1hcmdpbjogcmVtLWNhbGMoMTggMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgYmV0d2VlbiB0aGUgbGVnZW5kIHRleHQgYW5kIGZpZWxkc2V0IGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWdlbmQtcGFkZGluZzogcmVtLWNhbGMoMCAzKSAhZGVmYXVsdDtcblxuQG1peGluIGZpZWxkc2V0IHtcbiAgbWFyZ2luOiAkZmllbGRzZXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkZmllbGRzZXQtcGFkZGluZztcbiAgYm9yZGVyOiAkZmllbGRzZXQtYm9yZGVyO1xuXG4gIGxlZ2VuZCB7XG4gICAgLy8gQ292ZXJzIHVwIHRoZSBmaWVsZHNldCdzIGJvcmRlciB0byBjcmVhdGUgYXJ0aWZpY2lhbCBwYWRkaW5nXG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IHJlbS1jYWxjKC0zKTtcbiAgICBwYWRkaW5nOiAkbGVnZW5kLXBhZGRpbmc7XG4gICAgYmFja2dyb3VuZDogJGJvZHktYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmb3Jtc1xuLy8vL1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBkcm9wZG93biB0cmlhbmdsZSBpbnNpZGUgc2VsZWN0IG1lbnVzLiBTZXQgdG8gYHRyYW5zcGFyZW50YCB0byByZW1vdmUgaXQgZW50aXJlbHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRzZWxlY3QtdHJpYW5nbGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3Igc2VsZWN0IG1lbnVzLlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICsgKCRmb3JtLXNwYWNpbmcgKiAxLjUpIC0gcmVtLWNhbGMoMSkpO1xuXG4gIGhlaWdodDogJGhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgcGFkZGluZzogKCRmb3JtLXNwYWNpbmcgLyAyKTtcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLXNlbGVjdCB7XG4gIHNlbGVjdCB7XG4gICAgQGluY2x1ZGUgZm9ybS1zZWxlY3Q7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGFiaWRlXG4vLy8vXG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gaW5wdXRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1pbnB1dHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGlmIGVycm9yIHN0eWxlcyBzaG91bGQgYmUgYWRkZWQgdG8gbGFiZWxzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRhYmlkZS1sYWJlbHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIHRvIHVzZSBmb3IgaW52YWxpZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJhY2tncm91bmQtaW52YWxpZDogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHRvIHVzZSBmb3IgbGFiZWxzIG9mIGludmFsaWQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1lcnJvci1jb2xvcjogZ2V0LWNvbG9yKGFsZXJ0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaW5wdXQtZXJyb3ItZm9udC1zaXplOiByZW0tY2FsYygxMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBmb3JtIGVycm9yIHRleHQuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIgb2YgYW4gaW5wdXQgZmllbGQgdG8gaGF2ZSBhbiBlcnJvciBzdGF0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYWxlcnQtY29sb3JdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgYmFja2dyb3VuZCBhbmQgYm9yZGVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFja2dyb3VuZC1saWdodGVuIFsxMCVdIC0gTGlnaHRuZXNzIGxldmVsIG9mIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuQG1peGluIGZvcm0taW5wdXQtZXJyb3IoXG4gICRiYWNrZ3JvdW5kOiAkaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkLFxuICAkYmFja2dyb3VuZC1saWdodGVuOiAxMCVcbikge1xuICAmOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1peCgkYmFja2dyb3VuZCwgJHdoaXRlLCAkYmFja2dyb3VuZC1saWdodGVuKTtcbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIGVycm9yIHN0eWxlcyB0byBhIGZvcm0gZWxlbWVudCwgdXNpbmcgdGhlIHZhbHVlcyBpbiB0aGUgc2V0dGluZ3MgZmlsZS5cbkBtaXhpbiBmb3JtLWVycm9yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgbWFyZ2luLXRvcDogJGZvcm0tc3BhY2luZyAqIC0wLjU7XG4gIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgZm9udC1zaXplOiAkaW5wdXQtZXJyb3ItZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWVycm9yLWZvbnQtd2VpZ2h0O1xuICBjb2xvcjogJGlucHV0LWVycm9yLWNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWVycm9yIHtcbiAgQGlmICRhYmlkZS1pbnB1dHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBpbnZhbGlkIGlucHV0c1xuICAgIC5pcy1pbnZhbGlkLWlucHV0IHtcbiAgICAgIEBpbmNsdWRlIGZvcm0taW5wdXQtZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgQGlmICRhYmlkZS1sYWJlbHMge1xuICAgIC8vIEVycm9yIGNsYXNzIGZvciBsYWJlbHMgb2YgaW52YWxpZCBvdXRwdXRzXG4gICAgLmlzLWludmFsaWQtbGFiZWwge1xuICAgICAgY29sb3I6ICRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBlcnJvciBlbGVtZW50XG4gIC5mb3JtLWVycm9yIHtcbiAgICBAaW5jbHVkZSBmb3JtLWVycm9yO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWNjb3JkaW9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgYW4gYWNjb3JkaW9uIGdyb3VwLlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgYWRkcyBwbHVzIGFuZCBtaW51cyBpY29ucyB0byB0aGUgc2lkZSBvZiBlYWNoIGFjY29yZGlvbiB0aXRsZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9uLXBsdXNtaW51czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBhY2NvcmRpb24gdGl0bGVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGFjY29yZGlvbi10aXRsZS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9uIGhvdmVyIGZvciBpdGVtcyBpbiBhIE1lbnUuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhbiBhY2NvcmRpb24gaXRlbS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWl0ZW0tcGFkZGluZzogMS4yNXJlbSAxcmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRhYiBjb250ZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb24tY29udGVudC1ib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJGFjY29yZGlvbi1jb250ZW50LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYWNjb3JkaW9uLWNvbnRlbnQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBhY2NvcmRpb24gY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIHRoZSBzYW1lIGVsZW1lbnQgdGhhdCBnZXRzIGBkYXRhLWFjY29yZGlvbmAuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRhaW5lciAoXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWJhY2tncm91bmRcbikge1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBhY2NvcmRpb24gaXRlbS4gQXBwbHkgdGhpcyB0byB0aGUgbGlzdCBpdGVtIHdpdGhpbiBhbiBhY2NvcmRpb24gdWwuXG5AbWl4aW4gYWNjb3JkaW9uLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkID4gOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAkZ2xvYmFsLXJhZGl1cyAwIDA7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQgPiA6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIHRpdGxlIG9mIGFuIGFjY29yZGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIHRoZSBsaW5rIHdpdGhpbiBhbiBhY2NvcmRpb24gaXRlbS5cbkBtaXhpbiBhY2NvcmRpb24tdGl0bGUgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1pdGVtLXBhZGRpbmcsXG4gICRmb250LXNpemU6ICRhY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLFxuICAkY29sb3I6ICRhY2NvcmRpb24taXRlbS1jb2xvcixcbiAgJGJvcmRlcjogJGFjY29yZGlvbi1jb250ZW50LWJvcmRlcixcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRhY2NvcmRpb24taXRlbS1iYWNrZ3JvdW5kLWhvdmVyXG4pIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZGRpbmc7XG5cbiAgYm9yZGVyOiAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAwO1xuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpID4gJiB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1ob3ZlcjtcbiAgfVxuXG4gIEBpZiAkYWNjb3JkaW9uLXBsdXNtaW51cyB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICBjb250ZW50OiAnKyc7XG4gICAgfVxuXG4gICAgLmlzLWFjdGl2ZSA+ICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDEzJztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhY2NvcmRpb24gY29udGVudC4gQXBwbHkgdGhpcyB0byB0aGUgY29udGVudCBwYW5lIGJlbG93IGFuIGFjY29yZGlvbiBpdGVtJ3MgdGl0bGUuXG5AbWl4aW4gYWNjb3JkaW9uLWNvbnRlbnQgKFxuICAkcGFkZGluZzogJGFjY29yZGlvbi1jb250ZW50LXBhZGRpbmcsXG4gICRib3JkZXI6ICRhY2NvcmRpb24tY29udGVudC1ib3JkZXIsXG4gICRiYWNrZ3JvdW5kOiAkYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZCxcbiAgJGNvbG9yOiAkYWNjb3JkaW9uLWNvbnRlbnQtY29sb3Jcbikge1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiAkcGFkZGluZztcblxuICBib3JkZXI6ICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gIGNvbG9yOiAkY29sb3I7XG5cbiAgOmxhc3QtY2hpbGQgPiAmOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYWNjb3JkaW9uIHtcbiAgLmFjY29yZGlvbiB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5hY2NvcmRpb24taXRlbSB7XG4gICAgQGluY2x1ZGUgYWNjb3JkaW9uLWl0ZW07XG4gIH1cblxuICAuYWNjb3JkaW9uLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBhY2NvcmRpb24tdGl0bGU7XG4gIH1cblxuICAuYWNjb3JkaW9uLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGFjY29yZGlvbi1jb250ZW50O1xuICB9XG59XG4iLCIvLy8vXG4vLy8gQGdyb3VwIGFjY29yZGlvbi1tZW51XG4vLy8vXG5cbi8vLyBTZXRzIGlmIGFjY29yZGlvbiBtZW51cyBoYXZlIHRoZSBkZWZhdWx0IGFycm93IHN0eWxlcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYWNjb3JkaW9ubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGFjY29yZGlvbiBtZW51IGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRhY2NvcmRpb25tZW51LWFycm93LWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgYWNjb3JkaW9uIG1lbnUgYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZTogNnB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudSB7XG4gIEBpZiAkYWNjb3JkaW9ubWVudS1hcnJvd3Mge1xuICAgIC5pcy1hY2NvcmRpb24tc3VibWVudS1wYXJlbnQgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGFjY29yZGlvbm1lbnUtYXJyb3ctc2l6ZSwgJGFjY29yZGlvbm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICgkYWNjb3JkaW9ubWVudS1hcnJvdy1zaXplIC8gMik7XG4gICAgICAgICN7JGdsb2JhbC1yaWdodH06IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmlzLWFjY29yZGlvbi1zdWJtZW51LXBhcmVudFthcmlhLWV4cGFuZGVkPSd0cnVlJ10gPiBhOjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJhZGdlXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRiYWRnZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGJhZGdlcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJhZGdlLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kYmFkZ2UtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBpbnNpZGUgYmFkZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLXBhZGRpbmc6IDAuM2VtICFkZWZhdWx0O1xuXG4vLy8gTWluaW11bSB3aWR0aCBvZiBhIGJhZGdlLlxuLy8vIEB0eXBlIE51bWJlclxuJGJhZGdlLW1pbndpZHRoOiAyLjFlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBiYWRnZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYmFkZ2UtZm9udC1zaXplOiAwLjZyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgdGhlIGJhc2Ugc3R5bGVzIGZvciBhIGJhZGdlLlxuQG1peGluIGJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6ICRiYWRnZS1taW53aWR0aDtcbiAgcGFkZGluZzogJGJhZGdlLXBhZGRpbmc7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGZvbnQtc2l6ZTogJGJhZGdlLWZvbnQtc2l6ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1iYWRnZSB7XG4gIC5iYWRnZSB7XG4gICAgQGluY2x1ZGUgYmFkZ2U7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYmFkZ2UtcGFsZXR0ZSB7XG4gICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgICAgICBjb2xvcjogY29sb3ItcGljay1jb250cmFzdCgkY29sb3IsICgkYmFkZ2UtY29sb3IsICRiYWRnZS1jb2xvci1hbHQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFkY3J1bWJzXG4vLy8vXG5cbi8vLyBNYXJnaW4gYXJvdW5kIGEgYnJlYWRjcnVtYnMgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLW1hcmdpbjogMCAwICRnbG9iYWwtbWFyZ2luIDAgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTEpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGhlIGFjdGl2ZSBicmVhZGNydW1iIGxpbmsuXG4vLy8gQHR5cGUgQ29sb3JcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIE9wYWNpdHkgb2YgZGlzYWJsZWQgYnJlYWRjcnVtYiBsaW5rcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRicmVhZGNydW1icy1pdGVtLWNvbG9yLWRpc2FibGVkOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYmV0d2VlbiBicmVhZGNydW1iIGl0ZW1zLlxuLy8vIEB0eXBlIE51bWJlclxuJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luOiAwLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBtYWtlcyBicmVhZGNydW1iIGxpbmtzIHVwcGVyY2FzZS5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnJlYWRjcnVtYnMtaXRlbS11cHBlcmNhc2U6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFkZHMgYSBzbGFzaCBiZXR3ZWVuIGJyZWFkY3J1bWIgbGlua3MuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGJyZWFkY3J1bWJzLWl0ZW0tc2xhc2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBicmVhZGNydW1icyBjb250YWluZXIsIGFsb25nIHdpdGggdGhlIHN0eWxlcyBmb3IgdGhlIGA8bGk+YCBhbmQgYDxhPmAgZWxlbWVudHMgaW5zaWRlIG9mIGl0LlxuQG1peGluIGJyZWFkY3J1bWJzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46ICRicmVhZGNydW1icy1tYXJnaW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLy8gSXRlbSB3cmFwcGVyXG4gIGxpIHtcbiAgICBmbG9hdDogI3skZ2xvYmFsLWxlZnR9O1xuXG4gICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnMtaXRlbS1mb250LXNpemU7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yLWN1cnJlbnQ7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgQGlmICRicmVhZGNydW1icy1pdGVtLXVwcGVyY2FzZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIEBpZiAkYnJlYWRjcnVtYnMtaXRlbS1zbGFzaCB7XG4gICAgICAvLyBOZWVkIHRvIGVzY2FwZSB0aGUgYmFja3NsYXNoXG4gICAgICAkc2xhc2g6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ2x0cicsICcvJywgJ1xcXFwnKTtcblxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgIG1hcmdpbjogMCAkYnJlYWRjcnVtYnMtaXRlbS1tYXJnaW47XG5cbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29udGVudDogJHNsYXNoO1xuICAgICAgICBjb2xvcjogJG1lZGl1bS1ncmF5O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJyZWFkY3J1bWJzLWl0ZW0tbWFyZ2luO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhZ2UgbGlua3NcbiAgYSB7XG4gICAgY29sb3I6ICRicmVhZGNydW1icy1pdGVtLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tYnJlYWRjcnVtYnMge1xuICAuYnJlYWRjcnVtYnMge1xuICAgIEBpbmNsdWRlIGJyZWFkY3J1bWJzLWNvbnRhaW5lcjtcblxuICAgIC5kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWJzLWl0ZW0tY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnV0dG9uLWdyb3VwXG4vLy8vXG5cbi8vLyBNYXJnaW4gZm9yIGJ1dHRvbiBncm91cHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uZ3JvdXAtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gTWFyZ2luIGJldHdlZW4gYnV0dG9ucyBpbiBhIGJ1dHRvbiBncm91cC5cbi8vLyBAdHlwZSBCb3JkZXJcbiRidXR0b25ncm91cC1zcGFjaW5nOiAxcHggIWRlZmF1bHQ7XG5cbi8vLyBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yOiAnLmJ1dHRvbicgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIG51bWJlciBvZiBidXR0b25zIHRoYXQgY2FuIGJlIGluIGFuIGV2ZW4td2lkdGggYnV0dG9uIGdyb3VwLlxuLy8vIEB0eXBlIE51bWJlclxuJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZXRlcm1pbmVzIGlmICRidXR0b24tcmFkaXVzIGlzIGFwcGxpZWQgdG8gZWFjaCBidXR0b24gb3IgdGhlIGJ1dHRvbiBncm91cCBhcyBhIHdob2xlLiBVc2UgJGdsb2JhbC1yYWRpdXMgaW4gX3NldHRpbmdzLnNjc3MgdG8gY2hhbmdlIHJhZGl1cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2g6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBBZGQgc3R5bGVzIGZvciBhIGJ1dHRvbiBncm91cCBjb250YWluZXIuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRjaGlsZC1zZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgYSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwKFxuICAkY2hpbGQtc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtbWFyZ2luO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgfVxuXG4gICN7JGNoaWxkLXNlbGVjdG9yfSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkYnV0dG9uZ3JvdXAtc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkYnV0dG9uZ3JvdXAtc3BhY2luZztcbiAgICBmb250LXNpemU6IG1hcC1nZXQoJGJ1dHRvbi1zaXplcywgZGVmYXVsdCk7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMDtcbiAgICB9XG5cbiAgICBAaWYgbm90ICRidXR0b25ncm91cC1yYWRpdXMtb24tZWFjaCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcC0jeyRnbG9iYWwtcmlnaHR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgZnVsbC13aWR0aCBidXR0b24gZ3JvdXAsIG1ha2luZyBlYWNoIGJ1dHRvbiBlcXVhbCB3aWR0aC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHNlbGVjdG9yIFskYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3JdIC0gU2VsZWN0b3IgZm9yIHRoZSBidXR0b25zIGluc2lkZSBhIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtZXhwYW5kKFxuICAkc2VsZWN0b3I6ICRidXR0b25ncm91cC1jaGlsZC1zZWxlY3RvcixcbiAgJGNvdW50OiBudWxsXG4pIHtcbiAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAtJGJ1dHRvbmdyb3VwLXNwYWNpbmc7XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gT25lIGNoaWxkXG4gICAgICAmOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMTAwJVxuICAgICAgfVxuXG4gICAgICAvLyBUd28gb3IgbW9yZSBjaGlsZHJlZW5cbiAgICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXgge1xuICAgICAgICAmOmZpcnN0LWNoaWxkOm50aC1sYXN0LWNoaWxkKCN7JGl9KSB7XG4gICAgICAgICAgJiwgJjpmaXJzdC1jaGlsZDpudGgtbGFzdC1jaGlsZCgjeyRpfSkgfiAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoI3twZXJjZW50YWdlKDEgLyAkaSl9IC0gI3skYnV0dG9uZ3JvdXAtc3BhY2luZ30pO1xuICAgICAgICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRidXR0b25ncm91cC1zcGFjaW5nO1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGJ1dHRvbmdyb3VwLXNwYWNpbmcgKiAtJGJ1dHRvbmdyb3VwLWV4cGFuZC1tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBTdGFja3MgdGhlIGJ1dHRvbnMgaW4gYSBidXR0b24gZ3JvdXAuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciBbJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXSAtIFNlbGVjdG9yIGZvciB0aGUgYnV0dG9ucyBpbnNpZGUgdGhlIGJ1dHRvbiBncm91cC5cbkBtaXhpbiBidXR0b24tZ3JvdXAtc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cblxuICAgIEBpZiBub3QgJGJ1dHRvbmdyb3VwLXJhZGl1cy1vbi1lYWNoIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1sZWZ0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxufVxuXG4vLy8gVW4tc3RhY2tzIHRoZSBidXR0b25zIGluIGEgYnV0dG9uIGdyb3VwLlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgWyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcl0gLSBTZWxlY3RvciBmb3IgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZSBidXR0b24gZ3JvdXAuXG5AbWl4aW4gYnV0dG9uLWdyb3VwLXVuc3RhY2soXG4gICRzZWxlY3RvcjogJGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yXG4pIHtcbiAgI3skc2VsZWN0b3J9IHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQGlmIG5vdCAkYnV0dG9uZ3JvdXAtcmFkaXVzLW9uLWVhY2gge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tI3skZ2xvYmFsLWxlZnR9LXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3AtI3skZ2xvYmFsLXJpZ2h0fS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICAgICAgICBib3JkZXItYm90dG9tLSN7JGdsb2JhbC1yaWdodH0tcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS0jeyRnbG9iYWwtbGVmdH0tcmFkaXVzOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cCB7XG4gIC5idXR0b24tZ3JvdXAge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1ncm91cDtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0gI3skYnV0dG9uZ3JvdXAtY2hpbGQtc2VsZWN0b3J9IHtcbiAgICAgICAgZm9udC1zaXplOiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXZlbi13aWR0aCBHcm91cFxuICAgICYuZXhwYW5kZWQgeyBAaW5jbHVkZSBidXR0b24tZ3JvdXAtZXhwYW5kOyB9XG5cbiAgICAvLyBDb2xvcnNcbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgQGlmICRidXR0b24tZmlsbCAhPSBob2xsb3cge1xuICAgICAgICAmLiN7JG5hbWV9ICN7JGJ1dHRvbmdyb3VwLWNoaWxkLXNlbGVjdG9yfSB7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXN0eWxlKCRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJi4jeyRuYW1lfSAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1ob2xsb3c7XG4gICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkY29sb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLFxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwsXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXN0YWNrO1xuICAgIH1cblxuICAgICYuc3RhY2tlZC1mb3Itc21hbGwge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWdyb3VwLXVuc3RhY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdGFja2VkLWZvci1tZWRpdW0ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZ3JvdXAtdW5zdGFjaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrZWQtZm9yLXNtYWxsLmV4cGFuZGVkIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBmb3JjZS1lbGVtZW50LW5lc3RpbmdcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAjeyRidXR0b25ncm91cC1jaGlsZC1zZWxlY3Rvcn0ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBjYWxsb3V0XG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZmFkZSB2YWx1ZSBmb3IgY2FsbG91dCBiYWNrZ3JvdW5kcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjYWxsb3V0LWJhY2tncm91bmQtZmFkZTogODUlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIExpc3RcbiRjYWxsb3V0LWJvcmRlcjogMXB4IHNvbGlkIHJnYmEoJGJsYWNrLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2FsbG91dC1tYXJnaW46IDAgMCAxcmVtIDAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGlubmVyIHBhZGRpbmcgZm9yIGNhbGxvdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGNhbGxvdXQtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgY2FsbG91dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3I6ICRib2R5LWZvbnQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGNhbGxvdXRzLCBpZiB0aGUgY2FsbG91dCBoYXMgYSBkYXJrIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjYWxsb3V0LWZvbnQtY29sb3ItYWx0OiAkYm9keS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgcmFkaXVzIGZvciBjYWxsb3V0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNhbGxvdXQtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEFtb3VudCB0byB0aW50IGxpbmtzIHVzZWQgd2l0aGluIGNvbG9yZWQgcGFuZWxzLiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZS5cbi8vLyBAdHlwZSBOdW1iZXIgfCBCb29sZWFuXG4kY2FsbG91dC1saW5rLXRpbnQ6IDMwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhIGNhbGxvdXQsIGluY2x1ZGluZyBwYWRkaW5nIGFuZCBtYXJnaW4uXG5AbWl4aW4gY2FsbG91dC1iYXNlKCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogJGNhbGxvdXQtbWFyZ2luO1xuICBwYWRkaW5nOiAkY2FsbG91dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGNhbGxvdXQtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkY2FsbG91dC1yYWRpdXM7XG5cbiAgLy8gUmVzcGVjdCB0aGUgcGFkZGluZywgZm9vbC5cbiAgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSBxdWljayBzdHlsZXMgZm9yIGEgY2FsbG91dCB1c2luZyBhIHNpbmdsZSBjb2xvciBhcyBhIGJhc2VsaW5lLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGNhbGxvdXQtYmFja2dyb3VuZF0gLSBDb2xvciB0byB1c2UuXG5AbWl4aW4gY2FsbG91dC1zdHlsZSgkY29sb3I6ICRjYWxsb3V0LWJhY2tncm91bmQpIHtcbiAgJGJhY2tncm91bmQ6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGNhbGxvdXQtYmFja2dyb3VuZC1mYWRlKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGJhY2tncm91bmQsICgkY2FsbG91dC1mb250LWNvbG9yLCAkY2FsbG91dC1mb250LWNvbG9yLWFsdCkpO1xufVxuXG5AbWl4aW4gY2FsbG91dC1zaXplKCRwYWRkaW5nKSB7XG4gIHBhZGRpbmctdG9wOiAkcGFkZGluZztcbiAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkZGluZztcbiAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbn1cblxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY2FsbG91dC5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRjYWxsb3V0LWJhY2tncm91bmRdIC0gQ29sb3IgdG8gdXNlLlxuQG1peGluIGNhbGxvdXQoJGNvbG9yOiAkY2FsbG91dC1iYWNrZ3JvdW5kKSB7XG4gIEBpbmNsdWRlIGNhbGxvdXQtYmFzZTtcbiAgQGluY2x1ZGUgY2FsbG91dC1zdHlsZSgkY29sb3IpO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jYWxsb3V0IHtcbiAgLmNhbGxvdXQge1xuICAgIEBpbmNsdWRlIGNhbGxvdXQ7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc3R5bGUoJGNvbG9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNtYWxsIHtcbiAgICAgIEBpbmNsdWRlIGNhbGxvdXQtc2l6ZSgwLjVyZW0pO1xuICAgIH1cblxuICAgICYubGFyZ2Uge1xuICAgICAgQGluY2x1ZGUgY2FsbG91dC1zaXplKDNyZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgY2xvc2UtYnV0dG9uXG4vLy8vXG5cbi8vLyBEZWZhdWx0IHBvc2l0aW9uIG9mIHRoZSBjbG9zZSBidXR0b24uIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgYHJpZ2h0YCBvciBgbGVmdGAsIGFuZCB0aGUgc2Vjb25kIHZhbHVlIHNob3VsZCBiZSBgdG9wYCBvciBgYm90dG9tYC5cbi8vLyBAdHlwZSBMaXN0XG4kY2xvc2VidXR0b24tcG9zaXRpb246IHJpZ2h0IHRvcCAhZGVmYXVsdDtcblxuLy8vIFJpZ2h0IChvciBsZWZ0KSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtaG9yaXpvbnRhbDogKFxuICBzbWFsbDogMC42NnJlbSxcbiAgbWVkaXVtOiAxcmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRvcCAob3IgYm90dG9tKSBvZmZzZXQocykgZm9yIGEgY2xvc2UgYnV0dG9uLlxuLy8vIEB0eXBlIE51bWJlcnxNYXBcbiRjbG9zZWJ1dHRvbi1vZmZzZXQtdmVydGljYWw6IChcbiAgc21hbGw6IDAuMzNlbSxcbiAgbWVkaXVtOiAwLjVyZW0sXG4pICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUocykgb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbi8vLyBAdHlwZSBOdW1iZXJ8TWFwXG4kY2xvc2VidXR0b24tc2l6ZTogKFxuICBzbWFsbDogMS41ZW0sXG4gIG1lZGl1bTogMmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsaW5lLWhlaWdodCBvZiB0aGUgY2xvc2UgYnV0dG9uLiBJdCBhZmZlY3RzIHRoZSBzcGFjaW5nIG9mIHRoZSBlbGVtZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQ6IDEgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSBjbG9zZSBidXR0b24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIGNsb3NlIGJ1dHRvbiB3aGVuIGJlaW5nIGhvdmVyZWQgb24uXG4vLy8gQHR5cGUgQ29sb3JcbiRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjogJGJsYWNrICFkZWZhdWx0O1xuXG5cbi8vLyBHZXQgdGhlIHNpemUgYW5kIHBvc2l0aW9uIGZvciBhIGNsb3NlIGJ1dHRvbi4gSWYgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkLiBJZiB0aGUgaW5wdXQgdmFsdWUgaXMgYSBjb25maWcgbWFwIGFuZCB0aGUgbWFwIGhhcyB0aGUga2V5IGAkc2l6ZWAsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJHZhbHVlIC0gQSBudW1iZXIgb3IgbWFwIHRoYXQgcmVwcmVzZW50cyB0aGUgc2l6ZSBvciBwb3NpdGlvbiB2YWx1ZShzKSBvZiB0aGUgY2xvc2UgYnV0dG9uLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBUaGUgc2l6ZSBvZiB0aGUgY2xvc2UgYnV0dG9uIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gVGhlIGdpdmVuIG51bWJlciBvciB0aGUgdmFsdWUgZm91bmQgaW4gdGhlIG1hcC5cbkBmdW5jdGlvbiAtemYtZ2V0LXNpemUtdmFsKCR2YWx1ZSwgJHNpemUpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIC8vIElmIGl0IGlzLCBqdXN0IHJldHVybiB0aGUgbnVtYmVyXG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgc2l6ZSBuYW1lIGV4aXN0cyBpbiB0aGUgdmFsdWUgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCR2YWx1ZSwgJHNpemUpIHtcbiAgICAvLyBJZiBpdCBkb2VzLCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCR2YWx1ZSwgJHNpemUpO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiBhIGNsb3NlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIFttZWRpdW1dIC0gVGhlIHNpemUgdG8gdXNlLiBTZXQgdG8gYHNtYWxsYCB0byBjcmVhdGUgYSBzbWFsbCBjbG9zZSBidXR0b24uIFRoZSAnbWVkaXVtJyB2YWx1ZXMgZGVmaW5lZCBpbiBgJGNsb3NlYnV0dG9uLSpgIHZhcmlhYmxlcyB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIGNsb3NlIGJ1dHRvbi5cbkBtaXhpbiBjbG9zZS1idXR0b24tc2l6ZSgkc2l6ZSkge1xuICAkeDogbnRoKCRjbG9zZWJ1dHRvbi1wb3NpdGlvbiwgMSk7XG4gICR5OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAyKTtcblxuICAjeyR4fTogLXpmLWdldC1zaXplLXZhbCgkY2xvc2VidXR0b24tb2Zmc2V0LWhvcml6b250YWwsICRzaXplKTtcbiAgI3skeX06IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLW9mZnNldC12ZXJ0aWNhbCwgJHNpemUpO1xuICBmb250LXNpemU6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLXNpemUsICRzaXplKTtcbiAgbGluZS1oZWlnaHQ6IC16Zi1nZXQtc2l6ZS12YWwoJGNsb3NlYnV0dG9uLWxpbmVoZWlnaHQsICRzaXplKTtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIGNsb3NlIGJ1dHRvbiwgdXNpbmcgdGhlIHN0eWxlcyBpbiB0aGUgc2V0dGluZ3MgdmFyaWFibGVzLlxuQG1peGluIGNsb3NlLWJ1dHRvbiB7XG4gICR4OiBudGgoJGNsb3NlYnV0dG9uLXBvc2l0aW9uLCAxKTtcbiAgJHk6IG50aCgkY2xvc2VidXR0b24tcG9zaXRpb24sIDIpO1xuXG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb2xvcjogJGNsb3NlYnV0dG9uLWNvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRjbG9zZWJ1dHRvbi1jb2xvci1ob3ZlcjtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1jbG9zZS1idXR0b24ge1xuICAuY2xvc2UtYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBjbG9zZS1idXR0b247XG5cbiAgICAmLnNtYWxsIHsgQGluY2x1ZGUgY2xvc2UtYnV0dG9uLXNpemUoc21hbGwpIH1cbiAgICAmLCAmLm1lZGl1bSB7IEBpbmNsdWRlIGNsb3NlLWJ1dHRvbi1zaXplKG1lZGl1bSkgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZW51XG4vLy8vXG5cbi8vLyBNYXJnaW4gb2YgYSBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gTGVmdC1oYW5kIG1hcmdpbiBvZiBhIG5lc3RlZCBtZW51LlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtbWFyZ2luLW5lc3RlZDogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGl0ZW1zIGluIGEgbWVudS5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZW51LWl0ZW0tcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tY29sb3ItYWN0aXZlOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGFuIGFjdGl2ZSBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU6IGdldC1jb2xvcihwcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgYmV0d2VlbiBhbiBpY29uIGFuZCB0ZXh0IGluIGEgbWVudSBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJG1lbnUtaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYW4gaG92ZXJlZCBtZW51IGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRtZW51LWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBmb3IgYm9yZGVyZWQgbWVudVxuLy8vIEB0eXBlIENvbG9yXG4kbWVudS1ib3JkZXI6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQ3JlYXRlcyB0aGUgYmFzZSBzdHlsZXMgZm9yIGEgTWVudS5cbkBtaXhpbiBtZW51LWJhc2Uge1xuICBtYXJnaW46ICRtZW51LW1hcmdpbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXMgYXJlIHRhYmxlIGNlbGwgdG8gYWxsb3cgZm9yIHZlcnRpY2FsIGFsaWdubWVudFxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBSZXNldCBsaW5lIGhlaWdodCB0byBtYWtlIHRoZSBoZWlnaHQgb2YgdGhlIG92ZXJhbGwgaXRlbSBlYXNpZXIgdG8gY2FsY3VsYXRlXG4gID4gbGkgPiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkbWVudS1pdGVtLXBhZGRpbmc7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyBSZXNldCBzdHlsZXMgb2YgaW5uZXIgZWxlbWVudHNcbiAgaW5wdXQsXG4gIHNlbGVjdCxcbiAgYSxcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi8vLyBFeHBhbmRzIHRoZSBpdGVtcyBvZiBhIE1lbnUsIHNvIGVhY2ggaXRlbSBpcyB0aGUgc2FtZSB3aWR0aC5cbkBtaXhpbiBtZW51LWV4cGFuZCB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgID4gbGkge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIH1cblxuICA+IGxpOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSBkaXJlY3Rpb24gb2YgYSBNZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpciBbaG9yaXpvbnRhbF0gLSBEaXJlY3Rpb24gb2YgdGhlIE1lbnUuIENhbiBiZSBgaG9yaXpvbnRhbGAgb3IgYHZlcnRpY2FsYC5cbkBtaXhpbiBtZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRkaXIgPT0gdmVydGljYWwge1xuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICA+IGxpIHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgPiBsaSAgPiBhIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIHNpbXBsZSBNZW51LCB3aGljaCBoYXMgbm8gcGFkZGluZyBvciBob3ZlciBzdGF0ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnUuIFNldCB0byBgbnVsbGAgdG8gZG8gbm90IGdlbmVyYXRlIHN0eWxlcyBmb3IgZGlyZWN0aW9uLlxuQG1peGluIG1lbnUtc2ltcGxlKCRkaXI6ICRnbG9iYWwtbGVmdCkge1xuICBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICBhIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgQGlmICRkaXIgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVudS1zaW1wbGUtZGlyZWN0aW9uKCRkaXIpO1xuICB9XG59XG5cbi8vLyBEaXJlY3Rpb24gbW9kaWZpZXIgZm9yIGEgc2ltcGxlIE1lbnVcbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRkaXIgWyRnbG9iYWwtbGVmdF0gLSBEaXJlY3Rpb24gb2YgdGhlIG1lbnVcbkBtaXhpbiBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGRpcjogJGdsb2JhbC1sZWZ0KSB7XG4gICRuby1tYXJnaW4tZGlyOiAkZGlyO1xuICAkbWFyZ2luLWRpcjogZGlyZWN0aW9uLW9wcG9zaXRlKCRkaXIpO1xuXG4gIGxpIHtcbiAgICBtYXJnaW4tI3skbm8tbWFyZ2luLWRpcn06IDA7XG4gICAgbWFyZ2luLSN7JG1hcmdpbi1kaXJ9OiBnZXQtc2lkZSgkbWVudS1pdGVtLXBhZGRpbmcsICRtYXJnaW4tZGlyKTtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgbmVzdGVkIE1lbnUsIGJ5IGFkZGluZyBgbWFyZ2luLWxlZnRgIHRvIHRoZSBtZW51LlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRwYWRkaW5nIFthdXRvXSAtIExlbmd0aCBvZiB0aGUgbWFyZ2luLlxuQG1peGluIG1lbnUtbmVzdGVkKCRtYXJnaW46ICRtZW51LW1hcmdpbi1uZXN0ZWQpIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG1hcmdpbjtcbn1cblxuLy8vIEFkZHMgc3VwcG9ydCBmb3IgaWNvbnMgdG8gTWVudSBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRwb3NpdGlvbiBbc2lkZV0gLSBQb3NpdGlvbmluZyBmb3IgaWNvbnMuIENhbiBiZSBgc2lkZWAgKGxlZnQsIG9yIHJpZ2h0IG9uIFJUTCkgb3IgYHRvcGAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IHRoZSBzaGFyZWQgQ1NTIGJldHdlZW4gc2lkZS0gYW5kIHRvcC1hbGlnbmVkIGljb25zIGZyb20gYmVpbmcgcHJpbnRlZC4gU2V0IHRoaXMgdG8gYGZhbHNlYCBpZiB5b3UncmUgY2FsbGluZyB0aGUgbWl4aW4gbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgZWxlbWVudC5cbkBtaXhpbiBtZW51LWljb25zKCRwb3NpdGlvbjogc2lkZSwgJGJhc2U6IHRydWUpIHtcbiAgQGlmICRiYXNlIHtcbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgID4gbGkgPiBhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBpbWcsXG4gICAgICAgIGksXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICsgc3BhbiB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkcG9zaXRpb24gPT0gc2lkZSB7XG4gICAgPiBsaSA+IGEge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgaW1nLFxuICAgICAgaSxcbiAgICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkbWVudS1pY29uLXNwYWNpbmc7XG5cbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICA+IGxpID4gYSB7XG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGltZyxcbiAgICAgIGksXG4gICAgICBzdmcge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG8gJG1lbnUtaWNvbi1zcGFjaW5nO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRtZW51LWljb24tc3BhY2luZztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1lbnUtdGV4dCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZzogJG1lbnUtaXRlbS1wYWRkaW5nO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lbnUge1xuICAubWVudSB7XG4gICAgQGluY2x1ZGUgbWVudS1iYXNlO1xuICAgIEBpbmNsdWRlIG1lbnUtaWNvbnM7XG5cbiAgICAvLyBEZWZhdWx0IG9yaWVudGF0aW9uOiBob3Jpem9udGFsXG4gICAgJiwgJi5ob3Jpem9udGFsIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuICAgIH1cblxuICAgIC8vIEV2ZW4td2lkdGggbW9kaWZpZXIgZm9yIGhvcml6b250YWwgb3JpZW50YXRpb25cbiAgICAmLmV4cGFuZGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtZXhwYW5kO1xuICAgIH1cblxuICAgIC8vIFZlcnRpY2FsIG9yaWVudGF0aW9uIG1vZGlmaWVyXG4gICAgJi52ZXJ0aWNhbCB7XG4gICAgICBAaW5jbHVkZSBtZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludCgkc21hbGw6IGZhbHNlKSB7XG4gICAgICAmLiN7JC16Zi1zaXplfS1ob3Jpem9udGFsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LWV4cGFuZGVkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1leHBhbmQ7XG4gICAgICB9XG5cbiAgICAgICYuI3skLXpmLXNpemV9LXZlcnRpY2FsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVudS1kaXJlY3Rpb24odmVydGljYWwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNpbXBsZVxuICAgICYuc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtc2ltcGxlO1xuXG4gICAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgICBAaW5jbHVkZSBtZW51LXNpbXBsZS1kaXJlY3Rpb24oJGdsb2JhbC1yaWdodCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxpZ24gcmlnaHRcbiAgICAmLmFsaWduLSN7JGdsb2JhbC1yaWdodH0ge1xuICAgICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgIGZsb2F0OiAkZ2xvYmFsLXJpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmVydGljYWwgaWNvbnNcbiAgICAmLmljb24tdG9wIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtaWNvbnModG9wLCAkYmFzZTogZmFsc2UpO1xuICAgICAgLy8gTWFrZSB2ZXJ0aWNhbCBtZW51IHdpdGggaWNvbnMgb24gdG9wIHdvcmtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICBhID4gc3BhbiB7XG4gICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTmVzdGluZ1xuICAgICYubmVzdGVkIHtcbiAgICAgIEBpbmNsdWRlIG1lbnUtbmVzdGVkO1xuICAgIH1cblxuICAgIC8vIEFjdGl2ZSBzdGF0ZVxuICAgIC5hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICRtZW51LWl0ZW0tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICBjb2xvcjogJG1lbnUtaXRlbS1jb2xvci1hY3RpdmU7XG4gICAgfVxuXG4gICAgLy8gTWVudSB3aXRoIGJvcmRlclxuICAgICYubWVudS1ib3JkZXJlZCB7XG4gICAgICBsaSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRtZW51LWJvcmRlcjtcbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lbnUgd2l0aCBiYWNrZ3JvdW5kIGhvdmVyXG4gICAgJi5tZW51LWhvdmVyIHtcbiAgICAgIGxpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtaXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZW51LXRleHQge1xuICAgIEBpbmNsdWRlIG1lbnUtdGV4dDtcbiAgfVxuXG4gIC8vIEFsaWduIGNlbnRlclxuICAubWVudS1jZW50ZXJlZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgPiAubWVudSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByZXZlbnQgRk9VQyB3aGVuIHVzaW5nIHRoZSBSZXNwb25zaXZlIE1lbnUgcGx1Z2luXG4gIC5uby1qcyBbZGF0YS1yZXNwb25zaXZlLW1lbnVdIHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCJAbWl4aW4gZm91bmRhdGlvbi1tZW51LWljb24ge1xuICAubWVudS1pY29uIHtcbiAgICBAaW5jbHVkZSBoYW1idXJnZXIoJGNvbG9yOiAkdGl0bGViYXItaWNvbi1jb2xvciwgJGNvbG9yLWhvdmVyOiAkdGl0bGViYXItaWNvbi1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAubWVudS1pY29uLmRhcmsge1xuICAgIEBpbmNsdWRlIGhhbWJ1cmdlcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJpbGxkb3duXG4vLy8vXG5cbi8vLyBUcmFuc2l0aW9uIHByb3BlcnR5IHRvIHVzZSBmb3IgYW5pbWF0aW5nIG1lbnVzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRkcmlsbGRvd24tdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciAhZGVmYXVsdDtcblxuLy8vIEFkZHMgYXJyb3dzIHRvIGRyaWxsZG93biBpdGVtcyB3aXRoIHN1Ym1lbnVzLCBhcyB3ZWxsIGFzIHRoZSBiYWNrIGJ1dHRvbi5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZHJpbGxkb3duLWFycm93czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJpbGxkb3duIGFycm93IGNvbG9yIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYXJyb3ctY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gU2V0cyBkcmlsbGRvd24gYXJyb3cgc2l6ZSBpZiBhcnJvdyBpcyB1c2VkLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyaWxsZG93bi1hcnJvdy1zaXplOiA2cHggIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBkcmlsbGRvd24gc3VibWVudXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkcmlsbGRvd24tYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudSB7XG4gIC8vIEFwcGxpZWQgdG8gdGhlIE1lbnUgY29udGFpbmVyXG4gIC5pcy1kcmlsbGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5hbmltYXRlLWhlaWdodCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMC41cztcbiAgICB9XG4gIH1cblxuICAvLyBBcHBsaWVkIHRvIG5lc3RlZCA8dWw+c1xuICAuaXMtZHJpbGxkb3duLXN1Ym1lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAxMDAlO1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGRyaWxsZG93bi1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zaXRpb246ICRkcmlsbGRvd24tdHJhbnNpdGlvbjtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IGx0ciwgLTEwMCUsIDEwMCUpKTtcbiAgICB9XG5cbiAgICAmLmlzLWNsb3Npbmcge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gbHRyLCAxMDAlLCAtMTAwJSkpO1xuICAgIH1cbiAgfVxuXG4gIC5kcmlsbGRvd24tc3VibWVudS1jb3Zlci1wcmV2aW91cyB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgfVxuXG4gIEBpZiAkZHJpbGxkb3duLWFycm93cyB7XG4gICAgLmlzLWRyaWxsZG93bi1zdWJtZW51LXBhcmVudCA+IGEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJpbGxkb3duLWFycm93LXNpemUsICRkcmlsbGRvd24tYXJyb3ctY29sb3IsICRnbG9iYWwtcmlnaHQpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMSAqICRkcmlsbGRvd24tYXJyb3ctc2l6ZTtcbiAgICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuanMtZHJpbGxkb3duLWJhY2sgPiBhOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcmlsbGRvd24tYXJyb3ctc2l6ZSwgJGRyaWxsZG93bi1hcnJvdy1jb2xvciwgJGdsb2JhbC1sZWZ0KTtcbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNzVyZW07IC8vIENyZWF0ZXMgc3BhY2UgYmV0d2VlbiB0aGUgYXJyb3cgYW5kIHRoZSB0ZXh0XG5cbiAgICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH0td2lkdGg6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBkcm9wZG93blxuLy8vL1xuXG4vLy8gUGFkZGluZyBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTGlzdFxuJGRyb3Bkb3duLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGZvciBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3duLWJhY2tncm91bmQ6ICRib2R5LWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgZm9yIGRyb3Bkb3duIHBhbmVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bi1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBXaWR0aCBmb3IgZHJvcGRvd24gcGFuZXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBkcm9wZG93biBwYW5lcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRkcm9wZG93bi1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gU2l6ZXMgZm9yIGRyb3Bkb3duIHBhbmVzLiBFYWNoIHNpemUgaXMgYSBDU1MgY2xhc3MgeW91IGNhbiBhcHBseS5cbi8vLyBAdHlwZSBNYXBcbiRkcm9wZG93bi1zaXplczogKFxuICB0aW55OiAxMDBweCxcbiAgc21hbGw6IDIwMHB4LFxuICBsYXJnZTogNDAwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIGEgYmFzaWMgZHJvcGRvd24uXG5AbWl4aW4gZHJvcGRvd24tY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6ICRkcm9wZG93bi13aWR0aDtcbiAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmc7XG5cbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRkcm9wZG93bi1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuXG4gIGZvbnQtc2l6ZTogJGRyb3Bkb3duLWZvbnQtc2l6ZTtcblxuICAmLmlzLW9wZW4ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZHJvcGRvd24ge1xuICAuZHJvcGRvd24tcGFuZSB7XG4gICAgQGluY2x1ZGUgZHJvcGRvd24tY29udGFpbmVyO1xuICB9XG5cbiAgQGVhY2ggJG5hbWUsICRzaXplIGluICRkcm9wZG93bi1zaXplcyB7XG4gICAgLmRyb3Bkb3duLXBhbmUuI3skbmFtZX0ge1xuICAgICAgd2lkdGg6ICRzaXplO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZHJvcGRvd24tbWVudVxuLy8vL1xuXG4vLy8gRW5hYmxlcyBhcnJvd3MgZm9yIGl0ZW1zIHdpdGggZHJvcGRvd24gbWVudXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGRyb3Bkb3dubWVudS1hcnJvd3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIGRyb3Bkb3duIG1lbnUgYXJyb3cgY29sb3IgaWYgYXJyb3cgaXMgdXNlZC5cbi8vLyBAdHlwZSBDb2xvclxuJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvcjogJGFuY2hvci1jb2xvciAhZGVmYXVsdDtcblxuLy8vIFNldHMgZHJvcGRvd24gbWVudSBhcnJvdyBzaXplIGlmIGFycm93IGlzIHVzZWQuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWFycm93LXNpemU6IDZweCAhZGVmYXVsdDtcblxuLy8vIE1pbmltdW0gd2lkdGggb2YgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExlbmd0aFxuJGRyb3Bkb3dubWVudS1taW4td2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgZHJvcGRvd25zLlxuLy8vIEB0eXBlIENvbG9yXG4kZHJvcGRvd25tZW51LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBmb3IgZHJvcGRvd24gc3ViLW1lbnVzLlxuLy8vIEB0eXBlIExpc3RcbiRkcm9wZG93bm1lbnUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLyBCb3JkZXIgd2lkdGggZm9yIGRyb3Bkb3duIHN1Yi1tZW51cy5cbi8vIFVzZWQgdG8gYWRqdXN0IHRvcCBtYXJnaW4gb2YgYSBzdWItbWVudSBpZiBhIGJvcmRlciBpcyB1c2VkLlxuLy8gQHR5cGUgTGVuZ3RoXG4kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aDogbnRoKCRkcm9wZG93bm1lbnUtYm9yZGVyLCAxKTtcblxuQG1peGluIGxlZnQtcmlnaHQtYXJyb3dzIHtcbiAgPiBhOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLXJpZ2h0fTogMTRweDtcbiAgfVxuXG4gICYub3BlbnMtbGVmdCA+IGE6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJGRyb3Bkb3dubWVudS1hcnJvdy1zaXplLCAkZHJvcGRvd25tZW51LWFycm93LWNvbG9yLCBsZWZ0KTtcbiAgfVxuXG4gICYub3BlbnMtcmlnaHQgPiBhOjphZnRlciB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSwgJGRyb3Bkb3dubWVudS1hcnJvdy1jb2xvciwgcmlnaHQpO1xuICB9XG59XG5cbkBtaXhpbiBkcm9wZG93bi1tZW51LWRpcmVjdGlvbigkZGlyOiBob3Jpem9udGFsKSB7XG4gIEBpZiAkZGlyID09IGhvcml6b250YWwge1xuICAgID4gbGkub3BlbnMtbGVmdCB7XG4gICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGxpLm9wZW5zLXJpZ2h0IHtcbiAgICAgID4gLmlzLWRyb3Bkb3duLXN1Ym1lbnUge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICA+IGxpLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50ID4gYSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAxLjVyZW07XG4gICAgICB9XG5cbiAgICAgID4gbGkuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQgPiBhOjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIGNzcy10cmlhbmdsZSgkZHJvcGRvd25tZW51LWFycm93LXNpemUsICRkcm9wZG93bm1lbnUtYXJyb3ctY29sb3IsIGRvd24pO1xuICAgICAgICAjeyRnbG9iYWwtcmlnaHR9OiA1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xICogKCRkcm9wZG93bm1lbnUtYXJyb3ctc2l6ZSAvIDIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZGlyID09IHZlcnRpY2FsIHtcbiAgICA+IGxpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAmLm9wZW5zLWxlZnQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYub3BlbnMtcmlnaHQge1xuICAgICAgICA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICBsZWZ0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gJ1RoZSBkaXJlY3Rpb24gdXNlZCBmb3IgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oKSBtdXN0IGJlIGhvcml6b250YWwgb3IgdmVydGljYWwuJztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1kcm9wZG93bi1tZW51IHtcbiAgLmRyb3Bkb3duLm1lbnUge1xuICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKGhvcml6b250YWwpO1xuXG4gICAgYSB7XG4gICAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgfVxuXG4gICAgLm5vLWpzICYgdWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLnZlcnRpY2FsIHtcbiAgICAgIEBpbmNsdWRlIGRyb3Bkb3duLW1lbnUtZGlyZWN0aW9uKHZlcnRpY2FsKTtcbiAgICB9XG5cbiAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgICAgICAmLiN7JHNpemV9LWhvcml6b250YWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZHJvcGRvd24tbWVudS1kaXJlY3Rpb24oaG9yaXpvbnRhbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi4jeyRzaXplfS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkcm9wZG93bi1tZW51LWRpcmVjdGlvbih2ZXJ0aWNhbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGlnbi1yaWdodCB7XG4gICAgICAuaXMtZHJvcGRvd24tc3VibWVudS5maXJzdC1zdWIge1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pcy1kcm9wZG93bi1tZW51LnZlcnRpY2FsIHtcbiAgICB3aWR0aDogMTAwcHg7XG5cbiAgICAmLmFsaWduLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudS1wYXJlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGE6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgI3skZ2xvYmFsLXJpZ2h0fTogNXB4O1xuICAgICAgbWFyZ2luLXRvcDogLTEgKiAkZHJvcGRvd25tZW51LWFycm93LXNpemU7XG4gICAgfVxuXG4gICAgJi5vcGVucy1pbm5lciA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcblxuICAgICAgdG9wOiAxMDAlO1xuICAgICAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gJ3J0bCcge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm9wZW5zLWxlZnQgPiAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgICByaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJi5vcGVucy1yaWdodCA+IC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAuaXMtZHJvcGRvd24tc3VibWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDEwMCU7XG4gICAgei1pbmRleDogMTtcblxuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAkZHJvcGRvd25tZW51LW1pbi13aWR0aDtcblxuICAgIGJvcmRlcjogJGRyb3Bkb3dubWVudS1ib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3dubWVudS1iYWNrZ3JvdW5kO1xuXG4gICAgLmlzLWRyb3Bkb3duLXN1Ym1lbnUtcGFyZW50IHtcbiAgICAgIEBpZiAkZHJvcGRvd25tZW51LWFycm93cyB7XG4gICAgICAgIEBpbmNsdWRlIGxlZnQtcmlnaHQtYXJyb3dzO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAodHlwZS1vZigkZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCkgPT0gJ251bWJlcicpIHtcbiAgICAgIC5pcy1kcm9wZG93bi1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogKC0kZHJvcGRvd25tZW51LWJvcmRlci13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBsaSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBbVE9ET10gQ3V0IGJhY2sgc3BlY2lmaWNpdHlcbiAgICAvLyY6bm90KC5qcy1kcm9wZG93bi1ub2hvdmVyKSA+IC5pcy1kcm9wZG93bi1zdWJtZW51LXBhcmVudDpob3ZlciA+ICYsIC8vIHdoeSBpcyB0aGlzIGxpbmUgbmVlZGVkPyBPcGVuaW5nIGlzIGhhbmRsZWQgYnkgSlMgYW5kIHRoaXMgY2F1c2VzIHNvbWUgdWdseSBmbGlja2VyaW5nIHdoZW4gdGhlIHN1YiBpcyByZS1wb3NpdGlvbmVkIGF1dG9tYXRpY2FsbHkuLi5cbiAgICAmLmpzLWRyb3Bkb3duLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHJlc3BvbnNpdmUtZW1iZWRcbi8vLy9cblxuLy8vIE1hcmdpbiBiZWxvdyBhIHJlc3BvbnNpdmUgZW1iZWQgY29udGFpbmVyLlxuLy8vIEB0eXBlIE51bWJlclxuJHJlc3BvbnNpdmUtZW1iZWQtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gQXNwZWN0IHJhdGlvcyB1c2VkIHRvIGRldGVybWluZSBwYWRkaW5nLWJvdHRvbSBvZiByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lcnMuXG4vLy8gQHR5cGUgTWFwXG4kcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3M6IChcbiAgZGVmYXVsdDogNCBieSAzLFxuICB3aWRlc2NyZWVuOiAxNiBieSA5LFxuKSAhZGVmYXVsdDtcblxuLy8vIENyZWF0ZXMgYSByZXNwb25zaXZlIGVtYmVkIGNvbnRhaW5lci5cbi8vLyBAcGFyYW0ge1N0cmluZ3xMaXN0fSAkcmF0aW8gW2RlZmF1bHRdIC0gUmF0aW8gb2YgdGhlIGNvbnRhaW5lci4gQ2FuIGJlIGEga2V5IGZyb20gdGhlIGAkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3NgIG1hcCBvciBhIGxpc3QgZm9ybWF0dGVkIGFzIGB4IGJ5IHlgLlxuQG1peGluIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KSB7XG4gIEBpZiB0eXBlLW9mKCRyYXRpbykgPT0gJ3N0cmluZycge1xuICAgICRyYXRpbzogbWFwLWdldCgkcmVzcG9uc2l2ZS1lbWJlZC1yYXRpb3MsICRyYXRpbyk7XG4gIH1cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRyZXNwb25zaXZlLWVtYmVkLW1hcmdpbi1ib3R0b207XG4gIHBhZGRpbmctYm90dG9tOiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgaWZyYW1lLFxuICBvYmplY3QsXG4gIGVtYmVkLFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICAjeyRnbG9iYWwtbGVmdH06IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQge1xuICAucmVzcG9uc2l2ZS1lbWJlZCxcbiAgLmZsZXgtdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQoJHJhdGlvOiBkZWZhdWx0KTtcblxuICAgICRyYXRpb3M6IG1hcC1yZW1vdmUoJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW9zLGRlZmF1bHQpO1xuXG4gICAgQGVhY2ggJG5hbWUsICRyYXRpbyBpbiAkcmF0aW9zIHtcbiAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogcmF0aW8tdG8tcGVyY2VudGFnZSgkcmF0aW8pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LXZpZGVvIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkKCkuIGZvdW5kYXRpb24tZmxleC12aWRlbygpIHdpbGwgYmUgcmVtb3ZlZCBpbiBGb3VuZGF0aW9uIDYuNC4nO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG59XG5cbkBtaXhpbiBmbGV4LXZpZGVvKCRyYXRpbzogJHJlc3BvbnNpdmUtZW1iZWQtcmF0aW8pIHtcbiAgQHdhcm4gJ1RoaXMgbWl4aW4gaXMgYmVpbmcgcmVwbGFjZWQgYnkgcmVzcG9uc2l2ZS1lbWJlZCgpLiBmbGV4LXZpZGVvKCkgd2lsbCBiZSByZW1vdmVkIGluIEZvdW5kYXRpb24gNi40Lic7XG4gIEBpbmNsdWRlIHJlc3BvbnNpdmUtZW1iZWQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8vIEZpbmRzIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gaW50ZWdlcnMuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGEgLSBGaXJzdCBudW1iZXIgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGIgLSBTZWNvbmQgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3IuXG5AZnVuY3Rpb24gZ2NkKCRhLCAkYikge1xuICAvLyBGcm9tOiBodHRwOi8vcm9zZXR0YWNvZGUub3JnL3dpa2kvR3JlYXRlc3RfY29tbW9uX2Rpdmlzb3IjSmF2YVNjcmlwdFxuICBAaWYgKCRiICE9IDApIHtcbiAgICBAcmV0dXJuIGdjZCgkYiwgJGEgJSAkYik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gYWJzKCRhKTtcbiAgfVxufVxuXG4vLy8gSGFuZGxlcyBkZWNpbWFsIGV4cG9uZW50cyBieSB0cnlpbmcgdG8gY29udmVydCB0aGVtIGludG8gYSBmcmFjdGlvbiBhbmQgdGhlbiB1c2UgYSBudGgtcm9vdC1hbGdvcml0aG0gZm9yIHBhcnRzIG9mIHRoZSBjYWxjdWxhdGlvblxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIC0gVGhlIGJhc2UgbnVtYmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZXhwb25lbnQgLSBUaGUgZXhwb25lbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZXhwb25lbnRpYXRpb24uXG5AZnVuY3Rpb24gcG93KCRiYXNlLCAkZXhwb25lbnQsICRwcmVjOiAxMikge1xuICBAaWYgKGZsb29yKCRleHBvbmVudCkgIT0gJGV4cG9uZW50KSB7XG4gICAgJHByZWMyIDogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgJGV4cG9uZW50IC8gJGRlbm9taW5hdG9yKSwgJHByZWMyIC8gJGRlbm9taW5hdG9yLCAkcHJlYyk7XG4gIH1cblxuICAkdmFsdWU6ICRiYXNlO1xuICBAaWYgJGV4cG9uZW50ID4gMSB7XG4gICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCAkZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiAkYmFzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGV4cG9uZW50IDwgMSB7XG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAtJGV4cG9uZW50IHtcbiAgICAgICR2YWx1ZTogJHZhbHVlIC8gJGJhc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiAxIC8gJG4gKiAoKCRuIC0gMSkgKiAkeCArICgkbnVtIC8gcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiAkaCAvICR3ICogMTAwJTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGxhYmVsXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGNvbG9yIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRsYWJlbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRlIHRleHQgY29sb3IgZm9yIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGxhYmVsLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JpbmcgY2xhc3Nlcy4gQSBtYXAgb2YgY2xhc3NlcyB0byBvdXRwdXQgaW4geW91ciBDU1MsIGxpa2UgYC5zZWNvbmRhcnlgLCBgLnN1Y2Nlc3NgLCBhbmQgc28gb24uXG4vLy8gQHR5cGUgTWFwXG4kbGFiZWwtcGFsZXR0ZTogJGZvdW5kYXRpb24tcGFsZXR0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGFiZWwtZm9udC1zaXplOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1wYWRkaW5nOiAwLjMzMzMzcmVtIDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIG9mIGxhYmVscy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsYWJlbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGJhc2Ugc3R5bGVzIGZvciBhIGxhYmVsLlxuQG1peGluIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkbGFiZWwtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkbGFiZWwtcmFkaXVzO1xuXG4gIGZvbnQtc2l6ZTogJGxhYmVsLWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tbGFiZWwge1xuICAubGFiZWwge1xuICAgIEBpbmNsdWRlIGxhYmVsO1xuXG4gICAgYmFja2dyb3VuZDogJGxhYmVsLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGxhYmVsLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICAgICAgY29sb3I6IGNvbG9yLXBpY2stY29udHJhc3QoJGNvbG9yLCAoJGxhYmVsLWNvbG9yLCAkbGFiZWwtY29sb3ItYWx0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBtZWRpYS1vYmplY3Rcbi8vLy9cblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgYSBtZWRpYSBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTogJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9uIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmc6ICRnbG9iYWwtcGFkZGluZyAhZGVmYXVsdDtcblxuLy8vIFdpZHRoIG9mIGltYWdlcyB3aXRoaW4gYSBtZWRpYSBvYmplY3QsIHdoZW4gdGhlIG9iamVjdCBpcyBzdGFja2VkIHZlcnRpY2FsbHkuIFNldCB0byAnYXV0bycgdG8gdXNlIHRoZSBpbWFnZSdzIG5hdHVyYWwgd2lkdGguXG4vLy8gQHR5cGUgTnVtYmVyXG4kbWVkaWFvYmplY3QtaW1hZ2Utd2lkdGgtc3RhY2tlZDogMTAwJSAhZGVmYXVsdDtcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIG1lZGlhIG9iamVjdCBjb250YWluZXIuXG5AbWl4aW4gbWVkaWEtb2JqZWN0LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgYmxvY2spO1xuICBtYXJnaW4tYm90dG9tOiAkbWVkaWFvYmplY3QtbWFyZ2luLWJvdHRvbTtcblxuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHNlY3Rpb25zIHdpdGhpbiBhIG1lZGlhIG9iamVjdC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHBhZGRpbmcgWyRtZWRpYW9iamVjdC1zZWN0aW9uLXBhZGRpbmddIC0gUGFkZGluZyBiZXR3ZWVuIHNlY3Rpb25zLlxuQG1peGluIG1lZGlhLW9iamVjdC1zZWN0aW9uKCRwYWRkaW5nOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nKSB7XG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLSN7JGdsb2JhbC1yaWdodH06ICRwYWRkaW5nO1xuICB9XG5cbiAgJjpsYXN0LWNoaWxkOm5vdCg6bnRoLWNoaWxkKDIpKSB7XG4gICAgcGFkZGluZy0jeyRnbG9iYWwtbGVmdH06ICRwYWRkaW5nO1xuICB9XG5cbiAgPiA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vLy8gQWRkcyBzdHlsZXMgdG8gc3RhY2sgc2VjdGlvbnMgb2YgYSBtZWRpYSBvYmplY3QuIEFwcGx5IHRoaXMgdG8gdGhlIHNlY3Rpb24gZWxlbWVudHMsIG5vdCB0aGUgY29udGFpbmVyLlxuQG1peGluIG1lZGlhLW9iamVjdC1zdGFjayB7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkbWVkaWFvYmplY3Qtc2VjdGlvbi1wYWRkaW5nO1xuXG4gIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6ICRtZWRpYW9iamVjdC1pbWFnZS13aWR0aC1zdGFja2VkO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdCB7XG4gIC5tZWRpYS1vYmplY3Qge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1jb250YWluZXI7XG5cbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgJi5zdGFjay1mb3ItI3skLXpmLXplcm8tYnJlYWtwb2ludH0ge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtemVyby1icmVha3BvaW50IG9ubHkpIHtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnN0YWNrLWZvci0jeyQtemYtemVyby1icmVha3BvaW50fSAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXplcm8tYnJlYWtwb2ludCBvbmx5KSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWVkaWEtb2JqZWN0LXNlY3Rpb24ge1xuICAgIEBpbmNsdWRlIG1lZGlhLW9iamVjdC1zZWN0aW9uO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICAmLm1haW4tc2VjdGlvbiB7XG4gICAgICAgIGZsZXg6IDEgMSAwcHg7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgemVyby11bml0XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICYubWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJi5ib3R0b20ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgb2ZmLWNhbnZhc1xuLy8vL1xuXG4vLy8gV2lkdGggb2YgYSBsZWZ0L3JpZ2h0IG9mZi1jYW52YXMgcGFuZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb2ZmY2FudmFzLXNpemU6IDI1MHB4ICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgdG9wL2JvdHRvbSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy12ZXJ0aWNhbC1zaXplOiAyNTBweCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgZm9yIHRoZSBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIFNoYWRvd1xuJG9mZmNhbnZhcy1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoJGJsYWNrLCAwLjcpICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHdpdGggdGhlIGBwdXNoYCB0cmFuc2l0aW9uLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1wdXNoLXppbmRleDogMSAhZGVmYXVsdDtcblxuLy8vIFotaW5kZXggb2YgYW4gb2ZmLWNhbnZhcyBwYW5lbCB3aXRoIHRoZSBgb3ZlcmxhcGAgdHJhbnNpdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtb3ZlcmxhcC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gWi1pbmRleCBvZiBhbiBvZmYtY2FudmFzIHBhbmVsIHVzaW5nIHRoZSBgcmV2ZWFsLWZvci0qYCBjbGFzc2VzIG9yIG1peGluLlxuLy8vIEB0eXBlIE51bWJlclxuJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4OiAxICFkZWZhdWx0O1xuXG4vLy8gTGVuZ3RoIG9mIHRoZSBhbmltYXRpb24gb24gYW4gb2ZmLWNhbnZhcyBwYW5lbC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGg6IDAuNXMgIWRlZmF1bHQ7XG5cbi8vLyBUaW1pbmcgZnVuY3Rpb24gb2YgdGhlIGFuaW1hdGlvbiBvbiBhbiBvZmYtY2FudmFzIHBhbmVsLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmc6IGVhc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGEgcmV2ZWFsZWQgb2ZmLWNhbnZhcyB3aWxsIGJlIGZpeGVkLXBvc2l0aW9uLCBhbmQgc2Nyb2xsIHdpdGggdGhlIHNjcmVlbi5cbi8vLyBAdHlwZSBCb29sXG4kb2ZmY2FudmFzLWZpeGVkLXJldmVhbDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBvdmVybGF5IHRoYXQgYXBwZWFycyB3aGVuIGFuIG9mZi1jYW52YXMgcGFuZWwgaXMgb3Blbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLCAwLjI1KSAhZGVmYXVsdDtcblxuLy8vIENTUyBjbGFzcyB1c2VkIGZvciB0aGUgbWFpbiBjb250ZW50IGFyZWEuIFRoZSBvZmYtY2FudmFzIG1peGlucyB1c2UgdGhpcyB0byB0YXJnZXQgdGhlIHBhZ2UgY29udGVudC5cbiRtYWluY29udGVudC1jbGFzczogJ29mZi1jYW52YXMtY29udGVudCcgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIGJhc2VsaW5lIHN0eWxlcyBmb3Igb2ZmLWNhbnZhcy4gVGhpcyBDU1MgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgb3RoZXIgcGllY2VzIHdvcmsuXG5AbWl4aW4gb2ZmLWNhbnZhcy1iYXNpY3Mge1xuICAvLyBIaWRlcyBvdmVyZmxvdyBvbiBib2R5IHdoZW4gYW4gb2ZmLWNhbnZhcyBwYW5lbCBpcyBvcGVuLlxuICAuaXMtb2ZmLWNhbnZhcy1vcGVuIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBvdmVybGF5IChnZW5lcmF0ZWQgYnkgSmF2YVNjcmlwdClcbiAgLmpzLW9mZi1jYW52YXMtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkb2ZmY2FudmFzLXRyYW5zaXRpb24tbGVuZ3RoICRvZmZjYW52YXMtdHJhbnNpdGlvbi10aW1pbmcsIHZpc2liaWxpdHkgJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuXG4gICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy1leGl0LWJhY2tncm91bmQ7XG5cbiAgICBvcGFjaXR5OiAwO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmLmlzLXZpc2libGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgJi5pcy1jbG9zYWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi5pcy1vdmVybGF5LWFic29sdXRlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gICAgXG4gICAgJi5pcy1vdmVybGF5LWZpeGVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkcyBiYXNpYyBzdHlsZXMgZm9yIGFuIG9mZi1jYW52YXMgd3JhcHBlci5cbkBtaXhpbiBvZmYtY2FudmFzLXdyYXBwZXIoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8vIEFkZHMgYmFzaWMgc3R5bGVzIGZvciBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtYmFzZShcbiAgJGJhY2tncm91bmQ6ICRvZmZjYW52YXMtYmFja2dyb3VuZCxcbiAgJHRyYW5zaXRpb246ICRvZmZjYW52YXMtdHJhbnNpdGlvbi1sZW5ndGggJG9mZmNhbnZhcy10cmFuc2l0aW9uLXRpbWluZyxcbiAgJGZpeGVkOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuXG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICB6LWluZGV4OiAkb2ZmY2FudmFzLXB1c2gtemluZGV4O1xuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuXG4gIC8vIE92ZXJsYXAgb25seSBzdHlsZXMuXG4gICYuaXMtdHJhbnNpdGlvbi1vdmVybGFwIHtcbiAgICB6LWluZGV4OiAkb2ZmY2FudmFzLW92ZXJsYXAtemluZGV4O1xuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJveC1zaGFkb3c6ICRvZmZjYW52YXMtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldHMgdHJhbnNmb3JtIHRvIDAgdG8gc2hvdyBhbiBvZmYtY2FudmFzIHBhbmVsLlxuICAmLmlzLW9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0byBwb3NpdGlvbiBhbiBvZmYtY2FudmFzIHBhbmVsIHRvIHRoZSBsZWZ0L3JpZ2h0L3RvcC9ib3R0b20uXG5AbWl4aW4gb2ZmLWNhbnZhcy1wb3NpdGlvbihcbiAgJHBvc2l0aW9uOiBsZWZ0LFxuICAkb3JpZW50YXRpb246IGhvcml6b250YWwsXG4gICRzaXplOiBpZigkb3JpZW50YXRpb24gPT0gaG9yaXpvbnRhbCwgJG9mZmNhbnZhcy1zaXplLCAkb2ZmY2FudmFzLXZlcnRpY2FsLXNpemUpXG4pIHtcbiAgQGlmICRwb3NpdGlvbiA9PSBsZWZ0IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kc2l6ZSk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gcmlnaHQge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzaXplKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtJHNpemUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHNpemU7XG5cbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgLy8gU2V0cyB0aGUgb3BlbiBwb3NpdGlvbiBmb3IgdGhlIGNvbnRlbnRcbiAgICAmLmlzLW9wZW4gfiAuI3skbWFpbmNvbnRlbnQtY2xhc3N9IHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkc2l6ZSk7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgIC8vIFNldHMgdGhlIG9wZW4gcG9zaXRpb24gZm9yIHRoZSBjb250ZW50XG4gICAgJi5pcy1vcGVuIH4gLiN7JG1haW5jb250ZW50LWNsYXNzfSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiAkb2ZmY2FudmFzLXNoYWRvdyBpcyBzZXQsIGFkZCBpdCBhcyBhIHBzZXVkby1lbGVtZW50LlxuICAvLyBUaGlzIG1pbWljcyB0aGUgb2ZmLWNhbnZhcyBwYW5lbCBoYXZpbmcgYSBsb3dlciB6LWluZGV4LCB3aXRob3V0IGhhdmluZyB0byBoYXZlIG9uZS5cbiAgQGlmICRvZmZjYW52YXMtc2hhZG93IHtcbiAgICAmLmlzLXRyYW5zaXRpb24tcHVzaDo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgICBAaWYgJHBvc2l0aW9uID09IGxlZnQge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSByaWdodCB7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gdG9wIHtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRwb3NpdGlvbiA9PSBib3R0b20ge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBib3gtc2hhZG93OiAkb2ZmY2FudmFzLXNoYWRvdztcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5vIHRyYW5zZm9ybSBvbiBvdmVybGFwIHRyYW5zaXRpb25cbiAgJi5pcy10cmFuc2l0aW9uLW92ZXJsYXAuaXMtb3BlbiB+IC4jeyRtYWluY29udGVudC1jbGFzc30ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgc3R5bGVzIGZvciB0aGUgY29udGVudCBjb250YWluZXIuXG5AbWl4aW4gb2ZmLWNhbnZhcy1jb250ZW50KCkge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10cmFuc2l0aW9uLWxlbmd0aCAkb2ZmY2FudmFzLXRyYW5zaXRpb24tdGltaW5nO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyB0aGF0IHJldmVhbCBhbiBvZmYtY2FudmFzIHBhbmVsLlxuQG1peGluIG9mZi1jYW52YXMtcmV2ZWFsKFxuJHBvc2l0aW9uOiBsZWZ0LFxuJHppbmRleDogJG9mZmNhbnZhcy1yZXZlYWwtemluZGV4LFxuJGNvbnRlbnQ6ICRtYWluY29udGVudC1jbGFzc1xuKSB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbiAgei1pbmRleDogJHppbmRleDtcblxuICBAaWYgbm90ICRvZmZjYW52YXMtZml4ZWQtcmV2ZWFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cblxuICAmIH4gLiN7JGNvbnRlbnR9IHtcbiAgICBtYXJnaW4tI3skcG9zaXRpb259OiAkb2ZmY2FudmFzLXNpemU7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tb2ZmLWNhbnZhcyB7XG4gIEBpbmNsdWRlIG9mZi1jYW52YXMtYmFzaWNzO1xuXG4gIC8vIE9mZi1jYW52YXMgd3JhcHBlclxuICAub2ZmLWNhbnZhcy13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLXdyYXBwZXI7XG4gIH1cblxuICAvLyBPZmYtY2FudmFzIGNvbnRhaW5lclxuICAub2ZmLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBjb250YWluZXIgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvblxuICAub2ZmLWNhbnZhcy1hYnNvbHV0ZSB7XG4gICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1iYXNlKCRmaXhlZDogZmFsc2UpO1xuICB9XG5cbiAgLy8gT2ZmLWNhbnZhcyBwb3NpdGlvbiBjbGFzc2VzXG4gIC5wb3NpdGlvbi1sZWZ0ICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihsZWZ0LCAgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi1yaWdodCAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbihyaWdodCwgIGhvcml6b250YWwpOyB9XG4gIC5wb3NpdGlvbi10b3AgICAgIHsgQGluY2x1ZGUgb2ZmLWNhbnZhcy1wb3NpdGlvbih0b3AsICAgIHZlcnRpY2FsKTsgfVxuICAucG9zaXRpb24tYm90dG9tICB7IEBpbmNsdWRlIG9mZi1jYW52YXMtcG9zaXRpb24oYm90dG9tLCB2ZXJ0aWNhbCk7IH1cblxuICAub2ZmLWNhbnZhcy1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBvZmYtY2FudmFzLWNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXZlYWwgb2ZmLWNhbnZhcyBwYW5lbCBvbiBsYXJnZXIgc2NyZWVuc1xuICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkbmFtZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRuYW1lKSB7XG4gICAgICAgIC5wb3NpdGlvbi1sZWZ0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBvc2l0aW9uLXJpZ2h0LnJldmVhbC1mb3ItI3skbmFtZX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG9mZi1jYW52YXMtcmV2ZWFsKHJpZ2h0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi10b3AucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwodG9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wb3NpdGlvbi1ib3R0b20ucmV2ZWFsLWZvci0jeyRuYW1lfSB7XG4gICAgICAgICAgQGluY2x1ZGUgb2ZmLWNhbnZhcy1yZXZlYWwoYm90dG9tKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBvcmJpdFxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgT3JiaXQncyBidWxsZXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtYnVsbGV0LWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYWN0aXZlIGNvbG9yIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRvcmJpdC1idWxsZXQtYmFja2dyb3VuZC1hY3RpdmU6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpYW1ldGVyIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LWRpYW1ldGVyOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBiZXR3ZWVuIE9yYml0J3MgYnVsbGV0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1idWxsZXQtbWFyZ2luOiAwLjFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGRpc3RhbmNlIGZyb20gc2xpZGUgcmVnaW9uIGZvciBPcmJpdCdzIGJ1bGxldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtYnVsbGV0LW1hcmdpbi10b3A6IDAuOHJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBmcm9tIE9yYml0J3MgYnVsbGV0cyB0byB3aGF0ZXZlciBjb250ZW50IG1heSBsdXJrIGJlbG93IGl0LlxuLy8vIEB0eXBlIE51bWJlclxuJG9yYml0LWJ1bGxldC1tYXJnaW4tYm90dG9tOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBDb2xvclxuJG9yYml0LWNhcHRpb24tYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIDAuNSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgZm9yIE9yYml0J3MgY2FwdGlvbi5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jYXB0aW9uLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3IgZm9yIE9yYml0J3MgY29udHJvbHMgd2hlbiBob3ZlcmVkLlxuLy8vIEB0eXBlIENvbG9yXG4kb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyOiByZ2JhKCRibGFjaywgMC41KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgT3JiaXQncyBjb250cm9scy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRvcmJpdC1jb250cm9sLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHotaW5kZXggZm9yIE9yYml0J3MgY29udHJvbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kb3JiaXQtY29udHJvbC16aW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBvdXRlciBPcmJpdCB3cmFwcGVyLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXRgIGNsYXNzLlxuQG1peGluIG9yYml0LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIE9yYml0IHNsaWRlIGNvbnRhaW5lci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWNvbnRhaW5lcmAgY2xhc3MuXG5AbWl4aW4gb3JiaXQtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDA7IC8vIFByZXZlbnQgRk9VQyBieSBub3Qgc2hvd2luZyB1bnRpbCBKUyBzZXRzIGhlaWdodFxuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluZGl2aWR1YWwgc2xpZGVzIG9mIGFuIE9yYml0IHNsaWRlci4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXNsaWRlYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1zbGlkZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYubm8tbW90aW9udWkge1xuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBvcmJpdC1maWd1cmUge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzbGlkZSBjb250YWluaW5nIGFuIGltYWdlLiBUaGVzZSBzdHlsZXMgYXJlIHVzZWQgb24gdGhlIGAub3JiaXQtaW1hZ2VgIGNsYXNzLlxuQG1peGluIG9yYml0LWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGFuIG9yYml0IHNsaWRlIGNhcHRpb24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1jYXB0aW9uYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAkb3JiaXQtY2FwdGlvbi1wYWRkaW5nO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQ7XG4gIGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRvcmJpdC1jYXB0aW9uLWJhY2tncm91bmQpO1xufVxuXG4vLy8gQWRkcyBiYXNlIHN0eWxlcyBmb3IgdGhlIG5leHQvcHJldmlvdXMgYnV0dG9ucyBpbiBhbiBPcmJpdCBzbGlkZXIuIFRoZXNlIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlIGAub3JiaXQtbmV4dGAgYW5kIGAub3JiaXQtcHJldmlvdXNgIGNsYXNzZXMgaW4gdGhlIGRlZmF1bHQgQ1NTLlxuQG1peGluIG9yYml0LWNvbnRyb2wge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgei1pbmRleDogJG9yYml0LWNvbnRyb2wtemluZGV4O1xuICBwYWRkaW5nOiAkb3JiaXQtY29udHJvbC1wYWRkaW5nO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtY29udHJvbC1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LXByZXZpb3VzYCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1wcmV2aW91cyB7XG4gICN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgT3JiaXQgbmV4dCBidXR0b24uIFRoZXNlIHN0eWxlcyBhcmUgdXNlZCBvbiB0aGUgYC5vcmJpdC1uZXh0YCBjbGFzcy5cbkBtaXhpbiBvcmJpdC1uZXh0IHtcbiAgI3skZ2xvYmFsLWxlZnR9OiBhdXRvO1xuICAjeyRnbG9iYWwtcmlnaHR9OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgY29udGFpbmVyIG9mIE9yYml0IGJ1bGxldHMuIC8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIE9yYml0IHByZXZpb3VzIGJ1dHRvbi4gVGhlc2Ugc3R5bGVzIGFyZSB1c2VkIG9uIHRoZSBgLm9yYml0LWJ1bGxldHNgIGNsYXNzLlxuQG1peGluIG9yYml0LWJ1bGxldHMge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogJG9yYml0LWJ1bGxldC1tYXJnaW4tdG9wO1xuICBtYXJnaW4tYm90dG9tOiAkb3JiaXQtYnVsbGV0LW1hcmdpbi1ib3R0b207XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBidXR0b24ge1xuICAgIHdpZHRoOiAkb3JiaXQtYnVsbGV0LWRpYW1ldGVyO1xuICAgIGhlaWdodDogJG9yYml0LWJ1bGxldC1kaWFtZXRlcjtcbiAgICBtYXJnaW46ICRvcmJpdC1idWxsZXQtbWFyZ2luO1xuXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRvcmJpdC1idWxsZXQtYmFja2dyb3VuZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYml0LWJ1bGxldC1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JiaXQtYnVsbGV0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1vcmJpdCB7XG4gIC5vcmJpdCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtd3JhcHBlcjtcbiAgfVxuXG4gIC5vcmJpdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG9yYml0LWNvbnRhaW5lcjtcbiAgfVxuXG4gIC5vcmJpdC1zbGlkZSB7XG4gICAgQGluY2x1ZGUgb3JiaXQtc2xpZGU7XG4gIH1cblxuICAub3JiaXQtZmlndXJlIHtcbiAgICBAaW5jbHVkZSBvcmJpdC1maWd1cmU7XG4gIH1cblxuICAub3JiaXQtaW1hZ2Uge1xuICAgIEBpbmNsdWRlIG9yYml0LWltYWdlO1xuICB9XG5cbiAgLm9yYml0LWNhcHRpb24ge1xuICAgIEBpbmNsdWRlIG9yYml0LWNhcHRpb247XG4gIH1cblxuICAlb3JiaXQtY29udHJvbCB7XG4gICAgQGluY2x1ZGUgb3JiaXQtY29udHJvbDtcbiAgfVxuXG4gIC5vcmJpdC1wcmV2aW91cyB7XG4gICAgQGV4dGVuZCAlb3JiaXQtY29udHJvbDtcbiAgICBAaW5jbHVkZSBvcmJpdC1wcmV2aW91cztcbiAgfVxuXG4gIC5vcmJpdC1uZXh0IHtcbiAgICBAZXh0ZW5kICVvcmJpdC1jb250cm9sO1xuICAgIEBpbmNsdWRlIG9yYml0LW5leHQ7XG4gIH1cblxuICAub3JiaXQtYnVsbGV0cyB7XG4gICAgQGluY2x1ZGUgb3JiaXQtYnVsbGV0cztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgcGFnaW5hdGlvblxuLy8vL1xuXG4vLy8gRm9udCBzaXplIG9mIHBhZ2luYXRpb24gaXRlbXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFnaW5hdGlvbiBvYmplY3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFnaW5hdGlvbi1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgb2YgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZzogcmVtLWNhbGMoMyAxMCkgIWRlZmF1bHQ7XG5cbi8vLyBSaWdodCBtYXJnaW4gdG8gc2VwYXJhdGUgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLWl0ZW0tc3BhY2luZzogcmVtLWNhbGMoMSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHJhZGl1cyBmb3IgcGFnaW5hdGlvbiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYWdpbmF0aW9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbXMgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIHBhZ2luYXRpb24gaXRlbSBmb3IgdGhlIGN1cnJlbnQgcGFnZS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQ6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiB0aGUgcGFnaW5hdGlvbiBpdGVtIGZvciB0aGUgY3VycmVudCBwYWdlLlxuLy8vIEB0eXBlIENvbG9yXG4kcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uXG4vLy8gQHR5cGUgQ29sb3JcbiRwYWdpbmF0aW9uLWl0ZW0tY29sb3ItZGlzYWJsZWQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIHRoZSBlbGxpcHNpcyBpbiBhIHBhZ2luYXRpb24gbWVudS5cbi8vLyBAdHlwZSBDb2xvclxuJHBhZ2luYXRpb24tZWxsaXBzaXMtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIElmIGBmYWxzZWAsIGRvbid0IGRpc3BsYXkgcGFnZSBudW1iZXIgbGlua3Mgb24gbW9iaWxlLCBvbmx5IG5leHQvcHJldmlvdXMgbGlua3Ncbi8vLyBhbmQgb3B0aW9uYWxseSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXkgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb24gbW9iaWxlIGV2ZW4gaWYgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtc2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4vLy8gVGhpcyBwYXJhbWV0ZXIgd2lsbCBvbmx5IG92ZXJyaWRlIHRoZSB2aXNpYmlsaXR5IHNldHRpbmcgb2YgdGhlIGN1cnJlbnQgaXRlbSBmb3IgYCRwYWdpbmF0aW9uLW1vYmlsZS1pdGVtczogZmFsc2U7YCxcbi8vLyBpdCB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgdmlzaWJpbGl0eSB3aGVuIGAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXNgIGlzIHNldCB0byBgdHJ1ZWAuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGFycm93cyBhcmUgYWRkZWQgdG8gdGhlIG5leHQgYW5kIHByZXZpb3VzIGxpbmtzIG9mIHBhZ2luYXRpb24uXG4vLy8gQHR5cGUgQm9vbGVhblxuJHBhZ2luYXRpb24tYXJyb3dzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgcGFnaW5hdGlvbiBjb250YWluZXIuIEFwcGx5IHRoaXMgdG8gYSBgPHVsPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1jb250YWluZXIgKFxuICAkbWFyZ2luLWJvdHRvbTogJHBhZ2luYXRpb24tbWFyZ2luLWJvdHRvbSxcbiAgJGZvbnQtc2l6ZTogJHBhZ2luYXRpb24tZm9udC1zaXplLFxuICAkc3BhY2luZzogJHBhZ2luYXRpb24taXRlbS1zcGFjaW5nLFxuICAkcmFkaXVzOiAkcGFnaW5hdGlvbi1yYWRpdXMsXG4gICRjb2xvcjogJHBhZ2luYXRpb24taXRlbS1jb2xvcixcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYmFja2dyb3VuZC1ob3ZlclxuKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAvLyBMaXN0IGl0ZW1cbiAgbGkge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAkc3BhY2luZztcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcblxuICAgIEBpZiAkcGFnaW5hdGlvbi1tb2JpbGUtaXRlbXMge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHBhZ2luYXRpb24tbW9iaWxlLWN1cnJlbnQtaXRlbSB7XG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYWdlIGxpbmtzXG4gIGEsXG4gIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogJHBhZGRpbmc7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gICAgY29sb3I6ICRjb2xvcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtaG92ZXI7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGN1cnJlbnQgcGFnaW5hdGlvbiBpdGVtLiBBcHBseSB0aGlzIHRvIGFuIGA8YT5gLlxuQG1peGluIHBhZ2luYXRpb24taXRlbS1jdXJyZW50IChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGJhY2tncm91bmQtY3VycmVudDogJHBhZ2luYXRpb24taXRlbS1iYWNrZ3JvdW5kLWN1cnJlbnQsXG4gICRjb2xvci1jdXJyZW50OiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWN1cnJlbnRcbikge1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQtY3VycmVudDtcbiAgY29sb3I6ICRjb2xvci1jdXJyZW50O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBkaXNhYmxlZCBwYWdpbmF0aW9uIGl0ZW0uIEFwcGx5IHRoaXMgdG8gYW4gYDxhPmAuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWRpc2FibGVkIChcbiAgJHBhZGRpbmc6ICRwYWdpbmF0aW9uLWl0ZW0tcGFkZGluZyxcbiAgJGNvbG9yOiAkcGFnaW5hdGlvbi1pdGVtLWNvbG9yLWRpc2FibGVkXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBlbGxpcHNpcyBmb3IgdXNlIGluIGEgcGFnaW5hdGlvbiBsaXN0LlxuQG1peGluIHBhZ2luYXRpb24tZWxsaXBzaXMgKFxuICAkcGFkZGluZzogJHBhZ2luYXRpb24taXRlbS1wYWRkaW5nLFxuICAkY29sb3I6ICRwYWdpbmF0aW9uLWVsbGlwc2lzLWNvbG9yXG4pIHtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIGNvbnRlbnQ6ICdcXDIwMjYnO1xuICBjb2xvcjogJGNvbG9yO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wYWdpbmF0aW9uIHtcbiAgLnBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tY29udGFpbmVyO1xuXG4gICAgLmN1cnJlbnQge1xuICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLmRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbS1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAuZWxsaXBzaXM6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tZWxsaXBzaXM7XG4gICAgfVxuICB9XG5cbiAgQGlmICRwYWdpbmF0aW9uLWFycm93cyB7XG4gICAgLnBhZ2luYXRpb24tcHJldmlvdXMgYTo6YmVmb3JlLFxuICAgIC5wYWdpbmF0aW9uLXByZXZpb3VzLmRpc2FibGVkOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06IDAuNXJlbTtcbiAgICAgIGNvbnRlbnQ6ICdcXDAwYWInO1xuICAgIH1cblxuICAgIC5wYWdpbmF0aW9uLW5leHQgYTo6YWZ0ZXIsXG4gICAgLnBhZ2luYXRpb24tbmV4dC5kaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMC41cmVtO1xuICAgICAgY29udGVudDogJ1xcMDBiYic7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhIHByb2dyZXNzIGJhciBjb250YWluZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAkcHJvZ3Jlc3MtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAkcHJvZ3Jlc3MtbWFyZ2luLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhY2tncm91bmQ7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGlubmVyIG1ldGVyIG9mIGEgcHJvZ3Jlc3MgYmFyLlxuQG1peGluIHByb2dyZXNzLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcm9ncmVzcy1tZXRlci1iYWNrZ3JvdW5kO1xuXG4gIEBpZiBoYXMtdmFsdWUoJHByb2dyZXNzLXJhZGl1cykge1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgbWV0ZXIuXG5AbWl4aW4gcHJvZ3Jlc3MtbWV0ZXItdGV4dCB7XG4gIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmIGhhcy12YWx1ZSgkcHJvZ3Jlc3MtcmFkaXVzKSB7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2dyZXNzLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1wcm9ncmVzcy1iYXIge1xuICAvLyBQcm9ncmVzcyBiYXJcbiAgLnByb2dyZXNzIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1jb250YWluZXI7XG5cbiAgICBAZWFjaCAkbmFtZSwgJGNvbG9yIGluICRmb3VuZGF0aW9uLXBhbGV0dGUge1xuICAgICAgJi4jeyRuYW1lfSB7XG4gICAgICAgIC5wcm9ncmVzcy1tZXRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgbWV0ZXJcbiAgLnByb2dyZXNzLW1ldGVyIHtcbiAgICBAaW5jbHVkZSBwcm9ncmVzcy1tZXRlcjtcbiAgfVxuXG4gIC8vIElubmVyIG1ldGVyIHRleHRcbiAgLnByb2dyZXNzLW1ldGVyLXRleHQge1xuICAgIEBpbmNsdWRlIHByb2dyZXNzLW1ldGVyLXRleHQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBbVE9ET10gQ2hlY2sgaG93IHBsdWdpbiBjb25maXJtcyBkaXNhYmxlZCBvciB2ZXJ0aWNhbCBzdGF0dXNcbi8vIFtUT0RPXSBDaGVjayBpZiB0cmFuc2l0aW9uOiBhbGw7IGlzIG5lY2Vzc2FyeVxuXG4vLy8vXG4vLy8gQGdyb3VwIHNsaWRlclxuLy8vL1xuXG4vLy8gRGVmYXVsdCBzbGlkZXIgd2lkdGggb2YgYSB2ZXJ0aWNhbCBzbGlkZXIuIChEb2Vzbid0IGFwcGx5IHRvIHRoZSBuYXRpdmUgc2xpZGVyLilcbi8vLyBAdHlwZSBOdW1iZXJcbiRzbGlkZXItd2lkdGgtdmVydGljYWw6IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcGVydGllcyB0byBhcHBseSB0byB0aGUgc2xpZGVyIGhhbmRsZSBhbmQgZmlsbC4gKERvZXNuJ3QgYXBwbHkgdG8gdGhlIG5hdGl2ZSBzbGlkZXIuKVxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiRzbGlkZXItdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3Igc2xpZGVycy5cbkBtaXhpbiBzbGlkZXItY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6ICRzbGlkZXItaGVpZ2h0O1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAyLjI1cmVtO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItYmFja2dyb3VuZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4vLy8gQWRkcyB0aGUgZ2VuZXJhbCBzdHlsZXMgZm9yIGFjdGl2ZSBmaWxsIGZvciBzbGlkZXJzLlxuQG1peGluIHNsaWRlci1maWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHNsaWRlci1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1maWxsLWJhY2tncm91bmQ7XG4gIHRyYW5zaXRpb246ICRzbGlkZXItdHJhbnNpdGlvbjtcblxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMHMgbGluZWFyO1xuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGhlIHNsaWRlciBoYW5kbGVzLlxuQG1peGluIHNsaWRlci1oYW5kbGUge1xuICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gIEBpbmNsdWRlIHZlcnRpY2FsLWNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcblxuICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNsaWRlci1oYW5kbGUtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHNsaWRlci10cmFuc2l0aW9uO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzY2FsZS1jb2xvcigkc2xpZGVyLWhhbmRsZS1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgfVxuXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIHRyYW5zaXRpb246IGFsbCAwcyBsaW5lYXI7XG4gIH1cbn1cblxuQG1peGluIHNsaWRlci1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6ICRzbGlkZXItb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuQG1peGluIHNsaWRlci12ZXJ0aWNhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6ICRzbGlkZXItd2lkdGgtdmVydGljYWw7XG4gIGhlaWdodDogMTIuNXJlbTtcbiAgbWFyZ2luOiAwIDEuMjVyZW07XG4gIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xuXG4gIC5zbGlkZXItZmlsbCB7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAkc2xpZGVyLXdpZHRoLXZlcnRpY2FsO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6ICRzbGlkZXItaGFuZGxlLWhlaWdodDtcbiAgICBoZWlnaHQ6ICRzbGlkZXItaGFuZGxlLXdpZHRoO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1zbGlkZXIge1xuICAvLyBDb250YWluZXJcbiAgLnNsaWRlciB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIEZpbGwgYXJlYVxuICAuc2xpZGVyLWZpbGwge1xuICAgIEBpbmNsdWRlIHNsaWRlci1maWxsO1xuICB9XG5cbiAgLy8gRHJhZ2dhYmxlIGhhbmRsZVxuICAuc2xpZGVyLWhhbmRsZSB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLWhhbmRsZTtcbiAgfVxuXG4gIC8vIERpc2FibGVkIHN0YXRlXG4gIC5zbGlkZXIuZGlzYWJsZWQsXG4gIC5zbGlkZXJbZGlzYWJsZWRdIHtcbiAgICBAaW5jbHVkZSBzbGlkZXItZGlzYWJsZWQ7XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBzbGlkZXJcbiAgLnNsaWRlci52ZXJ0aWNhbCB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXZlcnRpY2FsO1xuICB9XG5cbiAgLy8gUlRMIHN1cHBvcnRcbiAgQGlmICRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsIHtcbiAgICAuc2xpZGVyOm5vdCgudmVydGljYWwpIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXN0aWNreSB7XG4gIC5zdGlja3ktY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuc3RpY2t5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgLnN0aWNreS5pcy1zdHVjayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDU7XG5cbiAgICAmLmlzLWF0LXRvcCB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5zdGlja3kuaXMtYW5jaG9yZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1hdC1ib3R0b20ge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgc3dpdGNoXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQ6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgYWN0aXZlIGNvbG9yIG9mIGEgc3dpdGNoLlxuLy8vIEB0eXBlIENvbG9yXG4kc3dpdGNoLWJhY2tncm91bmQtYWN0aXZlOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCwgd2l0aCBubyBjbGFzcyBhcHBsaWVkLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBIZWlnaHQgb2YgYSBzd2l0Y2ggd2l0aCAudGlueSBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXRpbnk6IDEuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEhlaWdodCBvZiBhIHN3aXRjaCB3aXRoIC5zbWFsbCBjbGFzcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzd2l0Y2gtaGVpZ2h0LXNtYWxsOiAxLjc1cmVtICFkZWZhdWx0O1xuXG4vLy8gSGVpZ2h0IG9mIGEgc3dpdGNoIHdpdGggLmxhcmdlIGNsYXNzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1oZWlnaHQtbGFyZ2U6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciByYWRpdXMgb2YgdGhlIHN3aXRjaFxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gYm9yZGVyIGFyb3VuZCBhIG1vZGFsLlxuLy8vIEB0eXBlIE51bWJlclxuJHN3aXRjaC1tYXJnaW46ICRnbG9iYWwtbWFyZ2luICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIHN3aXRjaCBjb250YWluZXIgYW5kIHBhZGRsZS5cbi8vLyBAdHlwZSBDb2xvclxuJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGEgc3dpdGNoIHBhZGRsZSBhbmQgdGhlIGVkZ2Ugb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1vZmZzZXQ6IDAuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBib3JkZXIgcmFkaXVzIG9mIHRoZSBzd2l0Y2ggcGFkZGxlXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gc3dpdGNoIHRyYW5zaXRpb24uXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cbi8vIG1ha2UgdGhlbSB2YXJpYWJsZXNcbi8vIGFzayBhYm91dCBhY2Nlc3NpYmlsaXR5IG9uIGxhYmVsXG4vLyBjaGFuZ2UgY2xhc3MgbmFtZSBmb3IgdGV4dFxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byBhIGNvbnRhaW5lciBjbGFzcy5cbkBtaXhpbiBzd2l0Y2gtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkc3dpdGNoLW1hcmdpbjtcbiAgb3V0bGluZTogMDtcblxuICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhc2NhZGUgZG93biB0byB0aGUgc3dpdGNoIHRleHRcbiAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJHdoaXRlO1xuXG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgc3dpdGNoIGlucHV0LiBBcHBseSB0aGlzIHRvIGFuIGA8aW5wdXQ+YCB3aXRoaW4gYSBzd2l0Y2guXG5AbWl4aW4gc3dpdGNoLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBwYWRkbGUgb2YgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gYSBgPGxhYmVsPmAgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC1wYWRkbGUge1xuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkc3dpdGNoLXBhZGRsZS1vZmZzZXQgKiAyKTtcbiAgJHBhZGRsZS13aWR0aDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1wYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtYWN0aXZlLW9mZmVzdDogJHN3aXRjaC13aWR0aCAtICRwYWRkbGUtd2lkdGggLSAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG5cbiAgYm9yZGVyLXJhZGl1czogJHN3aXRjaC1yYWRpdXM7XG4gIGJhY2tncm91bmQ6ICRzd2l0Y2gtYmFja2dyb3VuZDtcbiAgdHJhbnNpdGlvbjogJHN3aXRjaC1wYWRkbGUtdHJhbnNpdGlvbjtcblxuICAvLyBSZXNldHRpbmcgdGhlc2UgPGxhYmVsPiBwcmVzZXRzIHNvIHR5cGUgc3R5bGVzIGNhc2NhZGUgZG93blxuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIE5lZWRlZCB0byBvdmVycmlkZSBzcGVjaWZpY2l0eVxuICBpbnB1dCArICYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIFRoZSBwYWRkbGUgaXRzZWxmXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkc3dpdGNoLXBhZGRsZS1vZmZzZXQ7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dpdGNoLXBhZGRsZS1yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1wYWRkbGUtYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiAkc3dpdGNoLXBhZGRsZS10cmFuc2l0aW9uO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG5cbiAgLy8gQ2hhbmdlIHRoZSB2aXN1YWwgc3R5bGUgd2hlbiB0aGUgc3dpdGNoIGlzIGFjdGl2ZVxuICBpbnB1dDpjaGVja2VkIH4gJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC1iYWNrZ3JvdW5kLWFjdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgICN7JGdsb2JhbC1sZWZ0fTogJHBhZGRsZS1hY3RpdmUtb2ZmZXN0O1xuICAgIH1cbiAgfVxuXG4gIGlucHV0OmZvY3VzIH4gJiB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1tb3VzZS1vdXRsaW5lO1xuICB9XG59XG5cbi8vLyBBZGRzIGJhc2Ugc3R5bGVzIGZvciBhY3RpdmUvaW5hY3RpdmUgdGV4dCBpbnNpZGUgYSBzd2l0Y2guIEFwcGx5IHRoaXMgdG8gdGV4dCBlbGVtZW50cyBpbnNpZGUgdGhlIHN3aXRjaCBgPGxhYmVsPmAuXG5AbWl4aW4gc3dpdGNoLXRleHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGFjdGl2ZSBzdGF0ZSB0ZXh0IHdpdGhpbiBhIHN3aXRjaC5cbkBtaXhpbiBzd2l0Y2gtdGV4dC1hY3RpdmUge1xuICAjeyRnbG9iYWwtbGVmdH06IDglO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgdGhlIGluYWN0aXZlIHN0YXRlIHRleHQgd2l0aGluIGEgc3dpdGNoLlxuQG1peGluIHN3aXRjaC10ZXh0LWluYWN0aXZlIHtcbiAgI3skZ2xvYmFsLXJpZ2h0fTogMTUlO1xuXG4gIGlucHV0OmNoZWNrZWQgKyBsYWJlbCA+ICYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHNpemUgb2YgYSBzd2l0Y2ggYnkgbW9kaWZ5aW5nIHRoZSBzaXplIG9mIHRoZSBib2R5IGFuZCBwYWRkbGUuIEFwcGx5IHRoaXMgdG8gYSBzd2l0Y2ggY29udGFpbmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZm9udC1zaXplIFsxcmVtXSAtIEZvbnQgc2l6ZSBvZiBsYWJlbCB0ZXh0IHdpdGhpbiB0aGUgc3dpdGNoLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3dpdGNoLWhlaWdodCBbMnJlbV0gLSBIZWlnaHQgb2YgdGhlIHN3aXRjaCBib2R5LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcGFkZGxlLW9mZnNldCBbMC4yNXJlbV0gLSBTcGFjaW5nIGJldHdlZW4gdGhlIHN3aXRjaCBwYWRkbGUgYW5kIHRoZSBlZGdlIG9mIHRoZSBzd2l0Y2ggYm9keS5cbkBtaXhpbiBzd2l0Y2gtc2l6ZShcbiAgJGZvbnQtc2l6ZTogMXJlbSxcbiAgJHN3aXRjaC1oZWlnaHQ6IDJyZW0sXG4gICRwYWRkbGUtb2Zmc2V0OiAwLjI1cmVtXG4pIHtcblxuICAkc3dpdGNoLXdpZHRoOiAkc3dpdGNoLWhlaWdodCAqIDI7XG4gICRwYWRkbGUtd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRwYWRkbGUtb2Zmc2V0ICogMik7XG4gICRwYWRkbGUtaGVpZ2h0OiAkc3dpdGNoLWhlaWdodCAtICgkcGFkZGxlLW9mZnNldCAqIDIpO1xuICAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q6ICRzd2l0Y2gtd2lkdGggLSAkcGFkZGxlLXdpZHRoIC0gJHBhZGRsZS1vZmZzZXQ7XG5cbiAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcblxuICAuc3dpdGNoLXBhZGRsZSB7XG4gICAgd2lkdGg6ICRzd2l0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dpdGNoLWhlaWdodDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gIH1cblxuICAuc3dpdGNoLXBhZGRsZTo6YWZ0ZXIge1xuICAgIHRvcDogJHBhZGRsZS1vZmZzZXQ7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLW9mZnNldDtcbiAgICB3aWR0aDogJHBhZGRsZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRwYWRkbGUtaGVpZ2h0O1xuICB9XG5cbiAgaW5wdXQ6Y2hlY2tlZCB+IC5zd2l0Y2gtcGFkZGxlOjphZnRlciB7XG4gICAgI3skZ2xvYmFsLWxlZnR9OiAkcGFkZGxlLWFjdGl2ZS1vZmZlc3Q7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tc3dpdGNoIHtcbiAgLy8gQ29udGFpbmVyIGNsYXNzXG4gIC5zd2l0Y2gge1xuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQ7XG4gICAgQGluY2x1ZGUgc3dpdGNoLWNvbnRhaW5lcjtcbiAgfVxuXG4gIC8vIDxpbnB1dD4gZWxlbWVudFxuICAuc3dpdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSBzd2l0Y2gtaW5wdXQ7XG4gIH1cblxuICAvLyA8bGFiZWw+IGVsZW1lbnRcbiAgLnN3aXRjaC1wYWRkbGUge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1wYWRkbGU7XG4gIH1cblxuICAvLyBCYXNlIGxhYmVsIHRleHQgc3R5bGVzXG4gICVzd2l0Y2gtdGV4dCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXRleHQ7XG4gIH1cblxuICAvLyBBY3RpdmUgbGFiZWwgdGV4dCBzdHlsZXNcbiAgLnN3aXRjaC1hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWFjdGl2ZTtcbiAgfVxuXG4gIC8vIEluYWN0aXZlIGxhYmVsIHRleHQgc3R5bGVzXG4gIC5zd2l0Y2gtaW5hY3RpdmUge1xuICAgIEBleHRlbmQgJXN3aXRjaC10ZXh0O1xuICAgIEBpbmNsdWRlIHN3aXRjaC10ZXh0LWluYWN0aXZlO1xuICB9XG5cbiAgLy8gU3dpdGNoIHNpemVzXG4gIC5zd2l0Y2gudGlueSB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTApLCAkc3dpdGNoLWhlaWdodC10aW55LCAkc3dpdGNoLXBhZGRsZS1vZmZzZXQpO1xuICB9XG5cbiAgLnN3aXRjaC5zbWFsbCB7XG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUocmVtLWNhbGMoMTIpLCAkc3dpdGNoLWhlaWdodC1zbWFsbCwgJHN3aXRjaC1wYWRkbGUtb2Zmc2V0KTtcbiAgfVxuXG4gIC5zd2l0Y2gubGFyZ2Uge1xuICAgIEBpbmNsdWRlIHN3aXRjaC1zaXplKHJlbS1jYWxjKDE2KSwgJHN3aXRjaC1oZWlnaHQtbGFyZ2UsICRzd2l0Y2gtcGFkZGxlLW9mZnNldCk7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZSBmb3JjZS1lbGVtZW50LW5lc3RpbmcsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCB0YWJsZVxuLy8vL1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgdGFibGUgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWJhY2tncm91bmQ6ICR3aGl0ZSAgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHNjYWxlIGZvciBkYXJrZW5pbmcgdGhlIHN0cmlwZWQgdGFibGUgcm93cyBhbmQgdGhlIHRhYmxlIGJvcmRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1jb2xvci1zY2FsZTogNSUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHN0eWxlIGZvciB0YWJsZSBib3JkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLWJvcmRlcjogMXB4IHNvbGlkIHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBwYWRkaW5nIGZvciB0YWJsZS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1wYWRkaW5nOiByZW0tY2FsYyg4IDEwIDEwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgc2NhbGUgZm9yIGRhcmtlbmluZyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWJsZS1ob3Zlci1zY2FsZTogMiUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHN0YW5kYXJkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtaG92ZXItc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBvZiBzdHJpcGVkIHJvd3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgTGlzdFxuJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI6IGRhcmtlbigkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlICsgJHRhYmxlLWhvdmVyLXNjYWxlKSAhZGVmYXVsdDtcblxuLy8vIElmIGB0cnVlYCwgdGFibGVzIGFyZSBzdHJpcGVkIGJ5IGRlZmF1bHQgYW5kIGFuIC51bnN0cmlwZWQgY2xhc3MgaXMgY3JlYXRlZC4gSWYgYGZhbHNlYCwgYSAuc3RyaXBlZCBjbGFzcyBpcyBjcmVhdGVkLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiR0YWJsZS1pcy1zdHJpcGVkOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIGZvciBzdHJpcGVkIHJvd3MuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWJsZS1zdHJpcGVkLWJhY2tncm91bmQ6IHNtYXJ0LXNjYWxlKCR0YWJsZS1iYWNrZ3JvdW5kLCAkdGFibGUtY29sb3Itc2NhbGUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgc3RyaXBlIG9uIHJvd3Mgb2YgdGhlIHRhYmxlcywgZXhjbHVkaW5nIHRoZSBoZWFkZXIgYW5kIGZvb3Rlci4gSWYgZXZlbiwgdGhlIGV2ZW4gcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBvZGQsIHRoZSBvZGQgcm93cyB3aWxsIGhhdmUgYSBiYWNrZ3JvdW5kIGNvbG9yLiBJZiBlbXB0eSwgb3IgYW55IG90aGVyIHZhbHVlLCB0aGUgdGFibGUgcm93cyB3aWxsIGhhdmUgbm8gc3RyaXBpbmcuXG4vLy8gQHR5cGUgS2V5d29yZFxuJHRhYmxlLXN0cmlwZTogZXZlbiAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGhlYWRlciBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtaGVhZC1iYWNrZ3JvdW5kOiBzbWFydC1zY2FsZSgkdGFibGUtYmFja2dyb3VuZCwgJHRhYmxlLWNvbG9yLXNjYWxlIC8gMikgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1oZWFkLXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1oZWFkLWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBmb290ZXIgYmFja2dyb3VuZC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWZvb3QtYmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHRhYmxlLWJhY2tncm91bmQsICR0YWJsZS1jb2xvci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIExpc3RcbiR0YWJsZS1mb290LXJvdy1ob3ZlcjogZGFya2VuKCR0YWJsZS1mb290LWJhY2tncm91bmQsICR0YWJsZS1ob3Zlci1zY2FsZSkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGhlYWRlci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYmxlLWhlYWQtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBjb2xvciBmb3IgZm9vdGVyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGFibGUtZm9vdC1mb250LWNvbG9yOiAkYm9keS1mb250LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3Igc2hvd2luZyB0aGUgaGVhZGVyIHdoZW4gdXNpbmcgc3RhY2tlZCB0YWJsZXMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJHNob3ctaGVhZGVyLWZvci1zdGFja2VkOiBmYWxzZSAhZGVmYXVsdDtcblxuQG1peGluIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZTogJHRhYmxlLXN0cmlwZSkge1xuICB0ciB7XG4gICAgLy8gSWYgc3RyaXBlIGlzIHNldCB0byBldmVuLCBkYXJrZW4gdGhlIGV2ZW4gcm93cy5cbiAgICBAaWYgJHN0cmlwZSA9PSBldmVuIHtcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBzdHJpcGUgaXMgc2V0IHRvIG9kZCwgZGFya2VuIHRoZSBvZGQgcm93cy5cbiAgICBAZWxzZSBpZiAkc3RyaXBlID09IG9kZCB7XG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZWQtYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIC16Zi10YWJsZS11bnN0cmlwZSgpIHtcbiAgdHIge1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlLWJvcmRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmFja2dyb3VuZDtcbiAgfVxufVxuXG5AbWl4aW4gLXpmLXRhYmxlLWNoaWxkcmVuLXN0eWxlcygkc3RyaXBlOiAkdGFibGUtc3RyaXBlLCAkaXMtc3RyaXBlZDogJHRhYmxlLWlzLXN0cmlwZWQpIHtcbiAgdGhlYWQsXG4gIHRib2R5LFxuICB0Zm9vdCB7XG4gICAgYm9yZGVyOiAkdGFibGUtYm9yZGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2FwdGlvblxuICBjYXB0aW9uIHtcbiAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgfVxuXG4gIC8vIFRhYmxlIGhlYWRcbiAgdGhlYWQge1xuICAgIGJhY2tncm91bmQ6ICR0YWJsZS1oZWFkLWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR0YWJsZS1oZWFkLWZvbnQtY29sb3I7XG4gIH1cblxuICAvLyBUYWJsZSBmb290XG4gIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGUtZm9vdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkdGFibGUtZm9vdC1mb250LWNvbG9yO1xuICB9XG5cbiAgLy8gVGFibGUgaGVhZCBhbmQgZm9vdFxuICB0aGVhZCxcbiAgdGZvb3Qge1xuICAgIC8vIFJvd3Mgd2l0aGluIGhlYWQgYW5kIGZvb3RcbiAgICB0ciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAvLyBDZWxscyB3aXRoaW4gaGVhZCBhbmQgZm9vdFxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIHBhZGRpbmc6ICR0YWJsZS1wYWRkaW5nO1xuICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICB0ZXh0LWFsaWduOiAjeyRnbG9iYWwtbGVmdH07XG4gICAgfVxuICB9XG5cbiAgLy8gVGFibGUgcm93c1xuICB0Ym9keSB7XG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogJHRhYmxlLXBhZGRpbmc7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgdGFibGVzIGFyZSBzdHJpcGVkXG4gIEBpZiAkaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICB0Ym9keSB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtc3RyaXBlKCRzdHJpcGUpO1xuICAgIH1cblxuICAgICYudW5zdHJpcGVkIHtcbiAgICAgIHRib2R5IHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLXRhYmxlLXVuc3RyaXBlKCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1iYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRhYmxlcyBhcmUgbm90IHN0cmlwZWRcbiAgQGVsc2UgaWYgJGlzLXN0cmlwZWQgPT0gZmFsc2Uge1xuICAgIHRib2R5IHtcbiAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS11bnN0cmlwZSgpO1xuICAgIH1cblxuICAgICYuc3RyaXBlZCB7XG4gICAgICB0Ym9keSB7XG4gICAgICAgIEBpbmNsdWRlIC16Zi10YWJsZS1zdHJpcGUoJHN0cmlwZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHRoZSBnZW5lcmFsIHN0eWxlcyBmb3IgdGFibGVzLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHN0cmlwZSBbJHRhYmxlLXN0cmlwZV0gLSBVc2VzIGtleXdvcmRzIGV2ZW4sIG9kZCwgb3Igbm9uZSB0byBkYXJrZW4gcm93cyBvZiB0aGUgdGFibGUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGV2ZW4uXG5AbWl4aW4gdGFibGUoXG4gICRzdHJpcGU6ICR0YWJsZS1zdHJpcGUsXG4gICRuZXN0OiBmYWxzZVxuKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG5cbiAgQGlmICRuZXN0IHtcbiAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAaW5jbHVkZSAtemYtdGFibGUtY2hpbGRyZW4tc3R5bGVzKCRzdHJpcGUpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyB0aGUgYWJpbGl0eSB0byBob3Jpem9udGFsbHkgc2Nyb2xsIHRoZSB0YWJsZSB3aGVuIHRoZSBjb250ZW50IG92ZXJmbG93cyBob3Jpem9udGFsbHkuXG5AbWl4aW4gdGFibGUtc2Nyb2xsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4vLy8gU2xpZ2h0bHkgZGFya2VucyB0aGUgdGFibGUgcm93cyBvbiBob3Zlci5cbkBtaXhpbiB0YWJsZS1ob3ZlciB7XG4gIHRoZWFkIHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGhlYWRlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIHRhYmxlIGZvb3RlciByb3dzIG9uIGhvdmVyLlxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWZvb3Qtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIHRib2R5IHRyIHtcbiAgICAvL0RhcmtlbnMgdGhlIG5vbi1zdHJpcGVkIHRhYmxlIHJvd3Mgb24gaG92ZXIuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkdGFibGUtaXMtc3RyaXBlZCA9PSB0cnVlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmOm5vdCgudW5zdHJpcGVkKSB0cjpudGgtb2YtdHlwZShldmVuKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIERhcmtlbnMgdGhlIG9kZCBzdHJpcGVkIHRhYmxlIHJvd3MuXG4gICAgQGVsc2VpZigkdGFibGUtc3RyaXBlID09IG9kZCkge1xuICAgICAgJjpub3QoLnVuc3RyaXBlZCkgdHI6bnRoLW9mLXR5cGUob2RkKTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1yb3ctc3RyaXBlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICR0YWJsZS1pcy1zdHJpcGVkID09IGZhbHNlIHtcbiAgICAvLyBEYXJrZW5zIHRoZSBldmVuIHN0cmlwZWQgdGFibGUgcm93cy5cbiAgICBAaWYoJHRhYmxlLXN0cmlwZSA9PSBldmVuKSB7XG4gICAgICAmLnN0cmlwZWQgdHI6bnRoLW9mLXR5cGUoZXZlbik6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtcm93LXN0cmlwZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBEYXJrZW5zIHRoZSBvZGQgc3RyaXBlZCB0YWJsZSByb3dzLlxuICAgIEBlbHNlaWYoJHRhYmxlLXN0cmlwZSA9PSBvZGQpIHtcbiAgICAgICYuc3RyaXBlZCB0cjpudGgtb2YtdHlwZShvZGQpOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXJvdy1zdHJpcGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSBzdGFja2VkIHRhYmxlLiBVc2VmdWwgZm9yIHNtYWxsLXNjcmVlbiBsYXlvdXRzLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGhlYWRlciBbJHNob3ctaGVhZGVyLWZvci1zdGFja2VkXSAtIFNob3cgdGhlIGZpcnN0IHRoIG9mIGhlYWRlciB3aGVuIHN0YWNrZWQuXG5AbWl4aW4gdGFibGUtc3RhY2soJGhlYWRlcjogJHNob3ctaGVhZGVyLWZvci1zdGFja2VkKSB7XG4gIEBpZiAkaGVhZGVyIHtcbiAgICB0aGVhZCB7XG4gICAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRmb290IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgdHIsXG4gIHRoLFxuICB0ZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10YWJsZSgkbmVzdDogZmFsc2UpIHtcbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHRhYmxlKCRuZXN0OiAkbmVzdCk7XG4gIH1cblxuICB0YWJsZS5zdGFjayB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgICAgQGluY2x1ZGUgdGFibGUtc3RhY2s7XG4gICAgfVxuICB9XG5cbiAgdGFibGUuc2Nyb2xsIHtcbiAgICBAaW5jbHVkZSB0YWJsZS1zY3JvbGw7XG4gIH1cblxuICB0YWJsZS5ob3ZlciB7XG4gICAgQGluY2x1ZGUgdGFibGUtaG92ZXI7XG4gIH1cblxuICAudGFibGUtc2Nyb2xsIHtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgdGFibGUge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIGNoZWNrIHRoZSBsdW1pbmFuY2Ugb2YuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbHVtaW5hbmNlIG9mIGAkY29sb3JgLlxuQGZ1bmN0aW9uIGNvbG9yLWx1bWluYW5jZSgkY29sb3IpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI3JlbGF0aXZlbHVtaW5hbmNlZGVmXG4gICRyZ2JhOiByZWQoJGNvbG9yKSwgZ3JlZW4oJGNvbG9yKSwgYmx1ZSgkY29sb3IpO1xuICAkcmdiYTI6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMyB7XG4gICAgJHJnYjogbnRoKCRyZ2JhLCAkaSk7XG4gICAgJHJnYjogJHJnYiAvIDI1NTtcblxuICAgICRyZ2I6IGlmKCRyZ2IgPCAwLjAzOTI4LCAkcmdiIC8gMTIuOTIsIHBvdygoJHJnYiArIDAuMDU1KSAvIDEuMDU1LCAyLjQpKTtcblxuICAgICRyZ2JhMjogYXBwZW5kKCRyZ2JhMiwgJHJnYik7XG4gIH1cblxuICBAcmV0dXJuIDAuMjEyNiAqIG50aCgkcmdiYTIsIDEpICsgMC43MTUyICogbnRoKCRyZ2JhMiwgMikgKyAwLjA3MjIgKiBudGgoJHJnYmEyLCAzKTtcbn1cblxuLy8vIENoZWNrcyB0aGUgY29udHJhc3QgcmF0aW8gb2YgdHdvIGNvbG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjEgLSBGaXJzdCBjb2xvciB0byBjb21wYXJlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvcjIgLSBTZWNvbmQgY29sb3IgdG8gY29tcGFyZS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBjb250cmFzdCByYXRpbyBvZiB0aGUgY29tcGFyZWQgY29sb3JzLlxuQGZ1bmN0aW9uIGNvbG9yLWNvbnRyYXN0KCRjb2xvcjEsICRjb2xvcjIpIHtcbiAgLy8gQWRhcHRlZCBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vTGVhVmVyb3UvY29udHJhc3QtcmF0aW8vYmxvYi9naC1wYWdlcy9jb2xvci5qc1xuICAvLyBGb3JtdWxhOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA4L1JFQy1XQ0FHMjAtMjAwODEyMTEvI2NvbnRyYXN0LXJhdGlvZGVmXG4gICRsdW1pbmFuY2UxOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMSkgKyAwLjA1O1xuICAkbHVtaW5hbmNlMjogY29sb3ItbHVtaW5hbmNlKCRjb2xvcjIpICsgMC4wNTtcbiAgJHJhdGlvOiAkbHVtaW5hbmNlMSAvICRsdW1pbmFuY2UyO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IDEgLyAkcmF0aW87XG4gIH1cblxuICAkcmF0aW86IHJvdW5kKCRyYXRpbyAqIDEwKSAvIDEwO1xuXG4gIEByZXR1cm4gJHJhdGlvO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRiYXNlYCwgYW5kIHJldHVybnMgdGhlIGNvbG9yIGZyb20gYCRjb2xvcnNgIChsaXN0IG9mIGNvbG9ycykgdGhhdCBoYXMgdGhlIG1vc3QgY29udHJhc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IxIC0gRmlyc3QgY29sb3IgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IyIC0gU2Vjb25kIGNvbG9yIHRvIGNvbXBhcmUuXG4vLy9cbi8vLyBAcmV0dXJucyB7TnVtYmVyfSBUaGUgY29udHJhc3QgcmF0aW8gb2YgdGhlIGNvbXBhcmVkIGNvbG9ycy5cbkBmdW5jdGlvbiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYXNlLCAkY29sb3JzOiAoJHdoaXRlLCAkYmxhY2spLCAkdG9sZXJhbmNlOiAwKSB7XG4gICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAxKSk7XG4gICRiZXN0OiBudGgoJGNvbG9ycywgMSk7XG5cbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGNvbG9ycykge1xuICAgICRjdXJyZW50LWNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgQGlmICgkY3VycmVudC1jb250cmFzdCAtICRjb250cmFzdCA+ICR0b2xlcmFuY2UpIHtcbiAgICAgICRjb250cmFzdDogY29sb3ItY29udHJhc3QoJGJhc2UsIG50aCgkY29sb3JzLCAkaSkpO1xuICAgICAgJGJlc3Q6IG50aCgkY29sb3JzLCAkaSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICgkY29udHJhc3QgPCAzKSB7XG4gICAgQHdhcm4gXCJDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fVwiO1xuICB9XG5cbiAgQHJldHVybiAkYmVzdDtcbn1cblxuLy8vIFNjYWxlcyBhIGNvbG9yIHRvIGJlIGRhcmtlciBpZiBpdCdzIGxpZ2h0LCBvciBsaWdodGVyIGlmIGl0J3MgZGFyay4gVXNlIHRoaXMgZnVuY3Rpb24gdG8gdGludCBhIGNvbG9yIGFwcHJvcHJpYXRlIHRvIGl0cyBsaWdodG5lc3MuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBzY2FsZS5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICRzY2FsZSBbNSVdIC0gQW1vdW50IHRvIHNjYWxlIHVwIG9yIGRvd24uXG4vLy8gQHBhcmFtIHtQZXJjZW50YWdlfSAkdGhyZXNob2xkIFs0MCVdIC0gVGhyZXNob2xkIG9mIGxpZ2h0bmVzcyB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBBIHNjYWxlZCBjb2xvci5cbkBmdW5jdGlvbiBzbWFydC1zY2FsZSgkY29sb3IsICRzY2FsZTogNSUsICR0aHJlc2hvbGQ6IDQwJSkge1xuICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPiAkdGhyZXNob2xkIHtcbiAgICAkc2NhbGU6IC0kc2NhbGU7XG4gIH1cbiAgQHJldHVybiBzY2FsZS1jb2xvcigkY29sb3IsICRsaWdodG5lc3M6ICRzY2FsZSk7XG59XG5cbi8vLyBHZXQgY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEBwYXJhbSB7a2V5fSBjb2xvciBrZXkgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbi8vL1xuLy8vIEByZXR1cm5zIHtDb2xvcn0gY29sb3IgZnJvbSBmb3VuZGF0aW9uLXBhbGV0dGVcbkBmdW5jdGlvbiBnZXQtY29sb3IoJGtleSkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgJGtleSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdnaXZlbiAka2V5IGlzIG5vdCBhdmFpbGFibGUgaW4gJGZvdW5kYXRpb24tcGFsZXR0ZSc7XG4gIH1cbn1cblxuLy8vIFRyYW5zZmVycyB0aGUgY29sb3JzIGluIHRoZSBgJGZvdW5kYXRpb24tcGFsZXR0ZWBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSB7XG4gICAgJHN1Y2Nlc3MtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc3VjY2VzcykgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykge1xuICAgICR3YXJuaW5nLWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHdhcm5pbmcpICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSB7XG4gICAgJGFsZXJ0LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIGFsZXJ0KSAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0YWJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IG1hcmdpbiBvZiB0aGUgdGFiIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGFiIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBhY3RpdmUgYmFja2dyb3VuZCBjb2xvciBvZiBhIHRhYiBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItYmFja2dyb3VuZC1hY3RpdmU6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRhYiBpdGVtcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0YWItaXRlbS1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciBmb3IgaXRlbXMgaW4gYSBNZW51LlxuJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiBhIHRhYiBpdGVtLlxuLy8vIEB0eXBlIE51bWJlclxuJHRhYi1pdGVtLXBhZGRpbmc6IDE3cHggMjRweDtcblxuLy8vIE1heGltdW0gbnVtYmVyIG9mIGBleHBhbmQtbmAgY2xhc3NlcyB0byBpbmNsdWRlIGluIHRoZSBDU1MuXG4vLy8gQHR5cGUgTnVtYmVyXG4kdGFiLWV4cGFuZC1tYXg6IDYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJhY2tncm91bmQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBjb2xvciBvZiB0YWIgY29udGVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRhYi1jb250ZW50LWJvcmRlcjogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgY29sb3Igb2YgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0YWItY29udGVudC1jb2xvcjogZm9yZWdyb3VuZCgkdGFiLWJhY2tncm91bmQsICRwcmltYXJ5LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBmb3IgdGFiIGNvbnRlbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJHRhYi1jb250ZW50LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBBZGRzIHN0eWxlcyBmb3IgYSB0YWIgY29udGFpbmVyLiBBcHBseSB0aGlzIHRvIGEgYDx1bD5gLlxuQG1peGluIHRhYnMtY29udGFpbmVyIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdG1hcmdpbjogJHRhYi1tYXJnaW47XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdGJhY2tncm91bmQ6ICR0YWItYmFja2dyb3VuZDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR0YWItY29udGVudC1ib3JkZXI7XG5cdGZvbnQtc2l6ZTogMDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLy8vIEF1Z21lbnRzIGEgdGFiIGNvbnRhaW5lciB0byBoYXZlIHZlcnRpY2FsIHRhYnMuIFVzZSB0aGlzIGluIGNvbmp1bmN0aW9uIHdpdGggYHRhYnMtY29udGFpbmVyKClgLlxuQG1peGluIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsIHtcblx0PiBsaSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgbGlua3Mgd2l0aGluIGEgdGFiIGNvbnRhaW5lci4gQXBwbHkgdGhpcyB0byB0aGUgYDxsaT5gIGVsZW1lbnRzIGluc2lkZSBhIHRhYiBjb250YWluZXIuXG5AbWl4aW4gdGFicy10aXRsZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Upe1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuXHRcdG1hcmdpbi1ib3R0b206IC0xcHggIWltcG9ydGFudDtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdD4gYSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMCAwIDAgcmVtLWNhbGMoNSk7XG5cdFx0cGFkZGluZzogJHRhYi1pdGVtLXBhZGRpbmc7XG5cdFx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcblx0XHRsaW5lLWhlaWdodDogcmVtLWNhbGMoMTQpO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IC4wOWVtO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdGJvcmRlcjogcmVtLWNhbGMoMSkgc29saWQgJGxpZ2h0bmVzcy1ncmF5O1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzO1xuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiByZW0tY2FsYygtMik7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR3aWR0aDogMDtcblx0XHRcdGhlaWdodDogcmVtLWNhbGMoMyk7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZnBvcmFuZ2UtY29sb3I7XG5cdFx0XHRib3JkZXItbGVmdDogcmVtLWNhbGMoNikgc29saWQgJHdoaXRlO1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiByZW0tY2FsYyg2KSBzb2xpZCAkd2hpdGU7XG5cdFx0XHR0cmFuc2l0aW9uOiAuM3M7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRoZWlnaHQ6IHJlbS1jYWxjKDUpO1xuXHRcdFx0YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCB0cmFuc3BhcmVudCAwJSwgJHByaW1hcnktY29sb3IgMTAwJSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KHRvcCwgYm90dG9tLCBjb2xvci1zdG9wKDAlLCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMTAwJSwgJHByaW1hcnktY29sb3IpKTtcblx0XHRcdGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgdHJhbnNwYXJlbnQgMCUsICRwcmltYXJ5LWNvbG9yIDEwMCUpO1xuXHRcdFx0YmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgdHJhbnNwYXJlbnQgMCUsICRwcmltYXJ5LWNvbG9yIDEwMCUpO1xuXHRcdFx0YmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIHRyYW5zcGFyZW50IDAlLCAkcHJpbWFyeS1jb2xvciAxMDAlKTtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHRyYW5zcGFyZW50IDAlLCAkcHJpbWFyeS1jb2xvciAxMDAlKTtcblx0XHRcdG9wYWNpdHk6IC4wNjtcblx0XHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogJHRhYi1pdGVtLWJhY2tncm91bmQtaG92ZXI7XG5cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogLjAyO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6Zm9jdXMsXG5cdFx0JlthcmlhLXNlbGVjdGVkPSd0cnVlJ10ge1xuXHRcdFx0YmFja2dyb3VuZDogJHRhYi1iYWNrZ3JvdW5kLWFjdGl2ZTtcblx0XHRcdGJvcmRlcjogcmVtLWNhbGMoMSkgc29saWQgJGxpZ2h0bmVzcy1ncmF5O1xuXHRcdH1cblx0fVxuXG5cdCYuaXMtYWN0aXZlIHtcblx0XHQ+IGEge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJHdoaXRlO1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdFx0XHR3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG5cdFx0XHR9XG5cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciB0aGUgd3JhcHBlciB0aGF0IHN1cnJvdW5kcyBhIHRhYiBncm91cCdzIGNvbnRlbnQgcGFuZXMuXG4gQG1peGluIHRhYnMtY29udGVudCB7XG5cdGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iYWNrZ3JvdW5kO1xuXHR0cmFuc2l0aW9uOiBhbGwgLjVzIGVhc2U7XG59XG5cbi8vLyBBdWdtZW50cyBhIHRhYiBjb250ZW50IGNvbnRhaW5lciB0byBoYXZlIGEgdmVydGljYWwgc3R5bGUsIGJ5IHNoaWZ0aW5nIHRoZSBib3JkZXIgYXJvdW5kLiBVc2UgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGB0YWJzLWNvbnRlbnQoKWAuXG5AbWl4aW4gdGFicy1jb250ZW50LXZlcnRpY2FsIHtcblx0Ym9yZGVyOiAxcHggc29saWQgJHRhYi1jb250ZW50LWJvcmRlcjtcblx0Ym9yZGVyLSN7JGdsb2JhbC1sZWZ0fTogMDtcbn1cblxuLy8vIEFkZHMgc3R5bGVzIGZvciBhbiBpbmRpdmlkdWFsIHRhYiBjb250ZW50IHBhbmVsIHdpdGhpbiB0aGUgdGFiIGNvbnRlbnQgY29udGFpbmVyLlxuQG1peGluIHRhYnMtcGFuZWwge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwYWRkaW5nOiAkdGFiLWNvbnRlbnQtcGFkZGluZztcblxuXHQmLmlzLWFjdGl2ZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuXHRAbWl4aW4gZm91bmRhdGlvbi10YWJzIHtcblx0LnRhYnMge1xuXHRcdEBpbmNsdWRlIHRhYnMtY29udGFpbmVyO1xuXHR9XG5cblx0Ly8gVmVydGljYWxcblx0LnRhYnMudmVydGljYWwge1xuXHRcdEBpbmNsdWRlIHRhYnMtY29udGFpbmVyLXZlcnRpY2FsO1xuXHR9XG5cblx0Ly8gU2ltcGxlXG5cdC50YWJzLnNpbXBsZSB7XG5cdFx0PiBsaSA+IGEge1xuXHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFByaW1hcnkgY29sb3Jcblx0LnRhYnMucHJpbWFyeSB7XG5cdFx0YmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG5cblx0XHQ+IGxpID4gYSB7XG5cdFx0XHRjb2xvcjogZm9yZWdyb3VuZCgkcHJpbWFyeS1jb2xvcik7XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0YmFja2dyb3VuZDogc21hcnQtc2NhbGUoJHByaW1hcnktY29sb3IpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC50YWJzLXRpdGxlIHtcblx0XHRAaW5jbHVkZSB0YWJzLXRpdGxlO1xuXHR9XG5cblx0LnRhYnMtY29udGVudCB7XG5cdFx0QGluY2x1ZGUgdGFicy1jb250ZW50O1xuXHR9XG5cblx0LnRhYnMtY29udGVudC52ZXJ0aWNhbCB7XG5cdFx0QGluY2x1ZGUgdGFicy1jb250ZW50LXZlcnRpY2FsO1xuXHR9XG5cblx0LnRhYnMtcGFuZWwge1xuXHRcdEBpbmNsdWRlIHRhYnMtcGFuZWw7XG5cdH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRodW1ibmFpbFxuLy8vL1xuXG4vLy8gQm9yZGVyIGFyb3VuZCB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIEJvcmRlclxuJHRodW1ibmFpbC1ib3JkZXI6IHNvbGlkIDRweCAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIExlbmd0aFxuJHRodW1ibmFpbC1tYXJnaW4tYm90dG9tOiAkZ2xvYmFsLW1hcmdpbiAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgdW5kZXIgdGh1bWJuYWlsIGltYWdlcy5cbi8vLyBAdHlwZSBTaGFkb3dcbiR0aHVtYm5haWwtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgkYmxhY2ssIDAuMikgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IHVuZGVyIHRodW1ibmFpbCBpbWFnZXMuXG4vLy8gQHR5cGUgU2hhZG93XG4kdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjogMCAwIDZweCAxcHggcmdiYSgkcHJpbWFyeS1jb2xvciwgMC41KSAhZGVmYXVsdDtcblxuLy8vIFRyYW5zaXRpb24gcHJvcHJ0aWVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIFRyYW5zaXRpb25cbiR0aHVtYm5haWwtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAyMDBtcyBlYXNlLW91dCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcmFkaXVzIGZvciB0aHVtYm5haWwgaW1hZ2VzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRodW1ibmFpbC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG4vLy8gQWRkcyB0aHVtYm5haWwgc3R5bGVzIHRvIGFuIGVsZW1lbnQuXG5AbWl4aW4gdGh1bWJuYWlsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206ICR0aHVtYm5haWwtbWFyZ2luLWJvdHRvbTtcblxuICBib3JkZXI6ICR0aHVtYm5haWwtYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAkdGh1bWJuYWlsLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJHRodW1ibmFpbC1zaGFkb3c7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbkBtaXhpbiB0aHVtYm5haWwtbGluayB7XG4gIHRyYW5zaXRpb246ICR0aHVtYm5haWwtdHJhbnNpdGlvbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAkdGh1bWJuYWlsLXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gIGltYWdlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRodW1ibmFpbCB7XG4gIC50aHVtYm5haWwge1xuICAgIEBpbmNsdWRlIHRodW1ibmFpbDtcbiAgfVxuXG4gIGEudGh1bWJuYWlsIHtcbiAgICBAaW5jbHVkZSB0aHVtYm5haWwtbGluaztcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdGl0bGUtYmFyXG4vLy8vXG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItYmFja2dyb3VuZDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgV2VpZ2h0XG4kdGl0bGViYXItdGV4dC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIG1lbnUgaWNvbnMgaW5zaWRlIGEgdGl0bGUgYmFyLlxuLy8vIEB0eXBlIENvbG9yXG4kdGl0bGViYXItaWNvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgbWVudSBpY29ucyBpbnNpZGUgYSB0aXRsZSBiYXIgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiR0aXRsZWJhci1pY29uLWNvbG9yLWhvdmVyOiAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gdGhlIG1lbnUgaWNvbiBhbmQgdGV4dCBpbnNpZGUgYSB0aXRsZSBiYXIuXG4vLy8gQHR5cGUgTGVuZ3RoXG4kdGl0bGViYXItaWNvbi1zcGFjaW5nOiAwLjI1cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10aXRsZS1iYXIge1xuICAudGl0bGUtYmFyIHtcbiAgICBwYWRkaW5nOiAkdGl0bGViYXItcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkdGl0bGViYXItYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHRpdGxlYmFyLWNvbG9yO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuXG4gICAgLm1lbnUtaWNvbiB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAkdGl0bGViYXItaWNvbi1zcGFjaW5nO1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICR0aXRsZWJhci1pY29uLXNwYWNpbmc7XG4gICAgfVxuICB9XG5cbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRpdGxlLWJhci1sZWZ0LFxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICB9XG5cbiAgICAudGl0bGUtYmFyLXJpZ2h0IHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRpdGxlLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50aXRsZS1iYXItcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgLnRpdGxlLWJhci10aXRsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZm9udC13ZWlnaHQ6ICR0aXRsZWJhci10ZXh0LWZvbnQtd2VpZ2h0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0b29sdGlwXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IG9mIHRoZSBkZWZpbmVkIHRlcm0uXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGhhcy10aXAtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvcmRlciBib3R0b20gb2YgdGhlIGRlZmluZWQgdGVybS5cbi8vLyBAdHlwZSBMaXN0XG4kaGFzLXRpcC1ib3JkZXItYm90dG9tOiBkb3R0ZWQgMXB4ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbG9yIG9mIHRoZSB0b29sdGlwIGJhY2tncm91bmQuXG4vLy8gQHR5cGUgQ29sb3JcbiR0b29sdGlwLWJhY2tncm91bmQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3Igb2YgdGhlIHRvb2x0aXAgZm9udC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvb2x0aXAtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBvZiB0aGUgdG9vbHRpcCBiYWNrZ3JvdW5kLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcGFkZGluZzogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIG9mIHRoZSB0b29sdGlwIHRleHQuIEJ5IGRlZmF1bHQsIHdlIHJlY29tbWVuZCBhIHNtYWxsZXIgZm9udCBzaXplIHRoYW4gdGhlIGJvZHkgY29weS5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLWZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIHdpZHRoIGZvciB0b29sdGlwcy5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC13aWR0aDogMC43NXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGlwIGhlaWdodCBmb3IgdG9vbHRpcHMuIFRoaXMgaXMgaGVscGZ1bCBmb3IgY2FsY3VsYXRpbmcgdGhlIGRpc3RhbmNlIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvb2x0aXAgd29yZC5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b29sdGlwLXBpcC1oZWlnaHQ6ICR0b29sdGlwLXBpcC13aWR0aCAqIDAuODY2ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHRvb2x0aXBzLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvb2x0aXAtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuQG1peGluIGhhcy10aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3JkZXItYm90dG9tOiAkaGFzLXRpcC1ib3JkZXItYm90dG9tO1xuICBmb250LXdlaWdodDogJGhhcy10aXAtZm9udC13ZWlnaHQ7XG4gIGN1cnNvcjogaGVscDtcbn1cblxuQG1peGluIHRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgI3skdG9vbHRpcC1waXAtaGVpZ2h0fSk7XG4gIHotaW5kZXg6IDEyMDA7XG5cbiAgbWF4LXdpZHRoOiAxMHJlbTtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZztcblxuICBib3JkZXItcmFkaXVzOiAkdG9vbHRpcC1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJhY2tncm91bmQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBjb2xvcjogJHRvb2x0aXAtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCB1cCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG5cbiAgJi50b3A6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgY3NzLXRyaWFuZ2xlKCR0b29sdGlwLXBpcC13aWR0aCwgJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvciwgZG93bik7XG4gICAgdG9wOiAxMDAlO1xuICAgIGJvdHRvbTogYXV0bztcbiAgfVxuXG4gICYubGVmdDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCByaWdodCk7XG4gICAgdG9wOiA1MCU7XG4gICAgYm90dG9tOiBhdXRvO1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB9XG5cbiAgJi5yaWdodDo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHRvb2x0aXAtcGlwLXdpZHRoLCAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBsZWZ0KTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMTAwJTtcbiAgICBib3R0b206IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9vbHRpcCB7XG4gIC5oYXMtdGlwIHtcbiAgICBAaW5jbHVkZSBoYXMtdGlwO1xuICB9XG5cbiAgLnRvb2x0aXAge1xuICAgIEBpbmNsdWRlIHRvb2x0aXA7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHRvcC1iYXJcbi8vLy9cblxuLy8vIFBhZGRpbmcgZm9yIHRoZSB0b3AgYmFyLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgdG9wIGJhci4gVGhpcyBjb2xvciBhbHNvIGNhc2NhZGVzIHRvIG1lbnVzIHdpdGhpbiB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igc3VibWVudXMgd2l0aGluIHRoZSB0b3AgYmFyLiBVc2VmdWxsIGlmICR0b3BiYXItYmFja2dyb3VuZCBpcyB0cmFuc3BhcmVudC5cbi8vLyBAdHlwZSBDb2xvclxuJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQ6ICR0b3BiYXItYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuLy8vIFNwYWNpbmcgZm9yIHRoZSB0b3AgYmFyIHRpdGxlLlxuLy8vIEB0eXBlIE51bWJlclxuJHRvcGJhci10aXRsZS1zcGFjaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMCAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYDxpbnB1dD5gIGVsZW1lbnRzIGluc2lkZSB0aGUgdG9wIGJhci5cbi8vLyBAdHlwZSBOdW1iZXJcbiR0b3BiYXItaW5wdXQtd2lkdGg6IDIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gQnJlYWtwb2ludCBhdCB3aGljaCB0b3AgYmFyIHN3aXRjaGVzIGZyb20gbW9iaWxlIHRvIGRlc2t0b3Agdmlldy5cbi8vLyBAdHlwZSBCcmVha3BvaW50XG4kdG9wYmFyLXVuc3RhY2stYnJlYWtwb2ludDogbWVkaXVtICFkZWZhdWx0O1xuXG4vLy8gQWRkcyBzdHlsZXMgZm9yIGEgdG9wIGJhciBjb250YWluZXIuXG5AbWl4aW4gdG9wLWJhci1jb250YWluZXIge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIHBhZGRpbmc6ICR0b3BiYXItcGFkZGluZztcblxuICAmLFxuICB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRvcGJhci1iYWNrZ3JvdW5kO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHRvcGJhci1iYWNrZ3JvdW5kIGlzIGRpZmZlcm50IGZyb20gJHRvcGJhci1iYWNrZ3JvdW5kLXN1Ym1lbnVcbiAgQGlmICgkdG9wYmFyLWJhY2tncm91bmQgIT0gJHRvcGJhci1zdWJtZW51LWJhY2tncm91bmQpIHtcbiAgICB1bCB1bCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9wYmFyLXN1Ym1lbnUtYmFja2dyb3VuZDtcbiAgICB9XG4gIH1cblxuICAvLyBSZXN0cmFpbiB3aWR0aCBvZiBpbnB1dHMgYnkgZGVmYXVsdCB0byBtYWtlIHRoZW0gZWFzaWVyIHRvIGFycmFuZ2VcbiAgaW5wdXQge1xuICAgIG1heC13aWR0aDogJHRvcGJhci1pbnB1dC13aWR0aDtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogMXJlbTtcbiAgfVxuXG4gIC8vIFRoZSBhYm92ZSBzdHlsZXMgc2hvdWxkbid0IGFwcGx5IHRvIGlucHV0IGdyb3VwIGZpZWxkc1xuICAuaW5wdXQtZ3JvdXAtZmllbGQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICB9XG5cbiAgaW5wdXQuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLy8vIE1ha2VzIHNlY3Rpb25zIG9mIGEgdG9wIGJhciBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbkBtaXhpbiB0b3AtYmFyLXN0YWNrZWQge1xuICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBTdWItc2VjdGlvbnNcbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gU3ViLXNlY3Rpb25zXG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFVuZG9lcyB0aGUgQ1NTIGFwcGxpZWQgYnkgdGhlIGB0b3AtYmFyLXN0YWNrZWQoKWAgbWl4aW4uXG5AbWl4aW4gdG9wLWJhci11bnN0YWNrIHtcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItbGVmdCxcbiAgICAudG9wLWJhci1yaWdodCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdG9wLWJhciB7XG4gIC8vIFRvcCBiYXIgY29udGFpbmVyXG4gIC50b3AtYmFyIHtcbiAgICBAaW5jbHVkZSB0b3AtYmFyLWNvbnRhaW5lcjtcblxuICAgIC8vIFN0YWNrIG9uIHNtYWxsIHNjcmVlbnMgYnkgZGVmYXVsdFxuICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHRvcGJhci11bnN0YWNrLWJyZWFrcG9pbnQpIHtcbiAgICAgIEBpbmNsdWRlIHRvcC1iYXItdW5zdGFjaztcbiAgICB9XG5cbiAgICAvLyBHZW5lcmF0ZSBjbGFzc2VzIGZvciBzdGFja2luZyBvbiBlYWNoIHNjcmVlbiBzaXplIChkZWZpbmVkIGluICRicmVha3BvaW50LWNsYXNzZXMpXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAmLnN0YWNrZWQtZm9yLSN7JHNpemV9IHtcbiAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvcC1iYXItc3RhY2tlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdWItc2VjdGlvbnNcbiAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBtYXJnaW46ICR0b3BiYXItdGl0bGUtc3BhY2luZztcbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0LFxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLnRvcC1iYXItdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAkdG9wYmFyLXRpdGxlLXNwYWNpbmc7XG5cbiAgICAgIC5tZW51LWljb24ge1xuICAgICAgICBib3R0b206IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudG9wLWJhci1sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC50b3AtYmFyLXJpZ2h0IHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHNpemU6IC16Zi1icC10by1lbSgkc2l6ZSkgLSAoMSAvIDE2KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtICgxIC8gMTYpO1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXMgYnkgWlVSQlxuLy8gZm91bmRhdGlvbi56dXJiLmNvbVxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZmxvYXRcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZmxvYXQtY2xhc3NlcyB7XG4gIC5mbG9hdC1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZsb2F0LXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5mbG9hdC1jZW50ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIC5jbGVhcmZpeCB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcyB7XG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IHVzaW5nIGp1c3RpZnktY29udGVudFxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgbGVmdCkge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gVmVydGljYWwgYWxpZ25tZW50IHVzaW5nIGFsaWduLWl0ZW1zIGFuZCBhbGlnbi1zZWxmXG4gIEBlYWNoICR2ZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtYWxpZ24ge1xuICAgIC5hbGlnbi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR5OiAkdmRpcik7XG4gICAgfVxuXG4gICAgLmFsaWduLXNlbGYtI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKCR5OiAkdmRpcik7XG4gICAgfVxuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNiB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJjb2RlLFxucHJlIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2U7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTIpO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR0ZXh0LXNoYWRvdzogMCAxcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuXHR3aGl0ZS1zcGFjZTogcHJlO1xuXHR3b3JkLXNwYWNpbmc6IG5vcm1hbDtcblx0d29yZC1icmVhazogbm9ybWFsO1xuXHR3b3JkLXdyYXA6IG5vcm1hbDtcblx0bGluZS1oZWlnaHQ6IDEuNWVtO1xuXHRjb2xvcjogJGxpZ2h0LWdyYXk7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGJvcmRlcjogMDtcblx0dGFiLXNpemU6IDQ7XG5cdGh5cGhlbnM6IG5vbmU7XG59XG5cbi8qIENvZGUgYmxvY2tzICovXG5wcmUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogYXV0bztcblx0cGFkZGluZzogMWVtO1xuXHRtYXJnaW46IDJlbSAwO1xuXHRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuLyogSW5saW5lIGNvZGUgKi9cbjpub3QocHJlKSA+IGNvZGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogLTFweDtcblx0bWFyZ2luOiAwIDRweDtcblx0cGFkZGluZzogNHB4IDZweDtcblx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdGJhY2tncm91bmQtY29sb3I6ICRsaWdodG5lc3MtZ3JheTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRjb2xvcjogJHByaW1hcnktY29sb3I7XG59XG5cbnByZSB7XG5cdC50b2tlbiB7XG5cdFx0Ji5jb21tZW50LFxuXHRcdCYucHJvbG9nLFxuXHRcdCYuZG9jdHlwZSxcblx0XHQmLmNkYXRhIHtcblx0XHRcdGNvbG9yOiBzbGF0ZWdyYXk7XG5cdFx0fVxuXG5cdFx0Ji5wdW5jdHVhdGlvbixcblx0XHQmLm9wZXJhdG9yLFxuXHRcdCYuZW50aXR5LFxuXHRcdCYudXJsLFxuXHRcdCYudmFyaWFibGUge1xuXHRcdFx0Y29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdH1cblxuXHRcdC5uYW1lc3BhY2Uge1xuXHRcdFx0b3BhY2l0eTogLjc7XG5cdFx0fVxuXG5cdFx0Ji5wcm9wZXJ0eSxcblx0XHQmLnRhZyxcblx0XHQmLmNvbnN0YW50LFxuXHRcdCYuc3ltYm9sLFxuXHRcdCYuZGVsZXRlZCB7XG5cdFx0XHRjb2xvcjogI2Y5MjY3Mjtcblx0XHR9XG5cblx0XHQmLmJvb2xlYW4sXG5cdFx0Ji5udW1iZXIge1xuXHRcdFx0Y29sb3I6ICNhZTgxZmY7XG5cdFx0fVxuXG5cdFx0Ji5zZWxlY3Rvcixcblx0XHQmLmF0dHItbmFtZSxcblx0XHQmLnN0cmluZyxcblx0XHQmLmNoYXIsXG5cdFx0Ji5idWlsdGluLFxuXHRcdCYuaW5zZXJ0ZWQge1xuXHRcdFx0Y29sb3I6ICNhNmUyMmU7XG5cdFx0fVxuXG5cdFx0Ji5hdHJ1bGUsXG5cdFx0Ji5hdHRyLXZhbHVlLFxuXHRcdCYuZnVuY3Rpb24ge1xuXHRcdFx0Y29sb3I6ICNlNmRiNzQ7XG5cdFx0fVxuXG5cdFx0Ji5rZXl3b3JkIHtcblx0XHRcdGNvbG9yOiAjNjZkOWVmO1xuXHRcdH1cblxuXHRcdCYucmVnZXgsXG5cdFx0Ji5pbXBvcnRhbnQge1xuXHRcdFx0Y29sb3I6ICNmZDk3MWY7XG5cdFx0fVxuXG5cdFx0Ji5pbXBvcnRhbnQsXG5cdFx0Ji5ib2xkIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdH1cblx0XHQmLml0YWxpYyB7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0fVxuXG5cdFx0Ji5lbnRpdHkge1xuXHRcdFx0Y3Vyc29yOiBoZWxwO1xuXHRcdH1cblx0fVxuXG5cdCYubGFuZ3VhZ2UtY3NzIC50b2tlbi5zdHJpbmcsXG5cdC5zdHlsZSAudG9rZW4uc3RyaW5nIHtcblx0XHRjb2xvcjogJGxpZ2h0bmVzcy1ncmF5O1xuXHR9XG59XG5cbnByZS5saW5lLW51bWJlcnMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctbGVmdDogNTVweDtcblx0Y291bnRlci1yZXNldDogbGluZW51bWJlcjtcblxuXHQ+IGNvZGUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdC5saW5lLW51bWJlcnMtcm93cyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHRvcDogLTEycHg7XG5cdFx0Ym90dG9tOiAtMTJweDtcblx0XHRsZWZ0OiAtNTVweDtcblx0XHR3aWR0aDogNDBweDtcblx0XHRwYWRkaW5nOiAxM3B4IDA7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IC0xcHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIC4wNSk7XG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0XHQ+IHNwYW4ge1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGNvdW50ZXItaW5jcmVtZW50OiBsaW5lbnVtYmVyO1xuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBjb3VudGVyKGxpbmVudW1iZXIpO1xuXHRcdFx0XHRjb2xvcjogJGRhcmstZ3JheTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5wcmUuY29kZS10b29sYmFyIHtcblx0PiAudG9vbGJhciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvdHRvbTogMjBweDtcblx0XHRyaWdodDogMTBweDtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgLjNzO1xuXG5cdFx0LnRvb2xiYXItaXRlbSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDEycHg7XG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHRmb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHk7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxZW07XG5cdFx0XHRiYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZnBvcmFuZ2UtY29sb3I7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmOmhvdmVyID4gLnRvb2xiYXIge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbiIsIkBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSkge1xuXHQuaGVhZGVyLW5hdiB7XG5cdFx0Jl9faXRlbSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQ+IC5oZWFkZXItbmF2X19jaGlsZHJlbiB7XG5cdFx0XHRcdFx0ei1pbmRleDogKzE7XG5cdFx0XHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHRcdFx0XHRtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTcwcHgpO1xuXHRcdFx0XHRcdGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IHJnYmEoMCwgMCwgMCwgLjIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jl9fY2hpbGRyZW4ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtaW4td2lkdGg6IDI4MHB4O1xuXHRcdFx0bWF4LWhlaWdodDogMDtcblx0XHRcdHBhZGRpbmc6IDEwcHggMDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAkbGlnaHRuZXNzLWdyYXk7XG5cdFx0XHRib3JkZXItdG9wOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgcmdiYSgwLCAwLCAwLCAuMik7XG5cdFx0XHR0cmFuc2l0aW9uOiAuM3MgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblxuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0XHRsZWZ0OiAyMHB4O1xuXHRcdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHRuZXNzLWdyYXk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0bGVmdDogMjBweDtcblx0XHRcdFx0XHRyaWdodDogMjBweDtcblx0XHRcdFx0XHR0b3A6IGF1dG87XG5cdFx0XHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0XHRcdGhlaWdodDogMDtcblx0XHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0bmVzcy1ncmF5O1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDE2cHggMjBweDtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpO1xuXHRcdFx0XHRcdHRyYW5zaXRpb246IHBhZGRpbmcgLjJzO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsImJvZHkge1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdGhlaWdodDogYXV0bztcbn1cbm1haW4ge1xuXHQucG9zdGxpc3RzIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBvbmx5KSB7XG5cdFx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmJsb2ctcG9zdHNfX2ltYWdlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibGFjaywgLjIpO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHRwYWRkaW5nLWJvdHRvbTogMzMlO1xuXHRcdHRyYW5zaXRpb246IC4zcztcblxuXHRcdCY6bm90KC5zdGlja3kpOmhvdmVyIHtcblx0XHRcdG9wYWNpdHk6IC44O1xuXHRcdH1cblx0fVxuXG5cdC5ibG9nLXBvc3RzX19kYXRhLCAubmV3cy1wb3N0c19fZGF0YSB7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luLXRvcDogLTI1cHg7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDAgMzBweDtcblx0XHRcdHRvcDogMDtcblx0XHRcdGhlaWdodDogMDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdC5ibG9nLXBvc3RzX190ZXh0LWl0ZW0ge1xuXHRcdHAge1xuXHRcdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmJsb2ctd2VsY29tZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xuXHRcdHBhZGRpbmc6IDQwcHggMDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKGxhcmdlIGRvd24pIHtcblx0XHRcdHBhZGRpbmc6IDcwcHggMjBweDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRwYWRkaW5nOiA1MHB4IDIwcHggMTBweDtcblx0XHR9XG5cblx0XHRoMSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMjZweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDI2cHg7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRib3R0b206IDA7XG5cdFx0XHRcdHdpZHRoOiAxLjg3NXJlbTtcblx0XHRcdFx0aGVpZ2h0OiAuMDYyNXJlbTtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbm9ybWFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGgzIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDI5KTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblxuXHRcdFx0c3Ryb25nIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQudGVjaG5pY2FsLWJhY2tncm91bmQge1xuXHRcdFx0aW1nIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDIwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdFx0cmlnaHQ6IC0xMCU7XG5cdFx0XHRcdFx0dG9wOiAtNSU7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiBzY2FsZSguOCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuXHRcdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHNjYWxlKC44KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSkge1xuXHRcdFx0XHRcdHJpZ2h0OiAxMCU7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiBzY2FsZSgxKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC50ZWNoLXBvc3RzIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQuaW1hZ2Utc2hhZG93IHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDI1ZGVnLCByZ2JhKCRibGFjaywgLjYpIDEwJSwgcmdiYSgkYmxhY2ssIC4yKSA2NSUsIHJnYmEoJGJsYWNrLCAwKSAxMDAlKTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKGxhcmdlIG9ubHkpIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0fVxuXG5cdFx0LmJ1dHRvbi50cmlhbmdsZSB7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6ICRjb2xvci1idXR0b24taG92ZXI7XG5cblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yLWJ1dHRvbi1ob3Zlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5zdGlja3kge1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0cGFkZGluZy1ib3R0b206IDM1JTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChsYXJnZSBkb3duKSB7XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IGF1dG87XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmJsb2ctcG9zdHNfX3RpdGxlLWl0ZW0ge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRoMyB7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcblx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyMik7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5ibG9nLXBvc3RzX19wb3N0LWRhdGUge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdGNvbG9yOiAkZGFyay1ncmF5O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYmxvZy1wb3N0c19fYXV0aG9yIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdH1cblxuXHRcdC5yb3cge1xuXHRcdFx0YXJ0aWNsZSB7XG5cdFx0XHRcdCY6bnRoLWNoaWxkKGV2ZW4pIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDUlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjpudGgtY2hpbGQob2RkKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogNSU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoZXZlbikge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKG9kZCkge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0cGFkZGluZzogMDtcblxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKGV2ZW4pIHtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQob2RkKSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdFx0XHQmOm50aC1jaGlsZChldmVuKSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKG9kZCkge1xuXHRcdFx0XHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHQudHJpYW5nbGUge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRidXR0b24tZ3JheTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGFydGljbGUge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRtYXJnaW4tdG9wOiA4MHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDUwcHg7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQudGV4dC1hbmltYXRlLXN0aWNrIHtcblx0XHRcdFx0aGVpZ2h0OiA4MHB4O1xuXG5cdFx0XHRcdGVtIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDM2KTtcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRcdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRcdFx0XHRcdHdpZHRoOiA4MCU7XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDM1cHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHotaW5kZXg6ICsxO1xuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBvbmx5KSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDMyKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyMyk7XG5cdFx0XHRcdFx0XHR3aWR0aDogNDAwcHg7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdFx0XHRcdFx0Y29sb3I6ICRncmF5O1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRhbmltYXRpb246IGN1cnNvcl9ibGluayAxcyBpbmZpbml0ZTtcblx0XHRcdFx0XHRjb2xvcjogJGZwb3JhbmdlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuY2F0ZWdvcnlfdGl0bGUge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcblx0XHRcdFx0bWFyZ2luLXRvcDogMTVweDtcblx0XHRcdFx0Y29sb3I6ICRncmF5O1xuXHRcdFx0XHR0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRjb2xvcjogJGZwb3JhbmdlO1xuXG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5zdGlja3ktaW5mbyB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAxNDBweDtcblx0XHRcdFx0bGVmdDogMjBweDtcblx0XHRcdFx0cmlnaHQ6IDIwcHg7XG5cdFx0XHRcdHRleHQtc2hhZG93OiAxcHggMXB4IDJweCByZ2JhKCRibGFjaywgLjMpO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2Ugb25seSkge1xuXHRcdFx0XHRcdHRvcDogMiU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYnV0dG9uIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdGgzIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtIG9ubHkpIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS10YWJsZTtcblx0XHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmJsb2ctcG9zdHNfX2F1dGhvciB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyMSk7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IDJweDtcblx0XHRcdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblxuXHRcdFx0XHRcdHN2ZyB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDEyKTtcblx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiA4cHggMjBweDtcblx0XHRcdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcblx0XHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblxuXHRcdFx0XHRcdFx0c3ZnIHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYmxvZy1wb3N0c19fdGl0bGUtaXRlbSB7XG5cdFx0XHRcdFx0d2lkdGg6IDgwJTtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0XHR3aWR0aDogOTUlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMzYpO1xuXG5cdFx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0XHRcdGxldHRlci1zcGFjaW5nOiAwO1xuXHRcdFx0XHRcdFx0XHRjb2xvcjogJGdyYXk7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjIpO1xuXHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXG5cdFx0XHRcdFx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHRcdFx0XHRcdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmJsb2ctcG9zdHNfX2RhdGEtc3RpY2t5IHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcblx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuXHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0XHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGRhcmstZ3JheTtcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHRcdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5ibG9nLXBvc3RzX190ZXh0LWl0ZW0tc3RpY2t5IHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcblx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4wNWVtO1xuXHRcdFx0XHRmb250LXdlaWdodDogMTAwO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdFx0XHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseTtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE2KTtcblx0XHRcdFx0XHRjb2xvcjogJGdyYXk7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMTVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRhLmJsb2ctcG9zdHNfX2xpbmstaXRlbS5idXR0b24uc3RpY2sge1xuXHRcdFx0XHRjb2xvcjogJGZwb3JhbmdlO1xuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdGNvbG9yOiAkYmxhY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0YS5ibG9nLXBvc3RzX19saW5rLWl0ZW0uYnV0dG9uLnN0aWNrLmJ1dHRvbi50cmlhbmdsZTo6YWZ0ZXIge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRmcG9yYW5nZTtcblx0XHRcdH1cblxuXG5cdFx0XHQuYmxvZy1wb3N0c19fbGluay1pdGVtLmJ1dHRvbiB7XG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi5wb3N0LWhlYWRlciB7XG5cdC5pbWFnZS1zaGFkb3cge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDMwZGVnLCByZ2JhKCRibGFjaywgLjgpIDAlLCByZ2JhKCRibGFjaywgLjIpIDY1JSwgcmdiYSgkYmxhY2ssIDApIDEwMCUpO1xuXHR9XG5cdGhlaWdodDogNDAwcHg7XG5cdGNvbG9yOiAkd2hpdGU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luOiAwIC00NXB4O1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG5cdC50ZXh0LWFuaW1hdGUtc2luZ2xlIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0d2lkdGg6IDgwJTtcblxuXHRcdHNwYW4ge1xuXHRcdFx0YW5pbWF0aW9uOiBjdXJzb3JfYmxpbmsgMXMgaW5maW5pdGU7XG5cdFx0XHRjb2xvcjogJGZwb3JhbmdlO1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYyg0NCk7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE1cHg7XG5cdFx0fVxuXG5cdFx0ZW0ge1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDQ0KTtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDQ1cHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0dGV4dC1zaGFkb3c6IDFweCAxcHggNXB4IHJnYmEoJGJsYWNrLCAuMik7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBvbmx5KSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDM1KTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMmVtO1xuXHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdFx0XHR3aWR0aDogOTAlO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdHdpZHRoOiA4MCU7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxLjJlbTtcblx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyMyk7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmJsb2ctaGVhZGVyX19pbmZvIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHdpZHRoOiA4MCU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHR0b3A6IDEwcHg7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQubmV3cy1wb3N0c19fZGF0YSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuXHRcdGNvbG9yOiAkd2hpdGU7XG5cdH1cblxuXHQuaW5mby1wb3N0IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAxMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0YWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuXHRcdFx0dG9wOiAxNSU7XG5cdFx0XHRib3R0b206IGluaXRpYWw7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cdH1cblxuXHQucG9zdF9oZWFkZXJfX2F1dGhvciB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bWFyZ2luOiAyMHB4IDAgMCA0MHB4O1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0d2lkdGg6IDEwMCU7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3JkZXItbGVmdDogM3B4IHNvbGlkICR5ZWxsb3ctYm9yZGVyO1xuXHRcdFx0bGVmdDogLTFweDtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHRcdGhlaWdodDogNDhweDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gZG93bikge1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgMCAwIDguMzMzJTtcblx0XHR9XG5cblx0XHQuYXV0aG9yIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gb25seSkge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYXV0aG9yLWF2YXRhciB7XG5cdFx0XHRtYXJnaW46IDVweCAxMHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHR3aWR0aDogMzBweDtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHR3aWR0aDogMzBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdG1hcmdpbjogNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGg1IHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxMyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5wb3N0X19jb250ZW50IHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdH1cblxuXHRoMywgaDQge1xuXHRcdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdFx0bWFyZ2luLXRvcDogNTBweDtcblx0fVxuXG5cdGgzIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIyKTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR9XG5cblx0aDQge1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0aDMsIGg0IHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0fVxuXHR9XG5cblx0dWwge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwIDAgMjBweDtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogMCAwIDAgMzBweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRmcG9yYW5nZS1jb2xvcjtcblx0XHRcdFx0d2lkdGg6IDE1cHg7XG5cdFx0XHRcdHRvcDogMTJweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRzdHJvbmcge1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdH1cblxuXHQucG9zdHNfbGlua3Mge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbi10b3A6IDUwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTUwcHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdH1cblxuXHRcdGgzIHtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogLjFlbTtcblx0XHR9XG5cblx0XHQubmV4dC1wb3N0LCAucHJldmlvdXMtcG9zdCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cblx0XHRcdHN0cm9uZyB7XG5cdFx0XHRcdGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4xZW07XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHQmOmhvdmVyIHNwYW4ge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIC44cyBlYXNlLWluLW91dDtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdG1hcmdpbjogYXV0bztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdG1heC13aWR0aDogMjAwcHg7XG5cdFx0XHRcdGNvbG9yOiAkbWVkaXVtLWdyYXk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxOXB4O1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcblxuXG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodG5lc3MtZ3JheTtcblx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0bGVmdDogMzUlO1xuXHRcdFx0XHRcdHdpZHRoOiA2MHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5uZXh0LXBvc3Qge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHRzdmcge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciBzdmcge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogNXB4O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2Utb3V0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5wcmV2aW91cy1wb3N0IHtcblx0XHRcdHN0cm9uZyA+IHN2ZyB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciBzdmcge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZS1vdXQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5yZWxhdGVkLXBvc3RzIHtcblx0LnJlbGF0ZWQge1xuXHRcdHBhZGRpbmc6IDQ1cHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRwcmltYXJ5LWJvcmRlcjtcblx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkICRwcmltYXJ5LWJvcmRlcjtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktYm9yZGVyO1xuXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRwcmltYXJ5LWJvcmRlcjtcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0bWluLWhlaWdodDogMTAwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkbGlnaHRuZXNzLWdyYXk7XG5cdFx0fVxuXG5cdFx0aDMge1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxOSk7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCk7XG5cdFx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdGNvbG9yOiAkZ3JheTtcblx0XHR9XG5cblx0XHQuYnV0dG9uLnRyaWFuZ2xlIHtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogJGNvbG9yLWJ1dHRvbi1ob3ZlcjtcblxuXHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3ItYnV0dG9uLWhvdmVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmJsb2ctcG9zdHNfX2ltYWdlIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG59XG4iLCIuYnVzaW5lc3MtcGFuZWwge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRsaWdodG5lc3MtZ3JheTtcblx0cGFkZGluZzogMTBweCAyMHB4O1xuXHRtYXJnaW4tdG9wOiA0NXB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW4tdG9wOiAyNXB4O1xuXHRcdGNvbG9yOiAkZ3JheTtcblx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdC5idXR0b24ge1xuXHRcdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHR9XG5cdH1cblxuXHRoMyB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRjb2xvcjogJGdyYXk7XG5cblx0XHQmOjpiZWZvcmUsICY6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0c3ZnIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAtMjBweDtcblx0XHRsZWZ0OiA0MCU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDIwcHggJHdoaXRlO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0bGVmdDogNDUlO1xuXHRcdH1cblx0fVxufVxuXG4uYmxvZy1zaWRlYmFyIHtcblx0cGFkZGluZzogMzVweCAwO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQgKGxhcmdlIGRvd24pIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gZG93bikge1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdH1cblxuXHQuYnV0dG9uX2JhY2sge1xuXHRcdGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuXHRcdHBhZGRpbmctbGVmdDogMTBweDtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE5KTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRsZXR0ZXItc3BhY2luZzogLjFlbTtcblxuXHRcdD4gc3ZnIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdH1cblxuXHRcdCY6aG92ZXIgc3ZnIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtNXB4O1xuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtIG9ubHkpIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS4yNWVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHVsIHtcblx0XHRtYXJnaW46IDAgMCAyMHB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuXHRcdGxldHRlci1zcGFjaW5nOiAxcHg7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxOSk7XG5cblx0XHRhIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTBweDtcblx0XHR9XG5cblx0XHQuY2hpbGRyZW4ge1xuXHRcdFx0YSB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHRcdHBhZGRpbmc6IDVweCAwIDAgMTVweDtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0XHRcdFx0XHR3aWR0aDogOHB4O1xuXHRcdFx0XHRcdHRvcDogMTVweDtcblx0XHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JheS1ub3JtYWw7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDE4cHg7XG5cdFx0XHRcdFx0Y29sb3I6ICRmcG9yYW5nZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGgzIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGxldHRlci1zcGFjaW5nOiAycHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW46IDQycHggMDtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0Ym90dG9tOiAtMS4yNXJlbTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMS44NzVyZW07XG5cdFx0XHRoZWlnaHQ6IC4wNjI1cmVtO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyYXktbm9ybWFsO1xuXHRcdH1cblx0fVxuXG5cdC5jYXQtaXRlbSB7XG5cdFx0cGFkZGluZzogM3B4IDA7XG5cblx0XHR1bCB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE1KTtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IC44O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jYXQtaXRlbS0xIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LndpZGdldF9jYXRlZ29yaWVzIHtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdGgzIHtcblx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTJweDtcblx0XHRcdFx0bWluLWhlaWdodDogMTZweDtcblx0XHRcdFx0bWluLXdpZHRoOiAxNnB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Rpc3QvaW1hZ2VzL2ljb25zL2NhdC5wbmcnKTtcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG5cdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LndpZGdldF90YWdfY2xvdWQge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0aDMge1xuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWluLWhlaWdodDogMTZweDtcblx0XHRcdFx0bWluLXdpZHRoOiAxNnB4O1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDEycHg7XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Rpc3QvaW1hZ2VzL2ljb25zL3RhZy5wbmcnKTtcblx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQudGFnY2xvdWQge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cblx0XHRhIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGZvbnQtd2VpZ2h0OiAzMDA7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0XHRcdGJhY2tncm91bmQ6ICRsaWdodC1ncmF5O1xuXHRcdFx0cGFkZGluZzogMXB4IDVweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDJweDtcblx0XHR9XG5cdH1cbn1cblxuLnNpZGViYXItcmlnaHQge1xuXHRib3JkZXItbGVmdDogMXB4IHNvbGlkICRncmF5LW5vcm1hbDtcblx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBkb3duKSB7XG5cdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdGJvcmRlci1sZWZ0OiBub25lO1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHRoMyB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuXG5cdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi10b3A6IDcwcHg7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnNoYXJlLCAuY29tbWVudCB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0LnNoYXJlIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGdyYXktbm9ybWFsO1xuXHRcdHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIC5uZXctc29jaWFsLXNoYXJlcyB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cblxuXHQuY29tbWVudCB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0c3ZnIHtcblx0XHRjb2xvcjogJHByaW1hcnktc3ZnO1xuXHR9XG5cblx0YSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLnBvc3QtdGl0bGUge1xuXHRoMiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdFx0cGFkZGluZzogNTBweCAwO1xuXHRcdGxldHRlci1zcGFjaW5nOiAuMWVtO1xuXHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjQpO1xuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRib3R0b206IC0zNXB4O1xuXHRcdFx0aGVpZ2h0OiA3MHB4O1xuXHRcdFx0d2lkdGg6IDFweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodG5lc3MtZ3JheTtcblx0XHR9XG5cdH1cbn1cbiIsIi5zdWJzY3JpYmUsIC5zdWJzY3JpYmUtc2luZ2xlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRiYWNrZ3JvdW5kOiAkc3Vic2NyaWJlLWJnO1xuXHRoZWlnaHQ6IGF1dG87XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW4tdG9wOiA1MHB4O1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXJnaW4tdG9wOiAtMjBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBvbmx5KSB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yNXB4O1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdH1cblxuXHRwIHtcblx0XHRmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0bWFyZ2luLXRvcDogNTBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHRwYWRkaW5nOiAwIDE1cHg7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtIG9ubHkpIHtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdG1hcmdpbi1sZWZ0OiAtNTBweDtcblx0XHR9XG5cdH1cblxuXHQuYnV0dG9uIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0cGFkZGluZzogMTVweCAzMHB4IDIwcHggMzVweDtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBvbmx5KSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0cGFkZGluZzogMTVweDtcblxuXHRcdFx0c3ZnIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDM1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtIG9ubHkpIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuc3Vic2NyaWJ0aW9uIHtcblx0XHRtYXJnaW4tdG9wOiA2MHB4O1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobGFyZ2Ugb25seSkge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdFx0bWFyZ2luOiAxMHB4IDA7XG5cdFx0fVxuXHR9XG59XG5cbi5mb290ZXIge1xuXHRAaW5jbHVkZSBicmVha3BvaW50IChsYXJnZSBvbmx5KSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHR9XG5cblx0YXNpZGUge1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG5cdFx0XHRwYWRkaW5nOiAwIDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmNyIHtcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXG5cdFx0Lm1lbnUge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bik7XG5cblx0XHRcdGEge1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGgzIHtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdGxldHRlci1zcGFjaW5nOiAuMWVtO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0cGFkZGluZy1ib3R0b206IDMwcHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0XHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0fVxuXHR9XG5cblx0LmZvb3Rlcm1lbnUge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBvbmx5KSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRsaSB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5hcmNoaXZlLWJsb2NrIHtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHRwYWRkaW5nOiA0MHB4O1xuXHRcdH1cblxuXHRcdC5hcmNoaXZlcy1saW5rcyB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0XHRoMiB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRcdHdpZHRoOiBjYWxjKDUwJSAtIDExcHgpO1xuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0Ji5tb3JlIHtcblx0XHRcdFx0XHRjb2xvcjogJG1vcmUtY29sb3I7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMTVweDtcblxuXHRcdFx0XHRcdDpob3ZlciB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5tZW51IHtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0XHRcdFx0dWwge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDVweDtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmZvb3RlcmNvcHlyaWdodCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHR0ZXh0LWFsaWduOiBhdXRvO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0cGFkZGluZy10b3A6IDEwcHg7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobGFyZ2UgZG93bikge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdH1cblx0fVxuXG5cdC50YWdjbG91ZCB7XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0cGFkZGluZy1yaWdodDogNXB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDI1cHg7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNCkhaW1wb3J0YW50O1xuXHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLjA3ZW07XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQubWVudS1mb290ZXItY29udGFpbmVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdHVsIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHQ6OmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0XHRcdFx0XHR3aWR0aDogMTBweDtcblx0XHRcdFx0XHR0b3A6IC01cHg7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmF5LW5vcm1hbDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHBhZGRpbmctdG9wOiAzcHg7XG5cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogNHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uc3Vic2NyaWJlLXNpbmdsZSB7XG5cdGJhY2tncm91bmQ6IG5vbmU7XG5cdGhlaWdodDogYXV0bztcblx0bWFyZ2luLXRvcDogNDBweDtcblxuXHQuYnV0dG9uIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XG5cdH1cbn1cbiIsIi5oZWFkZXIge1xuXHQmX19zdGlja3kge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHRuZXNzLWdyYXk7XG5cblx0XHRpbnB1dCB7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0cGFkZGluZy10b3A6IDIycHggMCAwO1xuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMTVweDtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuaGVhZGVyX190b3Age1xuXHRcdC5oZWFkZXJfX2xvZ28ge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IDI1MHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChsYXJnZSBkb3duKSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5oZWFkZXJfX2xvZ28tZnAge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IDI1MHB4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChsYXJnZSBkb3duKSB7XG5cdFx0XHRcdHdpZHRoOiAyMTBweDtcblx0XHRcdH1cblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5oZWFkZXItc2VhcmNoIHtcblx0XHRpbnB1dCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDEuMjVyZW07XG5cdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxZW07XG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMDtcblx0XHR9XG5cdH1cbn1cblxuLmNvbnRlbnRfX3NvY2lhbG1lZGlhIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludCAobGFyZ2UgZG93bikge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cblx0XHRsaSB7XG5cdFx0XHRwYWRkaW5nOiAwIHJlbS1jYWxjKDEyKTtcblx0XHR9XG5cdH1cbn1cbiIsIi5zdWJzY3JpYmUtd2lkZ2V0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXHRhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuXHR3aWR0aDogMTAwJTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gZG93bikge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cblxuXG5cdD4gLndpZGdldCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ei1pbmRleDogKzE7XG5cblx0XHQmOm5vdCg6b25seS1jaGlsZCkge1xuXHRcdFx0JjpudGgtY2hpbGQoMSkge1xuXHRcdFx0XHR3aWR0aDogNTAlO1xuXG5cdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQud2lkZ2V0LWNvbnRlbnQge1xuXHRcdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN1YnNjcmliZS13aWRnZXRfX2NvbnRlbnQge1xuXHRcdFx0XHRcdG9yZGVyOiAwO1xuXHRcdFx0XHRcdGZsZXg6IDAgMSBhdXRvO1xuXHRcdFx0XHRcdGFsaWduLXNlbGY6IGNlbnRlcjtcblx0XHRcdFx0XHRwYWRkaW5nOiAzMHB4IDExMHB4IDAgMjVweDtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHAge1xuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE5cHg7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN1YnNjcmliZS13aWRnZXRfX2ltYWdlIHtcblx0XHRcdFx0XHRvcmRlcjogMjtcblx0XHRcdFx0XHRmbGV4OiAwIDEgYXV0bztcblx0XHRcdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHJpZ2h0OiAtMjIwcHg7XG5cdFx0XHRcdFx0Ym90dG9tOiA1MHB4O1xuXG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuc3Vic2NyaWJlLXdpZGdldF9fYnV0dG9uIHtcblx0XHRcdFx0XHRvcmRlcjogMTtcblx0XHRcdFx0XHRmbGV4OiAwIDEgYXV0bztcblx0XHRcdFx0XHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdFx0ei1pbmRleDogKzE7XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChtZWRpdW0gZG93bikge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LmJ1dHRvbiB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMjBweCAxM3B4O1xuXG5cdFx0XHRcdFx0XHQmOmhvdmVyIHN2ZyB7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdCY6bnRoLWNoaWxkKDIpIHtcblx0XHRcdFx0LndpZGdldC1jb250ZW50IHtcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuc3Vic2NyaWJlLXdpZGdldF9fY29udGVudCB7XG5cdFx0XHRcdFx0b3JkZXI6IDA7XG5cdFx0XHRcdFx0ZmxleDogMCAxIGF1dG87XG5cdFx0XHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDUwcHggMjBweCA1MHB4IDUwcHg7XG5cdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1lZGl1bSBkb3duKSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpO1xuXHRcdFx0XHRcdFx0Zm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuXHRcdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMjVweDtcblxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bikge1xuXHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTlweDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0XHRcdFx0cGFkZGluZzogMTBweCAxMHB4IDA7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN1YnNjcmliZS13aWRnZXRfX2ltYWdlIHtcblx0XHRcdFx0XHRvcmRlcjogMjtcblx0XHRcdFx0XHRmbGV4OiAwIDEgYXV0bztcblx0XHRcdFx0XHRhbGlnbi1zZWxmOiBjZW50ZXI7XG5cdFx0XHRcdFx0ei1pbmRleDogKzE7XG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdHJpZ2h0OiAtODBweDtcblx0XHRcdFx0XHRib3R0b206IDMwcHg7XG5cblx0XHRcdFx0XHRAaW5jbHVkZSBicmVha3BvaW50IChsYXJnZSBvbmx5KSB7XG5cdFx0XHRcdFx0XHRib3R0b206IDc1cHg7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAobWVkaXVtIGRvd24pIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN1YnNjcmliZS13aWRnZXRfX2J1dHRvbiB7XG5cdFx0XHRcdFx0b3JkZXI6IDE7XG5cdFx0XHRcdFx0ZmxleDogMCAxIGF1dG87XG5cdFx0XHRcdFx0YWxpZ24tc2VsZjogY2VudGVyO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdFx0ei1pbmRleDogKzE7XG5cblx0XHRcdFx0XHQuYnV0dG9uIHtcblx0XHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuXHRcdFx0XHRcdFx0cGFkZGluZzogMTBweCAyMHB4IDEzcHg7XG5cblx0XHRcdFx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNyk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdCY6aG92ZXIgc3ZnIHtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQud2lkZ2V0LWNvbnRlbnQge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdGJvZHkuaG9tZSAmIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0Ji53aGl0ZSB7XG5cdFx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdH1cblxuXHRcdCYuYmxhY2sge1xuXHRcdFx0Y29sb3I6ICR3aGl0ZTtcblx0XHR9XG5cdH1cbn1cbiIsIi5uZXctc29jaWFsLXNoYXJlcyB7XG5cdHBhZGRpbmctdG9wOiAyMHB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0bWFyZ2luLXRvcDogLTUwcHg7XG5cdGZvbnQtc2l6ZTogcmVtLWNhbGMoMCk7XG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHRib3gtc2hhZG93OiAwIDAgMjBweCAxcHggcmdiYSgkc2hhZG93LWNvbG9yLCAuOCk7XG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiArMTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR0cmFuc2l0aW9uOiAuM3MgZWFzZS1pbi1vdXQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LnNoYXJlOmhvdmVyICYge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0aGVpZ2h0OiA0MDBweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdGhlaWdodDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQuYnV0dG9ucyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDIyMHB4KTtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRtYXJnaW4tbGVmdDogMThweDtcblx0XHRiYWNrZ3JvdW5kOiAkd2hpdGU7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50IChzbWFsbCBkb3duKSB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXHR9XG5cblx0aW5wdXRbdHlwZT1yYWRpb10ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQuc29jaWFsLWJ1dHRvbiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0d2lkdGg6IDQwcHg7XG5cdFx0aGVpZ2h0OiA0MHB4O1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Rpc3QvaW1hZ2VzL2ljb25zL3Nwcml0ZS1zb2NpYWwtbmV3LnBuZycpO1xuXHRcdHRyYW5zaXRpb246IC4ycztcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQgKHNtYWxsIGRvd24pIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbi1yaWdodDogNXB4O1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0b3BhY2l0eTogLjg7XG5cdFx0fVxuXHR9XG5cblx0LnNvY2lhbC1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQuZmFjZWJvb2stc29jaWFsIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjM2I1OTk4O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcblx0fVxuXG5cdC50d2l0dGVyLXNvY2lhbCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzAwYWNlZDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDBweCAwO1xuXHR9XG5cblx0Lmdvb2dsZS1zb2NpYWwge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNkZDRiMzk7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggMDtcblx0fVxuXG5cdC5saW5rZWRpbi1zb2NpYWwge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDc3YjU7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyMHB4IDA7XG5cdH1cblxuXHQucmVkZGl0LXNvY2lhbCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2NlZTNmODtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggMDtcblx0fVxuXG5cdC5kaWdnLXNvY2lhbCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzM1NmFhMDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwcHggMDtcblx0fVxuXG5cdC5zdHVtYmxldXBvbi1zb2NpYWwge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNlYjQ5MjQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IDA7XG5cdH1cblxuXHQuZHpvbmUtc29jaWFsIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5YWQ5O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0yODBweCAwO1xuXHR9XG5cblx0LmRlbGljaW91cy1zb2NpYWwge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMzMzk5ZmY7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTMyMHB4IDA7XG5cdH1cbn1cbiIsIioge1xuXHRvdXRsaW5lOiBub25lO1xufVxuXG5ib2R5IHtcblx0Ji5uby1zY3JvbGwge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbn1cblxubWFpbiB7XG5cdG1hcmdpbi10b3A6IDE1MHB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMDtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhzbWFsbCBkb3duKSB7XG5cdFx0bWFyZ2luLXRvcDogMTEwcHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XG5cblx0XHRib2R5LmlzLW1vYmlsZSAmIHtcblx0XHRcdG1hcmdpbi10b3A6IDYwcHg7XG5cdFx0fVxuXHR9XG5cblx0QG1lZGlhIChtYXgtd2lkdGg6IDEwMDBweCkge1xuXHRcdG1hcmdpbi10b3A6IGNhbGMoNi4zOHZ3ICsgODZweCk7XG5cdH1cblxuXHQuaGVhZGVyLWJhbm5lciB7XG5cdFx0aDEge1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludCAoc21hbGwgZG93bik7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDQ1cHg7XG5cdFx0fVxuXHR9XG59XG5cbi5wYWdlIHtcblx0Jl9fY29udGVudCB7XG5cdFx0dWwge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzVweDtcblxuXHRcdFx0PiBsaSB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW46IDAgMCA4cHg7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMmVtO1xuXHRcdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0XHRjb2xvcjogJHRleHQtZ3JheTtcblxuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IDExcHg7XG5cdFx0XHRcdFx0bGVmdDogLTIwcHg7XG5cdFx0XHRcdFx0d2lkdGg6IDEwcHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZ3JheS1ub3JtYWw7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoOCk7XG5cblx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdHRvcDogcmVtLWNhbGMoNik7XG5cdFx0XHRcdFx0XHRcdGhlaWdodDogcmVtLWNhbGMoOCk7XG5cdFx0XHRcdFx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdyYXktbm9ybWFsO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLnRpY2tzIHtcblx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDEuMTM1ZW07XG5cblx0XHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHR0b3A6IDdweDtcblx0XHRcdFx0XHRcdGhlaWdodDogNnB4O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkZnBvcmFuZ2UtY29sb3I7XG5cdFx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgJGZwb3JhbmdlLWNvbG9yO1xuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblx0XHRcdCY6ZW1wdHkge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5idXR0b24ge1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZHJvcGRvd24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCAkbGlnaHRuZXNzLWdyYXk7XG5cdGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcblx0dHJhbnNpdGlvbjogLjNzO1xuXG5cdCZfX3RpdGxlIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRtaW4taGVpZ2h0OiA3OHB4O1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAxNnB4IDUwcHggMTZweCAzMHB4O1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdFx0dHJhbnNpdGlvbjogLjNzO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0cGFkZGluZzogMTZweCAzMHB4O1xuXHRcdH1cblxuXHRcdGgzIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMjEpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDEwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMXB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDllbTtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHRcdFx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDIxcHg7XG5cdFx0XHR9XG5cblx0XHRcdHN0cm9uZyB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHR9XG5cblx0XHRcdHNtYWxsIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtLWNhbGMoMTcpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMTdweDtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmNsb3NlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0cmlnaHQ6IDIwcHg7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG5cdFx0XHRjb2xvcjogJHByaW1hcnktY29sb3I7XG5cdFx0XHR0cmFuc2l0aW9uOiAuM3M7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRsZWZ0OiAtMnB4O1xuXHRcdFx0d2lkdGg6IDNweDtcblx0XHRcdGhlaWdodDogMDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRmcG9yYW5nZS1jb2xvcjtcblx0XHRcdGJvcmRlci10b3A6IDZweCBzb2xpZCAkd2hpdGU7XG5cdFx0XHRib3JkZXItYm90dG9tOiA2cHggc29saWQgJHdoaXRlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0dHJhbnNpdGlvbjogLjNzO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHRcdFx0aGVpZ2h0OiBjYWxjKDEwMCUgLSAyMHB4KTtcblx0XHRcdH1cblxuXHRcdFx0LmNsb3NlIHtcblx0XHRcdFx0Y29sb3I6ICRmcG9yYW5nZS1jb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuaWNvbi0zMiB7XG5cdFx0XHRtYXJnaW46IDAgMjVweCAwIDA7XG5cdFx0fVxuXHR9XG5cblx0Jl9fY29udGVudCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDMwcHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XG5cdFx0dHJhbnNpdGlvbjogbWFyZ2luIC4zcztcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDMwcHg7XG5cdFx0XHR3aWR0aDogMzBweDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlnaHRuZXNzLWdyYXk7XG5cdFx0XHR0cmFuc2l0aW9uOiBsZWZ0IC4zcztcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Y2xlYXI6IGJvdGg7XG5cdFx0fVxuXG5cdFx0LmFsaWducmlnaHQge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxN3B4O1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWFyZ2luLXRvcDogLTIwcHg7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IC0yN3B4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5idXR0b24sXG5cdFx0Lm1vcmUtbGluayB7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdH1cblx0fVxuXG5cdCYuam9iLW9mZmVyIHtcblx0XHQuZHJvcGRvd24ge1xuXHRcdFx0Jl9fdGl0bGUge1xuXHRcdFx0XHRoMyB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygyNCk7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMjRweDtcblxuXHRcdFx0XHRcdHNtYWxsIHtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiAxMDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5pcy1hY3RpdmUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR6LWluZGV4OiAxMDIwO1xuXHRcdG1hcmdpbjogLTExcHg7XG5cdFx0Ym94LXNoYWRvdzogMCAxMHB4IDQwcHggMTBweCAkbGlnaHRuZXNzLWdyYXk7XG5cblx0XHQuZHJvcGRvd24ge1xuXHRcdFx0Jl9fdGl0bGUge1xuXHRcdFx0XHRtYXJnaW46IDExcHg7XG5cblx0XHRcdFx0LmNsb3NlIHtcblx0XHRcdFx0XHRyaWdodDogMjZweDtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdFx0XHRcdGxlZnQ6IC0xMnB4O1xuXHRcdFx0XHRcdGhlaWdodDogY2FsYygxMDAlIC0gMzJweCk7XG5cdFx0XHRcdFx0Ym9yZGVyLXRvcDogMCBzb2xpZCAkd2hpdGU7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMCBzb2xpZCAkd2hpdGU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0d2lkdGg6IDQwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Jl9fY29udGVudCB7XG5cdFx0XHRcdG1hcmdpbjogMCAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuaGFzLWljb24ge1xuXHRcdC5kcm9wZG93biB7XG5cdFx0XHQmX19jb250ZW50IHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiA4NnB4O1xuXG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0bGVmdDogODZweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uYnV0dG9uIHtcblx0Jl9fZWRpdCB7XG5cdFx0QGV4dGVuZCAuYnV0dG9uO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkbGlnaHRuZXNzLWdyYXk7XG5cdFx0YmFja2dyb3VuZDogJGxpZ2h0bmVzcy1ncmF5O1xuXG5cdFx0Jjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4uaWNvbi0xNiwgLmljb24tMjQsIC5pY29uLTMyLCAuaWNvbi00OCwgLmljb24tNzIge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yOiAkYmxhY2s7XG5cdHN0cm9rZS13aWR0aDogMjtcblx0c3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuXHRzdHJva2UtbGluZWpvaW46IHJvdW5kO1xufVxuXG4uaWNvbi0xNiB7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG59XG5cbi5pY29uLTMyIHtcblx0d2lkdGg6IDMycHg7XG5cdGhlaWdodDogMzJweDtcbn1cblxuLmljb24tNDgge1xuXHR3aWR0aDogNDhweDtcblx0aGVpZ2h0OiA0OHB4O1xufVxuXG4uaWNvbi03MiB7XG5cdHdpZHRoOiA3MnB4O1xuXHRoZWlnaHQ6IDcycHg7XG59XG5cbi5jb250ZW50LXRleHQge1xuXHR3aWR0aDogMTAwJTtcblx0cGFkZGluZzogMCAyMHB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgZG93bikge1xuXHRcdHBhZGRpbmc6IDAgNXB4O1xuXHR9XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSBvbmx5KSB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdD4gLnJvdyB7XG5cdFx0PiAuY29sdW1ucyB7XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBkb3duKSB7XG5cdFx0XHRcdFx0b3JkZXI6IDI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnNtYWxsLXRleHQtY2VudGVyIHtcblx0QGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCBvbmx5KSB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG59XG5cbmJsb2NrcXVvdGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMmVtIDAgMmVtIDE0cHg7XG5cdHBhZGRpbmc6IDAgMCAwIDQ1cHg7XG5cdGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGdyYXktbm9ybWFsO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0bWluLWhlaWdodDogMzVweDtcblx0XHRtaW4td2lkdGg6IDM1cHg7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9kaXN0L2ltYWdlcy9pY29ucy9xdW90ZS5wbmcnKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAtMnB4O1xuXHRcdHRvcDogMjVweDtcblx0XHRtYXJnaW4tbGVmdDogLTE1cHg7XG5cdFx0bWFyZ2luLXRvcDogLTI1cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXHR9XG5cblx0cCB7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDIxKTtcblx0XHRsaW5lLWhlaWdodDogMjhweDtcblx0XHRsZXR0ZXItc3BhY2luZzogLjAyNWVtO1xuXHRcdGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblx0XHRmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcblxuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0Yiwgc3Ryb25nLCBlbSB7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0fVxuXG5cdC5pY29uLTMyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0bGVmdDogLTE3cHg7XG5cdFx0cGFkZGluZy10b3A6IDdweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcblx0XHRjb2xvcjogJGZwb3JhbmdlLWNvbG9yO1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0fVxuXG5cdGltZyB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IC0yNHB4O1xuXHRcdHdpZHRoOiA0OHB4O1xuXHRcdGJvcmRlci1ib3R0b206IDE1cHggc29saWQgJHdoaXRlO1xuXHRcdGJvcmRlci10b3A6IDJweCBzb2xpZCAkd2hpdGU7XG5cdH1cblxuXHQuYXV0aG9yIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAtNDdweDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0d2lkdGg6IDNweDtcblx0XHRcdGJhY2tncm91bmQ6ICRibGFjaztcblx0XHR9XG5cdH1cbn1cblxuLnBhZ2luYXRpb24ge1xuXHQmX19ib3R0b20ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi10b3A6IDYwcHg7XG5cdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodG5lc3MtZ3JheTtcblxuXHRcdC5yb3cge1xuXHRcdFx0LmNvbHVtbnMge1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZfX2JvdHRvbSxcblx0Jl9fdG9wIHtcblx0XHQuYXJyb3ctcmlnaHQge1xuXG5cdFx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGNsZWFyOiBib3RoO1xuXHRcdH1cblx0fVxufVxuXG4uZ2FsbGVyeSB7XG5cdG1hcmdpbjogMzBweCAwO1xuXG5cdCZfX3dyYXBwZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdG1hcmdpbjogLTEwcHg7XG5cdH1cblxuXHQmX19pdGVtIHtcblx0XHRtYXJnaW46IDEwcHg7XG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG59XG5cbi53aWR0aCB7XG5cdCZfX2NvbnRyb2wge1xuXHRcdHdpZHRoOiAxMDB2dztcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0Ym90dG9tOiAtMTBweDtcblx0fVxufVxuXG4ucGFnZS1udW1iZXJzIHtcblx0bWFyZ2luOiByZW0tY2FsYyg1KSBhdXRvIDA7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdH1cblxuXHQucGFnZS1udW1iZXJzIHtcblx0XHRwYWRkaW5nOiAwIC40ZW07XG5cdFx0Zm9udC1mYW1pbHk6ICRoZWFkZXItZm9udC1mYW1pbHk7XG5cdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNik7XG5cdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0fVxuXG5cdC5wcmV2LFxuXHQubmV4dCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC5jdXJyZW50IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogM3B4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGZwb3JhbmdlLWNvbG9yO1xuXHRcdFx0dG9wOiAtMzBweDtcblx0XHR9XG5cdH1cbn1cblxuLnNob3ctb25seSB7XG5cdCYuaXMtYWRtaW4ge1xuXHRcdHBhZGRpbmc6IDMwcHggNDBweDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcblxuXHRcdGgzOm50aC1jaGlsZCgxKSwgaDQ6bnRoLWNoaWxkKDIpIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRmb250LXdlaWdodDogMzAwO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiAuMDllbTtcblxuXHRcdFx0Yiwgc3Ryb25nIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0Y29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGg0Om50aC1jaGlsZCgyKSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHRcdFx0Zm9udC1zaXplOiByZW0tY2FsYygxNyk7XG5cdFx0XHRjb2xvcjogJHRleHQtZ3JheTtcblx0XHR9XG5cblx0XHRwOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjdXJzb3JfYmxpbmsge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cblxuXG4iXX0= */
