@charset "UTF-8";
/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

.langmenu__option:not(.active), .langmenu__option + .langmenu__option:before, .block ul li,
.block ol li, .accordon--simple .accordon__header, .textbox__event_location,
.textbox__event_date, .textbox > span, .footer__menu--secondary, p, .footer__colophon p, .block ul li a.link,
.block ol li a.link, .breadcrumbs__container .breadcrumbs ul, .extnav a, h5,
h6, h4, article p a.link {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
.listings__heading h2, h1,
.h1 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.accordon--simple .accordon__item.is-active .accordon__header, .branding .site-name, .footer__menu, .listmenu > ul > li .menu-heading-wrap > a, h2,
.h2 {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__heading, .block ul li a.link.link--large,
.block ol li a.link.link--large, .accordon .accordon__item .accordon__header, .searchbar input, h3,
.h3, article p a.link.link--large {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__colophon p, .block ul li a.link,
.block ol li a.link, .breadcrumbs__container .breadcrumbs ul, .extnav a, h5,
h6, h4, article p a.link {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

.footer__menu--secondary, body {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

.block ul li,
.block ol li, .accordon--simple .accordon__header, .textbox__event_location,
.textbox__event_date, .textbox > span, .footer__menu--secondary, p {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

:root {
  /*Max width*/
  --max-width: 1400px;
  /*Spacers*/
  --space200h: 14.285714285714286vw;
  --space100h: 7.142857142857143vw;
  --space50h: 3.571428571428571vw;
  --space25h: 1.563rem;
  --space15h: 1rem;
}

@media only screen and (min-width: 1400px) {
  :root {
    --space200h: calc(var(--max-width)/7);
    --space100h: calc(var(--max-width)/14);
    --space50h: calc(var(--max-width)/28);
  }
}
/*! critical:start! */
html {
  overflow-x: hidden;
}

body {
  font-family: "Ra-Harald", Arial, sans-serif;
  background-color: #eeeee7;
}

* {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: none;
}

strong {
  font-family: "Ra-Harald-Semibold", Arial, sans-serif;
  font-weight: 600;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  hyphens: auto;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

small {
  font-size: 0.8rem;
}

.icon {
  width: 1em;
  height: 1em;
  font-size: 25px;
}
@media (max-width: 767px) {
  .icon {
    font-size: 21px;
  }
}

.icon--arrow {
  font-size: 15px;
}
@media (max-width: 767px) {
  .icon--arrow {
    font-size: 11px;
  }
}

.icon--search {
  font-size: 20px;
}
@media (max-width: 767px) {
  .icon--search {
    font-size: 15px;
  }
}

.spacerH100 {
  height: var(--space100h);
}

.spacerH50 {
  height: var(--space50h);
}

.spacerH25 {
  height: var(--space25h);
}

.spacerH15 {
  height: var(--space15h);
}

.spacerW100 {
  width: var(--space100h);
}

.spacerW15 {
  width: var(--space15h);
}

body {
  color: #302a38;
  margin: 0;
}

main[role=main] {
  position: relative;
  background-color: inherit;
  max-width: var(--max-width);
  margin-top: var(--space25h);
  margin-left: auto;
  margin-right: auto;
}
main[role=main] .navigation {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2;
}

article .table {
  color: inherit;
  margin-top: var(--space25h);
  margin-bottom: var(--space25h);
}
article .table:first-child {
  margin-top: 0;
}
article .table + * {
  margin-top: var(--space25h);
}
@media (max-width: 767px) {
  article .table {
    width: 100%;
    overflow-x: auto;
  }
  article .table > .table__wrap {
    min-width: 100%;
    width: 400px;
  }
}
article p a {
  position: relative;
  transition: all 0.5s;
  text-decoration: underline;
}
article p a:hover {
  color: #302a38;
}
.palette--5 article p a:hover,
.palette--6 article p a:hover {
  color: #ceceba;
}
.palette--5 svg,
.palette--6 svg {
  color: #eeeee7;
}

p img {
  width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}
a:focus, a:active {
  text-decoration: underline;
}

ul {
  padding-left: 0;
  list-style: none;
}

.mce-content-body ul {
  list-style-type: disc !important;
  padding-left: 20px !important;
}
.mce-content-body ol {
  list-style-type: decimal !important;
  padding-left: 20px !important;
}
.mce-content-body a {
  text-decoration: underline;
}

ul.ul--hyphened li {
  padding-left: var(--space25h);
  position: relative;
}
ul.ul--hyphened li:before {
  content: "–";
  display: inline-block;
  position: absolute;
  top: 0px;
  left: 0px;
}

picture {
  display: block;
}
picture img {
  max-width: 100%;
  height: auto;
}

figure {
  margin: 0;
  padding: 0;
}

button {
  background: none;
  border: none;
  border-radius: 0;
  cursor: pointer;
}

input[type=search] {
  border: none;
  padding-left: 0;
  font-family: inherit;
  color: inherit;
  font-weight: 600;
  letter-spacing: -1px;
  background-color: inherit;
  /* clears the ‘X’ from Internet Explorer */
  /* clears the ‘X’ from Chrome */
}
input[type=search]:focus {
  border: none;
  outline: none;
}
input[type=search]::placeholder {
  color: inherit;
}
input[type=search]::-ms-clear {
  display: none;
  width: 0;
  height: 0;
}
input[type=search]::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}
input[type=search]::-webkit-search-decoration, input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-results-button, input[type=search]::-webkit-search-results-decoration {
  display: none;
}

.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.extra {
  /* This will be retained */
  position: relative;
  display: none;
}

/* EXTRA CLASSES */
.swatches {
  list-style: none;
  padding: 0;
}

.swatches__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 6em;
  width: 6em;
  color: white;
}

.borderline1 {
  border-bottom: 2px solid #302a38;
}

.borderline2 {
  border-bottom: 2px solid rgba(48, 42, 56, 0.2);
}

.borderline3 {
  border-bottom: 2px solid rgba(48, 42, 56, 0.05);
}

.color--black {
  background-color: #000000;
}

.color--dark {
  background-color: #302a38;
}

.color--dark-alt {
  background-color: #757177;
}

.color--light {
  background-color: #eeeee7;
}

.color--yellow {
  background-color: #f4bd2c;
}

.color--green {
  background-color: #47bf80;
}

.color--red {
  background-color: #f16e4b;
}

.color--blue {
  background-color: #78bee7;
}

.color--red-alt {
  background-color: #69271f;
}

.color--blue-alt {
  background-color: #18598a;
}

.palette {
  background-color: inherit;
}
.palette.palette--1 {
  background-color: #f4bd2c;
  color: #302a38;
}
.palette.palette--1 ul li,
.palette.palette--1 ol li,
.palette.palette--1 p,
.palette.palette--1 h3 {
  color: #302a38;
}
.palette.palette--2 {
  background-color: #47bf80;
  color: #302a38;
}
.palette.palette--2 ul li,
.palette.palette--2 ol li,
.palette.palette--2 p,
.palette.palette--2 h3 {
  color: #302a38;
}
.palette.palette--3 {
  background-color: #f16e4b;
  color: #302a38;
}
.palette.palette--3 ul li,
.palette.palette--3 ol li,
.palette.palette--3 p,
.palette.palette--3 h3 {
  color: #302a38;
}
.palette.palette--4 {
  background-color: #78bee7;
  color: #302a38;
}
.palette.palette--4 ul li,
.palette.palette--4 ol li,
.palette.palette--4 p,
.palette.palette--4 h3 {
  color: #302a38;
}
.palette.palette--5 {
  background-color: #69271f;
  color: #eeeee7;
}
.palette.palette--5 ul li,
.palette.palette--5 ol li,
.palette.palette--5 p,
.palette.palette--5 h3 {
  color: #eeeee7;
}
.palette.palette--6 {
  background-color: #18598a;
  color: #eeeee7;
}
.palette.palette--6 ul li,
.palette.palette--6 ol li,
.palette.palette--6 p,
.palette.palette--6 h3 {
  color: #eeeee7;
}

.palette.palette--1 ul li,
.palette.palette--1 ol li,
.palette.palette--1 p, .palette.palette--2 ul li,
.palette.palette--2 ol li,
.palette.palette--2 p, .palette.palette--3 ul li,
.palette.palette--3 ol li,
.palette.palette--3 p, .palette.palette--4 ul li,
.palette.palette--4 ol li,
.palette.palette--4 p, .palette.palette--5 ul li,
.palette.palette--5 ol li,
.palette.palette--5 p, .palette.palette--6 ul li,
.palette.palette--6 ol li,
.palette.palette--6 p {
  opacity: 1;
}

/**
* CONTENT AREA
**/
.content {
  min-height: 14.2857142857vw;
}
@media (max-width: 767px) {
  .content {
    min-height: 28.5714285714vw;
  }
}

.print_page_link {
  margin-top: 15px !important;
  cursor: pointer;
}

/*! critical:end */
/**
* VENDORS
**/
/*!
 * Accordion v3.1.1
 * Simple accordion created in pure Javascript.
 * https://github.com/michu2k/Accordion
 *
 * Copyright (c) Michał Strumpf
 * Published under MIT License
 */
/* Note: renamed to .accordion to avoid conflicts */
.accordon__item {
  box-sizing: border-box;
}
.accordon__item .accordon__header {
  margin: 0;
  padding: 0;
}
.accordon__item .accordon__trigger {
  color: #302a38;
  text-align: left;
  width: 100%;
  padding: 10px 30px 10px 10px;
  display: block;
  cursor: pointer;
  background-color: transparent;
  transition: color 0.25s ease;
  position: relative;
  text-decoration: none;
  margin: 0;
  border: 0;
}
.accordon__item .accordon__trigger span {
  opacity: 1 !important;
}
.accordon__item .accordon__panel {
  overflow: hidden;
  transition-property: height, visibility;
  transition-timing-function: ease;
}
.accordon__item .accordon__panel .accordon__text {
  color: #302a38;
  padding: 10px;
  margin: 0;
}
.accordon__item.js-enabled .accordon__panel {
  visibility: hidden;
}
.accordon__item.is-active .accordon__panel {
  visibility: visible;
}
.accordon__item.is-active > .accordon__header .accordon__trigger::after {
  content: "–";
}

.ss-main {
  position: relative;
  display: inline-block;
  user-select: none;
  color: #666666;
  width: 100%;
}
.ss-main .ss-single-selected {
  display: flex;
  cursor: pointer;
  width: 100%;
  height: 30px;
  padding: 6px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #ffffff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}
.ss-main .ss-single-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}
.ss-main .ss-single-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}
.ss-main .ss-single-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}
.ss-main .ss-single-selected .placeholder {
  display: flex;
  flex: 1 1 100%;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  width: calc(100% - 30px);
  line-height: 1em;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.ss-main .ss-single-selected .placeholder * {
  display: flex;
  align-items: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: auto;
}
.ss-main .ss-single-selected .placeholder .ss-disabled {
  color: #dedede;
}
.ss-main .ss-single-selected .ss-deselect {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
  font-weight: bold;
}
.ss-main .ss-single-selected .ss-deselect.ss-hide {
  display: none;
}
.ss-main .ss-single-selected .ss-arrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 1 auto;
  margin: 0 6px 0 6px;
}
.ss-main .ss-single-selected .ss-arrow span {
  border: solid #666666;
  border-width: 0 2px 2px 0;
  display: inline-block;
  padding: 3px;
  transition: transform 0.2s, margin 0.2s;
}
.ss-main .ss-single-selected .ss-arrow span.arrow-up {
  transform: rotate(-135deg);
  margin: 3px 0 0 0;
}
.ss-main .ss-single-selected .ss-arrow span.arrow-down {
  transform: rotate(45deg);
  margin: -3px 0 0 0;
}
.ss-main .ss-multi-selected {
  display: flex;
  flex-direction: row;
  cursor: pointer;
  min-height: 30px;
  width: 100%;
  padding: 0 0 0 3px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #ffffff;
  outline: 0;
  box-sizing: border-box;
  transition: background-color 0.2s;
}
.ss-main .ss-multi-selected.ss-disabled {
  background-color: #dcdee2;
  cursor: not-allowed;
}
.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled {
  color: #666666;
}
.ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete {
  cursor: not-allowed;
}
.ss-main .ss-multi-selected.ss-open-above {
  border-top-left-radius: 0px;
  border-top-right-radius: 0px;
}
.ss-main .ss-multi-selected.ss-open-below {
  border-bottom-left-radius: 0px;
  border-bottom-right-radius: 0px;
}
.ss-main .ss-multi-selected .ss-values {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  flex: 1 1 100%;
  width: calc(100% - 30px);
}
.ss-main .ss-multi-selected .ss-values .ss-disabled {
  display: flex;
  padding: 4px 5px;
  margin: 2px 0px;
  line-height: 1em;
  align-items: center;
  width: 100%;
  color: #dedede;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@keyframes scaleIn {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes scaleOut {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0);
    opacity: 0;
  }
}
.ss-main .ss-multi-selected .ss-values .ss-value {
  display: flex;
  user-select: none;
  align-items: center;
  font-size: 12px;
  padding: 3px 5px;
  margin: 3px 5px 3px 0px;
  color: #ffffff;
  background-color: #5897fb;
  border-radius: 4px;
  animation-name: scaleIn;
  animation-duration: 0.2s;
  animation-timing-function: ease-out;
  animation-fill-mode: both;
}
.ss-main .ss-multi-selected .ss-values .ss-value.ss-out {
  animation-name: scaleOut;
  animation-duration: 0.2s;
  animation-timing-function: ease-out;
}
.ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete {
  margin: 0 0 0 5px;
  cursor: pointer;
}
.ss-main .ss-multi-selected .ss-add {
  display: flex;
  flex: 0 1 3px;
  margin: 9px 12px 0 5px;
}
.ss-main .ss-multi-selected .ss-add .ss-plus {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #666666;
  position: relative;
  height: 10px;
  width: 2px;
  transition: transform 0.2s;
}
.ss-main .ss-multi-selected .ss-add .ss-plus:after {
  background: #666666;
  content: "";
  position: absolute;
  height: 2px;
  width: 10px;
  left: -4px;
  top: 4px;
}
.ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross {
  transform: rotate(45deg);
}

.ss-content {
  position: absolute;
  width: 100%;
  margin: -1px 0 0 0;
  box-sizing: border-box;
  border: solid 1px #dcdee2;
  z-index: 1010;
  background-color: #ffffff;
  transform-origin: center top;
  transition: transform 0.2s, opacity 0.2s;
  opacity: 0;
  transform: scaleY(0);
}
.ss-content.ss-open {
  display: block;
  opacity: 1;
  transform: scaleY(1);
}
.ss-content .ss-search {
  display: flex;
  flex-direction: row;
  padding: 8px 8px 6px 8px;
}
.ss-content .ss-search.ss-hide {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}
.ss-content .ss-search.ss-hide input {
  height: 0px;
  opacity: 0;
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}
.ss-content .ss-search input {
  display: inline-flex;
  font-size: inherit;
  line-height: inherit;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0px;
  height: 30px;
  padding: 6px 8px;
  margin: 0;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  background-color: #ffffff;
  outline: 0;
  text-align: left;
  box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -webkit-appearance: textfield;
}
.ss-content .ss-search input::placeholder {
  color: #8a8a8a;
  vertical-align: middle;
}
.ss-content .ss-search input:focus {
  box-shadow: 0 0 5px #5897fb;
}
.ss-content .ss-search .ss-addable {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  font-size: 22px;
  font-weight: bold;
  flex: 0 0 30px;
  height: 30px;
  margin: 0 0 0 8px;
  border: 1px solid #dcdee2;
  border-radius: 4px;
  box-sizing: border-box;
}
.ss-content .ss-addable {
  padding-top: 0px;
}
.ss-content .ss-list {
  max-height: 200px;
  overflow-x: hidden;
  overflow-y: auto;
  text-align: left;
}
.ss-content .ss-list .ss-optgroup .ss-optgroup-label {
  padding: 6px 10px 6px 10px;
  font-weight: bold;
}
.ss-content .ss-list .ss-optgroup .ss-option {
  padding: 6px 6px 6px 25px;
}
.ss-content .ss-list .ss-optgroup-label-selectable {
  cursor: pointer;
}
.ss-content .ss-list .ss-optgroup-label-selectable:hover {
  color: #ffffff;
  background-color: #5897fb;
}
.ss-content .ss-list .ss-option {
  padding: 6px 10px 6px 10px;
  cursor: pointer;
  user-select: none;
}
.ss-content .ss-list .ss-option * {
  display: inline-block;
}
.ss-content .ss-list .ss-option:hover, .ss-content .ss-list .ss-option.ss-highlighted {
  color: #ffffff;
  background-color: #5897fb;
}
.ss-content .ss-list .ss-option.ss-disabled {
  cursor: not-allowed;
  color: #dedede;
  background-color: #ffffff;
}
.ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected {
  color: #666666;
  background-color: rgba(88, 151, 251, 0.1);
}
.ss-content .ss-list .ss-option.ss-hide {
  display: none;
}
.ss-content .ss-list .ss-option .ss-search-highlight {
  background-color: #fffb8c;
}

/** OVERRIDES **/
.ss-main {
  color: inherit;
}
.ss-main .ss-single-selected {
  border: 0;
  border-radius: 0;
  padding-left: 0px;
  padding-right: 0px;
  padding-bottom: 14px;
  height: auto;
}
.ss-main .ss-single-selected:not(.ss-open-below) {
  border-bottom: 2px solid currentColor;
}
.ss-main .ss-single-selected .placeholder {
  font-weight: bold;
}
.ss-main .ss-single-selected .ss-arrow span {
  padding: 4px;
}

.ss-content {
  border: 0;
  border-radius: 0;
  border-bottom: 2px solid currentColor;
}
.ss-content .ss-list .ss-option {
  padding-left: 0px;
  padding-right: 0px;
}
.ss-content .ss-list .ss-option:last-child {
  margin-bottom: 14px;
}

/**
* COMPONENTS
**/
.icon.icon--bars {
  width: auto;
  height: auto;
}

button:hover .icon--hoverfx.icon--arrow line {
  transform: scaleX(1.5);
}
button:hover .icon--hoverfx.icon--arrow path {
  transform: translateX(10px);
}
.icon--hoverfx.icon--arrow line {
  transition: transform 0.5s;
  transform: scaleX(1);
}
.icon--hoverfx.icon--arrow path {
  transition: transform 0.5s;
  transform: translateX(0);
}

.content-wrapper div.print-page,
.content-wrapper span.print-page {
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  display: flex;
  justify-content: right;
  cursor: pointer;
}
@media (max-width: 767px) {
  .content-wrapper div.print-page,
.content-wrapper span.print-page {
    padding-left: 0;
  }
}

.site-footer span.print-page {
  max-width: var(--max-width);
  margin-left: var(--space100h);
  margin-right: var(--space100h);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  cursor: pointer;
}
@media (max-width: 767px) {
  .site-footer span.print-page {
    padding-left: 0;
    padding-right: 0;
  }
}

[role=menuitem] {
  text-decoration: none;
  color: inherit;
}

.navigations {
  position: sticky;
  top: var(--space25h);
  left: 0;
  width: 21.4285714286%;
  z-index: 42;
  height: 0;
}
.navigations .sticky {
  top: var(--space25h);
}
.navigations.content__navigations {
  transition: opacity 0.25s;
  background-color: #eeeee7;
}
.navigations.content__navigations.fade-out {
  animation: kf-fade 0.25s forwards;
}
.navigations.content__navigations.fade-in {
  opacity: 1;
}
.navigations.content__navigations.hidden {
  opacity: 0;
  visibility: hidden;
}
@keyframes kf-fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 767px) {
  .navigations {
    position: relative;
    width: 100%;
    z-index: 50;
    height: auto;
  }
}

.listmenu > ul {
  margin: 0;
  display: flex;
}
.listmenu > ul > li {
  width: 50%;
  flex-grow: 1;
}
.listmenu > ul > li .menu-heading-wrap > h2 {
  margin: 0;
}
.listmenu > ul > li .menu-heading-wrap > a {
  font-size: 1.25rem !important;
}
.listmenu > ul > li ul {
  margin-top: var(--space15h);
}
.listmenu > ul > li ul li + li {
  margin-top: 10px;
}
@media (max-width: 767px) {
  .listmenu > ul {
    flex-direction: column;
  }
  .listmenu > ul > li {
    width: 100%;
  }
  .listmenu > ul > li + li {
    margin-top: var(--space50h);
  }
}

.footer__menu {
  font-size: 1.563rem;
}
.footer__menu ul {
  margin: 0;
}

.footer__menu--secondary {
  font-weight: normal;
}
.footer__menu--secondary a {
  font-size: inherit;
}
.footer__menu--secondary li + li {
  margin-top: 0.5em;
}

@media (max-width: 767px) {
  .servicemenu .servicemenu__item + .servicemenu__item {
    margin-top: 27px;
  }
}

.extnav h4 {
  margin: 0;
  opacity: 1;
}
.extnav ul {
  margin: 0;
}
.extnav a {
  font-size: 0.8rem !important;
}

.langmenu {
  display: flex;
}

.langmenu__option {
  text-transform: uppercase;
  font-size: 10px;
  line-height: 12px;
  font-weight: 600;
  color: inherit;
}
.langmenu__option + .langmenu__option {
  margin-left: 5px;
}
.langmenu__option + .langmenu__option:before {
  content: "/";
  display: inline-block;
  margin-right: 5px;
}
.langmenu__option:not(.active) {
  cursor: pointer;
}

.toc {
  display: flex;
  width: 100%;
  background-color: #eeeee7;
}
@media all and (width: 768px) {
  .toc {
    width: 100%;
    max-width: 210px !important;
  }
}
.toc ul {
  padding: 0;
  width: 100%;
}
@media (max-width: 767px) {
  .toc {
    width: 100%;
    top: 0;
    left: 0;
    z-index: 300;
    background-color: #eeeee7;
  }
  .toc ul {
    display: block;
    width: 100%;
    white-space: nowrap;
    overflow-x: auto;
    margin: 0;
    padding-top: var(--space25h);
    padding-bottom: var(--space25h);
  }
  .toc ul:before {
    content: "";
    display: inline-block;
    width: 14.2857142857vw;
    margin-right: -4px;
  }
}

@media all and (width: 768px) {
  .toc__item {
    padding-left: 54px !important;
  }
}
.toc__item button {
  padding: 0;
  text-align: left;
}
.toc__item button:focus {
  background: #eeeee7;
}
@media (max-width: 767px) {
  .toc__item {
    margin-right: var(--space50h);
    display: inline-block;
    position: relative;
  }
  .toc__item:last-child {
    padding-right: 0;
  }
  .toc__item:before {
    display: none;
  }
  .toc__item:after {
    content: "";
    position: absolute;
    height: 2px;
    bottom: -6px;
    left: 0;
    opacity: 0;
    transform: translateX(-15px);
    width: var(--space50h);
    transition: all 0.35s ease-in;
  }
  .toc__item.toc__item--active * {
    font-family: "Ra-Harald-Semibold", Arial, sans-serif;
    font-weight: 600;
  }
  .toc__item.toc__item--active:after {
    background-color: currentColor;
    transform: translateX(0);
    opacity: 0.9;
  }
}
@media (min-width: 768px) {
  .toc__item {
    padding-left: 33.3333333333%;
    position: relative;
  }
  .toc__item:before {
    content: "";
    display: block;
    width: 26px;
    position: absolute;
    height: 2px;
    top: 0.5em;
    left: calc(33% - 50px);
    background-color: currentColor;
    opacity: 0;
    transform: translateX(-100%);
    transition: all 0.35s ease-in;
  }
  .toc__item.toc__item--active:before {
    opacity: 1;
    transform: translateX(0px);
  }
  .toc__item + .toc__item {
    margin-top: 0.5em;
  }
}

.breadcrumbs__container {
  margin-top: var(--space50h);
  margin-left: var(--space50h);
  display: flex;
  align-items: center;
}
.breadcrumbs__container--back {
  width: 16.6666666667%;
}
.breadcrumbs__container .breadcrumbs {
  padding-left: var(--space50h);
  width: var(--space200h);
}
.breadcrumbs__container .breadcrumbs ul {
  display: flex;
  flex-direction: column;
  margin-top: 0;
  padding-bottom: var(--space15h);
  font-size: 0.8rem !important;
}
@media (max-width: 767px) {
  .breadcrumbs__container .breadcrumbs {
    padding: 0 !important;
    width: calc(100% - var(--space100h));
  }
  .breadcrumbs__container .breadcrumbs ul {
    margin: 0;
    flex-direction: row;
    overflow-x: auto;
    padding: 0;
    display: flex;
    width: 100%;
    padding-right: var(--space50h);
  }
  .breadcrumbs__container .breadcrumbs ul li a {
    text-wrap: nowrap;
  }
}
.breadcrumbs__container .breadcrumbs__item {
  min-height: 24px;
  display: flex;
  align-items: center;
}
.breadcrumbs__container .breadcrumbs__item a {
  padding-top: 6px;
  padding-bottom: 6px;
  margin-bottom: 2px;
}
.breadcrumbs__container .breadcrumbs__item + .breadcrumbs__item a {
  padding-top: 6px;
  padding-bottom: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  display: block;
  margin-bottom: 2px;
}
.breadcrumbs__container .breadcrumbs__item + .breadcrumbs__item a:before {
  content: "/";
  margin-right: 0.5em;
}
.breadcrumbs__container .breadcrumbs__item:last-child a {
  pointer-events: none;
}
@media (max-width: 767px) {
  .breadcrumbs__container .breadcrumbs__item {
    margin-right: var(--space25h);
  }
  .breadcrumbs__container .breadcrumbs__item:last-child {
    margin-right: 0;
  }
}
@media (max-width: 767px) {
  .breadcrumbs__container .breadcrumbs__item:first-child {
    margin-left: var(--space25h);
  }
}

.branding {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  max-height: 50px;
  /*   .btn {
    width: math.percentage(math.div(4, 6));
  } */
  /*   @include media(">=tablet") {
    .icon--logo {
      transform: translate(0%, -45%);
    }
  } */
}
.branding .logo {
  width: 33.3333333333%;
}
.branding .site-name {
  width: 66.6666666667%;
  font-size: 1.25rem;
}
.branding .site-name .site-name-icon {
  width: 25%;
  transform: translate(0%, 45%);
}
@media (max-width: 767px) {
  .branding {
    /*     .icon--logo {
      transform: translate(0px, -60%);
    } */
  }
  .branding .logo {
    width: 25%;
  }
  .branding .btn {
    width: 75%;
  }
  .branding .site-name {
    width: 75%;
  }
  .branding .site-name .site-name-icon {
    width: 33.3333333333%;
    transform: translate(20%, 40%);
  }
}

[role=link],
[role=button] {
  color: inherit;
  text-decoration: none;
  padding: 0;
}

button {
  outline: none;
  font-family: inherit;
  font-size: inherit;
}
button:focus-visible {
  outline: 1px auto #000;
}

.link-button a {
  text-decoration: none;
  padding: 5px;
  border: 2px solid #302a38;
  color: #302a38;
  line-height: 1.5;
  display: flex;
}
.link-button a::after {
  padding-left: 15px;
  content: "";
  display: inline-flex;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNiAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTcuODUxODEgMUwxMy45OTk5IDcuMTQ4MUw4LjE0MTM4IDEzLjAwNjYiIHN0cm9rZT0iIzMwMkEzOCIgc3Ryb2tlLXdpZHRoPSIyIi8+CjxsaW5lIHgxPSIxNCIgeTE9IjcuMTQ4MTkiIHgyPSItOC43NDIyOGUtMDgiIHkyPSI3LjE0ODE5IiBzdHJva2U9IiMzMDJBMzgiIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4K");
  width: 16px;
  height: 100%;
  background-position: center right;
  background-repeat: no-repeat;
  background-size: auto;
}
@media all and (max-width: 1400px) {
  .link-button a::after {
    display: none;
  }
}
@media (max-width: 767px) {
  .link-button a::after {
    padding-left: 10px;
  }
}

.palette--5 .link-button a,
.palette--6 .link-button a {
  border: 2px solid #eeeee7;
  color: #eeeee7 !important;
}
.palette--5 .link-button a::after,
.palette--6 .link-button a::after {
  filter: invert(1);
}
.palette--5 svg.icon path,
.palette--6 svg.icon path {
  stroke: #eeeee7 !important;
}

.btn {
  color: inherit;
}

.menu__item {
  text-decoration: none;
  display: inline-flex;
  flex-direction: column;
  /* arrow icon with hover animation */
}
.menu__item span {
  font-weight: 600;
  font-family: "Ra-Harald-Semibold", Arial, sans-serif;
}
.menu__item .icon--arrow {
  overflow: visible;
  width: 1em;
  height: 1em;
  margin-top: 0.5em;
}
.menu__item .icon--arrow line,
.menu__item .icon--arrow path {
  transition: transform 0.5s;
}
.menu__item .icon--arrow line {
  transform: scaleX(1);
}
.menu__item .icon--arrow path {
  transform: translateX(0);
}
.menu__item:hover .icon--arrow line {
  transform: scaleX(1.5);
}
.menu__item:hover .icon--arrow path {
  transform: translateX(50%);
}
.menu__item.menu__item--active:after {
  content: "";
  width: 100%;
  height: 1em;
  border-bottom: 2px solid #302a38;
}
@media (max-width: 767px) {
  .menu__item {
    flex-direction: row;
    justify-content: space-between;
  }
  .menu__item.menu__item--active:after {
    display: none;
  }
}

@keyframes bar1 {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(5px);
  }
  100% {
    transform: rotate(-45deg) translate(-1.5px, 3px);
  }
}
@keyframes bar2 {
  0% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
    opacity: 0;
  }
}
@keyframes bar3 {
  0% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
    opacity: 0;
  }
}
@keyframes bar4 {
  0% {
    transform: translateX(0px);
  }
  50% {
    transform: translateX(-5px);
  }
  100% {
    transform: rotate(45deg) translate(-4px, -8px);
  }
}
@keyframes bar1-out {
  0% {
    transform: rotate(-45deg) translate(-2px, 4px);
  }
  50% {
    transform: translateX(5px);
  }
  100% {
    transform: translateX(0px);
  }
}
@keyframes bar2-out {
  0% {
    transform: scaleX(0);
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    opacity: 1;
  }
}
@keyframes bar3-out {
  0% {
    transform: scaleX(0);
    opacity: 0;
  }
  100% {
    transform: scaleX(1);
    opacity: 1;
  }
}
@keyframes bar4-out {
  0% {
    transform: rotate(45deg) translate(-4px, -8px);
  }
  50% {
    transform: translateX(-5px);
  }
  100% {
    transform: translateX(0px);
  }
}
.btn--burger {
  border: none;
  outline: none;
  background: none;
  max-width: max-content;
  display: block;
  color: inherit;
  cursor: pointer;
}
.btn--burger .icon {
  display: block;
  position: relative;
  transition: all 0.5s;
  transform: rotate(0deg);
  pointer-events: none;
  color: inherit;
  fill: currentColor;
}
.btn--burger .icon .icon__path {
  position: relative;
}
.btn--burger .icon .icon__path.icon__path--2, .btn--burger .icon .icon__path.icon__path--3 {
  transform-origin: center;
}

