.direction-reveal__card {
  display: inline-block;
  position: relative;
  overflow: hidden;
}

.direction-reveal__img {
  display: block;
  max-width: 100%;
  height: auto;
}

.direction-reveal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 16px;
  color: #fff;
  overflow: hidden;
  background-color: rgba(0, 0, 0, 0.8);
}

.direction-reveal__anim--enter, .direction-reveal__anim--leave {
  -webkit-animation-duration: 0.6s;
          animation-duration: 0.6s;
  -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
          animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.direction-reveal__anim--enter {
  transform: translate3d(0, -100%, 0);
}

.direction-reveal__title {
  margin-top: 0;
}

.direction-reveal__text {
  margin-bottom: 0;
}

.direction-reveal--3-grid {
  display: flex;
  flex-wrap: wrap;
  margin-right: -8px;
  margin-left: -8px;
}

.direction-reveal--3-grid .direction-reveal__card {
  border: 8px solid transparent;
}

@media (min-width: 576px) {
  .direction-reveal--3-grid .direction-reveal__card {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
}

.direction-reveal--3-grid-cssgrid {
  display: grid;
  margin-right: -8px;
  margin-left: -8px;
}

@media (min-width: 576px) {
  .direction-reveal--3-grid-cssgrid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.direction-reveal--3-grid-cssgrid .direction-reveal__card {
  border: 8px solid transparent;
}

.direction-reveal--grid-bootstrap .direction-reveal__card {
  margin-top: 15px;
  margin-bottom: 15px;
}

.swing--enter-top .direction-reveal__anim--enter {
  -webkit-animation-name: swing--enter-top;
          animation-name: swing--enter-top;
}

.swing--enter-top .direction-reveal__anim--leave {
  -webkit-animation-name: swing--leave-bottom;
          animation-name: swing--leave-bottom;
}

.swing--enter-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: swing--enter-bottom;
          animation-name: swing--enter-bottom;
}

.swing--enter-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: swing--leave-top;
          animation-name: swing--leave-top;
}

.swing--enter-left .direction-reveal__anim--enter {
  -webkit-animation-name: swing--enter-left;
          animation-name: swing--enter-left;
}

.swing--enter-left .direction-reveal__anim--leave {
  -webkit-animation-name: swing--leave-right;
          animation-name: swing--leave-right;
}

.swing--enter-right .direction-reveal__anim--enter {
  -webkit-animation-name: swing--enter-right;
          animation-name: swing--enter-right;
}

.swing--enter-right .direction-reveal__anim--leave {
  -webkit-animation-name: swing--leave-left;
          animation-name: swing--leave-left;
}

.swing--leave-top .direction-reveal__anim--enter {
  -webkit-animation-name: swing--leave-top;
          animation-name: swing--leave-top;
}

.swing--leave-top .direction-reveal__anim--leave {
  -webkit-animation-name: swing--enter-bottom;
          animation-name: swing--enter-bottom;
}

.swing--leave-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: swing--leave-bottom;
          animation-name: swing--leave-bottom;
}

.swing--leave-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: swing--enter-top;
          animation-name: swing--enter-top;
}

.swing--leave-left .direction-reveal__anim--enter {
  -webkit-animation-name: swing--leave-left;
          animation-name: swing--leave-left;
}

.swing--leave-left .direction-reveal__anim--leave {
  -webkit-animation-name: swing--enter-right;
          animation-name: swing--enter-right;
}

.swing--leave-right .direction-reveal__anim--enter {
  -webkit-animation-name: swing--leave-right;
          animation-name: swing--leave-right;
}

.swing--leave-right .direction-reveal__anim--leave {
  -webkit-animation-name: swing--enter-left;
          animation-name: swing--enter-left;
}

.direction-reveal [class*='swing--'] {
  perspective: 400px;
}

.direction-reveal [class*='swing--'] .direction-reveal__anim--enter, .direction-reveal [class*='swing--'] .direction-reveal__anim--leave {
  transform: rotate3d(0, 0, 0, 0);
  -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

.swing--enter-top, .swing--leave-top {
  perspective-origin: center top;
}

.swing--enter-top .direction-reveal__anim--enter, .swing--enter-top .direction-reveal__anim--leave, .swing--leave-top .direction-reveal__anim--enter, .swing--leave-top .direction-reveal__anim--leave {
  transform-origin: center top;
}

.swing--enter-bottom, .swing--leave-bottom {
  perspective-origin: center bottom;
}

.swing--enter-bottom .direction-reveal__anim--enter, .swing--enter-bottom .direction-reveal__anim--leave, .swing--leave-bottom .direction-reveal__anim--enter, .swing--leave-bottom .direction-reveal__anim--leave {
  transform-origin: center bottom;
}

.swing--enter-left, .swing--leave-left {
  perspective-origin: left center;
}

.swing--enter-left .direction-reveal__anim--enter, .swing--enter-left .direction-reveal__anim--leave, .swing--leave-left .direction-reveal__anim--enter, .swing--leave-left .direction-reveal__anim--leave {
  transform-origin: left center;
}

.swing--enter-right, .swing--leave-right {
  perspective-origin: right center;
}

.swing--enter-right .direction-reveal__anim--enter, .swing--enter-right .direction-reveal__anim--leave, .swing--leave-right .direction-reveal__anim--enter, .swing--leave-right .direction-reveal__anim--leave {
  transform-origin: right center;
}

@-webkit-keyframes swing--enter-top {
  0% {
    transform: rotate3d(-1, 0, 0, 90deg);
  }
}

@keyframes swing--enter-top {
  0% {
    transform: rotate3d(-1, 0, 0, 90deg);
  }
}

@-webkit-keyframes swing--leave-top {
  100% {
    transform: rotate3d(-1, 0, 0, 90deg);
  }
}

@keyframes swing--leave-top {
  100% {
    transform: rotate3d(-1, 0, 0, 90deg);
  }
}

@-webkit-keyframes swing--enter-bottom {
  0% {
    transform: rotate3d(1, 0, 0, 90deg);
  }
}

@keyframes swing--enter-bottom {
  0% {
    transform: rotate3d(1, 0, 0, 90deg);
  }
}

@-webkit-keyframes swing--leave-bottom {
  100% {
    transform: rotate3d(1, 0, 0, 90deg);
  }
}

@keyframes swing--leave-bottom {
  100% {
    transform: rotate3d(1, 0, 0, 90deg);
  }
}

@-webkit-keyframes swing--enter-left {
  0% {
    transform: rotate3d(0, 1, 0, 90deg);
  }
}

@keyframes swing--enter-left {
  0% {
    transform: rotate3d(0, 1, 0, 90deg);
  }
}

@-webkit-keyframes swing--leave-left {
  100% {
    transform: rotate3d(0, 1, 0, 90deg);
  }
}

@keyframes swing--leave-left {
  100% {
    transform: rotate3d(0, 1, 0, 90deg);
  }
}

@-webkit-keyframes swing--enter-right {
  0% {
    transform: rotate3d(0, -1, 0, 90deg);
  }
}

@keyframes swing--enter-right {
  0% {
    transform: rotate3d(0, -1, 0, 90deg);
  }
}

@-webkit-keyframes swing--leave-right {
  100% {
    transform: rotate3d(0, -1, 0, 90deg);
  }
}

@keyframes swing--leave-right {
  100% {
    transform: rotate3d(0, -1, 0, 90deg);
  }
}

.slide--enter-top .direction-reveal__anim--enter {
  -webkit-animation-name: slide--enter-top;
          animation-name: slide--enter-top;
}

.slide--enter-top .direction-reveal__anim--leave {
  -webkit-animation-name: slide--leave-bottom;
          animation-name: slide--leave-bottom;
}

.slide--enter-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: slide--enter-bottom;
          animation-name: slide--enter-bottom;
}

