/**
 * ANIMATIONS
 */

.slide-fade-enter-active {
  transition: all .8s ease;
}

.slide-fade-leave-active {
  transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1);
}

.slide-fade-enter,
.slide-fade-leave-to {
  -webkit-transform: translateX(-10px);
  transform: translateX(-10px);
  opacity: 0;
}

.spinning {
  -webkit-animation: spin 0.3s linear infinite;
  animation: spin 0.3s linear infinite;
}

@-webkit-keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes spin {
  from {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  to {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/**
 * PRELOADERS
 */

.Preloader {
  position: fixed;
  z-index: 10000;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  transition: all 0.5s ease-out;
  background: #ffffff;
}

.Preloader.\--loaded {
  opacity: 0;
}

.Preloader__center .Preloader__element {
  background: #000000;
}

.Preloader__center.\--v1 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.Preloader__center.\--v1 .Preloader__element {
  width: 20px;
  height: 20px;
  margin: 5px;
  border-radius: 100%;
  -webkit-animation: upAndDown 1s infinite;
  animation: upAndDown 1s infinite;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(1) {
  -webkit-animation-delay: -900ms;
  animation-delay: -900ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(2) {
  -webkit-animation-delay: -800ms;
  animation-delay: -800ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(3) {
  -webkit-animation-delay: -700ms;
  animation-delay: -700ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(4) {
  -webkit-animation-delay: -600ms;
  animation-delay: -600ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(5) {
  -webkit-animation-delay: -500ms;
  animation-delay: -500ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(6) {
  -webkit-animation-delay: -400ms;
  animation-delay: -400ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(7) {
  -webkit-animation-delay: -300ms;
  animation-delay: -300ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(8) {
  -webkit-animation-delay: -200ms;
  animation-delay: -200ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(9) {
  -webkit-animation-delay: -100ms;
  animation-delay: -100ms;
}

.Preloader__center.\--v1 .Preloader__element:nth-of-type(10) {
  -webkit-animation-delay: 0ms;
  animation-delay: 0ms;
}

.Preloader__center.\--v2 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.Preloader__center.\--v2 .Preloader__element {
  width: 20px;
  height: 20px;
  margin: 8px;
  border-radius: 100%;
  -webkit-animation: biggize 1s infinite ease-out;
  animation: biggize 1s infinite ease-out;
}

.Preloader__center.\--v2 .Preloader__element:nth-of-type(1) {
  -webkit-animation-delay: -500ms;
  animation-delay: -500ms;
}

.Preloader__center.\--v2 .Preloader__element:nth-of-type(2) {
  -webkit-animation-delay: -400ms;
  animation-delay: -400ms;
}

.Preloader__center.\--v2 .Preloader__element:nth-of-type(3) {
  -webkit-animation-delay: -300ms;
  animation-delay: -300ms;
}

.Preloader__center.\--v2 .Preloader__element:nth-of-type(4) {
  -webkit-animation-delay: -200ms;
  animation-delay: -200ms;
}

.Preloader__center.\--v2 .Preloader__element:nth-of-type(5) {
  -webkit-animation-delay: -100ms;
  animation-delay: -100ms;
}

.Preloader__center.\--v2 .Preloader__element:nth-of-type(6) {
  -webkit-animation-delay: 0ms;
  animation-delay: 0ms;
}

.Preloader__center.\--v3 {
  position: relative;
  width: 40px;
  height: 40px;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.Preloader__center.\--v3 .Preloader__element {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  -webkit-animation: smallize 2s linear infinite;
  animation: smallize 2s linear infinite;
  -webkit-animation-delay: -1500ms;
  animation-delay: -1500ms;
}

.Preloader__center.\--v3 .Preloader__element:nth-of-type(2) {
  -webkit-animation-delay: -1000ms;
  animation-delay: -1000ms;
}

.Preloader__center.\--v3 .Preloader__element:nth-of-type(3) {
  -webkit-animation-delay: -500ms;
  animation-delay: -500ms;
}

.Preloader__center.\--v3 .Preloader__element:nth-of-type(4) {
  -webkit-animation-delay: 0ms;
  animation-delay: 0ms;
}

.Preloader__center.\--v4 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 80px;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.Preloader__center.\--v4 .Preloader__element {
  width: 16px;
  height: 16px;
  margin: 2px;
  -webkit-animation: animationFour 2s infinite;
  animation: animationFour 2s infinite;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(1) {
  -webkit-animation-delay: -1500ms;
  animation-delay: -1500ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(2) {
  -webkit-animation-delay: -1400ms;
  animation-delay: -1400ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(3) {
  -webkit-animation-delay: -1300ms;
  animation-delay: -1300ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(4) {
  -webkit-animation-delay: -1200ms;
  animation-delay: -1200ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(5) {
  -webkit-animation-delay: -1100ms;
  animation-delay: -1100ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(6) {
  -webkit-animation-delay: -1000ms;
  animation-delay: -1000ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(7) {
  -webkit-animation-delay: -900ms;
  animation-delay: -900ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(8) {
  -webkit-animation-delay: -800ms;
  animation-delay: -800ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(9) {
  -webkit-animation-delay: -700ms;
  animation-delay: -700ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(10) {
  -webkit-animation-delay: -600ms;
  animation-delay: -600ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(11) {
  -webkit-animation-delay: -500ms;
  animation-delay: -500ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(12) {
  -webkit-animation-delay: -400ms;
  animation-delay: -400ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(13) {
  -webkit-animation-delay: -300ms;
  animation-delay: -300ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(14) {
  -webkit-animation-delay: -200ms;
  animation-delay: -200ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(15) {
  -webkit-animation-delay: -100ms;
  animation-delay: -100ms;
}

.Preloader__center.\--v4 .Preloader__element:nth-of-type(16) {
  -webkit-animation-delay: 0ms;
  animation-delay: 0ms;
}

.Preloader__center.\--v5 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 80px;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

.Preloader__center.\--v5 .Preloader__element {
  width: 16px;
  height: 16px;
  margin: 2px;
  opacity: 0;
  -webkit-animation: animationFive 1.2s infinite ease-in-out;
  animation: animationFive 1.2s infinite ease-in-out;
}

.Preloader__center.\--v5 .Preloader__element:nth-of-type(9),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(14) {
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms;
}

.Preloader__center.\--v5 .Preloader__element:nth-of-type(5),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(10),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(15) {
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms;
}

.Preloader__center.\--v5 .Preloader__element:nth-of-type(1),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(6),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(11),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(16) {
  -webkit-animation-delay: 600ms;
  animation-delay: 600ms;
}

.Preloader__center.\--v5 .Preloader__element:nth-of-type(2),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(7),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(12) {
  -webkit-animation-delay: 800ms;
  animation-delay: 800ms;
}

.Preloader__center.\--v5 .Preloader__element:nth-of-type(3),
.Preloader__center.\--v5 .Preloader__element:nth-of-type(8) {
  -webkit-animation-delay: 1000ms;
  animation-delay: 1000ms;
}

.Preloader__center.\--v5 .Preloader__element:nth-of-type(4) {
  -webkit-animation-delay: 1200ms;
  animation-delay: 1200ms;
}

.Preloader__center.\--v6 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.Preloader__center.\--v6 .Preloader__element {
  width: 16px;
  height: 16px;
  margin: 2px;
  -webkit-animation: animationSix 1s infinite;
  animation: animationSix 1s infinite;
}

.Preloader__center.\--v6 .Preloader__element:nth-of-type(1) {
  -webkit-animation-delay: 100ms;
  animation-delay: 100ms;
}

.Preloader__center.\--v6 .Preloader__element:nth-of-type(2) {
  -webkit-animation-delay: 200ms;
  animation-delay: 200ms;
}

.Preloader__center.\--v6 .Preloader__element:nth-of-type(3) {
  -webkit-animation-delay: 300ms;
  animation-delay: 300ms;
}

.Preloader__center.\--v6 .Preloader__element:nth-of-type(4) {
  -webkit-animation-delay: 400ms;
  animation-delay: 400ms;
}

.Preloader__center.\--v6 .Preloader__element:nth-of-type(5) {
  -webkit-animation-delay: 500ms;
  animation-delay: 500ms;
}

.Preloader__center.\--v6 .Preloader__element:nth-of-type(6) {
  -webkit-animation-delay: 600ms;
  animation-delay: 600ms;
}

.Preloader__center.\--v7 {
  position: relative;
  height: 120px;
  width: 120px;
  margin-top: -60px;
  margin-left: -60px;
}

.Preloader__center.\--v7 .Preloader__element {
  -webkit-animation: animationSeven 1.2s cubic-bezier(0.87, 0.23, 0.2, 0.79) infinite;
  animation: animationSeven 1.2s cubic-bezier(0.87, 0.23, 0.2, 0.79) infinite;
  border-radius: 100%;
  border: 4px solid transparent;
  border-left-color: #000000;
  border-right-color: #000000;
  background: transparent;
  position: absolute;
  top: 0;
  left: 0;
}

.Preloader__center.\--v7 .Preloader__element:nth-of-type(1) {
  margin-top: 6px;
  margin-left: 6px;
  width: 158px;
  height: 158px;
  -webkit-animation-delay: -200ms;
  animation-delay: -200ms;
}

.Preloader__center.\--v7 .Preloader__element:nth-of-type(2) {
  margin-top: 12px;
  margin-left: 12px;
  width: 146px;
  height: 146px;
  -webkit-animation-delay: -160ms;
  animation-delay: -160ms;
}

.Preloader__center.\--v7 .Preloader__element:nth-of-type(3) {
  margin-top: 18px;
  margin-left: 18px;
  width: 134px;
  height: 134px;
  -webkit-animation-delay: -120ms;
  animation-delay: -120ms;
}

.Preloader__center.\--v7 .Preloader__element:nth-of-type(4) {
  margin-top: 24px;
  margin-left: 24px;
  width: 122px;
  height: 122px;
  -webkit-animation-delay: -80ms;
  animation-delay: -80ms;
}

.Preloader__center.\--v7 .Preloader__element:nth-of-type(5) {
  margin-top: 30px;
  margin-left: 30px;
  width: 110px;
  height: 110px;
  -webkit-animation-delay: -40ms;
  animation-delay: -40ms;
}

.Preloader__center.\--v7 .Preloader__element:nth-of-type(6) {
  margin-top: 36px;
  margin-left: 36px;
  width: 98px;
  height: 98px;
  -webkit-animation-delay: 0ms;
  animation-delay: 0ms;
}

.Preloader__center.\--v8 {
  position: relative;
  height: 120px;
  width: 120px;
  margin-top: -60px;
  margin-left: -60px;
}

.Preloader__center.\--v8 .Preloader__element {
  -webkit-animation: animationSeven 1.5s ease-out alternate infinite;
  animation: animationSeven 1.5s ease-out alternate infinite;
  border-radius: 100%;
  border: 4px solid transparent;
  background: transparent;
  position: absolute;
  top: 0;
  left: 0;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(2n - 1) {
  border-left-color: #000000;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(2n) {
  border-right-color: #000000;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(3n) {
  border-top-color: #000000;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(4n) {
  border-bottom-color: #000000;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(1) {
  margin-top: 6px;
  margin-left: 6px;
  width: 158px;
  height: 158px;
  -webkit-animation-duration: 1200ms;
  animation-duration: 1200ms;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(2) {
  margin-top: 12px;
  margin-left: 12px;
  width: 146px;
  height: 146px;
  -webkit-animation-duration: 1100ms;
  animation-duration: 1100ms;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(3) {
  margin-top: 18px;
  margin-left: 18px;
  width: 134px;
  height: 134px;
  -webkit-animation-duration: 1000ms;
  animation-duration: 1000ms;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(4) {
  margin-top: 24px;
  margin-left: 24px;
  width: 122px;
  height: 122px;
  -webkit-animation-duration: 900ms;
  animation-duration: 900ms;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(5) {
  margin-top: 30px;
  margin-left: 30px;
  width: 110px;
  height: 110px;
  -webkit-animation-duration: 800ms;
  animation-duration: 800ms;
}

.Preloader__center.\--v8 .Preloader__element:nth-of-type(6) {
  margin-top: 36px;
  margin-left: 36px;
  width: 98px;
  height: 98px;
  -webkit-animation-duration: 700ms;
  animation-duration: 700ms;
}

.Preloader.\--reverse {
  background: #000000;
}

.Preloader.\--reverse .Preloader__element {
  background: #ffffff;
}

.Preloader.\--reverse.\--v7 .Preloader__element {
  background: transparent;
  border-left-color: #ffffff;
  border-right-color: #ffffff;
}

.Preloader.\--reverse.\--v8 .Preloader__element {
  background: transparent;
}

.Preloader.\--reverse.\--v8 .Preloader__element:nth-of-type(2n - 1) {
  border-left-color: #ffffff;
}

.Preloader.\--reverse.\--v8 .Preloader__element:nth-of-type(2n) {
  border-right-color: #ffffff;
}

.Preloader.\--reverse.\--v8 .Preloader__element:nth-of-type(3n) {
  border-top-color: #ffffff;
}

.Preloader.\--reverse.\--v8 .Preloader__element:nth-of-type(4n) {
  border-bottom-color: #ffffff;
}

@-webkit-keyframes upAndDown {
  50% {
    -webkit-transform: translateY(40px);
    transform: translateY(40px);
  }
}

@keyframes upAndDown {
  50% {
    -webkit-transform: translateY(40px);
    transform: translateY(40px);
  }
}

@-webkit-keyframes smallize {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
    opacity: 0;
  }

  15% {
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
    opacity: 1;
  }

  50% {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    opacity: 0;
    -webkit-transform: scale(3);
    transform: scale(3);
  }
}

@keyframes smallize {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
    opacity: 0;
  }

  15% {
    -webkit-transform: scale(0.5);
    transform: scale(0.5);
    opacity: 1;
  }

  50% {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }

  100% {
    opacity: 0;
    -webkit-transform: scale(3);
    transform: scale(3);
  }
}

@-webkit-keyframes biggize {
  50% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
  }
}

@keyframes biggize {
  50% {
    -webkit-transform: scale(1.5);
    transform: scale(1.5);
  }
}

@-webkit-keyframes circlize {
  50% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
    border-radius: 0;
  }
}

@keyframes circlize {
  50% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
    border-radius: 0;
  }
}

@-webkit-keyframes animationFour {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
}

@keyframes animationFour {
  50% {
    -webkit-transform: scale(0.8);
    transform: scale(0.8);
  }
}

@-webkit-keyframes animationFive {
  50% {
    opacity: 1;
  }
}

@keyframes animationFive {
  50% {
    opacity: 1;
  }
}

@-webkit-keyframes animationSix {
  50% {
    opacity: 0;
  }
}

@keyframes animationSix {
  50% {
    opacity: 0;
  }
}

@-webkit-keyframes animationSeven {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes animationSeven {
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@-webkit-keyframes quaterRotate {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }

  25% {
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
  }

  50% {
    -webkit-transform: rotate(225deg);
    transform: rotate(225deg);
  }

  75% {
    -webkit-transform: rotate(315deg);
    transform: rotate(315deg);
  }

  100% {
    -webkit-transform: rotate(405deg);
    transform: rotate(405deg);
  }
}

@keyframes quaterRotate {
  0% {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }

  25% {
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
  }

  50% {
    -webkit-transform: rotate(225deg);
    transform: rotate(225deg);
  }

  75% {
    -webkit-transform: rotate(315deg);
    transform: rotate(315deg);
  }

  100% {
    -webkit-transform: rotate(405deg);
    transform: rotate(405deg);
  }
}

/**
 * BASIC STYLES
 */

html,
body,
#ldt {
  height: 100%;
  width: 100%;
}

body {
  font-family: "Raleway", sans-serif;
  font-size: 14px;
  color: #333333;
  background: #ffffff;
}

p,
li {
  color: #555555;
}

p {
  line-height: 2em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #000000;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
  line-height: 1.5em;
}

a {
  transition: opacity 0.3s ease-in-out;
  color: #333333;
}

a:hover {
  text-decoration: none;
  opacity: 0.9;
  color: #333333;
}

blockquote {
  line-height: 2em;
  font-style: italic;
  font-weight: bold;
  font-size: 20px;
  margin: 30px 0;
}

::-moz-selection {
  background: #000000;
  color: #ffffff;
}

::selection {
  background: #000000;
  color: #ffffff;
}

::-moz-selection {
  background: #000000;
  color: #ffffff;
}

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

.flex-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-left: -15px;
  margin-right: -15px;
}

.btn {
  border-radius: 0px;
  border-width: 1px;
  transition: all 0.3s ease-in-out;
}

.btn:focus,
.btn.focus,
.btn:active:focus,
.btn:active.focus,
.btn.active:focus,
.btn.active.focus {
  outline: 0px;
  outline-offset: 0px;
}

.btn {
  z-index: 10;
  position: relative;
  font-family: "Montserrat";
  font-size: 10px;
  padding: 15px 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  text-transform: uppercase;
  letter-spacing: 2px;
  overflow: hidden;
  transition: all 0.5s cubic-bezier(1, 0.5, 0.8, 1);
}

.btn:focus {
  color: inherit;
}

.btn-right-icon i {
  margin-left: 15px;
  font-size: 1.5em;
}

.btn:before,
.btn:after {
  position: absolute;
  z-index: -1;
  content: '';
  width: 120%;
  height: 120%;
  left: 0;
  top: 0;
  transition: all 0.5s ease-out;
}

.btn:before {
  -webkit-transform: translateX(-100%) rotate(45deg);
  transform: translateX(-100%) rotate(45deg);
}

.btn:after {
  -webkit-transform: translateX(100%) rotate(45deg);
  transform: translateX(100%) rotate(45deg);
}

.btn:hover:before {
  -webkit-transform: translateX(-50%) rotate(45deg) scale(4);
  transform: translateX(-50%) rotate(45deg) scale(4);
}

.btn:hover:after {
  -webkit-transform: translateX(50%) rotate(45deg) scale(4);
  transform: translateX(50%) rotate(45deg) scale(4);
}

.btn-black {
  background: transparent;
  border-color: #000000;
  color: #000000;
}

.btn-black:before,
.btn-black:after {
  background: #000000;
}

.btn-black:hover {
  color: #ffffff;
}

.btn-white {
  background: transparent;
  border-color: #ffffff;
  color: #ffffff;
}

.btn-white:before,
.btn-white:after {
  background: #ffffff;
}

.btn-white:hover {
  color: #000000;
}

.btn-disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

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

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

.buttons-group a {
  margin: 0 5px;
}

.buttons-group a:first-of-type {
  margin: 0 5px 0 0;
}

.buttons-group a:last-of-type {
  margin: 0 0 0 5px;
}

@media all and (min-width: 1200px) {
  .container {
    width: 1200px;
  }
}

@media all and (max-width: 767px) {
  .flex-row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    margin-left: 0px;
    margin-right: 0px;
  }

  .flex-row > div {
    margin-bottom: 40px;
  }

  .flex-row > div:last-of-type {
    margin-bottom: 0px;
  }
}

/**
 * PARTICLES
 */

#particles-js {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 30;
}

/**
 * HELPERS
 */

.mt-1 {
  margin-top: 15px;
}

.mt-2 {
  margin-top: 30px;
}

.mt-3 {
  margin-top: 45px;
}

.mb-1 {
  margin-bottom: 15px;
}

.mb-2 {
  margin-bottom: 30px;
}

.mb-3 {
  margin-bottom: 45px;
}

.ml-1 {
  margin-left: 15px;
}

.ml-2 {
  margin-left: 30px;
}

.ml-3 {
  margin-left: 45px;
}

.mr-1 {
  margin-right: 15px;
}

.mr-2 {
  margin-right: 30px;
}

.mr-3 {
  margin-right: 45px;
}

.pt-1 {
  padding-top: 15px;
}

.pt-2 {
  padding-top: 30px;
}

.pt-3 {
  padding-top: 45px;
}

.pb-1 {
  padding-bottom: 15px;
}

.pb-2 {
  padding-bottom: 30px;
}

.pb-3 {
  padding-bottom: 45px;
}

.pl-1 {
  padding-left: 15px;
}

.pl-2 {
  padding-left: 30px;
}

.pl-3 {
  padding-left: 45px;
}

.pr-1 {
  padding-right: 15px;
}

.pr-2 {
  padding-right: 30px;
}

.pr-3 {
  padding-right: 45px;
}

.c-gray {
  color: #555555;
}

.c-light {
  color: #C9C9C9;
}

.c-silver {
  color: #888888;
}

@media all and (max-width: 767px) {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    letter-spacing: 1px;
  }

  h1 {
    font-size: 26px;
  }

  h2 {
    font-size: 24px;
  }

  h4 {
    font-size: 16px;
  }

  blockquote {
    font-size: 16px;
  }
}

/**
 * NAVIGATION
 */

.Navigation {
  transition: width 2s ease-in-out;
  width: 100%;
}

.Navigation__bar {
  width: 100%;
  z-index: 1000;
  padding: 10px 30px;
  background: transparent;
  transition: all 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

.Navigation__bar .navbar-nav li a {
  font-family: "Montserrat";
  letter-spacing: 2px;
  transition: all 0.3s ease-in-out;
  color: #ffffff;
  text-transform: uppercase;
  font-size: 10px;
  position: relative;
  padding: 15px 10px;
  margin-left: 10px;
}

.Navigation__bar .navbar-nav li a:after {
  transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
  content: '';
  width: 0px;
  height: 1px;
  background: #ffffff;
  position: absolute;
  bottom: 8px;
  right: 0px;
}

.Navigation__bar .navbar-nav li a:before {
  transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
  content: '';
  width: 0px;
  height: 1px;
  background: #ffffff;
  position: absolute;
  top: 8px;
  left: 0;
}

.Navigation__bar .navbar-nav li a:hover {
  background-color: transparent;
  color: #C9C9C9;
}

.Navigation__bar .navbar-nav li a:hover:after {
  width: 40px;
  right: calc(50% - 20px);
}

.Navigation__bar .navbar-nav li.active a:after {
  width: 20px;
  right: calc(50% - 10px);
}

.Navigation__bar .navbar-nav li.active a:before {
  width: 20px;
  left: calc(50% - 10px);
}

.Navigation__bar .navbar-nav li a:focus,
.Navigation__bar .navbar-nav li a:active {
  background-color: transparent;
}

.Navigation__bar .navbar-brand {
  padding: 5px 0 0 0px;
}

.Navigation__bar .navbar-brand img,
.Navigation__bar .navbar-brand svg {
  height: 40px;
  width: auto;
}

.Navigation--scrolled .Navigation__bar {
  background: #000000;
}

.Navigation__mobile-menu {
  display: none;
}

@media all and (max-width: 767px) {
  .Navigation__mobile-menu {
    display: inline;
    float: right;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    height: 20px;
    margin: 15px 0 0 0;
  }

  .Navigation__mobile-menu span {
    transition: all 0.3s ease-in-out;
    display: block;
    width: 35px;
    height: 2px;
    background-color: #ffffff;
  }

  .Navigation__mobile-menu.\--active span:nth-of-type(1) {
    -webkit-transform: rotate(-45deg) translateY(12px);
    transform: rotate(-45deg) translateY(12px);
  }

  .Navigation__mobile-menu.\--active span:nth-of-type(2) {
    opacity: 0;
  }

  .Navigation__mobile-menu.\--active span:nth-of-type(3) {
    -webkit-transform: rotate(45deg) translateY(-12px);
    transform: rotate(45deg) translateY(-12px);
  }

  .Navigation__mobile-menu__bar {
    position: relative;
  }

  .Navigation__navbar-nav {
    position: fixed;
    z-index: -1;
    bottom: 0;
    height: 0;
    overflow: hidden;
    left: 0;
    width: 100%;
    background: #000000;
    transition: all 0.5s ease-in-out;
  }

  .Navigation__navbar-nav .navbar-nav {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }

  .Navigation__navbar-nav .navbar-nav li a {
    font-size: 12px;
  }

  .Navigation.\--mobile-active .Navigation__navbar-nav {
    height: 100%;
    padding-top: 70px;
  }
}

/**
 * TOP BAR
 */

.Topbar {
  transition: all 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  background: #000000;
  padding: 15px 30px;
  color: white;
  text-align: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  font-size: 2em;
  z-index: 1;
}

.Topbar__goback {
  float: left;
  cursor: pointer;
}

.Topbar__goback a {
  color: #ffffff;
}

.Topbar__title {
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/**
 * INTRO
 */

.Intro {
  font-family: "Montserrat";
  height: 100%;
  padding: 0px;
  position: relative;
  overflow: hidden;
}

.Intro--single-photo {
  background: url(../images/slide2-bg.jpg?894ea67d516af60c6f5c7159037ba5bb) no-repeat fixed 50% 50%/cover;
}

.Intro--single-photo:after {
  z-index: 10;
  position: absolute;
  width: 100%;
  height: 100%;
  content: '';
}

.Intro--minimal {
  background: #5BC0BE;
}

.Intro .IntroTyping {
  position: absolute;
  height: 100%;
  width: 100%;
  z-index: 20;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-line-pack: center;
  align-content: center;
  color: #ffffff;
}

.Intro .IntroTyping__body {
  font-size: 4em;
}

.Intro .IntroTyping__body li {
  font-weight: bold;
}

.Intro .StartArrow {
  z-index: 30;
  color: #ffffff;
  position: absolute;
  bottom: 40px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-line-pack: center;
  align-content: center;
}

.Intro .IntroImage {
  height: 300px;
  width: auto;
  position: absolute;
  right: 10%;
  top: 20%;
}

/**
 * SECTIONS BASIC STYLES
 */

section,
.section {
  max-width: 100%;
  overflow: hidden;
}

section .section--basic,
.section .section--basic {
  padding: 80px 0;
}

section .section--basic.section--darker,
.section .section--basic.section--darker {
  background: rgba(0, 0, 0, 0.08);
}

section .section--basic .headline,
.section .section--basic .headline {
  text-align: center;
  margin-bottom: 60px;
}

section .section--basic .headline h2,
.section .section--basic .headline h2 {
  text-transform: uppercase;
  font-weight: bold;
}

section .section--basic .headline--left,
.section .section--basic .headline--left {
  text-align: left;
}

section .section--basic .headline--no-margin-bottom,
.section .section--basic .headline--no-margin-bottom {
  margin-bottom: 0px;
}

section .section--basic.\--nopadding-bottom,
.section .section--basic.\--nopadding-bottom {
  padding-bottom: 0px;
}

.space-from-topbar {
  padding-top: 70px;
}

.tight-container {
  font-size: 16px;
  width: 750px;
  margin: 0 auto;
}

@media all and (max-width: 800px) {
  .tight-container {
    width: auto;
    font-size: inherit;
  }
}

/**
 * ABOUT ME
 */

.about-me-text h3 {
  text-transform: uppercase;
  font-size: 18px;
  line-height: 1.8em;
  letter-spacing: 3px;
}

.about-me-text .buttons-group {
  margin-top: 30px;
}

.about-me-photo {
  background-image: url(../images/tech-image.jpg?ff024f40a29096af0fbfc021e39ff679);
  background-repeat: no-repeat;
  background-position: left 5% top 50%;
  background-size: 40% auto;
}

.Skill__head {
  font-family: "Montserrat";
}

@media all and (max-width: 767px) {
  .about-me {
    margin-bottom: 30px;
  }
}

@media all and (max-width: 1200px) {
  .about-me-photo {
    background: transparent;
    background-image: none !important;
  }
}

/**
 * SERVICES
 */

.offer-box:before,
.offer-box:after,
.offer-wrap:before,
.offer-wrap:after {
  position: absolute;
  content: '';
  height: 10px;
  width: 10px;
  border-color: #000000;
  border-width: 0px;
  border-style: solid;
  transition: all 0.3s ease-in-out;
}

.offer-box {
  text-align: center;
  cursor: default;
}

.offer-box i {
  font-size: 48px;
  margin-bottom: 20px;
}

.offer-box a i {
  font-size: 1.5rem;
}

.offer-box h4,
.offer-box .headline {
  text-transform: uppercase;
  font-size: 14px;
  letter-spacing: 3px;
  line-height: 2em;
}

.offer-box:before {
  bottom: 0px;
  left: 0px;
  border-left-width: 1px;
  border-bottom-width: 1px;
}

.offer-box:after {
  bottom: 0px;
  right: 0px;
  border-bottom-width: 1px;
  border-right-width: 1px;
}

.offer-wrap {
  position: relative;
  padding: 30px 10px;
}

.offer-wrap:before {
  top: 0px;
  left: 0px;
  border-top-width: 1px;
  border-left-width: 1px;
}

.offer-wrap:after {
  top: 0px;
  right: 0px;
  border-top-width: 1px;
  border-right-width: 1px;
}

.offer-wrap:hover .offer-box:before,
.offer-wrap:hover .offer-box:after,
.offer-wrap:hover:before,
.offer-wrap:hover:after {
  height: 40px;
  width: 40px;
}

/**
 * PORTFOLIO
 */

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

.Portfolio--spacing .Portfolio__items {
  padding: 15px;
}

.Portfolio--spacing .Portfolio__items .Portfolio-item {
  margin: 15px;
  max-width: calc(25% - 30px);
  -webkit-box-flex: 1;
  -ms-flex: 1 1 calc(25% - 30px);
  flex: 1 1 calc(25% - 30px);
}

.Portfolio__nav {
  margin-bottom: 40px;
}

.Portfolio__nav ul {
  padding-left: 0px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: -webkit-flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  list-style-type: none;
}

.Portfolio__nav ul li {
  font-family: "Montserrat";
  letter-spacing: 2px;
  font-size: 12px;
  padding: 10px 15px;
  position: relative;
  text-transform: uppercase;
  margin: 10px;
  cursor: pointer;
}

.Portfolio__nav ul li:after {
  transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
  content: '';
  position: absolute;
  bottom: 0px;
  left: 0;
  height: 1px;
  width: 0px;
  background: #000000;
}

.Portfolio__nav ul li.active {
  color: #000000;
}

.Portfolio__nav ul li.active:after {
  width: 100%;
}

.Portfolio-item {
  max-width: 25%;
  height: auto;
  overflow: hidden;
  position: relative;
}

.Portfolio-item__name {
  color: #ffffff;
  position: relative;
  z-index: 1000;
  opacity: 0;
  transition: 0.5s all ease-in-out;
  font-size: 1.5em;
}

.Portfolio-item a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  display: -webkit-flex;
  -webkit-flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.Portfolio-item a:before,
.Portfolio-item a:after {
  left: 0;
  top: 0;
  content: '';
  opacity: .2;
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  transition: all .6s ease-in-out;
}

.Portfolio-item a:before {
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
}

.Portfolio-item a:after {
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
}

.Portfolio-item a:hover:before,
.Portfolio-item a:hover:after {
  opacity: 1;
  z-index: 10;
  -webkit-transform: translateX(0) skewX(45deg) scale(2);
  transform: translateX(0) skewX(45deg) scale(2);
}

.Portfolio-item a:hover .Portfolio-item__name {
  opacity: 1;
}

.Portfolio-item img {
  width: 100%;
}

@media all and (max-width: 767px) {
  .Portfolio-item {
    width: 50%;
  }

  .Portfolio--spacing .Portfolio__items {
    padding: 15px;
  }

  .Portfolio--spacing .Portfolio__items .Portfolio-item {
    margin: 15px;
    max-width: calc(50% - 30px);
    -webkit-box-flex: 1;
    -ms-flex: 1 1 calc(50% - 30px);
    flex: 1 1 calc(50% - 30px);
  }
}

@media all and (max-width: 575px) {
  .Portfolio--spacing .Portfolio__items {
    padding: 15px;
  }

  .Portfolio--spacing .Portfolio__items .Portfolio-item {
    margin-bottom: 15px;
    max-width: 100%;
    width: 100%;
  }

  .Portfolio__items {
    padding: 15px;
  }

  .Portfolio__items .Portfolio-item {
    margin-bottom: 15px;
    max-width: 100%;
    width: 100%;
  }
}

/**
 * PROJECT PAGE
 */

.project-page .project-image {
  margin-bottom: 50px;
}

.project-page .project-image img {
  width: 100%;
}

.project-page .project-description {
  font-size: 16px;
}

.project-page .project-details {
  margin-bottom: 30px;
}

.project-page .project-details h4 {
  margin-top: 5px;
}

.project-page .project-detail {
  margin-top: 20px;
}

.project-page .project-detail .project-detail-label {
  color: #555555;
  text-transform: uppercase;
  font-size: 0.9em;
}

.project-page .project-detail .project-detail-value {
  font-weight: bold;
}

.project-page .project-naviagtion {
  margin-top: 50px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  font-size: 26px;
}

.project-page .project-naviagtion a {
  margin: 0 60px;
  text-align: center;
}

@media all and (max-width: 767px) {
  .project-page .project-description {
    font-size: 14px;
  }
}

/**
 * COUNTERS
 */

.paralax-counters {
  background: url(../images/slide3-bg.jpg?488b0aeee53d180fe439df1d1d0d47f6) no-repeat fixed 50% 50%/cover;
  position: relative;
}

.paralax-counters:after {
  z-index: 10;
  top: 0;
  left: 0;
  position: absolute;
  width: 100%;
  height: 100%;
  content: '';
}

.Counter {
  color: #ffffff;
  text-align: center;
  position: relative;
  z-index: 20;
}

.Counter__icon {
  font-size: 24px;
}

.Counter__number {
  font-size: 48px;
  font-weight: bold;
  margin: 10px 0;
}

.Counter__text {
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: #ffffff;
}

@media all and (max-width: 767px) {
  .Counter:nth-of-type(1),
  .Counter:nth-of-type(2) {
    margin-bottom: 30px;
  }
}

/**
 * Blog
 */

.Blog__post {
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease-out;
}

.Blog__post:after {
  content: '';
  z-index: 10;
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  top: 0;
  left: 0;
  -webkit-transform: translateY(0);
  transform: translateY(0);
  transition: all 0.6s cubic-bezier(1, 0.5, 0.8, 1);
}

.Blog__post:hover {
  z-index: 10;
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

.Blog__post:hover:after {
  opacity: 1;
  background: none;
}

.Blog__post:hover img {
  -webkit-filter: none;
  filter: none;
}

.Blog__post:hover .Blog__post-caption {
  width: 100%;
  opacity: 1;
  transition-delay: 0.4s;
}

.Blog__post-image a {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
  z-index: 15;
}

.Blog__post-image img {
  width: 100%;
  height: auto;
  -webkit-filter: grayscale(100%);
  filter: grayscale(100%);
  transition: all 0.6s ease-out;
}

.Blog__post-caption {
  background: rgba(0, 0, 0, 0.4);
  z-index: 20;
  opacity: 0;
  color: #ffffff;
  position: absolute;
  bottom: 0;
  left: 0;
  padding: 20px 30px;
  transition: all 0.4s cubic-bezier(1, 0.5, 0.8, 1);
}

.Blog__post-caption h4 {
  font-size: 16px;
  letter-spacing: 2px;
  color: #ffffff;
  text-transform: uppercase;
  line-height: 1.5em;
}

.Blog__post-categories {
  transition: all 0.4s ease-in-out;
  margin-top: 20px;
  list-style-type: none;
  padding-left: 0px;
}

.Blog__post-categories:before {
  content: '';
  width: 30px;
  height: 1px;
  vertical-align: middle;
  background: #C9C9C9;
  display: inline-block;
  margin-right: 15px;
}

.Blog__post-categories li {
  display: inline;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-left: 3px;
  color: #C9C9C9;
}

@media all and (max-width: 767px) {
  .Blog__post {
    margin-bottom: 10px;
    z-index: 10;
  }

  .Blog__post:after {
    opacity: 0;
  }

  .Blog__post .Blog__post-caption {
    opacity: 1;
  }

  .Blog__post:hover {
    -webkit-transform: inherit;
    transform: inherit;
  }
}

/**
 * BLOG POST
 */

.blog-post-image {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  margin: 30px 0;
}

.blog-post-image img {
  max-width: 100%;
}

.blog-post-meta-detail {
  text-transform: uppercase;
  font-weight: bold;
}

.NavLinks {
  width: 750px;
  margin: 50px auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.NavLinks__link {
  width: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  padding: 10px 50px;
}

.NavLinks__link.\--previous {
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  border-right: 1px solid #000000;
  text-align: right;
}

.NavLinks__link.\--next {
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  border-left: 1px solid #000000;
}

.NavLinks__label {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 2px;
  margin-bottom: 20px;
}

.NavLinks__title {
  font-size: 22px;
}

.NavLinks__title a {
  color: #000000;
}

@media all and (max-width: 767px) {
  .blog-post-text,
  .NavLinks {
    width: auto;
  }

  .blog-post-text__title,
  .NavLinks__title {
    font-size: 16px;
  }

  .blog-post-text__link.\--next,
  .NavLinks__link.\--next {
    padding: 10px 0 10px 20px;
  }

  .blog-post-text__link.\--previous,
  .NavLinks__link.\--previous {
    padding: 10px 20px 10px 0;
  }
}

/**
 * TESTIMONIALS
 */

.section.paralax-testimonials {
  background: #000000 no-repeat fixed 50% 50%/cover;
  position: relative;
  padding: 100px 0 80px 0;
}

.section.paralax-testimonials:after {
  top: 0;
  left: 0;
  position: absolute;
  width: 100%;
  height: 100%;
  content: '';
  background: rgba(0, 0, 0, 0.6);
}

.Testimonials .owl-dots {
  margin-top: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.Testimonials .owl-dots .owl-dot span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #ffffff;
  margin: 5px;
  display: inline-block;
  transition: 0.5s ease-in-out;
}

.Testimonials .owl-dots .owl-dot.active span {
  background: #ffffff;
}

.Testimonial {
  color: #ffffff;
}

.Testimonial__author {
  text-transform: uppercase;
  margin-right: 40px;
  color: #C9C9C9;
}

.Testimonial__author:before {
  background-color: #C9C9C9;
}

.Testimonial__body {
  font-size: 16px;
}

.Testimonial__body p {
  color: #ffffff;
}

.Testimonial i {
  font-size: 48px;
  margin-bottom: 10px;
}

/**
 * CONTACT
 */

.Contact__detail {
  margin-top: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.Contact__detail i {
  font-size: 1em;
  width: 50px;
  height: 50px;
  margin-right: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  background: #000000;
  color: #ffffff;
}

@media all and (max-width: 767px) {
  .Contact h4 {
    margin-top: 50px;
  }
}

/**
 * FOOTER
 */

footer {
  text-align: center;
  color: #C9C9C9;
  background: #000000;
  padding: 60px 0;
}

footer .footer-contact {
  text-align: left;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-bottom: 10px;
  font-size: 12px;
}

footer .footer-contact i {
  font-size: 18px;
  margin-right: 15px;
}

footer .copyrights {
  font-family: "Montserrat";
  font-size: 10px;
  letter-spacing: 2px;
  margin-top: 10px;
}

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

footer .footer-socials .fa {
  font-size: 22px;
  margin-left: 5px;
}

footer .footer-socials a {
  color: inherit;
}

@media all and (max-width: 767px) {
  footer .footer-contact {
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }

  footer .footer-contact i {
    margin-right: 5px;
  }
}

@media all and (max-width: 991px) {
  .offer-wrap {
    margin-bottom: 30px;
  }
}

@media all and (max-width: 767px) {
  section .section--basic,
  .section .section--basic {
    padding: 60px 0;
  }

  section .section--basic .headline,
  .section .section--basic .headline {
    margin-bottom: 60px;
  }

  section .section--basic .headline h2,
  .section .section--basic .headline h2 {
    text-transform: uppercase;
    font-weight: bold;
  }

  section .section--basic .headline--no-margin-bottom,
  .section .section--basic .headline--no-margin-bottom {
    margin-bottom: 0px;
  }

  .Intro .IntroTyping__body {
    font-size: 2em;
  }
}

/**
 * CONTACT FORM
 */

.Form {
  background: #000000;
  padding: 40px;
  color: #ffffff;
  font-size: 14px;
}

.Form__group {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.Form__group.Form--error {
  border-bottom-color: #D10000;
}

.Form__label {
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 10px;
  font-family: "Montserrat";
}

.Form ::-moz-selection {
  background: rgba(255, 255, 255, 0.15);
}

.Form ::selection {
  background: rgba(255, 255, 255, 0.15);
}

.Form__success {
  color: #ffffff;
  text-align: center;
  padding: 20px;
  background: #00d1b2;
}

.Form__error {
  color: #ffffff;
  text-align: center;
  padding: 20px;
  background: #D10000;
}

@font-face {
  font-family: 'euro';
  src: url(../fonts/euro.eot?dad8469ab319d060fcaa09d2160b0ef4);
  src: url(../fonts/euro.eot?dad8469ab319d060fcaa09d2160b0ef4) format("embedded-opentype"), url(../fonts/euro.woff?5664d3e6b1dffa038804a789c55068f5) format("woff"), url(../fonts/euro.ttf?d998310b50525be835a5ab69afd64af9) format("truetype"), url(../fonts/euro.svg?2aa389a4e2c974dedda6761acd1633a3) format("svg");
  font-weight: normal;
  font-style: normal;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L1VzZXJzL2NsYXkvUGxheUdyb3VuZC9sZHQvcmVzb3VyY2VzL3Nhc3MvcGFydGlhbHMvX2FuaW1hdGlvbnMuc2NzcyIsIkM6L1VzZXJzL2NsYXkvUGxheUdyb3VuZC9sZHQvcmVzb3VyY2VzL3Nhc3MvcGFydGlhbHMvX3ByZWxvYWRlcnMuc2NzcyIsIkM6L1VzZXJzL2NsYXkvUGxheUdyb3VuZC9sZHQvcmVzb3VyY2VzL3Nhc3MvX3ZhcmlhYmxlcy5zY3NzIiwiQzovVXNlcnMvY2xheS9QbGF5R3JvdW5kL2xkdC9yZXNvdXJjZXMvc2Fzcy9wYXJ0aWFscy9fYmFzaWMuc2NzcyIsIkM6L1VzZXJzL2NsYXkvUGxheUdyb3VuZC9sZHQvcmVzb3VyY2VzL3Nhc3MvX21peGlucy5zY3NzIiwiQzovVXNlcnMvY2xheS9QbGF5R3JvdW5kL2xkdC9yZXNvdXJjZXMvc2Fzcy9wYXJ0aWFscy9fbmF2aWdhdGlvbi5zY3NzIiwiQzovVXNlcnMvY2xheS9QbGF5R3JvdW5kL2xkdC9yZXNvdXJjZXMvc2Fzcy9wYXJ0aWFscy9faW50cm8uc2NzcyIsIkM6L1VzZXJzL2NsYXkvUGxheUdyb3VuZC9sZHQvcmVzb3VyY2VzL3Nhc3MvcGFydGlhbHMvX3NlY3Rpb25zLnNjc3MiLCJDOi9Vc2Vycy9jbGF5L1BsYXlHcm91bmQvbGR0L3Jlc291cmNlcy9zYXNzL3BhcnRpYWxzL19mb3JtLnNjc3MiLCJDOi9Vc2Vycy9jbGF5L1BsYXlHcm91bmQvbGR0L3Jlc291cmNlcy9zYXNzL3BhcnRpYWxzL19mb250cy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0g7RUFDSSx5QkFBd0IsRUFDM0I7O0FBRUQ7RUFDSSxrREFBb0QsRUFDdkQ7O0FBRUQ7O0VBS0kscUNBQTRCO1VBQTVCLDZCQUE0QjtFQUM1QixXQUFVLEVBQ2I7O0FBRUQ7RUFDSSw2Q0FBb0M7VUFBcEMscUNBQW9DLEVBQ3ZDOztBQUVEO0VBQ0k7SUFDSSxnQ0FBdUI7WUFBdkIsd0JBQXVC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ZW50IjpbIi8qKlxyXG4gKiBBTklNQVRJT05TXHJcbiAqL1xyXG4uc2xpZGUtZmFkZS1lbnRlci1hY3RpdmUge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC44cyBlYXNlO1xyXG59XHJcblxyXG4uc2xpZGUtZmFkZS1sZWF2ZS1hY3RpdmUge1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIC44cyBjdWJpYy1iZXppZXIoMS4wLCAwLjUsIDAuOCwgMS4wKTtcclxufVxyXG5cclxuLnNsaWRlLWZhZGUtZW50ZXIsXHJcbi5zbGlkZS1mYWRlLWxlYXZlLXRvXHJcbi8qIC5zbGlkZS1mYWRlLWxlYXZlLWFjdGl2ZSBmb3IgPDIuMS44ICovXHJcblxyXG57XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO1xyXG4gICAgb3BhY2l0eTogMDtcclxufVxyXG5cclxuLnNwaW5uaW5nIHtcclxuICAgIGFuaW1hdGlvbjogc3BpbiAwLjNzIGxpbmVhciBpbmZpbml0ZTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBzcGluIHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmFkZUluIHtcclxuICAgIGZyb20ge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxufVxyXG4iLCIkcHJlbG9hZGVyXzFfZWxlbWVudHM6IDEwO1xyXG4kcHJlbG9hZGVyXzJfZWxlbWVudHM6IDY7XHJcbiRwcmVsb2FkZXJfM19lbGVtZW50czogNDtcclxuJHByZWxvYWRlcl80X2VsZW1lbnRzOiAxNjtcclxuJHByZWxvYWRlcl82X2VsZW1lbnRzOiA2O1xyXG4kcHJlbG9hZGVyXzdfZWxlbWVudHM6IDY7XHJcbiRwcmVsb2FkZXJfOF9lbGVtZW50czogNjtcclxuXHJcbi8qKlxyXG4gKiBQUkVMT0FERVJTXHJcbiAqL1xyXG5cclxuLlByZWxvYWRlciB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiAxMDAwMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlLW91dDtcclxuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICYuLS1sb2FkZWQge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbiAgICAmX19jZW50ZXIge1xyXG4gICAgICAgIC5QcmVsb2FkZXJfX2VsZW1lbnQge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuLS12MSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIC5QcmVsb2FkZXJfX2VsZW1lbnQge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW46IDVweDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IHVwQW5kRG93biAxcyBpbmZpbml0ZTtcclxuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcmVsb2FkZXJfMV9lbGVtZW50cyArIDEge1xyXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoI3skaX0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB1bnF1b3RlKCAoKCRpIC0gJHByZWxvYWRlcl8xX2VsZW1lbnRzKSAqIDEwMCkgKyAnbXMnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi4tLXYyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgLlByZWxvYWRlcl9fZWxlbWVudCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogOHB4O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogYmlnZ2l6ZSAxcyBpbmZpbml0ZSBlYXNlLW91dDtcclxuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcmVsb2FkZXJfMl9lbGVtZW50cyArIDEge1xyXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoI3skaX0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB1bnF1b3RlKCAoKCRpIC0gJHByZWxvYWRlcl8yX2VsZW1lbnRzKSAqIDEwMCkgKyAnbXMnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi4tLXYzIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB3aWR0aDogNDBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XHJcbiAgICAgICAgICAgIC5QcmVsb2FkZXJfX2VsZW1lbnQge1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogc21hbGxpemUgMnMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMTUwMG1zO1xyXG4gICAgICAgICAgICAgICAgQGZvciAkaSBmcm9tIDIgdG8gJHByZWxvYWRlcl8zX2VsZW1lbnRzICsgMSB7XHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgjeyRpfSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IHVucXVvdGUoICgoJGkgLSAkcHJlbG9hZGVyXzNfZWxlbWVudHMpICogNTAwKSArICdtcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLi0tdjQge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICB3aWR0aDogODBweDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICAuUHJlbG9hZGVyX19lbGVtZW50IHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAycHg7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbkZvdXIgMnMgaW5maW5pdGU7XHJcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0byAkcHJlbG9hZGVyXzRfZWxlbWVudHMgKyAxIHtcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKCN7JGl9KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogdW5xdW90ZSggKCgkaSAtICRwcmVsb2FkZXJfNF9lbGVtZW50cykgKiAxMDApICsgJ21zJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuLS12NSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIHdpZHRoOiA4MHB4O1xyXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgICAgICAgICAgLlByZWxvYWRlcl9fZWxlbWVudCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMnB4O1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uRml2ZSAxLjJzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg5KSxcclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMTQpIHtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDIwMG1zO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg1KSxcclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMTApLFxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgxNSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogNDAwbXM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDEpLFxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg2KSxcclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMTEpLFxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgxNikge1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogNjAwbXM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpLFxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg3KSxcclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoMTIpIHtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDgwMG1zO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSxcclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoOCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMTAwMG1zO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSg0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxMjAwbXM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgJi4tLXY2IHtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgLlByZWxvYWRlcl9fZWxlbWVudCB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcclxuICAgICAgICAgICAgICAgIG1hcmdpbjogMnB4O1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb25TaXggMXMgaW5maW5pdGU7XHJcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0byAkcHJlbG9hZGVyXzZfZWxlbWVudHMgKyAxIHtcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKCN7JGl9KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogdW5xdW90ZSggKCRpICogMTAwKSArICdtcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLi0tdjcge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTIwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTYwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNjBweDtcclxuICAgICAgICAgICAgLlByZWxvYWRlcl9fZWxlbWVudCB7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvblNldmVuIDEuMnMgY3ViaWMtYmV6aWVyKC44NywgLjIzLCAuMiwgLjc5KSBpbmZpbml0ZTtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRvICRwcmVsb2FkZXJfN19lbGVtZW50cyArIDEge1xyXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoI3skaX0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdW5xdW90ZSgoIDYgKiAkaSkgKyAncHgnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHVucXVvdGUoKDYgKiAkaSkgKyAncHgnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHVucXVvdGUoMTcwIC0gKCRpICogMTIpICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogdW5xdW90ZSgxNzAgLSAoJGkgKiAxMikgKyAncHgnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiB1bnF1b3RlKCAoKCRpIC0gJHByZWxvYWRlcl83X2VsZW1lbnRzKSAqIDQwKSArICdtcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLi0tdjgge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTIwcHg7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMjBweDtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTYwcHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNjBweDtcclxuICAgICAgICAgICAgLlByZWxvYWRlcl9fZWxlbWVudCB7XHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvblNldmVuIDEuNXMgZWFzZS1vdXQgYWx0ZXJuYXRlIGluZmluaXRlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgICAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgybiAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgybikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRibGFjaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNG4pIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmxhY2s7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAZm9yICRpIGZyb20gMSB0byAkcHJlbG9hZGVyXzhfZWxlbWVudHMgKyAxIHtcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKCN7JGl9KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHVucXVvdGUoKCA2ICogJGkpICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB1bnF1b3RlKCg2ICogJGkpICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB1bnF1b3RlKDE3MCAtICgkaSAqIDEyKSArICdweCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHVucXVvdGUoMTcwIC0gKCRpICogMTIpICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogdW5xdW90ZSgxMjAwIC0gKCRpICogMTAwIC0gMTAwKSArICdtcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICYuLS1yZXZlcnNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiAgICAgICAgLlByZWxvYWRlcl9fZWxlbWVudCB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi4tLXY3IHtcclxuICAgICAgICAgICAgLlByZWxvYWRlcl9fZWxlbWVudCB7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLi0tdjgge1xyXG4gICAgICAgICAgICAuUHJlbG9hZGVyX19lbGVtZW50IHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgybiAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgybikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICY6bnRoLW9mLXR5cGUoNG4pIHtcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgdXBBbmREb3duIHtcclxuICAgIDUwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNtYWxsaXplIHtcclxuICAgIDAlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbiAgICAxNSUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41KTtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gICAgNTAlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbiAgICB9XHJcbiAgICAxMDAlIHtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYmlnZ2l6ZSB7XHJcbiAgICA1MCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBjaXJjbGl6ZSB7XHJcbiAgICA1MCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBhbmltYXRpb25Gb3VyIHtcclxuICAgIDUwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xyXG4gICAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvbkZpdmUge1xyXG4gICAgNTAlIHtcclxuICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGFuaW1hdGlvblNpeCB7XHJcbiAgICA1MCUge1xyXG4gICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uU2V2ZW4ge1xyXG4gICAgMTAwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICAgIH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBxdWF0ZXJSb3RhdGUge1xyXG4gICAgMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcclxuICAgIH1cclxuICAgIDI1JSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcclxuICAgIH1cclxuICAgIDUwJSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTtcclxuICAgIH1cclxuICAgIDc1JSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKTtcclxuICAgIH1cclxuICAgIDEwMCUge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7XHJcbiAgICB9XHJcbn1cclxuIiwiJGltYWdlc1BhdGg6IFwiLi4vaW1hZ2VzXCI7XHJcbiRibGFjazogIzAwMDAwMDtcclxuJHdoaXRlOiAjZmZmZmZmO1xyXG4kbGlnaHQ6ICNDOUM5Qzk7XHJcbiRkYXJrOiAjMzMzMzMzO1xyXG4kZ3JheTogIzU1NTU1NTtcclxuJHNpbHZlcjogIzg4ODg4ODtcclxuJGdyZWVuOiAjMDBkMWIyO1xyXG4kcmVkOiAjRDEwMDAwO1xyXG4kaGVhZGxpbmVfZm9udDogJ01vbnRzZXJyYXQnO1xyXG4kYmFzaWNfZm9udDogJ1JhbGV3YXknO1xyXG4kZWFzZUluT3V0UXVhZDogY3ViaWMtYmV6aWVyKDAuNDU1LCAwLjAzLCAwLjUxNSwgMC45NTUpO1xyXG4kcGFnZVN3aXRoaW5nVGltZTogMC41cztcclxuJHN0YW5kYXJkTWVhc3VyZTogMTVweDtcclxuIiwiLyoqXHJcbiAqIEJBU0lDIFNUWUxFU1xyXG4gKi9cclxuXHJcbmh0bWwsXHJcbmJvZHksXHJcbiNsZHQge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbmJvZHkge1xyXG4gICAgZm9udC1mYW1pbHk6ICRiYXNpY19mb250LCBzYW5zLXNlcmlmO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICRkYXJrO1xyXG4gICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG59XHJcblxyXG5wLCBsaXtcclxuICAgIGNvbG9yOiAkZ3JheTtcclxufVxyXG5cclxucCB7XHJcbiAgICBsaW5lLWhlaWdodDogMmVtO1xyXG59XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XHJcbn1cclxuXHJcbmEge1xyXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xyXG4gICAgY29sb3I6ICRkYXJrO1xyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIG9wYWNpdHk6IDAuOTtcclxuICAgICAgICBjb2xvcjogJGRhcms7XHJcbiAgICB9XHJcbn1cclxuXHJcbmJsb2NrcXVvdGUge1xyXG4gICAgbGluZS1oZWlnaHQ6IDJlbTtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgbWFyZ2luOiAzMHB4IDA7XHJcbn1cclxuXHJcbjo6c2VsZWN0aW9uIHtcclxuICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbn1cclxuXHJcbjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgYmFja2dyb3VuZDogJGJsYWNrO1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxufVxyXG5cclxuLmZsZXh7XHJcbiAgICBmbGV4OiAxO1xyXG59XHJcblxyXG4uZmxleC1yb3cge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xyXG59XHJcblxyXG4uYnRuIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcclxuICAgIGJvcmRlci13aWR0aDogMXB4O1xyXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlLWluLW91dCk7XHJcbn1cclxuXHJcbi5idG46Zm9jdXMsXHJcbi5idG4uZm9jdXMsXHJcbi5idG46YWN0aXZlOmZvY3VzLFxyXG4uYnRuOmFjdGl2ZS5mb2N1cyxcclxuLmJ0bi5hY3RpdmU6Zm9jdXMsXHJcbi5idG4uYWN0aXZlLmZvY3VzIHtcclxuICAgIG91dGxpbmU6IDBweDtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAwcHg7XHJcbn1cclxuXHJcbi5idG4ge1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmb250LWZhbWlseTogJGhlYWRsaW5lX2ZvbnQ7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDMwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuNXMgY3ViaWMtYmV6aWVyKDEuMCwgMC41LCAwLjgsIDEuMCkpO1xyXG4gICAgJjpmb2N1cyB7XHJcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XHJcbiAgICB9XHJcbiAgICAmLXJpZ2h0LWljb24ge1xyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVlbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICB3aWR0aDogMTIwJTtcclxuICAgICAgICBoZWlnaHQ6IDEyMCU7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC41cyBlYXNlLW91dCk7XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSByb3RhdGUoNDVkZWcpO1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHJvdGF0ZSg0NWRlZyk7XHJcbiAgICB9XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpIHNjYWxlKDQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSkgcm90YXRlKDQ1ZGVnKSBzY2FsZSg0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idG4tYmxhY2sge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICRibGFjaztcclxuICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgIH1cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idG4td2hpdGUge1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItY29sb3I6ICR3aGl0ZTtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAmOmJlZm9yZSxcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgIH1cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5idG4tZGlzYWJsZWQge1xyXG4gICAgb3BhY2l0eTogMC4zO1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuLmJ1dHRvbnMtZ3JvdXAge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgICYtY2VudGVyIHtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIH1cclxuICAgIGEge1xyXG4gICAgICAgIG1hcmdpbjogMCA1cHg7XHJcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCA1cHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIHtcclxuICAgIC5jb250YWluZXIge1xyXG4gICAgICAgIHdpZHRoOiAxMjAwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgICAuZmxleC1yb3cge1xyXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcclxuICAgICAgICAmPmRpdiB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XHJcbiAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFBBUlRJQ0xFU1xyXG4gKi9cclxuXHJcbiNwYXJ0aWNsZXMtanN7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHotaW5kZXg6IDMwO1xyXG59XHJcblxyXG4vKipcclxuICogSEVMUEVSU1xyXG4gKi9cclxuXHJcbi5tdC0xIHtcclxuICAgIG1hcmdpbi10b3A6ICRzdGFuZGFyZE1lYXN1cmU7XHJcbn1cclxuXHJcbi5tdC0yIHtcclxuICAgIG1hcmdpbi10b3A6ICRzdGFuZGFyZE1lYXN1cmUgKiAyO1xyXG59XHJcblxyXG4ubXQtMyB7XHJcbiAgICBtYXJnaW4tdG9wOiAkc3RhbmRhcmRNZWFzdXJlICogMztcclxufVxyXG5cclxuLm1iLTEge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkTWVhc3VyZTtcclxufVxyXG5cclxuLm1iLTIge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkTWVhc3VyZSAqIDI7XHJcbn1cclxuXHJcbi5tYi0zIHtcclxuICAgIG1hcmdpbi1ib3R0b206ICRzdGFuZGFyZE1lYXN1cmUgKiAzO1xyXG59XHJcblxyXG4ubWwtMSB7XHJcbiAgICBtYXJnaW4tbGVmdDogJHN0YW5kYXJkTWVhc3VyZTtcclxufVxyXG5cclxuLm1sLTIge1xyXG4gICAgbWFyZ2luLWxlZnQ6ICRzdGFuZGFyZE1lYXN1cmUgKiAyO1xyXG59XHJcblxyXG4ubWwtMyB7XHJcbiAgICBtYXJnaW4tbGVmdDogJHN0YW5kYXJkTWVhc3VyZSAqIDM7XHJcbn1cclxuXHJcbi5tci0xIHtcclxuICAgIG1hcmdpbi1yaWdodDogJHN0YW5kYXJkTWVhc3VyZTtcclxufVxyXG5cclxuLm1yLTIge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkc3RhbmRhcmRNZWFzdXJlICogMjtcclxufVxyXG5cclxuLm1yLTMge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkc3RhbmRhcmRNZWFzdXJlICogMztcclxufVxyXG5cclxuXHJcbi5wdC0xIHtcclxuICAgIHBhZGRpbmctdG9wOiAkc3RhbmRhcmRNZWFzdXJlO1xyXG59XHJcblxyXG4ucHQtMiB7XHJcbiAgICBwYWRkaW5nLXRvcDogJHN0YW5kYXJkTWVhc3VyZSAqIDI7XHJcbn1cclxuXHJcbi5wdC0zIHtcclxuICAgIHBhZGRpbmctdG9wOiAkc3RhbmRhcmRNZWFzdXJlICogMztcclxufVxyXG5cclxuLnBiLTEge1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRzdGFuZGFyZE1lYXN1cmU7XHJcbn1cclxuXHJcbi5wYi0yIHtcclxuICAgIHBhZGRpbmctYm90dG9tOiAkc3RhbmRhcmRNZWFzdXJlICogMjtcclxufVxyXG5cclxuLnBiLTMge1xyXG4gICAgcGFkZGluZy1ib3R0b206ICRzdGFuZGFyZE1lYXN1cmUgKiAzO1xyXG59XHJcblxyXG4ucGwtMSB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICRzdGFuZGFyZE1lYXN1cmU7XHJcbn1cclxuXHJcbi5wbC0yIHtcclxuICAgIHBhZGRpbmctbGVmdDogJHN0YW5kYXJkTWVhc3VyZSAqIDI7XHJcbn1cclxuXHJcbi5wbC0zIHtcclxuICAgIHBhZGRpbmctbGVmdDogJHN0YW5kYXJkTWVhc3VyZSAqIDM7XHJcbn1cclxuXHJcbi5wci0xIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRzdGFuZGFyZE1lYXN1cmU7XHJcbn1cclxuXHJcbi5wci0yIHtcclxuICAgIHBhZGRpbmctcmlnaHQ6ICRzdGFuZGFyZE1lYXN1cmUgKiAyO1xyXG59XHJcblxyXG4ucHItMyB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAkc3RhbmRhcmRNZWFzdXJlICogMztcclxufVxyXG5cclxuLmMtZ3JheXtcclxuICAgIGNvbG9yOiAkZ3JheTtcclxufVxyXG5cclxuLmMtbGlnaHR7XHJcbiAgICBjb2xvcjogJGxpZ2h0O1xyXG59XHJcblxyXG4uYy1zaWx2ZXJ7XHJcbiAgICBjb2xvcjogJHNpbHZlcjtcclxufVxyXG5cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgaDEsXHJcbiAgaDIsXHJcbiAgaDMsXHJcbiAgaDQsXHJcbiAgaDUsXHJcbiAgaDYge1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICB9XHJcbiAgaDF7XHJcbiAgICBmb250LXNpemU6IDI2cHg7XHJcbiAgfVxyXG5cclxuICBoMntcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICB9XHJcbiAgaDR7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICBibG9ja3F1b3Rle1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gIH1cclxufSIsIkBtaXhpbiB0cmFuc2l0aW9uKCRhcmdzLi4uKSB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICRhcmdzO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkYXJncztcclxuICAgIC1tcy10cmFuc2l0aW9uOiAkYXJncztcclxuICAgIC1vLXRyYW5zaXRpb246ICRhcmdzO1xyXG4gICAgdHJhbnNpdGlvbjogJGFyZ3M7XHJcbn1cclxuXHJcbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XHJcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcclxuICAgICRvcGFjaXR5LWllOiAkb3BhY2l0eSAqIDEwMDtcclxuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0kb3BhY2l0eS1pZSk7IC8vSUU4XHJcbn1cclxuXHJcbkBtaXhpbiBvdmVybGF5KCRjb2xvciwgJG9wYWNpdHk6IDAuNikge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgkY29sb3IsICRvcGFjaXR5KVxyXG59XHJcbiIsIi8qKlxyXG4gKiBOQVZJR0FUSU9OXHJcbiAqL1xyXG5cclxuLk5hdmlnYXRpb24ge1xyXG4gICAgdHJhbnNpdGlvbjogd2lkdGggMnMgZWFzZS1pbi1vdXQ7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgICZfX2JhciB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgICBwYWRkaW5nOiAxMHB4IDMwcHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsICRwYWdlU3dpdGhpbmdUaW1lICRlYXNlSW5PdXRRdWFkO1xyXG4gICAgICAgIC5uYXZiYXItbmF2IHtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgYSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkbGluZV9mb250O1xyXG4gICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlLWluLW91dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTVweCAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGN1YmljLWJlemllcigxLjAsIDAuNSwgMC44LCAxLjApKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiA4cHg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwcHg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBjdWJpYy1iZXppZXIoMS4wLCAwLjUsIDAuOCwgMS4wKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogOHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGE6aG92ZXIge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogY2FsYyg1MCUgLSAyMHB4KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYTphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogY2FsYyg1MCUgLSAxMHB4KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYTpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhOmZvY3VzLFxyXG4gICAgICAgICAgICAgICAgYTphY3RpdmUge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5uYXZiYXItYnJhbmQge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMCAwIDBweDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICBpbWcsXHJcbiAgICAgICAgICAgIHN2ZyB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi0tc2Nyb2xsZWQge1xyXG4gICAgICAgIC5OYXZpZ2F0aW9uIHtcclxuICAgICAgICAgICAgJl9fYmFyIHtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX21vYmlsZS1tZW51IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgLk5hdmlnYXRpb24ge1xyXG4gICAgICAgICZfX21vYmlsZS1tZW51IHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgICBtYXJnaW46IDE1cHggMCAwIDA7XHJcbiAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBlYXNlLWluLW91dCk7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi4tLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGVZKDEycHgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAmOm50aC1vZi10eXBlKDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgJjpudGgtb2YtdHlwZSgzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVZKC0xMnB4KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJl9fYmFyIHtcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmX19uYXZiYXItbmF2IHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgICAgICAgYm90dG9tOiAwO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0O1xyXG4gICAgICAgICAgICAubmF2YmFyLW5hdiB7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgICAgIGxpIHtcclxuICAgICAgICAgICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAmLi0tbW9iaWxlLWFjdGl2ZSB7XHJcbiAgICAgICAgICAgIC5OYXZpZ2F0aW9uIHtcclxuICAgICAgICAgICAgICAgICZfX25hdmJhci1uYXYge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogNzBweDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBUT1AgQkFSXHJcbiAqL1xyXG5cclxuLlRvcGJhciB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHBhZ2VTd2l0aGluZ1RpbWUgJGVhc2VJbk91dFF1YWQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDMwcHg7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmb250LXNpemU6IDJlbTtcclxuICAgIHotaW5kZXg6IDE7XHJcbiAgICAmX19nb2JhY2sge1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgICBhIHtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICB9XHJcbn1cclxuIiwiLyoqXHJcbiAqIElOVFJPXHJcbiAqL1xyXG5cclxuLkludHJvIHtcclxuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGxpbmVfZm9udDtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHBhZGRpbmc6IDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAmLS1zaW5nbGUtcGhvdG8ge1xyXG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoI3skaW1hZ2VzUGF0aH0vc2xpZGUyLWJnLmpwZykgbm8tcmVwZWF0IGZpeGVkIDUwJSA1MCUgLyBjb3ZlcjtcclxuICAgICAgICAmOmFmdGVyIHtcclxuICAgICAgICAgICAgei1pbmRleDogMTA7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgY29udGVudDogJyc7XHJcbiAgICAgICAgICAgIC8vIEBpbmNsdWRlIG92ZXJsYXkoJGJsYWNrKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAmLS1taW5pbWFse1xyXG4gICAgICAgIGJhY2tncm91bmQ6ICM1QkMwQkU7XHJcbiAgICB9XHJcbiAgICAuSW50cm9UeXBpbmcge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgei1pbmRleDogMjA7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgICAgICZfX2JvZHkge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDRlbTtcclxuICAgICAgICAgICAgbGkge1xyXG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuU3RhcnRBcnJvdyB7XHJcbiAgICAgICAgei1pbmRleDogMzA7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiA0MHB4O1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gIC5JbnRyb0ltYWdlIHtcclxuICAgIGhlaWdodDogMzAwcHg7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAxMCU7XHJcbiAgICB0b3A6IDIwJTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCIvKipcclxuICogU0VDVElPTlMgQkFTSUMgU1RZTEVTXHJcbiAqL1xyXG5cclxuc2VjdGlvbixcclxuLnNlY3Rpb24ge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuc2VjdGlvbiAuc2VjdGlvbi0tYmFzaWMsXHJcbi5zZWN0aW9uIC5zZWN0aW9uLS1iYXNpYyB7XHJcbiAgICBwYWRkaW5nOiA4MHB4IDA7XHJcbiAgICAmLnNlY3Rpb24tLWRhcmtlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkYmxhY2ssIC4wOClcclxuICAgIH1cclxuICAgIC5oZWFkbGluZSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XHJcbiAgICAgICAgaDIge1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJi0tbGVmdCB7XHJcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYtLW5vLW1hcmdpbi1ib3R0b20ge1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi4tLW5vcGFkZGluZy1ib3R0b20ge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zcGFjZS1mcm9tLXRvcGJhciB7XHJcbiAgICBwYWRkaW5nLXRvcDogNzBweDtcclxufVxyXG5cclxuLnRpZ2h0LWNvbnRhaW5lciB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB3aWR0aDogNzUwcHg7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcclxuICAgIC50aWdodC1jb250YWluZXJ7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEFCT1VUIE1FXHJcbiAqL1xyXG5cclxuLmFib3V0LW1lLXRleHQge1xyXG5cclxuICAgIGgzIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMS44ZW07XHJcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcclxuICAgIH1cclxuICAgIC5idXR0b25zLWdyb3VwIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgfVxyXG59XHJcblxyXG4uYWJvdXQtbWUtcGhvdG8ge1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlc1BhdGh9L3RlY2gtaW1hZ2UuanBnKTtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IDUlIHRvcCA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQwJSBhdXRvO1xyXG59XHJcblxyXG4uU2tpbGxfX2hlYWR7XHJcbiAgICBmb250LWZhbWlseTogJGhlYWRsaW5lX2ZvbnQ7XHJcbn1cclxuXHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG5cclxuICAgIC5hYm91dC1tZXtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyICogJHN0YW5kYXJkTWVhc3VyZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAuYWJvdXQtbWUtcGhvdG97XHJcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogU0VSVklDRVNcclxuICovXHJcblxyXG4ub2ZmZXItYm94OmJlZm9yZSxcclxuLm9mZmVyLWJveDphZnRlcixcclxuLm9mZmVyLXdyYXA6YmVmb3JlLFxyXG4ub2ZmZXItd3JhcDphZnRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBjb250ZW50OiAnJztcclxuICAgIGhlaWdodDogMTBweDtcclxuICAgIHdpZHRoOiAxMHB4O1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmxhY2s7XHJcbiAgICBib3JkZXItd2lkdGg6IDBweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjNzIGVhc2UtaW4tb3V0KTtcclxufVxyXG5cclxuLm9mZmVyLWJveCB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XHJcbiAgICBpIHtcclxuICAgICAgICBmb250LXNpemU6IDQ4cHg7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIH1cclxuICBcclxuICBhIHtcclxuICAgIGkge1xyXG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgICBoNCwgLmhlYWRsaW5lIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xyXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyZW07XHJcbiAgICB9XHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgICAgbGVmdDogMHB4O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xyXG4gICAgfVxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgYm90dG9tOiAwcHg7XHJcbiAgICAgICAgcmlnaHQ6IDBweDtcclxuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XHJcbiAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5vZmZlci13cmFwIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDMwcHggMTBweDtcclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgICB0b3A6IDBweDtcclxuICAgICAgICBsZWZ0OiAwcHg7XHJcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xyXG4gICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XHJcbiAgICB9XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICB0b3A6IDBweDtcclxuICAgICAgICByaWdodDogMHB4O1xyXG4gICAgICAgIGJvcmRlci10b3Atd2lkdGg6IDFweDtcclxuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcclxuICAgIH1cclxuICAgICY6aG92ZXIge1xyXG4gICAgICAgIC5vZmZlci1ib3g6YmVmb3JlLFxyXG4gICAgICAgIC5vZmZlci1ib3g6YWZ0ZXIsXHJcbiAgICAgICAgJjpiZWZvcmUsXHJcbiAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcclxuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIFBPUlRGT0xJT1xyXG4gKi9cclxuXHJcblxyXG4uUG9ydGZvbGlvIHtcclxuICAgICZfX2l0ZW1ze1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcclxuICAgIH1cclxuICAgICYtLXNwYWNpbmd7XHJcbiAgICAgICAgLlBvcnRmb2xpb3tcclxuICAgICAgICAgICAgJl9faXRlbXN7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3RhbmRhcmRNZWFzdXJlO1xyXG4gICAgICAgICAgICAgICAgLlBvcnRmb2xpby1pdGVte1xyXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJHN0YW5kYXJkTWVhc3VyZTtcclxuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMjUlIC0gI3syKiRzdGFuZGFyZE1lYXN1cmV9KTtcclxuICAgICAgICAgICAgICAgICAgICBmbGV4OiAxIDEgY2FsYygyNSUgLSAjezIqJHN0YW5kYXJkTWVhc3VyZX0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4uUG9ydGZvbGlvX19uYXYge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxuICAgIHVsIHtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gICAgICAgICAgICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcclxuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xyXG4gICAgICAgIGxpIHtcclxuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkbGluZV9mb250O1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICBtYXJnaW46IDEwcHg7XHJcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4zcyBjdWJpYy1iZXppZXIoMS4wLCAwLjUsIDAuOCwgMS4wKSk7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICAgIGJvdHRvbTogMHB4O1xyXG4gICAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDBweDtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRibGFjaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbi5Qb3J0Zm9saW8taXRlbXtcclxuICAgIG1heC13aWR0aDogMjUlO1xyXG4gICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICZfX25hbWV7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAgICAgei1pbmRleDogMTAwMDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogMC41cyBhbGwgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcbiAgICAgICAgICAgIC13ZWJraXQtZmxleC13cmFwOiB3cmFwO1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OjA7XHJcbiAgICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC4yO1xyXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLC4zKTtcclxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuNnMgZWFzZS1pbi1vdXQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICY6YmVmb3Jle1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICAmOmFmdGVye1xyXG4gICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmOmhvdmVye1xyXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXJ7XHJcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSBza2V3WCg0NWRlZykgc2NhbGUoMik7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApIHNrZXdYKDQ1ZGVnKSBzY2FsZSgyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC5Qb3J0Zm9saW8taXRlbV9fbmFtZXtcclxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGltZ3tcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgICAgICAgLlBvcnRmb2xpby1pdGVte1xyXG4gICAgICAgICAgICB3aWR0aDogNTAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLlBvcnRmb2xpby0tc3BhY2luZ3tcclxuICAgICAgICAgICAgICAgIC5Qb3J0Zm9saW97XHJcbiAgICAgICAgICAgICAgICAgICAgJl9faXRlbXN7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzdGFuZGFyZE1lYXN1cmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5Qb3J0Zm9saW8taXRlbXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogJHN0YW5kYXJkTWVhc3VyZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAjezIqJHN0YW5kYXJkTWVhc3VyZX0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMSAxIGNhbGMoNTAlIC0gI3syKiRzdGFuZGFyZE1lYXN1cmV9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDU3NXB4KSB7XHJcblxyXG4gICAgICAgIC5Qb3J0Zm9saW8tLXNwYWNpbmd7XHJcbiAgICAgICAgICAgIC5Qb3J0Zm9saW97XHJcbiAgICAgICAgICAgICAgICAmX19pdGVtc3tcclxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3RhbmRhcmRNZWFzdXJlO1xyXG4gICAgICAgICAgICAgICAgICAgIC5Qb3J0Zm9saW8taXRlbXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHN0YW5kYXJkTWVhc3VyZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLlBvcnRmb2xpb3tcclxuICAgICAgICAgICAgICZfX2l0ZW1ze1xyXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkc3RhbmRhcmRNZWFzdXJlO1xyXG4gICAgICAgICAgICAgICAgICAuUG9ydGZvbGlvLWl0ZW17XHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3RhbmRhcmRNZWFzdXJlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogUFJPSkVDVCBQQUdFXHJcbiAqL1xyXG5cclxuLnByb2plY3QtcGFnZSB7XHJcbiAgICAucHJvamVjdC1pbWFnZSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNTBweDtcclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucHJvamVjdC1kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgfVxyXG4gICAgLnByb2plY3QtZGV0YWlsc3tcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAyICogJHN0YW5kYXJkTWVhc3VyZTtcclxuICAgICAgICBoNHtcclxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC5wcm9qZWN0LWRldGFpbCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICAucHJvamVjdC1kZXRhaWwtbGFiZWwge1xyXG4gICAgICAgICAgICBjb2xvcjogJGdyYXk7XHJcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5wcm9qZWN0LWRldGFpbC12YWx1ZXtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6Ym9sZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAucHJvamVjdC1uYXZpYWd0aW9uIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBtYXJnaW46IDAgNjBweDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcbiAgICAucHJvamVjdC1wYWdlIHtcclxuICAgICAgICAucHJvamVjdC1kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ09VTlRFUlNcclxuICovXHJcblxyXG4ucGFyYWxheC1jb3VudGVycyB7XHJcbiAgYmFja2dyb3VuZDogdXJsKCN7JGltYWdlc1BhdGh9L3NsaWRlMy1iZy5qcGcpIG5vLXJlcGVhdCBmaXhlZCA1MCUgNTAlIC8gY292ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgICB6LWluZGV4OiAxMDtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIC8vQGluY2x1ZGUgb3ZlcmxheSgkYmxhY2spO1xyXG4gICAgfVxyXG59XHJcblxyXG4uQ291bnRlciB7XHJcbiAgICBjb2xvcjogJHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjA7XHJcbiAgICAmX19pY29uIHtcclxuICAgICAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICB9XHJcbiAgICAmX19udW1iZXIge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBtYXJnaW46IDEwcHggMDtcclxuICAgIH1cclxuICAgICZfX3RleHQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIC5Db3VudGVyOm50aC1vZi10eXBlKDEpLFxyXG4gICAgLkNvdW50ZXI6bnRoLW9mLXR5cGUoMikge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQmxvZ1xyXG4gKi9cclxuXHJcbi5CbG9nIHtcclxuICAgICZfX3Bvc3Qge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuM3MgZWFzZS1vdXQpO1xyXG4gICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgei1pbmRleDogMTA7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgb3ZlcmxheSgkYmxhY2ssIDAuMyk7XHJcbiAgICAgICAgICAgIHRvcDogMDtcclxuICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjZzIGN1YmljLWJlemllcigxLjAsIDAuNSwgMC44LCAxLjApKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW1nIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcjogbm9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuQmxvZ19fcG9zdC1jYXB0aW9uIHtcclxuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjRzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fcG9zdC1pbWFnZSB7XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgICAgIHotaW5kZXg6IDE1O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpbWcge1xyXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xyXG4gICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC42cyBlYXNlLW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fcG9zdC1jYXB0aW9uIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKCRibGFjaywgMC40KTtcclxuICAgICAgICB6LWluZGV4OiAyMDtcclxuICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIGJvdHRvbTogMDtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMzBweDtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjRzIGN1YmljLWJlemllcigxLjAsIDAuNSwgMC44LCAxLjApKTtcclxuICAgICAgICBoNCB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcclxuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX3Bvc3QtY2F0ZWdvcmllcyB7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC40cyBlYXNlLWluLW91dCk7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xyXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHQ7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaSB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xyXG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogM3B4O1xyXG4gICAgICAgICAgICBjb2xvcjogJGxpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIC5CbG9nIHtcclxuICAgICAgICAmX19wb3N0IHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgICAgICAgICAgei1pbmRleDogMTA7XHJcbiAgICAgICAgICAgICY6YWZ0ZXIge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAuQmxvZ19fcG9zdC1jYXB0aW9uIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IGluaGVyaXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQkxPRyBQT1NUXHJcbiAqL1xyXG5cclxuLmJsb2ctcG9zdC1pbWFnZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luOiAzMHB4IDA7XHJcbiAgICBpbWcge1xyXG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxufVxyXG5cclxuLmJsb2ctcG9zdC1tZXRhLWRldGFpbCB7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5OYXZMaW5rcyB7XHJcbiAgICB3aWR0aDogNzUwcHg7XHJcbiAgICBtYXJnaW46IDUwcHggYXV0bztcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgICZfX2xpbmsge1xyXG4gICAgICAgIHdpZHRoOiA1MCU7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgICAgIHBhZGRpbmc6IDEwcHggNTBweDtcclxuICAgICAgICAmLi0tcHJldmlvdXMge1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRibGFjaztcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICYuLS1uZXh0IHtcclxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGJsYWNrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2xhYmVsIHtcclxuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcbiAgICAmX190aXRsZSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgICAgIGEge1xyXG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIC5ibG9nLXBvc3QtdGV4dCxcclxuICAgIC5OYXZMaW5rcyB7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgJl9fdGl0bGV7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZToxNnB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICAmX19saW5re1xyXG4gICAgICAgICAgICAmLi0tbmV4dHtcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHggMCAxMHB4IDIwcHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi4tLXByZXZpb3Vze1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBURVNUSU1PTklBTFNcclxuICovXHJcblxyXG4uc2VjdGlvbi5wYXJhbGF4LXRlc3RpbW9uaWFscyB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2sgbm8tcmVwZWF0IGZpeGVkIDUwJSA1MCUgLyBjb3ZlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDEwMHB4IDAgODBweCAwO1xyXG4gICAgJjphZnRlciB7XHJcbiAgICAgICAgdG9wOiAwO1xyXG4gICAgICAgIGxlZnQ6IDA7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBAaW5jbHVkZSBvdmVybGF5KCRibGFjayk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5UZXN0aW1vbmlhbHMge1xyXG4gICAgLm93bC1kb3RzIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgLm93bC1kb3Qge1xyXG4gICAgICAgICAgICBzcGFuIHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMHB4O1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luOiA1cHg7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKDAuNXMgZWFzZS1pbi1vdXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICAgICAgICAgIHNwYW4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLlRlc3RpbW9uaWFsIHtcclxuICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAmX19hdXRob3Ige1xyXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xyXG4gICAgICAgIGNvbG9yOiAkbGlnaHQ7XHJcbiAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJl9fYm9keSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgICAgIHB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiA0OHB4O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogQ09OVEFDVFxyXG4gKi9cclxuXHJcbi5Db250YWN0IHtcclxuICAgICZfX2RldGFpbHMge31cclxuICAgICZfX2RldGFpbCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgaSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gICAgICAgICAgICB3aWR0aDogNTBweDtcclxuICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gICAgLkNvbnRhY3QgaDQge1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDUwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogRk9PVEVSXHJcbiAqL1xyXG5cclxuZm9vdGVyIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiAkbGlnaHQ7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiAgICBwYWRkaW5nOiA2MHB4IDA7XHJcbiAgICAuZm9vdGVyLWNvbnRhY3Qge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIGkge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTVweDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAuY29weXJpZ2h0cyB7XHJcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkbGluZV9mb250O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgICB9XHJcbiAgICAuZm9vdGVyLXNvY2lhbHMge1xyXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgIC5mYSB7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIGZvb3RlciB7XHJcbiAgICAgICAgLmZvb3Rlci1jb250YWN0IHtcclxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAgICAgICAgIGkge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XHJcbiAgICAub2ZmZXItd3JhcCB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAgIHNlY3Rpb24gLnNlY3Rpb24tLWJhc2ljLFxyXG4gICAgLnNlY3Rpb24gLnNlY3Rpb24tLWJhc2ljIHtcclxuICAgICAgICBwYWRkaW5nOiA2MHB4IDA7XHJcbiAgICAgICAgLmhlYWRsaW5lIHtcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNjBweDtcclxuICAgICAgICAgICAgaDIge1xyXG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYtLW5vLW1hcmdpbi1ib3R0b20ge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgLkludHJvIHtcclxuICAgICAgICAuSW50cm9UeXBpbmcge1xyXG4gICAgICAgICAgICAmX19ib2R5IHtcclxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMmVtO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIi8qKlxyXG4gKiBDT05UQUNUIEZPUk1cclxuICovXHJcblxyXG4uRm9ybSB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2s7XHJcbiAgICBwYWRkaW5nOiA0MHB4O1xyXG4gICAgY29sb3I6ICR3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICZfX2dyb3VwIHtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgkd2hpdGUsIDAuMTUpO1xyXG4gICAgICAgICYuRm9ybS0tZXJyb3Ige1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgICZfX2xhYmVsIHtcclxuICAgICAgICBjb2xvcjogcmdiYSgkd2hpdGUsIDAuNik7XHJcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICBmb250LWZhbWlseTogJGhlYWRsaW5lX2ZvbnQ7XHJcbiAgICB9XHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkd2hpdGUsIDAuMTUpO1xyXG4gICAgfVxyXG4gICAgJl9fc3VjY2VzcyB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JlZW47XHJcbiAgICB9XHJcbiAgICAmX19lcnJvciB7XHJcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkO1xyXG4gICAgfVxyXG59XHJcbiIsIi8vIEZPTlRTXHJcblxyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdldXJvJztcclxuICBzcmM6IHVybCgnLi4vZm9udHMvZXVyby9ldXJvLmVvdCcpO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9ldXJvL2V1cm8uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICAgIHVybCgnLi4vZm9udHMvZXVyby9ldXJvLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICAgIHVybCgnLi4vZm9udHMvZXVyby9ldXJvLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuICAgIHVybCgnLi4vZm9udHMvZXVyby9ldXJvLnN2ZyNldXJvJykgZm9ybWF0KCdzdmcnKTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG4iXX0= */