@media (pointer : coarse) {
  .btn--burger.active .icon {
    transform: rotate(90deg);
  }
  .btn--burger.active .icon__path--1 {
    animation: ease 1s bar1 forwards;
  }
  .btn--burger.active .icon__path--2 {
    animation: ease 1s bar2 forwards;
  }
  .btn--burger.active .icon__path--3 {
    animation: ease 1s bar3 forwards;
  }
  .btn--burger.active .icon__path--4 {
    animation: ease 1s bar4 forwards;
  }
  .btn--burger.active .icon__path {
    animation-delay: 0.5s;
  }
  .btn--burger.deactivating .icon .icon__path--1 {
    animation: ease 1s bar1-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--2 {
    animation: ease 1s bar2-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--3 {
    animation: ease 1s bar3-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--4 {
    animation: ease 1s bar4-out backwards;
  }
}
@media (pointer : fine) {
  .btn--burger:hover .icon {
    transform: rotate(90deg);
  }
  .btn--burger.active .icon {
    transform: rotate(90deg);
  }
  .btn--burger.active .icon__path--1 {
    animation: ease 1s bar1 forwards;
  }
  .btn--burger.active .icon__path--2 {
    animation: ease 1s bar2 forwards;
  }
  .btn--burger.active .icon__path--3 {
    animation: ease 1s bar3 forwards;
  }
  .btn--burger.active .icon__path--4 {
    animation: ease 1s bar4 forwards;
  }
  .btn--burger.deactivating .icon .icon__path--1 {
    animation: ease 1s bar1-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--2 {
    animation: ease 1s bar2-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--3 {
    animation: ease 1s bar3-out backwards;
  }
  .btn--burger.deactivating .icon .icon__path--4 {
    animation: ease 1s bar4-out backwards;
  }
}
/*
.btn--burger {
  .icon {
    transform-origin: center;
    transform: rotate(0deg);
    transition: transform 0.5s;
  }
  &:hover {
    .icon {
      transform: rotate(90deg);
    }
  }
}
*/
.searchbar {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 34px;
  line-height: 25px;
  letter-spacing: -0.04em;
  font-weight: 600;
  border-bottom: 2px solid #302a38;
}
.searchbar :focus-within {
  background-color: #eeeee7;
}
.searchbar input {
  flex-grow: 1;
  width: 100%;
  color: #302a38;
  font-weight: 600;
  font-size: 1rem !important;
}
.searchbar.searchbar--small {
  font-size: 17px;
  line-height: 1;
  align-items: flex-start;
}
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .searchbar.searchbar--small input {
    font-size: 1.3vw !important;
  }
}
@media (max-width: 767px) {
  .searchbar {
    font-size: 16px;
    line-height: 18px;
  }
  .searchbar.searchbar--external {
    font-size: 13px;
    line-height: 16px;
  }
}
@media (min-width: 1400px) {
  .searchbar {
    font-size: 1.93vw;
    line-height: 1.93vw;
    letter-spacing: -0.04em;
  }
}

.textbox {
  margin-right: var(--space100h);
}
.textbox > * {
  margin: 0;
}
.textbox > * + * {
  margin-top: var(--space25h);
}
.textbox > span {
  display: block;
}
.textbox > span + span {
  margin-top: var(--space15h);
}
@media (max-width: 767px) {
  .textbox {
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
}
.textbox:hover .icon--arrow line {
  transform: scaleX(1.5);
}
.textbox:hover .icon--arrow path {
  transform: translateX(8px);
}

.textbox__icons {
  display: flex;
  align-items: center;
}
.textbox__icons .icon--arrow {
  overflow: visible;
}
.textbox__icons .icon--arrow path, .textbox__icons .icon--arrow line {
  stroke: currentColor;
}
.textbox__icons .icon--arrow line {
  transition: transform 0.5s;
  transform: scaleX(1);
}
.textbox__icons .icon--arrow path {
  transition: transform 0.5s;
  transform: translateX(0);
}

.textbox__event_location,
.textbox__event_date {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

h2.textbox__title:first-letter {
  text-transform: capitalize;
}

.textpanel {
  display: flex;
  width: 75%;
}
.textpanel header {
  width: 22.2222222222%;
}
.textpanel header > * {
  margin: 0;
}
.textpanel header > * + p {
  margin-top: 15px;
}
@media (max-width: 767px) {
  .textpanel header > * + p {
    margin-top: 15px;
  }
}
.textpanel header + section {
  margin-left: 11.1111111111%;
  width: 44.4444444444%;
}
.textpanel section {
  margin-right: 22.2222222222%;
}
.textpanel section *:first-child {
  margin-top: 0;
}
.textpanel section p {
  /*Luft mellem paragraffer skal være 25px*/
  margin-bottom: 25px;
}
@media (max-width: 767px) {
  .textpanel section p {
    margin-bottom: 15px;
  }
}
.textpanel section ol li,
.textpanel section ul li {
  margin-bottom: 0.5vw;
}
.textpanel section *:last-child {
  margin-bottom: 0;
}

.accordon {
  width: 100%;
  margin-top: var(--space50h);
}
@media (max-width: 767px) {
  .accordon {
    width: 100%;
    padding: 0;
  }
}
.accordon .accordon__content--mixed > * {
  margin-bottom: var(--space25h);
}
.accordon .accordon__item {
  display: block;
  margin-top: var(--space25h);
  width: 100%;
}
.accordon .accordon__item .accordon__header {
  width: 100%;
}
.accordon .accordon__item .accordon__trigger {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  font-family: inherit;
  position: relative;
  width: 100%;
  padding: 0px;
}
.accordon .accordon__item .accordon__trigger:focus-visible {
  outline: 1px auto currentColor;
}
.accordon .accordon__item .accordon__trigger span {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  font-family: inherit;
  display: block;
  padding-left: 11.1111111111%;
}
.accordon .accordon__item .accordon__trigger span:after {
  content: "";
  position: absolute;
  height: 1px;
  left: 0;
  width: 100%;
  background-color: currentColor;
  opacity: 0.2;
  bottom: -25px;
}
@media (max-width: 767px) {
  .accordon .accordon__item .accordon__trigger span:after {
    bottom: -10px;
  }
}
.accordon .accordon__item .accordon__trigger .icon {
  font-size: inherit;
  position: absolute;
  top: 0;
  left: 0;
  transition: transform 0.5s;
  transform: rotate(0deg);
}
.accordon .accordon__item .accordon__panel {
  overflow: hidden;
  display: flex;
  justify-content: flex-end;
}
.accordon .accordon__item .accordon__panel .accordon__content {
  flex-wrap: wrap;
  padding-top: var(--space50h);
  margin-left: 0;
  width: 100%;
}
.accordon .accordon__item .accordon__panel .accordon__content p {
  margin-bottom: 1.2vw;
}
.accordon .accordon__item .accordon__panel .accordon__content.have__downloads {
  margin-left: 0;
}
.accordon .accordon__item .accordon__panel .accordon__content.have__downloads .accordon__content__download {
  margin-left: -7.1428571429%;
}
.accordon .accordon__item .accordon__panel .accordon__content.have__downloads .accordon__content__download p a {
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .accordon .accordon__item .accordon__panel .accordon__content.have__downloads .accordon__content__download p a {
    gap: 1rem;
  }
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download {
  margin-top: var(--space25h);
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download .icon {
  transform: none;
  width: 20px;
  vertical-align: bottom;
  float: left;
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download span:not(.download__icon, .download__title) {
  margin-left: var(--space100h);
  display: flex;
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download span.download__title {
  margin-left: calc(7.1428571429% - 20px);
}
.accordon .accordon__item .accordon__panel .accordon__content .accordon__content__download_link {
  font-weight: bold;
}
.accordon .accordon__item .accordon__panel .accordon__content ol {
  list-style: decimal;
}
.accordon .accordon__item .accordon__panel .accordon__content ul {
  list-style: disc;
}
.accordon .accordon__item .accordon__panel .accordon__content ul,
.accordon .accordon__item .accordon__panel .accordon__content ol {
  margin-left: 20px;
  padding-left: var(--space15h);
}
.accordon .accordon__item .accordon__panel .accordon__content ul li,
.accordon .accordon__item .accordon__panel .accordon__content ol li {
  letter-spacing: -0.02em;
  color: rgba(48, 42, 56, 0.74);
}
.accordon .accordon__item .accordon__panel .accordon__content div p:not(:last-of-type) {
  margin-bottom: 1.2vw;
}
.accordon .accordon__item .accordon__panel .accordon__content ol li,
.accordon .accordon__item .accordon__panel .accordon__content ul li {
  margin-bottom: 0.5vw;
}
.accordon .accordon__item .accordon__panel .accordon__content *:last-child {
  margin-bottom: 0;
}
.accordon .accordon__item + .accordon__item {
  padding-top: var(--space25h);
}
.accordon .accordon__item.is-active .accordon__header .accordon__trigger span::after {
  display: none;
}
.accordon .accordon__item.is-active .accordion-item .accordon__panel .accordon__content {
  padding-top: var(--space25h);
}
.accordon .accordon__item.is-active .icon {
  transform: rotate(45deg);
}
@media (max-width: 767px) {
  .accordon {
    margin-left: 0;
    margin-right: 0;
  }
  .accordon .textpanel {
    width: 100%;
  }
  .accordon .textpanel header {
    width: 33.3333333333%;
  }
  .accordon .textpanel section {
    margin-left: 8.3333333333%;
    width: 58.3333333333%;
    margin-right: 0;
  }
  .accordon > article:not(.textpanel) {
    margin-left: 41.6666666667%;
    margin-right: 0;
    width: 58.3333333333%;
  }
  .accordon > article.videopanel {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

.accordon--simple {
  width: 100%;
}
.accordon--simple .accordon__item {
  margin-top: var(--space15h);
}
.accordon--simple .accordon__item + .accordon__item {
  padding-top: 0;
}
.accordon--simple .accordon__item.is-active {
  opacity: 1;
}
.accordon--simple .accordon__item.is-active .accordon__header {
  opacity: 1;
}
.accordon--simple .accordon__item.is-active .accordon__header span:after {
  display: none;
}
.accordon--simple .accordon__item.is-active .accordon__header .icon {
  display: inline-block;
  left: auto;
  right: 0;
}
.accordon--simple .accordon__item.is-active .accordon__panel {
  position: relative;
}
.accordon--simple .accordon__item.is-active .accordon__panel:after {
  content: "";
  position: absolute;
  height: 1px;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: currentColor;
  opacity: 0.2;
}
.accordon--simple .accordon__trigger span {
  padding-left: 0;
  position: relative;
}
.accordon--simple .accordon__trigger span:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  opacity: 0.2;
  bottom: -5px;
  left: 0;
  background-color: currentColor;
}
.accordon--simple .accordon__trigger .icon {
  display: none;
}
.accordon--simple .accordon__panel {
  margin-left: 0;
  margin-right: 0;
}

.palette--5 .accordon .accordon__item,
.palette--6 .accordon .accordon__item {
  opacity: 1 !important;
}
.palette--5 .accordon .accordon__item .accordon__trigger span,
.palette--6 .accordon .accordon__item .accordon__trigger span {
  color: #eeeee7 !important;
  opacity: 1 !important;
}
.palette--5 .accordon .accordon__content ul li,
.palette--5 .accordon .accordon__content ol li,
.palette--5 .accordon .accordon__content p,
.palette--6 .accordon .accordon__content ul li,
.palette--6 .accordon .accordon__content ol li,
.palette--6 .accordon .accordon__content p {
  color: #eeeee7 !important;
  opacity: 1 !important;
}

.block--harmonica .harmonica .accordon__content {
  margin-left: 33.3333333333% !important;
}

.listings {
  width: 75%;
  display: flex;
  flex-wrap: wrap;
}
.listings .listings__heading {
  max-width: 100%;
}
@media (max-width: 767px) {
  .listings {
    width: 100%;
  }
}

.courses_curated_wrap {
  width: 100%;
}

.landing_page .listings__heading {
  width: 33.3333333333%;
  margin-left: 0;
}
@media (max-width: 767px) {
  .landing_page .listings__heading {
    width: 42.8571428571%;
    margin-left: unset;
  }
}
.landing_page .block {
  margin-top: var(--space50h);
}

.search_listings_heading {
  width: 100%;
  margin-bottom: var(--space50h);
}
@media (max-width: 767px) {
  .search_listings_heading h1, .search_listings_heading p {
    padding-left: 21.4285714286%;
    max-width: 100%;
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
}
.search_listings_heading .listings__list {
  margin-top: var(--space50h);
}
.search_listings_heading .hide {
  display: none;
}

.listings__heading {
  width: 22.2222222222%;
  margin-right: 44.4444444444%;
}
.listings__heading span + h2 {
  margin-top: var(--space25h);
}
.listings__heading h2 {
  margin-top: 0;
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .listings__heading {
    padding-left: 21.4285714286%;
    width: 42.8571428571%;
    padding-right: 21.4285714286%;
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
  .listings__heading ~ .listings__link {
    margin-top: var(--space50h);
  }
}

.listings__link {
  width: 33.3333333333%;
}
@media (max-width: 767px) {
  .listings__link {
    order: 3;
    padding-left: 21.4285714286%;
    width: 42.8571428571%;
    padding-right: 21.4285714286%;
    margin-left: var(--space100h);
    margin-right: var(--space100h);
  }
  .listings__link a {
    width: 100%;
  }
}

@media (max-width: 767px) {
  .listings__container {
    width: 100vw;
    overflow: hidden;
  }
}
.listings__list {
  display: flex;
  width: 100%;
  flex-direction: row;
  flex-wrap: wrap;
  margin-top: var(--space50h);
}
@media (max-width: 767px) {
  .listings__list {
    white-space: nowrap;
    flex-wrap: nowrap;
    overflow-x: auto;
    width: auto;
    order: 2;
  }
  .listings__list * {
    white-space: pre-wrap;
  }
  .listings__list:before {
    content: "";
    display: inline-block;
    width: 28.5714285714vw;
    flex: 0 0 28.5714285714vw;
  }
  .listings__list:after {
    content: "";
    display: inline-block;
    width: 7.1428571429vw;
  }
}
.listings__list ~ .listings__empty {
  display: none;
}
.listings__list:empty ~ .listings__empty {
  margin-top: var(--space25h);
  display: flex;
}

.listings__empty {
  display: flex;
  margin-top: var(--space25h);
}

.listings__item {
  width: 33.3333333333%;
  display: flex;
  flex-direction: column;
  margin-bottom: var(--space25h);
}
.listings__item .image {
  width: 100%;
}
.listings__item picture {
  margin-top: auto;
  margin-bottom: 25px;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
@media (max-width: 767px) {
  .listings__item picture {
    max-height: 270px;
  }
}
.listings__item img {
  width: 100%;
  height: auto;
}
.listings__item .textbox + picture {
  margin-top: var(--space25h);
  display: flex;
}
.listings__item .textbox__icons .icon--play,
.listings__item .textbox__icons .icon--beginner {
  display: none;
}
.listings__item[has_video] .textbox__icons .icon--play {
  display: inline-block;
}
.listings__item[has_video] .textbox__icons .icon--play ~ .icon--arrow {
  margin-left: var(--space15h);
}
.listings__item[is_beginner] .textbox__icons .icon--beginner {
  display: inline-block;
}
.listings__item[is_beginner] .textbox__icons .icon--beginner ~ .icon--arrow {
  margin-left: var(--space15h);
}
@media (max-width: 767px) {
  .listings__item {
    display: grid;
    grid-template-rows: repeat(auto-fill, 45vw);
    flex-shrink: 0;
    margin-bottom: 0;
    width: 55vw;
  }
  .listings__item .textbox {
    margin-left: 0;
  }
}

/*Luft under den sidste linje i referencemodulet fjernes*/
.listings__item:nth-child(3n+1):nth-last-child(-n+3),
.listings__item:nth-child(3n+1):nth-last-child(-n+3) ~ .listings__item {
  margin-bottom: 0;
}

.campaign {
  width: calc(var(--space100h) * 9);
  position: relative;
  background-color: inherit;
  padding-right: var(--space100h);
}
@media (max-width: 768px) {
  .campaign {
    margin-bottom: var(--space50h);
    padding-right: 0;
  }
}
.campaign[class*=right] .campaign__texts {
  right: var(--space100h);
  left: auto;
}
@media (max-width: 768px) {
  .campaign[class*=right] .campaign__texts {
    right: unset;
    left: 0;
  }
}
.campaign[class*=left] .campaign__texts {
  right: auto;
  left: 0;
}
.campaign[class*=bottom] .campaign__texts {
  bottom: 0;
  top: auto;
}
@media (max-width: 768px) {
  .campaign[class*=bottom] .campaign__texts {
    top: 0;
    bottom: unset;
  }
}
.campaign[class*=top-left] .campaign__texts, .campaign[class*=top-right] .campaign__texts {
  width: fit-content;
  max-width: 44.4444444444%;
  min-width: 33.3333333333%;
  padding: 2rem;
}
@media all and (max-width: 768px) {
  .campaign[class*=top-left] .campaign__texts, .campaign[class*=top-right] .campaign__texts {
    max-width: 66.6666666667%;
  }
}
@media all and (max-width: 568px) {
  .campaign[class*=top-left] .campaign__texts, .campaign[class*=top-right] .campaign__texts {
    max-width: 77.7777777778%;
  }
}
.campaign[class*=top-left] .textbox__date, .campaign[class*=top-right] .textbox__date {
  margin-bottom: var(--space15h);
  display: block;
}
@media all and (max-width: 767px) {
  .campaign[class*=top-left] .textbox__date, .campaign[class*=top-right] .textbox__date {
    margin-left: 7.1428571429%;
  }
}
.campaign[class*=top-left] .textbox, .campaign[class*=top-right] .textbox {
  margin-top: 0;
}
.campaign[class*=top-left] .textbox h2.textbox__title, .campaign[class*=top-right] .textbox h2.textbox__title {
  width: max-content;
  max-width: fit-content;
  max-width: 100%;
}
.campaign[class*=top-left] .textbox .textbox__copy, .campaign[class*=top-right] .textbox .textbox__copy {
  width: fit-content;
  max-width: 100%;
  max-width: 100%;
}
.campaign[class*=top-right] .textbox__date {
  margin-left: var(--space100h);
}
.campaign[class*=top-left] .campaign__texts {
  transform: translateX(-1rem) translateY(-1rem);
  width: fit-content;
  max-width: 44.4444444444%;
  min-width: 33.3333333333%;
}
@media (max-width: 768px) {
  .campaign[class*=top-left] .campaign__texts {
    max-width: 80%;
    width: 100%;
  }
}
@media all and (max-width: 400px) {
  .campaign[class*=top-left] .campaign__texts {
    padding: 1.5rem;
  }
}
.campaign[class*=top-right] .campaign__texts {
  transform: translateX(1rem) translateY(-1rem);
  width: fit-content;
  max-width: 44.4444444444%;
  min-width: 33.3333333333%;
}
@media (max-width: 768px) {
  .campaign[class*=top-right] .campaign__texts {
    transform: translateX(-1rem) translateY(-1rem);
    max-width: 80%;
    width: 100%;
  }
}
@media all and (max-width: 400px) {
  .campaign[class*=top-right] .campaign__texts {
    padding: 1.5rem;
  }
}
.campaign[class*=bottom-left] .campaign__texts {
  padding: 2rem;
  transform: translateX(-1rem) translateY(1rem);
  width: fit-content;
  max-width: 44.4444444444%;
  min-width: 33.3333333333%;
}
@media (max-width: 768px) {
  .campaign[class*=bottom-left] .campaign__texts {
    transform: translateX(-1rem) translateY(-1rem);
    max-width: 80%;
    width: 100%;
  }
}
@media all and (max-width: 400px) {
  .campaign[class*=bottom-left] .campaign__texts {
    padding: 1.5rem;
  }
}
.campaign[class*=bottom-right] .campaign__texts {
  padding: 2rem;
  transform: translateX(1rem) translateY(1rem);
  max-width: 44.4444444444%;
  min-width: 33.3333333333%;
}
@media (max-width: 768px) {
  .campaign[class*=bottom-right] .campaign__texts {
    transform: translateX(-1rem) translateY(-1rem);
    max-width: 80%;
    width: 100%;
  }
}
@media all and (max-width: 400px) {
  .campaign[class*=bottom-right] .campaign__texts {
    padding: 1.5rem;
  }
}
.campaign[class*=wide][class*=right] .campaign__texts {
  max-width: 33.3333333333%;
}
@media (min-width: 768px) {
  .campaign[class*=wide] {
    width: 100%;
    z-index: 30;
  }
}
.campaign[class*=color] .campaign__texts {
  right: 0;
  left: auto;
  max-width: 44.4444444444%;
}
.campaign[class*=color] .campaign__texts .textbox {
  margin-top: var(--space100h);
  margin-left: var(--space100h);
}
.campaign[class*=color] .campaign__texts:after {
  content: "";
  position: absolute;
  width: 75%;
  right: -75%;
  top: 0;
  height: 100%;
  background-color: inherit;
}
.campaign.campaign--simple {
  box-sizing: border-box;
  width: 64.2857142857%;
  padding: var(--space100h);
  margin-right: var(--space100h);
}
.campaign.campaign--simple .campaign__texts {
  position: relative;
  max-width: 100%;
}
.campaign.campaign--simple .campaign__texts .textpanel {
  width: 100%;
}
@media (max-width: 768px) {
  .campaign.campaign--simple {
    width: calc(var(--space100h) * 9);
    margin-left: var(--space100h);
    margin-right: 0;
    margin-bottom: var(--space50h);
  }
}
@media all and (max-width: 767px) {
  .campaign.campaign--simple {
    width: 100%;
  }
}
.campaign.campaign--simple-alt .campaign__texts {
  position: relative;
  max-width: 100%;
  padding-bottom: 0;
}
.campaign.campaign--simple-alt .campaign__texts .textpanel {
  width: 100%;
  flex-wrap: wrap;
}
.campaign.campaign--simple-alt .campaign__texts .textpanel section {
  margin-left: 33.3333333333%;
}
.campaign.campaign--simple-alt .campaign__texts .textpanel header + section {
  margin-top: var(--space100h);
}
@media (max-width: 767px) {
  .campaign {
    width: 100%;
    margin-right: 0;
  }
  .campaign .campaign__texts .textbox {
    margin-left: 0;
  }
  .campaign[class*=color] .campaign__texts {
    max-width: 66.6666666667%;
  }
  .campaign[class*=color] .campaign__texts:after {
    display: none;
  }
  .campaign.campaign--simple-alt .campaign__texts .textpanel header {
    margin-left: 7.1428571429%;
    margin-right: 7.1428571429%;
    width: 100%;
  }
  .campaign.campaign--simple-alt .campaign__texts .textpanel header + section {
    margin-top: var(--space100h);
  }
  .campaign.campaign--simple-alt .campaign__texts .textpanel section {
    margin-left: 7.1428571429%;
    margin-right: 7.1428571429%;
    width: 57.1428571429%;
  }
}
@media (min-width: 768px) {
  .campaign[class*=color] .campaign__texts .textbox {
    margin-right: 0;
  }
}

.campaign__texts {
  position: absolute;
  top: 0;
  left: 0;
  right: auto;
  bottom: auto;
  min-width: 44.4444444444%;
  max-width: 44.4444444444%;
  width: 100%;
  z-index: 20;
  background-color: inherit;
  color: inherit;
  padding-bottom: 7.1428571429vw;
  /*Luft fra tekst til bund mindskes så der er den samme afstand til henholdsvis højre og bund*/
  padding-bottom: 0;
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .campaign__texts {
    padding-bottom: 14.2857142857vw;
  }
}
@media (max-width: 767px) {
  .campaign__texts {
    max-width: 64.2857142857%;
  }
}

.campaign picture {
  display: flex;
  position: relative;
}
.campaign img {
  width: 100%;
  height: auto;
}
@media all and (min-width: 769px) {
  .campaign img {
    max-height: 400px;
  }
}

/*build*/
.block.block--campaign.block--campaign-simple .campaign--simple-alt {
  width: 75%;
  padding-left: 0;
  box-sizing: border-box;
}
@media all and (max-width: 768px) {
  .block.block--campaign.block--campaign-simple .campaign--simple-alt {
    width: 100%;
  }
}

.content-wrapper {
  position: relative;
}
.content-wrapper .sidebar {
  position: absolute;
  top: 0;
  left: 7.1428571429%;
  width: 14.2857142857%;
}
@media (max-width: 767px) {
  .content-wrapper .sidebar {
    margin-top: var(--space100h);
    margin-bottom: var(--space100h);
    position: inherit;
    width: unset;
    left: unset;
    padding: 0 7.1428571429%;
  }
}

@media (max-width: 767px) {
  .sidebar__taxonomy ul {
    display: flex;
    flex-wrap: wrap;
    grid-gap: 15px;
  }
}
.sidebar__taxonomy.sidebar__reset ul li {
  display: flex;
  align-items: center;
}
.sidebar__taxonomy.sidebar__reset ul li a {
  display: flex;
  align-items: center;
  text-decoration: none;
  width: 100%;
}
.sidebar__taxonomy.sidebar__reset ul li a > div {
  border-radius: 100%;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 10px;
}
.sidebar__taxonomy.sidebar__reset ul li svg {
  width: 14px;
  height: 14px;
}
.sidebar__taxonomy.hidden {
  display: none;
}

.sidebar__search + * {
  margin-top: var(--space50h);
}

.sidebar__taxonomy + .sidebar__taxonomy {
  margin-top: var(--space50h);
}
.sidebar__taxonomy li {
  opacity: 0.67;
  margin-bottom: 15px;
}
.sidebar__taxonomy li span {
  position: relative;
  cursor: pointer;
}
.sidebar__taxonomy li span:after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: currentColor;
  opacity: 0.64;
}
.sidebar__taxonomy li:last-child {
  margin-bottom: 0;
}
.sidebar__taxonomy li.selected {
  opacity: 1;
}

#sidebar__newuser ul li {
  display: flex;
}
#sidebar__newuser ul li svg {
  margin-right: 10px;
}

.block {
  margin-top: var(--space100h);
  margin-bottom: var(--space100h);
  background-color: inherit;
}
.block.palette:not(.block--campaign-simple) {
  padding-top: var(--space100h);
  padding-bottom: var(--space100h);
}
.block.palette--7 {
  padding-top: 0;
  padding-bottom: 0;
}
.block.block--anchor {
  margin-top: 0px;
  margin-bottom: 0px;
}
.block.block--anchor p {
  display: flex;
  align-items: center;
}
.block.block--anchor p span {
  flex-grow: 1;
  display: inline-block;
  height: 1px;
  background-color: currentColor;
}
.block.block--anchor p em {
  padding-left: 1em;
  padding-right: 1em;
  cursor: pointer;
}
.block:first-of-type {
  margin-top: 0;
}
.block ol {
  list-style: decimal;
}
.block ul {
  list-style: disc;
}
.block ul,
.block ol {
  padding-left: 0;
  list-style-position: outside;
  margin-left: var(--space15h);
}
.block ul li a,
.block ol li a {
  display: inline-block;
  position: relative;
  transition: all 0.5s;
  text-decoration: underline;
}
.block ul li a:hover,
.block ol li a:hover {
  color: #302a38;
}
@media (max-width: 767px) {
  .block {
    margin-top: var(--space200h);
    margin-bottom: var(--space200h);
  }
  .block.block--top {
    padding-top: var(--space100h);
  }
}

.simple-box {
  padding: 2.5rem;
}
@media (max-width: 768px) {
  .simple-box {
    padding: 1.5rem;
  }
}
.simple-box header {
  margin-bottom: var(--space25h);
}
.simple-box header h2 {
  margin-bottom: 0;
  margin-top: 0;
}
.simple-box header.show-icon {
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .simple-box header.show-icon {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
  }
}
.simple-box header.show-icon svg.icon {
  width: 24px;
  height: 24px;
  transform: rotate(0) !important;
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
}
.simple-box header.show-icon h2 {
  margin-left: 15px;
}
@media (max-width: 768px) {
  .simple-box header.show-icon h2 {
    margin-left: 0;
    margin-top: 15px;
  }
}
.simple-box main.columns-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
@media (max-width: 767px) {
  .simple-box main.columns-2 {
    gap: 15px;
  }
}
@media (max-width: 767px) {
  .simple-box main.columns-2 {
    grid-template-columns: 1fr;
  }
}
.simple-box main > div > p {
  margin-bottom: 1.2vw;
}
.simple-box main > div > p:last-child {
  margin-bottom: 0;
}
.simple-box--tip {
  background-color: #302a38;
  border-left: 0.5rem solid #302a38;
  color: white;
}
.simple-box--tip header .show-icon svg.icon {
  fill: white;
  stroke: white;
}
.simple-box--tip header.show-icon h2, .simple-box--tip header h2 {
  color: white !important;
}
.simple-box--tip main h2,
.simple-box--tip main h3,
.simple-box--tip main h4,
.simple-box--tip main ul li,
.simple-box--tip main ol li,
.simple-box--tip main p {
  color: white !important;
}
.simple-box--tip main a:hover {
  color: #757177 !important;
}
.simple-box--discrete {
  background-color: rgba(48, 42, 56, 0.1);
  border-left: 0.5rem solid rgba(48, 42, 56, 0.25);
  color: #302a38;
}
.simple-box--obs {
  background-color: rgba(244, 189, 44, 0.25);
  border-left: 0.5rem solid rgba(244, 189, 44, 0.5);
  color: #302a38;
}
.simple-box--info {
  background-color: rgba(120, 190, 231, 0.25);
  border-left: 0.5rem solid rgba(120, 190, 231, 0.5);
  color: #302a38;
}

/** Fix width of simple box inside a column when lower than 1024px */
@media (max-width: 767px) {
  .block--article--column article.column--simple-box {
    width: 100% !important;
    margin-left: 41.6666666667% !important;
  }
  .block--article--column article.column--accordon article.column--simple-box {
    margin-left: 0 !important;
    width: unset !important;
  }
  .block--article--column article.column--accordon .accordon__panel {
    margin-left: 0 !important;
  }
}
@media all and (min-width: 768px) and (max-width: 1024px) {
  .article-content .block.block--article.block--article--column > article.column--accordon {
    margin-right: 0px;
    width: 100%;
  }
}
/**
Hero Block
 */
/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

.footer__colophon p, article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__heading, article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__colophon p, article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.block--hero {
  max-width: var(--max-width);
  margin: var(--space50h) var(--space100h) var(--space100h);
  display: flex;
  flex-direction: row;
}
@media (max-width: 768px) {
  .block--hero {
    flex-direction: column;
  }
}
.block--hero.palette--0 {
  background-color: rgba(48, 42, 56, 0.1);
}
.block--hero.palette--1 {
  background-color: #f4bd2c;
}
.block--hero.palette--2 {
  background-color: #47bf80;
}
.block--hero.palette--3 {
  background-color: #f16e4b;
}
.block--hero.palette--4 {
  background-color: #78bee7;
}
.block--hero__image {
  width: 66.6666666667%;
  margin: 3.5714285714%;
  height: 100%;
  padding: 0;
}
@media (max-width: 767px) {
  .block--hero__image {
    width: 100%;
    margin: 7.1428571429% !important;
    margin-bottom: 0;
  }
}
.block--hero__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 1.75/1;
}
@media (max-width: 767px) {
  .block--hero__image img {
    max-width: 85.7142857143%;
    aspect-ratio: unset;
    height: auto;
  }
}
.block--hero__image .video_container {
  aspect-ratio: 16/9;
  width: 100%;
  object-fit: cover;
}
@media (max-width: 767px) {
  .block--hero__image .video_container {
    max-width: 85.7142857143%;
    aspect-ratio: unset;
    height: auto;
  }
}
.block--hero__text {
  width: 33.3333333333%;
  margin: 0;
  padding: 3.5714285714%;
  padding-left: 0;
}
@media (max-width: 768px) {
  .block--hero__text {
    width: 85.7142857143%;
    padding: 7.1428571429%;
    padding-top: 0;
  }
}
.block--hero__text .textbox {
  margin-right: 0;
  margin-left: 0;
}
@media (max-width: 768px) {
  .block--hero__text .textbox {
    padding-top: 0;
    max-width: 92.8571428571%;
  }
}
.block--hero__text .textbox h1 {
  margin: 0;
}
.block--hero__text .textbox h3 {
  margin-bottom: 20px;
}
.block--hero__text .textbox p {
  margin: 0 0 20px;
}
.block--hero__text .textbox p:last-child {
  margin-bottom: 0;
}

/**
* GENERAL OR CRITICAL BLOCKS
**/
/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

.footer__colophon p, article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__heading, article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

.footer__colophon p, article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.header__desktop--langmenu,
.header__desktop--second,
.header__desktop--second {
  box-sizing: border-box;
}

.header__mobile {
  margin-top: var(--space25h);
  margin-left: var(--space50h);
  margin-right: var(--space50h);
  display: flex;
}
@media (min-width: 769px) {
  .header__mobile {
    display: none !important;
  }
}
.header__mobile--branding {
  width: 100%;
  display: flex;
}
.header__mobile--branding .branding {
  width: 100%;
}
.header__mobile--branding .branding .logo svg {
  width: 44px;
  height: 44px;
}
.header__mobile--menu {
  width: 50%;
  display: flex;
  justify-content: flex-end;
}
.header__mobile--toggles {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  width: 75%;
}
.header__mobile--listmenu-container {
  margin: var(--space25h) var(--space50h) !important;
  display: flex;
  justify-content: flex-end;
}
@media (min-width: 769px) {
  .header__mobile--listmenu-container {
    display: none !important;
  }
}
.header__mobile--listmenu-container .listmenu {
  width: 50%;
  height: 0;
  visibility: hidden;
  opacity: 0;
  transition: height 0.3s ease-in-out, opacity 0.5s ease-in-out;
}
.header__mobile--listmenu-container .listmenu.active {
  visibility: visible !important;
  height: var(--containerHeight, 180px) !important;
  opacity: 1 !important;
}
.header__mobile--search-externally {
  margin-top: var(--space25h) !important;
  margin-left: var(--space50h) !important;
  margin-right: var(--space50h) !important;
  display: flex;
}
@media (min-width: 769px) {
  .header__mobile--search-externally {
    display: none !important;
  }
}
.header__mobile--search-externally .external-search-button {
  margin-left: 16.6666666667%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  height: 40px;
  background: #302a38;
  color: #eeeee7;
  font-weight: 500;
}
.header__mobile--search-externally .external-search-button svg {
  stroke: #eeeee7;
}
.header__mobile--search-externally .external-search-button::after {
  display: none !important;
}
.header__mobile--search-internally {
  margin-top: var(--space50h);
  margin-left: var(--space50h);
  margin-right: var(--space50h);
  display: flex;
  justify-content: flex-end;
}
@media (min-width: 769px) {
  .header__mobile--search-internally {
    display: none !important;
  }
}
.header__mobile--search-internally .searchbar {
  width: 75%;
}
.header__mobile--servicemenu {
  margin: var(--space25h) var(--space50h) var(--space50h);
  display: flex;
  justify-content: flex-end;
}
@media all and (min-width: 769px) {
  .header__mobile--servicemenu {
    display: none !important;
  }
}
.header__mobile--servicemenu nav {
  width: 75%;
}
.header__mobile--servicemenu nav .servicemenu__item a {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.header__mobile--servicemenu nav .servicemenu__item a svg {
  margin-top: 0;
}
@media all and (max-width: 768px) {
  .header__mobile--servicemenu nav .servicemenu__item a.menu__item {
    flex-direction: row;
    padding: 10px 0;
  }
}
@media all and (max-width: 767px) {
  .header__mobile--servicemenu nav .servicemenu__item a.menu__item {
    padding: 0;
  }
}
.header__mobile--subpage-menu.listmenu {
  height: 0;
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease-in-out;
}
.header__mobile--subpage-menu.listmenu.active {
  visibility: visible;
  opacity: 1;
}
@media (max-width: 768px) {
  .header__mobile--subpage-menu.listmenu.active {
    height: 40rem;
  }
}
.header__mobile--subpage-menu.listmenu.active .listmenu {
  visibility: visible !important;
  height: auto;
  opacity: 1 !important;
}
@media (min-width: 769px) {
  .header__mobile {
    display: none !important;
  }
}
.header__desktop--langmenu {
  margin-top: var(--space50h);
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  display: flex;
  justify-content: flex-end;
  max-width: var(--max-width);
}
@media all and (max-width: 768px) {
  .header__desktop--langmenu {
    display: none !important;
  }
}
@media all and (min-width: 1401px) {
  .header__desktop--langmenu {
    margin-left: auto;
    margin-right: auto;
  }
}
.header__desktop {
  margin-top: var(--space25h);
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  box-sizing: border-box;
  position: relative;
  display: flex;
  max-width: var(--max-width);
}
@media all and (max-width: 768px) {
  .header__desktop {
    display: none !important;
  }
}
@media all and (min-width: 1401px) {
  .header__desktop {
    margin-left: auto;
    margin-right: auto;
  }
}
.header__desktop--branding {
  width: 33.3333333333%;
  display: flex;
  flex-direction: column;
}
.header__desktop--branding .branding {
  width: 100%;
  justify-content: unset;
}
.header__desktop--branding .logo {
  width: 25%;
}
.header__desktop--branding .logo svg {
  width: 50px;
  height: 50px;
}
.header__desktop--navigations {
  width: 66.6666666667%;
  display: flex;
}
.header__desktop--navigations > div:nth-child(1) {
  width: 100%;
}
.header__desktop--navigations > div:nth-child(2) {
  width: 100%;
}
.header__desktop--navigations .header__tagline {
  height: 50px;
  display: flex;
  align-items: end;
  max-width: 100px;
  overflow-wrap: initial;
  font-size: 0.8rem !important;
  transition: opacity 0.3s ease-in-out;
  opacity: 1;
  position: absolute;
}
.header__desktop--navigations .header__tagline.hidden {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
  height: 0;
}
.header__desktop--navigations .listmenu {
  height: 0;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  margin-top: 2.5rem;
}
.header__desktop--navigations .listmenu.active {
  visibility: visible;
  height: var(--containerHeight, 180px);
  opacity: 1;
  width: 100%;
  margin-top: 2.5rem;
}
.header__desktop--toggle-group {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  align-items: flex-start;
  margin-top: 27px;
}
.header__desktop--toggle-group .header__search-internal__wrap {
  margin-left: 100%;
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s ease-in-out;
}
.header__desktop--toggle-group .header__search-internal__wrap.active {
  margin-left: 0;
  width: 100%;
  opacity: 1;
  pointer-events: all;
}
.header__desktop--toggle-group .header__search-internal__wrap button[type=submit] {
  display: none;
}
.header__desktop--toggle-group .search-internal-btn {
  margin-left: auto;
  cursor: pointer !important;
}
.header__desktop--toggle-group .search-internal-btn svg {
  height: 24px;
  width: 24px;
}
.header__desktop--second {
  display: flex;
  max-width: var(--max-width);
  width: 100%;
  margin-top: var(--space25h);
  padding-left: var(--space100h);
  padding-right: var(--space100h);
}
@media all and (min-width: 1401px) {
  .header__desktop--second {
    margin-left: auto;
    margin-right: auto;
  }
}
@media all and (max-width: 768px) {
  .header__desktop--second {
    display: none !important;
  }
}
.header__desktop--second .header__desktop--filler {
  width: 33.3333333333%;
  display: flex;
  align-items: start;
}
.header__desktop--second .header__desktop--filler .header__desktop--back {
  width: 25%;
  margin-top: 0.75rem;
}
.header__desktop--second .header__desktop--filler .heading__desktop--search-externally {
  margin: 15px 0;
  display: flex;
  height: 40px;
  align-items: center;
}
.header__desktop--second .header__desktop--filler .external-search-button {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  height: 40px;
  background: #302a38;
  color: #eeeee7;
  font-weight: 500;
}
.header__desktop--second .header__desktop--filler .external-search-button svg {
  stroke: #eeeee7;
}
.header__desktop--servicemenu {
  width: 66.6666666667%;
}
.header__desktop--servicemenu .servicemenu {
  display: flex;
}
.header__desktop--servicemenu .servicemenu li {
  width: 100% !important;
  padding-right: 1.25rem;
}

@media (min-width: 769px) {
  .breadcrumbs__container--back {
    display: none;
  }
}

.header__desktop--second .header__desktop--filler .external-search-button::after {
  display: none !important;
}

.footer {
  padding-left: var(--space100h);
  padding-right: var(--space100h);
  margin-top: var(--space100h);
  margin-bottom: var(--space100h);
  box-sizing: border-box;
  max-width: var(--max-width);
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}
@media (max-width: 767px) {
  .footer {
    flex-direction: column;
  }
}
@media all and (min-width: 1401px) {
  .footer {
    margin-left: auto;
    margin-right: auto;
  }
}
.footer .footer__content {
  width: 50%;
}
.footer .footer__content .footer__menu {
  margin-top: 25px;
}
@media (max-width: 767px) {
  .footer .footer__content .footer__menu {
    margin-top: 15px;
  }
}

.footer__info {
  width: 50%;
  flex-grow: 0;
  display: flex;
  flex-direction: column;
}
.footer__info .footer__menu + .footer__menu {
  margin-top: 3.5714285714vw;
}
@media (max-width: 767px) {
  .footer__info .footer__menu + .footer__menu {
    margin-top: 7.1428571429vw;
  }
}
@media (max-width: 767px) {
  .footer__info {
    width: 100%;
    flex-direction: row;
  }
  .footer__info .footer__heading {
    width: 41.6666666667%;
  }
  .footer__info .footer__content {
    margin-top: 0px;
  }
  .footer__info + section {
    margin-top: 3.5714285714vw;
  }
}
@media (max-width: 767px) and (max-width: 767px) {
  .footer__info + section {
    margin-top: 7.1428571429vw;
  }
}

.footer__contact {
  width: 50%;
  flex-grow: 0;
  display: flex;
}
.footer__contact .footer__heading {
  width: 33.3333333333%;
}
.footer__contact .footer__copy + .footer__menu {
  margin-top: 25px;
}
@media (max-width: 767px) {
  .footer__contact .footer__copy + .footer__menu {
    margin-top: 15px;
  }
}
@media (max-width: 767px) {
  .footer__contact {
    width: 100%;
    flex-direction: row;
  }
  .footer__contact .footer__heading {
    width: 41.6666666667%;
  }
}

.footer__colophon {
  width: 100%;
  flex-grow: 0;
  display: flex;
  align-items: flex-end;
  margin-top: 3.5714285714vw;
}
.footer__colophon p {
  font-size: 0.8rem;
}
.footer__colophon .footer__copy--small p {
  font-size: 0.8rem;
}
@media (max-width: 767px) {
  .footer__colophon {
    margin-top: 7.1428571429vw;
  }
}
.footer__colophon .fifth-element {
  width: 50%;
}
@media (max-width: 767px) {
  .footer__colophon {
    grid-gap: 6%;
  }
  .footer__colophon .fifth-element {
    width: 41.6666666667%;
  }
  .footer__colophon .footer__content {
    width: 58.3333333333%;
  }
  .footer__colophon .footer__menu--secondary {
    flex: 0 0 35%;
    word-break: break-all;
  }
}

.footer__menu--secondary {
  width: 50%;
}

.footer__bar {
  margin-top: 7.1428571429vw;
  display: flex;
  width: 100%;
}
@media (max-width: 767px) {
  .footer__bar {
    margin-top: 14.2857142857vw;
  }
}
.footer__bar .icon-bar--element {
  width: 66.6666666667%;
}

.footer__heading {
  margin: 0;
}

.block--campaign {
  max-width: var(--max-width);
  margin: var(--space50h) auto;
  display: flex;
  justify-content: right;
  background-color: #eeeee7 !important;
}
@media all and (max-width: 768px) {
  .block--campaign {
    margin: var(--space50h) var(--space100h);
  }
}
.block--campaign.palette:not(.block--campaign-simple) {
  padding-top: 0px;
  padding-bottom: 0px;
  color: unset;
}
.block--campaign.palette {
  color: inherit;
}
.block--campaign.palette.palette--1 .campaign__texts {
  z-index: 1;
  background-color: #f4bd2c;
  color: #302a38;
}
.block--campaign.palette.palette--1 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--1 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--1 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--2 .campaign__texts {
  z-index: 1;
  background-color: #47bf80;
  color: #302a38;
}
.block--campaign.palette.palette--2 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--2 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--2 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--3 .campaign__texts {
  z-index: 1;
  background-color: #f16e4b;
  color: #302a38;
}
.block--campaign.palette.palette--3 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--3 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--3 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--4 .campaign__texts {
  z-index: 1;
  background-color: #78bee7;
  color: #302a38;
}
.block--campaign.palette.palette--4 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--4 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--4 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--5 .campaign__texts {
  z-index: 1;
  background-color: #69271f;
  color: #eeeee7;
}
.block--campaign.palette.palette--5 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--5 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--5 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette.palette--6 .campaign__texts {
  z-index: 1;
  background-color: #18598a;
  color: #eeeee7;
}
.block--campaign.palette.palette--6 .campaign__texts .textbox__copy,
.block--campaign.palette.palette--6 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.palette.palette--6 .campaign__texts p {
  color: inherit;
}
.block--campaign.palette .campaign[class*=top-right] {
  margin-left: var(--space100h);
}
@media (max-width: 768px) {
  .block--campaign.palette .campaign[class*=top-right] {
    margin-left: 0;
  }
}
.block--campaign.block--campaign-left {
  justify-content: left;
}
.block--campaign.block--campaign-left.palette {
  background-color: inherit;
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts {
  background-color: #f4bd2c;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--1 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts {
  background-color: #47bf80;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--2 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts {
  background-color: #f16e4b;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--3 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts {
  background-color: #78bee7;
  color: #302a38;
}
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--4 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts {
  background-color: #69271f;
  color: #eeeee7;
}
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--5 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts {
  background-color: #18598a;
  color: #eeeee7;
}
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts .textbox__copy,
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts .textpanel {
  color: inherit;
}
.block--campaign.block--campaign-left.palette.palette--6 .campaign__texts p {
  color: inherit;
}
.block--campaign.block--campaign-simple {
  margin-top: var(--space50h);
  margin-bottom: var(--space50h);
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-right: var(--space100h);
}
@media (min-width: 769px) {
  .block--campaign.block--campaign-simple.palette {
    position: relative;
    padding-right: 0;
  }
}
.block--campaign.block--campaign-simple:first-child {
  margin-top: 0;
  width: 85%;
  margin-left: var(--space100h);
}
@media all and (max-width: 768px) {
  .block--campaign.block--campaign-simple:first-child {
    width: 100%;
  }
}
.block--campaign .campaign__texts {
  background-color: #eeeee7;
}
.block--campaign .campaign__texts > .textbox {
  margin-right: 0 !important;
}

/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large, .footer__heading {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.block--contact {
  margin-left: var(--space100h);
  margin-right: var(--space100h);
  margin-top: var(--space50h);
  margin-bottom: var(--space50h);
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
}
.block--contact .contact---wrap {
  margin-left: var(--space100h);
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
  width: 75%;
}
.block--contact .contact---wrap .contact--information {
  padding-top: var(--space50h);
  display: flex;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap {
  display: flex;
  width: 66.6666666667%;
  justify-content: right;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo {
  width: 41.6666666667%;
  margin-right: var(--space50h);
  color: rgba(48, 42, 56, 0.64);
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo .contact--name {
  font-weight: bold;
  margin-bottom: var(--space25h);
  color: rgba(48, 42, 56, 0.9);
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo .contact--department {
  margin-bottom: var(--space25h);
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo p {
  margin-bottom: 1.2vw;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo ol li,
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .basicinfo ul li {
  margin-bottom: 0.5vw;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .contact--contactinfo {
  margin-top: var(--space50h);
  margin-right: var(--space100h);
  margin-left: var(--space50h);
  width: 41.6666666667%;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .contact--contactinfo ul {
  margin-top: 0;
  list-style-type: none;
  margin-left: 0;
}
.block--contact .contact---wrap .contact--information .contact--basicinfo--wrap .contact--contactinfo ul li {
  margin-bottom: var(--space25h);
  color: rgba(48, 42, 56, 0.64);
}
.block--contact .contact---wrap .contact--information .contact--image {
  width: 25%;
}
@media (max-width: 767px) {
  .block--contact .textpanel header {
    width: 100% !important;
  }
  .block--contact .block--contact {
    justify-content: left !important;
    flex-wrap: inherit !important;
  }
  .block--contact .contact---wrap {
    width: 66.6666666667%;
  }
  .block--contact .basicinfo {
    width: 100% !important;
    margin: 0 !important;
  }
  .block--contact .contact--information {
    width: 100% !important;
    display: block !important;
    padding-top: 0 !important;
  }
  .block--contact .contact--image {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .block--contact .contact--contactinfo {
    width: 100% !important;
  }
  .block--contact .contact--basicinfo--wrap {
    width: 100% !important;
    display: block !important;
  }
}

/**
* On all colored backgrounds we use 100% black text
* @see T21103 - Farver på tekst og ikoner
 */
/* HEADER ANIMATIONS */
/* EXTRA STYLES */
.swatches__item {
  border-radius: 50%;
  overflow: hidden;
}

article p a.link, h4, h5,
h6, p, .footer__menu--secondary, .extnav a, .langmenu__option + .langmenu__option:before, .langmenu__option:not(.active), .breadcrumbs__container .breadcrumbs ul, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  color: rgba(48, 42, 56, 0.75);
}

/* BASE STYLES */
h1,
.h1, .listings__heading h2 {
  font-size: 1.953rem;
  line-height: 120%;
  letter-spacing: -0.04em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

h2,
.h2, .listmenu > ul > li .menu-heading-wrap > a, .footer__menu, .branding .site-name, .accordon--simple .accordon__item.is-active .accordon__header {
  font-size: 1.563rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link.link--large, h3,
.h3, .searchbar input, .accordon .accordon__item .accordon__header, .block ul li a.link.link--large,
.block ol li a.link.link--large, .footer__heading {
  font-size: 1.25rem;
  line-height: 120%;
  letter-spacing: -0.02em;
  font-weight: 600;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
}

article p a.link, h4, h5,
h6, .extnav a, .breadcrumbs__container .breadcrumbs ul, .block ul li a.link,
.block ol li a.link, .footer__colophon p {
  font-size: 1.1rem;
  font-family: "Ra-Gorm-Semibold", Arial, sans-serif;
  line-height: 120%;
  letter-spacing: 0em;
}

:root {
  --rigsarkivet--font-size: 15px;
  font-size: var(--rigsarkivet--font-size);
}
@media (max-width: 1023px) {
  :root {
    --rigsarkivet--font-size: 14px;
  }
}

body, .footer__menu--secondary {
  font-size: var(--rigsarkivet--font-size);
  line-height: 120%;
  letter-spacing: -0.02em;
}

p, .footer__menu--secondary, .textbox > span, .textbox__event_location,
.textbox__event_date, .accordon--simple .accordon__header, .block ul li,
.block ol li {
  margin: 0;
  font-size: 1rem;
  line-height: 120%;
}

.block--contact--info {
  margin: var(--space50h) var(--space100h);
  display: flex;
  flex-wrap: wrap;
  justify-content: right;
}
.block--contact--info .contact---wrap .contact--information {
  display: flex;
  margin-right: 22.2222222222%;
}
.block--contact--info .contact---wrap .contact--information .basicinfo .subheading {
  margin-top: 0 !important;
  margin-bottom: var(--space50h);
  color: rgba(48, 42, 56, 0.9);
}
.block--contact--info .contact---wrap .contact--information .contact--contactinfo {
  margin-top: var(--space25h);
}
.block--contact--info .contact---wrap .contact--information .contact--contactinfo ul {
  margin-top: 0;
  list-style-type: none;
  margin-left: 0;
}
.block--contact--info .contact---wrap .contact--information .contact--contactinfo ul li {
  margin-bottom: 20px;
  color: rgba(48, 42, 56, 0.8);
}
.block--contact--info .contact---wrap .contact--information .contact--image {
  width: 25%;
}
@media (max-width: 767px) {
  .block--contact--info {
    margin-right: 0;
    margin-left: 0;
    display: block;
  }
  .block--contact--info .textpanel header {
    width: 100% !important;
  }
  .block--contact--info .block--contact {
    justify-content: left !important;
    flex-wrap: inherit !important;
  }
  .block--contact--info .basicinfo {
    width: 100% !important;
    margin: 0 !important;
  }
  .block--contact--info .contact--information {
    width: 100% !important;
    display: block !important;
    padding-top: 0 !important;
  }
  .block--contact--info .contact--image {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .block--contact--info .contact--contactinfo {
    margin-top: 20px !important;
  }
}

.contact--contactinfo ul li,
.contact--contactinfo ul li p,
.contact--contactinfo a.contact-value {
  color: rgba(48, 42, 56, 0.7) !important;
}

.block--separationline .separationline::after {
  content: "";
  display: block;
  border-bottom: 2px solid rgba(48, 42, 56, 0.05);
}

@media print {
  html,
body {
    margin: 0;
    border: initial;
    border-radius: initial;
    width: initial;
    min-height: initial;
    box-shadow: initial;
    background: initial;
    page-break-after: always;
  }

  p {
    font-size: 16px !important;
  }

  .site-header,
.site-footer,
.content__navigations {
    display: none !important;
  }

  .content-wrapper {
    min-height: 0;
    background-color: #fff;
  }

  .block {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: left !important;
    position: relative;
    width: 100% !important;
    margin-top: 20px !important;
    margin-bottom: 20px !important;
  }
  .block h3 {
    margin-bottom: 10px !important;
  }
  .block header {
    width: 100% !important;
  }
  .block picture {
    display: none !important;
    margin: 0 !important;
  }
  .block .listings {
    width: 100% !important;
    display: block !important;
  }
  .block .listings__heading,
.block .textbox {
    width: 100% !important;
    margin: 0 !important;
  }
  .block .listings__list {
    margin-top: 20px;
  }
  .block .textbox__icons {
    display: none !important;
  }
  .block article {
    width: 100% !important;
    display: block !important;
    background-color: #fff !important;
    margin-bottom: 10px !important;
    margin-top: 10px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .block article header {
    width: 100% !important;
    display: block !important;
  }
  .block article section {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 10px !important;
  }
  .block article ol,
.block article ul {
    padding-left: 20px !important;
  }
  .block .campaign {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
    top: 0 !important;
    display: block;
  }
  .block .campaign .campaign__texts {
    padding: 0;
    position: relative;
    margin-bottom: 20px;
    margin-top: 20px;
    width: 100% !important;
    max-width: 100% !important;
    background-color: #fff !important;
  }
  .block .campaign .campaign__texts .textbox {
    margin: 0 !important;
    margin-bottom: 20px !important;
  }
  .block.palette {
    background-color: transparent !important;
    padding: 0 !important;
  }
  .block.palette p {
    color: rgba(48, 42, 56, 0.64) !important;
  }
  .block.palette h2 {
    color: #302A38;
  }
  .block.block--contact .textpanel, .block.block--contact--info .textpanel {
    width: 100% !important;
    margin: 0 !important;
  }
  .block.block--contact .contact---wrap, .block.block--contact--info .contact---wrap {
    width: 100% !important;
    margin: 0 !important;
  }
  .block.block--contact .contact---wrap .contact--information,
.block.block--contact .contact---wrap .basicinfo,
.block.block--contact .contact---wrap .contact--contactinfo, .block.block--contact--info .contact---wrap .contact--information,
.block.block--contact--info .contact---wrap .basicinfo,
.block.block--contact--info .contact---wrap .contact--contactinfo {
    width: 100% !important;
    margin: 0 !important;
    display: block !important;
    padding-top: 0 !important;
  }
  .block.block--contact .contact---wrap .contact--information .basicinfo,
.block.block--contact .contact---wrap .basicinfo .basicinfo,
.block.block--contact .contact---wrap .contact--contactinfo .basicinfo, .block.block--contact--info .contact---wrap .contact--information .basicinfo,
.block.block--contact--info .contact---wrap .basicinfo .basicinfo,
.block.block--contact--info .contact---wrap .contact--contactinfo .basicinfo {
    width: 100% !important;
  }
  .block.block--image {
    display: none !important;
  }
  .block.block--article {
    margin-bottom: 10px !important;
    margin-top: 10px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: block !important;
    width: 100% !important;
  }
  .block.block--article .listings {
    width: 100% !important;
    display: block !important;
  }
  .block.block--article .listings .listings__heading {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--article .listings .listings__heading h2 {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--article .listings .listings__list {
    width: 100% !important;
    margin-top: 10px !important;
    display: block !important;
  }
  .block.block--article .listings .listings__list .listings__item {
    width: 100% !important;
    display: block !important;
    height: auto !important;
    margin: 0 !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox__title {
    margin-top: 10px !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox {
    height: 100% !important;
    height: auto !important;
    margin: 0 !important;
    width: 100% !important;
    display: block !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox .textbox__copy {
    margin-top: 0 !important;
  }
  .block.block--article .listings .listings__list .listings__item .textbox .textbox__icons {
    display: none !important;
    margin: 0 !important;
  }
  .block.block--article .textpanel {
    width: 100% !important;
    display: block !important;
  }
  .block.block--article .textpanel header {
    display: block !important;
    width: 100% !important;
    margin-right: 0 !important;
  }
  .block.block--references {
    padding: 0 !important;
    display: block !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
    clear: both !important;
    width: 100% !important;
  }
  .block.block--references .listings {
    width: 100% !important;
    display: block !important;
  }
  .block.block--references .listings .listings__heading {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--references .listings .listings__heading h2 {
    width: 100% !important;
    display: block !important;
    text-align: left !important;
  }
  .block.block--references .listings .listings__list {
    width: 100% !important;
    margin-top: 10px !important;
    display: block !important;
  }
  .block.block--references .listings .listings__list .listings__item {
    width: 100% !important;
    display: block !important;
    height: auto !important;
    margin: 0 !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox__title {
    margin-top: 10px !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox {
    height: 100% !important;
    height: auto !important;
    margin: 0 !important;
    width: 100% !important;
    display: block !important;
    overflow-wrap: normal !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox .textbox__copy {
    margin-top: 0 !important;
  }
  .block.block--references .listings .listings__list .listings__item .textbox .textbox__icons {
    display: none !important;
    margin: 0 !important;
  }
  .block.block--walkthroughs .listings {
    width: 100% !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__heading {
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    margin-bottom: 10px !important;
    padding: 0 !important;
  }
  .block.block--walkthroughs .listings .listings__heading h2 {
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    margin-bottom: 10px !important;
    padding: 0 !important;
  }
  .block.block--walkthroughs .listings .listings__list {
    margin-top: 0 !important;
    display: block !important;
    width: 100% !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item {
    margin-bottom: 20px !important;
    padding: 0 !important;
    width: 100% !important;
    display: block !important;
    height: auto !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox {
    height: auto !important;
    width: 100% !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox .textbox__label {
    margin-bottom: 10px !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox .textbox__title {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    display: block !important;
  }
  .block.block--walkthroughs .listings .listings__list .listings__item .textbox .textbox__copy {
    margin-top: 0 !important;
    display: block !important;
  }
  .block .harmonica {
    width: 100% !important;
  }
  .block .harmonica .accordon {
    margin-top: 20px !important;
  }
  .block .harmonica .accordon__item {
    padding-top: 10px !important;
    margin-top: 0 !important;
  }
  .block .harmonica .accordon__item .accordon__panel {
    width: 100% !important;
    margin: 0 !important;
    visibility: visible !important;
    height: auto !important;
  }
  .block .harmonica .accordon__item .accordon__panel .accordon__content {
    padding: 0 !important;
  }
  .block .harmonica .accordon__trigger .icon {
    display: none !important;
  }
  .block.block--quote {
    padding: 0 !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
  }
  .block.block--quote .quote {
    width: 100% !important;
  }
  .block.block--quote .quote figure {
    display: block !important;
  }
  .block.block--quote blockquote {
    width: 100% !important;
  }
  .block.block--quote figcaption {
    margin: 0 !important;
    width: 100% !important;
  }
  .block.block--news {
    display: none !important;
  }
  .block .accordon--simple .accordon__item.is-active .accordon__panel:after {
    display: none !important;
  }
  .block .accordon__item .accordon__trigger span {
    padding-left: 0 !important;
  }

  span.print-page {
    display: none !important;
  }
}
/* Not found Page */
.notfound_wrapper {
  margin-left: 21.5%;
  margin-right: var(--space100h);
  margin-bottom: var(--space50h);
}
.notfound_wrapper a {
  text-decoration: underline;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhcmlhYmxlcy9fY29sb3JzLnNjc3MiLCJ1dGlsaXRpZXMvX21peGlucy5zY3NzIiwidXRpbGl0aWVzL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJiYXNlLnNjc3MiLCJ2ZW5kb3JzL19hY2NvcmRpb24uc2NzcyIsInZlbmRvcnMvX2Ryb3Bkb3duLnNjc3MiLCJjb21wb25lbnRzL19pY29uLnNjc3MiLCJjb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19sYW5nbWVudS5zY3NzIiwiY29tcG9uZW50cy9fdG9jLnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiY29tcG9uZW50cy9fYnJhbmRpbmcuc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9fYnVyZ2VyLnNjc3MiLCJjb21wb25lbnRzL19zZWFyY2hiYXIuc2NzcyIsImNvbXBvbmVudHMvX3RleHRib3guc2NzcyIsImNvbXBvbmVudHMvX3RleHRwYW5lbC5zY3NzIiwiY29tcG9uZW50cy9fYWNjb3JkaW9uLnNjc3MiLCJjb21wb25lbnRzL19saXN0aW5ncy5zY3NzIiwiY29tcG9uZW50cy9fY2FtcGFpZ24uc2NzcyIsImNvbXBvbmVudHMvX3NpZGViYXIuc2NzcyIsImNvbXBvbmVudHMvX2Jsb2Nrcy5zY3NzIiwiY29tcG9uZW50cy9fc2ltcGxlYm94LnNjc3MiLCJibG9ja3MvaGVyby5zY3NzIiwiYmxvY2tzL19oZWFkZXIuc2NzcyIsImJsb2Nrcy9fZm9vdGVyLnNjc3MiLCJibG9ja3MvX2NhbXBhaWduLnNjc3MiLCJibG9ja3MvX2NvbnRhY3Quc2NzcyIsImJsb2Nrcy9fY29udGFjdGluZm8uc2NzcyIsImJsb2Nrcy9fc2VwYXJhdGlvbmxpbmUuc2NzcyIsInByaW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQWFBO0FBQUE7QUFBQTtBQUFBO0FDOEJBO0FBa0JBO0FBQ0E7RUFDSTtFQUNBOzs7QUFHSjtBQUFB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aUJKO0lBMkNRO0lBQ0E7SUFDQTs7RUFDQTtJQUNJOztFQUVKO0lBQ0k7SUFDQTs7RUFFSjtJQUNJO0lBQ0E7O0VBRUo7SUFDSTtJQUNBO0lBQ0E7O0VBRUo7SUFDSTtJQUNBOztFQUVKO0lBQ0k7Ozs7QUFJWjtBQUFBO0FBQUE7RUFHSTs7O0FDL0VBO0VBQ0U7RUFDQTtFNUJBRTs7O0E2QkhSO0VBQ0U7QUFBQTtJQUVFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7OztFQUVGO0lBQ0U7OztFQUVGO0FBQUE7QUFBQTtJQUdFOzs7RUFFRjtJQUNFO0lBQ0E7OztFQUlGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTs7RUFHRjtJQUNFOztFQUdGO0lBQ0U7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7O0VBR0Y7QUFBQTtJQUVFO0lBQ0E7O0VBR0Y7SUFDRTs7RUFHRjtJQUNFOztFQUdGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTtJQUNBOztFQUdGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7O0VBR0Y7QUFBQTtJQUVFOztFQUdKO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUVBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDRTtJQUNBOztFQUlOO0lBQ0U7SUFDQTs7RUFDQTtJQUNFOztFQUVGO0lBQ0U7O0VBS0Y7SUFDRTtJQUNBOztFQUVGO0lBQ0U7SUFDQTs7RUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBR0U7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQUNFOztFQUtSO0lBQ0U7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUdKO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7O0VBTVY7SUFDRTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUlOO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTs7RUFHSjtJQUNFO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7O0VBRUY7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7O0VBU1Y7SUFDRTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBSUo7SUFDRTtJQUNBO0lBQ0E7O0VBQ0E7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTtJQUNBOztFQUNBO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBT1o7SUFDRTs7RUFDQTtJQUNFOztFQUVGO0lBQ0U7SUFDQTs7RUFDQTtJQUNFO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7O0VBS0o7SUFDRTs7RUFLTjtJQUNFO0lBQ0E7SUFDQTs7RUFDQTtJQUNFOztFQUNBO0lBQ0U7O0VBR0o7SUFDRTs7RUFFRjtJQUNFO0lBQ0E7O0VBSUo7SUFDRTs7RUFHRjtJQUNFOztFQUdGO0lBQ0U7OztFQVdKO0lBQ0U7OztBM0JrSEo7QUFDQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJIiwiZmlsZSI6ImJhc2UuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiJGNvbG9yczogKFxuICBcImJsYWNrXCI6IzAwMDAwMCxcbiAgXCJkYXJrXCI6ICMzMDJhMzgsXG4gIFwiZGFyay1hbHRcIjogIzc1NzE3NyxcbiAgXCJsaWdodFwiOiAjZWVlZWU3LFxuICBcInllbGxvd1wiOiAjZjRiZDJjLFxuICBcImdyZWVuXCI6ICM0N2JmODAsXG4gIFwicmVkXCI6ICNmMTZlNGIsXG4gIFwiYmx1ZVwiOiAjNzhiZWU3LFxuICBcInJlZC1hbHRcIjogIzY5MjcxZixcbiAgXCJibHVlLWFsdFwiOiAjMTg1OThhLFxuKTtcblxuLyoqXG4qIE9uIGFsbCBjb2xvcmVkIGJhY2tncm91bmRzIHdlIHVzZSAxMDAlIGJsYWNrIHRleHRcbiogQHNlZSBUMjExMDMgLSBGYXJ2ZXIgcMOlIHRla3N0IG9nIGlrb25lclxuICovXG4kcGFsZXR0ZTogKFxuICBcInllbGxvd1wiOiAoXG4vLyAgICAndHh0JyA6IG1hcC1nZXQoJGNvbG9ycywgJ2RhcmsnKSxcbiAgICBcInR4dFwiOiB0cmFuc3BhcmVudGl6ZShtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSwgMCksXG4gICAgXCJiZ1wiOiBtYXAtZ2V0KCRjb2xvcnMsIFwieWVsbG93XCIpLFxuICApLFxuICBcImdyZWVuXCI6IChcbi8vICAgICd0eHQnIDogbWFwLWdldCgkY29sb3JzLCAnZGFyaycpLFxuICAgXCJ0eHRcIjogdHJhbnNwYXJlbnRpemUobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDApLFxuICAgIFwiYmdcIjogbWFwLWdldCgkY29sb3JzLCBcImdyZWVuXCIpLFxuICApLFxuICBcInJlZFwiOiAoXG4vLyAgICAndHh0JyA6IG1hcC1nZXQoJGNvbG9ycywgJ2RhcmsnKSxcbiAgIFwidHh0XCI6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwKSxcbiAgICBcImJnXCI6IG1hcC1nZXQoJGNvbG9ycywgXCJyZWRcIiksXG4gICksXG4gIFwiYmx1ZVwiOiAoXG4gIC8vICBcInR4dFwiOiBtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSxcbiAgIFwidHh0XCI6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwKSxcbiAgICBcImJnXCI6IG1hcC1nZXQoJGNvbG9ycywgXCJibHVlXCIpLFxuICApLFxuICBcImRhcmtyZWRcIjogKFxuICAgICd0eHQnIDogbWFwLWdldCgkY29sb3JzLCAnbGlnaHQnKSxcbiAgLy8gIFwidHh0XCI6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSwgMC4zMyksXG4gICAgXCJiZ1wiOiBtYXAtZ2V0KCRjb2xvcnMsIFwicmVkLWFsdFwiKSxcbiAgKSxcbiAgXCJkYXJrYmx1ZVwiOiAoXG4gICAgJ3R4dCcgOiBtYXAtZ2V0KCRjb2xvcnMsICdsaWdodCcpLFxuICAvLyAgXCJ0eHRcIjogdHJhbnNwYXJlbnRpemUobWFwLWdldCgkY29sb3JzLCBcImxpZ2h0XCIpLCAwLjMzKSxcbiAgICBcImJnXCI6IG1hcC1nZXQoJGNvbG9ycywgXCJibHVlLWFsdFwiKSxcbiAgKSxcbik7XG4iLCJAbWl4aW4gYm9yZGVybGluZSgkdHlwZTogMSkge1xuICAgIEBpZiAkdHlwZSA9PSAyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDAuMik7XG4gICAgfSBAZWxzZSBpZiAkdHlwZSA9PSAzIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDAuMDUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG4gICAgfVxufVxuXG5AbWl4aW4gc3BhY2VyKCRydWxlLCAkdmFsdWU6IDEwMCwgJG9yaWVudGF0aW9uOiBcImhcIiwgJG11bHQ6IDEpIHtcbiAgICBAaWYgJHZhbHVlID09IDEwMCB7XG4gICAgICAgICN7JHJ1bGV9OiAjeyhtYXRoLmRpdigxMDAsIDE0KSAqICRtdWx0KX12dztcbiAgICB9IEBlbHNlIGlmICR2YWx1ZSA9PSA1MCB7XG4gICAgICAgICN7JHJ1bGV9OiAje21hdGguZGl2KDEwMCwgMjgpfXZ3O1xuICAgIH0gQGVsc2UgaWYgJHZhbHVlID09IDI1IHtcbiAgICAgICAgI3skcnVsZX06IDI1cHg7XG4gICAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gMTUge1xuICAgICAgICAjeyRydWxlfTogMTVweDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGRlYnVnIFwiU3BhY2VyIG1peGluOiBWYWx1ZSBjaG9pY2VzIGFyZSBvbmx5IDEwMCwgNTAsIDI1IGFuZCAxNVwiO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBAaWYgJHZhbHVlID09IDEwMCB7XG4gICAgICAgICAgICBAaWYgJG9yaWVudGF0aW9uID09IFwid1wiIHtcbiAgICAgICAgICAgICAgICAjeyRydWxlfTogI3sobWF0aC5kaXYoMTAwLCAxNCkgKiAkbXVsdCl9dnc7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAjeyRydWxlfTogI3sobWF0aC5kaXYoMTAwLCA3KSAqICRtdWx0KX12dztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gNTAge1xuICAgICAgICAgICAgI3skcnVsZX06ICN7bWF0aC5kaXYoMTAwLCAxNCl9dnc7XG4gICAgICAgIH0gQGVsc2UgaWYgJHZhbHVlID09IDI1IHtcbiAgICAgICAgICAgICN7JHJ1bGV9OiAxNXB4O1xuICAgICAgICB9IEBlbHNlIGlmICR2YWx1ZSA9PSAxNSB7XG4gICAgICAgICAgICBAaWYgJG9yaWVudGF0aW9uID09IFwid1wiIHtcbiAgICAgICAgICAgICAgICAjeyRydWxlfTogMTBweDtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICN7JHJ1bGV9OiAxNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBIRUFERVIgQU5JTUFUSU9OUyAqL1xuXG5AbWl4aW4gYWN0aXZlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZHVyYXRpb24gbGluZWFyO1xufVxuXG5AbWl4aW4gaGVhZGVyLWRlZmF1bHQtcHNldWRvKCR2YWx1ZSkge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgc3BhY2VyKFwiaGVpZ2h0XCIsICR2YWx1ZSk7XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAkdHJhbnNpdGlvbi1kdXJhdGlvbjtcbn1cblxuLyogRVhUUkEgU1RZTEVTICovXG4lY2lyY2xlIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuJW9wYWM2NCB7XG4gICAgLy9vcGFjaXR5OiAwLjY3O1xuICAgIGNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIC43NSk7XG59XG5cbkBtaXhpbiBoZWFkZXItdG9wLWhlaWdodCgkcnVsZSwgJHZhbHVlOiA1MCkge1xuICAgIEBpZiAoJHJ1bGUgPT0gXCJtaW5cIikge1xuICAgICAgICBtaW4taGVpZ2h0OiAjeyR2YWx1ZX1weDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgbWF4LWhlaWdodDogI3skdmFsdWV9cHg7XG4gICAgfVxufVxuXG4vKiBCQVNFIFNUWUxFUyAqL1xuXG4laDEge1xuICAgIC8vZm9udC1zaXplOiAyN3B4O1xuICAgIGZvbnQtc2l6ZTogMS45NTNyZW07XG4gICAgLy9saW5lLWhlaWdodDogMjdweDtcbiAgICBsaW5lLWhlaWdodDogMTIwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJhLUdvcm0tU2VtaWJvbGRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgLy9AaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIC8vICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICAvLyAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAvL31cbiAgICAvL0BpbmNsdWRlIG1lZGlhKFwiPj1sYXJnZVwiKSB7XG4gICAgLy8gIGZvbnQtc2l6ZTogMS45M3Z3O1xuICAgIC8vICBsaW5lLWhlaWdodDogMS45M3Z3O1xuICAgIC8vICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcbiAgICAvL31cbn1cblxuJWgyIHtcbiAgICAvL2ZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXNpemU6IDEuNTYzcmVtO1xuICAgIC8vbGluZS1oZWlnaHQ6IDE5cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LWZhbWlseTogXCJSYS1Hb3JtLVNlbWlib2xkXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDE2cHg7XG4gICAgLy8gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgLy99XG4gICAgLy9AaW5jbHVkZSBtZWRpYShcIj49bGFyZ2VcIikge1xuICAgIC8vICAgIGZvbnQtc2l6ZTogMS4zdnc7XG4gICAgLy8gICAgbGluZS1oZWlnaHQ6IDEuNXZ3O1xuICAgIC8vICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIC8vfVxufVxuXG4laDMge1xuICAgIC8vZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAvL2xpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1mYW1pbHk6IFwiUmEtR29ybS1TZW1pYm9sZFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAvL0BpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgLy8gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIC8vICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIC8vfVxuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI+PWxhcmdlXCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDEuMDd2dztcbiAgICAvLyAgICBsaW5lLWhlaWdodDogMS4ydnc7XG4gICAgLy99XG59XG5cbiVoNCB7XG4gICAgLy9mb250LXNpemU6IDExcHg7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC1mYW1pbHk6IFwiUmEtR29ybS1TZW1pYm9sZFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAvL2xpbmUtaGVpZ2h0OiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwZW07XG4gICAgQGV4dGVuZCAlb3BhYzY0O1xuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI+PWxhcmdlXCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDAuNzg1dnc7XG4gICAgLy8gICAgbGluZS1oZWlnaHQ6IDAuOTN2dztcbiAgICAvL31cbn1cbjpyb290IHtcbiAgICAtLXJpZ3NhcmtpdmV0LS1mb250LXNpemU6IDE1cHg7XG4gICAgZm9udC1zaXplOiB2YXIoLS1yaWdzYXJraXZldC0tZm9udC1zaXplKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuICAgICAgICAtLXJpZ3NhcmtpdmV0LS1mb250LXNpemU6IDE0cHg7XG4gICAgfVxufVxuJWJvZHkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tcmlnc2Fya2l2ZXQtLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG5cbiAgICAvL0BpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgLy8gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIC8vICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIC8vfVxuICAgIC8vQGluY2x1ZGUgbWVkaWEoXCI+PWxhcmdlXCIpIHtcbiAgICAvLyAgICBmb250LXNpemU6IDEuMDd2dztcbiAgICAvLyAgICBsaW5lLWhlaWdodDogMS4ydnc7XG4gICAgLy99XG5cblxufVxuXG4lcCB7XG4gICAgQGV4dGVuZCAlb3BhYzY0O1xuICAgIC8vY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpO1xuICAgIC8vY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgJ2RhcmstYWx0Jyk7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTIwJTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgS2l0dHkgR2lyYXVkZWwgKEBraXR0eWdpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2Vcbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSBcInNhc3M6bWFwXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvZ2VuZXJhbFwiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcInZhcmlhYmxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvbWl4aW5zXCI7XG5cbjpyb290IHtcbiAgICAvKk1heCB3aWR0aCovXG4gICAgLS1tYXgtd2lkdGg6IDE0MDBweDtcblxuICAgIC8qU3BhY2VycyovXG4gICAgLS1zcGFjZTIwMGg6IDE0LjI4NTcxNDI4NTcxNDI4NnZ3O1xuICAgIC0tc3BhY2UxMDBoOiA3LjE0Mjg1NzE0Mjg1NzE0M3Z3O1xuICAgIC0tc3BhY2U1MGg6IDMuNTcxNDI4NTcxNDI4NTcxdnc7XG5cbiAgICAtLXNwYWNlMjVoOiAxLjU2M3JlbTtcbiAgICAtLXNwYWNlMTVoOiAxcmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAgIDpyb290e1xuICAgICAgICAtLXNwYWNlMjAwaDogY2FsYyh2YXIoLS1tYXgtd2lkdGgpLzcpO1xuICAgICAgICAtLXNwYWNlMTAwaDogY2FsYyh2YXIoLS1tYXgtd2lkdGgpLzE0KTtcbiAgICAgICAgLS1zcGFjZTUwaDogY2FsYyh2YXIoLS1tYXgtd2lkdGgpLzI4KTtcbiAgICB9XG59XG5cbi8qISBjcml0aWNhbDpzdGFydCEgKi9cbmh0bWwge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi8vQGltcG9ydCBcInV0aWxpdGllcy9zYW5pdGl6ZVwiO1xuYm9keSB7XG4gICAgLy8gZm9udC1mYW1pbHk6IFwiSW50ZXJcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1mYW1pbHk6IFwiUmEtSGFyYWxkXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKTtcbn1cblxuKiB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgaHlwaGVuczogbm9uZTtcbn1cblxuc3Ryb25nIHtcbiAgICBmb250LWZhbWlseTogXCJSYS1IYXJhbGQtU2VtaWJvbGRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICAgIGZvbnQtZmFtaWx5OiBcIlJhLUdvcm0tU2VtaWJvbGRcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuLy8gSUNPTlNcbi5pY29uIHtcbiAgICB3aWR0aDogMWVtO1xuICAgIGhlaWdodDogMWVtO1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgfVxufVxuXG4uaWNvbi0tYXJyb3cge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxufVxuXG4uaWNvbi0tc2VhcmNoIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgIH1cbn1cblxuLnNwYWNlckgxMDAge1xuICAgIGhlaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbn1cblxuLnNwYWNlckg1MCB7XG4gICAgaGVpZ2h0OiB2YXIoLS1zcGFjZTUwaCk7XG59XG5cbi5zcGFjZXJIMjUge1xuICAgIGhlaWdodDogdmFyKC0tc3BhY2UyNWgpO1xufVxuXG4uc3BhY2VySDE1IHtcbiAgICBoZWlnaHQ6IHZhcigtLXNwYWNlMTVoKTtcbn1cblxuLnNwYWNlclcxMDAge1xuICAgIHdpZHRoOiB2YXIoLS1zcGFjZTEwMGgpO1xufVxuXG4uc3BhY2VyVzE1IHtcbiAgICB3aWR0aDogdmFyKC0tc3BhY2UxNWgpO1xufVxuXG5ib2R5IHtcbiAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG4gICAgbWFyZ2luOiAwO1xuICAgIEBleHRlbmQgJWJvZHk7XG59XG5cbm1haW5bcm9sZT1cIm1haW5cIl0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcblxuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICB9XG59XG5cbmFydGljbGUge1xuICAgICYudGV4dHBhbmVsIHtcbiAgICAgICAgc2VjdGlvbiB7XG4gICAgICAgICAgICAqOm5vdChsaSkge1xuICAgICAgICAgICAgICAgICsqIHtcbiAgICAgICAgICAgICAgICAgICAgLy9AaW5jbHVkZSBzcGFjZXIoJ21hcmdpbi10b3AnLCAyNSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC50YWJsZSB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICAgICsqIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZDpcbiAgICAgICAgICAgIC8vIC8qIFNoYWRvdyBjb3ZlcnMgKi9cbiAgICAgICAgICAgIC8vIGxpbmVhci1ncmFkaWVudCh3aGl0ZSAzMCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkpLFxuICAgICAgICAgICAgLy8gbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LDI1NSwyNTUsMCksIHdoaXRlIDcwJSkgMCAxMDAlLFxuICAgICAgICAgICAgLy8gLyogU2hhZG93cyAqL1xuICAgICAgICAgICAgLy8gcmFkaWFsLWdyYWRpZW50KDUwJSAwLCBmYXJ0aGVzdC1zaWRlLCByZ2JhKDAsMCwwLC4yKSwgcmdiYSgwLDAsMCwwKSksXG4gICAgICAgICAgICAvLyByYWRpYWwtZ3JhZGllbnQoNTAlIDEwMCUsZmFydGhlc3Qtc2lkZSwgcmdiYSgwLDAsMCwuMiksIHJnYmEoMCwwLDAsMCkpIDAgMTAwJTtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQ6XG4gICAgICAgICAgICAvLyAvKiBTaGFkb3cgY292ZXJzICovXG4gICAgICAgICAgICAvLyBsaW5lYXItZ3JhZGllbnQod2hpdGUgMzAlLCByZ2JhKDI1NSwyNTUsMjU1LDApKSxcbiAgICAgICAgICAgIC8vIGxpbmVhci1ncmFkaWVudChyZ2JhKDI1NSwyNTUsMjU1LDApLCB3aGl0ZSA3MCUpIDAgMTAwJSxcbiAgICAgICAgICAgIC8vIC8qIFNoYWRvd3MgKi9cbiAgICAgICAgICAgIC8vIHJhZGlhbC1ncmFkaWVudChmYXJ0aGVzdC1zaWRlIGF0IDUwJSAwLCByZ2JhKDAsMCwwLC4yKSwgcmdiYSgwLDAsMCwwKSksXG4gICAgICAgICAgICAvLyByYWRpYWwtZ3JhZGllbnQoZmFydGhlc3Qtc2lkZSBhdCA1MCUgMTAwJSwgcmdiYSgwLDAsMCwuMiksIHJnYmEoMCwwLDAsMCkpIDAgMTAwJTtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtc2l6ZTogNDBweCAxMDAlICwgNDBweCAxMDAlICwgMTRweCAxMDAlICwgMTRweCAxMDAlO1xuICAgICAgICAgICAgLy8gYmFja2dyb3VuZC1hdHRhY2htZW50OiBsb2NhbCwgbG9jYWwsIHNjcm9sbCwgc2Nyb2xsO1xuICAgICAgICAgICAgPi50YWJsZV9fd3JhcCB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBwIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICAvLyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5saW5rIHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICVoNDtcbiAgICAgICAgICAgICAgICAmLmxpbmstLWxhcmdlIHtcbiAgICAgICAgICAgICAgICAgICAgQGV4dGVuZCAlaDM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLnBhbGV0dGUtLTUsXG4ucGFsZXR0ZS0tNiB7XG4gICAgYXJ0aWNsZSB7XG5cbiAgICAgICAgcCB7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZGFya2VuKG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSwgMTUlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKTtcbiAgICB9XG59XG5cbmgxLFxuLmgxIHtcbiAgICBAZXh0ZW5kICVoMTtcbn1cblxuaDIsXG4uaDIge1xuICAgIEBleHRlbmQgJWgyO1xufVxuXG5oMyxcbi5oMyB7XG4gICAgQGV4dGVuZCAlaDM7XG59XG5cbmg0IHtcbiAgICBAZXh0ZW5kICVoNDtcbn1cblxuaDUsXG5oNiB7XG4gICAgQGV4dGVuZCAlaDQ7XG59XG5cbnAge1xuICAgIEBleHRlbmQgJXA7XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG59XG5cbmEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG51bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5tY2UtY29udGVudC1ib2R5IHtcbiAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgb2wge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWwgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG59XG5cbnVsIHtcbiAgICAmLnVsLS1oeXBoZW5lZCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwi4oCTXCI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbnBpY3R1cmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gRk9STVNcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICAgIC8qIGNsZWFycyB0aGUg4oCYWOKAmSBmcm9tIEludGVybmV0IEV4cGxvcmVyICovXG4gICAgJjo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gICAgJjo6LW1zLXJldmVhbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuICAgIC8qIGNsZWFycyB0aGUg4oCYWOKAmSBmcm9tIENocm9tZSAqL1xuICAgICY6Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sXG4gICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnZpc3VhbGx5LWhpZGRlbiB7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogMXB4O1xufVxuXG4uZXh0cmEge1xuICAgIC8qIFRoaXMgd2lsbCBiZSByZXRhaW5lZCAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5cbi8qIEVYVFJBIENMQVNTRVMgKi9cblxuLnN3YXRjaGVzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5zd2F0Y2hlc19faXRlbSB7XG4gICAgQGV4dGVuZCAlY2lyY2xlO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiA2ZW07XG4gICAgd2lkdGg6IDZlbTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi8vIEJPUkRFUlNcbi5ib3JkZXJsaW5lMSB7XG4gICAgQGluY2x1ZGUgYm9yZGVybGluZSgxKTtcbn1cblxuLmJvcmRlcmxpbmUyIHtcbiAgICBAaW5jbHVkZSBib3JkZXJsaW5lKDIpO1xufVxuXG4uYm9yZGVybGluZTMge1xuICAgIEBpbmNsdWRlIGJvcmRlcmxpbmUoMyk7XG59XG5cbi8vIENPTE9SU1xuQGVhY2ggJGNvbG9yLFxuJGhleCBpbiAkY29sb3JzIHtcbiAgICAuY29sb3ItLSN7JGNvbG9yfSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZXg7XG4gICAgfVxufVxuXG4ucGFsZXR0ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAkaTogMDtcbiAgICBAZWFjaCAkbmFtZSxcbiAgICAkaXRlbSBpbiAkcGFsZXR0ZSB7XG4gICAgICAgICRpOiAkaSArIDE7XG4gICAgICAgICYucGFsZXR0ZS0tI3skaX0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkaXRlbSwgYmcpO1xuICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJGl0ZW0sIHR4dCk7XG4gICAgICAgICAgICB1bCBsaSxcbiAgICAgICAgICAgIG9sIGxpLFxuICAgICAgICAgICAgcCxcbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogbWFwLmdldCgkaXRlbSwgdHh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gUMOlIGFsbGUgZmFydmVkZSBiYWdncnVuZCBza2FsIGFsIGJyw7hkdGVrc3QgdsOmcmUgaSAxMDAlIHVhbmbDpmd0ZXQgYWYgb20gZGV0IGVyIGVuIG3DuHJrZSBlbGxlciBkZW4gbHlzZSBmYXJ2ZS5cbi5wYWxldHRlIHtcbiAgICAmLnBhbGV0dGUtLTEsXG4gICAgJi5wYWxldHRlLS0yLFxuICAgICYucGFsZXR0ZS0tMyxcbiAgICAmLnBhbGV0dGUtLTQsXG4gICAgJi5wYWxldHRlLS01LFxuICAgICYucGFsZXR0ZS0tNiB7XG4gICAgICAgIHVsIGxpLFxuICAgICAgICBvbCBsaSxcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxXG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuLyoqXG4qIENPTlRFTlQgQVJFQVxuKiovXG5cbi5jb250ZW50IHtcbiAgICBAaW5jbHVkZSBzcGFjZXIoXCJtaW4taGVpZ2h0XCIsIDEwMCwgXCJoXCIsIDIpO1xufVxuXG4ucHJpbnRfcGFnZV9saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5cbi8qISBjcml0aWNhbDplbmQgKi9cblxuXG4vKipcbiogVkVORE9SU1xuKiovXG5cbkBpbXBvcnQgXCJ2ZW5kb3JzL2FjY29yZGlvblwiO1xuQGltcG9ydCBcInZlbmRvcnMvZHJvcGRvd25cIjtcblxuLyoqXG4qIENPTVBPTkVOVFNcbioqL1xuXG5AaW1wb3J0IFwiY29tcG9uZW50cy9pY29uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9uYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9icmFuZGluZ1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnV0dG9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zZWFyY2hiYXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RleHRib3hcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RleHRwYW5lbFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYWNjb3JkaW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9saXN0aW5nc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY2FtcGFpZ25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NpZGViYXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Jsb2Nrc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2ltcGxlYm94XCI7XG5AaW1wb3J0IFwiYmxvY2tzL2hlcm9cIjtcblxuLyoqXG4qIEdFTkVSQUwgT1IgQ1JJVElDQUwgQkxPQ0tTXG4qKi9cblxuQGltcG9ydCBcImJsb2Nrcy9oZWFkZXJcIjtcbkBpbXBvcnQgXCJibG9ja3MvZm9vdGVyXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NhbXBhaWduXCI7XG5AaW1wb3J0IFwiYmxvY2tzL2NvbnRhY3RcIjtcbkBpbXBvcnQgXCJibG9ja3MvY29udGFjdGluZm9cIjtcbkBpbXBvcnQgXCJibG9ja3Mvc2VwYXJhdGlvbmxpbmVcIjtcbi8vQGltcG9ydCBcImJsb2Nrcy9oYXJtb25pY2FcIjtcbkBpbXBvcnQgXCJwcmludFwiO1xuXG4vKiBOb3QgZm91bmQgUGFnZSAqL1xuLm5vdGZvdW5kX3dyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNC4zLCAyMCkpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTUwaCk7XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyohXG4gKiBBY2NvcmRpb24gdjMuMS4xXG4gKiBTaW1wbGUgYWNjb3JkaW9uIGNyZWF0ZWQgaW4gcHVyZSBKYXZhc2NyaXB0LlxuICogaHR0cHM6Ly9naXRodWIuY29tL21pY2h1MmsvQWNjb3JkaW9uXG4gKlxuICogQ29weXJpZ2h0IChjKSBNaWNoYcWCIFN0cnVtcGZcbiAqIFB1Ymxpc2hlZCB1bmRlciBNSVQgTGljZW5zZVxuICovXG5cbiAvKiBOb3RlOiByZW5hbWVkIHRvIC5hY2NvcmRpb24gdG8gYXZvaWQgY29uZmxpY3RzICovXG5cblxuJGNvbG9yLXdoaXRlOiAjZmZmO1xuJGNvbG9yLWxpZ2h0LWdyZXk6ICNlZWU7XG4kY29sb3ItZ3JleTogIzhhOGE4YTtcbiRjb2xvci1ibGFjazogbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG5cbi5hY2NvcmRvbl9faXRlbSB7XG4gLy8gbWFyZ2luLXRvcDogMTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAuYWNjb3Jkb25fX2hlYWRlciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuYWNjb3Jkb25fX3RyaWdnZXIge1xuICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMHB4IDMwcHggMTBweCAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2U7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiAwO1xuXG4gICAgc3BhbiB7XG4gICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgLy8gICBjb250ZW50OiAnKyc7XG4gIC8vICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgIC8vICAgd2lkdGg6IDE1cHg7XG4gICAvLyAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vICAgIHJpZ2h0OiAxMHB4O1xuIC8vICAgICB0b3A6IDUwJTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vY29sb3I6ICRjb2xvci1ncmV5O1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhbmVsIGNsYXNzXG4gIC5hY2NvcmRvbl9fcGFuZWwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuXG4gICAgLmFjY29yZG9uX190ZXh0IHtcbiAgICAgIC8vZm9udDogMTVweC8yNHB4ICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4gICAgICBjb2xvcjogJGNvbG9yLWJsYWNrO1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cblxuICAvLyBIaWRlIGNvbnRlbnQgd2hlbiBKYXZhc2NyaXB0IGlzIGVuYWJsZWRcbiAgJi5qcy1lbmFibGVkIHtcbiAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAvLyBBY3RpdmUgY2xhc3NcbiAgJi5pcy1hY3RpdmUge1xuICAgIC5hY2NvcmRvbl9fcGFuZWwge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAmID4gLmFjY29yZG9uX19oZWFkZXIgLmFjY29yZG9uX190cmlnZ2VyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1xcMjAxMyc7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkaGVpZ2h0OiAzMHB4ICFkZWZhdWx0O1xuJHdoaXRlOiAjZmZmZmZmICFkZWZhdWx0O1xuJGZvbnQtY29sb3I6ICM2NjY2NjYgIWRlZmF1bHQ7XG4kZm9udC1wbGFjZWhvbGRlci1jb2xvcjogIzhhOGE4YSAhZGVmYXVsdDtcbiRmb250LWRpc2FibGVkLWNvbG9yOiAjZGVkZWRlICFkZWZhdWx0O1xuJHByaW1hcnktY29sb3I6ICM1ODk3ZmIgIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiAjZGNkZWUyICFkZWZhdWx0O1xuJHNlYXJjaC1oaWdobGlnaHQtY29sb3I6ICNmZmZiOGMgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1czogNHB4ICFkZWZhdWx0O1xuJHNwYWNpbmctbDogOHB4ICFkZWZhdWx0O1xuJHNwYWNpbmctbTogNnB4ICFkZWZhdWx0O1xuJHNwYWNpbmctczogNHB4ICFkZWZhdWx0O1xuXG4uc3MtbWFpbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICRmb250LWNvbG9yO1xuICB3aWR0aDogMTAwJTtcblxuICAuc3Mtc2luZ2xlLXNlbGVjdGVkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgcGFkZGluZzogJHNwYWNpbmctbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnM7XG5cbiAgICAmLnNzLWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRib3JkZXItY29sb3I7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cblxuICAgICYuc3Mtb3Blbi1hYm92ZSB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xuICAgIH1cbiAgICAmLnNzLW9wZW4tYmVsb3cge1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBweDtcbiAgICB9XG5cbiAgICAucGxhY2Vob2xkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7ICBcbiAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7ICAgIFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lOyAgICAgIFxuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICoge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5zcy1kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3MtZGVzZWxlY3Qge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW46IDAgJHNwYWNpbmctbSAwICRzcGFjaW5nLW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgJi5zcy1oaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3MtYXJyb3cge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICBtYXJnaW46IDAgJHNwYWNpbmctbSAwICRzcGFjaW5nLW07XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBib3JkZXI6IHNvbGlkICRmb250LWNvbG9yO1xuICAgICAgICBib3JkZXItd2lkdGg6IDAgMnB4IDJweCAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDNweDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycywgbWFyZ2luIC4ycztcblxuICAgICAgICAmLmFycm93LXVwIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICAgICAgICBtYXJnaW46IDNweCAwIDAgMDtcbiAgICAgICAgfVxuICAgICAgICAmLmFycm93LWRvd24ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICBtYXJnaW46IC0zcHggMCAwIDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc3MtbXVsdGktc2VsZWN0ZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwIDAgMCAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzO1xuXG4gICAgJi5zcy1kaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgLnNzLXZhbHVlcyB7XG4gICAgICAgIC5zcy1kaXNhYmxlZCB7XG4gICAgICAgICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNzLXZhbHVlIHtcbiAgICAgICAgICAuc3MtdmFsdWUtZGVsZXRlIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zcy1vcGVuLWFib3ZlIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBweDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwcHg7XG4gICAgfVxuICAgICYuc3Mtb3Blbi1iZWxvdyB7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xuICAgIH1cblxuICAgIC5zcy12YWx1ZXMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuXG4gICAgICAuc3MtZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiA0cHggNXB4O1xuICAgICAgICBtYXJnaW46IDJweCAwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjb2xvcjogJGZvbnQtZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHNjYWxlSW4ge1xuICAgICAgICAwJSB7dHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDt9XG4gICAgICAgIDEwMCUge3RyYW5zZm9ybTogc2NhbGUoMSk7IG9wYWNpdHk6IDE7fVxuICAgICAgfVxuICAgICAgQGtleWZyYW1lcyBzY2FsZU91dCB7XG4gICAgICAgIDAlIHt0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAxO31cbiAgICAgICAgMTAwJSB7dHJhbnNmb3JtOiBzY2FsZSgwKTsgb3BhY2l0eTogMDt9XG4gICAgICB9XG5cbiAgICAgIC5zcy12YWx1ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICAgIG1hcmdpbjogM3B4IDVweCAzcHggMHB4O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzY2FsZUluO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IC4ycztcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG5cbiAgICAgICAgJi5zcy1vdXQge1xuICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBzY2FsZU91dDtcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IC4ycztcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zcy12YWx1ZS1kZWxldGUge1xuICAgICAgICAgIG1hcmdpbjogMCAwIDAgNXB4O1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5zcy1hZGQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMSAzcHg7XG4gICAgICBtYXJnaW46IDlweCAxMnB4IDAgNXB4O1xuXG4gICAgICAuc3MtcGx1cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9udC1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnM7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGZvbnQtY29sb3I7XG4gICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgbGVmdDogLTRweDtcbiAgICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc3MtY3Jvc3Mge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG59XG4uc3MtY29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogLTFweCAwIDAgMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggJGJvcmRlci1jb2xvcjtcbiAgei1pbmRleDogMTAxMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgdG9wO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzLCBvcGFjaXR5IC4ycztcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoMCk7XG5cbiAgJi5zcy1vcGVuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICB9XG5cbiAgLnNzLXNlYXJjaCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHBhZGRpbmc6ICRzcGFjaW5nLWwgJHNwYWNpbmctbCAkc3BhY2luZy1tICRzcGFjaW5nLWw7XG5cbiAgICAmLnNzLWhpZGUge1xuICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgcGFkZGluZzogMHB4IDBweCAwcHggMHB4O1xuICAgICAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBhZGRpbmc6IDBweCAwcHggMHB4IDBweDtcbiAgICAgICAgbWFyZ2luOiAwcHggMHB4IDBweCAwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLW0gJHNwYWNpbmctbDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNzLWFkZGFibGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZsZXg6IDAgMCAzMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgbWFyZ2luOiAwIDAgMCA4cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIC5zcy1hZGRhYmxlIHtcbiAgICBwYWRkaW5nLXRvcDogMHB4O1xuICB9XG5cbiAgLnNzLWxpc3Qge1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAuc3Mtb3B0Z3JvdXAge1xuICAgICAgLnNzLW9wdGdyb3VwLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHggNnB4IDEwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuXG4gICAgICAuc3Mtb3B0aW9uIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDZweCA2cHggMjVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3Mtb3B0Z3JvdXAtbGFiZWwtc2VsZWN0YWJsZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3Mtb3B0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDZweCAxMHB4IDZweCAxMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICoge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsICYuc3MtaGlnaGxpZ2h0ZWQge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5zcy1kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIGNvbG9yOiAkZm9udC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCguc3MtZGlzYWJsZWQpLnNzLW9wdGlvbi1zZWxlY3RlZCB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkcHJpbWFyeS1jb2xvciwgLjEpO1xuICAgICAgfVxuXG4gICAgICAmLnNzLWhpZGUgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAgIC5zcy1zZWFyY2gtaGlnaGxpZ2h0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlYXJjaC1oaWdobGlnaHQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuLyoqIE9WRVJSSURFUyAqKi9cbi5zcy1tYWluIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIC5zcy1zaW5nbGUtc2VsZWN0ZWQge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTRweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgJjpub3QoLnNzLW9wZW4tYmVsb3cpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxuICAgIC5wbGFjZWhvbGRlciB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG4gICAgLnNzLWFycm93IHtcbiAgICAgIFxuICAgICAgc3BhbiB7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG59XG5cbi5zcy1jb250ZW50IHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAuc3MtbGlzdCB7XG4gICAgLnNzLW9wdGlvbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDBweDtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLmljb24ge1xuICAgICYuaWNvbi0tYmFycyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxufVxuXG4uaWNvbi0taG92ZXJmeCB7XG4gICAgYnV0dG9uOmhvdmVyICYge1xuICAgICAgICAmLmljb24tLWFycm93IHtcbiAgICAgICAgICAgIGxpbmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEuNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaWNvbi0tYXJyb3cge1xuICAgICAgICBsaW5lIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBQcmludCBpY29uIG9uIGFsbCBwYWdlc1xuLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgZGl2LnByaW50LXBhZ2UsXG4gICAgc3Bhbi5wcmludC1wYWdlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2l0ZS1mb290ZXIge1xuICAgIHNwYW4ucHJpbnQtcGFnZSB7XG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiW3JvbGU9XCJtZW51aXRlbVwiXSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubmF2aWdhdGlvbnMge1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAgdmFyKC0tc3BhY2UyNWgpO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxNCkpO1xuICAgIHotaW5kZXg6IDQyO1xuICAgIGhlaWdodDogMDtcblxuICAgIC5zdGlja3kge1xuICAgICAgICB0b3A6ICB2YXIoLS1zcGFjZTI1aCk7XG4gICAgfVxuXG4gICAgJi5jb250ZW50X19uYXZpZ2F0aW9ucyB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZHVyYXRpb247XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZTc7XG5cbiAgICAgICAgJi5mYWRlLW91dCB7XG4gICAgICAgICAgICBhbmltYXRpb246IGtmLWZhZGUgJHRyYW5zaXRpb24tZHVyYXRpb24gZm9yd2FyZHM7XG4gICAgICAgIH1cblxuICAgICAgICAmLmZhZGUtaW4ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaGlkZGVuIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICBAa2V5ZnJhbWVzIGtmLWZhZGUge1xuICAgICAgICAgICAgMCUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDEwMCUge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLmxpc3RtZW51IHtcbiAgICA+IHVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgID4gbGkge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgICAgLm1lbnUtaGVhZGluZy13cmFwID4gaDIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1lbnUtaGVhZGluZy13cmFwID4gYSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAlaDI7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMTVoKTtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgKyBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICsgbGkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9vdGVyX19tZW51IHtcbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBAZXh0ZW5kICVoMjtcblxuICAgIGZvbnQtc2l6ZTogMS41NjNyZW07XG59XG5cbi5mb290ZXJfX21lbnUtLXNlY29uZGFyeSB7XG4gICAgQGV4dGVuZCAlYm9keTtcbiAgICBAZXh0ZW5kICVwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgKyBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlcnZpY2VtZW51IHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAuc2VydmljZW1lbnVfX2l0ZW0ge1xuICAgICAgICAgICAgKyAuc2VydmljZW1lbnVfX2l0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDI3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5leHRuYXYge1xuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAZXh0ZW5kICVoNDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW0gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbkBpbXBvcnQgXCJsYW5nbWVudVwiO1xuQGltcG9ydCBcInRvY1wiO1xuQGltcG9ydCBcImJyZWFkY3J1bWJzXCI7XG4iLCJcbi5sYW5nbWVudSB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ubGFuZ21lbnVfX29wdGlvbiB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiBpbmhlcml0O1xuICArIC5sYW5nbWVudV9fb3B0aW9uIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgQGV4dGVuZCAlb3BhYzY0O1xuICAgIH1cbiAgfVxuXG4gICY6bm90KC5hY3RpdmUpIHtcbiAgICBAZXh0ZW5kICVvcGFjNjQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59IiwiLnRvYyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWU3O1xuICAgIEBtZWRpYSBhbGwgYW5kICh3aWR0aDogNzY4cHgpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMjEwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlNztcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZTI1aCk7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogI3skZ3JpZHVuaXRzaXplICogMn12dztcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC00cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi50b2NfX2l0ZW0ge1xuICAgIC8vcGFkZGluZy1sZWZ0OiAjeyRncmlkdW5pdHNpemV9dnc7XG4gICAgQG1lZGlhIGFsbCBhbmQgKHdpZHRoOiA3NjhweCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDU0cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2VlZWVlNztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEBtZWRpYSBub3QgYWxsIGFuZCAobWluLXJlc29sdXRpb246LjAwMWRwY20pXG4gICAgICAgIC8vIHtcbiAgICAgICAgLy8gICBAc3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTpub25lKSBhbmQgKHN0cm9rZS1jb2xvcjp0cmFuc3BhcmVudCkge1xuICAgICAgICAvLyAgICAgYmFja2dyb3VuZC1jbGlwOiB1bnNldDtcbiAgICAgICAgLy8gICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB1bnNldDtcbiAgICAgICAgLy8gICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB1bnNldDtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICBib3R0b206IC02cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTVweCk7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc3BhY2U1MGgpO1xuXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zNXMgZWFzZS1pbjtcbiAgICAgICAgfVxuXG4gICAgICAgICYudG9jX19pdGVtLS1hY3RpdmUge1xuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiUmEtSGFyYWxkLVNlbWlib2xkXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDMpKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgdG9wOiAwLjVlbTtcbiAgICAgICAgICAgIC8vbGVmdDogY2FsYygje21hdGguZGl2KCRncmlkdW5pdHNpemUsIDIpfXZ3IC0gMjBweCk7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDMzJSAtIDUwcHgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zNXMgZWFzZS1pbjtcbiAgICAgICAgfVxuICAgICAgICAmLnRvY19faXRlbS0tYWN0aXZlIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICAgICAgICAgICAgICAgIC8vQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgICAgICAgICAgICAgLy8gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAgICAgICAgICAgICAvL31cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICArIC50b2NfX2l0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41ZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAdXNlIFwic2FzczptYXRoXCI7XG5cbi5icmVhZGNydW1ic19fY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAvL21hcmdpbi1yaWdodDogdmFyKC0tc3BhY2U1MGgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG4gICAgJi0tYmFjayB7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgMTIpKTtcbiAgICB9XG5cbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgICAvL3BhZGRpbmctdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICB3aWR0aDogdmFyKC0tc3BhY2UyMDBoKTtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAvLyAgIEBpbmNsdWRlIHNwYWNlcigncGFkZGluZy10b3AnLCAxNSwgJ2gnKTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZTE1aCk7XG4gICAgICAgICAgICBAZXh0ZW5kICVoNDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tc3BhY2UxMDBoKSk7XG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICAgICAgICAgIGxpIGEge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgfVxuXG4gICAgLmJyZWFkY3J1bWJzX19pdGVtIHtcbiAgICAgICAgbWluLWhlaWdodDogMjRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNnB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgfVxuICAgICAgICArLmJyZWFkY3J1bWJzX19pdGVtIHtcbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgICAgICAgICAgICAgICAvL3doaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcvJztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG5cbiIsIi5icmFuZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIEBpbmNsdWRlIGhlYWRlci10b3AtaGVpZ2h0KFwibWF4XCIpO1xuXG4gICAgLyogICAuYnRuIHtcbiAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgNikpO1xuICAgIH0gKi9cblxuICAgIC5sb2dvIHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyLCA2KSk7XG4gICAgfVxuXG4gICAgLnNpdGUtbmFtZSB7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgNikpO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgQGV4dGVuZCAlaDI7XG5cbiAgICAgICAgLnNpdGUtbmFtZS1pY29uIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgMTIpKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCA0NSUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxMikpO1xuICAgICAgICB9XG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxMikpO1xuICAgICAgICB9XG4gICAgICAgIC8qICAgICAuaWNvbi0tbG9nbyB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNjAlKTtcbiAgICAgICAgfSAqL1xuXG4gICAgICAgIC5zaXRlLW5hbWUge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxMikpO1xuXG4gICAgICAgICAgICAuc2l0ZS1uYW1lLWljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgNikpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDIwJSwgNDAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qICAgQGluY2x1ZGUgbWVkaWEoXCI+PXRhYmxldFwiKSB7XG4gICAgICAuaWNvbi0tbG9nbyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAlLCAtNDUlKTtcbiAgICAgIH1cbiAgICB9ICovXG59XG4iLCJbcm9sZT1cImxpbmtcIl0sXG5bcm9sZT1cImJ1dHRvblwiXSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmJ1dHRvbiB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMXB4IGF1dG8gIzAwMDtcbiAgfVxufVxuXG4ubGluay1idXR0b24ge1xuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpO1xuICAgIC8vZm9udC1zaXplOiAxMnB4OyAgLy8gZGlzYWJsZWQgYWNjb3JkaW5nIHRvIFQyMTEwM1xuICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAxNDAwcHgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIC8vY29udGVudDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTVRZaUlHaGxhV2RvZEQwaU1UUWlJSFpwWlhkQ2IzZzlJakFnTUNBeE5pQXhOQ0lnWm1sc2JEMGlibTl1WlNJZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWo0S1BIQmhkR2dnWkQwaVRUY3VPRFV4T0RFZ01Vd3hNeTQ1T1RrNUlEY3VNVFE0TVV3NExqRTBNVE00SURFekxqQXdOallpSUhOMGNtOXJaVDBpSXpNd01rRXpPQ0lnYzNSeWIydGxMWGRwWkhSb1BTSXlJaTgrQ2p4c2FXNWxJSGd4UFNJeE5DSWdlVEU5SWpjdU1UUTRNVGtpSUhneVBTSXRPQzQzTkRJeU9HVXRNRGdpSUhreVBTSTNMakUwT0RFNUlpQnpkSEp2YTJVOUlpTXpNREpCTXpnaUlITjBjbTlyWlMxM2FXUjBhRDBpTWlJdlBnbzhMM04yWno0S1wiKTtcbiAgICAgIEBpbmNsdWRlIHNwYWNlcihcInBhZGRpbmctbGVmdFwiLCAxNSwgXCJ3XCIpO1xuICAgICAgLy92ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgLy9wb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAvL3RvcDogMnB4O1xuICAgICAgLy93aWR0aDogMTZweDtcbiAgICAgIC8vaGVpZ2h0OiAxMDAlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjNhV1IwYUQwaU1UWWlJR2hsYVdkb2REMGlNVFFpSUhacFpYZENiM2c5SWpBZ01DQXhOaUF4TkNJZ1ptbHNiRDBpYm05dVpTSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklqNEtQSEJoZEdnZ1pEMGlUVGN1T0RVeE9ERWdNVXd4TXk0NU9UazVJRGN1TVRRNE1VdzRMakUwTVRNNElERXpMakF3TmpZaUlITjBjbTlyWlQwaUl6TXdNa0V6T0NJZ2MzUnliMnRsTFhkcFpIUm9QU0l5SWk4K0NqeHNhVzVsSUhneFBTSXhOQ0lnZVRFOUlqY3VNVFE0TVRraUlIZ3lQU0l0T0M0M05ESXlPR1V0TURnaUlIa3lQU0kzTGpFME9ERTVJaUJ6ZEhKdmEyVTlJaU16TURKQk16Z2lJSE4wY205clpTMTNhV1IwYUQwaU1pSXZQZ284TDNOMlp6NEtcIik7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGF1dG87XG4gICAgfVxuICB9XG59XG4ucGFsZXR0ZS0tNSxcbi5wYWxldHRlLS02IHtcbiAgLmxpbmstYnV0dG9uIHtcbiAgICBhIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKTtcbiAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwibGlnaHRcIikgIWltcG9ydGFudDtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBmaWx0ZXI6IGludmVydCgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgYSB7fVxuICBzdmcuaWNvbiB7XG4gICAgcGF0aCB7XG4gICAgICBzdHJva2U6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4uYnRuIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tZW51X19pdGVtIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlJhLUhhcmFsZC1TZW1pYm9sZFwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgfVxuXG4gIC8qIGFycm93IGljb24gd2l0aCBob3ZlciBhbmltYXRpb24gKi9cbiAgLmljb24tLWFycm93IHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB3aWR0aDogMWVtO1xuICAgIGhlaWdodDogMWVtO1xuICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIGxpbmUsXG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICB9XG4gICAgbGluZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB9XG4gICAgcGF0aCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgLmljb24tLWFycm93IHtcbiAgICAgIGxpbmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxLjUpO1xuICAgICAgfVxuICAgICAgcGF0aCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWVudV9faXRlbS0tYWN0aXZlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgICAgQGluY2x1ZGUgYm9yZGVybGluZSgxKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICYubWVudV9faXRlbS0tYWN0aXZlIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AaW1wb3J0IFwiYnVyZ2VyXCI7XG4iLCIvLyBBTklNQVRJT05cblxuQGtleWZyYW1lcyBiYXIxIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoLTEuNXB4LCAzcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyNCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKC00cHgsIC04cHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMS1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoLTJweCwgNHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMi1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyMy1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgYmFyNC1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgtNHB4LCAtOHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNXB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgfVxuXG59XG5cbi5idG4tLWJ1cmdlciB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgbWF4LXdpZHRoOiBtYXgtY29udGVudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIFxuICAuaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIFxuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICBcbiAgICAuaWNvbl9fcGF0aCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAmLmljb25fX3BhdGgtLTIsXG4gICAgICAmLmljb25fX3BhdGgtLTMge1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICBcbn1cblxuXG5AaW5jbHVkZSBtZWRpYSgnZmluZ2VyJykge1xuICAuYnRuLS1idXJnZXIge1xuICAgICYuYWN0aXZle1xuICAgICAgLmljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7ICBcbiAgICAgIH1cbiAgICAgIC5pY29uX19wYXRoLS0xIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjEgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgICAuaWNvbl9fcGF0aC0tMiB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIyIGZvcndhcmRzO1xuICAgICAgfVxuICAgICAgLmljb25fX3BhdGgtLTMge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMyBmb3J3YXJkcztcbiAgICAgIH1cbiAgICAgIC5pY29uX19wYXRoLS00IHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjQgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgICAuaWNvbl9fcGF0aCB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC41cztcbiAgICAgIH1cbiAgICB9ICBcbiAgICAmLmRlYWN0aXZhdGluZyAuaWNvbiB7XG4gICAgICAuaWNvbl9fcGF0aC0tMSB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIxLW91dCBiYWNrd2FyZHM7XG4gICAgICB9XG4gICAgICAgLmljb25fX3BhdGgtLTIge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMi1vdXQgYmFja3dhcmRzO1xuICAgICAgfVxuICAgICAgIC5pY29uX19wYXRoLS0zIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjMtb3V0IGJhY2t3YXJkcztcbiAgICAgIH1cbiAgICAgICAuaWNvbl9fcGF0aC0tNCB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXI0LW91dCBiYWNrd2FyZHM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCdtb3VzZScpIHtcbiAgLmJ0bi0tYnVyZ2VyIHtcbiAgICAmOmhvdmVye1xuICAgICAgLmljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7ICBcbiAgICAgIH1cbiAgICB9XG4gICAgJi5hY3RpdmV7XG4gICAgICAuaWNvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgIFxuICAgICAgfVxuICAgICAgLmljb25fX3BhdGgtLTEge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMSBmb3J3YXJkcztcbiAgICAgIH1cbiAgICAgIC5pY29uX19wYXRoLS0yIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjIgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgICAuaWNvbl9fcGF0aC0tMyB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIzIGZvcndhcmRzO1xuICAgICAgfVxuICAgICAgLmljb25fX3BhdGgtLTQge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyNCBmb3J3YXJkcztcbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWFjdGl2YXRpbmcgLmljb24ge1xuICAgICAgLmljb25fX3BhdGgtLTEge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyMS1vdXQgYmFja3dhcmRzO1xuICAgICAgfVxuICAgICAgIC5pY29uX19wYXRoLS0yIHtcbiAgICAgICAgYW5pbWF0aW9uOiBlYXNlIDFzIGJhcjItb3V0IGJhY2t3YXJkcztcbiAgICAgIH1cbiAgICAgICAuaWNvbl9fcGF0aC0tMyB7XG4gICAgICAgIGFuaW1hdGlvbjogZWFzZSAxcyBiYXIzLW91dCBiYWNrd2FyZHM7XG4gICAgICB9XG4gICAgICAgLmljb25fX3BhdGgtLTQge1xuICAgICAgICBhbmltYXRpb246IGVhc2UgMXMgYmFyNC1vdXQgYmFja3dhcmRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qXG4uYnRuLS1idXJnZXIge1xuICAuaWNvbiB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xuICB9XG4gICY6aG92ZXIge1xuICAgIC5pY29uIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gIH1cbn1cbiovIiwiQG1peGluIHNlYXJjaGJhci1zbWFsbCgpIHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5zZWFyY2hiYXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzRweDtcbiAgICAvLyAgZm9udC1zaXplOiAyN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgQGluY2x1ZGUgYm9yZGVybGluZSgxKTtcblxuXG5cbiAgICA6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlNztcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBleHRlbmQgJWgzO1xuICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pY29uIHtcblxuICAgIH1cblxuICAgICYuc2VhcmNoYmFyLS1zbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIHNlYXJjaGJhci1zbWFsbCgpO1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjN2dyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG5cbiAgICAgICAgJi5zZWFyY2hiYXItLWV4dGVybmFsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcmdlJykge1xuICAgICAgICBmb250LXNpemU6IDEuOTN2dztcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuOTN2dztcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XG4gICAgfVxufVxuIiwiLnRleHRib3gge1xuXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuXG4gICAgPiAqIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICsgKiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBAZXh0ZW5kICVwO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICArIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxNWgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIC5pY29uLS1hcnJvdyB7XG4gICAgICAgICAgICBsaW5lIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxLjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRleHRib3hfX2ljb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAuaWNvbi0tYXJyb3cge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgICBwYXRoLCBsaW5lIHtcbiAgICAgICAgICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgbGluZSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnRleHRib3hfX2V2ZW50X2xvY2F0aW9uLFxuLnRleHRib3hfX2V2ZW50X2RhdGUge1xuICAgIEBleHRlbmQgJXA7XG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuaDIudGV4dGJveF9fdGl0bGU6Zmlyc3QtbGV0dGVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbiIsIi50ZXh0cGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxMikpO1xuXG4gICAgaGVhZGVyIHtcbiAgICAgICAgLy93aWR0aDogI3skZ3JpZHVuaXRzaXplKjN9dnc7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgOSkpO1xuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICsgcCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgc3BhY2VyKCdtYXJnaW4tdG9wJywgMTUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyBzZWN0aW9uIHtcbiAgICAgICAgICAgIC8vbWFyZ2luLWxlZnQ6ICN7JGdyaWR1bml0c2l6ZSoxfXZ3O1xuICAgICAgICAgICAgLy93aWR0aDogI3skZ3JpZHVuaXRzaXplKjR9dnc7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDkpKTtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgOSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VjdGlvbiB7XG4gICAgICAgIC8vbWFyZ2luLXJpZ2h0OiAjeyRncmlkdW5pdHNpemUqMn12dztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgOSkpO1xuXG4gICAgICAgICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgICAgIC8qTHVmdCBtZWxsZW0gcGFyYWdyYWZmZXIgc2thbCB2w6ZyZSAyNXB4Ki9cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBvbCBsaSxcbiAgICAgICAgdWwgbGkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41dnc7XG4gICAgICAgIH1cblxuICAgICAgICAqOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIFJFU1RZTElORyBPRiBBQ0NPUkRJT04gVkVORE9SXG4uYWNjb3Jkb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAuYWNjb3Jkb25fX2NvbnRlbnQtLW1peGVkID4gKiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAvL21hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY2NvcmRvbl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cblxuICAgICAgICAuYWNjb3Jkb25fX2hlYWRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICVoMztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjY29yZG9uX190cmlnZ2VyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBhdXRvIGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDkpKTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogLTI1cHg7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAvL2J1ZyBmaXggMTEvMDhcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgLy9idWcgZml4IGVuZFxuICAgICAgICAgICAgLmFjY29yZG9uX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLmhhdmVfX2Rvd25sb2FkcyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgICAgIHVsLFxuICAgICAgICAgICAgICAgICAgICBvbCxcbiAgICAgICAgICAgICAgICAgICAgaDIsXG4gICAgICAgICAgICAgICAgICAgIGgzLFxuICAgICAgICAgICAgICAgICAgICBoNCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2J1ZyBmaXggMTEvMDhcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOSwgMTIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMTIsIDEyKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgMTIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxMikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICAgICAgLy9CdWcgZml4IGVuZFxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmFjY29yZG9uX19jb250ZW50X19kb3dubG9hZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2J1ZyBmaXggMTEvMDhcblxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMTQpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2J1ZyBmaXggZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgMTIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgbWFyZ2luLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCAxMikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzMuMzMzMyUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBwYWRkaW5nLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxMikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHdpZHRoOiAxODBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hY2NvcmRvbl9fY29udGVudF9fZG93bmxvYWQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG5cbiAgICAgICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzcGFuOm5vdCguZG93bmxvYWRfX2ljb24sIC5kb3dubG9hZF9fdGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uZG93bmxvYWRfX3RpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxNCkpIC0gMjBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYWNjb3Jkb25fX2NvbnRlbnRfX2Rvd25sb2FkX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hY2NvcmRvbl9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgb2wge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB1bCxcbiAgICAgICAgICAgICAgICBvbCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNlMTVoKTtcblxuICAgICAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBsaW5lLWhlaWdodDogMTdweDsgLy8gZG9lcyBub3QgcmVhbGx5IHdvcmsgd2VsbC4uXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZShtYXAtZ2V0KCRjb2xvcnMsIFwiZGFya1wiKSwgMC4yNik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBkaXYgcDpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvbCBsaSxcbiAgICAgICAgICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXZ3O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgKyAuYWNjb3Jkb25fX2l0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgIC5hY2NvcmRvbl9faGVhZGVyIHtcbiAgICAgICAgICAgICAgICAuYWNjb3Jkb25fX3RyaWdnZXIge1xuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYWNjb3JkaW9uLWl0ZW0ge1xuICAgICAgICAgICAgICAgIC5hY2NvcmRvbl9fcGFuZWwge1xuICAgICAgICAgICAgICAgICAgICAuYWNjb3Jkb25fX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIC50ZXh0cGFuZWwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIGhlYWRlciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCAxMikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZWN0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDEyKSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig3LCAxMikpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICA+IGFydGljbGUge1xuICAgICAgICAgICAgJjpub3QoLnRleHRwYW5lbCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNSwgMTIpKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig3LCAxMikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnZpZGVvcGFuZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFjY29yZG9uLS1zaW1wbGUge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmFjY29yZG9uX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxNWgpO1xuXG4gICAgICAgICsgLmFjY29yZG9uX19pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgLmFjY29yZG9uX19oZWFkZXIge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgJWgyO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFjY29yZG9uX19wYW5lbCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY2NvcmRvbl9faGVhZGVyIHtcbiAgICAgICAgQGV4dGVuZCAlcDtcbiAgICB9XG5cbiAgICAuYWNjb3Jkb25fX3RyaWdnZXIge1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC4yO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNjb3Jkb25fX3BhbmVsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG5cbi5wYWxldHRlLS01LFxuLnBhbGV0dGUtLTYge1xuICAgIC5hY2NvcmRvbiB7XG4gICAgICAgIC5hY2NvcmRvbl9faXRlbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC5hY2NvcmRvbl9fdHJpZ2dlciB7XG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwibGlnaHRcIikgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY2NvcmRvbl9fY29udGVudCB7XG4gICAgICAgICAgICB1bCBsaSxcbiAgICAgICAgICAgIG9sIGxpLFxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRml4aW5nIHRoZSBhY2NvcmRpb24gcGFkZGluZyB3aGVuIHVzZWQgb3V0c2lkZSBhbiBhcnRpY2xlIGVsZW1lbnRcbi5ibG9jay0taGFybW9uaWNhIC5oYXJtb25pY2Ege1xuICAgIC5hY2NvcmRvbl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgOSkpICFpbXBvcnRhbnQ7IC8vIDQyLjg1NzE0MjklXG4gICAgfVxufVxuIiwiLmxpc3RpbmdzIHtcbiAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDksIDEyKSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAubGlzdGluZ3NfX2hlYWRpbmcge1xuICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxMiwgMTIpKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDE0LCAxNCkpO1xuICAgIH1cbn1cblxuLmNvdXJzZXNfY3VyYXRlZF93cmFwIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmxhbmRpbmdfcGFnZSB7XG4gICAgLmxpc3RpbmdzX19oZWFkaW5nIHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA5KSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig2LCAxNCkpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgIH1cbn1cblxuLnNlYXJjaF9saXN0aW5nc19oZWFkaW5nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgaDEsIHAge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgMTQpKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDE0LCAxNCkpO1xuXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5saXN0aW5nc19fbGlzdCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICB9XG5cbiAgICAuaGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubGlzdGluZ3NfX2hlYWRpbmcge1xuICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgOSkpO1xuICAgIG1hcmdpbi1yaWdodDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDkpKTtcbiAgICAvL0BpbmNsdWRlIHNwYWNlcihcIm1hcmdpbi1ib3R0b21cIiwgMjUpO1xuICAgIHNwYW4ge1xuICAgICAgICArIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgQGV4dGVuZCAlaDE7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxNCkpO1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDE0KSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxNCkpO1xuXG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlMTAwaCk7XG5cbiAgICAgICAgfiAubGlzdGluZ3NfX2xpbmsge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubGlzdGluZ3NfX2xpbmsge1xuICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgOSkpO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIG9yZGVyOiAzO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxNCkpO1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDE0KSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxNCkpO1xuXG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlMTAwaCk7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxpc3RpbmdzX19jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICA+IC5saXN0aW5nc19fbGlzdCB7XG4gICAgICAgIC8vQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLXRvcFwiLCA1MCk7XG4gICAgfVxufVxuXG4ubGlzdGluZ3NfX2xpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgLy9kaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAvL3dpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMTQsIDE0KSk7XG4gICAgICAgIG9yZGVyOiAyO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAjeyRncmlkdW5pdHNpemUgKiA0fXZ3O1xuICAgICAgICAgICAgZmxleDogMCAwICN7JGdyaWR1bml0c2l6ZSAqIDR9dnc7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6ICN7JGdyaWR1bml0c2l6ZSAqIDF9dnc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB+IC5saXN0aW5nc19fZW1wdHkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6ZW1wdHkge1xuICAgICAgICB+IC5saXN0aW5nc19fZW1wdHkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmxpc3RpbmdzX19lbXB0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG59XG5cbi5saXN0aW5nc19faXRlbSB7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA5KSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcblxuICAgIC5pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHBpY3R1cmUge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMjcwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50ZXh0Ym94IHtcbiAgICAgICAgKyBwaWN0dXJlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjVoKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC50ZXh0Ym94X19pY29ucyB7XG4gICAgICAgIC5pY29uLS1wbGF5LFxuICAgICAgICAuaWNvbi0tYmVnaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbaGFzX3ZpZGVvXSB7XG4gICAgICAgIC50ZXh0Ym94X19pY29ucyB7XG4gICAgICAgICAgICAuaWNvbi0tcGxheSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgfiAuaWNvbi0tYXJyb3cge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxNWgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbaXNfYmVnaW5uZXJdIHtcbiAgICAgICAgLnRleHRib3hfX2ljb25zIHtcbiAgICAgICAgICAgIC5pY29uLS1iZWdpbm5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgfiAuaWNvbi0tYXJyb3cge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxNWgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KGF1dG8tZmlsbCwgNDV2dyk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgIC50ZXh0Ym94IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgIC8vd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig2LCAxNCkpO1xuICAgICAgICB3aWR0aDogNTV2dztcbiAgICB9XG59XG5cbi8qTHVmdCB1bmRlciBkZW4gc2lkc3RlIGxpbmplIGkgcmVmZXJlbmNlbW9kdWxldCBmamVybmVzKi9cbi5saXN0aW5nc19faXRlbTpudGgtY2hpbGQoM24gKyAxKTpudGgtbGFzdC1jaGlsZCgtbiArIDMpLFxuLmxpc3RpbmdzX19pdGVtOm50aC1jaGlsZCgzbiArIDEpOm50aC1sYXN0LWNoaWxkKC1uICsgMylcbn4gLmxpc3RpbmdzX19pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuIiwiLmNhbXBhaWduIHtcbiAgICB3aWR0aDogY2FsYyh2YXIoLS1zcGFjZTEwMGgpICogOSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgICZbY2xhc3MqPVwicmlnaHRcIl0ge1xuICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgbGVmdDogYXV0bztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJltjbGFzcyo9XCJsZWZ0XCJdIHtcbiAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJltjbGFzcyo9XCJib3R0b21cIl0ge1xuICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZbY2xhc3MqPVwidG9wLWxlZnRcIl0sXG4gICAgJltjbGFzcyo9XCJ0b3AtcmlnaHRcIl0ge1xuICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDkpKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDkpKTtcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgOSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig3LCA5KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICB9XG4gICAgICAgIC50ZXh0Ym94X19kYXRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMTVoKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDE0KSk7IC8vbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDExKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcblxuICAgICAgICAgICAgaDIudGV4dGJveF9fdGl0bGUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50ZXh0Ym94X19jb3B5IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgNCkpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmW2NsYXNzKj1cInRvcC1yaWdodFwiXSB7XG4gICAgICAgIC50ZXh0Ym94X19kYXRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltjbGFzcyo9XCJ0b3AtbGVmdFwiXSB7XG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcmVtKSB0cmFuc2xhdGVZKC0xcmVtKTtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDkpKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDkpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmW2NsYXNzKj1cInRvcC1yaWdodFwiXSB7XG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFyZW0pIHRyYW5zbGF0ZVkoLTFyZW0pO1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgOSkpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgOSkpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFyZW0pIHRyYW5zbGF0ZVkoLTFyZW0pO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJltjbGFzcyo9XCJib3R0b20tbGVmdFwiXSB7XG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXJlbSkgdHJhbnNsYXRlWSgxcmVtKTtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDkpKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDkpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcmVtKSB0cmFuc2xhdGVZKC0xcmVtKTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDgwJTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICZbY2xhc3MqPVwiYm90dG9tLXJpZ2h0XCJdIHtcbiAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFyZW0pIHRyYW5zbGF0ZVkoMXJlbSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCA5KSk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA5KSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXJlbSkgdHJhbnNsYXRlWSgtMXJlbSk7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA0MDBweCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbY2xhc3MqPVwid2lkZVwiXSB7XG4gICAgICAgICZbY2xhc3MqPVwicmlnaHRcIl0ge1xuICAgICAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgMTIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMTIsIDEyKSk7XG4gICAgICAgICAgICB6LWluZGV4OiAzMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmW2NsYXNzKj1cImNvbG9yXCJdIHtcbiAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCA5KSk7XG4gICAgICAgICAgICAudGV4dGJveCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgNCkpO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtKG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCA0KSkpO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY2FtcGFpZ24tLXNpbXBsZSB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOSwgMTQpKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAvL21hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAudGV4dHBhbmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNwYWNlMTAwaCkqIDkpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuICAgICYuY2FtcGFpZ24tLXNpbXBsZS1hbHQge1xuICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgLnRleHRwYW5lbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIHNlY3Rpb24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDMsIDkpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgK3NlY3Rpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltjbGFzcyo9XCJjb2xvclwiXSB7XG4gICAgICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxMikpO1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmNhbXBhaWduLS1zaW1wbGUtYWx0IHtcbiAgICAgICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgICAgIC50ZXh0cGFuZWwge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxNCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMTQpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgK3NlY3Rpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDE0KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAxNCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxNCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuICAgICAgICAmW2NsYXNzKj1cImNvbG9yXCJdIHtcbiAgICAgICAgICAgIC5jYW1wYWlnbl9fdGV4dHMge1xuICAgICAgICAgICAgICAgIC50ZXh0Ym94IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNhbXBhaWduX190ZXh0cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBtaW4td2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCA5KSk7XG4gICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNCwgOSkpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgQGluY2x1ZGUgc3BhY2VyKFwicGFkZGluZy1ib3R0b21cIiwgMTAwLCBcImhcIik7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOSwgMTQpKTtcbiAgICB9XG5cbiAgICAvKkx1ZnQgZnJhIHRla3N0IHRpbCBidW5kIG1pbmRza2VzIHPDpSBkZXIgZXIgZGVuIHNhbW1lIGFmc3RhbmQgdGlsIGhlbmhvbGRzdmlzIGjDuGpyZSBvZyBidW5kKi9cbiAgICAvL3BhZGRpbmctYm90dG9tOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMSwgMjgpKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tYm90dG9tOjA7XG59XG5cbi5jYW1wYWlnbiB7XG4gICAgcGljdHVyZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBWaWRlbyBkZWFrdGl2ZXJldCBpIHNlbmVzdGUgaXRlcmF0aXZlIHJlbGVhc2UsIG1lbiBjc3MgZ2VtbWVzIGhlciBmb3IgZXZ0LiBnZW5icnVnXG4vLy5jYW1wYWlnbl9fdmlkZW8ge1xuLy8gICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgd2lkdGg6IDEwMCU7XG4vLyAgICBoZWlnaHQ6IDEwMCU7XG4vLyAgICBvYmplY3QtZml0OiBjb3Zlcjtcbi8vICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLyAgICA+YS52aWRlb19wbGF5X2J1dHRvbl9vdmVybGF5IHtcbi8vICAgICAgICB0b3A6IDA7XG4vLyAgICAgICAgbGVmdDogMDtcbi8vICAgICAgICB3aWR0aDogMTAwJTtcbi8vICAgICAgICBoZWlnaHQ6IDEwMCU7XG4vLyAgICAgICAgei1pbmRleDogMTI7XG4vLyAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuLy8gICAgICAgICAgICBvdXRsaW5lOiAxcHggYXV0byAjMDAwO1xuLy8gICAgICAgIH1cbi8vICAgIH1cbi8vICAgID5hLnZpZGVvX2J1dHRvbiB7XG4vLyAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8gICAgICAgIHotaW5kZXg6IDExO1xuLy8gICAgfVxuLy8gICAgPmEge1xuLy8gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJib3R0b21cIiwgMjUpO1xuLy8gICAgICAgIEBpbmNsdWRlIHNwYWNlcihcImxlZnRcIiwgMjUpO1xuLy8gICAgICAgIC5pY29uIHtcbi8vICAgICAgICAgICAgd2lkdGg6IDUwcHg7XG4vLyAgICAgICAgICAgIGhlaWdodDogNTBweDtcbi8vICAgICAgICB9XG4vLyAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbi8vICAgICAgICAgICAgb3V0bGluZTogMXB4IGF1dG8gIzAwMDtcbi8vICAgICAgICB9XG4vLyAgICB9XG4vLyAgICBpZnJhbWUge1xuLy8gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4vLyAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4vLyAgICAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgICAgaGVpZ2h0OiAxMDAlO1xuLy8gICAgICAgIG9wYWNpdHk6IDA7XG4vLyAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xuLy8gICAgICAgICYubGF6eWxvYWRlZCB7XG4vLyAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4vLyAgICAgICAgfVxuLy8gICAgfVxuLy99XG5cblxuLypidWlsZCovXG5cbi5ibG9jay5ibG9jay0tY2FtcGFpZ24uYmxvY2stLWNhbXBhaWduLXNpbXBsZSB7XG4gICAgLmNhbXBhaWduLS1zaW1wbGUtYWx0IHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jb250ZW50LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5zaWRlYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IGNhbGMoMTAwJSAvIDE0KTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDE0ICogMik7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgICAgICAgICAgd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIGNhbGMoMTAwJSAvIDE0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNpZGViYXJfX3RheG9ub215IHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ3JpZC1nYXA6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNpZGViYXJfX3Jlc2V0IHtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCAneWVsbG93Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5zaWRlYmFyX19zZWFyY2gge1xuICAgICsgKiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICB9XG59XG5cbi5zaWRlYmFyX190YXhvbm9teSB7XG4gICAgKyAuc2lkZWJhcl9fdGF4b25vbXkge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgfVxuXG4gICAgdWwge1xuXG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgICBvcGFjaXR5OiAwLjY3O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAtNXB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3NpZGViYXJfX25ld3VzZXIge1xuICAgIHVsIHtcbiAgICAgICAgbGkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIi5ibG9jayB7XG4gICAgLy9AaW5jbHVkZSBzcGFjZXIoXCJtYXJnaW4tdG9wXCIsIDUwLCBcImhcIik7XG4gICAgLy9AaW5jbHVkZSBzcGFjZXIoXCJtYXJnaW4tYm90dG9tXCIsIDUwLCBcImhcIik7XG5cbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMTAwaCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICYucGFsZXR0ZTpub3QoLmJsb2NrLS1jYW1wYWlnbi1zaW1wbGUpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIH1cbiAgICAmLnBhbGV0dGUtLTcge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuICAgIC8vIEBUMjA5NTUgLSBCVUcgLSBsaW5rcGlsLWZhcnZlbiBpIGRlIG3DuHJrZSBiYWdncnVuZHNmYXJ2ZXJcbiAgICAvLyYucGFsZXR0ZS0tNSxcbiAgICAvLyYucGFsZXR0ZS0tNiB7XG4gICAgLy8gICAgc3ZnIHtcbiAgICAvLyAgICAgICAgZmlsdGVyOiBpbnZlcnQoMSk7XG4gICAgLy8gICAgfVxuICAgIC8vfVxuICAgICYuYmxvY2stLWFuY2hvciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICAvLyBoZWlnaHQ6MXB4O1xuICAgICAgICAvLyB3aWR0aDoxMDAlO1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMWVtO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICBvbCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICB9XG4gICAgdWwsXG4gICAgb2wge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTE1aCk7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIC8vY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrLWFsdFwiKTtcbiAgICAgICAgICAgIEBleHRlbmQgJXA7XG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImRhcmtcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICYubGluayB7XG4gICAgICAgICAgICAgICAgICAgIEBleHRlbmQgJWg0O1xuICAgICAgICAgICAgICAgICAgICAmLmxpbmstLWxhcmdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBleHRlbmQgJWgzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlMjAwaCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjAwaCk7XG5cbiAgICAgICAgJi5ibG9jay0tdG9wIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiXG5cbi5zaW1wbGUtYm94IHtcbiAgICBwYWRkaW5nOiAyLjVyZW07XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgIH1cblxuICAgIGhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMjVoKTtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2hvdy1pY29uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnLmljb24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbWFpbiB7XG4gICAgICAgICYuY29sdW1ucy0yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJnYXBcIiwgMjUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgID4gZGl2ID4gcCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgfVxuICAgICAgICA+IGRpdiA+IHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tdGlwIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0OCwgNDIsIDU2LCAxKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IC41cmVtIHNvbGlkIHJnYmEoNDgsIDQyLCA1NiwgMSk7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgICAgICBoZWFkZXIge1xuICAgICAgICAgICAgLnNob3ctaWNvbiB7XG4gICAgICAgICAgICAgICAgc3ZnLmljb24ge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaGVhZGVyLnNob3ctaWNvbiwgaGVhZGVyIHtcbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtYWluIGgyLFxuICAgICAgICBtYWluIGgzLFxuICAgICAgICBtYWluIGg0LFxuICAgICAgICBtYWluIHVsIGxpLFxuICAgICAgICBtYWluIG9sIGxpLFxuICAgICAgICBtYWluIHAge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBtYWluIGE6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICM3NTcxNzcgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWRpc2NyZXRlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0OCwgNDIsIDU2LCAuMSk7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAuNXJlbSBzb2xpZCByZ2JhKDQ4LCA0MiwgNTYsIC4yNSk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIDEpO1xuICAgIH1cblxuICAgICYtLW9icyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCAxODksIDQ0LCAuMjUpO1xuICAgICAgICBib3JkZXItbGVmdDogLjVyZW0gc29saWQgcmdiYSgyNDQsIDE4OSwgNDQsIC41MCk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIDEpO1xuICAgIH1cblxuICAgICYtLWluZm8ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyMCwgMTkwLCAyMzEsIC4yNSk7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAuNXJlbSBzb2xpZCByZ2JhKDEyMCwgMTkwLCAyMzEsIC41MCk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIDEpO1xuICAgIH1cbn1cblxuLyoqIEZpeCB3aWR0aCBvZiBzaW1wbGUgYm94IGluc2lkZSBhIGNvbHVtbiB3aGVuIGxvd2VyIHRoYW4gMTAyNHB4ICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAuYmxvY2stLWFydGljbGUtLWNvbHVtbiB7XG4gICAgICAgIGFydGljbGUuY29sdW1uLS1zaW1wbGUtYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDUsIDEyKSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGFydGljbGUuY29sdW1uLS1hY2NvcmRvbiB7XG4gICAgICAgICAgICBhcnRpY2xlLmNvbHVtbi0tc2ltcGxlLWJveCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmFjY29yZG9uX19wYW5lbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLmFydGljbGUtY29udGVudCAuYmxvY2suYmxvY2stLWFydGljbGUuYmxvY2stLWFydGljbGUtLWNvbHVtbiA+IGFydGljbGUuY29sdW1uLS1hY2NvcmRvbiB7XG4gICAgICAgIC8vbWFyZ2luLWxlZnQ6IDI1JTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbi8vLmJsb2NrLS1hcnRpY2xlLmJsb2NrLS1hcnRpY2xlLS1mdWxsd2lkdGggLmZ1bGx3aWR0aC0tc2ltcGxlLWJveC5zaW1wbGUtYm94XG4vL21hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTtcbi8vd2lkdGg6IDU2LjY2NjY2NyU7XG4vL21hcmdpbi1yaWdodDogMTQuMjg1NzE0Mjg1N3Z3O1xuIiwiLyoqXG5IZXJvIEJsb2NrXG4gKi9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvZ2VuZXJhbFwiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvbWl4aW5zXCI7XG5cbi5ibG9jay0taGVybyB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIG1hcmdpbjogdmFyKC0tc3BhY2U1MGgpIHZhcigtLXNwYWNlMTAwaCkgdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmLnBhbGV0dGUtLTAge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ4LCA0MiwgNTYsIC4xKTtcbiAgICB9XG5cbiAgICAmLnBhbGV0dGUtLTEge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwieWVsbG93XCIpO1xuICAgIH1cblxuICAgICYucGFsZXR0ZS0tMiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJncmVlblwiKTtcbiAgICB9XG5cbiAgICAmLnBhbGV0dGUtLTMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KCRjb2xvcnMsIFwicmVkXCIpO1xuICAgIH1cblxuICAgICYucGFsZXR0ZS0tNCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJibHVlXCIpO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxMikpO1xuICAgICAgICBtYXJnaW46IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAyOCkpO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigyLCAyOCkpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxLjc1IC8gMTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMjQsIDI4KSk7XG4gICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiB1bnNldDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnZpZGVvX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMjQsIDI4KSk7XG4gICAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiB1bnNldDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCAxMikpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigxLCAyOCkpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDI0LCAyOCkpO1xuICAgICAgICAgICAgcGFkZGluZzogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDEsIDE0KSk7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMjYsIDI4KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgICAgICAgICAgaDEge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvZ2VuZXJhbFwiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvbWl4aW5zXCI7XG5cbi5oZWFkZXJfX2Rlc2t0b3AtLWxhbmdtZW51LFxuLmhlYWRlcl9fZGVza3RvcC0tc2Vjb25kLFxuLmhlYWRlcl9fZGVza3RvcC0tc2Vjb25kIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uaGVhZGVyIHtcbiAgICAmX19tb2JpbGUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj50YWJsZXRcIikge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnJhbmRpbmcge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAuYnJhbmRpbmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgLmxvZ28gc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tZW51IHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXRvZ2dsZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgNCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlzdG1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tc3BhY2UyNWgpIHZhcigtLXNwYWNlNTBoKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgIC5saXN0bWVudSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMC41cyBlYXNlLWluLW91dDtcblxuICAgICAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLWNvbnRhaW5lckhlaWdodCwgMTgwcHgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWFyY2gtZXh0ZXJuYWxseSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTUwaCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2U1MGgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5leHRlcm5hbC1zZWFyY2gtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDIsIDEyKSk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDgsIDQyLCA1NiwgMSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMjM4LCAyMzgsIDIzMSwgMSk7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogcmdiYSgyMzgsIDIzOCwgMjMxLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmxpbmstYnV0dG9uIGEge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWFyY2gtaW50ZXJuYWxseSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAuc2VhcmNoYmFyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDksIDEyKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZXJ2aWNlbWVudSB7XG4gICAgICAgICAgICBtYXJnaW46IHZhcigtLXNwYWNlMjVoKSB2YXIoLS1zcGFjZTUwaCkgdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgbmF2IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDksIDEyKSk7XG5cbiAgICAgICAgICAgICAgICAuc2VydmljZW1lbnVfX2l0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5tZW51X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJi5tZW51X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zdWJwYWdlLW1lbnUubGlzdG1lbnUge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICAgICAgICAgIC5saXN0bWVudSB7XG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fZGVza3RvcC0tbGFuZ21lbnUge1xuXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxNDAxcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgICZfX2Rlc2t0b3Age1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAxNDAxcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tYnJhbmRpbmcge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig0LCAxMikpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgIC5icmFuZGluZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmxvZ28ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmF2aWdhdGlvbnMge1xuICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxMikpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgPiBkaXY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBkaXY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhlYWRlcl9fdGFnbGluZSB7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3ctd3JhcDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgICAgICAgICYuaGlkZGVuIHtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGlzdG1lbnUge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tY29udGFpbmVySGVpZ2h0LCAxODBweCk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdG9nZ2xlLWdyb3VwIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyN3B4O1xuXG4gICAgICAgICAgICAuaGVhZGVyX19zZWFyY2gtaW50ZXJuYWxfX3dyYXAge1xuXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcblxuXG5cbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2VhcmNoLWludGVybmFsLWJ0biB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWNvbmQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tbWF4LXdpZHRoKTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcblxuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTQwMXB4KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhlYWRlcl9fZGVza3RvcC0tZmlsbGVyIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDQsIDEyKSk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG5cbiAgICAgICAgICAgICAgICAuaGVhZGVyX19kZXNrdG9wLS1iYWNrIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmhlYWRpbmdfX2Rlc2t0b3AtLXNlYXJjaC1leHRlcm5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZXh0ZXJuYWwtc2VhcmNoLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNDgsIDQyLCA1NiwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZ2JhKDIzOCwgMjM4LCAyMzEsIDEpO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHJnYmEoMjM4LCAyMzgsIDIzMSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlcnZpY2VtZW51IHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOCwgMTIpKTtcblxuICAgICAgICAgICAgLnNlcnZpY2VtZW51IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmJyZWFkY3J1bWJzX19jb250YWluZXItLWJhY2sge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPnRhYmxldFwiKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uaGVhZGVyX19kZXNrdG9wLS1zZWNvbmQgLmhlYWRlcl9fZGVza3RvcC0tZmlsbGVyIC5leHRlcm5hbC1zZWFyY2gtYnV0dG9uOjphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLmZvb3RlciB7XG4gICAgLy9wYWRkaW5nLWxlZnQ6ICN7JGdyaWR1bml0c2l6ZX12dztcbiAgICAvL3BhZGRpbmctcmlnaHQ6ICN7JGdyaWR1bml0c2l6ZX12dztcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMTQwMXB4KSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLmZvb3Rlcl9fY29udGVudCB7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNiwgMTIpKTtcblxuICAgICAgICAuZm9vdGVyX19tZW51IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYWNlcihcIm1hcmdpbi10b3BcIiwgMjUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZm9vdGVyX19pbmZvIHtcbiAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDEyKSk7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5mb290ZXJfX2NvbnRlbnQge1xuICAgICAgICAvLyAgICBAaW5jbHVkZSBzcGFjZXIoXCJtYXJnaW4tdG9wXCIsIDUwKTtcbiAgICB9XG5cbiAgICAuZm9vdGVyX19tZW51IHtcbiAgICAgICAgKyAuZm9vdGVyX19tZW51IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYWNlcihcIm1hcmdpbi10b3BcIiwgNTApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgICAgLmZvb3Rlcl9faGVhZGluZyB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDUsIDEyKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyX19jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICsgc2VjdGlvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFjZXIoXCJtYXJnaW4tdG9wXCIsIDUwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZvb3Rlcl9fY29udGFjdCB7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig2LCAxMikpO1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLmZvb3Rlcl9faGVhZGluZyB7XG4gICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMiwgNikpO1xuICAgIH1cblxuICAgIC5mb290ZXJfX2NvcHkge1xuICAgICAgICArIC5mb290ZXJfX21lbnUge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3BhY2VyKFwibWFyZ2luLXRvcFwiLCAyNSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgLmZvb3Rlcl9faGVhZGluZyB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDUsIDEyKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb290ZXJfX2NvbG9waG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICBwIHtcbiAgICAgICAgQGV4dGVuZCAlaDQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIH1cblxuICAgIC5mb290ZXJfX2NvcHktLXNtYWxsIHtcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNwYWNlcihcIm1hcmdpbi10b3BcIiwgNTApO1xuXG4gICAgLmZpZnRoLWVsZW1lbnQge1xuICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDYsIDEyKSk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgZ3JpZC1nYXA6IDYlO1xuICAgICAgICAuZmlmdGgtZWxlbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDUsIDEyKSk7XG4gICAgICAgIH1cbiAgICAgICAgLmZvb3Rlcl9fY29udGVudCB7XG4gICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDcsIDEyKSk7XG4gICAgICAgIH1cbiAgICAgICAgLmZvb3Rlcl9fbWVudS0tc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAzNSU7XG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5mb290ZXJfX21lbnUtLXNlY29uZGFyeSB7XG4gICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig2LCAxMikpO1xufVxuXG4uZm9vdGVyX19iYXIge1xuICAgIEBpbmNsdWRlIHNwYWNlcihcIm1hcmdpbi10b3BcIiwgMTAwKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmljb24tYmFyLS1lbGVtZW50IHtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig4LCAxMikpO1xuICAgIH1cbn1cblxuLmZvb3Rlcl9faGVhZGluZyB7XG4gICAgQGV4dGVuZCAlaDM7XG4gICAgbWFyZ2luOiAwO1xufVxuIiwiLmJsb2NrLS1jYW1wYWlnbiB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1tYXgtd2lkdGgpO1xuICAgIG1hcmdpbjogdmFyKC0tc3BhY2U1MGgpIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tc3BhY2U1MGgpIHZhcigtLXNwYWNlMTAwaCk7XG4gICAgfVxuICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC1nZXQoJGNvbG9ycywgXCJsaWdodFwiKSAhaW1wb3J0YW50O1xuICAgICYucGFsZXR0ZTpub3QoLmJsb2NrLS1jYW1wYWlnbi1zaW1wbGUpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgICAgICAgY29sb3I6IHVuc2V0O1xuICAgIH1cbiAgICAmLnBhbGV0dGUge1xuICAgICAgICAkaTogMDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIEBlYWNoICRuYW1lLFxuICAgICAgICAkaXRlbSBpbiAkcGFsZXR0ZSB7XG4gICAgICAgICAgICAkaTogJGkgKyAxO1xuICAgICAgICAgICAgJi5wYWxldHRlLS0jeyRpfSB7XG4gICAgICAgICAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGl0ZW0sIGJnKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IG1hcC5nZXQoJGl0ZW0sIHR4dCk7XG4gICAgICAgICAgICAgICAgICAgIC50ZXh0Ym94X19jb3B5LFxuICAgICAgICAgICAgICAgICAgICAudGV4dHBhbmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNhbXBhaWduIHtcbiAgICAgICAgICAgICZbY2xhc3MqPVwidG9wLWxlZnRcIl0sXG4gICAgICAgICAgICAmW2NsYXNzKj1cInRvcC1yaWdodFwiXSB7XG4gICAgICAgICAgICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgICAgICAgICAgICAgIC50ZXh0Ym94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICZbY2xhc3MqPVwidG9wLXJpZ2h0XCJdIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAvLyAgICRpIDogMDtcbiAgICAgICAgLy8gICBAZWFjaCAkbmFtZSwgJGl0ZW0gaW4gJHBhbGV0dGUge1xuICAgICAgICAvLyAgICAgJGk6ICRpICsgMTtcbiAgICAgICAgLy8gICAgICYucGFsZXR0ZS0tI3skaX0ge1xuICAgICAgICAvLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAuZ2V0KCRpdGVtLCBiZyk7XG4gICAgICAgIC8vICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRpdGVtLCB0eHQpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgIH1cbiAgICAmLmJsb2NrLS1jYW1wYWlnbi1sZWZ0IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgICAgICAmLnBhbGV0dGUge1xuICAgICAgICAgICAgJGk6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBAZWFjaCAkbmFtZSxcbiAgICAgICAgICAgICRpdGVtIGluICRwYWxldHRlIHtcbiAgICAgICAgICAgICAgICAkaTogJGkgKyAxO1xuICAgICAgICAgICAgICAgICYucGFsZXR0ZS0tI3skaX0ge1xuICAgICAgICAgICAgICAgICAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hcC5nZXQoJGl0ZW0sIGJnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAuZ2V0KCRpdGVtLCB0eHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHRib3hfX2NvcHksXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dHBhbmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAvLyAgICRpIDogMDtcbiAgICAgICAgICAgIC8vICAgQGVhY2ggJG5hbWUsICRpdGVtIGluICRwYWxldHRlIHtcbiAgICAgICAgICAgIC8vICAgICAkaTogJGkgKyAxO1xuICAgICAgICAgICAgLy8gICAgICYucGFsZXR0ZS0tI3skaX0ge1xuICAgICAgICAgICAgLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLmdldCgkaXRlbSwgYmcpO1xuICAgICAgICAgICAgLy8gICAgICAgY29sb3I6IG1hcC5nZXQoJGl0ZW0sIHR4dCk7XG4gICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgLy9tYXJnaW4tbGVmdDogMDtcbiAgICAgICAgLy8gICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgICYuYmxvY2stLWNhbXBhaWduLXNpbXBsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIC8vcGFkZGluZy1sZWZ0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgICAgICAmLnBhbGV0dGUge1xuICAgICAgICAgICAgLy9tYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgLy9tYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI+dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAvL3otaW5kZXg6IDMwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiA4NSU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2UxMDBoKTtcblxuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FtcGFpZ25fX3RleHRzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkY29sb3JzLCBcImxpZ2h0XCIpO1xuICAgICAgICAmPi50ZXh0Ym94IHtcbiAgICAgICAgICAgIC8vbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTUwaCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuXG5AaW1wb3J0IFwiLi4vdXRpbGl0aWVzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCIuLi92YXJpYWJsZXMvZ2VuZXJhbFwiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvbWl4aW5zXCI7XG5cbi5ibG9jay0tY29udGFjdCB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlNTBoKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTUwaCk7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHJpZ2h0O1xuXG4gICAgLmNvbnRhY3QtLS13cmFwIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiByaWdodDtcbiAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdig5LCAxMikpO1xuXG4gICAgICAgIC5jb250YWN0LS1pbmZvcm1hdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgLmNvbnRhY3QtLWJhc2ljaW5mby0td3JhcCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDgsIDEyKSk7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiByaWdodDtcblxuICAgICAgICAgICAgICAgIC5iYXNpY2luZm8ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDUsIDEyKSk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDAuMzYpO1xuXG4gICAgICAgICAgICAgICAgICAgIC5jb250YWN0LS1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwLjEpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmNvbnRhY3QtLWRlcGFydG1lbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2UyNWgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJ2dztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIG9sIGxpLFxuICAgICAgICAgICAgICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjV2dztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNvbnRhY3QtLWNvbnRhY3RpbmZvIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2U1MGgpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwYWNlMTAwaCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zcGFjZTUwaCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoNSwgMTIpKTtcblxuICAgICAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB1bCBsaSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZTI1aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUobWFwLWdldCgkY29sb3JzLCBcImRhcmtcIiksIDAuMzYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udGFjdC0taW1hZ2Uge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoMywgMTIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgIC50ZXh0cGFuZWwgaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrLS1jb250YWN0IHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZmxleC13cmFwOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLS13cmFwIHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXRoLnBlcmNlbnRhZ2UobWF0aC5kaXYoOCwgMTIpKTtcbiAgICAgICAgfVxuICAgICAgICAuYmFzaWNpbmZvIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFjdC0taW5mb3JtYXRpb24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5jb250YWN0LS1pbWFnZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFjdC0tY29udGFjdGluZm8ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFjdC0tYmFzaWNpbmZvLS13cmFwIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvaW5jbHVkZS1tZWRpYVwiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlcy9nZW5lcmFsXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9taXhpbnNcIjtcblxuLmJsb2NrLS1jb250YWN0LS1pbmZvIHtcbiAgICBtYXJnaW46IHZhcigtLXNwYWNlNTBoKSB2YXIoLS1zcGFjZTEwMGgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG5cbiAgICAuY29udGFjdC0tLXdyYXAge1xuICAgICAgICAuY29udGFjdC0taW5mb3JtYXRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogbWF0aC5wZXJjZW50YWdlKG1hdGguZGl2KDIsIDkpKTtcblxuICAgICAgICAgICAgLmJhc2ljaW5mbyB7XG4gICAgICAgICAgICAgICAgLnN1YmhlYWRpbmcge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlNTBoKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50aXplKG1hcC1nZXQoJGNvbG9ycywgXCJkYXJrXCIpLCAwLjEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRhY3QtLWNvbnRhY3RpbmZvIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZTI1aCk7XG5cbiAgICAgICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdWwgbGkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSg0OCwgNDIsIDU2LCAwLjgpO1xuXG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250YWN0LS1pbWFnZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IG1hdGgucGVyY2VudGFnZShtYXRoLmRpdigzLCAxMikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC50ZXh0cGFuZWwgaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrLS1jb250YWN0IHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZmxleC13cmFwOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmJhc2ljaW5mbyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLWluZm9ybWF0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFjdC0taW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhY3QtLWNvbnRhY3RpbmZvIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5jb250YWN0LS1jb250YWN0aW5mbyB1bCBsaSxcbi5jb250YWN0LS1jb250YWN0aW5mbyB1bCBsaSBwLFxuLmNvbnRhY3QtLWNvbnRhY3RpbmZvIGEuY29udGFjdC12YWx1ZSB7XG4gICAgY29sb3I6cmdiYSg0OCwgNDIsIDU2LCAwLjcpICFpbXBvcnRhbnQ7XG59XG4iLCIuYmxvY2stLXNlcGFyYXRpb25saW5lIHtcbiAgLnNlcGFyYXRpb25saW5lIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBib3JkZXJsaW5lKDMpO1xuICAgIH1cbiAgfVxufVxuIiwiQHVzZSBcInNhc3M6bWF0aFwiO1xuQG1lZGlhIHByaW50IHsgXG4gIGh0bWwsXG4gIGJvZHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbiAgICB3aWR0aDogaW5pdGlhbDtcbiAgICBtaW4taGVpZ2h0OiBpbml0aWFsO1xuICAgIGJveC1zaGFkb3c6IGluaXRpYWw7XG4gICAgYmFja2dyb3VuZDogaW5pdGlhbDtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhbHdheXM7XG4gIH1cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxNnB4IWltcG9ydGFudDtcbiAgfVxuICAuc2l0ZS1oZWFkZXIsXG4gIC5zaXRlLWZvb3RlcixcbiAgLmNvbnRlbnRfX25hdmlnYXRpb25zIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB9XG5cbiAgLy8gQmxvY2tzXG4gIC5ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4IWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4IWltcG9ydGFudDtcblxuICAgIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBoZWFkZXIge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBwaWN0dXJlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5saXN0aW5ncyB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubGlzdGluZ3NfX2hlYWRpbmcsXG4gICAgLnRleHRib3gge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5saXN0aW5nc19fbGlzdCB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cblxuICAgIC50ZXh0Ym94X19pY29ucyB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYXJ0aWNsZSB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiBcbiAgICAgIGhlYWRlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gXG4gICAgICBzZWN0aW9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgIH1cbiBcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNhbXBhaWduIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuIFxuICAgICAgLmNhbXBhaWduX190ZXh0cyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiBcbiAgICAgICAgLnRleHRib3gge1xuICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLnBhbGV0dGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZzogMCFpbXBvcnRhbnQ7XG4gICAgICBwIHtcbiAgICAgICAgY29sb3I6cmdiYSg0OCwgNDIsIDU2LCAwLjY0KSFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBoMiB7XG4gICAgICAgIGNvbG9yOiAjMzAyQTM4O1xuICAgICAgfVxuICAgIH1cbiAgICAmLmJsb2NrLS1jb250YWN0LFxuICAgICYuYmxvY2stLWNvbnRhY3QtLWluZm8ge1xuICAgICAgLnRleHRwYW5lbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyAgICAgICAgXG4gICAgICB9XG4gICAgICAuY29udGFjdC0tLXdyYXAge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgXG4gICAgICAgIC5jb250YWN0LS1pbmZvcm1hdGlvbixcbiAgICAgICAgLmJhc2ljaW5mbyxcbiAgICAgICAgLmNvbnRhY3QtLWNvbnRhY3RpbmZvIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDAhaW1wb3J0YW50O1xuICAgICAgICAgIC5iYXNpY2luZm8ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibG9jay0taW1hZ2Uge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmLmJsb2NrLS1hcnRpY2xlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgLmxpc3RpbmdzIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgLmxpc3RpbmdzX19oZWFkaW5nIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubGlzdGluZ3NfX2xpc3Qge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgLmxpc3RpbmdzX19pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC50ZXh0Ym94X190aXRsZSB7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50ZXh0Ym94IHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgLnRleHRib3hfX2NvcHkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAudGV4dGJveF9faWNvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnRleHRwYW5lbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlYWRlciB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuYmxvY2stLXJlZmVyZW5jZXMge1xuICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHggIWltcG9ydGFudDtcbiAgICAgIGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgLmxpc3RpbmdzIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgLmxpc3RpbmdzX19oZWFkaW5nIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAubGlzdGluZ3NfX2xpc3Qge1xuICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgLmxpc3RpbmdzX19pdGVtIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC50ZXh0Ym94X190aXRsZSB7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC50ZXh0Ym94IHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgb3ZlcmZsb3ctd3JhcDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIC50ZXh0Ym94X19jb3B5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLnRleHRib3hfX2ljb25zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJsb2NrLS13YWxrdGhyb3VnaHMge1xuICAgICAgLmxpc3RpbmdzIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgLmxpc3RpbmdzX19oZWFkaW5nIHtcbiAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBoMiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmxpc3RpbmdzX19saXN0IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgICAgICAubGlzdGluZ3NfX2l0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAudGV4dGJveCB7XG4gICAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jayFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIC50ZXh0Ym94X19sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAudGV4dGJveF9fdGl0bGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC50ZXh0Ym94X19jb3B5IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5oYXJtb25pY2Ege1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIC5hY2NvcmRvbiAge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4IWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5hY2NvcmRvbl9faXRlbSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgLmFjY29yZG9uX19wYW5lbCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgLmFjY29yZG9uX19jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5hY2NvcmRvbl9fdHJpZ2dlciB7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmJsb2NrLS1xdW90ZSB7XG4gICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAucXVvdGUge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBmaWd1cmUge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuYmxvY2stLW5ld3Mge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5hY2NvcmRvbi0tc2ltcGxlIC5hY2NvcmRvbl9faXRlbS5pcy1hY3RpdmUgLmFjY29yZG9uX19wYW5lbDphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmFjY29yZG9uX19pdGVtIC5hY2NvcmRvbl9fdHJpZ2dlciBzcGFuIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5saXN0aW5nc19fbGlzdCxcbiAgYS5saXN0aW5nc19faXRlbSxcbiAgLnRleHRib3gsXG4gIC50ZXh0Ym94X190aXRsZSxcbiAgLnRleHRib3hfX2NvcHkge1xuICB9XG5cbiAgc3Bhbi5wcmludC1wYWdlIHtcbiAgICBkaXNwbGF5OiBub25lIWltcG9ydGFudDtcbiAgfVxufSJdfQ== */