.slide--enter-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: slide--leave-top;
          animation-name: slide--leave-top;
}

.slide--enter-left .direction-reveal__anim--enter {
  -webkit-animation-name: slide--enter-left;
          animation-name: slide--enter-left;
}

.slide--enter-left .direction-reveal__anim--leave {
  -webkit-animation-name: slide--leave-right;
          animation-name: slide--leave-right;
}

.slide--enter-right .direction-reveal__anim--enter {
  -webkit-animation-name: slide--enter-right;
          animation-name: slide--enter-right;
}

.slide--enter-right .direction-reveal__anim--leave {
  -webkit-animation-name: slide--leave-left;
          animation-name: slide--leave-left;
}

.slide--leave-top .direction-reveal__anim--enter {
  -webkit-animation-name: slide--leave-top;
          animation-name: slide--leave-top;
}

.slide--leave-top .direction-reveal__anim--leave {
  -webkit-animation-name: slide--enter-bottom;
          animation-name: slide--enter-bottom;
}

.slide--leave-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: slide--leave-bottom;
          animation-name: slide--leave-bottom;
}

.slide--leave-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: slide--enter-top;
          animation-name: slide--enter-top;
}

.slide--leave-left .direction-reveal__anim--enter {
  -webkit-animation-name: slide--leave-left;
          animation-name: slide--leave-left;
}

.slide--leave-left .direction-reveal__anim--leave {
  -webkit-animation-name: slide--enter-right;
          animation-name: slide--enter-right;
}

.slide--leave-right .direction-reveal__anim--enter {
  -webkit-animation-name: slide--leave-right;
          animation-name: slide--leave-right;
}

.slide--leave-right .direction-reveal__anim--leave {
  -webkit-animation-name: slide--enter-left;
          animation-name: slide--enter-left;
}

.direction-reveal [class*='slide--'] .direction-reveal__anim--enter, .direction-reveal [class*='slide--'] .direction-reveal__anim--leave {
  transform: translate3d(0, 0, 0);
  -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
          animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@-webkit-keyframes slide--enter-top {
  0% {
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes slide--enter-top {
  0% {
    transform: translate3d(0, -100%, 0);
  }
}

@-webkit-keyframes slide--leave-top {
  100% {
    transform: translate3d(0, -100%, 0);
  }
}

@keyframes slide--leave-top {
  100% {
    transform: translate3d(0, -100%, 0);
  }
}

@-webkit-keyframes slide--enter-bottom {
  0% {
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes slide--enter-bottom {
  0% {
    transform: translate3d(0, 100%, 0);
  }
}

@-webkit-keyframes slide--leave-bottom {
  100% {
    transform: translate3d(0, 100%, 0);
  }
}

@keyframes slide--leave-bottom {
  100% {
    transform: translate3d(0, 100%, 0);
  }
}

@-webkit-keyframes slide--enter-left {
  0% {
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes slide--enter-left {
  0% {
    transform: translate3d(-100%, 0, 0);
  }
}

@-webkit-keyframes slide--leave-left {
  100% {
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes slide--leave-left {
  100% {
    transform: translate3d(-100%, 0, 0);
  }
}

@-webkit-keyframes slide--enter-right {
  0% {
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes slide--enter-right {
  0% {
    transform: translate3d(100%, 0, 0);
  }
}

@-webkit-keyframes slide--leave-right {
  100% {
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes slide--leave-right {
  100% {
    transform: translate3d(100%, 0, 0);
  }
}

.roll-out--enter-top .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--enter-top;
          animation-name: roll-out--enter-top;
}

.roll-out--enter-top .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--leave-bottom;
          animation-name: roll-out--leave-bottom;
}

.roll-out--enter-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--enter-bottom;
          animation-name: roll-out--enter-bottom;
}

.roll-out--enter-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--leave-top;
          animation-name: roll-out--leave-top;
}

.roll-out--enter-left .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--enter-left;
          animation-name: roll-out--enter-left;
}

.roll-out--enter-left .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--leave-right;
          animation-name: roll-out--leave-right;
}

.roll-out--enter-right .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--enter-right;
          animation-name: roll-out--enter-right;
}

.roll-out--enter-right .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--leave-left;
          animation-name: roll-out--leave-left;
}

.roll-out--leave-top .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--leave-top;
          animation-name: roll-out--leave-top;
}

.roll-out--leave-top .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--enter-bottom;
          animation-name: roll-out--enter-bottom;
}

.roll-out--leave-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--leave-bottom;
          animation-name: roll-out--leave-bottom;
}

.roll-out--leave-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--enter-top;
          animation-name: roll-out--enter-top;
}

.roll-out--leave-left .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--leave-left;
          animation-name: roll-out--leave-left;
}

.roll-out--leave-left .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--enter-right;
          animation-name: roll-out--enter-right;
}

.roll-out--leave-right .direction-reveal__anim--enter {
  -webkit-animation-name: roll-out--leave-right;
          animation-name: roll-out--leave-right;
}

.roll-out--leave-right .direction-reveal__anim--leave {
  -webkit-animation-name: roll-out--enter-left;
          animation-name: roll-out--enter-left;
}

.direction-reveal [class*='roll-out--'] .direction-reveal__anim--enter, .direction-reveal [class*='roll-out--'] .direction-reveal__anim--leave {
  transform: translate3d(0, 0, 0);
  -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
          clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
          animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@-webkit-keyframes roll-out--enter-top {
  0% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
            clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  }
}

@keyframes roll-out--enter-top {
  0% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
            clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  }
}

@-webkit-keyframes roll-out--leave-top {
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
            clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  }
}

@keyframes roll-out--leave-top {
  100% {
    -webkit-clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
            clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
  }
}

@-webkit-keyframes roll-out--enter-bottom {
  0% {
    -webkit-clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
            clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  }
}

@keyframes roll-out--enter-bottom {
  0% {
    -webkit-clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
            clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  }
}

@-webkit-keyframes roll-out--leave-bottom {
  100% {
    -webkit-clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
            clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  }
}

@keyframes roll-out--leave-bottom {
  100% {
    -webkit-clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
            clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%);
  }
}

@-webkit-keyframes roll-out--enter-left {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
            clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
}

@keyframes roll-out--enter-left {
  0% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
            clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
}

@-webkit-keyframes roll-out--leave-left {
  100% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
            clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
}

@keyframes roll-out--leave-left {
  100% {
    -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
            clip-path: polygon(0 0, 0 0, 0 100%, 0 100%);
  }
}

@-webkit-keyframes roll-out--enter-right {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}

@keyframes roll-out--enter-right {
  0% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}

@-webkit-keyframes roll-out--leave-right {
  100% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}

@keyframes roll-out--leave-right {
  100% {
    -webkit-clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
            clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%);
  }
}

.rotate--enter-top .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--enter-top;
          animation-name: rotate--enter-top;
}

.rotate--enter-top .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--leave-bottom;
          animation-name: rotate--leave-bottom;
}

.rotate--enter-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--enter-bottom;
          animation-name: rotate--enter-bottom;
}

.rotate--enter-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--leave-top;
          animation-name: rotate--leave-top;
}

.rotate--enter-left .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--enter-left;
          animation-name: rotate--enter-left;
}

.rotate--enter-left .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--leave-right;
          animation-name: rotate--leave-right;
}

.rotate--enter-right .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--enter-right;
          animation-name: rotate--enter-right;
}

.rotate--enter-right .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--leave-left;
          animation-name: rotate--leave-left;
}

.rotate--leave-top .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--leave-top;
          animation-name: rotate--leave-top;
}

