/* VARIABLES */
/*  Padding */
/* Breakpoints */
/* Navigation */
/* Swiper */
/* HELPERS */
.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Libs general */
/*  Padding */
/* Breakpoints */
/* Navigation */
/* Swiper */
.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.animate-up {
  animation-name: animationUp;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}
@keyframes animationUp {
  from {
    opacity: 0;
    transform: translateY(100%);
  }
  to {
    opacity: 1;
    transform: translateY(0%);
  }
}

.bgimage {
  background-size: cover;
  background-position: center center;
}

.tc_p {
  color: var(--primary-color);
}
.tc_s {
  color: var(--secondary-color);
}
.tc_t {
  color: var(--tertiary-color);
}
.tc_b {
  color: var(--black);
}
.tc_w {
  color: var(--white);
}
.tc_lg {
  color: var(--lightgrey);
}

.bgc_p {
  background-color: var(--primary-color);
}
.bgc_s {
  background-color: var(--secondary-color);
}
.bgc_t {
  background-color: var(--tertiary-color);
}
.bgc_b {
  background-color: var(--black);
}
.bgc_w {
  background-color: var(--white);
}
.bgc_lg {
  background-color: var(--lightgrey);
}

.cover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.f {
  display: flex;
}
.fw {
  flex-wrap: wrap;
}
.fwr {
  flex-wrap: wrap-reverse;
}
.fnw {
  flex-wrap: nowrap;
}
.f_c {
  flex-direction: column;
}
.f_cr {
  flex-direction: column-reverse;
}
.f_r {
  flex-direction: row;
}
.f_rr {
  flex-direction: row-reverse;
}
.f-c {
  align-items: center;
}
.f-fs {
  align-items: flex-start;
}
.f-fe {
  align-items: flex-end;
}
.f--fs {
  justify-content: flex-start;
}
.f--fe {
  justify-content: flex-end;
}
.f--c {
  justify-content: center;
}
.f--sb {
  justify-content: space-between;
}
.f--sa {
  justify-content: space-around;
}

@media (max-width: 767.98px) {
  .fm {
    display: flex;
  }
  .fmw {
    flex-wrap: wrap;
  }
  .fmwr {
    flex-wrap: wrap-reverse;
  }
  .fmnw {
    flex-wrap: nowrap;
  }
  .fm_c {
    flex-direction: column;
  }
  .fm_cr {
    flex-direction: column-reverse;
  }
  .fm_r {
    flex-direction: row;
  }
  .fm_rr {
    flex-direction: row-reverse;
  }
  .fm-c {
    align-items: center;
  }
  .fm-fs {
    align-items: flex-start;
  }
  .fm-fe {
    align-items: flex-end;
  }
  .fm--fs {
    justify-content: flex-start;
  }
  .fm--fe {
    justify-content: flex-end;
  }
  .fm--c {
    justify-content: center;
  }
  .fm--sb {
    justify-content: space-between;
  }
  .fm--sa {
    justify-content: space-around;
  }
}

@media (min-width: 768px) {
  .fd {
    display: flex;
  }
  .fdw {
    flex-wrap: wrap;
  }
  .fdwr {
    flex-wrap: wrap-reverse;
  }
  .fdnw {
    flex-wrap: nowrap;
  }
  .fd_c {
    flex-direction: column;
  }
  .fd_cr {
    flex-direction: column-reverse;
  }
  .fd_r {
    flex-direction: row;
  }
  .fd_rr {
    flex-direction: row-reverse;
  }
  .fd-c {
    align-items: center;
  }
  .fd-fs {
    align-items: flex-start;
  }
  .fd-fe {
    align-items: flex-end;
  }
  .fd--fs {
    justify-content: flex-start;
  }
  .fd--fe {
    justify-content: flex-end;
  }
  .fd--c {
    justify-content: center;
  }
  .fd--sb {
    justify-content: space-between;
  }
  .fd--sa {
    justify-content: space-around;
  }
}

body,
button,
input,
select,
textarea {
  -webkit-font-smoothing: antialiased;
  font-family: var(--font-primary, "GT-Walsheim");
}

ul {
  list-style: none;
}
ul,
ul li {
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-secondary, "GT-Walsheim");
}

picture {
  position: relative;
}
picture source {
  position: absolute;
  top: 0;
}