.rotate--leave-top .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--enter-bottom;
          animation-name: rotate--enter-bottom;
}

.rotate--leave-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--leave-bottom;
          animation-name: rotate--leave-bottom;
}

.rotate--leave-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--enter-top;
          animation-name: rotate--enter-top;
}

.rotate--leave-left .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--leave-left;
          animation-name: rotate--leave-left;
}

.rotate--leave-left .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--enter-right;
          animation-name: rotate--enter-right;
}

.rotate--leave-right .direction-reveal__anim--enter {
  -webkit-animation-name: rotate--leave-right;
          animation-name: rotate--leave-right;
}

.rotate--leave-right .direction-reveal__anim--leave {
  -webkit-animation-name: rotate--enter-left;
          animation-name: rotate--enter-left;
}

.direction-reveal [class*='rotate--'] .direction-reveal__anim--enter, .direction-reveal [class*='rotate--'] .direction-reveal__anim--leave {
  transform: rotate(0);
  -webkit-animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
          animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.rotate--enter-top .direction-reveal__anim--enter, .rotate--enter-top .direction-reveal__anim--leave, .rotate--leave-top .direction-reveal__anim--enter, .rotate--leave-top .direction-reveal__anim--leave {
  transform-origin: left top;
}

.rotate--enter-bottom .direction-reveal__anim--enter, .rotate--enter-bottom .direction-reveal__anim--leave, .rotate--leave-bottom .direction-reveal__anim--enter, .rotate--leave-bottom .direction-reveal__anim--leave {
  transform-origin: left bottom;
}

.rotate--enter-left .direction-reveal__anim--enter, .rotate--enter-left .direction-reveal__anim--leave, .rotate--leave-left .direction-reveal__anim--enter, .rotate--leave-left .direction-reveal__anim--leave {
  transform-origin: left top;
}

.rotate--enter-right .direction-reveal__anim--enter, .rotate--enter-right .direction-reveal__anim--leave, .rotate--leave-right .direction-reveal__anim--enter, .rotate--leave-right .direction-reveal__anim--leave {
  transform-origin: right top;
}

@-webkit-keyframes rotate--enter-top {
  0% {
    transform: rotate(-90deg);
  }
}

@keyframes rotate--enter-top {
  0% {
    transform: rotate(-90deg);
  }
}

@-webkit-keyframes rotate--leave-top {
  100% {
    transform: rotate(-90deg);
  }
}

@keyframes rotate--leave-top {
  100% {
    transform: rotate(-90deg);
  }
}

@-webkit-keyframes rotate--enter-bottom {
  0% {
    transform: rotate(90deg);
  }
}

@keyframes rotate--enter-bottom {
  0% {
    transform: rotate(90deg);
  }
}

@-webkit-keyframes rotate--leave-bottom {
  100% {
    transform: rotate(90deg);
  }
}

@keyframes rotate--leave-bottom {
  100% {
    transform: rotate(90deg);
  }
}

@-webkit-keyframes rotate--enter-left {
  0% {
    transform: rotate(90deg);
  }
}

@keyframes rotate--enter-left {
  0% {
    transform: rotate(90deg);
  }
}

@-webkit-keyframes rotate--leave-left {
  100% {
    transform: rotate(90deg);
  }
}

@keyframes rotate--leave-left {
  100% {
    transform: rotate(90deg);
  }
}

@-webkit-keyframes rotate--enter-right {
  0% {
    transform: rotate(-90deg);
  }
}

@keyframes rotate--enter-right {
  0% {
    transform: rotate(-90deg);
  }
}

@-webkit-keyframes rotate--leave-right {
  100% {
    transform: rotate(-90deg);
  }
}

@keyframes rotate--leave-right {
  100% {
    transform: rotate(-90deg);
  }
}

.flip--enter-top .direction-reveal__anim--enter {
  -webkit-animation-name: flip--enter-top;
          animation-name: flip--enter-top;
}

.flip--enter-top .direction-reveal__anim--leave {
  -webkit-animation-name: flip--leave-bottom;
          animation-name: flip--leave-bottom;
}

.flip--enter-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: flip--enter-bottom;
          animation-name: flip--enter-bottom;
}

.flip--enter-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: flip--leave-top;
          animation-name: flip--leave-top;
}

.flip--enter-left .direction-reveal__anim--enter {
  -webkit-animation-name: flip--enter-left;
          animation-name: flip--enter-left;
}

.flip--enter-left .direction-reveal__anim--leave {
  -webkit-animation-name: flip--leave-right;
          animation-name: flip--leave-right;
}

.flip--enter-right .direction-reveal__anim--enter {
  -webkit-animation-name: flip--enter-right;
          animation-name: flip--enter-right;
}

.flip--enter-right .direction-reveal__anim--leave {
  -webkit-animation-name: flip--leave-left;
          animation-name: flip--leave-left;
}

.flip--leave-top .direction-reveal__anim--enter {
  -webkit-animation-name: flip--leave-top;
          animation-name: flip--leave-top;
}

.flip--leave-top .direction-reveal__anim--leave {
  -webkit-animation-name: flip--enter-bottom;
          animation-name: flip--enter-bottom;
}

.flip--leave-bottom .direction-reveal__anim--enter {
  -webkit-animation-name: flip--leave-bottom;
          animation-name: flip--leave-bottom;
}

.flip--leave-bottom .direction-reveal__anim--leave {
  -webkit-animation-name: flip--enter-top;
          animation-name: flip--enter-top;
}

.flip--leave-left .direction-reveal__anim--enter {
  -webkit-animation-name: flip--leave-left;
          animation-name: flip--leave-left;
}

.flip--leave-left .direction-reveal__anim--leave {
  -webkit-animation-name: flip--enter-right;
          animation-name: flip--enter-right;
}

.flip--leave-right .direction-reveal__anim--enter {
  -webkit-animation-name: flip--leave-right;
          animation-name: flip--leave-right;
}

.flip--leave-right .direction-reveal__anim--leave {
  -webkit-animation-name: flip--enter-left;
          animation-name: flip--enter-left;
}

.direction-reveal [class*='flip--'] {
  perspective: 800px;
  overflow: visible;
}

.direction-reveal [class*='flip--'] .direction-reveal__anim--enter, .direction-reveal [class*='flip--'] .direction-reveal__anim--leave {
  transform: rotateX(0) rotateY(0);
  -webkit-animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955);
          animation-timing-function: cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -webkit-animation-duration: 1.2s;
          animation-duration: 1.2s;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  z-index: 1;
}

@-webkit-keyframes flip--enter-top {
  0% {
    transform: rotateX(180deg) rotateY(0);
  }
}

@keyframes flip--enter-top {
  0% {
    transform: rotateX(180deg) rotateY(0);
  }
}

@-webkit-keyframes flip--leave-top {
  100% {
    transform: rotateX(180deg) rotateY(0);
  }
}

@keyframes flip--leave-top {
  100% {
    transform: rotateX(180deg) rotateY(0);
  }
}

@-webkit-keyframes flip--enter-bottom {
  0% {
    transform: rotateX(-180deg) rotateY(0);
  }
}

@keyframes flip--enter-bottom {
  0% {
    transform: rotateX(-180deg) rotateY(0);
  }
}

@-webkit-keyframes flip--leave-bottom {
  100% {
    transform: rotateX(-180deg) rotateY(0);
  }
}

@keyframes flip--leave-bottom {
  100% {
    transform: rotateX(-180deg) rotateY(0);
  }
}

@-webkit-keyframes flip--enter-left {
  0% {
    transform: rotateX(0) rotateY(-180deg);
  }
}

@keyframes flip--enter-left {
  0% {
    transform: rotateX(0) rotateY(-180deg);
  }
}

@-webkit-keyframes flip--leave-left {
  100% {
    transform: rotateX(0) rotateY(-180deg);
  }
}

@keyframes flip--leave-left {
  100% {
    transform: rotateX(0) rotateY(-180deg);
  }
}

@-webkit-keyframes flip--enter-right {
  0% {
    transform: rotateX(0) rotateY(180deg);
  }
}

@keyframes flip--enter-right {
  0% {
    transform: rotateX(0) rotateY(180deg);
  }
}

@-webkit-keyframes flip--leave-right {
  100% {
    transform: rotateX(0) rotateY(180deg);
  }
}

@keyframes flip--leave-right {
  100% {
    transform: rotateX(0) rotateY(180deg);
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpcmVjdGlvbi1yZXZlYWwvX2RpcmVjdGlvbi1yZXZlYWwuc2NzcyIsImRpcmVjdGlvbi1yZXZlYWwuY3NzIiwiZGlyZWN0aW9uLXJldmVhbC9fZGlyZWN0aW9uLXJldmVhbC12YXJpYWJsZXMuc2NzcyIsImRpcmVjdGlvbi1yZXZlYWwvX2RpcmVjdGlvbi1yZXZlYWwtYW5pbWF0aW9ucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdFO0VBQ0UscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixnQkFBZ0I7QUNGcEI7O0FES0U7RUFDRSxjQUFjO0VBQ2QsZUFBZTtFQUNmLFlBQVk7QUNGaEI7O0FES0k7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtFQUNaLGFBQWE7RUFDYixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLG9DRWpCNkI7QURlbkM7O0FET0k7RUFDRSxnQ0UzQmE7VUYyQmIsd0JFM0JhO0VGNEJiLHVFRS9CNEQ7VUYrQjVELCtERS9CNEQ7RUZnQzVELHFDQUE2QjtVQUE3Qiw2QkFBNkI7QUNKbkM7O0FET0k7RUFDRSxtQ0FBbUM7QUNKekM7O0FET007RUFDRSxhQUFhO0FDSnJCOztBRE9NO0VBQ0UsZ0JBQWdCO0FDSnhCOztBRFlBO0VBQ0UsYUFBYTtFQUNiLGVBQWU7RUFDZixrQkU5Q2dCO0VGK0NoQixpQkUvQ2dCO0FEc0NsQjs7QURLQTtFQU9JLDZCQUF1QztBQ1IzQzs7QURTSTtFQVJKO0lBU00sb0JBQW9CO0lBQ3BCLHFCQUFxQjtFQ0x6QjtBQUNGOztBRFVBO0VBQ0UsYUFBYTtFQUNiLGtCRTdEZ0I7RUY4RGhCLGlCRTlEZ0I7QUR1RGxCOztBRFNFO0VBTEY7SUFNSSxxQ0FBcUM7RUNMdkM7QUFDRjs7QURGQTtFQVVJLDZCQUF1QztBQ0ozQzs7QURTQTtFQUVJLGdCQUFnQjtFQUNoQixtQkFBbUI7QUNQdkI7O0FFakVNO0VBRUksd0NBQWdCO1VBQWhCLGdDQUFnQjtBRm1FMUI7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V2hFLGdDQUFvQztVQUFwQyx3QkFBb0M7RUFDcEMsbUNBQTJCO1VBQTNCLDJCQUEyQjtFQUMzQixVQUFVO0FGOFRkOztBRTFUQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGOztBRWhVQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGOztBRTFUQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGOztBRWhVQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGOztBRTFUQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRWhVQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRTFUQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRWhVQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRTFUQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRWhVQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRTFUQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRWhVQTtFQUNFO0lBQ0Usc0NBQXNDO0VGNlR4QztBQUNGOztBRTFUQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGOztBRWhVQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGOztBRTFUQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGOztBRWhVQTtFQUNFO0lBQ0UscUNBQXFDO0VGNlR2QztBQUNGIiwiZmlsZSI6ImRpcmVjdGlvbi1yZXZlYWwuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0gQ29tcG9uZW50IC0tLS0tXG4uZGlyZWN0aW9uLXJldmVhbCB7fVxuXG4gIC5kaXJlY3Rpb24tcmV2ZWFsX19jYXJkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAuZGlyZWN0aW9uLXJldmVhbF9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgICAuZGlyZWN0aW9uLXJldmVhbF9fb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG92ZXJsYXktYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAvLyAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIgaXMgdXNlZCB0byBhbmltYXRlIGluIGhpZGRlbiBjb250ZW50LCB0aGUgZGVmYXVsdCBhbmltYXRpb24gdXNlZCBvbiB0aGUgb3ZlcmxheVxuICAgIC8vIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSBpcyB1c2VkIHRvIGFuaW1hdGUgb3V0IHZpc2libGUgY29udGVudFxuICAgIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfSB7XG4gICAgICBhbmltYXRpb24tZHVyYXRpb246ICRhbmltLWR1cmF0aW9uO1xuICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW0tZWFzaW5nLWVhc2VPdXRRdWFkO1xuICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgfVxuXG4gICAgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IC8vIEluaXRpYWwgcG9zaXRpb24gYmVmb3JlIGFueSBhbmltYXRpb24gaS5lLiBoaWRkZW4gYnkgZGVmYXVsdFxuICAgIH1cblxuICAgICAgLmRpcmVjdGlvbi1yZXZlYWxfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cblxuICAgICAgLmRpcmVjdGlvbi1yZXZlYWxfX3RleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG5cblxuLy8gLS0tLS0gTGF5b3V0cyAtLS0tLVxuXG4vLyAzeDMgZ3JpZCBsYXlvdXQgLSBmbGV4Ym94XG4uZGlyZWN0aW9uLXJldmVhbC0tMy1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tcmlnaHQ6IC0kZ3JpZC1zcGFjaW5nO1xuICBtYXJnaW4tbGVmdDogLSRncmlkLXNwYWNpbmc7XG5cbiAgLmRpcmVjdGlvbi1yZXZlYWxfX2NhcmQge1xuICAgIGJvcmRlcjogJGdyaWQtc3BhY2luZyBzb2xpZCB0cmFuc3BhcmVudDsgLy8gVHJhbnNwYXJlbnQgYm9yZGVyIHVzZWQgZm9yIHNwYWNpbmcgYXMgdGhpcyBtYWtlcyBkaXJlY3Rpb24gZGV0ZWN0aW9uIG1vcmUgYWNjdXJhdGUgYXMgdGhlcmUgaXMgbW9yZSBhcmVhIHRvIGRldGVjdC5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMzMlO1xuICAgIH1cbiAgfVxufVxuXG4vLyAzeDMgZ3JpZCBsYXlvdXQgdXNpbmcgQ1NTIGdyaWRcbi5kaXJlY3Rpb24tcmV2ZWFsLS0zLWdyaWQtY3NzZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1hcmdpbi1yaWdodDogLSRncmlkLXNwYWNpbmc7XG4gIG1hcmdpbi1sZWZ0OiAtJGdyaWQtc3BhY2luZztcblxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG5cbiAgLmRpcmVjdGlvbi1yZXZlYWxfX2NhcmQge1xuICAgIGJvcmRlcjogJGdyaWQtc3BhY2luZyBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLyBCb290c3RyYXAgZ3JpZFxuLmRpcmVjdGlvbi1yZXZlYWwtLWdyaWQtYm9vdHN0cmFwIHtcbiAgLmRpcmVjdGlvbi1yZXZlYWxfX2NhcmQge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgfVxufVxuIiwiLmRpcmVjdGlvbi1yZXZlYWxfX2NhcmQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpcmVjdGlvbi1yZXZlYWxfX2ltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmRpcmVjdGlvbi1yZXZlYWxfX292ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMTZweDtcbiAgY29sb3I6ICNmZmY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbn1cblxuLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuNnM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG59XG5cbi5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xufVxuXG4uZGlyZWN0aW9uLXJldmVhbF9fdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uZGlyZWN0aW9uLXJldmVhbF9fdGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5kaXJlY3Rpb24tcmV2ZWFsLS0zLWdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLThweDtcbiAgbWFyZ2luLWxlZnQ6IC04cHg7XG59XG5cbi5kaXJlY3Rpb24tcmV2ZWFsLS0zLWdyaWQgLmRpcmVjdGlvbi1yZXZlYWxfX2NhcmQge1xuICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5kaXJlY3Rpb24tcmV2ZWFsLS0zLWdyaWQgLmRpcmVjdGlvbi1yZXZlYWxfX2NhcmQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMzJTtcbiAgfVxufVxuXG4uZGlyZWN0aW9uLXJldmVhbC0tMy1ncmlkLWNzc2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBtYXJnaW4tcmlnaHQ6IC04cHg7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmRpcmVjdGlvbi1yZXZlYWwtLTMtZ3JpZC1jc3NncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG59XG5cbi5kaXJlY3Rpb24tcmV2ZWFsLS0zLWdyaWQtY3NzZ3JpZCAuZGlyZWN0aW9uLXJldmVhbF9fY2FyZCB7XG4gIGJvcmRlcjogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uZGlyZWN0aW9uLXJldmVhbC0tZ3JpZC1ib290c3RyYXAgLmRpcmVjdGlvbi1yZXZlYWxfX2NhcmQge1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4uc3dpbmctLWVudGVyLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmctLWVudGVyLXRvcDtcbn1cblxuLnN3aW5nLS1lbnRlci10b3AgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nLS1sZWF2ZS1ib3R0b207XG59XG5cbi5zd2luZy0tZW50ZXItYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZy0tZW50ZXItYm90dG9tO1xufVxuXG4uc3dpbmctLWVudGVyLWJvdHRvbSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmctLWxlYXZlLXRvcDtcbn1cblxuLnN3aW5nLS1lbnRlci1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZy0tZW50ZXItbGVmdDtcbn1cblxuLnN3aW5nLS1lbnRlci1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZy0tbGVhdmUtcmlnaHQ7XG59XG5cbi5zd2luZy0tZW50ZXItcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nLS1lbnRlci1yaWdodDtcbn1cblxuLnN3aW5nLS1lbnRlci1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmctLWxlYXZlLWxlZnQ7XG59XG5cbi5zd2luZy0tbGVhdmUtdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZy0tbGVhdmUtdG9wO1xufVxuXG4uc3dpbmctLWxlYXZlLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmctLWVudGVyLWJvdHRvbTtcbn1cblxuLnN3aW5nLS1sZWF2ZS1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nLS1sZWF2ZS1ib3R0b207XG59XG5cbi5zd2luZy0tbGVhdmUtYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZy0tZW50ZXItdG9wO1xufVxuXG4uc3dpbmctLWxlYXZlLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nLS1sZWF2ZS1sZWZ0O1xufVxuXG4uc3dpbmctLWxlYXZlLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nLS1lbnRlci1yaWdodDtcbn1cblxuLnN3aW5nLS1sZWF2ZS1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogc3dpbmctLWxlYXZlLXJpZ2h0O1xufVxuXG4uc3dpbmctLWxlYXZlLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzd2luZy0tZW50ZXItbGVmdDtcbn1cblxuLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0nc3dpbmctLSddIHtcbiAgcGVyc3BlY3RpdmU6IDQwMHB4O1xufVxuXG4uZGlyZWN0aW9uLXJldmVhbCBbY2xhc3MqPSdzd2luZy0tJ10gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAuZGlyZWN0aW9uLXJldmVhbCBbY2xhc3MqPSdzd2luZy0tJ10gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAwLCAwKTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxLCAwLjM1NSwgMSk7XG59XG5cbi5zd2luZy0tZW50ZXItdG9wLCAuc3dpbmctLWxlYXZlLXRvcCB7XG4gIHBlcnNwZWN0aXZlLW9yaWdpbjogY2VudGVyIHRvcDtcbn1cblxuLnN3aW5nLS1lbnRlci10b3AgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAuc3dpbmctLWVudGVyLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUsIC5zd2luZy0tbGVhdmUtdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciwgLnN3aW5nLS1sZWF2ZS10b3AgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbn1cblxuLnN3aW5nLS1lbnRlci1ib3R0b20sIC5zd2luZy0tbGVhdmUtYm90dG9tIHtcbiAgcGVyc3BlY3RpdmUtb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuXG4uc3dpbmctLWVudGVyLWJvdHRvbSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIsIC5zd2luZy0tZW50ZXItYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSwgLnN3aW5nLS1sZWF2ZS1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAuc3dpbmctLWxlYXZlLWJvdHRvbSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xufVxuXG4uc3dpbmctLWVudGVyLWxlZnQsIC5zd2luZy0tbGVhdmUtbGVmdCB7XG4gIHBlcnNwZWN0aXZlLW9yaWdpbjogbGVmdCBjZW50ZXI7XG59XG5cbi5zd2luZy0tZW50ZXItbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIsIC5zd2luZy0tZW50ZXItbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUsIC5zd2luZy0tbGVhdmUtbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIsIC5zd2luZy0tbGVhdmUtbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbn1cblxuLnN3aW5nLS1lbnRlci1yaWdodCwgLnN3aW5nLS1sZWF2ZS1yaWdodCB7XG4gIHBlcnNwZWN0aXZlLW9yaWdpbjogcmlnaHQgY2VudGVyO1xufVxuXG4uc3dpbmctLWVudGVyLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciwgLnN3aW5nLS1lbnRlci1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUsIC5zd2luZy0tbGVhdmUtcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAuc3dpbmctLWxlYXZlLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbn1cblxuQGtleWZyYW1lcyBzd2luZy0tZW50ZXItdG9wIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoLTEsIDAsIDAsIDkwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHN3aW5nLS1sZWF2ZS10b3Age1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKC0xLCAwLCAwLCA5MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzd2luZy0tZW50ZXItYm90dG9tIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLWxlYXZlLWJvdHRvbSB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLWVudGVyLWxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzd2luZy0tbGVhdmUtbGVmdCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLWVudGVyLXJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgLTEsIDAsIDkwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHN3aW5nLS1sZWF2ZS1yaWdodCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgLTEsIDAsIDkwZGVnKTtcbiAgfVxufVxuXG4uc2xpZGUtLWVudGVyLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGUtLWVudGVyLXRvcDtcbn1cblxuLnNsaWRlLS1lbnRlci10b3AgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlLS1sZWF2ZS1ib3R0b207XG59XG5cbi5zbGlkZS0tZW50ZXItYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZS0tZW50ZXItYm90dG9tO1xufVxuXG4uc2xpZGUtLWVudGVyLWJvdHRvbSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGUtLWxlYXZlLXRvcDtcbn1cblxuLnNsaWRlLS1lbnRlci1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZS0tZW50ZXItbGVmdDtcbn1cblxuLnNsaWRlLS1lbnRlci1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZS0tbGVhdmUtcmlnaHQ7XG59XG5cbi5zbGlkZS0tZW50ZXItcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlLS1lbnRlci1yaWdodDtcbn1cblxuLnNsaWRlLS1lbnRlci1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGUtLWxlYXZlLWxlZnQ7XG59XG5cbi5zbGlkZS0tbGVhdmUtdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZS0tbGVhdmUtdG9wO1xufVxuXG4uc2xpZGUtLWxlYXZlLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGUtLWVudGVyLWJvdHRvbTtcbn1cblxuLnNsaWRlLS1sZWF2ZS1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlLS1sZWF2ZS1ib3R0b207XG59XG5cbi5zbGlkZS0tbGVhdmUtYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZS0tZW50ZXItdG9wO1xufVxuXG4uc2xpZGUtLWxlYXZlLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlLS1sZWF2ZS1sZWZ0O1xufVxuXG4uc2xpZGUtLWxlYXZlLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlLS1lbnRlci1yaWdodDtcbn1cblxuLnNsaWRlLS1sZWF2ZS1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGUtLWxlYXZlLXJpZ2h0O1xufVxuXG4uc2xpZGUtLWxlYXZlLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZS0tZW50ZXItbGVmdDtcbn1cblxuLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0nc2xpZGUtLSddIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciwgLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0nc2xpZGUtLSddIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuQGtleWZyYW1lcyBzbGlkZS0tZW50ZXItdG9wIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtLWxlYXZlLXRvcCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtLWVudGVyLWJvdHRvbSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtLWxlYXZlLWJvdHRvbSB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZS0tZW50ZXItbGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLS1sZWF2ZS1sZWZ0IHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZS0tZW50ZXItcmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLS1sZWF2ZS1yaWdodCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLnJvbGwtb3V0LS1lbnRlci10b3AgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGwtb3V0LS1lbnRlci10b3A7XG59XG5cbi5yb2xsLW91dC0tZW50ZXItdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsLW91dC0tbGVhdmUtYm90dG9tO1xufVxuXG4ucm9sbC1vdXQtLWVudGVyLWJvdHRvbSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogcm9sbC1vdXQtLWVudGVyLWJvdHRvbTtcbn1cblxuLnJvbGwtb3V0LS1lbnRlci1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGwtb3V0LS1sZWF2ZS10b3A7XG59XG5cbi5yb2xsLW91dC0tZW50ZXItbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogcm9sbC1vdXQtLWVudGVyLWxlZnQ7XG59XG5cbi5yb2xsLW91dC0tZW50ZXItbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogcm9sbC1vdXQtLWxlYXZlLXJpZ2h0O1xufVxuXG4ucm9sbC1vdXQtLWVudGVyLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsLW91dC0tZW50ZXItcmlnaHQ7XG59XG5cbi5yb2xsLW91dC0tZW50ZXItcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGwtb3V0LS1sZWF2ZS1sZWZ0O1xufVxuXG4ucm9sbC1vdXQtLWxlYXZlLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogcm9sbC1vdXQtLWxlYXZlLXRvcDtcbn1cblxuLnJvbGwtb3V0LS1sZWF2ZS10b3AgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGwtb3V0LS1lbnRlci1ib3R0b207XG59XG5cbi5yb2xsLW91dC0tbGVhdmUtYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsLW91dC0tbGVhdmUtYm90dG9tO1xufVxuXG4ucm9sbC1vdXQtLWxlYXZlLWJvdHRvbSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogcm9sbC1vdXQtLWVudGVyLXRvcDtcbn1cblxuLnJvbGwtb3V0LS1sZWF2ZS1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsLW91dC0tbGVhdmUtbGVmdDtcbn1cblxuLnJvbGwtb3V0LS1sZWF2ZS1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsLW91dC0tZW50ZXItcmlnaHQ7XG59XG5cbi5yb2xsLW91dC0tbGVhdmUtcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGwtb3V0LS1sZWF2ZS1yaWdodDtcbn1cblxuLnJvbGwtb3V0LS1sZWF2ZS1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogcm9sbC1vdXQtLWVudGVyLWxlZnQ7XG59XG5cbi5kaXJlY3Rpb24tcmV2ZWFsIFtjbGFzcyo9J3JvbGwtb3V0LS0nXSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIsIC5kaXJlY3Rpb24tcmV2ZWFsIFtjbGFzcyo9J3JvbGwtb3V0LS0nXSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuXG5Aa2V5ZnJhbWVzIHJvbGwtb3V0LS1lbnRlci10b3Age1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDAsIDAgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsLW91dC0tbGVhdmUtdG9wIHtcbiAgMTAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDAsIDAgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsLW91dC0tZW50ZXItYm90dG9tIHtcbiAgMCUge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsIDEwMCUgMTAwJSwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbC1vdXQtLWxlYXZlLWJvdHRvbSB7XG4gIDEwMCUge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDEwMCUsIDEwMCUgMTAwJSwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbC1vdXQtLWVudGVyLWxlZnQge1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMCAwLCAwIDEwMCUsIDAgMTAwJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsLW91dC0tbGVhdmUtbGVmdCB7XG4gIDEwMCUge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDAgMCwgMCAxMDAlLCAwIDEwMCUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbC1vdXQtLWVudGVyLXJpZ2h0IHtcbiAgMCUge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigxMDAlIDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAxMDAlIDEwMCUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbC1vdXQtLWxlYXZlLXJpZ2h0IHtcbiAgMTAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDEwMCUgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDEwMCUgMTAwJSk7XG4gIH1cbn1cblxuLnJvdGF0ZS0tZW50ZXItdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWVudGVyLXRvcDtcbn1cblxuLnJvdGF0ZS0tZW50ZXItdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWxlYXZlLWJvdHRvbTtcbn1cblxuLnJvdGF0ZS0tZW50ZXItYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWVudGVyLWJvdHRvbTtcbn1cblxuLnJvdGF0ZS0tZW50ZXItYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWxlYXZlLXRvcDtcbn1cblxuLnJvdGF0ZS0tZW50ZXItbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlLS1lbnRlci1sZWZ0O1xufVxuXG4ucm90YXRlLS1lbnRlci1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWxlYXZlLXJpZ2h0O1xufVxuXG4ucm90YXRlLS1lbnRlci1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlLS1lbnRlci1yaWdodDtcbn1cblxuLnJvdGF0ZS0tZW50ZXItcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZS0tbGVhdmUtbGVmdDtcbn1cblxuLnJvdGF0ZS0tbGVhdmUtdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWxlYXZlLXRvcDtcbn1cblxuLnJvdGF0ZS0tbGVhdmUtdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWVudGVyLWJvdHRvbTtcbn1cblxuLnJvdGF0ZS0tbGVhdmUtYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWxlYXZlLWJvdHRvbTtcbn1cblxuLnJvdGF0ZS0tbGVhdmUtYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWVudGVyLXRvcDtcbn1cblxuLnJvdGF0ZS0tbGVhdmUtbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlLS1sZWF2ZS1sZWZ0O1xufVxuXG4ucm90YXRlLS1sZWF2ZS1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGUtLWVudGVyLXJpZ2h0O1xufVxuXG4ucm90YXRlLS1sZWF2ZS1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlLS1sZWF2ZS1yaWdodDtcbn1cblxuLnJvdGF0ZS0tbGVhdmUtcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZS0tZW50ZXItbGVmdDtcbn1cblxuLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0ncm90YXRlLS0nXSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIsIC5kaXJlY3Rpb24tcmV2ZWFsIFtjbGFzcyo9J3JvdGF0ZS0tJ10gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMCk7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLnJvdGF0ZS0tZW50ZXItdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciwgLnJvdGF0ZS0tZW50ZXItdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSwgLnJvdGF0ZS0tbGVhdmUtdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciwgLnJvdGF0ZS0tbGVhdmUtdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xufVxuXG4ucm90YXRlLS1lbnRlci1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAucm90YXRlLS1lbnRlci1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlLCAucm90YXRlLS1sZWF2ZS1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAucm90YXRlLS1sZWF2ZS1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG59XG5cbi5yb3RhdGUtLWVudGVyLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyLCAucm90YXRlLS1lbnRlci1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSwgLnJvdGF0ZS0tbGVhdmUtbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIsIC5yb3RhdGUtLWxlYXZlLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG59XG5cbi5yb3RhdGUtLWVudGVyLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciwgLnJvdGF0ZS0tZW50ZXItcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlLCAucm90YXRlLS1sZWF2ZS1yaWdodCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIsIC5yb3RhdGUtLWxlYXZlLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGUtLWVudGVyLXRvcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS1sZWF2ZS10b3Age1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS1lbnRlci1ib3R0b20ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS1sZWF2ZS1ib3R0b20ge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGUtLWVudGVyLWxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS1sZWF2ZS1sZWZ0IHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS1lbnRlci1yaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS1sZWF2ZS1yaWdodCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cbn1cblxuLmZsaXAtLWVudGVyLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogZmxpcC0tZW50ZXItdG9wO1xufVxuXG4uZmxpcC0tZW50ZXItdG9wIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwLS1sZWF2ZS1ib3R0b207XG59XG5cbi5mbGlwLS1lbnRlci1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXAtLWVudGVyLWJvdHRvbTtcbn1cblxuLmZsaXAtLWVudGVyLWJvdHRvbSAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogZmxpcC0tbGVhdmUtdG9wO1xufVxuXG4uZmxpcC0tZW50ZXItbGVmdCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tZW50ZXIge1xuICBhbmltYXRpb24tbmFtZTogZmxpcC0tZW50ZXItbGVmdDtcbn1cblxuLmZsaXAtLWVudGVyLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXAtLWxlYXZlLXJpZ2h0O1xufVxuXG4uZmxpcC0tZW50ZXItcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXAtLWVudGVyLXJpZ2h0O1xufVxuXG4uZmxpcC0tZW50ZXItcmlnaHQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXAtLWxlYXZlLWxlZnQ7XG59XG5cbi5mbGlwLS1sZWF2ZS10b3AgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXAtLWxlYXZlLXRvcDtcbn1cblxuLmZsaXAtLWxlYXZlLXRvcCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tbGVhdmUge1xuICBhbmltYXRpb24tbmFtZTogZmxpcC0tZW50ZXItYm90dG9tO1xufVxuXG4uZmxpcC0tbGVhdmUtYm90dG9tIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwLS1sZWF2ZS1ib3R0b207XG59XG5cbi5mbGlwLS1sZWF2ZS1ib3R0b20gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXAtLWVudGVyLXRvcDtcbn1cblxuLmZsaXAtLWxlYXZlLWxlZnQgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWVudGVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXAtLWxlYXZlLWxlZnQ7XG59XG5cbi5mbGlwLS1sZWF2ZS1sZWZ0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwLS1lbnRlci1yaWdodDtcbn1cblxuLmZsaXAtLWxlYXZlLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwLS1sZWF2ZS1yaWdodDtcbn1cblxuLmZsaXAtLWxlYXZlLXJpZ2h0IC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1sZWF2ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwLS1lbnRlci1sZWZ0O1xufVxuXG4uZGlyZWN0aW9uLXJldmVhbCBbY2xhc3MqPSdmbGlwLS0nXSB7XG4gIHBlcnNwZWN0aXZlOiA4MDBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5kaXJlY3Rpb24tcmV2ZWFsIFtjbGFzcyo9J2ZsaXAtLSddIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS1lbnRlciwgLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0nZmxpcC0tJ10gLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLWxlYXZlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDApIHJvdGF0ZVkoMCk7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjJzO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tZW50ZXItdG9wIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgxODBkZWcpIHJvdGF0ZVkoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwLS1sZWF2ZS10b3Age1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tZW50ZXItYm90dG9tIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgtMTgwZGVnKSByb3RhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tbGVhdmUtYm90dG9tIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKC0xODBkZWcpIHJvdGF0ZVkoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwLS1lbnRlci1sZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgwKSByb3RhdGVZKC0xODBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tbGVhdmUtbGVmdCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgwKSByb3RhdGVZKC0xODBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tZW50ZXItcmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDApIHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZsaXAtLWxlYXZlLXJpZ2h0IHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDApIHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxufVxuIiwiJGFuaW0tZWFzaW5nLWVhc2VPdXRRdWFkOiBjdWJpYy1iZXppZXIoMC4yNTAsIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGFuaW0tZWFzaW5nLWVhc2VPdXRDdWJpYzogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRhbmltLWVhc2luZy1lYXNlSW5PdXRRdWFkOiBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGFuaW0tZHVyYXRpb246IC42cztcbiRhbmltLXBvc3RmaXgtZW50ZXI6ICdlbnRlcic7XG4kYW5pbS1wb3N0Zml4LWxlYXZlOiAnbGVhdmUnO1xuXG4kb3ZlcmxheS1iYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC42KTtcblxuJGdyaWQtc3BhY2luZzogOHB4O1xuIiwiLy8gR2VuZXJhdGVzIGNsYXNzZXMgdG8gYXNzaWduIGFuaW1hdGlvbnNcbkBtaXhpbiBhbmltYXRpb24tY2xhc3NlcygkYW5pbWF0aW9uLW5hbWUpIHtcblxuICAkZGlyZWN0aW9ucy1saXN0OiAkYW5pbS1wb3N0Zml4LWVudGVyICRhbmltLXBvc3RmaXgtbGVhdmU7XG4gICRwb3NpdGlvbnMtbGlzdDogdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0O1xuXG4gICRkaXJlY3Rpb25zLW9wcG9zaXRlLWxpc3Q6ICRhbmltLXBvc3RmaXgtbGVhdmUgJGFuaW0tcG9zdGZpeC1lbnRlcjtcbiAgJHBvc2l0aW9ucy1vcHBvc2l0ZS1saXN0OiBib3R0b20gdG9wIHJpZ2h0IGxlZnQ7XG5cbiAgQGVhY2ggJGRpcmVjdGlvbiBpbiAkZGlyZWN0aW9ucy1saXN0IHtcbiAgICBAZWFjaCAkcG9zaXRpb24gaW4gJHBvc2l0aW9ucy1saXN0IHtcblxuICAgICAgJGNsYXNzLW5hbWU6ICN7JGFuaW1hdGlvbi1uYW1lfS0tI3skZGlyZWN0aW9ufS0jeyRwb3NpdGlvbn07XG5cbiAgICAgIC4jeyRjbGFzcy1uYW1lfSB7XG4gICAgICAgIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9IHtcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogI3skY2xhc3MtbmFtZX07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJGRpcmVjdGlvbi1vcHBvc2l0ZTogbnRoKCRkaXJlY3Rpb25zLW9wcG9zaXRlLWxpc3QsIGluZGV4KCRkaXJlY3Rpb25zLWxpc3QsICRkaXJlY3Rpb24pKTtcbiAgICAgICRwb3NpdGlvbi1vcHBvc2l0ZTogbnRoKCRwb3NpdGlvbnMtb3Bwb3NpdGUtbGlzdCwgaW5kZXgoJHBvc2l0aW9ucy1saXN0LCAkcG9zaXRpb24pKTtcbiAgICAgICRjbGFzcy1uYW1lLW9wcG9zaXRlOiAjeyRhbmltYXRpb24tbmFtZX0tLSN7JGRpcmVjdGlvbi1vcHBvc2l0ZX0tI3skcG9zaXRpb24tb3Bwb3NpdGV9O1xuXG4gICAgICAuI3skY2xhc3MtbmFtZX0ge1xuICAgICAgICAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfSB7XG4gICAgICAgICAgYW5pbWF0aW9uLW5hbWU6ICN7JGNsYXNzLW5hbWUtb3Bwb3NpdGV9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxufVxuXG5cblxuLy8gU3dpbmcgYW5pbWF0aW9uXG5cbkBpbmNsdWRlIGFuaW1hdGlvbi1jbGFzc2VzKCdzd2luZycpO1xuXG4vLyBEZWZhdWx0IHZpc2libGUgc3RhdGUgYWZ0ZXIgYW5pbWF0aW9uIC0gdXNlZCBhcyBzdGFydCBvciBlbmQgcG9pbnRzIGZvciB0aGUga2V5ZnJhbWUgYW5pbWF0aW9uc1xuLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0nc3dpbmctLSddIHtcbiAgcGVyc3BlY3RpdmU6IDQwMHB4O1xuXG4gIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAwLCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbS1lYXNpbmctZWFzZU91dEN1YmljO1xuICB9XG59XG5cbi5zd2luZy0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS10b3AsIC5zd2luZy0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS10b3Age1xuICBwZXJzcGVjdGl2ZS1vcmlnaW46IGNlbnRlciB0b3A7XG5cbiAgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0sIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xuICB9XG59XG5cbi5zd2luZy0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1ib3R0b20sIC5zd2luZy0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS1ib3R0b20ge1xuICBwZXJzcGVjdGl2ZS1vcmlnaW46IGNlbnRlciBib3R0b207XG5cbiAgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0sIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICB9XG59XG5cbi5zd2luZy0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1sZWZ0LCAuc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tbGVmdCB7XG4gIHBlcnNwZWN0aXZlLW9yaWdpbjogbGVmdCBjZW50ZXI7XG5cbiAgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0sIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgfVxufVxuXG4uc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tcmlnaHQsIC5zd2luZy0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS1yaWdodCB7XG4gIHBlcnNwZWN0aXZlLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuXG4gIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuICB9XG59XG5cblxuQGtleWZyYW1lcyBzd2luZy0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS10b3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgtMSwgMCwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tdG9wIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgtMSwgMCwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tYm90dG9tIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tYm90dG9tIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzd2luZy0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1sZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tbGVmdCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tcmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAtMSwgMCwgOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc3dpbmctLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tcmlnaHQge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIC0xLCAwLCA5MGRlZyk7XG4gIH1cbn1cblxuXG5cbi8vIFNsaWRlIGFuaW1hdGlvblxuXG5AaW5jbHVkZSBhbmltYXRpb24tY2xhc3Nlcygnc2xpZGUnKTtcblxuLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0nc2xpZGUtLSddIHtcblxuICAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfSwgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW0tZWFzaW5nLWVhc2VPdXRRdWFkO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tdG9wIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tdG9wIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1ib3R0b20ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9LWJvdHRvbSB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1sZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tbGVmdCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICB9XG59XG5cblxuQGtleWZyYW1lcyBzbGlkZS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1yaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tcmlnaHQge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICB9XG59XG5cblxuXG4vLyBTbGlkZSBmcm9tIGNvcm5lclxuXG5AaW5jbHVkZSBhbmltYXRpb24tY2xhc3Nlcygncm9sbC1vdXQnKTtcblxuLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0ncm9sbC1vdXQtLSddIHtcblxuICAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfSwgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW0tZWFzaW5nLWVhc2VPdXRRdWFkO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbC1vdXQtLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tdG9wIHtcbiAgMCUge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCwgMTAwJSAwLCAwIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbC1vdXQtLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tdG9wIHtcbiAgMTAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMTAwJSAwLCAxMDAlIDAsIDAgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsLW91dC0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1ib3R0b20ge1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMTAwJSwgMTAwJSAxMDAlLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsLW91dC0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS1ib3R0b20ge1xuICAxMDAlIHtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAxMDAlLCAxMDAlIDEwMCUsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvbGwtb3V0LS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LWxlZnQge1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMCAwLCAwIDEwMCUsIDAgMTAwJSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb2xsLW91dC0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS1sZWZ0IHtcbiAgMTAwJSB7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgMCAwLCAwIDEwMCUsIDAgMTAwJSk7XG4gIH1cbn1cblxuXG5Aa2V5ZnJhbWVzIHJvbGwtb3V0LS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LXJpZ2h0IHtcbiAgMCUge1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigxMDAlIDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAxMDAlIDEwMCUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm9sbC1vdXQtLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tcmlnaHQge1xuICAxMDAlIHtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMTAwJSAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMTAwJSAxMDAlKTtcbiAgfVxufVxuXG5cblxuLy8gUm90YXRlIGFuaW1hdGlvblxuXG5AaW5jbHVkZSBhbmltYXRpb24tY2xhc3Nlcygncm90YXRlJyk7XG5cbi5kaXJlY3Rpb24tcmV2ZWFsIFtjbGFzcyo9J3JvdGF0ZS0tJ10ge1xuICAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfSwgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltLWVhc2luZy1lYXNlT3V0UXVhZDtcbiAgfVxufVxuXG4ucm90YXRlLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LXRvcCwgLnJvdGF0ZS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS10b3Age1xuICAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfSwgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB9XG59XG5cbi5yb3RhdGUtLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tYm90dG9tLCAucm90YXRlLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9LWJvdHRvbSB7XG4gIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gIH1cbn1cblxuLnJvdGF0ZS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1sZWZ0LCAucm90YXRlLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9LWxlZnQge1xuICAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfSwgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB9XG59XG5cbi5yb3RhdGUtLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tcmlnaHQsIC5yb3RhdGUtLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tcmlnaHQge1xuICAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfSwgLmRpcmVjdGlvbi1yZXZlYWxfX2FuaW0tLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZS0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS10b3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS10b3Age1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LWJvdHRvbSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGUtLSN7JGFuaW0tcG9zdGZpeC1sZWF2ZX0tYm90dG9tIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LWxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9LWxlZnQge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyByb3RhdGUtLSN7JGFuaW0tcG9zdGZpeC1lbnRlcn0tcmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS1yaWdodCB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gIH1cbn1cblxuXG5cbi8vIEZsaXBcblxuQGluY2x1ZGUgYW5pbWF0aW9uLWNsYXNzZXMoJ2ZsaXAnKTtcblxuLmRpcmVjdGlvbi1yZXZlYWwgW2NsYXNzKj0nZmxpcC0tJ10ge1xuICBwZXJzcGVjdGl2ZTogODAwcHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gIC5kaXJlY3Rpb24tcmV2ZWFsX19hbmltLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LCAuZGlyZWN0aW9uLXJldmVhbF9fYW5pbS0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDApIHJvdGF0ZVkoMCk7IC8vIE9yZGVyIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIGFuaW1hdGlvbnNcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbS1lYXNpbmctZWFzZUluT3V0UXVhZDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246ICRhbmltLWR1cmF0aW9uKjI7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LXRvcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS10b3Age1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMTgwZGVnKSByb3RhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1ib3R0b20ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKC0xODBkZWcpIHJvdGF0ZVkoMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9LWJvdHRvbSB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgtMTgwZGVnKSByb3RhdGVZKDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tI3skYW5pbS1wb3N0Zml4LWVudGVyfS1sZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgwKSByb3RhdGVZKC0xODBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxpcC0tI3skYW5pbS1wb3N0Zml4LWxlYXZlfS1sZWZ0IHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDApIHJvdGF0ZVkoLTE4MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwLS0jeyRhbmltLXBvc3RmaXgtZW50ZXJ9LXJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCgwKSByb3RhdGVZKDE4MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlwLS0jeyRhbmltLXBvc3RmaXgtbGVhdmV9LXJpZ2h0IHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDApIHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxufVxuIl19 */