@media (max-width: 767.98px) {
  .section {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
@media (min-width: 768px) {
  .section {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}

@media (max-width: 767.98px) {
  .p-t-m--s {
    padding-top: 2.5rem;
  }
  .p-b-m--s {
    padding-bottom: 2.5rem;
  }
}

@media (max-width: 767.98px) {
  .p-t-m--m {
    padding-top: 5rem;
  }
  .p-b-m--m {
    padding-bottom: 5rem;
  }
}

@media (max-width: 767.98px) {
  .p-t-m--l {
    padding-top: 10rem;
  }
  .p-b-m--l {
    padding-bottom: 10rem;
  }
}

@media (min-width: 768px) {
  .p-t-d--s {
    padding-top: 2.5rem;
  }
  .p-b-d--s {
    padding-bottom: 2.5rem;
  }
}

@media (min-width: 768px) {
  .p-t-d--m {
    padding-top: 5rem;
  }
  .p-b-d--m {
    padding-bottom: 5rem;
  }
}

@media (min-width: 768px) {
  .p-t-d--l {
    padding-top: 10rem;
  }
  .p-b-d--l {
    padding-bottom: 10rem;
  }
}

* {
  box-sizing: border-box;
  margin: 0;
}

html {
  font-size: 62.5%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

@media screen and (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
picture,
picture img {
  display: block;
}
picture source {
  display: block;
  width: 100%;
  height: 100%;
}

.rel {
  position: relative;
}

form .input_field .file {
  font-size: 17px;
}
form .input_field .file__drop {
  background-color: #f0f0f0;
  border: 2px dotted #e6e6e6;
  position: relative;
  padding: 2.4rem;
}
form .input_field .file__drop:focus-within {
  border-style: solid;
}
form .input_field .file__drop.has_file {
  border-color: rgba(68, 208, 124, 0.5);
  background-color: rgba(236, 253, 243, 0.5);
}
form .input_field .file .file-placeholder {
  justify-self: center;
  grid-area: placeholder;
  color: black;
}
form .input_field .file .filename {
  grid-area: label;
  justify-self: flex-end;
  color: black;
}
form .input_field .file__remove {
  display: none;
}
form .input_field .file__overlay {
  pointer-events: none;
  padding: 0 1rem;
  text-align: center;
}
form .input_field .file input {
  opacity: 0 !important;
  inset: 0;
  position: absolute;
  cursor: pointer;
  width: 100%;
  height: 100%;
  padding: 0;
}
form .input_field .file .drag_over {
  border-style: dashed;
}
form .input_field .file .has_file .file__remove {
  display: flex;
}
form .input_field .file__remove {
  cursor: pointer;
  position: absolute;
  right: 1rem;
  top: 2rem;
  padding: 0;
  transform: translateY(-50%);
  font-size: 14px;
  background-color: transparent;
  border: none;
  border-bottom: 1px solid black;
  transition: border-color 0.3s ease;
}
form .input_field .file__remove:hover {
  border-color: transparent;
}

.handles-label .contact_form__field__error {
  font-weight: 400;
}
.handles.input_field {
  border: none;
}
.handles .radio-check {
  margin: 0 0 3.2rem;
}
.handles-wrapper {
  display: grid !important;
  gap: 1.5rem;
  min-height: unset !important;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
  opacity: 0;
}
.handles-wrapper.active {
  opacity: 1;
  grid-template-rows: 1fr;
}
.handles-wrapper-inner {
  display: grid;
  gap: 1.5rem;
  overflow: hidden;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 576px) {
  .handles-wrapper-inner {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 768px) {
  .handles-wrapper-inner {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .handles-wrapper-inner {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
.handles-wrapper.input_field {
  border: none;
}
.handles-wrapper .handle {
  position: relative;
  border: solid 1px black;
  cursor: pointer;
}
.handles-wrapper .handle picture {
  height: auto;
}
.handles-wrapper .handle picture img {
  width: 100%;
  position: relative;
}
.handles-wrapper .handle-title {
  padding: 1rem;
  text-align: center;
  position: relative;
  transition: color 0.2s ease;
  overflow: hidden;
  font-size: 17px;
  border-top: solid black 1px;
}
.handles-wrapper .handle-title::after {
  content: "";
  background-color: black;
  position: absolute;
  height: 100%;
  width: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  transform: translateY(-100%);
  transition: transform 0.2s ease;
}
.handles-wrapper .handle.active .handle-title, .handles-wrapper .handle:hover .handle-title {
  color: white;
}
.handles-wrapper .handle.active .handle-title::after, .handles-wrapper .handle:hover .handle-title::after {
  transform: translateY(0%);
}

.notification {
  position: relative;
}
.notification .message {
  border: 1px solid transparent;
  border-radius: 0.4rem;
  background-color: transparent;
  height: 0;
  opacity: 0;
  transition: all 0.1s ease-out;
  transform-style: preserve-3d;
  transform: rotateX(90deg) scaleY(0);
}
.notification .message p {
  padding: 1.2rem 1.6rem;
}
.notification.forgotten .message__forgotten {
  height: auto;
  opacity: 1;
  transform: rotateX(0deg) scaleY(1);
}
.notification.error .message__error {
  height: auto;
  opacity: 1;
  transform: rotateX(0deg) scaleY(1);
}
.notification.success .message__success {
  height: auto;
  opacity: 1;
  transform: rotateX(0deg) scaleY(1);
}
.notification:not(.forgotten):not(.error):not(.success) {
  position: absolute;
}
.notification .message__success {
  border-color: rgb(68, 208, 124);
  background-color: rgb(236, 253, 243);
}
.notification .message__forgotten,
.notification .message__error {
  border-color: rgb(255, 84, 84);
  background-color: rgb(255, 240, 240);
}

.quotation-step-wrapper .quotation-steps {
  display: flex;
  overflow: auto;
}
.quotation-step-wrapper .quotation-fields {
  display: grid;
  gap: 0 2rem;
  margin: 0 0 4rem;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 576px) {
  .quotation-step-wrapper .quotation-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.quotation-step-wrapper .quotation-fields .field-wrapper {
  grid-column: span 2;
  display: flex;
  justify-content: flex-end;
  padding: 20px 0 0;
  margin-bottom: 30px;
  flex-direction: column;
}
@media (min-width: 576px) {
  .quotation-step-wrapper .quotation-fields .field-wrapper.half {
    grid-column: span 1;
  }
}
.quotation-step-wrapper .quotation-fields .input_field {
  width: 100%;
  height: auto;
  margin-bottom: 10px;
}
.quotation-step-wrapper .quotation-fields .input_field.color .own-color-wrapper {
  margin: 2rem 0 0;
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
  opacity: 0;
}
.quotation-step-wrapper .quotation-fields .input_field.color .own-color-wrapper.active {
  opacity: 1;
  grid-template-rows: 1fr;
}
.quotation-step-wrapper .quotation-fields .input_field.color .own-color-wrapper-inner {
  overflow: hidden;
}
.quotation-step-wrapper .quotation-fields .input_field.color .own-color-wrapper-inner .field-wrapper {
  margin: 0;
}
.quotation-step-wrapper .quotation-step-content {
  display: grid;
  padding: 0 2rem;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease;
}
.quotation-step-wrapper .quotation-step-content-wrapper {
  overflow: hidden;
  transition: padding 0.3s ease;
}
.quotation-step-wrapper .quotation-step-content.active {
  grid-template-rows: 1fr;
}
.quotation-step-wrapper .quotation-step-content.active .quotation-step-content-wrapper {
  padding: 5rem 0;
}
.quotation-step-wrapper .quotation-step-content .preview-fields {
  margin: 0 0 4rem;
}
.quotation-step-wrapper .quotation-step-content .preview-fields .preview-step {
  font-size: 17px;
  margin: 0 0 1.5rem;
  border-bottom: solid 1px rgba(0, 0, 0, 0.3);
  padding: 2.5rem 0;
}
.quotation-step-wrapper .quotation-step-content .preview-fields .preview-step__title {
  font-size: 18px;
  margin: 0 0 1rem;
  font-weight: 600;
}
.quotation-step-wrapper .quotation-step-content .preview-fields .preview-step__fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 576px) {
  .quotation-step-wrapper .quotation-step-content .preview-fields .preview-step__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.quotation-step-wrapper .quotation-step-content .preview-fields .preview-step__fields .preview-field {
  margin: 0 0 1.5rem;
}
.quotation-step-wrapper .quotation-step-content .preview-fields .preview-step__fields .preview-field__label {
  display: block;
  font-weight: 600;
}
.quotation-step-wrapper .quotation-step-title {
  padding: 1rem 2rem;
  text-transform: uppercase;
  font-size: 17px;
  white-space: nowrap;
  transition: background-color 0.3s ease, color 0.3s ease;
  font-weight: 600;
  border-bottom: solid 2px white;
}
.quotation-step-wrapper .quotation-step-title.active {
  border-bottom: solid 2px black;
}
.quotation-step-wrapper .quotation-step-title:hover {
  background-color: #e6e6e6;
  cursor: pointer;
}
.quotation-step-wrapper .quotation-step-nav {
  display: flex;
  justify-content: center;
  gap: 10px;
  font-size: 17px;
}
.quotation-step-wrapper .contact_form__field__error {
  font-size: 12px;
  color: red;
  margin: 5px 0 0;
}
.quotation-step-wrapper select {
  font-size: 17px;
}
.quotation-step-wrapper .submit_button {
  margin: 0;
}
.quotation-step-wrapper .submit_button[disabled] {
  pointer-events: none;
  opacity: 0.5;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY3NzIiwibWFwcGluZ3MiOiJBQUFBO0FDU0E7QUE4QkE7QUFpQkE7QUFRQTtBRDlEQTtBRXlNQTtFQVJFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDM0xGOztBSFZBO0FDS0E7QUE4QkE7QUFpQkE7QUFRQTtBQzJJQTtFQVJFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FDNUtGOztBQzdCQTtFRjRORTtFQUNBO0VBQ0E7QUMzTEY7QUQ2TEU7RUFDRTtJQUNFO0lBRUU7RUM1TE47RUQrTEU7SUFDRTtJQUVFO0VDOUxOO0FBQ0Y7O0FFN0NBO0VBQ0c7RUFDQTtBRmdESDs7QUdqREc7RUFDRztBSG9ETjtBR2xERztFQUNHO0FIb0ROO0FHbERHO0VBQ0c7QUhvRE47QUdsREc7RUFDRztBSG9ETjtBR2xERztFQUNHO0FIb0ROO0FHbERHO0VBQ0c7QUhvRE47O0FHcEVHO0VBQ0c7QUh1RU47QUdyRUc7RUFDRztBSHVFTjtBR3JFRztFQUNHO0FIdUVOO0FHckVHO0VBQ0c7QUh1RU47QUdyRUc7RUFDRztBSHVFTjtBR3JFRztFQUNHO0FIdUVOOztBSXhGQTtFQUNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUoyRkg7O0FLakNBO0VBOURHO0FMbUdIO0FLakdHO0VBQ0c7QUxtR047QUtoR0c7RUFDRztBTGtHTjtBSy9GRztFQUNHO0FMaUdOO0FLOUZHO0VBQ0c7QUxnR047QUs3Rkc7RUFDRztBTCtGTjtBSzVGRztFQUNHO0FMOEZOO0FLM0ZHO0VBQ0c7QUw2Rk47QUsxRkc7RUFDRztBTDRGTjtBS3pGRztFQUNHO0FMMkZOO0FLeEZHO0VBQ0c7QUwwRk47QUt2Rkc7RUFDRztBTHlGTjtBS3RGRztFQUNHO0FMd0ZOO0FLckZHO0VBQ0c7QUx1Rk47QUtwRkc7RUFDRztBTHNGTjtBS25GRztFQUNHO0FMcUZOOztBTXhFSTtFRE5KO0lBbEVHO0VMcUpEO0VLbkpDO0lBQ0c7RUxxSko7RUtsSkM7SUFDRztFTG9KSjtFS2pKQztJQUNHO0VMbUpKO0VLaEpDO0lBQ0c7RUxrSko7RUsvSUM7SUFDRztFTGlKSjtFSzlJQztJQUNHO0VMZ0pKO0VLN0lDO0lBQ0c7RUwrSUo7RUs1SUM7SUFDRztFTDhJSjtFSzNJQztJQUNHO0VMNklKO0VLMUlDO0lBQ0c7RUw0SUo7RUt6SUM7SUFDRztFTDJJSjtFS3hJQztJQUNHO0VMMElKO0VLdklDO0lBQ0c7RUx5SUo7RUt0SUM7SUFDRztFTHdJSjtFS3JJQztJQUNHO0VMdUlKO0FBQ0Y7O0FNeElJO0VEWUo7SUF2RUc7RUx3TUQ7RUt0TUM7SUFDRztFTHdNSjtFS3JNQztJQUNHO0VMdU1KO0VLcE1DO0lBQ0c7RUxzTUo7RUtuTUM7SUFDRztFTHFNSjtFS2xNQztJQUNHO0VMb01KO0VLak1DO0lBQ0c7RUxtTUo7RUtoTUM7SUFDRztFTGtNSjtFSy9MQztJQUNHO0VMaU1KO0VLOUxDO0lBQ0c7RUxnTUo7RUs3TEM7SUFDRztFTCtMSjtFSzVMQztJQUNHO0VMOExKO0VLM0xDO0lBQ0c7RUw2TEo7RUsxTEM7SUFDRztFTDRMSjtFS3pMQztJQUNHO0VMMkxKO0VLeExDO0lBQ0c7RUwwTEo7QUFDRjs7QU92UEE7Ozs7O0VBS0U7RUFDQTtBUDBQRjs7QU92UEE7RUFDRTtBUDBQRjtBT3hQRTs7RUFFRTtBUDBQSjs7QU90UEE7Ozs7OztFQU1FO0FQeVBGOztBUTdRQTtFQUNDO0FSZ1JEO0FROVFDO0VBQ0M7RUFDQTtBUmdSRjs7QU1oTkk7RUd4RUo7SUFFRTtJQUNBO0VUMlJBO0FBQ0Y7QU1wT0k7RUczREo7SUFPRTtJQUNBO0VUNFJBO0FBQ0Y7O0FNN05JO0VHcEREO0lBQ0MsbUJYRlk7RUV1UmQ7RVNsUkM7SUFDQyxzQlhOWTtFRTBSZDtBQUNGOztBTXRPSTtFR3BERDtJQUNDLGlCWEZZO0VFZ1NkO0VTM1JDO0lBQ0Msb0JYTlk7RUVtU2Q7QUFDRjs7QU0vT0k7RUdwREQ7SUFDQyxrQlhGWTtFRXlTZDtFU3BTQztJQUNDLHFCWE5ZO0VFNFNkO0FBQ0Y7O0FNclFJO0VHeEJEO0lBQ0MsbUJYWmE7RUU2U2Y7RVM5UkM7SUFDQyxzQlhoQmE7RUVnVGY7QUFDRjs7QU05UUk7RUd4QkQ7SUFDQyxpQlhaYTtFRXNUZjtFU3ZTQztJQUNDLG9CWGhCYTtFRXlUZjtBQUNGOztBTXZSSTtFR3hCRDtJQUNDLGtCWFphO0VFK1RmO0VTaFRDO0lBQ0MscUJYaEJhO0VFa1VmO0FBQ0Y7O0FVNVZBO0VBQ0U7RUFDQTtBVitWRjs7QVU1VkE7RUFDRTtFQUNBO0VBQ0E7QVYrVkY7O0FVN1ZBO0VBQ0U7SUFDRTtFVmdXRjtBQUNGO0FVNVZFOztFQUVFO0FWOFZKO0FVM1ZFO0VBQ0U7RUFDQTtFQUNBO0FWNlZKOztBVXpWQTtFQUNFO0FWNFZGOztBVzFYQTtFQUNFO0FYNlhGO0FXNVhFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QVg4WEo7QVc1WEk7RUFDRTtBWDhYTjtBVzNYSTtFQUNFO0VBQ0E7QVg2WE47QVcxWEU7RUFDRTtFQUNBO0VBQ0E7QVg0WEo7QVcxWEU7RUFDRTtFQUNBO0VBQ0E7QVg0WEo7QVcxWEU7RUFDRTtBWDRYSjtBV3pYRTtFQUNFO0VBQ0E7RUFDQTtBWDJYSjtBV3pYRTtFQUNFO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0FYMFhKO0FXdlhFO0VBQ0U7QVh5WEo7QVdyWEk7RUFDRTtBWHVYTjtBV25YRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVhxWEo7QVdwWEk7RUFDRTtBWHNYTjs7QVkxYkk7RUFDRTtBWjZiTjtBWTFiRTtFQUNFO0FaNGJKO0FZMWJFO0VBQ0U7QVo0Yko7QVkxYkU7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVo0Yko7QVkzYkk7RUFDRTtFQUNBO0FaNmJOO0FZM2JJO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QVo2Yk47QU01Wkk7RU1yQ0E7SUFNSTtFWitiTjtBQUNGO0FNamFJO0VNckNBO0lBU0k7RVppY047QUFDRjtBTXRhSTtFTXJDQTtJQVlJO0VabWNOO0FBQ0Y7QVlqY0k7RUFDRTtBWm1jTjtBWWpjSTtFQUNFO0VBQ0E7RUFDQTtBWm1jTjtBWWxjTTtFQUNFO0Fab2NSO0FZbmNRO0VBQ0U7RUFDQTtBWnFjVjtBWWpjTTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FabWNSO0FZbGNRO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QVpvY1Y7QVkvYlE7RUFDRTtBWmljVjtBWWhjVTtFQUNFO0Faa2NaOztBYWpoQkE7RUFDRTtBYm9oQkY7QWFsaEJFO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBYm9oQko7QWFsaEJJO0VBQ0U7QWJvaEJOO0FhaGhCSTtFQUNFO0VBQ0E7RUFDQTtBYmtoQk47QWE5Z0JJO0VBQ0U7RUFDQTtFQUNBO0FiZ2hCTjtBYTVnQkk7RUFDRTtFQUNBO0VBQ0E7QWI4Z0JOO0FhemdCRTtFQUNFO0FiMmdCSjtBYXhnQkU7RUFDRTtFQUNBO0FiMGdCSjtBYXhnQkU7O0VBRUU7RUFDQTtBYjBnQko7O0FjNWpCRTtFQUNFO0VBQ0E7QWQrakJKO0FjN2pCRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FkK2pCSjtBTTVnQkk7RVF2REY7SUFNSTtFZGlrQko7QUFDRjtBY2hrQkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QWRra0JOO0FNemhCSTtFUXhDRTtJQUVJO0VkbWtCUjtBQUNGO0FjaGtCSTtFQUNFO0VBQ0E7RUFDQTtBZGtrQk47QWNoa0JRO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBZGtrQlY7QWNqa0JVO0VBQ0U7RUFDQTtBZG1rQlo7QWNqa0JVO0VBQ0U7QWRta0JaO0FjbGtCWTtFQUNFO0Fkb2tCZDtBYzVqQkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtBZDhqQk47QWM3akJNO0VBQ0U7RUFDQTtBZCtqQlI7QWM3akJNO0VBQ0U7QWQrakJSO0FjOWpCUTtFQUNFO0FkZ2tCVjtBYzdqQk07RUFDRTtBZCtqQlI7QWM5akJRO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QWRna0JWO0FjL2pCVTtFQUNFO0VBQ0E7RUFDQTtBZGlrQlo7QWMvakJVO0VBQ0U7RUFDQTtBZGlrQlo7QU10bEJJO0VRbUJNO0lBSUk7RWRta0JaO0FBQ0Y7QWNsa0JZO0VBQ0U7QWRva0JkO0FjbmtCYztFQUNFO0VBQ0E7QWRxa0JoQjtBYzlqQkk7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHVEQUNFO0VBRUY7RUFDQTtBZDhqQk47QWM3akJNO0VBQ0U7QWQrakJSO0FjN2pCTTtFQUNFO0VBQ0E7QWQrakJSO0FjNWpCSTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FkOGpCTjtBYzNqQkU7RUFDRTtFQUNBO0VBQ0E7QWQ2akJKO0FjM2pCRTtFQUNFO0FkNmpCSjtBYzNqQkU7RUFDRTtBZDZqQko7QWM1akJJO0VBQ0U7RUFDQTtBZDhqQk4sQyIsInNvdXJjZXMiOlsid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vc3JjL3N0eWxlcy92YXJzLnNjc3MiLCJ3ZWJwYWNrOi8vcGxhdGVzdGFydGVydGhlbWEvLi9zcmMvc3R5bGVzL3ZhcmlhYmxlcy92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9wbGF0ZXN0YXJ0ZXJ0aGVtYS8uL3NyYy9zdHlsZXMvaGVscGVycy8wLW1peGlucy5zY3NzIiwid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vc3JjL3N0eWxlcy9zdHlsZS5zY3NzIiwid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vc3JjL3N0eWxlcy9oZWxwZXJzLzMtY2xhc3Nlcy9hbmltYXRpb25fZWwuc2NzcyIsIndlYnBhY2s6Ly9wbGF0ZXN0YXJ0ZXJ0aGVtYS8uL3NyYy9zdHlsZXMvaGVscGVycy8zLWNsYXNzZXMvYmdpbWFnZS5zY3NzIiwid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vc3JjL3N0eWxlcy9oZWxwZXJzLzMtY2xhc3Nlcy9jb2xvcnMuc2NzcyIsIndlYnBhY2s6Ly9wbGF0ZXN0YXJ0ZXJ0aGVtYS8uL3NyYy9zdHlsZXMvaGVscGVycy8zLWNsYXNzZXMvY292ZXIuc2NzcyIsIndlYnBhY2s6Ly9wbGF0ZXN0YXJ0ZXJ0aGVtYS8uL3NyYy9zdHlsZXMvaGVscGVycy8zLWNsYXNzZXMvZmxleC5zY3NzIiwid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9wbGF0ZXN0YXJ0ZXJ0aGVtYS8uL3NyYy9zdHlsZXMvZm9udHMvdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vc3JjL3N0eWxlcy9sYXlvdXRzL3BsYXRlLS1lZGl0cy5zY3NzIiwid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vc3JjL3N0eWxlcy9sYXlvdXRzL3NwYWNlLnNjc3MiLCJ3ZWJwYWNrOi8vcGxhdGVzdGFydGVydGhlbWEvLi9zcmMvc3R5bGVzL2xheW91dHMvdGhlbWUuc2NzcyIsIndlYnBhY2s6Ly9wbGF0ZXN0YXJ0ZXJ0aGVtYS8uL3NyYy9zdHlsZXMvaW5jbHVkZXMvZmlsZS5zY3NzIiwid2VicGFjazovL3BsYXRlc3RhcnRlcnRoZW1hLy4vc3JjL3N0eWxlcy9pbmNsdWRlcy9oYW5kbGVzLnNjc3MiLCJ3ZWJwYWNrOi8vcGxhdGVzdGFydGVydGhlbWEvLi9zcmMvc3R5bGVzL2VsZW1lbnRzL2NvbnRhY3RfZm9ybS9ub3RpZmljYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9wbGF0ZXN0YXJ0ZXJ0aGVtYS8uL3NyYy9zdHlsZXMvc2VjdGlvbnMvcXVvdGF0aW9uX2Zvcm0uc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBWQVJJQUJMRVMgKi9cbkBpbXBvcnQgXCJ2YXJpYWJsZXMvdmFyaWFibGVzLnNjc3NcIjtcbi8qIEhFTFBFUlMgKi9cbkBpbXBvcnQgXCJoZWxwZXJzLzAtbWl4aW5zLnNjc3NcIjtcbi8qIExpYnMgZ2VuZXJhbCAqL1xuQGltcG9ydCBcIi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGluc1wiO1xuIiwiLy8gU2VlIGNvbG9ycyBpbiBmaWxlOiBzdHlsZS5wbGF0ZVxuJGJvZHlfZm9udFNpemU6IHZhcigtLWZvbnRzaXplX2JvZHksIDEuNnJlbSk7XG5cbi8vIFRyYW5zaXRpb25cbiR0cmFuc2l0aW9uOiAoXG5cdGVhc2U6IFwiZWFzZS1pbi1vdXRcIixcblx0c3BlZWQ6IDAuMnMsXG4pO1xuXG4vKiAgUGFkZGluZyAqL1xuJHBhZGRpbmc6IChcblx0c21hbGw6IDFyZW0sXG5cdG1lZGl1bTogM3JlbSxcblx0bGFyZ2U6IDVyZW0sXG5cdGNvbHVtbi1tb2JpbGU6IDE1cHgsXG5cdGNvbHVtbi1kZXNrdG9wOiAxNXB4LFxuKTtcbiRtaW5Db2x1bW5IZWlnaHQ6IDRyZW07XG5cbi8vIEBzZWUgc3BhY2Uuc2Nzc1xuJHNwYWNlcy1tb2JpbGU6IChcblx0czogMi41cmVtLFxuXHRtOiA1cmVtLFxuXHRsOiAxMHJlbSxcbik7XG4kc3BhY2VzLWRlc2t0b3A6IChcblx0czogbWFwLWdldCgkc3BhY2VzLW1vYmlsZSwgcyksXG5cdG06IG1hcC1nZXQoJHNwYWNlcy1tb2JpbGUsIG0pLFxuXHRsOiBtYXAtZ2V0KCRzcGFjZXMtbW9iaWxlLCBsKSxcbik7XG5cbiRzZWN0aW9uUGFkZGluZzogNXJlbTtcbiRzbWFsbEZhY3RvcjogMC41O1xuJGxhcmdlRmFjdG9yOiAyO1xuXG4kbWF4LXNlY3Rpb25zOiAyMDtcblxuJG1vYmlsZUZhY3RvcjogMC41O1xuXG4vKiBCcmVha3BvaW50cyAqL1xuJGdyaWQtYnJlYWtwb2ludHM6IChcblx0eHM6IDAsXG5cdHNtOiA1NzZweCxcblx0bWQ6IDc2OHB4LFxuXHRsZzogOTkycHgsXG5cdHhsOiAxMjAwcHgsXG5cdC8vIHh4bDogMTQwMHB4LFxuXHQvLyB4eHhsOiAxNjAwcHgsXG5cdC8vIHh4eHhsOiAxODAwcHgsXG5cdC8vIGhkOiAxOTIwcHgsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCxcbik7XG4kYnBEb3duOiBzbTtcbiRicFVwOiBtZDtcbiRicERvd25OYXY6ICRicERvd247XG4kYnBVcE5hdjogJGJwVXA7XG5cbi8qIE5hdmlnYXRpb24gKi9cbiR0b2dnbGVXaWR0aDogMjVweDtcbiR0b2dnbGVIZWlnaHQ6IDI1cHg7XG4kdG9nZ2xlTGluZUhlaWdodDogM3B4O1xuJHRvZ2dsZUxpbmVCb3JkZXJSYWRpdXM6IDJweDtcbiR0b2dnbGVMaW5lQ29sb3I6IGJsYWNrO1xuJHRvZ2dsZUxpbmVDb2xvckFjdGl2ZTogYmxhY2s7XG5cbi8qIFN3aXBlciAqL1xuJHN3aXBlci10aGVtZS1jb2xvcjogYmxhY2s7XG4kc3dpcGVyLXByZWxvYWRlci1jb2xvcjogYmxhY2s7XG4kc3dpcGVyLW5hdmlnYXRpb24tY29sb3I6IHdoaXRlO1xuJHN3aXBlci1wYWdpbmF0aW9uLWNvbG9yOiB3aGl0ZTtcbiRzd2lwZXItbmF2aWdhdGlvbi1zaXplOiA0NHB4O1xuJHBhZ2luYXRpb25Db2xvck5hbWU6IFwiYmxhY2tcIjtcblxuLy8gWi1pbmRleCBtYXBwaW5nO1xuLy8gQHNlZTogc3R5bGVzL2hlbHBlcnMvMC1taXhpbnMuc2Nzc1xuJHotaW5kZXg6IChcblx0bW9kYWw6IDIwMCxcblx0bmF2aWdhdGlvbjogMTIwLFxuXHRoZWFkZXI6IDExNSxcblx0bWFwOiAxMTAsXG5cdGZvb3RlcjogMTAwLFxuKTtcbiIsIkBtaXhpbiBwc2V1ZG8tYWJzb2x1dGUoJHRvcDogMCwgJGxlZnQ6IDApIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR0b3A7XG4gIGxlZnQ6ICRsZWZ0O1xufVxuXG5AbWl4aW4gcHNldWRvLWFic29sdXRlLWNvdmVyIHtcbiAgQGluY2x1ZGUgcHNldWRvLWFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWl4aW4gY292ZXIoJGFsaWduOiBcInVuc2V0XCIpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIEBpZiAkYWxpZ24gPT0gXCJyaWdodFwiIG9yICRhbGlnbiA9PSBcInVuc2V0XCIge1xuICAgIHJpZ2h0OiAwO1xuICB9IEBlbHNlIHtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgQGlmICRhbGlnbiA9PSBcInRvcFwiIG9yICRhbGlnbiA9PSBcInJpZ2h0XCIgb3IgJGFsaWduID09IFwibGVmdFwiIG9yICRhbGlnbiA9PSBcInVuc2V0XCIge1xuICAgIHRvcDogMDtcbiAgfSBAZWxzZSB7XG4gICAgYm90dG9tOiAwO1xuICB9XG5cbiAgQGlmICRhbGlnbiA9PSBcInRvcFwiIG9yICRhbGlnbiA9PSBcImJvdHRvbVwiIG9yICRhbGlnbiA9PSBcInVuc2V0XCIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgQGlmICRhbGlnbiA9PSBcImxlZnRcIiBvciAkYWxpZ24gPT0gXCJyaWdodFwiIG9yICRhbGlnbiA9PSBcInVuc2V0XCIge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG5AbWl4aW4gZmxleC1jIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQG1peGluIGZsZXgtc2Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmbGV4LWVjIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuQG1peGluIGZsZXgtY2Mge1xuICBAaW5jbHVkZSBmbGV4LWM7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4gZmxleC1jYiB7XG4gIEBpbmNsdWRlIGZsZXgtYztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG5AbWl4aW4gZmxleC1jZSB7XG4gIEBpbmNsdWRlIGZsZXgtYztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuQG1peGluIGZsZXgtY3Mge1xuICBAaW5jbHVkZSBmbGV4LWM7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuQG1peGluIGZsZXgtY2Ege1xuICBAaW5jbHVkZSBmbGV4LWM7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG5AbWl4aW4gZmxleGMtYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmbGV4Yy1jYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIEBpbmNsdWRlIGZsZXgtYztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtaXhpbiBmbGV4Yy1jYiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIEBpbmNsdWRlIGZsZXgtYztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG5AbWl4aW4gZmxleGMtY2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBAaW5jbHVkZSBmbGV4LWM7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbkBtaXhpbiBmbGV4Yy1jcyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIEBpbmNsdWRlIGZsZXgtYztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG5AbWl4aW4gZmxleGMtY2Ege1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBAaW5jbHVkZSBmbGV4LWM7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG5AbWl4aW4gY292ZXItaW1nIHtcbiAgQGluY2x1ZGUgY292ZXI7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbigkYXR0cmlidXRlOiBhbGwsICRzcGVlZDogbWFwLWdldCgkdHJhbnNpdGlvbiwgXCJzcGVlZFwiKSwgJGVhc2U6IGVhc2UtaW4tb3V0KSB7XG4gIHRyYW5zaXRpb246ICRhdHRyaWJ1dGUgJHNwZWVkICRlYXNlO1xufVxuQG1peGluIG11bHRpcGxlVHJhbnNpdGlvbnMoJGF0dHJpYnV0ZXMsICRzcGVlZDogbWFwLWdldCgkdHJhbnNpdGlvbiwgXCJzcGVlZFwiKSwgJGVhc2U6IGVhc2UtaW4tb3V0KSB7XG4gICR0cmFuc2l0aW9uOiAoKTtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGF0dHJpYnV0ZXMpIHtcbiAgICAkdHJhbnNpdGlvbjogYXBwZW5kKCR0cmFuc2l0aW9uLCAobnRoKCRhdHRyaWJ1dGVzLCAkaSkgJHNwZWVkICRlYXNlKSwgY29tbWEpO1xuICB9XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xufVxuXG5AbWl4aW4gYm94KCR3aWR0aCwgJGhlaWdodDogJHdpZHRoKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbn1cblxuQG1peGluIG9wYWNpdHkoJG9wYWNpdHkpIHtcbiAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICRvcGFjaXR5LWllOiAkb3BhY2l0eSAqIDEwMDtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PSRvcGFjaXR5LWllKTsgLy9JRThcbn1cblxuQG1peGluIGZvbnQtc2l6ZSgkc2l6ZSwgJGJhc2U6IDE2KSB7XG4gIGZvbnQtc2l6ZTogJHNpemU7IC8vIGZhbGxiYWNrIGZvciBvbGQgYnJvd3NlcnNcbiAgZm9udC1zaXplOiBtYXRoLmRpdigkc2l6ZSwgJGJhc2UpICogMXJlbTtcbn1cblxuQG1peGluIGdyYWRpZW50KCRzdGFydC1jb2xvciwgJGVuZC1jb2xvciwgJG9yaWVudGF0aW9uKSB7XG4gIGJhY2tncm91bmQ6ICRzdGFydC1jb2xvcjtcblxuICBAaWYgJG9yaWVudGF0aW9uPT0gXCJ2ZXJ0aWNhbFwiIHtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcbiAgfSBAZWxzZSBpZiAkb3JpZW50YXRpb249PSBcImhvcml6b250YWxcIiB7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gIH1cbn1cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoKSB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG5cbkBtaXhpbiBzY3JvbGwoKSB7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGltZ0xhcmdlKCRzaXplLCAkZGlyZWN0aW9uKSB7XG4gIC5pbWFnZS0tbGFyZ2Uge1xuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAtJHNpemU7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyAoMiAqICN7JHNpemV9KSk7XG4gIH1cbn1cblxuLy8gQG1peGluIGNvbG9yKCR0eXBlKSB7XG4vLyBcdEBlYWNoICRuYW1lLCAkY29kZSBpbiAkY29sb3JzIHtcbi8vIFx0XHQmLS0jeyRuYW1lfSB7XG4vLyBcdFx0XHQjeyR0eXBlfTogJGNvZGUgIWltcG9ydGFudDtcbi8vIFx0XHR9XG4vLyBcdH1cbi8vIH1cblxuLy8gVGhpcyBpcyBhIGFjY2Vzc2libGUgd2F5IG9mICdoaWRpbmcnIHNvbWV0aGluZy5cbi8vIEBzZWU6IGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzUuMC9oZWxwZXJzL3Zpc3VhbGx5LWhpZGRlbi9cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4ge1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxcHg7XG59XG4udmlzdWFsbHktaGlkZGVuIHtcbiAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25OYW1lLCAkZHVyYXRpb24sICRmaWxsTW9kZTogXCJmb3J3YXJkc1wiKSB7XG4gIGFuaW1hdGlvbi1uYW1lOiAjeyRhbmltYXRpb25OYW1lfTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAjeyRkdXJhdGlvbn07XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6ICN7JGZpbGxNb2RlfTtcbn1cblxuQG1peGluIHZlcnRpY2FsQW5pbWF0aW9uKCRhbmltYXRpb25OYW1lLCAkZHVyYXRpb246IDJzKSB7XG4gICRmcm9tOiAxMDAlO1xuICAkdG86IDAlO1xuICBAaWYgJGFuaW1hdGlvbk5hbWUgPT0gXCJhbmltYXRpb25Eb3duXCIge1xuICAgICRmcm9tOiAtMTAwJTtcbiAgICAkdG86IDAlO1xuICB9XG4gIGFuaW1hdGlvbi1uYW1lOiAjeyRhbmltYXRpb25OYW1lfTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAjeyRkdXJhdGlvbn07XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uTmFtZX0ge1xuICAgIGZyb20ge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIEBpZiAkYW5pbWF0aW9uTmFtZSAhPSBcImFuaW1hdGlvbkZhZGVcIiB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgjeyRmcm9tfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRvIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBAaWYgJGFuaW1hdGlvbk5hbWUgIT0gXCJhbmltYXRpb25GYWRlXCIge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoI3skdG99KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGZ1bmN0aW9uIHotaW5kZXgoJGtleSkge1xuICBAcmV0dXJuIG1hcC1nZXQoJHotaW5kZXgsICRrZXkpO1xufVxuXG5AbWl4aW4gei1pbmRleCgka2V5KSB7XG4gIHotaW5kZXg6IHotaW5kZXgoJGtleSk7XG59XG4iLCIvKiBWQVJJQUJMRVMgKi9cbi8qICBQYWRkaW5nICovXG4vKiBCcmVha3BvaW50cyAqL1xuLyogTmF2aWdhdGlvbiAqL1xuLyogU3dpcGVyICovXG4vKiBIRUxQRVJTICovXG4udmlzdWFsbHktaGlkZGVuIHtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMXB4O1xufVxuXG4vKiBMaWJzIGdlbmVyYWwgKi9cbi8qICBQYWRkaW5nICovXG4vKiBCcmVha3BvaW50cyAqL1xuLyogTmF2aWdhdGlvbiAqL1xuLyogU3dpcGVyICovXG4udmlzdWFsbHktaGlkZGVuIHtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMXB4O1xufVxuXG4uYW5pbWF0ZS11cCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBhbmltYXRpb25VcDtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbn1cbkBrZXlmcmFtZXMgYW5pbWF0aW9uVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5cbi5iZ2ltYWdlIHtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cblxuLnRjX3Age1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG4udGNfcyB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xufVxuLnRjX3Qge1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3IpO1xufVxuLnRjX2Ige1xuICBjb2xvcjogdmFyKC0tYmxhY2spO1xufVxuLnRjX3cge1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuLnRjX2xnIHtcbiAgY29sb3I6IHZhcigtLWxpZ2h0Z3JleSk7XG59XG5cbi5iZ2NfcCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuLmJnY19zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcbn1cbi5iZ2NfdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG9yKTtcbn1cbi5iZ2NfYiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJsYWNrKTtcbn1cbi5iZ2NfdyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cbi5iZ2NfbGcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodGdyZXkpO1xufVxuXG4uY292ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmYge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmZ3IHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLmZ3ciB7XG4gIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xufVxuLmZudyB7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuLmZfYyB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uZl9jciB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbn1cbi5mX3Ige1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuLmZfcnIge1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG59XG4uZi1jIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5mLWZzIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uZi1mZSB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cbi5mLS1mcyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbi5mLS1mZSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uZi0tYyB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmYtLXNiIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmYtLXNhIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuZm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmZtdyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5mbXdyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAgfVxuICAuZm1udyB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbiAgLmZtX2Mge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLmZtX2NyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbiAgLmZtX3Ige1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cbiAgLmZtX3JyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIH1cbiAgLmZtLWMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLmZtLWZzIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgfVxuICAuZm0tZmUge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgfVxuICAuZm0tLWZzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLmZtLS1mZSB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuICAuZm0tLWMge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5mbS0tc2Ige1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuICAuZm0tLXNhIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIC5mZHcge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAuZmR3ciB7XG4gICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gIH1cbiAgLmZkbncge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIC5mZF9jIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5mZF9jciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICB9XG4gIC5mZF9yIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICB9XG4gIC5mZF9yciB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICB9XG4gIC5mZC1jIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5mZC1mcyB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLmZkLWZlIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbiAgLmZkLS1mcyB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG4gIC5mZC0tZmUge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIH1cbiAgLmZkLS1jIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuICAuZmQtLXNiIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmZkLS1zYSB7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIH1cbn1cblxuYm9keSxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtcHJpbWFyeSwgXCJHVC1XYWxzaGVpbVwiKTtcbn1cblxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxudWwsXG51bCBsaSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNlY29uZGFyeSwgXCJHVC1XYWxzaGVpbVwiKTtcbn1cblxucGljdHVyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbnBpY3R1cmUgc291cmNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wLXQtbS0tcyB7XG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTtcbiAgfVxuICAucC1iLW0tLXMge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wLXQtbS0tbSB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gIH1cbiAgLnAtYi1tLS1tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnAtdC1tLS1sIHtcbiAgICBwYWRkaW5nLXRvcDogMTByZW07XG4gIH1cbiAgLnAtYi1tLS1sIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTByZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wLXQtZC0tcyB7XG4gICAgcGFkZGluZy10b3A6IDIuNXJlbTtcbiAgfVxuICAucC1iLWQtLXMge1xuICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wLXQtZC0tbSB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gIH1cbiAgLnAtYi1kLS1tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnAtdC1kLS1sIHtcbiAgICBwYWRkaW5nLXRvcDogMTByZW07XG4gIH1cbiAgLnAtYi1kLS1sIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTByZW07XG4gIH1cbn1cblxuKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbn1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgaHRtbCB7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvO1xuICB9XG59XG5waWN0dXJlLFxucGljdHVyZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbnBpY3R1cmUgc291cmNlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbmZvcm0gLmlucHV0X2ZpZWxkIC5maWxlIHtcbiAgZm9udC1zaXplOiAxN3B4O1xufVxuZm9ybSAuaW5wdXRfZmllbGQgLmZpbGVfX2Ryb3Age1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBib3JkZXI6IDJweCBkb3R0ZWQgI2U2ZTZlNjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAyLjRyZW07XG59XG5mb3JtIC5pbnB1dF9maWVsZCAuZmlsZV9fZHJvcDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuZm9ybSAuaW5wdXRfZmllbGQgLmZpbGVfX2Ryb3AuaGFzX2ZpbGUge1xuICBib3JkZXItY29sb3I6IHJnYmEoNjgsIDIwOCwgMTI0LCAwLjUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgMjUzLCAyNDMsIDAuNSk7XG59XG5mb3JtIC5pbnB1dF9maWVsZCAuZmlsZSAuZmlsZS1wbGFjZWhvbGRlciB7XG4gIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICBncmlkLWFyZWE6IHBsYWNlaG9sZGVyO1xuICBjb2xvcjogYmxhY2s7XG59XG5mb3JtIC5pbnB1dF9maWVsZCAuZmlsZSAuZmlsZW5hbWUge1xuICBncmlkLWFyZWE6IGxhYmVsO1xuICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xuICBjb2xvcjogYmxhY2s7XG59XG5mb3JtIC5pbnB1dF9maWVsZCAuZmlsZV9fcmVtb3ZlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmZvcm0gLmlucHV0X2ZpZWxkIC5maWxlX19vdmVybGF5IHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuZm9ybSAuaW5wdXRfZmllbGQgLmZpbGUgaW5wdXQge1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIGluc2V0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMDtcbn1cbmZvcm0gLmlucHV0X2ZpZWxkIC5maWxlIC5kcmFnX292ZXIge1xuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbn1cbmZvcm0gLmlucHV0X2ZpZWxkIC5maWxlIC5oYXNfZmlsZSAuZmlsZV9fcmVtb3ZlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbmZvcm0gLmlucHV0X2ZpZWxkIC5maWxlX19yZW1vdmUge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDFyZW07XG4gIHRvcDogMnJlbTtcbiAgcGFkZGluZzogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MgZWFzZTtcbn1cbmZvcm0gLmlucHV0X2ZpZWxkIC5maWxlX19yZW1vdmU6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uaGFuZGxlcy1sYWJlbCAuY29udGFjdF9mb3JtX19maWVsZF9fZXJyb3Ige1xuICBmb250LXdlaWdodDogNDAwO1xufVxuLmhhbmRsZXMuaW5wdXRfZmllbGQge1xuICBib3JkZXI6IG5vbmU7XG59XG4uaGFuZGxlcyAucmFkaW8tY2hlY2sge1xuICBtYXJnaW46IDAgMCAzLjJyZW07XG59XG4uaGFuZGxlcy13cmFwcGVyIHtcbiAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xuICBnYXA6IDEuNXJlbTtcbiAgbWluLWhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjNzIGVhc2U7XG4gIG9wYWNpdHk6IDA7XG59XG4uaGFuZGxlcy13cmFwcGVyLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xufVxuLmhhbmRsZXMtd3JhcHBlci1pbm5lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMS41cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLmhhbmRsZXMtd3JhcHBlci1pbm5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhhbmRsZXMtd3JhcHBlci1pbm5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5oYW5kbGVzLXdyYXBwZXItaW5uZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxufVxuLmhhbmRsZXMtd3JhcHBlci5pbnB1dF9maWVsZCB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5oYW5kbGVzLXdyYXBwZXIgLmhhbmRsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5oYW5kbGVzLXdyYXBwZXIgLmhhbmRsZSBwaWN0dXJlIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmhhbmRsZXMtd3JhcHBlciAuaGFuZGxlIHBpY3R1cmUgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5oYW5kbGVzLXdyYXBwZXIgLmhhbmRsZS10aXRsZSB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgYm9yZGVyLXRvcDogc29saWQgYmxhY2sgMXB4O1xufVxuLmhhbmRsZXMtd3JhcHBlciAuaGFuZGxlLXRpdGxlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgei1pbmRleDogLTE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG4uaGFuZGxlcy13cmFwcGVyIC5oYW5kbGUuYWN0aXZlIC5oYW5kbGUtdGl0bGUsIC5oYW5kbGVzLXdyYXBwZXIgLmhhbmRsZTpob3ZlciAuaGFuZGxlLXRpdGxlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmhhbmRsZXMtd3JhcHBlciAuaGFuZGxlLmFjdGl2ZSAuaGFuZGxlLXRpdGxlOjphZnRlciwgLmhhbmRsZXMtd3JhcHBlciAuaGFuZGxlOmhvdmVyIC5oYW5kbGUtdGl0bGU6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbn1cblxuLm5vdGlmaWNhdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5ub3RpZmljYXRpb24gLm1lc3NhZ2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLW91dDtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDkwZGVnKSBzY2FsZVkoMCk7XG59XG4ubm90aWZpY2F0aW9uIC5tZXNzYWdlIHAge1xuICBwYWRkaW5nOiAxLjJyZW0gMS42cmVtO1xufVxuLm5vdGlmaWNhdGlvbi5mb3Jnb3R0ZW4gLm1lc3NhZ2VfX2ZvcmdvdHRlbiB7XG4gIGhlaWdodDogYXV0bztcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpIHNjYWxlWSgxKTtcbn1cbi5ub3RpZmljYXRpb24uZXJyb3IgLm1lc3NhZ2VfX2Vycm9yIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZykgc2NhbGVZKDEpO1xufVxuLm5vdGlmaWNhdGlvbi5zdWNjZXNzIC5tZXNzYWdlX19zdWNjZXNzIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZykgc2NhbGVZKDEpO1xufVxuLm5vdGlmaWNhdGlvbjpub3QoLmZvcmdvdHRlbik6bm90KC5lcnJvcik6bm90KC5zdWNjZXNzKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5ub3RpZmljYXRpb24gLm1lc3NhZ2VfX3N1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6IHJnYig2OCwgMjA4LCAxMjQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2LCAyNTMsIDI0Myk7XG59XG4ubm90aWZpY2F0aW9uIC5tZXNzYWdlX19mb3Jnb3R0ZW4sXG4ubm90aWZpY2F0aW9uIC5tZXNzYWdlX19lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI1NSwgODQsIDg0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjQwLCAyNDApO1xufVxuXG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLXN0ZXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLWZpZWxkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMCAycmVtO1xuICBtYXJnaW46IDAgMCA0cmVtO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tZmllbGRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tZmllbGRzIC5maWVsZC13cmFwcGVyIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcGFkZGluZzogMjBweCAwIDA7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1maWVsZHMgLmZpZWxkLXdyYXBwZXIuaGFsZiB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMTtcbiAgfVxufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1maWVsZHMgLmlucHV0X2ZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tZmllbGRzIC5pbnB1dF9maWVsZC5jb2xvciAub3duLWNvbG9yLXdyYXBwZXIge1xuICBtYXJnaW46IDJyZW0gMCAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTtcbiAgb3BhY2l0eTogMDtcbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tZmllbGRzIC5pbnB1dF9maWVsZC5jb2xvciAub3duLWNvbG9yLXdyYXBwZXIuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLWZpZWxkcyAuaW5wdXRfZmllbGQuY29sb3IgLm93bi1jb2xvci13cmFwcGVyLWlubmVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tZmllbGRzIC5pbnB1dF9maWVsZC5jb2xvciAub3duLWNvbG9yLXdyYXBwZXItaW5uZXIgLmZpZWxkLXdyYXBwZXIge1xuICBtYXJnaW46IDA7XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLXN0ZXAtY29udGVudCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAwZnI7XG4gIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjNzIGVhc2U7XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLXN0ZXAtY29udGVudC13cmFwcGVyIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjNzIGVhc2U7XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLXN0ZXAtY29udGVudC5hY3RpdmUge1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tc3RlcC1jb250ZW50LmFjdGl2ZSAucXVvdGF0aW9uLXN0ZXAtY29udGVudC13cmFwcGVyIHtcbiAgcGFkZGluZzogNXJlbSAwO1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1zdGVwLWNvbnRlbnQgLnByZXZpZXctZmllbGRzIHtcbiAgbWFyZ2luOiAwIDAgNHJlbTtcbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tc3RlcC1jb250ZW50IC5wcmV2aWV3LWZpZWxkcyAucHJldmlldy1zdGVwIHtcbiAgZm9udC1zaXplOiAxN3B4O1xuICBtYXJnaW46IDAgMCAxLjVyZW07XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIHBhZGRpbmc6IDIuNXJlbSAwO1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1zdGVwLWNvbnRlbnQgLnByZXZpZXctZmllbGRzIC5wcmV2aWV3LXN0ZXBfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1zdGVwLWNvbnRlbnQgLnByZXZpZXctZmllbGRzIC5wcmV2aWV3LXN0ZXBfX2ZpZWxkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1zdGVwLWNvbnRlbnQgLnByZXZpZXctZmllbGRzIC5wcmV2aWV3LXN0ZXBfX2ZpZWxkcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICB9XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLXN0ZXAtY29udGVudCAucHJldmlldy1maWVsZHMgLnByZXZpZXctc3RlcF9fZmllbGRzIC5wcmV2aWV3LWZpZWxkIHtcbiAgbWFyZ2luOiAwIDAgMS41cmVtO1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1zdGVwLWNvbnRlbnQgLnByZXZpZXctZmllbGRzIC5wcmV2aWV3LXN0ZXBfX2ZpZWxkcyAucHJldmlldy1maWVsZF9fbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5xdW90YXRpb24tc3RlcC10aXRsZSB7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxN3B4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSwgY29sb3IgMC4zcyBlYXNlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBib3JkZXItYm90dG9tOiBzb2xpZCAycHggd2hpdGU7XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAucXVvdGF0aW9uLXN0ZXAtdGl0bGUuYWN0aXZlIHtcbiAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4IGJsYWNrO1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1zdGVwLXRpdGxlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnF1b3RhdGlvbi1zdGVwLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cbi5xdW90YXRpb24tc3RlcC13cmFwcGVyIC5jb250YWN0X2Zvcm1fX2ZpZWxkX19lcnJvciB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHJlZDtcbiAgbWFyZ2luOiA1cHggMCAwO1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgc2VsZWN0IHtcbiAgZm9udC1zaXplOiAxN3B4O1xufVxuLnF1b3RhdGlvbi1zdGVwLXdyYXBwZXIgLnN1Ym1pdF9idXR0b24ge1xuICBtYXJnaW46IDA7XG59XG4ucXVvdGF0aW9uLXN0ZXAtd3JhcHBlciAuc3VibWl0X2J1dHRvbltkaXNhYmxlZF0ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC41O1xufSIsIi5hbmltYXRlLXVwIHtcbiAgIEBpbmNsdWRlIHZlcnRpY2FsQW5pbWF0aW9uKFwiYW5pbWF0aW9uVXBcIiwgMC41cyk7XG59XG4iLCIuYmdpbWFnZSB7XG4gICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbn1cblxuLy8gLmJnIHtcbi8vIFx0QGluY2x1ZGUgY29sb3IoXCJiYWNrZ3JvdW5kLWNvbG9yXCIpO1xuLy8gfVxuXG4vLyAuY29sb3Ige1xuLy8gXHRAaW5jbHVkZSBjb2xvcihcImNvbG9yXCIpO1xuLy8gfVxuIiwiQG1peGluIGNvbG9yKCR0eXBlKSB7XG4gICAmX3Age1xuICAgICAgI3skdHlwZX06IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgfVxuICAgJl9zIHtcbiAgICAgICN7JHR5cGV9OiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuICAgfVxuICAgJl90IHtcbiAgICAgICN7JHR5cGV9OiB2YXIoLS10ZXJ0aWFyeS1jb2xvcik7XG4gICB9XG4gICAmX2Ige1xuICAgICAgI3skdHlwZX06IHZhcigtLWJsYWNrKTtcbiAgIH1cbiAgICZfdyB7XG4gICAgICAjeyR0eXBlfTogdmFyKC0td2hpdGUpO1xuICAgfVxuICAgJl9sZyB7XG4gICAgICAjeyR0eXBlfTogdmFyKC0tbGlnaHRncmV5KTtcbiAgIH1cbn1cbi50YyB7XG4gICBAaW5jbHVkZSBjb2xvcihcImNvbG9yXCIpO1xufVxuLmJnYyB7XG4gICBAaW5jbHVkZSBjb2xvcihcImJhY2tncm91bmQtY29sb3JcIik7XG59XG4iLCIuY292ZXIge1xuICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgdG9wOiAwO1xuICAgbGVmdDogMDtcbiAgIHdpZHRoOiAxMDAlO1xuICAgaGVpZ2h0OiAxMDAlO1xufVxuIiwiQG1peGluIGZsZXhlciB7XG4gICBkaXNwbGF5OiBmbGV4O1xuXG4gICAmdyB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICB9XG5cbiAgICZ3ciB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZTtcbiAgIH1cblxuICAgJm53IHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgfVxuXG4gICAmX2Mge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgIH1cblxuICAgJl9jciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICB9XG5cbiAgICZfciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgfVxuXG4gICAmX3JyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgIH1cblxuICAgJi1jIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICB9XG5cbiAgICYtZnMge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICB9XG5cbiAgICYtZmUge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgfVxuXG4gICAmLS1mcyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICB9XG5cbiAgICYtLWZlIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICB9XG5cbiAgICYtLWMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICB9XG5cbiAgICYtLXNiIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgIH1cblxuICAgJi0tc2Ege1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICB9XG59XG4uZiB7XG4gICBAaW5jbHVkZSBmbGV4ZXI7XG59XG5cbi5mbSB7XG4gICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJGJwRG93bikge1xuICAgICAgQGluY2x1ZGUgZmxleGVyO1xuICAgfVxufVxuLmZkIHtcbiAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJwVXApIHtcbiAgICAgIEBpbmNsdWRlIGZsZXhlcjtcbiAgIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiYm9keSxcbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtcHJpbWFyeSwgXCJHVC1XYWxzaGVpbVwiKTtcbn1cblxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICYsXG4gIGxpIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNlY29uZGFyeSwgXCJHVC1XYWxzaGVpbVwiKTtcbn1cbiIsIi5wbGF0ZS0tY29udGFpbmVyIHtcblx0Ly8gbWF4LXdpZHRoOiB1bnNldDtcbn1cblxucGljdHVyZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRzb3VyY2Uge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdH1cbn1cbiIsIi8vIERlZmF1bHRzIHdoZW4gbm8gY2xhc3NlcyBhcmUgYWRkZWQuIENTUyBzcGVjaWZpY2l0eSBtYWtlcyBzdXJlIHRoYXQgdGhlc2UgZGVmYXVsdCBhcmUgb3ZlcndyaXR0ZW4uXG4uc2VjdGlvbiB7XG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnBEb3duKSB7XG5cdFx0cGFkZGluZy10b3A6IG1hcC1nZXQoJHNwYWNlcy1tb2JpbGUsIG0pO1xuXHRcdHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzcGFjZXMtbW9iaWxlLCBtKTtcblx0fVxuXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJwVXApIHtcblx0XHRwYWRkaW5nLXRvcDogbWFwLWdldCgkc3BhY2VzLWRlc2t0b3AsIG0pO1xuXHRcdHBhZGRpbmctYm90dG9tOiBtYXAtZ2V0KCRzcGFjZXMtZGVza3RvcCwgbSk7XG5cdH1cbn1cblxuLy8gQ2xhc3NlcyB0aGF0IGFyZSBzZXQgb24gdGhlIC5zZWN0aW9uIGVsZW1lbnQuXG4vLyBFeGFtcGxlOiAucC10LWQtLTx2YXJpYWJsZT47XG4vLyBFeGFtcGxlOiAucC1iLW0tLTx2YXJpYWJsZT47XG5AZWFjaCAkc3BhY2UsICR1bml0IGluICRzcGFjZXMtbW9iaWxlIHtcblx0Ly8gUGFkZGluZ1xuXHQucCB7XG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicERvd24pIHtcblx0XHRcdC8vIFRvcCBNb2JpbGVcblx0XHRcdCYtdC1tLS0jeyRzcGFjZX0ge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogJHVuaXQ7XG5cdFx0XHR9XG5cdFx0XHQvLyBCb3R0b20gTW9iaWxlXG5cdFx0XHQmLWItbS0tI3skc3BhY2V9IHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206ICR1bml0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuQGVhY2ggJHNwYWNlLCAkdW5pdCBpbiAkc3BhY2VzLWRlc2t0b3Age1xuXHQvLyBQYWRkaW5nXG5cdC5wIHtcblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicFVwKSB7XG5cdFx0XHQvLyBUb3AgRGVza3RvcFxuXHRcdFx0Ji10LWQtLSN7JHNwYWNlfSB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiAkdW5pdDtcblx0XHRcdH1cblx0XHRcdC8vIEJvdHRvbSBEZXNrdG9wXG5cdFx0XHQmLWItZC0tI3skc3BhY2V9IHtcblx0XHRcdFx0cGFkZGluZy1ib3R0b206ICR1bml0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbn1cblxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIGh0bWwge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogYXV0bztcbiAgfVxufVxuXG5waWN0dXJlIHtcbiAgJixcbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHNvdXJjZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi5yZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCJmb3JtIC5pbnB1dF9maWVsZCAuZmlsZSB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgJl9fZHJvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICBib3JkZXI6IDJweCBkb3R0ZWQgI2U2ZTZlNjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMi40cmVtO1xuXG4gICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG5cbiAgICAmLmhhc19maWxlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg2OCwgMjA4LCAxMjQsIDAuNSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgMjUzLCAyNDMsIDAuNSk7XG4gICAgfVxuICB9XG4gIC5maWxlLXBsYWNlaG9sZGVyIHtcbiAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICBncmlkLWFyZWE6IHBsYWNlaG9sZGVyO1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxuICAuZmlsZW5hbWUge1xuICAgIGdyaWQtYXJlYTogbGFiZWw7XG4gICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcbiAgICBjb2xvcjogYmxhY2s7XG4gIH1cbiAgJl9fcmVtb3ZlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJl9fb3ZlcmxheSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBpbnB1dCB7XG4gICAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICAgIGluc2V0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5kcmFnX292ZXIge1xuICAgIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICB9XG5cbiAgLmhhc19maWxlIHtcbiAgICAuZmlsZV9fcmVtb3ZlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG5cbiAgJl9fcmVtb3ZlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxcmVtO1xuICAgIHRvcDogMnJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcyBlYXNlO1xuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi5oYW5kbGVzIHtcbiAgJi1sYWJlbCB7XG4gICAgLmNvbnRhY3RfZm9ybV9fZmllbGRfX2Vycm9yIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxuICB9XG4gICYuaW5wdXRfZmllbGQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxuICAucmFkaW8tY2hlY2sge1xuICAgIG1hcmdpbjogMCAwIDMuMnJlbTtcbiAgfVxuICAmLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDtcbiAgICBnYXA6IDEuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgIHRyYW5zaXRpb246IGdyaWQtdGVtcGxhdGUtcm93cyAwLjNzIGVhc2U7XG4gICAgb3BhY2l0eTogMDtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxZnI7XG4gICAgfVxuICAgICYtaW5uZXIge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdhcDogMS41cmVtO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnBVcCkge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5pbnB1dF9maWVsZCB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICAgIC5oYW5kbGUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggYmxhY2s7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwaWN0dXJlIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLXRpdGxlIHtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnMgZWFzZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICBib3JkZXItdG9wOiBzb2xpZCBibGFjayAxcHg7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmLmFjdGl2ZSxcbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuaGFuZGxlLXRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLm1lc3NhZ2Uge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlLW91dDtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCg5MGRlZykgc2NhbGVZKDApO1xuXG4gICAgcCB7XG4gICAgICBwYWRkaW5nOiAxLjJyZW0gMS42cmVtO1xuICAgIH1cbiAgfVxuICAmLmZvcmdvdHRlbiB7XG4gICAgLm1lc3NhZ2VfX2ZvcmdvdHRlbiB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDBkZWcpIHNjYWxlWSgxKTtcbiAgICB9XG4gIH1cbiAgJi5lcnJvciB7XG4gICAgLm1lc3NhZ2VfX2Vycm9yIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZykgc2NhbGVZKDEpO1xuICAgIH1cbiAgfVxuICAmLnN1Y2Nlc3Mge1xuICAgIC5tZXNzYWdlX19zdWNjZXNzIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZVgoMGRlZykgc2NhbGVZKDEpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdoZW4gbm8gbm90aWZpY2F0aW9uIGlzIHNob3duLCB0aGUgbm90aWZpY2F0aW9uIGlzIGFic29sdXRlbHkgcG9zaXRpb25lZCwgc28gaXQgZG9lc24ndCBhZmZlY3QgdGhlIGxheW91dDtcbiAgJjpub3QoLmZvcmdvdHRlbik6bm90KC5lcnJvcik6bm90KC5zdWNjZXNzKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cbiAgLm1lc3NhZ2VfX3N1Y2Nlc3Mge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg2OCwgMjA4LCAxMjQsIDEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM2LCAyNTMsIDI0MywgMSk7XG4gIH1cbiAgLm1lc3NhZ2VfX2ZvcmdvdHRlbixcbiAgLm1lc3NhZ2VfX2Vycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCA4NCwgODQsIDEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNDAsIDI0MCwgMSk7XG4gIH1cbn1cbiIsIi5xdW90YXRpb24tc3RlcC13cmFwcGVyIHtcbiAgLnF1b3RhdGlvbi1zdGVwcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuICAucXVvdGF0aW9uLWZpZWxkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IDAgMnJlbTtcbiAgICBtYXJnaW46IDAgMCA0cmVtO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIH1cbiAgICAuZmllbGQtd3JhcHBlciB7XG4gICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBwYWRkaW5nOiAyMHB4IDAgMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgJi5oYWxmIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgICAgICAgIGdyaWQtY29sdW1uOiBzcGFuIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmlucHV0X2ZpZWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICYuY29sb3Ige1xuICAgICAgICAub3duLWNvbG9yLXdyYXBwZXIge1xuICAgICAgICAgIG1hcmdpbjogMnJlbSAwIDA7XG4gICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDBmcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBncmlkLXRlbXBsYXRlLXJvd3MgMC4zcyBlYXNlO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAuZmllbGQtd3JhcHBlciB7XG4gICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnF1b3RhdGlvbi1zdGVwIHtcbiAgICAmLWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogMGZyO1xuICAgICAgdHJhbnNpdGlvbjogZ3JpZC10ZW1wbGF0ZS1yb3dzIDAuM3MgZWFzZTtcbiAgICAgICYtd3JhcHBlciB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IHBhZGRpbmcgMC4zcyBlYXNlO1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICAgICAgLnF1b3RhdGlvbi1zdGVwLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgcGFkZGluZzogNXJlbSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAucHJldmlldy1maWVsZHMge1xuICAgICAgICBtYXJnaW46IDAgMCA0cmVtO1xuICAgICAgICAucHJldmlldy1zdGVwIHtcbiAgICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgICAgcGFkZGluZzogMi41cmVtIDA7XG4gICAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgfVxuICAgICAgICAgICZfX2ZpZWxkcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnByZXZpZXctZmllbGQge1xuICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxLjVyZW07XG4gICAgICAgICAgICAgICZfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYtdGl0bGUge1xuICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0cmFuc2l0aW9uOlxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZSxcbiAgICAgICAgY29sb3IgMC4zcyBlYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDJweCB3aGl0ZTtcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMnB4IGJsYWNrO1xuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgJi1uYXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZ2FwOiAxMHB4O1xuICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgIH1cbiAgfVxuICAuY29udGFjdF9mb3JtX19maWVsZF9fZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogcmVkO1xuICAgIG1hcmdpbjogNXB4IDAgMDtcbiAgfVxuICBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgfVxuICAuc3VibWl0X2J1dHRvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/
