/*!******************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/project.css ***!
  \******************************************************************************************************************************************************************************************************************/
#project-main-details {
  --project-name-color: #fff;
  --project-name-bg-color: var(--link-color);
  --project-area-color: #000;
  --project-cost-border-color: #ccc;
  --construction-bg-color: #8234af;
  --selector-border-color: #0003;
  --radio-default-color: #000;
  --radio-selected-color: var(--link-color);
}

#project-main-details .name-area .popper-info svg {
  width: 20px;
  height: 20px;
  margin-left: 1rem;
}

#project-main-details .name-area > div, #project-main-details .name-area > h1 {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1rem;
}

#project-main-details .name-area .name {
  min-width: 60px;
  margin: 0;
  background-color: var(--link-color);
  color: var(--box-bg-color);
  font-size: inherit;
  font-weight: bold;
}

#project-main-details .name-area .area {
  min-width: 60px;
  background-color: var(--project-area-color);
  color: var(--box-bg-color);
}

#project-main-details .details {
  display: grid;
  grid-template-columns: auto;
  grid-auto-rows: auto;
  grid-template-areas: 'title' 'counters' 'selectors' 'promotion' 'price' 'features';
  gap: 1rem;
}

#project-main-details .title {
  grid-area: title;
}

#project-main-details .counters {
  display: flex;
  grid-area: counters;
  margin-bottom: 1rem;
  font-size: 13px;
  gap: 1rem;
}

#project-main-details .selectors {
  grid-area: selectors;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  gap: 1rem;
}

#project-main-details .price-box {
  grid-area: price;
  padding: 0;
}

#project-main-details .features {
  grid-area: features;
}

#project-main-details .mirror-switch {
  display: flex;
  padding: 1.5rem 2rem;
  border: 1px solid var(--selector-border-color);
  border-radius: 10px;
  align-items: center;
  font-weight: bold;
  cursor: pointer;
}

#project-main-details .mirror-switch:hover {
  opacity: 0.75;
}

#project-main-details .mirror-switch input[type="radio"] {
  display: none;
}

#project-main-details .mirror-switch label {
  position: relative;
  padding-left: 30px;
  padding-right: 30px;
  margin: 0;
  cursor: inherit;
}

#project-main-details .mirror-switch label:before, #project-main-details .mirror-switch label:after {
  position: absolute;
  content: ' ';
  border-radius: 50%;
  border: 1px solid var(--radio-default-color);
}

#project-main-details .mirror-switch label:before {
  top: 4px;
  left: 0;
  width: 16px;
  height: 16px;
}

#project-main-details .mirror-switch label:after {
  display: none;
  top: 8px;
  left: 4px;
  width: 8px;
  height: 8px;
  border-color: var(--radio-selected-color);
  background-color: var(--radio-selected-color);
}

#project-main-details .mirror-switch input[type="radio"]:checked + label:before {
  border: 2px solid var(--radio-selected-color);
}

#project-main-details .mirror-switch input[type="radio"]:checked + label:after {
  display: block;
}

#project-main-details .promotion2, #project-main-details .outlet {
  grid-area: promotion;
}

.price-box .price {
  font-size: 22px;
  font-weight: bold;
}

.price-box .lowest-price {
  font-size: 13px;
  color: #ccc;
}

.price-box .availability {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 1.5rem;
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  gap: 0.5rem;
}

.price-box .green span {
  color: #00d322;
}

.price-box .orange span  {
  color: #ffa500;
}

.price-box .red span  {
  color: #f00;
}

.price-box .deposit {
  margin-bottom: 1.5rem;
  color: #999;
  text-align: right;
}

.price-box .button {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.popper-info {
  cursor: pointer;
}

.price-box .popper-info svg, .lot .popper-info svg {
  width: 20px;
  height: 20px;
  overflow: unset;
}

#project .project-features .features {
  display: grid;
  grid-template-columns: auto;
  font-size: 14px;
  gap: 0.75rem;
  text-align: left;
}

#project .project-features .features.one {
  grid-template-areas: 'left';
  grid-template-columns: auto;
}

#project .materials {
  display: flex;
  max-width: 660px;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 1.5rem;
  text-align: left;
}

#project #technology-construction-pane {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

#project .project-features .features > div, #project .materials > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
  gap: 0.5rem;
}

#project .project-features .features.one > div {
  flex-wrap: nowrap;
}

#project .project-features .features.one > div, #project .materials > div {
  width: 100%;
}

#project .project-features .features > div > div:first-of-type {
  display: flex;
  align-items: center;
  width: 230px;
  gap: 0.5rem;
}

#project .materials > div > div:first-of-type {
  width: 170px;
}

#project .project-features .features.one > div > div:first-of-type {
  width: 160px;
  min-width: 160px;
}

#project .project-features .features > div > div:last-of-type, #project .materials > div > div:last-of-type {
  font-weight: bold;
}

#project .project-features .features .info {
  display: block;
  padding: 1em 0;
  font-size: 13px;
  color: #888;
}

#project .project-features .popper-info svg {
  width: 18px;
  height: 20px;
}

#project .project-features .construction-assumptions {
  line-height: 1.5em;
  font-size: 14px;
}

#project .project-features .construction-assumptions > div:first-of-type {
  width: 100%;
}

#project .project-features .construction-assumptions ul li {
  box-sizing: border-box;
  list-style-type: disc;
  list-style-position: inside;
}

#project .project-features .annotation {
  margin: 3rem 0;
  padding: 1.5rem;
  border-top: 1px solid #000;
  border-bottom: 1px solid #000;
  font-size: 16px;
}

#project .description {
  font-size: 14px;
}

#project .description ul {
  list-style: none;
}

#project-costs {
  --addon-teaser-header-color: #351c4f;
  --addon-teaser-btn-bg-color: #000;
  --addon-teaser-btn-color: #fff;

  margin-bottom: 3rem;
}

#project-costs .subheader {
  margin: 1.5rem 2rem 1rem 2rem;
  font-size: 14px;
}

#project-costs .columns .left {
  margin: 0 2rem 0 2rem;
}

#project-costs table .popper-info {
  width: 16px;
  height: 16px;
}

#project-costs .left > .buttons {
  display: flex;
  justify-content: flex-end;
}

#project-costs .left > .buttons a {
  text-decoration: none;
  text-align: center;
  background-color: var(--link-color);
  border-radius: 50px;
  color: #fff;
  text-transform: uppercase;
  padding: 0.75rem;
  font-size: 13px;
  min-width: 220px;
}

#project-costs .left > .buttons a:hover {
  opacity: 0.75;
}

#project-costs .addon-teaser h3 {
  color: var(--addon-teaser-header-color);
}

#project-costs .addon-teaser .buttons a {
  display: block;
  background-color: var(--addon-teaser-btn-bg-color);
  color: var(--addon-teaser-btn-color);
  border-radius: 50px;
  text-decoration: none;
  text-align: center;
  text-transform: uppercase;
  padding: 0.8rem;
  font-size: 13px;
}

#project-costs #loan-teaser .entry {
  justify-content: space-between;
}

#projections > * {
  box-sizing: border-box;
}

#project .lot .underline-header, #project-features .underline-header, #project-features2 .underline-header {
  width: 100%;
}

#projections h2, #project .lot h2 {
  padding: 1rem 0;
  font-size: 22px;
  text-transform: unset;
}

#project .projections, #project .lot {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 1500px;
  margin: auto;
  padding: 1.5em 0.5em 0 0.5em;
  box-sizing: border-box;
}

#project .lot .left {
  position: relative;
  max-width: 700px;
  width: 100%;
  margin: auto;
}

#project .lot .left img, .projection-svg {
  width: 100%;
  transition: 1s transform;
}

#projections canvas {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}


#project .lot .right {
  width: 100%;
  max-width: 450px;
  padding: 0 2rem;
  box-sizing: border-box;
  font-weight: 400;
  font-size: 16px;
}

#project .lot .right .header {
  margin-bottom: 2rem;
  font-weight: 700;
  text-align: left;
}

#project .lot .right .features {
  display: flex;
  flex-direction: column;
  margin-bottom: 40px;
  gap: 15px;
}

#project .lot .right .features > div {
  display: grid;
  grid-template-columns: minmax(110px, auto) 1fr;
  gap: 15px;
  font-size: 15px;
}

#project .lot .right .features .value {
  font-weight: 600;
}

#project .lot .right .files > div {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

#project .lot .right .files > div a {
  display: flex;
  width: 300px;
  padding: 0.6rem;
  box-sizing: border-box;
  border: 2px solid #000;
  color: #000;
  text-decoration: none;
  font-size: 15px;
  gap: 0.5rem;
}

#project .lot .right .files > div a:hover {
  background-color: #000;
  color: #fff;
}

#project .lot .right .files > div a:hover svg {
  fill: #fff;
}

#project .lot .right .files > div a svg {
  width: 17px;
  height: 17px;
}

#project .lot .right .files .ext {
  text-transform: uppercase;
}

#projections .rooms {
  display: grid;
  grid-template-columns: max-content max-content;
  margin: 2rem auto;
  max-width: -moz-min-content;
  max-width: min-content;
  row-gap: 0.75rem;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}

#projections .right .name {
  min-width: 100px;
}

#projections .right .value, #project .lot .right .value {
  font-weight: 500;
}

#projections .tools {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 1em auto;
  gap: 0.75rem;
}

#projections .tools > span {
  display: flex;
  max-width: 50px;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  margin: 0 0.5em;
  cursor: pointer;
}

#projections .tools svg {
  display: block;
  margin: auto;
  width: 22px;
  height: 22px;
}

#projections .tools > span.hide, #projections .tools > span.hide-clear {
  display: none;
}

#projections .tools > span span {
  display: block;
  text-transform: lowercase;
  text-align: center;
}

#projections .tools > span:hover {
  opacity: 0.75;
}

#projections .tools .mirror[data-mirror="0"] .fa-home {
  color: #CA1D61;
}

#projections .tools .mirror[data-mirror="1"] svg {
  color: var(--link-color);
}

#projections .tools > span.enabled {
  color: #ca1d61;
}

#project .additional-text {
  width: 100%;
  margin-bottom: 1rem;
  text-align: right;
}

#project-features svg, #project-features2 svg {
  width: 24px;
  height: 24px;
}

@media (min-width: 576px) {
  #project-main-details .selectors {
    flex-direction: row;
  }

  #project-costs .subheader {
    margin: 1.5rem 3rem 1rem 3rem;
    font-size: 16px;
  }

  #project-costs .columns {
    margin: 0 3rem;
  }
}

@media (min-width: 768px) {
  #project-main-details .details {
    grid-template-columns: 1fr 1fr 340px;
    grid-template-rows: 1fr auto auto auto;
    grid-template-areas: 'title title price' 'selectors selectors price' 'promotion promotion promotion' 'counters features .';
  }
}

@media (min-width: 992px) {
  #project-main-details .name-area .cost {
    border: 1px solid var(--project-cost-border-color);
  }

  #project-main-details .name-area .popper-info svg {
    width: 24px;
    height: 24px;
  }

  #project-main-details .price-box {
    display: grid;
    width: 100%;
    height: 100%;
  }

  #project-main-details .price-box > div {
    align-self: end;
  }

  #project-main-details .more {
    flex-direction: row;
    border-top: 1px solid #ccc;
    margin-top: 2rem;
    padding: 2rem 0;
  }

  #project-main-details .more .icons {
    width: 50%;
  }

  #project-main-details .more .questions {
    flex-grow: 1;
  }

  #project-main-details .more .questions > div {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 1.5rem;
    line-height: 1;
  }

  #project-costs table .popper-info {
    width: 20px;
    height: 20px;
  }

  #project-costs .left > .buttons {
    margin-bottom: 2rem;
  }

  #project-costs .project-cost-estimation .columns {
    grid-template-areas: 'table loan' 'cost loan';
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
    row-gap: 0;
  }

  #project-costs .project-cost-estimation .right {
    grid-area: loan;
    grid-row: 1 / span 2;
  }

  #project-costs .project-cost-estimation .addon-teaser {
    grid-area: cost;
  }

  #project .project-features .features {
    font-size: 16px;
    grid-template-areas: 'left right';
    grid-template-columns: minmax(auto, 500px) minmax(auto, 500px);
  }

  #project .materials, #project .project-features .construction-assumptions {
    font-size: 16px;
  }

  #project .project-features .features > div > div:first-of-type, #project .materials > div > div:first-of-type {
    width: 260px;
  }

  #project .project-features .features.one > div > div:first-of-type {
    width: 200px;
    min-width: 200px;
  }

  #project .project-features .features .popper-info svg {
    width: 20px;
  }

  #project .projections, #project .lot {
    padding: 4em 0 0 0;
  }

  #projections .tools {
    justify-content: flex-start;
  }

  #projections .tools svg {
    width: 26px;
    height: 26px;
  }

  #projections .tools > span {
    max-width: unset;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 1rem;
  }

  #project-features svg, #project-features2 svg {
    width: 36px;
    height: 36px;
  }
}

project-slider {
  width: 100%;
  max-width: 1920px;
  padding: 1rem;
  margin: auto;
}

@media (min-width: 1280px) {
  #project-main-details .details {
    grid-template-columns: 1fr 1fr 470px;
  }

  #project-main-details .details .promotion {
    grid-column: span 2;
  }

  #project-main-details .details.promotion {
    grid-template-columns: 1fr 1fr 400px;
    grid-template-areas: 'title title price' 'promotion promotion price' 'selectors selectors selectors' 'counters features .';
  }

  project-slider {
    aspect-ratio: 2.7;
  }

  #project-main-details .project-selector {
    min-width: 380px;
  }

  #project-costs .addon-teaser > div {
    display: grid;
    grid-template-columns: 340px 1fr auto;
    grid-template-rows: 25px 1fr;
    gap: 2rem;
  }

  #project-costs .addon-teaser > div > div:first-of-type {
    grid-column: 1 / span 2;
    grid-row: 1;
  }

  #project-costs .addon-teaser h3 {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
  }

  #project-costs .addon-teaser .description {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
  }

  #project-costs .addon-teaser .buttons {
    grid-column: 1/ span 2;
    grid-row: 3;
    align-self: center;
  }

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

  #project .lot .right .files .header {
    display: none;
  }
}

@media (min-width: 1366px) {
  #project-main-details {
    padding: 2.5rem;
  }

  #project-main-details .name-area > div, #project-main-details .name-area > h1 {
    padding: 2rem;
  }

  #project-main-details .title {
    font-size: 32px;
  }

  .price-box .price {
    margin-bottom: 0.5rem;
    font-size: 32px;
  }

  .price-box .availability {
    font-size: 20px;
  }

  #project-costs .project-cost-estimation .columns {
    grid-template-columns: 1fr 500px;
  }

  #projections .right {
    font-size: 15px;
  }
}

@media (min-width: 1400px) {
  #project-costs .addon-teaser .buttons {
    grid-column: 2/ span 1;
  }
}

@media (min-width: 1600px) {
  #project-costs .addon-teaser {
    grid-template-columns: 360px minmax(220px, auto) minmax(200px, 300px);
    grid-template-rows: auto auto;
  }

  #project-costs .addon-teaser h3 {
    margin: unset;
    font-size: 26px;
  }

  #project-costs .addon-teaser > div > div:first-of-type {
    grid-column: 1 / span 3;
  }

  #project-costs .addon-teaser .buttons {
    grid-column: 3;
    grid-row: 2;
  }
}

/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/js/frontend/components/project/project-listing.css ***!
  \********************************************************************************************************************************************************************************************************************************************/
.project-listing {
  --symbol-bg-color: #d9308a;
  --symbol-color: #fff;
  --area-bg-color: #351c4f;
  --area-color: #fff;
  --counters-color: #999;

  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
}

.project-listing.std-list {
  justify-content: flex-start;
}

.project-listing .project img {
  display: block;
  width: 100%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

.project-listing .project .title {
  display: none;
  font-size: 13px;
}

.project-listing .info {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  width: calc(100% - 1rem);
  margin: 5px auto;
  background-color: var(--project-info-bg-color);
  color: var(--project-info-color);
  border-radius: 3px;
  overflow: hidden;
  font-size: 14px;
  max-height: 37px;
}

.project-listing .name {
  max-width: 130px;
  padding: 0.5rem 1rem;
  color: var(--symbol-color);
  font-weight: bold;
  overflow: hidden;
}

.project-listing .area {
  padding: 0.5rem;
  background-color: var(--area-bg-color);
  color: var(--area-color);
  text-align: right;
}

.project-listing .info .construction-cost {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  margin: 0 0 0 auto;
  padding: 0.5rem 1rem;
  gap: 0.5rem;
}

.project-listing .positions, .project-listing .price {
  width: 50%;
  font-size: 13px;
}

.project-listing .price {
  text-align: right;
}

.project-listing .favorites-add-remove {
  position: absolute;
  top: 1em;
  right: 1em;
  color: #fff;
}

.project-listing .favorites-add-remove .orange {
  color: orange;
}

.project-listing .features {
  font-size: 14px;
  line-height: 1.5;
}

.project-listing .features .title {
  font-weight: 100;
}

.project-listing .features .value {
  color: #8D8D8E;
}

.project-listing .counters {
  display: flex;
  padding: 0.5rem;
  font-size: 13px;
  color: var(--counters-color);
  gap: 1rem;
}

.project-listing .on-request {
  position: absolute;
  right: -38px;
  bottom: 75px;
  transform: rotate(315deg);
  width: 150px;
  border: 22px solid transparent;
  border-top: 22px solid #ca1d61;

}

.project-listing .on-request .text {
  font-size: 16px;
  line-height: 22px;
  text-align: center;
  color: #fff;
  position: absolute;
  right: 2px;
  bottom: 1px;
}

@media (min-width: 768px) {
  .project-listing .project .title {
    display: -webkit-box;
    width: calc(100% - 1rem);
    font-size: 13px;
    margin: 5px auto auto auto;
  }

  .project-listing.list .project {
    width: calc(50% - 20px);
    max-width: 680px;
  }

  .project-listing.list .banner {
    width: calc(50% - 20px);
    max-width: 680px;
    height: initial;
    max-height: 425px;
  }

  .project-listing.small .project img {
    height: 210px;
  }

  .project-listing.list .project img {
    height: initial;
    max-height: 425px;
  }

  .project-listing.list .banner a img {
    width: 100%;
    height: initial;
    max-height: 425px;
  }

  .project-listing.small .ribbons {
    display: block;
  }

  .project-listing.small .area, .project-listing.small .price {
    text-align: right;
  }

  .project-listing.small .construction-cost > div {
    width: 50%;
  }

  .project-listing.small .construction-cost > div:last-of-type {
    text-align: right;
  }
}

@media (min-width: 992px) {
  .project-listing.large .banner {
    display: none;
  }

  .project-listing.large .project > * {
    width: 50%;
    max-width: 680px;
  }

  .project-listing.large .project img, .project-listing.large .project .no-photo {
    max-width: 680px;
    width: 100%;
    height: initial;
  }
}

/*!**********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/common/underline-header.css ***!
  \**********************************************************************************************************************************************************************************************************************************/
:root {
  --header-border-color: #ccc;
  --h2-border-color: #000;
}

.underline-header {
  border-bottom: 2px solid var(--header-border-color);
}

.underline-header h2 {
  display: inline-block;
  padding: 0.5rem 0;
  margin: 0 0 -2px 0;
  font-size: 16px;
  text-transform: uppercase;
}

.underline-header h2.selected {
  font-weight: bold;
  border-bottom: 3px solid var(--h2-border-color);
}

@media (min-width: 992px) {
  .underline-header h2 {
    padding: 1rem 0;
    font-size: 19px;
  }
}

/*!****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/project/shortcuts.css ***!
  \****************************************************************************************************************************************************************************************************************************/
#project-shortcuts {
  display: flex;
  flex-wrap: wrap;
  box-sizing: border-box;
  font-size: 13px;
  text-align: center;
  justify-content: center;
  gap: 0.5rem;
}

#project-shortcuts .shortcut {
  min-width: 250px;
  padding: 0.5rem;
  text-decoration: none;
  color: inherit;
}

#project-shortcuts .shortcut:hover {
  opacity: 0.75;
}

#project-shortcuts .shortcut svg {
  height: 44px;
}

#project-shortcuts .shortcut .title {
  padding: 0.25rem 0;
  font-size: 22px;
  font-weight: 800;
}

#project-shortcuts .shortcut .title:first-letter {
  text-transform: uppercase;
}

#project-shortcuts .shortcut .link {
  font-weight: bold;
  color: var(--link-color);
  font-size: 16px;
  cursor: pointer;
}

/*!**********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/project/cost-estimation.css ***!
  \**********************************************************************************************************************************************************************************************************************************/
.project-cost-estimation {
  --border-color: #ccc;
  --economic-bg-color: #333;
  --economic-color: #fff;

  font-size: 16px;
}

.project-cost-estimation .subheader {
  text-transform: uppercase;
  font-weight: bold;
  color: #000;
}

.project-cost-estimation .columns {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: auto;
  gap: 1rem;
}

.project-cost-estimation .columns table {
  width: 100%;
  font-size: 13px;
}

.project-cost-estimation .columns table tr th {
  font-weight: bold;
  text-align: right;
}

.project-cost-estimation .columns table thead th, .project-cost-estimation .columns table tbody td {
  padding: 0.5rem;
  border-bottom: 1px solid var(--border-color);
}

.project-cost-estimation .columns table tbody td::first-letter {
  text-transform: uppercase;
}

.project-cost-estimation .columns table tfoot td {
  padding: 0.5rem;
  font-weight: bold;
}

.project-cost-estimation .columns table th:first-of-type {
  width: 180px;
}

.project-cost-estimation .columns table th:nth-of-type(2) {
  width: 85px;
}

.project-cost-estimation .columns table td:nth-of-type(2), .project-cost-estimation .columns table td:last-of-type {
  text-align: right;
}

@media (min-width: 450px) {
  .project-cost-estimation .columns table th:first-of-type {
    width: 40%;
  }

  .project-cost-estimation .columns table th:nth-of-type(2) {
    width: 30%;
  }
}

@media (min-width: 768px) {
  .project-cost-estimation .columns table th:first-of-type {
    width: 45%;
  }

  .project-cost-estimation .columns table th:nth-of-type(2) {
    width: 33.3333%;
  }

  .project-cost-estimation .columns table th {
    font-size: 16px;
  }

  .project-cost-estimation .columns table td {
    font-size: 15px;
  }
}

@media (min-width: 992px) {
  .project-cost-estimation .columns {
    grid-template-columns: 1fr 400px;
    gap: 2.5rem;
  }
}

@media (min-width: 1260px) {
  .project-cost-estimation .columns {
    gap: 5rem;
  }

  .project-cost-estimation .columns table td {
    font-size: 20px;
  }
}

/*!***********************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/project/tabs.css ***!
  \***********************************************************************************************************************************************************************************************************************/
.tabs-component-tabs {
  --header-border-color: #ccc;
  --h2-border-color: #000;

  display: flex;
  justify-content: flex-start;
  flex-wrap: nowrap;
  -moz-column-gap: 2rem;
       column-gap: 2rem;
  margin: 0 0 2rem 2rem;
  border-bottom: 2px solid var(--header-border-color);
  font-size: 14px;
  width: calc(100vw - 2rem);
  overflow-x: auto;
  overflow-y: hidden;
}

.tabs-component-tab {
  display: inline-block;
  padding: 1rem 0;
  margin: 0 0 -2px 0;
  font-size: 14px;
  text-transform: uppercase;
  white-space: nowrap;
}

.tabs-component-tab a {
  text-decoration: none;
  color: inherit;
}

.tabs-component-tab.is-active {
  font-weight: bold;
  border-bottom: 3px solid var(--h2-border-color);
}

.tabs-component-panel {
  padding: 1.5rem 0;
  margin: 0 2rem 2rem 2rem;
  background-color: var(--box-bg-color);
  border-radius: 5px;
}

@media (min-width: 576px) {
  .tabs-component-tabs {
    margin: 0 0 2rem 0;
  }
}

@media (min-width: 992px) {
  .tabs-component-tabs {
    width: 100%;
    margin: 0 0 2rem 0;
    -moz-column-gap: 2rem;
         column-gap: 2rem;
    overflow: unset;
  }

  .tabs-component-tab {
    padding: 1rem 0;
    font-size: 19px;
  }

  .tabs-component-panel {
    padding: 0.75rem;
    margin: 0 3rem 2rem 3rem;
  }
}

/*!***********************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/project/menu.css ***!
  \***********************************************************************************************************************************************************************************************************************/
#project-tabs {
  position: fixed;
  bottom: 18px;
  left: 5px;
  display: flex;
  flex-wrap: nowrap;
  max-width: calc(100% - 80px);
  width: -moz-max-content;
  width: max-content;
  padding: 5px;
  background-color: #444;
  border-radius: 12px 30px 30px 12px;
  box-sizing: border-box;
  font-size: 14px;
  color: #fff;
  z-index: 1000;
  gap: 5px;
}

#project-tabs * {
  box-sizing: border-box;
}

#project-tabs .add-to-cart {
  display: block;
  width: 150px;
  padding: 14px;
  background-color: var(--link-color);
  border-radius: 50px;
  font-size: inherit;
  font-weight: bold;
  text-transform: uppercase;
}

#project-tabs .name {
  display: flex;
  min-width: 100px;
  padding: 0 10px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background-color: var(--link-color);
  text-decoration: none;
  font-weight: bold;
  color: #fff;
}

#project-tabs nav {
  display: none;
  height: 52px;
  padding: 20px;
  margin-right: 25px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background-color: #303030;
  font-size: 13px;
  gap: 3rem;
}

#project-tabs nav a {
  display: flex;
  align-items: center;
  height: 52px;
  color: #eee;
  text-decoration: none;
}

#project-tabs .menu {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  border-radius: 10px;
  background-color: #303030;
  cursor: pointer;
}

#project-tabs .menu svg {
  width: 34px;
  height: 34px;
  fill: #999;
}

#project-tabs .menu:hover {
  background-color: #fff;
}

#project-tabs-menu {
  position: absolute;
  right: 5px;
  bottom: 80px;
  max-width: calc(100% - 5px);
  width: 450px;
  padding: 50px 30px;
  border-radius: 10px;
  background-color: #303030;
}

#project-tabs-menu a {
  display: block;
  padding: 12px 5px;
  border-bottom: 1px solid #555;
  color: #ddd;
  text-decoration: none;
}

#project-tabs-menu div:last-of-type a {
  border-bottom: unset;
}

@media (min-width: 576px) {
  #project-tabs {
    bottom: 50px;
    left: 50%;
    transform: translateX(-50%);
  }
}

@media (min-width: 1200px) {
  #project-tabs {
    bottom: 25px;
    padding: 10px;
    background-color: #0007;
    -webkit-backdrop-filter: blur(3px);
            backdrop-filter: blur(3px);
    box-shadow: 2px 2px 6px #0006;
    font-size: 16px;
    gap: 1rem;
  }

  #project-tabs .menu {
    display: none;
  }

  #project-tabs nav {
    display: flex;
  }

  #project-tabs .add-to-cart {
    width: 165px;
  }

  #project-tabs-menu {
    display: none;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./assets/css/frontend/main/conditions-teaser.css ***!
  \*********************************************************************************************************************************************************************************************************************************/
/* nie dziedziczy po section-teaser */
#conditions-teaser {
  --bg-color: #d4d4d4;
  --color: #000;
  --btn-bg-color: #d9308a;
  --btn-color: #fff;
  --btn-bg-hover-color: #fff;

  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  max-width: 1500px;
  margin: 25px auto;
  padding: 60px 30px;
  box-sizing: border-box;
  background-color: var(--bg-color);
  color: var(--color);
  border-radius: 10px;
  font-size: 16px;
  gap: 1rem;
}

#conditions-teaser > * {
  box-sizing: border-box;
}

#conditions-teaser svg {
  width: 74px;
  height: 76px;
}

#conditions-teaser .title {
  margin-bottom: 25px;
  font-size: 31px;
  font-weight: 800;
}

#conditions-teaser .descr {
  margin-bottom: 50px;
}

#conditions-teaser .buttons {
  text-align: right;
}

#conditions-teaser .btn {
  display: inline-block;
  padding: 13px 14px;
  border-radius: 50px;
  background-color: var(--btn-bg-color);
  text-transform: uppercase;
  text-decoration: none;
  font-size: 13px;
  color: var(--btn-color);
}

#conditions-teaser .btn:hover {
  background-color: var(--btn-bg-hover-color);
  color: var(--btn-bg-color);
}

@media (min-width: 992px) {
  #conditions-teaser {
    padding: 60px 55px;
    flex-direction: row;
    align-items: center;
  }

  #conditions-teaser svg {
    width: 74px;
    height: 76px;
    margin-left: unset;
  }

  #conditions-teaser .icon {
    width: 100px;
  }

  #conditions-teaser .title, #conditions-teaser .descr {
    margin: unset;
  }
}

@media (min-width: 1280px) {
  #conditions-teaser .title {
    max-width: 395px;
    width: 33%;
  }

  #conditions-teaser .descr {
    width: 33%;
  }

  #conditions-teaser .buttons {
    width: calc(33% - 100px - 3rem);
  }
}

@media (min-width: 1600px) {
  #conditions-teaser > div {
    margin: 25px auto;
  }
}

/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/project/project-slides.vue?vue&type=style&index=0&id=3a7aa6a0&scoped=true&lang=css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.no-scrollbar[data-v-3a7aa6a0] {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/project/project.vue?vue&type=style&index=0&id=36a42722&scoped=true&lang=css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.project[data-v-36a42722] {
  --symbol-bg-color: #d9308a;
  --symbol-color: #fff;
  --area-bg-color: #351c4f;
  --area-color: #fff;
  --counters-color: #999;
}

/*!*****************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./assets/js/frontend/components/project/project-selector.css ***!
  \*****************************************************************************************************************************************************************************************************************************/
.project-selector {
  --selector-border-color: #0003;
  --selector-color: #000;
  --selector-arrow-color: #000;
  --selector-box-bg-color: #fff;
  --radio-default-color: #000;
  --radio-selected-color: var(--link-color);
  --selector-description-color: #bbb;
  --selector-button-color: var(--link-color);

  position: unset;
}

.project-selector .selector {
  display: grid;
  grid-template-columns: 1fr 36px 20px;
  grid-template-rows: auto auto;
  padding: 0.75rem 1rem;
  border: 1px solid var(--selector-border-color);
  border-radius: 10px;
  font-size: 14px;
  gap: 0.5rem;
  color: var(--selector-color);
}

.project-selector .selector.expandable {
  cursor: pointer;
}

.project-selector .selector.expandable:hover {
  opacity: 0.75;
}

.project-selector svg {
  width: 20px;
  height: 20px;
}

.project-selector .name {
  grid-column: 1;
  grid-row: 1;
  white-space: break-spaces;
}

.project-selector .name::first-letter {
  text-transform: uppercase;
}

.project-selector .selected {
  grid-column: 1;
  grid-row: 2;
  text-transform: uppercase;
  font-weight: bold;
}

.project-selector .info, .project-selector .state {
  grid-column: 2;
  grid-row: 1 / span 2;
  justify-self: center;
  align-self: center;
}

.project-selector .state {
  grid-column: 3;
}

.project-selector .state .arrow {
  width: 7px;
  height: 7px;
  border-left: 1px solid var(--selector-arrow-color);
  border-bottom: 1px solid var(--selector-arrow-color);
  transform: rotate(-45deg);
}

.project-selector .options {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: linear-gradient(145.69deg, rgba(0, 0, 0, 0.89) 3.1%, rgba(185, 51, 97, 0.94) 99.23%);
  z-index: 1030;
}

.project-selector .options .box {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  max-height: 100vh;
  padding: 2rem 1.5rem 1rem 1.5rem;
  box-sizing: border-box;
  background-color: var(--selector-box-bg-color);
  z-index: 1031;
  color: var(--selector-color);
  overflow: auto;
}

.project-selector .options h1 {
  all: unset;
  display: block;
  font-size: 20px;
  font-weight: bold;
}

.project-selector .options h1::first-letter {
  text-transform: uppercase;
}

.project-selector .options .close {
  all: unset;
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 30px;
  height: 30px;
  cursor: pointer;
}

.project-selector .options .close:hover {
  opacity: 0.75;
}

.project-selector .options svg {
  stroke: var(--selector-color);
  fill: var(--selector-color);
}

.project-selector .options ul {
  display: grid;
  grid-template-columns: auto;
  gap: 1.5rem;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.project-selector .options ul li {
  display: block;
}

.project-selector .options ul li > div {
  padding-left: 30px;
}

.project-selector .options label {
  position: relative;
  font-size: 18px;
  cursor: pointer;
}

.project-selector .options label b {
  font-weight: bold;
}

.project-selector .options label:before, .project-selector .options label:after {
  position: absolute;
  content: ' ';
  border-radius: 50%;
  border: 1px solid var(--radio-default-color);
}

.project-selector .options label:before {
  top: 5px;
  left: -26px;
  width: 16px;
  height: 16px;
}

.project-selector .options label:after {
  display: none;
  top: 9px;
  left: -22px;
  width: 8px;
  height: 8px;
  border-color: var(--radio-selected-color);
  background-color: var(--radio-selected-color);
}

.project-selector .options input[type="radio"]:checked + div label:before {
  border: 2px solid var(--radio-selected-color);
}

.project-selector .options input[type="radio"]:checked + div label:after {
  display: block;
}

.project-selector .options input {
  display: none;
}

.project-selector .options .description {
  font-size: 13px;
  color: var(--selector-description-color);
}

.project-selector .buttons {
  position: sticky;
  bottom: 0;
  display: flex;
  justify-content: center;
  padding: 0.5rem;
  background-color: var(--selector-box-bg-color);
}

.project-selector button {
  min-width: 200px;
  padding: 1rem 2rem;
  background-color: var(--selector-button-color);
  color: var(--selector-box-bg-color);
  border: 0 none;
  border-radius: 30px;
  font-size: 22px;
  font-weight: bold;
  cursor: pointer;
  text-transform: uppercase;
}

@media (min-width: 768px) {
  .project-selector .options .box {
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    max-width: 700px;
    height: unset;
  }

  .project-selector .options ul {
    grid-template-columns: calc(50% - 1rem) 1fr;
    gap: 1rem;
  }
}

@media (min-width: 992px) {
  .project-selector .selector {
    gap: 0;
  }

  .project-selector .options .box {
    border-radius: 18px;
  }
}

@media (min-width: 1280px) {
  .project-selector .selector {
    max-width: unset;
    font-size: 16px;
  }

  .project-selector .selected {
    font-size: 26px;
  }
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/project/project-selector.vue?vue&type=style&index=0&id=6f60abad&scoped=true&lang=css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.fade-enter-active[data-v-6f60abad], .fade-leave-active[data-v-6f60abad] {
  transition: opacity .5s;
}
.fade-enter-from[data-v-6f60abad], .fade-leave-to[data-v-6f60abad] {
  opacity: 0;
}
.cls-1[data-v-6f60abad] {
  stroke-miterlimit: 10;
  stroke-width: 2px;
}

/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/section-teaser/section-teaser.vue?vue&type=style&index=0&id=776cc78a&lang=css ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

@media (min-width: 850px) {
.section-teaser:not(.simple) .left-col img {
    max-width: unset;
    width: unset;
}
}

/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./assets/js/frontend/components/my-construction-bar/my-construction-bar.css ***!
  \********************************************************************************************************************************************************************************************************************************************/
.mc-bar {
  --mc-bg-color: #fc0;
  --text-color: #000;

  background-color: var(--mc-bg-color);
}

.mc-bar * {
  box-sizing: border-box;
}

.mc-bar .splide {
  background-color: var(--box-bg-color);
}

.mc-bar .badge {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 1rem;
  padding: 1rem;
  font-size: 15px;
  line-height: 1.5;
  text-decoration: none;
  color: #222;
  white-space: unset;
  text-align: unset;
}

.mc-bar .badge .logo {
  display: flex;
  align-items: center;
  width: 100px;
  height: 100px;
  padding: 0.75rem;
  border-radius: 50%;
  border: 1px solid var(--text-color);
  font-weight: 800;
  font-size: 17px;
  text-transform: uppercase;
  line-height: 1.2;
}

.mc-bar .badge .name {
  font-weight: bold;
  font-size: 22px;
}

.mc-bar .badge .see {
  font-weight: bold;
}

.mc-bar .badge .see::first-letter {
  text-transform: lowercase;
}

.mc-bar .splide__track {
  padding: 2.5rem 1.5rem !important;
}

.mc-bar .badge .buttons, .mc-bar > .buttons {
  display: none;
  width: 100%;
  padding: 2rem 0;
  justify-content: center;
}

.mc-bar > .buttons {
  display: flex;
}

.mc-bar .rounded-button {
  padding: 1rem 4rem;
  font-size: 22px;
}

@media (min-width: 992px) {
  .mc-bar {
    display: grid;
    grid-template-columns: 390px 100%;
  }

  .mc-bar .splide {
    max-width: calc(100% - 390px);
    margin: 2rem 0 !important;
    border-bottom-left-radius: 10px;
    border-top-left-radius: 10px;
  }

  .mc-bar .badge {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    font-size: 16px;
    padding: 3rem;
  }

  .mc-bar .badge .logo {
    width: 116px;
    height: 116px;
    font-size: 20px;
  }

  .mc-bar .badge .name {
    padding: 2rem 0;
    font-size: 36px;
    font-weight: bold;
    text-align: left;
    line-height: 1.2;
  }

  .mc-bar .badge .buttons {
    display: flex;
  }

  .mc-bar > .buttons {
    display: none;
  }
}

/*!********************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./assets/js/frontend/components/mc-tile/mc-tile.css ***!
  \********************************************************************************************************************************************************************************************************************/
.mc-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 300px;
  aspect-ratio: 1.31;
  text-decoration: none !important;  /* bootstrap fix */
  color: #000;
  border-bottom: 1px solid #ccc;
  font-size: 13px;
  line-height: 1.3;
}

.mc-tile > * {
  box-sizing: border-box;
}

.mc-tile:hover {
  opacity: 0.75;
  color: #000;
}

.mc-tile img {
  width: 300px;
  aspect-ratio: 1.688;
}

.mc-tile h3 {
  grid-area: header;
  margin: 0;
  padding: 1rem 0 0 0;
  max-height: 48px;
  overflow: hidden;
  font-weight: bold;
  font-size: 22px;
}

.mc-tile .finished {
  position: absolute;
  top: -15px;
  right: 10px;
  padding: 6px 10px;
  border-radius: 20px;
  background-color: var(--mc-bg-color);
  font-size: 10px;
  text-transform: uppercase;
  font-weight: 800;
}

.mc-tile .features {
  display: grid;
  grid-template-areas: 'header header' 'col1 col2';
  margin: 0 0 12px 0;
  align-items: center;
  gap: 0.5rem;
  overflow: hidden;
}

.mc-tile .features > div:first-of-type {
  grid-area: col1;
  font-weight: bold;
}

.mc-tile .features .progress span {
  font-weight: normal;
}

.mc-tile .name {
  max-height: 17px;
  overflow: hidden;
}

.mc-tile[data-finished="1"] .name {
  max-height: 34px;
}

@media (min-width: 428px) {
  .mc-tile {
    width: 370px;
  }

  .mc-tile img {
    width: 370px;
  }
}

@media (min-width: 576px) {
  .mc-tile {
    width: 400px;
  }

  .mc-tile img {
    width: 400px
  }
}

@media (min-width: 992px) {
  .mc-tile .finished {
    font-size: 13px;
    font-weight: bold;
  }

  .mc-tile h3 {
    font-size: 32px;
  }
}

@media (min-width: 1280px) {
  .mc-tile {
    width: 450px;
    height: 347px;
  }

  .mc-tile img {
    width: 450px;
  }

  .mc-tile .features {
    margin: auto 0;
    grid-template-areas: 'header col1 col2';
    grid-template-columns: minmax(100px, 150px) auto 160px;
    overflow: auto;
  }

  .mc-tile h3 {
    max-height: 74px;
    line-height: 1;
  }
}

/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/my-construction-bar/my-construction-bar.vue?vue&type=style&index=0&id=d5237626&lang=css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/


/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/@symfony/webpack-encore/node_modules/css-loader/dist/cjs.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-4.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./assets/js/frontend/components/hotspot/hotspots.vue?vue&type=style&index=0&id=d7be96b0&scoped=true&lang=css ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/

.pulse[data-v-d7be96b0] {
  display: block;
  position: absolute;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #ca1d61;
  cursor: pointer;
  transform: translateX(-11px) translateY(-11px);
  box-shadow: 0 0 0 rgba(167, 18, 77, 0.4);
  animation: hotspot-pulse-d7be96b0 1.5s infinite;
}
.pulse[data-v-d7be96b0]:hover {
  animation: none;
}
.pulse.highlight[data-v-d7be96b0] {
  background: #1b90c8;
  box-shadow: 0 0 0 rgba(27, 144, 200, 0.4);
  animation: hotspot-pulse-highlight-d7be96b0 1.5s infinite;
}

/* tooltip - https://codepen.io/sashatran/pen/KaYYBz */
.hotspot-tooltip[data-v-d7be96b0]:before {
  border-width: 11px 8px 0 11px;
  border-style: solid;
  border-color: var(--link-color) transparent transparent transparent;
  bottom: 25px;
}
@keyframes hotspot-pulse-d7be96b0 {
0% {
    box-shadow: 0 0 0 0 rgba(167, 18, 77, 0.5);
}
70% {
    box-shadow: 0 0 0 10px rgba(167, 18, 77, 0);
}
100% {
    box-shadow: 0 0 0 0 rgba(167, 18, 77, 0);
}
}
@keyframes hotspot-pulse-highlight-d7be96b0 {
0% {
    box-shadow: 0 0 0 0 rgba(27, 144, 200, 0.5);
}
70% {
    box-shadow: 0 0 0 10px rgba(27, 144, 200, 0);
}
100% {
    box-shadow: 0 0 0 0 rgba(27, 144, 200, 0);
}
}
@keyframes hotspot-shake-d7be96b0 {
0% {
    transform: rotate(2deg);
}
50% {
    transform: rotate(-3deg);
}
70% {
    transform: rotate(3deg);
}
100% {
    transform: rotate(0deg);
}
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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SUFDRSxZQUFZO0VBQ2Q7O0VBRUE7SUFDRTtFQUNGO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLGVBQWU7SUFDZixpQkFBaUI7RUFDbkI7O0VBRUE7SUFDRSxlQUFlO0VBQ2pCO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLFlBQVk7SUFDWixhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxjQUFjO0lBQ2QsdUNBQXVDO0lBQ3ZDLHNEQUFzRDtJQUN0RCxjQUFjO0VBQ2hCOztFQUVBO0lBQ0UsZ0JBQWdCO0lBQ2hCLGNBQWM7RUFDaEI7QUFDRjs7Ozs7Ozs7Ozs7QUN2REE7RUFDRSxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsOENBQThDO0VBQzlDLHdDQUF3QztFQUN4QywrQ0FBc0M7QUFDeEM7QUFFQTtFQUNFLGVBQWU7QUFDakI7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQix5Q0FBeUM7RUFDekMseURBQWdEO0FBQ2xEOztBQUVBLHNEQUFzRDtBQUN0RDtFQUNFLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIsbUVBQW1FO0VBQ25FLFlBQVk7QUFDZDtBQWNBO0FBQ0U7SUFFRSwwQ0FBMEM7QUFDNUM7QUFDQTtJQUVFLDJDQUEyQztBQUM3QztBQUNBO0lBRUUsd0NBQXdDO0FBQzFDO0FBQ0Y7QUFjQTtBQUNFO0lBRUUsMkNBQTJDO0FBQzdDO0FBQ0E7SUFFRSw0Q0FBNEM7QUFDOUM7QUFDQTtJQUVFLHlDQUF5QztBQUMzQztBQUNGO0FBRUE7QUFDRTtJQUNFLHVCQUF1QjtBQUN6QjtBQUNBO0lBQ0Usd0JBQXdCO0FBQzFCO0FBQ0E7SUFDRSx1QkFBdUI7QUFDekI7QUFFQTtJQUNFLHVCQUF1QjtBQUN6QjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9mcm9udGVuZC9wcm9qZWN0LmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9wcm9qZWN0L3Byb2plY3QtbGlzdGluZy5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9mcm9udGVuZC9jb21tb24vdW5kZXJsaW5lLWhlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9mcm9udGVuZC9wcm9qZWN0L3Nob3J0Y3V0cy5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9mcm9udGVuZC9wcm9qZWN0L2Nvc3QtZXN0aW1hdGlvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2Nzcy9mcm9udGVuZC9wcm9qZWN0L3RhYnMuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9jc3MvZnJvbnRlbmQvcHJvamVjdC9tZW51LmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvY3NzL2Zyb250ZW5kL21haW4vY29uZGl0aW9ucy10ZWFzZXIuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL3Byb2plY3QvcHJvamVjdC1zbGlkZXMudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL3Byb2plY3QvcHJvamVjdC52dWUiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvcHJvamVjdC9wcm9qZWN0LXNlbGVjdG9yLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9wcm9qZWN0L3Byb2plY3Qtc2VsZWN0b3IudnVlIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL3NlY3Rpb24tdGVhc2VyL3NlY3Rpb24tdGVhc2VyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvZnJvbnRlbmQvY29tcG9uZW50cy9teS1jb25zdHJ1Y3Rpb24tYmFyL215LWNvbnN0cnVjdGlvbi1iYXIuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9qcy9mcm9udGVuZC9jb21wb25lbnRzL21jLXRpbGUvbWMtdGlsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvaG90c3BvdC9ob3RzcG90cy52dWUiXSwic291cmNlc0NvbnRlbnQiOlsiI3Byb2plY3QtbWFpbi1kZXRhaWxzIHtcbiAgLS1wcm9qZWN0LW5hbWUtY29sb3I6ICNmZmY7XG4gIC0tcHJvamVjdC1uYW1lLWJnLWNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgLS1wcm9qZWN0LWFyZWEtY29sb3I6ICMwMDA7XG4gIC0tcHJvamVjdC1jb3N0LWJvcmRlci1jb2xvcjogI2NjYztcbiAgLS1jb25zdHJ1Y3Rpb24tYmctY29sb3I6ICM4MjM0YWY7XG4gIC0tc2VsZWN0b3ItYm9yZGVyLWNvbG9yOiAjMDAwMztcbiAgLS1yYWRpby1kZWZhdWx0LWNvbG9yOiAjMDAwO1xuICAtLXJhZGlvLXNlbGVjdGVkLWNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbn1cblxuI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5uYW1lLWFyZWEgLnBvcHBlci1pbmZvIHN2ZyB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLm5hbWUtYXJlYSA+IGRpdiwgI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5uYW1lLWFyZWEgPiBoMSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLm5hbWUtYXJlYSAubmFtZSB7XG4gIG1pbi13aWR0aDogNjBweDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWJveC1iZy1jb2xvcik7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiNwcm9qZWN0LW1haW4tZGV0YWlscyAubmFtZS1hcmVhIC5hcmVhIHtcbiAgbWluLXdpZHRoOiA2MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcm9qZWN0LWFyZWEtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tYm94LWJnLWNvbG9yKTtcbn1cblxuI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5kZXRhaWxzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xuICBncmlkLWF1dG8tcm93czogYXV0bztcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ3RpdGxlJyAnY291bnRlcnMnICdzZWxlY3RvcnMnICdwcm9tb3Rpb24nICdwcmljZScgJ2ZlYXR1cmVzJztcbiAgZ2FwOiAxcmVtO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLnRpdGxlIHtcbiAgZ3JpZC1hcmVhOiB0aXRsZTtcbn1cblxuI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5jb3VudGVycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdyaWQtYXJlYTogY291bnRlcnM7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZ2FwOiAxcmVtO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLnNlbGVjdG9ycyB7XG4gIGdyaWQtYXJlYTogc2VsZWN0b3JzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbn1cblxuI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5wcmljZS1ib3gge1xuICBncmlkLWFyZWE6IHByaWNlO1xuICBwYWRkaW5nOiAwO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLmZlYXR1cmVzIHtcbiAgZ3JpZC1hcmVhOiBmZWF0dXJlcztcbn1cblxuI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5taXJyb3Itc3dpdGNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMS41cmVtIDJyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlbGVjdG9yLWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNwcm9qZWN0LW1haW4tZGV0YWlscyAubWlycm9yLXN3aXRjaDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG5cbiNwcm9qZWN0LW1haW4tZGV0YWlscyAubWlycm9yLXN3aXRjaCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLm1pcnJvci1zd2l0Y2ggbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IGluaGVyaXQ7XG59XG5cbiNwcm9qZWN0LW1haW4tZGV0YWlscyAubWlycm9yLXN3aXRjaCBsYWJlbDpiZWZvcmUsICNwcm9qZWN0LW1haW4tZGV0YWlscyAubWlycm9yLXN3aXRjaCBsYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyAnO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXJhZGlvLWRlZmF1bHQtY29sb3IpO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLm1pcnJvci1zd2l0Y2ggbGFiZWw6YmVmb3JlIHtcbiAgdG9wOiA0cHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbiNwcm9qZWN0LW1haW4tZGV0YWlscyAubWlycm9yLXN3aXRjaCBsYWJlbDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHRvcDogOHB4O1xuICBsZWZ0OiA0cHg7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItY29sb3I6IHZhcigtLXJhZGlvLXNlbGVjdGVkLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmFkaW8tc2VsZWN0ZWQtY29sb3IpO1xufVxuXG4jcHJvamVjdC1tYWluLWRldGFpbHMgLm1pcnJvci1zd2l0Y2ggaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1yYWRpby1zZWxlY3RlZC1jb2xvcik7XG59XG5cbiNwcm9qZWN0LW1haW4tZGV0YWlscyAubWlycm9yLXN3aXRjaCBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGxhYmVsOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNwcm9qZWN0LW1haW4tZGV0YWlscyAucHJvbW90aW9uMiwgI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5vdXRsZXQge1xuICBncmlkLWFyZWE6IHByb21vdGlvbjtcbn1cblxuLnByaWNlLWJveCAucHJpY2Uge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucHJpY2UtYm94IC5sb3dlc3QtcHJpY2Uge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjY2NjO1xufVxuXG4ucHJpY2UtYm94IC5hdmFpbGFiaWxpdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGdhcDogMC41cmVtO1xufVxuXG4ucHJpY2UtYm94IC5ncmVlbiBzcGFuIHtcbiAgY29sb3I6ICMwMGQzMjI7XG59XG5cbi5wcmljZS1ib3ggLm9yYW5nZSBzcGFuICB7XG4gIGNvbG9yOiAjZmZhNTAwO1xufVxuXG4ucHJpY2UtYm94IC5yZWQgc3BhbiAge1xuICBjb2xvcjogI2YwMDtcbn1cblxuLnByaWNlLWJveCAuZGVwb3NpdCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgY29sb3I6ICM5OTk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ucHJpY2UtYm94IC5idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5wb3BwZXItaW5mbyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnByaWNlLWJveCAucG9wcGVyLWluZm8gc3ZnLCAubG90IC5wb3BwZXItaW5mbyBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBvdmVyZmxvdzogdW5zZXQ7XG59XG5cbiNwcm9qZWN0IC5wcm9qZWN0LWZlYXR1cmVzIC5mZWF0dXJlcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0bztcbiAgZm9udC1zaXplOiAxNHB4O1xuICBnYXA6IDAuNzVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbiNwcm9qZWN0IC5wcm9qZWN0LWZlYXR1cmVzIC5mZWF0dXJlcy5vbmUge1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiAnbGVmdCc7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0bztcbn1cblxuI3Byb2plY3QgLm1hdGVyaWFscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogNjYwcHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBnYXA6IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuI3Byb2plY3QgI3RlY2hub2xvZ3ktY29uc3RydWN0aW9uLXBhbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMnJlbTtcbn1cblxuI3Byb2plY3QgLnByb2plY3QtZmVhdHVyZXMgLmZlYXR1cmVzID4gZGl2LCAjcHJvamVjdCAubWF0ZXJpYWxzID4gZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIGdhcDogMC41cmVtO1xufVxuXG4jcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAuZmVhdHVyZXMub25lID4gZGl2IHtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbiNwcm9qZWN0IC5wcm9qZWN0LWZlYXR1cmVzIC5mZWF0dXJlcy5vbmUgPiBkaXYsICNwcm9qZWN0IC5tYXRlcmlhbHMgPiBkaXYge1xuICB3aWR0aDogMTAwJTtcbn1cblxuI3Byb2plY3QgLnByb2plY3QtZmVhdHVyZXMgLmZlYXR1cmVzID4gZGl2ID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aWR0aDogMjMwcHg7XG4gIGdhcDogMC41cmVtO1xufVxuXG4jcHJvamVjdCAubWF0ZXJpYWxzID4gZGl2ID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICB3aWR0aDogMTcwcHg7XG59XG5cbiNwcm9qZWN0IC5wcm9qZWN0LWZlYXR1cmVzIC5mZWF0dXJlcy5vbmUgPiBkaXYgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gIHdpZHRoOiAxNjBweDtcbiAgbWluLXdpZHRoOiAxNjBweDtcbn1cblxuI3Byb2plY3QgLnByb2plY3QtZmVhdHVyZXMgLmZlYXR1cmVzID4gZGl2ID4gZGl2Omxhc3Qtb2YtdHlwZSwgI3Byb2plY3QgLm1hdGVyaWFscyA+IGRpdiA+IGRpdjpsYXN0LW9mLXR5cGUge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuI3Byb2plY3QgLnByb2plY3QtZmVhdHVyZXMgLmZlYXR1cmVzIC5pbmZvIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDFlbSAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiAjODg4O1xufVxuXG4jcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAucG9wcGVyLWluZm8gc3ZnIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuI3Byb2plY3QgLnByb2plY3QtZmVhdHVyZXMgLmNvbnN0cnVjdGlvbi1hc3N1bXB0aW9ucyB7XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4jcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAuY29uc3RydWN0aW9uLWFzc3VtcHRpb25zID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuI3Byb2plY3QgLnByb2plY3QtZmVhdHVyZXMgLmNvbnN0cnVjdGlvbi1hc3N1bXB0aW9ucyB1bCBsaSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xufVxuXG4jcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAuYW5ub3RhdGlvbiB7XG4gIG1hcmdpbjogM3JlbSAwO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4jcHJvamVjdCAuZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbiNwcm9qZWN0IC5kZXNjcmlwdGlvbiB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbiNwcm9qZWN0LWNvc3RzIHtcbiAgLS1hZGRvbi10ZWFzZXItaGVhZGVyLWNvbG9yOiAjMzUxYzRmO1xuICAtLWFkZG9uLXRlYXNlci1idG4tYmctY29sb3I6ICMwMDA7XG4gIC0tYWRkb24tdGVhc2VyLWJ0bi1jb2xvcjogI2ZmZjtcblxuICBtYXJnaW4tYm90dG9tOiAzcmVtO1xufVxuXG4jcHJvamVjdC1jb3N0cyAuc3ViaGVhZGVyIHtcbiAgbWFyZ2luOiAxLjVyZW0gMnJlbSAxcmVtIDJyZW07XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuI3Byb2plY3QtY29zdHMgLmNvbHVtbnMgLmxlZnQge1xuICBtYXJnaW46IDAgMnJlbSAwIDJyZW07XG59XG5cbiNwcm9qZWN0LWNvc3RzIHRhYmxlIC5wb3BwZXItaW5mbyB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbiNwcm9qZWN0LWNvc3RzIC5sZWZ0ID4gLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4jcHJvamVjdC1jb3N0cyAubGVmdCA+IC5idXR0b25zIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGluay1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBmb250LXNpemU6IDEzcHg7XG4gIG1pbi13aWR0aDogMjIwcHg7XG59XG5cbiNwcm9qZWN0LWNvc3RzIC5sZWZ0ID4gLmJ1dHRvbnMgYTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG5cbiNwcm9qZWN0LWNvc3RzIC5hZGRvbi10ZWFzZXIgaDMge1xuICBjb2xvcjogdmFyKC0tYWRkb24tdGVhc2VyLWhlYWRlci1jb2xvcik7XG59XG5cbiNwcm9qZWN0LWNvc3RzIC5hZGRvbi10ZWFzZXIgLmJ1dHRvbnMgYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hZGRvbi10ZWFzZXItYnRuLWJnLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWFkZG9uLXRlYXNlci1idG4tY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogMC44cmVtO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbiNwcm9qZWN0LWNvc3RzICNsb2FuLXRlYXNlciAuZW50cnkge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiNwcm9qZWN0aW9ucyA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jcHJvamVjdCAubG90IC51bmRlcmxpbmUtaGVhZGVyLCAjcHJvamVjdC1mZWF0dXJlcyAudW5kZXJsaW5lLWhlYWRlciwgI3Byb2plY3QtZmVhdHVyZXMyIC51bmRlcmxpbmUtaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbiNwcm9qZWN0aW9ucyBoMiwgI3Byb2plY3QgLmxvdCBoMiB7XG4gIHBhZGRpbmc6IDFyZW0gMDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdW5zZXQ7XG59XG5cbiNwcm9qZWN0IC5wcm9qZWN0aW9ucywgI3Byb2plY3QgLmxvdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1heC13aWR0aDogMTUwMHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmc6IDEuNWVtIDAuNWVtIDAgMC41ZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiNwcm9qZWN0IC5sb3QgLmxlZnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogNzAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG59XG5cbiNwcm9qZWN0IC5sb3QgLmxlZnQgaW1nLCAucHJvamVjdGlvbi1zdmcge1xuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNpdGlvbjogMXMgdHJhbnNmb3JtO1xufVxuXG4jcHJvamVjdGlvbnMgY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuXG4jcHJvamVjdCAubG90IC5yaWdodCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ1MHB4O1xuICBwYWRkaW5nOiAwIDJyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuI3Byb2plY3QgLmxvdCAucmlnaHQge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbiNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4jcHJvamVjdCAubG90IC5yaWdodCAuZmVhdHVyZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICBnYXA6IDE1cHg7XG59XG5cbiNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5mZWF0dXJlcyA+IGRpdiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDExMHB4LCBhdXRvKSAxZnI7XG4gIGdhcDogMTVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4jcHJvamVjdCAubG90IC5yaWdodCAuZmVhdHVyZXMgLnZhbHVlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuI3Byb2plY3QgLmxvdCAucmlnaHQgLmZpbGVzID4gZGl2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDFyZW07XG59XG5cbiNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5maWxlcyA+IGRpdiBhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDMwMHB4O1xuICBwYWRkaW5nOiAwLjZyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDA7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbiNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5maWxlcyA+IGRpdiBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbiNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5maWxlcyA+IGRpdiBhOmhvdmVyIHN2ZyB7XG4gIGZpbGw6ICNmZmY7XG59XG5cbiNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5maWxlcyA+IGRpdiBhIHN2ZyB7XG4gIHdpZHRoOiAxN3B4O1xuICBoZWlnaHQ6IDE3cHg7XG59XG5cbiNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5maWxlcyAuZXh0IHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuI3Byb2plY3Rpb25zIC5yb29tcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgbWF4LWNvbnRlbnQ7XG4gIG1hcmdpbjogMnJlbSBhdXRvO1xuICBtYXgtd2lkdGg6IG1pbi1jb250ZW50O1xuICByb3ctZ2FwOiAwLjc1cmVtO1xuICBjb2x1bW4tZ2FwOiAwLjVyZW07XG59XG5cbiNwcm9qZWN0aW9ucyAucmlnaHQgLm5hbWUge1xuICBtaW4td2lkdGg6IDEwMHB4O1xufVxuXG4jcHJvamVjdGlvbnMgLnJpZ2h0IC52YWx1ZSwgI3Byb2plY3QgLmxvdCAucmlnaHQgLnZhbHVlIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuI3Byb2plY3Rpb25zIC50b29scyB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDFlbSBhdXRvO1xuICBnYXA6IDAuNzVyZW07XG59XG5cbiNwcm9qZWN0aW9ucyAudG9vbHMgPiBzcGFuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWF4LXdpZHRoOiA1MHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46IDAgMC41ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3Byb2plY3Rpb25zIC50b29scyBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiBhdXRvO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuXG4jcHJvamVjdGlvbnMgLnRvb2xzID4gc3Bhbi5oaWRlLCAjcHJvamVjdGlvbnMgLnRvb2xzID4gc3Bhbi5oaWRlLWNsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI3Byb2plY3Rpb25zIC50b29scyA+IHNwYW4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNwcm9qZWN0aW9ucyAudG9vbHMgPiBzcGFuOmhvdmVyIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuI3Byb2plY3Rpb25zIC50b29scyAubWlycm9yW2RhdGEtbWlycm9yPVwiMFwiXSAuZmEtaG9tZSB7XG4gIGNvbG9yOiAjQ0ExRDYxO1xufVxuXG4jcHJvamVjdGlvbnMgLnRvb2xzIC5taXJyb3JbZGF0YS1taXJyb3I9XCIxXCJdIHN2ZyB7XG4gIGNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbn1cblxuI3Byb2plY3Rpb25zIC50b29scyA+IHNwYW4uZW5hYmxlZCB7XG4gIGNvbG9yOiAjY2ExZDYxO1xufVxuXG4jcHJvamVjdCAuYWRkaXRpb25hbC10ZXh0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4jcHJvamVjdC1mZWF0dXJlcyBzdmcsICNwcm9qZWN0LWZlYXR1cmVzMiBzdmcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5zZWxlY3RvcnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIH1cblxuICAjcHJvamVjdC1jb3N0cyAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW46IDEuNXJlbSAzcmVtIDFyZW0gM3JlbTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAjcHJvamVjdC1jb3N0cyAuY29sdW1ucyB7XG4gICAgbWFyZ2luOiAwIDNyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICNwcm9qZWN0LW1haW4tZGV0YWlscyAuZGV0YWlscyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDM0MHB4O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIGF1dG8gYXV0byBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICd0aXRsZSB0aXRsZSBwcmljZScgJ3NlbGVjdG9ycyBzZWxlY3RvcnMgcHJpY2UnICdwcm9tb3Rpb24gcHJvbW90aW9uIHByb21vdGlvbicgJ2NvdW50ZXJzIGZlYXR1cmVzIC4nO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAjcHJvamVjdC1tYWluLWRldGFpbHMgLm5hbWUtYXJlYSAuY29zdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJvamVjdC1jb3N0LWJvcmRlci1jb2xvcik7XG4gIH1cblxuICAjcHJvamVjdC1tYWluLWRldGFpbHMgLm5hbWUtYXJlYSAucG9wcGVyLWluZm8gc3ZnIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gIH1cblxuICAjcHJvamVjdC1tYWluLWRldGFpbHMgLnByaWNlLWJveCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAjcHJvamVjdC1tYWluLWRldGFpbHMgLnByaWNlLWJveCA+IGRpdiB7XG4gICAgYWxpZ24tc2VsZjogZW5kO1xuICB9XG5cbiAgI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5tb3JlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICB9XG5cbiAgI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5tb3JlIC5pY29ucyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuXG4gICNwcm9qZWN0LW1haW4tZGV0YWlscyAubW9yZSAucXVlc3Rpb25zIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gIH1cblxuICAjcHJvamVjdC1tYWluLWRldGFpbHMgLm1vcmUgLnF1ZXN0aW9ucyA+IGRpdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAjcHJvamVjdC1jb3N0cyB0YWJsZSAucG9wcGVyLWluZm8ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgfVxuXG4gICNwcm9qZWN0LWNvc3RzIC5sZWZ0ID4gLmJ1dHRvbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cblxuICAjcHJvamVjdC1jb3N0cyAucHJvamVjdC1jb3N0LWVzdGltYXRpb24gLmNvbHVtbnMge1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICd0YWJsZSBsb2FuJyAnY29zdCBsb2FuJztcbiAgICBjb2x1bW4tZ2FwOiAyLjVyZW07XG4gICAgcm93LWdhcDogMDtcbiAgfVxuXG4gICNwcm9qZWN0LWNvc3RzIC5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAucmlnaHQge1xuICAgIGdyaWQtYXJlYTogbG9hbjtcbiAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgfVxuXG4gICNwcm9qZWN0LWNvc3RzIC5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuYWRkb24tdGVhc2VyIHtcbiAgICBncmlkLWFyZWE6IGNvc3Q7XG4gIH1cblxuICAjcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAuZmVhdHVyZXMge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiAnbGVmdCByaWdodCc7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoYXV0bywgNTAwcHgpIG1pbm1heChhdXRvLCA1MDBweCk7XG4gIH1cblxuICAjcHJvamVjdCAubWF0ZXJpYWxzLCAjcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAuY29uc3RydWN0aW9uLWFzc3VtcHRpb25zIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAjcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAuZmVhdHVyZXMgPiBkaXYgPiBkaXY6Zmlyc3Qtb2YtdHlwZSwgI3Byb2plY3QgLm1hdGVyaWFscyA+IGRpdiA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICB3aWR0aDogMjYwcHg7XG4gIH1cblxuICAjcHJvamVjdCAucHJvamVjdC1mZWF0dXJlcyAuZmVhdHVyZXMub25lID4gZGl2ID4gZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICB9XG5cbiAgI3Byb2plY3QgLnByb2plY3QtZmVhdHVyZXMgLmZlYXR1cmVzIC5wb3BwZXItaW5mbyBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICB9XG5cbiAgI3Byb2plY3QgLnByb2plY3Rpb25zLCAjcHJvamVjdCAubG90IHtcbiAgICBwYWRkaW5nOiA0ZW0gMCAwIDA7XG4gIH1cblxuICAjcHJvamVjdGlvbnMgLnRvb2xzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAjcHJvamVjdGlvbnMgLnRvb2xzIHN2ZyB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICB9XG5cbiAgI3Byb2plY3Rpb25zIC50b29scyA+IHNwYW4ge1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuXG4gICNwcm9qZWN0LWZlYXR1cmVzIHN2ZywgI3Byb2plY3QtZmVhdHVyZXMyIHN2ZyB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICB9XG59XG5cbnByb2plY3Qtc2xpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTkyMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICBtYXJnaW46IGF1dG87XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5kZXRhaWxzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgNDcwcHg7XG4gIH1cblxuICAjcHJvamVjdC1tYWluLWRldGFpbHMgLmRldGFpbHMgLnByb21vdGlvbiB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgfVxuXG4gICNwcm9qZWN0LW1haW4tZGV0YWlscyAuZGV0YWlscy5wcm9tb3Rpb24ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmciA0MDBweDtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiAndGl0bGUgdGl0bGUgcHJpY2UnICdwcm9tb3Rpb24gcHJvbW90aW9uIHByaWNlJyAnc2VsZWN0b3JzIHNlbGVjdG9ycyBzZWxlY3RvcnMnICdjb3VudGVycyBmZWF0dXJlcyAuJztcbiAgfVxuXG4gIHByb2plY3Qtc2xpZGVyIHtcbiAgICBhc3BlY3QtcmF0aW86IDIuNztcbiAgfVxuXG4gICNwcm9qZWN0LW1haW4tZGV0YWlscyAucHJvamVjdC1zZWxlY3RvciB7XG4gICAgbWluLXdpZHRoOiAzODBweDtcbiAgfVxuXG4gICNwcm9qZWN0LWNvc3RzIC5hZGRvbi10ZWFzZXIgPiBkaXYge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNDBweCAxZnIgYXV0bztcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDI1cHggMWZyO1xuICAgIGdhcDogMnJlbTtcbiAgfVxuXG4gICNwcm9qZWN0LWNvc3RzIC5hZGRvbi10ZWFzZXIgPiBkaXYgPiBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG4gICAgZ3JpZC1yb3c6IDE7XG4gIH1cblxuICAjcHJvamVjdC1jb3N0cyAuYWRkb24tdGVhc2VyIGgzIHtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMjtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICAjcHJvamVjdC1jb3N0cyAuYWRkb24tdGVhc2VyIC5kZXNjcmlwdGlvbiB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgZ3JpZC1yb3c6IDI7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG5cbiAgI3Byb2plY3QtY29zdHMgLmFkZG9uLXRlYXNlciAuYnV0dG9ucyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvIHNwYW4gMjtcbiAgICBncmlkLXJvdzogMztcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICAjcHJvamVjdCAuZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gICNwcm9qZWN0IC5sb3QgLnJpZ2h0IC5maWxlcyAuaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgI3Byb2plY3QtbWFpbi1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAyLjVyZW07XG4gIH1cblxuICAjcHJvamVjdC1tYWluLWRldGFpbHMgLm5hbWUtYXJlYSA+IGRpdiwgI3Byb2plY3QtbWFpbi1kZXRhaWxzIC5uYW1lLWFyZWEgPiBoMSB7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgfVxuXG4gICNwcm9qZWN0LW1haW4tZGV0YWlscyAudGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgfVxuXG4gIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICB9XG5cbiAgLnByaWNlLWJveCAuYXZhaWxhYmlsaXR5IHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cblxuICAjcHJvamVjdC1jb3N0cyAucHJvamVjdC1jb3N0LWVzdGltYXRpb24gLmNvbHVtbnMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDUwMHB4O1xuICB9XG5cbiAgI3Byb2plY3Rpb25zIC5yaWdodCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgI3Byb2plY3QtY29zdHMgLmFkZG9uLXRlYXNlciAuYnV0dG9ucyB7XG4gICAgZ3JpZC1jb2x1bW46IDIvIHNwYW4gMTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTYwMHB4KSB7XG4gICNwcm9qZWN0LWNvc3RzIC5hZGRvbi10ZWFzZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzYwcHggbWlubWF4KDIyMHB4LCBhdXRvKSBtaW5tYXgoMjAwcHgsIDMwMHB4KTtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0bztcbiAgfVxuXG4gICNwcm9qZWN0LWNvc3RzIC5hZGRvbi10ZWFzZXIgaDMge1xuICAgIG1hcmdpbjogdW5zZXQ7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICB9XG5cbiAgI3Byb2plY3QtY29zdHMgLmFkZG9uLXRlYXNlciA+IGRpdiA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIHNwYW4gMztcbiAgfVxuXG4gICNwcm9qZWN0LWNvc3RzIC5hZGRvbi10ZWFzZXIgLmJ1dHRvbnMge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICAgIGdyaWQtcm93OiAyO1xuICB9XG59XG4iLCIucHJvamVjdC1saXN0aW5nIHtcbiAgLS1zeW1ib2wtYmctY29sb3I6ICNkOTMwOGE7XG4gIC0tc3ltYm9sLWNvbG9yOiAjZmZmO1xuICAtLWFyZWEtYmctY29sb3I6ICMzNTFjNGY7XG4gIC0tYXJlYS1jb2xvcjogI2ZmZjtcbiAgLS1jb3VudGVycy1jb2xvcjogIzk5OTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJyZW07XG59XG5cbi5wcm9qZWN0LWxpc3Rpbmcuc3RkLWxpc3Qge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5wcm9qZWN0LWxpc3RpbmcgLnByb2plY3QgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweDtcbn1cblxuLnByb2plY3QtbGlzdGluZyAucHJvamVjdCAudGl0bGUge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5wcm9qZWN0LWxpc3RpbmcgLmluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgbWFyZ2luOiA1cHggYXV0bztcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJvamVjdC1pbmZvLWJnLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLXByb2plY3QtaW5mby1jb2xvcik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXgtaGVpZ2h0OiAzN3B4O1xufVxuXG4ucHJvamVjdC1saXN0aW5nIC5uYW1lIHtcbiAgbWF4LXdpZHRoOiAxMzBweDtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGNvbG9yOiB2YXIoLS1zeW1ib2wtY29sb3IpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnByb2plY3QtbGlzdGluZyAuYXJlYSB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYXJlYS1iZy1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1hcmVhLWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5wcm9qZWN0LWxpc3RpbmcgLmluZm8gLmNvbnN0cnVjdGlvbi1jb3N0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW46IDAgMCAwIGF1dG87XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLnByb2plY3QtbGlzdGluZyAucG9zaXRpb25zLCAucHJvamVjdC1saXN0aW5nIC5wcmljZSB7XG4gIHdpZHRoOiA1MCU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLnByb2plY3QtbGlzdGluZyAucHJpY2Uge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnByb2plY3QtbGlzdGluZyAuZmF2b3JpdGVzLWFkZC1yZW1vdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMWVtO1xuICByaWdodDogMWVtO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnByb2plY3QtbGlzdGluZyAuZmF2b3JpdGVzLWFkZC1yZW1vdmUgLm9yYW5nZSB7XG4gIGNvbG9yOiBvcmFuZ2U7XG59XG5cbi5wcm9qZWN0LWxpc3RpbmcgLmZlYXR1cmVzIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4ucHJvamVjdC1saXN0aW5nIC5mZWF0dXJlcyAudGl0bGUge1xuICBmb250LXdlaWdodDogMTAwO1xufVxuXG4ucHJvamVjdC1saXN0aW5nIC5mZWF0dXJlcyAudmFsdWUge1xuICBjb2xvcjogIzhEOEQ4RTtcbn1cblxuLnByb2plY3QtbGlzdGluZyAuY291bnRlcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IHZhcigtLWNvdW50ZXJzLWNvbG9yKTtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ucHJvamVjdC1saXN0aW5nIC5vbi1yZXF1ZXN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTM4cHg7XG4gIGJvdHRvbTogNzVweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKTtcbiAgd2lkdGg6IDE1MHB4O1xuICBib3JkZXI6IDIycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDIycHggc29saWQgI2NhMWQ2MTtcblxufVxuXG4ucHJvamVjdC1saXN0aW5nIC5vbi1yZXF1ZXN0IC50ZXh0IHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMnB4O1xuICBib3R0b206IDFweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9qZWN0LWxpc3RpbmcgLnByb2plY3QgLnRpdGxlIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIG1hcmdpbjogNXB4IGF1dG8gYXV0byBhdXRvO1xuICB9XG5cbiAgLnByb2plY3QtbGlzdGluZy5saXN0IC5wcm9qZWN0IHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAyMHB4KTtcbiAgICBtYXgtd2lkdGg6IDY4MHB4O1xuICB9XG5cbiAgLnByb2plY3QtbGlzdGluZy5saXN0IC5iYW5uZXIge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuICAgIG1heC13aWR0aDogNjgwcHg7XG4gICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgIG1heC1oZWlnaHQ6IDQyNXB4O1xuICB9XG5cbiAgLnByb2plY3QtbGlzdGluZy5zbWFsbCAucHJvamVjdCBpbWcge1xuICAgIGhlaWdodDogMjEwcHg7XG4gIH1cblxuICAucHJvamVjdC1saXN0aW5nLmxpc3QgLnByb2plY3QgaW1nIHtcbiAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgbWF4LWhlaWdodDogNDI1cHg7XG4gIH1cblxuICAucHJvamVjdC1saXN0aW5nLmxpc3QgLmJhbm5lciBhIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgIG1heC1oZWlnaHQ6IDQyNXB4O1xuICB9XG5cbiAgLnByb2plY3QtbGlzdGluZy5zbWFsbCAucmliYm9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAucHJvamVjdC1saXN0aW5nLnNtYWxsIC5hcmVhLCAucHJvamVjdC1saXN0aW5nLnNtYWxsIC5wcmljZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICAucHJvamVjdC1saXN0aW5nLnNtYWxsIC5jb25zdHJ1Y3Rpb24tY29zdCA+IGRpdiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuXG4gIC5wcm9qZWN0LWxpc3Rpbmcuc21hbGwgLmNvbnN0cnVjdGlvbi1jb3N0ID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC5wcm9qZWN0LWxpc3RpbmcubGFyZ2UgLmJhbm5lciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5wcm9qZWN0LWxpc3RpbmcubGFyZ2UgLnByb2plY3QgPiAqIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1heC13aWR0aDogNjgwcHg7XG4gIH1cblxuICAucHJvamVjdC1saXN0aW5nLmxhcmdlIC5wcm9qZWN0IGltZywgLnByb2plY3QtbGlzdGluZy5sYXJnZSAucHJvamVjdCAubm8tcGhvdG8ge1xuICAgIG1heC13aWR0aDogNjgwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBpbml0aWFsO1xuICB9XG59XG4iLCI6cm9vdCB7XG4gIC0taGVhZGVyLWJvcmRlci1jb2xvcjogI2NjYztcbiAgLS1oMi1ib3JkZXItY29sb3I6ICMwMDA7XG59XG5cbi51bmRlcmxpbmUtaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWhlYWRlci1ib3JkZXItY29sb3IpO1xufVxuXG4udW5kZXJsaW5lLWhlYWRlciBoMiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC41cmVtIDA7XG4gIG1hcmdpbjogMCAwIC0ycHggMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udW5kZXJsaW5lLWhlYWRlciBoMi5zZWxlY3RlZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdmFyKC0taDItYm9yZGVyLWNvbG9yKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gIC51bmRlcmxpbmUtaGVhZGVyIGgyIHtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgZm9udC1zaXplOiAxOXB4O1xuICB9XG59XG4iLCIjcHJvamVjdC1zaG9ydGN1dHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbiNwcm9qZWN0LXNob3J0Y3V0cyAuc2hvcnRjdXQge1xuICBtaW4td2lkdGg6IDI1MHB4O1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbiNwcm9qZWN0LXNob3J0Y3V0cyAuc2hvcnRjdXQ6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4jcHJvamVjdC1zaG9ydGN1dHMgLnNob3J0Y3V0IHN2ZyB7XG4gIGhlaWdodDogNDRweDtcbn1cblxuI3Byb2plY3Qtc2hvcnRjdXRzIC5zaG9ydGN1dCAudGl0bGUge1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuI3Byb2plY3Qtc2hvcnRjdXRzIC5zaG9ydGN1dCAudGl0bGU6Zmlyc3QtbGV0dGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuI3Byb2plY3Qtc2hvcnRjdXRzIC5zaG9ydGN1dCAubGluayB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tbGluay1jb2xvcik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIHtcbiAgLS1ib3JkZXItY29sb3I6ICNjY2M7XG4gIC0tZWNvbm9taWMtYmctY29sb3I6ICMzMzM7XG4gIC0tZWNvbm9taWMtY29sb3I6ICNmZmY7XG5cbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ucHJvamVjdC1jb3N0LWVzdGltYXRpb24gLnN1YmhlYWRlciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gIGdhcDogMXJlbTtcbn1cblxuLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHRhYmxlIHRyIHRoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ucHJvamVjdC1jb3N0LWVzdGltYXRpb24gLmNvbHVtbnMgdGFibGUgdGhlYWQgdGgsIC5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuY29sdW1ucyB0YWJsZSB0Ym9keSB0ZCB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7XG59XG5cbi5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuY29sdW1ucyB0YWJsZSB0Ym9keSB0ZDo6Zmlyc3QtbGV0dGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHRhYmxlIHRmb290IHRkIHtcbiAgcGFkZGluZzogMC41cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHRhYmxlIHRoOmZpcnN0LW9mLXR5cGUge1xuICB3aWR0aDogMTgwcHg7XG59XG5cbi5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuY29sdW1ucyB0YWJsZSB0aDpudGgtb2YtdHlwZSgyKSB7XG4gIHdpZHRoOiA4NXB4O1xufVxuXG4ucHJvamVjdC1jb3N0LWVzdGltYXRpb24gLmNvbHVtbnMgdGFibGUgdGQ6bnRoLW9mLXR5cGUoMiksIC5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuY29sdW1ucyB0YWJsZSB0ZDpsYXN0LW9mLXR5cGUge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ1MHB4KSB7XG4gIC5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuY29sdW1ucyB0YWJsZSB0aDpmaXJzdC1vZi10eXBlIHtcbiAgICB3aWR0aDogNDAlO1xuICB9XG5cbiAgLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHRhYmxlIHRoOm50aC1vZi10eXBlKDIpIHtcbiAgICB3aWR0aDogMzAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucHJvamVjdC1jb3N0LWVzdGltYXRpb24gLmNvbHVtbnMgdGFibGUgdGg6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgd2lkdGg6IDQ1JTtcbiAgfVxuXG4gIC5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuY29sdW1ucyB0YWJsZSB0aDpudGgtb2YtdHlwZSgyKSB7XG4gICAgd2lkdGg6IDMzLjMzMzMlO1xuICB9XG5cbiAgLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHRhYmxlIHRoIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAucHJvamVjdC1jb3N0LWVzdGltYXRpb24gLmNvbHVtbnMgdGFibGUgdGQge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciA0MDBweDtcbiAgICBnYXA6IDIuNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI2MHB4KSB7XG4gIC5wcm9qZWN0LWNvc3QtZXN0aW1hdGlvbiAuY29sdW1ucyB7XG4gICAgZ2FwOiA1cmVtO1xuICB9XG5cbiAgLnByb2plY3QtY29zdC1lc3RpbWF0aW9uIC5jb2x1bW5zIHRhYmxlIHRkIHtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cbiIsIi50YWJzLWNvbXBvbmVudC10YWJzIHtcbiAgLS1oZWFkZXItYm9yZGVyLWNvbG9yOiAjY2NjO1xuICAtLWgyLWJvcmRlci1jb2xvcjogIzAwMDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBjb2x1bW4tZ2FwOiAycmVtO1xuICBtYXJnaW46IDAgMCAycmVtIDJyZW07XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1oZWFkZXItYm9yZGVyLWNvbG9yKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3aWR0aDogY2FsYygxMDB2dyAtIDJyZW0pO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi50YWJzLWNvbXBvbmVudC10YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDFyZW0gMDtcbiAgbWFyZ2luOiAwIDAgLTJweCAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi50YWJzLWNvbXBvbmVudC10YWIgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi50YWJzLWNvbXBvbmVudC10YWIuaXMtYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS1oMi1ib3JkZXItY29sb3IpO1xufVxuXG4udGFicy1jb21wb25lbnQtcGFuZWwge1xuICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgbWFyZ2luOiAwIDJyZW0gMnJlbSAycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3gtYmctY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAudGFicy1jb21wb25lbnQtdGFicyB7XG4gICAgbWFyZ2luOiAwIDAgMnJlbSAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAudGFicy1jb21wb25lbnQtdGFicyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMnJlbSAwO1xuICAgIGNvbHVtbi1nYXA6IDJyZW07XG4gICAgb3ZlcmZsb3c6IHVuc2V0O1xuICB9XG5cbiAgLnRhYnMtY29tcG9uZW50LXRhYiB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgfVxuXG4gIC50YWJzLWNvbXBvbmVudC1wYW5lbCB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgICBtYXJnaW46IDAgM3JlbSAycmVtIDNyZW07XG4gIH1cbn1cbiIsIiNwcm9qZWN0LXRhYnMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMThweDtcbiAgbGVmdDogNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSA4MHB4KTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwYWRkaW5nOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0NDQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHggMzBweCAzMHB4IDEycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICNmZmY7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGdhcDogNXB4O1xufVxuXG4jcHJvamVjdC10YWJzICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4jcHJvamVjdC10YWJzIC5hZGQtdG8tY2FydCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTUwcHg7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4jcHJvamVjdC10YWJzIC5uYW1lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiAxMDBweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGluay1jb2xvcik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4jcHJvamVjdC10YWJzIG5hdiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogNTJweDtcbiAgcGFkZGluZzogMjBweDtcbiAgbWFyZ2luLXJpZ2h0OiAyNXB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBnYXA6IDNyZW07XG59XG5cbiNwcm9qZWN0LXRhYnMgbmF2IGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDUycHg7XG4gIGNvbG9yOiAjZWVlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbiNwcm9qZWN0LXRhYnMgLm1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDYwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI3Byb2plY3QtdGFicyAubWVudSBzdmcge1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBmaWxsOiAjOTk5O1xufVxuXG4jcHJvamVjdC10YWJzIC5tZW51OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuI3Byb2plY3QtdGFicy1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNXB4O1xuICBib3R0b206IDgwcHg7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gNXB4KTtcbiAgd2lkdGg6IDQ1MHB4O1xuICBwYWRkaW5nOiA1MHB4IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMDMwMzA7XG59XG5cbiNwcm9qZWN0LXRhYnMtbWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEycHggNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU1NTtcbiAgY29sb3I6ICNkZGQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuI3Byb2plY3QtdGFicy1tZW51IGRpdjpsYXN0LW9mLXR5cGUgYSB7XG4gIGJvcmRlci1ib3R0b206IHVuc2V0O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgI3Byb2plY3QtdGFicyB7XG4gICAgYm90dG9tOiA1MHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAjcHJvamVjdC10YWJzIHtcbiAgICBib3R0b206IDI1cHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwNztcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoM3B4KTtcbiAgICBib3gtc2hhZG93OiAycHggMnB4IDZweCAjMDAwNjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG5cbiAgI3Byb2plY3QtdGFicyAubWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNwcm9qZWN0LXRhYnMgbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgI3Byb2plY3QtdGFicyAuYWRkLXRvLWNhcnQge1xuICAgIHdpZHRoOiAxNjVweDtcbiAgfVxuXG4gICNwcm9qZWN0LXRhYnMtbWVudSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiLyogbmllIGR6aWVkemljenkgcG8gc2VjdGlvbi10ZWFzZXIgKi9cbiNjb25kaXRpb25zLXRlYXNlciB7XG4gIC0tYmctY29sb3I6ICNkNGQ0ZDQ7XG4gIC0tY29sb3I6ICMwMDA7XG4gIC0tYnRuLWJnLWNvbG9yOiAjZDkzMDhhO1xuICAtLWJ0bi1jb2xvcjogI2ZmZjtcbiAgLS1idG4tYmctaG92ZXItY29sb3I6ICNmZmY7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtd2lkdGg6IDE1MDBweDtcbiAgbWFyZ2luOiAyNXB4IGF1dG87XG4gIHBhZGRpbmc6IDYwcHggMzBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3IpO1xuICBjb2xvcjogdmFyKC0tY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGdhcDogMXJlbTtcbn1cblxuI2NvbmRpdGlvbnMtdGVhc2VyID4gKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiNjb25kaXRpb25zLXRlYXNlciBzdmcge1xuICB3aWR0aDogNzRweDtcbiAgaGVpZ2h0OiA3NnB4O1xufVxuXG4jY29uZGl0aW9ucy10ZWFzZXIgLnRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgZm9udC1zaXplOiAzMXB4O1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG4jY29uZGl0aW9ucy10ZWFzZXIgLmRlc2NyIHtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbn1cblxuI2NvbmRpdGlvbnMtdGVhc2VyIC5idXR0b25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbiNjb25kaXRpb25zLXRlYXNlciAuYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxM3B4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ0bi1iZy1jb2xvcik7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tYnRuLWNvbG9yKTtcbn1cblxuI2NvbmRpdGlvbnMtdGVhc2VyIC5idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idG4tYmctaG92ZXItY29sb3IpO1xuICBjb2xvcjogdmFyKC0tYnRuLWJnLWNvbG9yKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICNjb25kaXRpb25zLXRlYXNlciB7XG4gICAgcGFkZGluZzogNjBweCA1NXB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICNjb25kaXRpb25zLXRlYXNlciBzdmcge1xuICAgIHdpZHRoOiA3NHB4O1xuICAgIGhlaWdodDogNzZweDtcbiAgICBtYXJnaW4tbGVmdDogdW5zZXQ7XG4gIH1cblxuICAjY29uZGl0aW9ucy10ZWFzZXIgLmljb24ge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgfVxuXG4gICNjb25kaXRpb25zLXRlYXNlciAudGl0bGUsICNjb25kaXRpb25zLXRlYXNlciAuZGVzY3Ige1xuICAgIG1hcmdpbjogdW5zZXQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAjY29uZGl0aW9ucy10ZWFzZXIgLnRpdGxlIHtcbiAgICBtYXgtd2lkdGg6IDM5NXB4O1xuICAgIHdpZHRoOiAzMyU7XG4gIH1cblxuICAjY29uZGl0aW9ucy10ZWFzZXIgLmRlc2NyIHtcbiAgICB3aWR0aDogMzMlO1xuICB9XG5cbiAgI2NvbmRpdGlvbnMtdGVhc2VyIC5idXR0b25zIHtcbiAgICB3aWR0aDogY2FsYygzMyUgLSAxMDBweCAtIDNyZW0pO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNjAwcHgpIHtcbiAgI2NvbmRpdGlvbnMtdGVhc2VyID4gZGl2IHtcbiAgICBtYXJnaW46IDI1cHggYXV0bztcbiAgfVxufVxuIiwiPHNjcmlwdCBzZXR1cD5cbmltcG9ydCB7aW5qZWN0LCByZWZ9IGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7dXNlSW1hZ2V9IGZyb20gXCJAL2pzL2NvbXBvc2FibGVzL3VzZUltYWdlXCI7XG5pbXBvcnQge3VzZUFzcGVjdFJhdGlvfSBmcm9tIFwiQC9qcy9jb21wb3NhYmxlcy91c2VBc3BlY3RSYXRpb1wiO1xuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgaW1hZ2VzOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIHJlcXVpcmVkOiB0cnVlXG4gIH0sXG4gIG1pcnJvcmVkOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9XG59KVxuXG5jb25zdCBhbWF6b25Db25maWcgPSBpbmplY3QoJ2FtYXpvbicpXG5jb25zdCB7IGdldFRodW1iLCBnZXRDb250ZW50OiBnZXRJbWFnZUNvbnRlbnQgfSA9IHVzZUltYWdlKGFtYXpvbkNvbmZpZy5pbWFnZV9jbG91ZGZyb250X2VuZHBvaW50LCBhbWF6b25Db25maWcuczNfYnVja2V0X25hbWUpXG5jb25zdCB2aWV3cG9ydCA9IHJlZihudWxsKVxuXG5mdW5jdGlvbiBzY3JvbGxOZXh0KCkge1xuICBjb25zdCB3aWR0aCA9IHZpZXdwb3J0LnZhbHVlLmNsaWVudFdpZHRoXG4gIGNvbnN0IHNjcm9sbFBvcyA9IHZpZXdwb3J0LnZhbHVlLnNjcm9sbExlZnRcbiAgY29uc3QgbmV4dFNjcm9sbFBvcyA9IHNjcm9sbFBvcyArIHdpZHRoXG4gIHZpZXdwb3J0LnZhbHVlLnNjcm9sbFRvKHtcbiAgICBsZWZ0OiBuZXh0U2Nyb2xsUG9zLCBiZWhhdmlvcjogJ3Ntb290aCdcbiAgfSlcbn1cblxuZnVuY3Rpb24gc2Nyb2xsUHJldigpIHtcbiAgY29uc3Qgd2lkdGggPSB2aWV3cG9ydC52YWx1ZS5jbGllbnRXaWR0aFxuICBjb25zdCBzY3JvbGxQb3MgPSB2aWV3cG9ydC52YWx1ZS5zY3JvbGxMZWZ0XG4gIGNvbnN0IG5leHRTY3JvbGxQb3MgPSBzY3JvbGxQb3MgLSB3aWR0aFxuICB2aWV3cG9ydC52YWx1ZS5zY3JvbGxUbyh7XG4gICAgbGVmdDogbmV4dFNjcm9sbFBvcywgYmVoYXZpb3I6ICdzbW9vdGgnXG4gIH0pXG59XG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgc2VsZWN0LW5vbmVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWQ6dy1bMzUwcHhdIGdyb3VwLVsubGFyZ2VdOnctZnVsbCBncm91cC1bLmxhcmdlXTptYXgtdy1bMTYwMHB4XSBmbGV4IGZsZXgtbm93cmFwIG92ZXJmbG93LXgtYXV0byBzbmFwLXggc25hcC1tYW5kYXRvcnkgc2Nyb2xsLXNtb290aCBuby1zY3JvbGxiYXJcIiByZWY9XCJ2aWV3cG9ydFwiPlxuICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiaW1hZ2UgaW4gaW1hZ2VzWydwcm9qZWN0X3ZpZXcnXVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vbmUgc25hcC1jZW50ZXIgYmFzaXMtZnVsbFwiPlxuICAgICAgICAgIDxpbWcgY2xhc3M9XCJtZDp3LVszNTBweF0gbWQ6aC1bMjE4cHhdIGdyb3VwLVsubGFyZ2VdOnctYXV0byBtZDpncm91cC1bLmxhcmdlXTpoLWF1dG8gc206cm91bmRlZC1sZ1wiIDpjbGFzcz1cInsgJ3NjYWxlLXgtWy0xXSc6IG1pcnJvcmVkIH1cIlxuICAgICAgICAgICAgICAgOnNyYz1cImdldFRodW1iKHsgcGF0aDogaW1hZ2UucGF0aCwgd2lkdGg6IDM1MCwgaGVpZ2h0OiB1c2VBc3BlY3RSYXRpbyh7IHdpZHRoOiAzNTAsIHJhdGlvOiAxNi85IH0pLCBtaXJyb3I6IG1pcnJvcmVkLCBlZmZlY3Q6IGltYWdlLnR5cGUgPT09ICdwcm9qZWN0X3ZpZXcnID8gJ2NvdmVyJyA6ICdpbnNpZGUnIH0pXCJcbiAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICA6c3Jjc2V0PVwiaW1hZ2Uuc3Jjc2V0XCJcbiAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgIGRyYWdnYWJsZT1cImZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrIGFic29sdXRlIHRvcC0xLzIgcmlnaHQtMiB3LVszMHB4XSBoLVszMHB4XSBiZy1ncmF5LTcwMCByb3VuZGVkLWZ1bGwgaG92ZXI6YmctYmxhY2tcIiBAY2xpY2sucHJldmVudC5zdG9wPVwic2Nyb2xsTmV4dFwiIHYtaWY9XCJpbWFnZXMucHJvamVjdF92aWV3Lmxlbmd0aCA+IDFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMS8yIGxlZnQtMS8yIC10cmFuc2xhdGUteC1bNnB4XSAtdHJhbnNsYXRlLXktMS8yIHctWzEwcHhdIGgtWzEwcHhdIC1yb3RhdGUtWzEzNWRlZ10gYm9yZGVyLWwtMiBib3JkZXItYi0yIGJvcmRlci13aGl0ZVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2sgYWJzb2x1dGUgdG9wLTEvMiBsZWZ0LTIgdy1bMzBweF0gaC1bMzBweF0gYmctZ3JheS03MDAgcm91bmRlZC1mdWxsIGhvdmVyOmJnLWJsYWNrXCIgQGNsaWNrLnByZXZlbnQuc3RvcD1cInNjcm9sbFByZXZcIiB2LWlmPVwiaW1hZ2VzLnByb2plY3Rfdmlldy5sZW5ndGggPiAxXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTEvMiBsZWZ0LTEvMiAtdHJhbnNsYXRlLXgtWzRweF0gLXRyYW5zbGF0ZS15LTEvMiB3LVsxMHB4XSBoLVsxMHB4XSByb3RhdGUtWzQ1ZGVnXSBib3JkZXItbC0yIGJvcmRlci1iLTIgYm9yZGVyLXdoaXRlXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHN0eWxlIHNjb3BlZD5cbi5uby1zY3JvbGxiYXIge1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cbjwvc3R5bGU+XG4iLCI8c2NyaXB0IHNldHVwPlxuXG5pbXBvcnQge2NvbXB1dGVkLCBpbmplY3QsIHJlZiwgd2F0Y2h9IGZyb20gXCJ2dWVcIjtcbmltcG9ydCB7dXNlSTE4bn0gZnJvbSBcInZ1ZS1pMThuXCI7XG5pbXBvcnQgUHJvamVjdFNsaWRlcyBmcm9tIFwiLi9wcm9qZWN0LXNsaWRlcy52dWVcIjtcbmltcG9ydCB7dXNlUHJvamVjdH0gZnJvbSBcIkAvanMvY29tcG9zYWJsZXMvdXNlUHJvamVjdFwiO1xuaW1wb3J0IHtJY29ufSBmcm9tIFwiQGljb25pZnkvdnVlXCJcbmltcG9ydCB7dXNlSW1hZ2V9IGZyb20gXCJAL2pzL2NvbXBvc2FibGVzL3VzZUltYWdlXCI7XG5pbXBvcnQgRmF2b3JpdGVzIGZyb20gXCJAL2pzL2Zyb250ZW5kL2NvbXBvbmVudHMvZmF2b3JpdGVzL2Zhdm9yaXRlcy52dWVcIjtcbmltcG9ydCB7Rm9ybWF0dGVyfSBmcm9tIFwiQC9qcy90b29scy9pMThuL2Zvcm1hdHRlclwiO1xuXG5jb25zdCB7IHQgfSA9IHVzZUkxOG4oKVxuXG5jb25zdCBlbWl0ID0gZGVmaW5lRW1pdHMoWydlbnRlci1wcm9qZWN0JywgJ3VwZGF0ZUZhdm9yaXRlcyddKVxuXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzKHtcbiAgcHJvamVjdDoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBjb25maWc6IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgZGVmYXVsdDogQXBwR2xvYmFsLmNvbmZpZ1xuICB9LFxuICBtaXJyb3I6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlXG4gIH0sXG4gIHNob3dSaWJib25zOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiB0cnVlXG4gIH0sXG4gIHNob3dUaXRsZXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWVcbiAgfSxcbiAgc2hvd0Nvc3Q6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWVcbiAgfSxcbiAgc2hvd0Zhdm9yaXRlczoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgc2hvd1ZhcmlhbnRGZWF0dXJlczoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgbGFiZWxzOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIG5ldzogJ05vd2/Fm8SHJyxcbiAgICAgIHJlY29tbWVuZGVkOiAnUG9sZWNhbmUnXG4gICAgfVxuICB9LFxuICB1bml0czoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBkZWZhdWx0OiB7XG4gICAgICAnbTInOiAnbTxzdXA+Mjwvc3VwPidcbiAgICB9XG4gIH0sXG4gIGN1cnJlbmN5OiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdQTE4nXG4gIH0sXG4gIGlzUGFydG5lcjoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfSxcbiAgdmlldzoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnc21hbGwnXG4gIH0sXG4gIGZsb29yczoge1xuICAgIHR5cGU6IE9iamVjdCxcbiAgICBkZWZhdWx0OiB7fVxuICB9LFxuICBmYXZvcml0ZXM6IHtcbiAgICB0eXBlOiBBcnJheSxcbiAgICBkZWZhdWx0OiBbXVxuICB9LFxufSlcblxuY29uc3Qgc2VsZWN0ZWRGbG9vciA9IHJlZigxKVxuXG5jb25zdCBfcHJvamVjdCA9IHJlZihwcm9wcy5wcm9qZWN0KVxuXG53YXRjaChcbiAgICAoKSA9PiBwcm9wcy5wcm9qZWN0LFxuICAgIChuKSA9PiB7XG4gICAgICBfcHJvamVjdC52YWx1ZSA9IG5cbiAgICB9XG4pXG5cbmNvbnN0IGFtYXpvbkNvbmZpZyA9IGluamVjdCgnYW1hem9uJylcbmNvbnN0IHsgaXNWYXJpYW50LCBhcmVhLCBjb3N0RXN0aW1hdGVUb3RhbCwgaXNXaXRoQ29uc3RydWN0aW9uLCBpc0luRmF2b3JpdGVzIH0gPSB1c2VQcm9qZWN0KF9wcm9qZWN0LCBwcm9wcy5jb25maWcpXG5jb25zdCB7IGdldFRodW1iLCBnZXRTcmNTZXQsIGdldENvbnRlbnQ6IGdldEltYWdlQ29udGVudCB9ID0gdXNlSW1hZ2UoYW1hem9uQ29uZmlnLmltYWdlX2Nsb3VkZnJvbnRfZW5kcG9pbnQsIGFtYXpvbkNvbmZpZy5zM19idWNrZXRfbmFtZSlcblxuY29uc3QgbnVtYmVyRm9ybWF0dGVyID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KEFwcEdsb2JhbC5sb2NhbGUpO1xuXG5jb25zdCBuYW1lQ3NzQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gIGlmIChpc1dpdGhDb25zdHJ1Y3Rpb24udmFsdWUpIHtcbiAgICByZXR1cm4gJ2JnLWxpbWUtMjAwIHRleHQtc3RvbmUtNzAwJ1xuICB9XG4gIGVsc2Uge1xuICAgIHJldHVybiAnYmctcGluay01MDAnXG4gIH1cbn0pXG5cbmNvbnN0IGltYWdlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgbGV0IHByb2plY3RJbWFnZXMgPSBbXVxuICBwcm9wcy5wcm9qZWN0LmltYWdlcy5mb3JFYWNoKGltYWdlID0+IHtcbiAgICBpZiAocHJvamVjdEltYWdlc1tpbWFnZS50eXBlXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBwcm9qZWN0SW1hZ2VzW2ltYWdlLnR5cGVdID0gW11cbiAgICB9XG4gICAgcHJvamVjdEltYWdlc1tpbWFnZS50eXBlXS5wdXNoKGltYWdlKVxuICB9KVxuICByZXR1cm4gcHJvamVjdEltYWdlc1xufSlcblxuY29uc3Qgc3RvY2tEaXNjb3VudCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgaWYgKHByb3BzLnByb2plY3Quc3RvY2suaWQgIT09IG51bGwpIHtcbiAgICBpZiAocHJvcHMuaXNQYXJ0bmVyKSB7XG4gICAgICByZXR1cm4gcHJvcHMucHJvamVjdC5zdG9jay5wYXJ0bmVyX2Rpc2NvdW50XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHByb3BzLnByb2plY3Quc3RvY2suZGlzY291bnRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDBcbn0pXG5cbmNvbnN0IHByb2plY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICByZXR1cm4gcHJvcHMucHJvamVjdC5pbWFnZXMuZmlsdGVyKGltYWdlID0+IGltYWdlLnR5cGUgPT09ICdwcm9qZWN0X3Byb2plY3Rpb24nICYmICFpbWFnZS5taXJyb3JlZCkuc29ydCgoYSwgYikgPT4ge1xuICAgIHJldHVybiBhLmZsb29yIDwgYi5mbG9vciA/IC0xIDogKGEuZmxvb3IgPiBiLmZsb29yID8gMSA6IDApXG4gIH0pXG59KVxuXG5mdW5jdGlvbiBwcmljZVRleHQocHJpY2UpIHtcbiAgbGV0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdCgncGwtUEwnLCB7XG4gICAgc3R5bGU6ICdjdXJyZW5jeScsXG4gICAgY3VycmVuY3k6IHByb3BzLmN1cnJlbmN5XG4gIH0pO1xuXG4gIHJldHVybiBmb3JtYXR0ZXIuZm9ybWF0KHByaWNlKTtcbn1cblxuZnVuY3Rpb24gY2xpY2soKSB7XG4gIGVtaXQoJ2VudGVyLXByb2plY3QnLCBwcm9wcy5wcm9qZWN0KVxufVxuXG5mdW5jdGlvbiBwcm9qZWN0Q3NzKCkge1xuICBzd2l0Y2ggKHByb3BzLnZpZXcpIHtcbiAgICBjYXNlICdsYXJnZSc6XG4gICAgICByZXR1cm4gJ2xhcmdlJ1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ3NtYWxsJ1xuICB9XG59XG5cbmZ1bmN0aW9uIHN3aXRjaEZsb29yKGZsb29yKSB7XG4gIHNlbGVjdGVkRmxvb3IudmFsdWUgPSBwYXJzZUludChmbG9vcilcbn1cblxuZnVuY3Rpb24gdXBkYXRlRmF2b3JpdGVzKCkge1xuICBlbWl0KCd1cGRhdGVGYXZvcml0ZXMnKVxufVxuPC9zY3JpcHQ+XG5cbjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktY2VudGVyIHByb2plY3QgZ3JvdXAgcmVsYXRpdmUgdGV4dC1pbmhlcml0IG1kOnctWzM1MHB4XSBncm91cC1bLmxhcmdlXTpoLWF1dG8gZ3JvdXAtWy5sYXJnZV06bWQ6aC1hdXRvIGdyb3VwLVsubGFyZ2VdOnctZnVsbCBncm91cC1bLmxhcmdlXTptYXgtdy1bMTYwMHB4XVwiIDpjbGFzcz1cInByb2plY3RDc3NcIj5cbiAgICA8YSBjbGFzcz1cImJsb2NrIGRlY29yYXRpb24tMCB0ZXh0LVsjMkQyRDJGXSBncm91cC1bLmxhcmdlXTpsZzp3LTEvMiBncm91cC1bLmxhcmdlXTp4bDp3LTUvMTJcIiA6aHJlZj1cInByb2plY3QudXJsXCIgQGNsaWNrLnByZXZlbnQ9XCJjbGlja1wiIGRhdGEtZ2EtYWN0aW9uPVwicHJvZHVjdC1jbGljay1pbXByZXNzaW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgPHByb2plY3Qtc2xpZGVzIDppbWFnZXM9XCJpbWFnZXNcIiA6bWlycm9yZWQ9XCJwcm9qZWN0LnN0b2NrID8gQm9vbGVhbihwcm9qZWN0LnN0b2NrLm1pcnJvcikgOiBmYWxzZVwiPjwvcHJvamVjdC1zbGlkZXM+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIHRvcC0yIGxlZnQtMiBmbGV4IGZsZXgtY29sIGdhcC0yIHRleHQtWzExcHhdIHVwcGVyY2FzZVwiIHYtaWY9XCJzaG93UmliYm9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHB4LTIgcHktMC41IHRleHQtYmxhY2sgZm9udC1ib2xkIGxhYmVsIG5ldyBiZy1wdXJwbGUtMzAwIHRleHQtY2VudGVyIHJvdW5kZWQtbWQganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIGdhcC0xXCIgdi1pZj1cInByb2plY3Quc3RvY2tfaWQgIT09IG51bGwgJiYgc3RvY2tEaXNjb3VudCA+IDBcIj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJzaXplLVsxNnB4XVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUwIDUwXCI+XG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNIDI4LjYyNSAyIEMgMjguMjg1MTU2IDIuMDAzOTA2IDI3Ljk0MTQwNiAyLjAxOTUzMSAyNy41OTM3NSAyLjA2MjUgQyAyNi45MDIzNDQgMi4xNTIzNDQgMjYuMTQ0NTMxIDIuMzg2NzE5IDI1LjU2MjUgMi45Njg3NSBMIDIuODQzNzUgMjUuNjg3NSBDIDEuNzIyNjU2IDI2LjgwODU5NCAxLjcyMjY1NiAyOC42NjAxNTYgMi44NDM3NSAyOS43ODEyNSBMIDIwLjIxODc1IDQ3LjE1NjI1IEMgMjEuMzM5ODQ0IDQ4LjI3NzM0NCAyMy4xOTE0MDYgNDguMjc3MzQ0IDI0LjMxMjUgNDcuMTU2MjUgTCA0Ny4wMzEyNSAyNC40Mzc1IEMgNDcuNjA5Mzc1IDIzLjg1OTM3NSA0Ny44NDc2NTYgMjMuMDkzNzUgNDcuOTM3NSAyMi40MDYyNSBDIDQ4LjAyNzM0NCAyMS43MTg3NSA0OCAyMS4wMzkwNjMgNDggMjAuMzc1IEwgNDggNS41IEMgNDggMy41NzgxMjUgNDYuNDIxODc1IDIgNDQuNSAyIEwgMjkuNjI1IDIgQyAyOS4zMDA3ODEgMiAyOC45NjQ4NDQgMS45OTYwOTQgMjguNjI1IDIgWiBNIDI4LjY1NjI1IDQgQyAyOC45NDkyMTkgMy45OTIxODggMjkuMjg1MTU2IDQgMjkuNjI1IDQgTCA0NC41IDQgQyA0NS4zMzk4NDQgNCA0NiA0LjY2MDE1NiA0NiA1LjUgTCA0NiAyMC4zNzUgQyA0NiAyMS4wNzAzMTMgNDUuOTk2MDk0IDIxLjY5OTIxOSA0NS45Mzc1IDIyLjE1NjI1IEMgNDUuODc4OTA2IDIyLjYxMzI4MSA0NS43ODUxNTYgMjIuODM5ODQ0IDQ1LjYyNSAyMyBMIDIyLjkwNjI1IDQ1Ljc1IEMgMjIuNTUwNzgxIDQ2LjEwNTQ2OSAyMS45ODA0NjkgNDYuMTA1NDY5IDIxLjYyNSA0NS43NSBMIDIxLjUgNDUuNTkzNzUgTCA0LjI1IDI4LjM3NSBDIDMuODk0NTMxIDI4LjAxOTUzMSAzLjg5NDUzMSAyNy40NDkyMTkgNC4yNSAyNy4wOTM3NSBMIDI3IDQuMzc1IEMgMjcuMTU2MjUgNC4yMTg3NSAyNy40MTQwNjMgNC4xMjEwOTQgMjcuODc1IDQuMDYyNSBDIDI4LjEwNTQ2OSA0LjAzMTI1IDI4LjM2MzI4MSA0LjAwNzgxMyAyOC42NTYyNSA0IFogTSAzOSA3IEMgMzYuODAwNzgxIDcgMzUgOC44MDA3ODEgMzUgMTEgQyAzNSAxMy4xOTkyMTkgMzYuODAwNzgxIDE1IDM5IDE1IEMgNDEuMTk5MjE5IDE1IDQzIDEzLjE5OTIxOSA0MyAxMSBDIDQzIDguODAwNzgxIDQxLjE5OTIxOSA3IDM5IDcgWiBNIDM5IDkgQyA0MC4xMTcxODggOSA0MSA5Ljg4MjgxMyA0MSAxMSBDIDQxIDEyLjExNzE4OCA0MC4xMTcxODggMTMgMzkgMTMgQyAzNy44ODI4MTMgMTMgMzcgMTIuMTE3MTg4IDM3IDExIEMgMzcgOS44ODI4MTMgMzcuODgyODEzIDkgMzkgOSBaXCI+PC9wYXRoPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICB7eyB0KCdwcm9qZWN0Lm91dGxldF9kaXNjb3VudCcsIHsgZGlzY291bnQ6IHN0b2NrRGlzY291bnQgfSkgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJsb2NrIHB4LTIgcHktWzJweF0gdGV4dC1ibGFjayBmb250LWJvbGQgbGFiZWwgbmV3IGJnLWxpbWUtMjAwIHRleHQtY2VudGVyIHJvdW5kZWQtbWRcIiB2LWlmPVwiaXNXaXRoQ29uc3RydWN0aW9uXCI+e3sgdCgncHJvamVjdC53aXRoX2NvbnN0cnVjdGlvbicpIH19PC9kaXY+XG4gICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgcHgtMiBweS1bMnB4XSB0ZXh0LWJsYWNrIGZvbnQtYm9sZCBsYWJlbCBuZXcgYmctcGluay01MDAgdGV4dC13aGl0ZSB0ZXh0LWNlbnRlciByb3VuZGVkLW1kXCIgdi1pZj1cIkJvb2xlYW4ocHJvamVjdC5pc19uZXcpXCI+e3sgdCgncHJvamVjdC5uZXcnKSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2sgcHgtMiBweS1bMnB4XSB0ZXh0LXdoaXRlIGxhYmVsIHJlY29tbWVuZGVkIGJnLWJsdWUtNDAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciByb3VuZGVkLW1kXCIgdi1pZj1cIkJvb2xlYW4ocHJvamVjdC5pc19yZWNvbW1lbmRlZCkgJiYgIShCb29sZWFuKHByb2plY3QuaXNfbmV3KSlcIj57eyB0KCdwcm9qZWN0LnJlY29tbWVuZGVkJykgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGJvdHRvbS0yIGxlZnQtMiBmbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTEgcHgtMyB0ZXh0LVstLXN5bWJvbC1jb2xvcl0gZm9udC1ib2xkIHJvdW5kZWQtbWRcIiA6Y2xhc3M9XCJuYW1lQ3NzQ2xhc3NcIiB2LWh0bWw9XCJgJHtwcm9qZWN0LnN5bWJvbH0keyBpc1ZhcmlhbnQgPyAnICcgKyBwcm9qZWN0LmNvZGUgOiAnJyB9YFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZmF2b3JpdGVzIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTIgcmlnaHQtMlwiIHR5cGU9XCJwcm9qZWN0XCIgOmlkPVwicHJvamVjdC5pZF9wcmltYXJ5XCIgOnZhbHVlPVwiaXNJbkZhdm9yaXRlcyhmYXZvcml0ZXMpXCIgQHVwZGF0ZT1cInVwZGF0ZUZhdm9yaXRlc1wiIHYtaWY9XCJzaG93RmF2b3JpdGVzXCIgLz5cbiAgICAgIDwvZGl2PlxuXG48IS0tICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1ub3dyYXAgaXRlbXMtc3RyZXRjaCBteS1bNXB4XSBteC1hdXRvIGJnLVsmIzQ1OyYjNDU7cHJvamVjdC1pbmZvLWJnLWNvbG9yXSB0ZXh0LVsmIzQ1OyYjNDU7cHJvamVjdC1pbmZvLWNvbG9yXSByb3VuZGVkLVszcHhdIG92ZXJmbG93LWhpZGRlbiB0ZXh0LVsxNHB4XSBtYXgtaC1bMzdweF1cIj4tLT5cbjwhLS0gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lIG1heC13LVsxNDBweF0gcHktMiBweC0zIHRleHQtWyYjNDU7JiM0NTtzeW1ib2wtY29sb3JdIGZvbnQtYm9sZCBvdmVyZmxvdy1oaWRkZW5cIiA6Y2xhc3M9XCJuYW1lQ3NzQ2xhc3NcIiB2LWh0bWw9XCJgJHtwcm9qZWN0LnN5bWJvbH0keyBpc1ZhcmlhbnQgPyAnICcgKyBwcm9qZWN0LmNvZGUgOiAnJyB9YFwiPjwvZGl2Pi0tPlxuPCEtLSAgICAgICAgPGRpdiBjbGFzcz1cImFyZWEgcC0yIGJnLVsmIzQ1OyYjNDU7YXJlYS1iZy1jb2xvcl0gdGV4dC1bJiM0NTsmIzQ1O2FyZWEtY29sb3JdIHRleHQtcmlnaHRcIj4tLT5cbjwhLS0gICAgICAgICAge3sgYXJlYSB9fS0tPlxuPCEtLSAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cInByb2plY3QuZ2FyYWdlX2FyZWEgPiAwXCI+KyB7eyBNYXRoLnJvdW5kKHByb2plY3QuZ2FyYWdlX2FyZWEpIH19PC90ZW1wbGF0ZT4tLT5cbjwhLS0gICAgICAgICAge3sgdW5pdHMubTIgfX0tLT5cbjwhLS0gICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBteS0wIG1sLWF1dG8gbXItMCBweC00IHB5LTIgZ2FwLTFcIiB2LWlmPVwic2hvd0Nvc3QgJiYgcHJvamVjdC5jb3N0X2VzdGltYXRlX3RvdGFsXCIgdi1odG1sPVwiY29zdEVzdGltYXRlVG90YWxcIj48L2Rpdj4tLT5cbjwhLS0gICAgICA8L2Rpdj4tLT5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1ub3dyYXAgaXRlbXMtc3RyZXRjaCBtZDpteS1bNXB4XSBiZy1zdG9uZS0xMDAgbWQ6cm91bmRlZC1sZyB0ZXh0LVsxNHB4XSBmb250LXNlbWlib2xkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBwLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIiB0aXRsZT1cInBvd2llcnpjaG5pYSB1xbx5dGtvd2FcIj5cbiAgICAgICAgICAgIDxJY29uIGljb249XCJtYXRlcmlhbC1zeW1ib2xzLWxpZ2h0OmhvbWUtb3V0bGluZS1yb3VuZGVkXCIgY2xhc3M9XCJzaXplLTZcIiAvPlxuICAgICAgICAgICAge3sgYXJlYSB9fSB7eyB1bml0cy5tMiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiIHRpdGxlPVwicG93aWVyemNobmlhIGdhcmHFvHVcIiB2LWlmPVwicHJvamVjdC5nYXJhZ2VfYXJlYSA+IDBcIj5cbiAgICAgICAgICAgICtcbiAgICAgICAgICAgIDxJY29uIGljb249XCJtYXRlcmlhbC1zeW1ib2xzLWxpZ2h0OmdhcmFnZS1jaGVjay1vdXRsaW5lLXJvdW5kZWRcIiBjbGFzcz1cInNpemUtNlwiIC8+XG4gICAgICAgICAgICB7eyBNYXRoLnJvdW5kKHByb2plY3QuZ2FyYWdlX2FyZWEpIH19XG4gICAgICAgICAgICB7eyB1bml0cy5tMiB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktZW5kIGl0ZW1zLWNlbnRlciBteS0wIG1sLWF1dG8gbXItMCBweC00IHB5LTIgZ2FwLTFcIiB2LWlmPVwic2hvd0Nvc3QgJiYgcHJvamVjdC5jb3N0X2VzdGltYXRlX3RvdGFsXCI+XG4gICAgICAgICAgPHNwYW4gdi1odG1sPVwiY29zdEVzdGltYXRlVG90YWxcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHAtMiB0ZXh0LVsxM3B4XSBnYXAtNCB0ZXh0LVstLWNvdW50ZXJzLWNvbG9yXVwiIHYtaWY9XCJwcm9qZWN0LnZhcmlhbnRzX2NvdW50ID4gMCB8fCBwcm9qZWN0LnJlYWxpemF0aW9uc19jb3VudCA+IDAgfHwgcHJvamVjdC5jb21tZW50c19jb3VudCA+IDBcIj5cbiAgICAgICAgPGRpdiB2LWlmPVwicGFyc2VJbnQocHJvamVjdC52YXJpYW50c19jb3VudClcIj57eyB0KCdwcm9qZWN0LnZhcmlhbnRzJykgfX06IDxiPnt7IHByb2plY3QudmFyaWFudHNfY291bnQgfX08L2I+PC9kaXY+XG4gICAgICAgIDxkaXYgdi1pZj1cInBhcnNlSW50KHByb2plY3QucmVhbGl6YXRpb25zX2NvdW50KVwiPnt7IHQoJ3Byb2plY3QucmVhbGl6YXRpb25zJykgfX06IDxiPnt7IHByb2plY3QucmVhbGl6YXRpb25zX2NvdW50IH19PC9iPjwvZGl2PlxuICAgICAgICA8ZGl2IHYtaWY9XCJwYXJzZUludChwcm9qZWN0LmNvbW1lbnRzX2NvdW50KVwiPnt7IHQoJ3Byb2plY3QuY29tbWVudHMnKSB9fTogPGI+e3sgcHJvamVjdC5jb21tZW50c19jb3VudCB9fTwvYj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGUgdGV4dC1bMTNweF0gcC0yXCIgdi1pZj1cInNob3dUaXRsZXNcIj57eyBwcm9qZWN0LnRpdGxlIH19PC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yIHAtMiB0ZXh0LVsxM3B4XVwiIHYtaWY9XCJ2aWV3ID09PSAnZGV0YWlsJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlyc3QtbGV0dGVyOmxvd2VyY2FzZVwiPnt7IHQoJ3NlYXJjaC5mb290cHJpbnRfYXJlYScpIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyBNYXRoLnJvdW5kKHByb2plY3QuZm9vdHByaW50X2FyZWEsIDIpIH19IHt7IHVuaXRzLm0yIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlyc3QtbGV0dGVyOmxvd2VyY2FzZVwiPnt7IHQoJ3NlYXJjaC5taW5fcGxvdF9zaXplcycpIH19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIj57eyBudW1iZXJGb3JtYXR0ZXIuZm9ybWF0KHByb2plY3QubG90X3dpZHRoKSB9fSB4IHt7IG51bWJlckZvcm1hdHRlci5mb3JtYXQocHJvamVjdC5sb3RfbGVuZ3RoKSB9fSB7eyB1bml0cy5tIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2Pnt7IHQoJ3NlYXJjaC5yb29mX2FuZ2xlJykgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZFwiPnt7IHByb2plY3Qucm9vZl9hbmdsZSB9fSZkZWc7PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgdi1pZj1cInNob3dWYXJpYW50RmVhdHVyZXMgJiYgcHJvamVjdC52YXJpYW50X2ZlYXR1cmVzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGRcIiB2LWZvcj1cImVsIGluIHByb2plY3QudmFyaWFudF9mZWF0dXJlcy5hZGRlZFwiPisge3sgZWwudGV4dCB9fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkXCIgdi1mb3I9XCJlbCBpbiBwcm9qZWN0LnZhcmlhbnRfZmVhdHVyZXMucmVtb3ZlZFwiPi0ge3sgZWwudGV4dCB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYT5cblxuICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IGZsZXgtd3JhcCBmbGV4LWNvbCBqdXN0aWZ5LXN0YXJ0IGdyb3VwLVsubGFyZ2VdOmxnOnctMS8yIHB5LTQgbGc6cHgtNFwiIHYtaWY9XCJ2aWV3ID09PSAnbGFyZ2UnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTQgcmlnaHQtNCBmbGV4IG1sLWF1dG8gbXItMCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCJwcm9qZWN0aW9uIGluIHByb2plY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJsb2NrIHRleHQtd2hpdGUgcm91bmRlZC1sZyBib3JkZXItMCBweC0zIHB5LTIgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzd2l0Y2hGbG9vcihwcm9qZWN0aW9uLmZsb29yKVwiXG4gICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7ICdiZy1waW5rLTUwMCc6IHBhcnNlSW50KHByb2plY3Rpb24uZmxvb3IpID09PSBzZWxlY3RlZEZsb29yLCAnYmctZ3JheS0zMDAnOiBwYXJzZUludChwcm9qZWN0aW9uLmZsb29yKSAhPT0gc2VsZWN0ZWRGbG9vciB9XCJcbiAgICAgICAgICA+e3sgZmxvb3JzW3Byb2plY3Rpb24uZmxvb3JdIH19PC9idXR0b24+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHRlbXBsYXRlIHYtZm9yPVwicHJvamVjdGlvbiBpbiBwcm9qZWN0aW9uc1wiPlxuICAgICAgICA8dGVtcGxhdGUgdi1pZj1cInBhcnNlSW50KHByb2plY3Rpb24uZmxvb3IpID09PSBzZWxlY3RlZEZsb29yXCI+XG4gICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJwcm9qZWN0aW9uLmNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgKjpoLWZ1bGwgKjp3LWF1dG8gbWF4LWgtWzU0NXB4XSBtLWF1dG9cIiB2LWh0bWw9XCJnZXRJbWFnZUNvbnRlbnQocHJvamVjdGlvbi5jb250ZW50KVwiPjwvZGl2PlxuICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgPHBpY3R1cmUgY2xhc3M9XCJteC1hdXRvXCIgdi1lbHNlPlxuICAgICAgICAgICAgPGltZyBjbGFzcz1cInctZnVsbCBoLWF1dG8gbWF4LXctWzU0NXB4XSBtYXgtaC1bNTQ1cHhdXCIgOnNyYz1cImdldFRodW1iKHsgcGF0aDogcHJvamVjdGlvbi5wYXRoLCB3aWR0aDogNTQ1LCBoZWlnaHQ6IDU2MCwgbWlycm9yOiAgbWlycm9yLCBlZmZlY3Q6ICdvdXRzaWRlJyB9KVwiIGxvYWRpbmc9XCJsYXp5XCIgOmFsdD1cInByb2plY3Rpb24uZmxvb3IgPiAxID8gdCgnc2VhcmNoLmZsb29yX3ZpZXcnKSA6IHQoJ3NlYXJjaC5ncm91bmRfZmxvb3JfdmlldycpXCI+XG4gICAgICAgICAgPC9waWN0dXJlPlxuICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgPC90ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c3R5bGUgc2NvcGVkPlxuLnByb2plY3Qge1xuICAtLXN5bWJvbC1iZy1jb2xvcjogI2Q5MzA4YTtcbiAgLS1zeW1ib2wtY29sb3I6ICNmZmY7XG4gIC0tYXJlYS1iZy1jb2xvcjogIzM1MWM0ZjtcbiAgLS1hcmVhLWNvbG9yOiAjZmZmO1xuICAtLWNvdW50ZXJzLWNvbG9yOiAjOTk5O1xufVxuPC9zdHlsZT5cbiIsIi5wcm9qZWN0LXNlbGVjdG9yIHtcbiAgLS1zZWxlY3Rvci1ib3JkZXItY29sb3I6ICMwMDAzO1xuICAtLXNlbGVjdG9yLWNvbG9yOiAjMDAwO1xuICAtLXNlbGVjdG9yLWFycm93LWNvbG9yOiAjMDAwO1xuICAtLXNlbGVjdG9yLWJveC1iZy1jb2xvcjogI2ZmZjtcbiAgLS1yYWRpby1kZWZhdWx0LWNvbG9yOiAjMDAwO1xuICAtLXJhZGlvLXNlbGVjdGVkLWNvbG9yOiB2YXIoLS1saW5rLWNvbG9yKTtcbiAgLS1zZWxlY3Rvci1kZXNjcmlwdGlvbi1jb2xvcjogI2JiYjtcbiAgLS1zZWxlY3Rvci1idXR0b24tY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuXG4gIHBvc2l0aW9uOiB1bnNldDtcbn1cblxuLnByb2plY3Qtc2VsZWN0b3IgLnNlbGVjdG9yIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzZweCAyMHB4O1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0bztcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWxlY3Rvci1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGdhcDogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tc2VsZWN0b3ItY29sb3IpO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAuc2VsZWN0b3IuZXhwYW5kYWJsZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnByb2plY3Qtc2VsZWN0b3IgLnNlbGVjdG9yLmV4cGFuZGFibGU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciBzdmcge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAubmFtZSB7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogMTtcbiAgd2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcbn1cblxuLnByb2plY3Qtc2VsZWN0b3IgLm5hbWU6OmZpcnN0LWxldHRlciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5zZWxlY3RlZCB7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogMjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5pbmZvLCAucHJvamVjdC1zZWxlY3RvciAuc3RhdGUge1xuICBncmlkLWNvbHVtbjogMjtcbiAgZ3JpZC1yb3c6IDEgLyBzcGFuIDI7XG4gIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5zdGF0ZSB7XG4gIGdyaWQtY29sdW1uOiAzO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAuc3RhdGUgLmFycm93IHtcbiAgd2lkdGg6IDdweDtcbiAgaGVpZ2h0OiA3cHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tc2VsZWN0b3ItYXJyb3ctY29sb3IpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2VsZWN0b3ItYXJyb3ctY29sb3IpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1LjY5ZGVnLCByZ2JhKDAsIDAsIDAsIDAuODkpIDMuMSUsIHJnYmEoMTg1LCA1MSwgOTcsIDAuOTQpIDk5LjIzJSk7XG4gIHotaW5kZXg6IDEwMzA7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5vcHRpb25zIC5ib3gge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZzogMnJlbSAxLjVyZW0gMXJlbSAxLjVyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlbGVjdG9yLWJveC1iZy1jb2xvcik7XG4gIHotaW5kZXg6IDEwMzE7XG4gIGNvbG9yOiB2YXIoLS1zZWxlY3Rvci1jb2xvcik7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBoMSB7XG4gIGFsbDogdW5zZXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBoMTo6Zmlyc3QtbGV0dGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnByb2plY3Qtc2VsZWN0b3IgLm9wdGlvbnMgLmNsb3NlIHtcbiAgYWxsOiB1bnNldDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEuNXJlbTtcbiAgcmlnaHQ6IDEuNXJlbTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyAuY2xvc2U6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBzdmcge1xuICBzdHJva2U6IHZhcigtLXNlbGVjdG9yLWNvbG9yKTtcbiAgZmlsbDogdmFyKC0tc2VsZWN0b3ItY29sb3IpO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyB1bCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0bztcbiAgZ2FwOiAxLjVyZW07XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5vcHRpb25zIHVsIGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5vcHRpb25zIHVsIGxpID4gZGl2IHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBsYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5vcHRpb25zIGxhYmVsIGIge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnByb2plY3Qtc2VsZWN0b3IgLm9wdGlvbnMgbGFiZWw6YmVmb3JlLCAucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBsYWJlbDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyAnO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXJhZGlvLWRlZmF1bHQtY29sb3IpO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBsYWJlbDpiZWZvcmUge1xuICB0b3A6IDVweDtcbiAgbGVmdDogLTI2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5vcHRpb25zIGxhYmVsOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiA5cHg7XG4gIGxlZnQ6IC0yMnB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yYWRpby1zZWxlY3RlZC1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJhZGlvLXNlbGVjdGVkLWNvbG9yKTtcbn1cblxuLnByb2plY3Qtc2VsZWN0b3IgLm9wdGlvbnMgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBkaXYgbGFiZWw6YmVmb3JlIHtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcmFkaW8tc2VsZWN0ZWQtY29sb3IpO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGRpdiBsYWJlbDphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyBpbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIC5vcHRpb25zIC5kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgY29sb3I6IHZhcigtLXNlbGVjdG9yLWRlc2NyaXB0aW9uLWNvbG9yKTtcbn1cblxuLnByb2plY3Qtc2VsZWN0b3IgLmJ1dHRvbnMge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlbGVjdG9yLWJveC1iZy1jb2xvcik7XG59XG5cbi5wcm9qZWN0LXNlbGVjdG9yIGJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2VsZWN0b3ItYnV0dG9uLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLXNlbGVjdG9yLWJveC1iZy1jb2xvcik7XG4gIGJvcmRlcjogMCBub25lO1xuICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucHJvamVjdC1zZWxlY3RvciAub3B0aW9ucyAuYm94IHtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBoZWlnaHQ6IHVuc2V0O1xuICB9XG5cbiAgLnByb2plY3Qtc2VsZWN0b3IgLm9wdGlvbnMgdWwge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogY2FsYyg1MCUgLSAxcmVtKSAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAucHJvamVjdC1zZWxlY3RvciAuc2VsZWN0b3Ige1xuICAgIGdhcDogMDtcbiAgfVxuXG4gIC5wcm9qZWN0LXNlbGVjdG9yIC5vcHRpb25zIC5ib3gge1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAucHJvamVjdC1zZWxlY3RvciAuc2VsZWN0b3Ige1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgLnByb2plY3Qtc2VsZWN0b3IgLnNlbGVjdGVkIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gIH1cbn1cbiIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInByb2plY3Qtc2VsZWN0b3IgbGc6bWluLWgtWzg4cHhdXCI+XG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdG9yXCIgOmNsYXNzPVwieyBleHBhbmRhYmxlOiBPYmplY3Qua2V5cyhpdGVtcykubGVuZ3RoID4gMSB9XCIgQGNsaWNrLnN0b3A9XCJ0b2dnbGVPcHRpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwibmFtZVwiPjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCI+XG4gICAgICAgIHt7IHNlbGVjdGVkTmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mb1wiPlxuICAgICAgICA8cG9wcGVyIGNsYXNzPVwiZGFya1wiIHYtaWY9XCJPYmplY3Qua2V5cyhpdGVtcykubGVuZ3RoID4gMVwiIGNvbnRlbnQ9XCJLbGlrbmlqLCBhYnkgem1pZW5pxIcgdGVjaG5vbG9nacSZLlwiIEBjbGljay5zdG9wPVwicmV0dXJuXCI+XG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MTIgNTEyXCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTI1NiAzMmEyMjQgMjI0IDAgMSAxIDAgNDQ4IDIyNCAyMjQgMCAxIDEgMC00NDh6bTAgNDgwQTI1NiAyNTYgMCAxIDAgMjU2IDBhMjU2IDI1NiAwIDEgMCAwIDUxMnpNMjA4IDM1MmMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNmg5NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNkgyNzJWMjQwYzAtOC44LTcuMi0xNi0xNi0xNkgyMTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoMjR2OTZIMjA4em00OC0xNjhhMjQgMjQgMCAxIDAgMC00OCAyNCAyNCAwIDEgMCAwIDQ4elwiLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8dGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwiaW5mb1wiPktsaWtuaWosIGFieSB6bWllbmnEhyB0ZWNobm9sb2dpxJkuPC9zbG90PlxuICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgIDwvcG9wcGVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdGVcIiB2LWlmPVwiT2JqZWN0LmtleXMoaXRlbXMpLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFycm93XCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDx0cmFuc2l0aW9uIG5hbWU9XCJmYWRlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiIHYtc2hvdz1cIm9wdGlvbnNWaXNpYmxlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3hcIiB2LWNsaWNrLW91dHNpZGU9XCJjbG9zZU9wdGlvbnNcIj5cbiAgICAgICAgICA8aDE+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwibmFtZVwiPjwvc2xvdD5cbiAgICAgICAgICA8L2gxPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZVwiIEBjbGljay5zdG9wPVwidG9nZ2xlT3B0aW9uc1wiPlxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMy43MiAyMy43MlwiPlxuICAgICAgICAgICAgICA8Zz5cbiAgICAgICAgICAgICAgICA8bGluZSBjbGFzcz1cImNscy0xXCIgeDE9XCIuMVwiIHkxPVwiLjFcIiB4Mj1cIjIzLjYxXCIgeTI9XCIyMy42MVwiLz5cbiAgICAgICAgICAgICAgICA8bGluZSBjbGFzcz1cImNscy0xXCIgeDE9XCIyMy42MVwiIHkxPVwiLjFcIiB4Mj1cIi4xXCIgeTI9XCIyMy42MVwiLz5cbiAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHVsPlxuICAgICAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBpdGVtc1wiPlxuICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIHYtbW9kZWw9XCJfdGVtcFNlbGVjdGVkXCIgOnZhbHVlPVwiaW5kZXhcIiA6aWQ9XCJuYW1lICsgJ18nICsgaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIDpmb3I9XCJuYW1lICsgJ18nICsgaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGI+e3sgaXRlbSB9fTwvYj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNsb3QgOm5hbWU9XCInZGVzY3JpcHRpb24tJyArIGluZGV4XCI+PC9zbG90PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIEBjbGljaz1cImNob29zZVwiPlxuICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwiYnV0dG9uLXRleHRcIj53eWJpZXJhbTwvc2xvdD5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdHJhbnNpdGlvbj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IGdlbmVyYXRlUmFuZG9tU3RyaW5nIGZyb20gXCIuLi8uLi9mdW5jdGlvbnMvZ2VuZXJhdGUtcmFuZG9tLXN0cmluZ1wiO1xuaW1wb3J0IGNsaWNrT3V0c2lkZSBmcm9tIFwiLi4vLi4vZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlXCI7XG5pbXBvcnQgUG9wcGVyIGZyb20gJ3Z1ZTMtcG9wcGVyJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiBcInByb2plY3Qtc2VsZWN0b3JcIixcbiAgZW1pdHM6IFtcbiAgICAnc2VsZWN0ZWQnXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICBQb3BwZXJcbiAgfSxcbiAgZGlyZWN0aXZlczoge1xuICAgIGNsaWNrT3V0c2lkZVxuICB9LFxuICBwcm9wczoge1xuICAgIHNlbGVjdGVkOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0sXG4gICAgaXRlbXM6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfVxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBfc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICBfdGVtcFNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgb3B0aW9uc1Zpc2libGU6IGZhbHNlLFxuICAgICAgbmFtZTogZ2VuZXJhdGVSYW5kb21TdHJpbmcoMTApLFxuICAgICAgc2hvd1BvcHBlcjogZmFsc2VcbiAgICB9XG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgaXNWYWxpZCgpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZCA+IDAgJiYgdGhpcy5pdGVtcy5oYXNPd25Qcm9wZXJ0eSh0aGlzLl9zZWxlY3RlZCk7XG4gICAgfSxcbiAgICBzZWxlY3RlZE5hbWUoKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkID8gdGhpcy5pdGVtc1t0aGlzLl9zZWxlY3RlZF0gOiAnJztcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB0b2dnbGVQb3BwZXIoKSB7XG4gICAgICB0aGlzLnNob3dQb3BwZXIgPSAhdGhpcy5zaG93UG9wcGVyO1xuICAgIH0sXG4gICAgdG9nZ2xlT3B0aW9ucygpIHtcbiAgICAgIHRoaXMuX3RlbXBTZWxlY3RlZCA9IHRoaXMuX3NlbGVjdGVkO1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuaXRlbXMpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zVmlzaWJsZSA9ICF0aGlzLm9wdGlvbnNWaXNpYmxlO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ292ZXJmbG93LWhpZGRlbicpO1xuICAgICAgfVxuICAgIH0sXG4gICAgY2xvc2VPcHRpb25zKCkge1xuICAgICAgdGhpcy5vcHRpb25zVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdvdmVyZmxvdy1oaWRkZW4nKTtcbiAgICB9LFxuICAgIGNob29zZSgpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gdGhpcy5fdGVtcFNlbGVjdGVkO1xuICAgICAgdGhpcy4kZW1pdCgnc2VsZWN0ZWQnLCB0aGlzLl9zZWxlY3RlZCk7XG4gICAgfVxuICB9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbkBpbXBvcnQgJy4vcHJvamVjdC1zZWxlY3Rvci5jc3MnO1xuXG4uZmFkZS1lbnRlci1hY3RpdmUsIC5mYWRlLWxlYXZlLWFjdGl2ZSB7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzO1xufVxuLmZhZGUtZW50ZXItZnJvbSwgLmZhZGUtbGVhdmUtdG8ge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2xzLTEge1xuICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7XG4gIHN0cm9rZS13aWR0aDogMnB4O1xufVxuPC9zdHlsZT5cbiIsIjxzY3JpcHQgc2V0dXA+XG5pbXBvcnQge3JlZn0gZnJvbSBcInZ1ZVwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnXG5cbmNvbnN0IGRlZmF1bHRfdWkgPSB7XG4gIGJnQ29sb3I6ICcjZmZmJyxcbiAgY29sb3I6ICcjMDAwJyxcbiAgYnRuQmdDb2xvcjogJyNEOTMwOEEnLFxuICBidG5Db2xvcjogJyNmZmYnLFxuICBidG5Ib3ZlckJnQ29sb3I6ICcjZmZmJyxcbiAgYnRuSG92ZXJDb2xvcjogJyMwMDAnLFxuICBsb2dvQmdDb2xvcjogJyNmZmYnLFxuICBsb2dvQ29sb3I6ICcjMDAwJyxcbiAgZW50cnlDb2xvcjogJyMwMDAnLFxuICBpbWFnZTogJ3ctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIG1kOmFic29sdXRlIG1kOnRvcC0xLzIgbWQ6LXRyYW5zbGF0ZS15LTEvMicsXG59XG5cbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHMoe1xuICB1cmw6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgaW1hZ2VVcmw6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJydcbiAgfSxcbiAgaGlkZUxvZ28xOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9LFxuICBoaWRlTG9nbzI6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlXG4gIH0sXG4gIHVpOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQ6IHt9XG4gIH0sXG4gIHNpbXBsZToge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2VcbiAgfVxufSlcblxuY29uc3QgX3VpID0gcmVmKG1lcmdlKHt9LCBkZWZhdWx0X3VpLCBwcm9wcy51aSkpXG5jb25zdCBpc0J1dHRvbkhvdmVyZWQgPSByZWYoZmFsc2UpXG48L3NjcmlwdD5cblxuPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwic2VjdGlvbi10ZWFzZXIgZ3JvdXBcIiA6Y2xhc3M9XCJ7IHNpbXBsZTogc2ltcGxlIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBtYXgtdy1bMTQwMHB4XSByb3VuZGVkLVsyNHB4XSBteS04IG14LWF1dG8gb3ZlcmZsb3ctaGlkZGVuIGxlYWRpbmctWzFdIGdhcC00IHRleHQtWzE2cHhdXCIgOnN0eWxlPVwieyBiYWNrZ3JvdW5kQ29sb3I6IF91aS5iZ0NvbG9yLCBjb2xvcjogX3VpLmNvbG9yIH1cIiB2LWlmPVwic2ltcGxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdC1jb2wgcmVsYXRpdmUgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJ3LWZ1bGwgb2JqZWN0LWNvdmVyXCIgOnNyYz1cImltYWdlVXJsXCIgbG9hZGluZz1cImxhenlcIiBhbHQ9XCJcIiB2LWlmPVwiaW1hZ2VVcmwgIT09ICcnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dvIGFic29sdXRlIHRvcC00IGxlZnQtNCBmbGV4IHNpemUtWzExMHB4XSBmbGV4LWNvbCByb3VuZGVkLWZ1bGwganVzdGlmeS1jZW50ZXIgaXRlbXMtc3RhcnQgcC0yIG92ZXJmbG93LWhpZGRlbiB1cHBlcmNhc2UgZm9udC1ib2xkXCJcbiAgICAgICAgICAgICA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogX3VpLmxvZ29CZ0NvbG9yLCBjb2xvcjogX3VpLmxvZ29Db2xvciB9XCIgdi1pZj1cIiFoaWRlTG9nbzFcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwibG9nb1wiPlxuICAgICAgICAgICAgPGRpdj5UdXRhajwvZGl2PlxuICAgICAgICAgICAgPGRpdj5MT0dPPC9kaXY+XG4gICAgICAgICAgPC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbCBmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyIGdhcC0yIHAtNCBtZDpwLTZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5IG1iLTIgbWQ6bWItNCB0ZXh0LVsyMnB4XSBtZDp0ZXh0LVszNnB4XSBsZzp0ZXh0LVs0MHB4XSBmb250LWJvbGQgbGVhZGluZy1bMS4xXVwiIDpzdHlsZT1cInsgY29sb3I6IF91aS5lbnRyeUNvbG9yIH1cIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiZW50cnlcIj5NYXN6IHBvbXlzxYIgbmEgem1pYW55Pzwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaG9ydC10ZXh0IHRleHQtWzEzcHhdIG1kOnRleHQtWzE2cHhdIGxlYWRpbmctWzEuNzNdXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInNob3J0LXRleHRcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25zIGZsZXgganVzdGlmeS1lbmQgbWQ6bXQtNFwiPlxuICAgICAgICAgIDxhIDpocmVmPVwidXJsXCIgY2xhc3M9XCJpbmxpbmUtYmxvY2sgcHgtNCBweS0zIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtWzM4cHhdIHRleHQtWzIwcHhdIG1kOnRleHQtWzIycHhdIGZvbnQtYm9sZCB1cHBlcmNhc2Ugbm8tdW5kZXJsaW5lIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogaXNCdXR0b25Ib3ZlcmVkID8gX3VpLmJ0bkhvdmVyQmdDb2xvciA6IF91aS5idG5CZ0NvbG9yLCBjb2xvcjogaXNCdXR0b25Ib3ZlcmVkID8gX3VpLmJ0bkhvdmVyQ29sb3IgOiBfdWkuYnRuQ29sb3IgfVwiXG4gICAgICAgICAgICAgQG1vdXNlZW50ZXI9XCJpc0J1dHRvbkhvdmVyZWQgPSB0cnVlXCIgQG1vdXNlbGVhdmU9XCJpc0J1dHRvbkhvdmVyZWQgPSBmYWxzZVwiPjxzbG90IG5hbWU9XCJidXR0b25cIj5wb3puYWogcHJvamVrdHk8L3Nsb3Q+PC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdyaWQgbWQ6Z3JpZC1jb2xzLVs1MCVfMWZyXSBsZzpncmlkLWNvbHMtWzU1JV8xZnJdIHhsOmdyaWQtY29scy1bNjAlXzFmcl0gbWF4LXctWzE0MDBweF0gcm91bmRlZC1bMjRweF0gbXktOCBteC1hdXRvIG92ZXJmbG93LWhpZGRlbiBsZWFkaW5nLVsxXSBnYXAtNCB0ZXh0LVsxNnB4XVwiIDpzdHlsZT1cInsgYmFja2dyb3VuZENvbG9yOiBfdWkuYmdDb2xvciwgY29sb3I6IF91aS5jb2xvciB9XCIgdi1lbHNlPlxuICAgICAgPGRpdiBjbGFzcz1cImxlZnQtY29sIHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiBoLVsyMjNweF0gbWQ6aC1hdXRvIG1kOm1pbi1oLVs0ODBweF0gW2JhY2tncm91bmQtY2xpcDpib3JkZXItYm94XVwiPlxuICAgICAgICA8aW1nIDpjbGFzcz1cInVpLmltYWdlXCIgOnNyYz1cImltYWdlVXJsXCIgbG9hZGluZz1cImxhenlcIiBhbHQ9XCJcIiB2LWlmPVwiaW1hZ2VVcmwgIT09ICcnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2dvIGFic29sdXRlIHRvcC00IGxlZnQtNCBmbGV4IHNpemUtWzExMHB4XSBmbGV4LWNvbCByb3VuZGVkLWZ1bGwganVzdGlmeS1jZW50ZXIgaXRlbXMtc3RhcnQgcC0yIG92ZXJmbG93LWhpZGRlbiB1cHBlcmNhc2UgZm9udC1ib2xkXCJcbiAgICAgICAgICAgICA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogX3VpLmxvZ29CZ0NvbG9yLCBjb2xvcjogX3VpLmxvZ29Db2xvciB9XCIgdi1pZj1cIiFoaWRlTG9nbzFcIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwibG9nb1wiPlxuICAgICAgICAgICAgPGRpdj5UdXRhajwvZGl2PlxuICAgICAgICAgICAgPGRpdj5MT0dPPC9kaXY+XG4gICAgICAgICAgPC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbCBmbGV4IGZsZXgtY29sIGp1c3RpZnktY2VudGVyIGdhcC0yIHAtNCBtZDpweS00IG1kOnB4LTZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZ28gaGlkZGVuIGxnOmZsZXggc2l6ZS1bMTEwcHhdIGZsZXgtY29sIHJvdW5kZWQtZnVsbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1zdGFydCBwLTIgb3ZlcmZsb3ctaGlkZGVuIHVwcGVyY2FzZSBmb250LWJvbGRcIiA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogX3VpLmxvZ29CZ0NvbG9yLCBjb2xvcjogX3VpLmxvZ29Db2xvciwgYm9yZGVyOiAnMXB4IHNvbGlkICcgKyBfdWkuY29sb3IgfVwiIHYtaWY9XCIhaGlkZUxvZ28yXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cImxvZ29cIj5cbiAgICAgICAgICAgIDxkaXY+VHV0YWo8L2Rpdj5cbiAgICAgICAgICAgIDxkaXY+TE9HTzwvZGl2PlxuICAgICAgICAgIDwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5IG1iLTIgbWQ6bWItNCB0ZXh0LVsyMnB4XSBtZDp0ZXh0LVszNnB4XSBsZzp0ZXh0LVs0MHB4XSBmb250LWJvbGQgbGVhZGluZy1bMS4xXVwiIDpzdHlsZT1cInsgY29sb3I6IF91aS5lbnRyeUNvbG9yIH1cIj5cbiAgICAgICAgICA8c2xvdCBuYW1lPVwiZW50cnlcIj5NYXN6IHBvbXlzxYIgbmEgem1pYW55Pzwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaG9ydC10ZXh0IHRleHQtWzEzcHhdIG1kOnRleHQtWzE2cHhdIGxlYWRpbmctWzEuNzNdXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInNob3J0LXRleHRcIj48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25zIGZsZXgganVzdGlmeS1lbmQgbWQ6bXQtNFwiPlxuICAgICAgICAgIDxhIDpocmVmPVwidXJsXCIgY2xhc3M9XCJpbmxpbmUtYmxvY2sgcHgtNCBweS0yIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtWzM4cHhdIHRleHQtWzIwcHhdIG1kOnRleHQtWzIycHhdIGZvbnQtYm9sZCB1cHBlcmNhc2Ugbm8tdW5kZXJsaW5lIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICA6c3R5bGU9XCJ7IGJhY2tncm91bmRDb2xvcjogaXNCdXR0b25Ib3ZlcmVkID8gX3VpLmJ0bkhvdmVyQmdDb2xvciA6IF91aS5idG5CZ0NvbG9yLCBjb2xvcjogaXNCdXR0b25Ib3ZlcmVkID8gX3VpLmJ0bkhvdmVyQ29sb3IgOiBfdWkuYnRuQ29sb3IgfVwiXG4gICAgICAgICAgICAgQG1vdXNlZW50ZXI9XCJpc0J1dHRvbkhvdmVyZWQgPSB0cnVlXCIgQG1vdXNlbGVhdmU9XCJpc0J1dHRvbkhvdmVyZWQgPSBmYWxzZVwiPjxzbG90IG5hbWU9XCJidXR0b25cIj5wb3puYWogcHJvamVrdHk8L3Nsb3Q+PC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZT5cbkBtZWRpYSAobWluLXdpZHRoOiA4NTBweCkge1xuICAuc2VjdGlvbi10ZWFzZXI6bm90KC5zaW1wbGUpIC5sZWZ0LWNvbCBpbWcge1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgd2lkdGg6IHVuc2V0O1xuICB9XG59XG48L3N0eWxlPlxuIiwiLm1jLWJhciB7XG4gIC0tbWMtYmctY29sb3I6ICNmYzA7XG4gIC0tdGV4dC1jb2xvcjogIzAwMDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tYy1iZy1jb2xvcik7XG59XG5cbi5tYy1iYXIgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tYy1iYXIgLnNwbGlkZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJveC1iZy1jb2xvcik7XG59XG5cbi5tYy1iYXIgLmJhZGdlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDBweCAxZnI7XG4gIGdhcDogMXJlbTtcbiAgcGFkZGluZzogMXJlbTtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMjIyO1xuICB3aGl0ZS1zcGFjZTogdW5zZXQ7XG4gIHRleHQtYWxpZ246IHVuc2V0O1xufVxuXG4ubWMtYmFyIC5iYWRnZSAubG9nbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDBweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10ZXh0LWNvbG9yKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAxN3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4ubWMtYmFyIC5iYWRnZSAubmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDIycHg7XG59XG5cbi5tYy1iYXIgLmJhZGdlIC5zZWUge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1jLWJhciAuYmFkZ2UgLnNlZTo6Zmlyc3QtbGV0dGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cblxuLm1jLWJhciAuc3BsaWRlX190cmFjayB7XG4gIHBhZGRpbmc6IDIuNXJlbSAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLm1jLWJhciAuYmFkZ2UgLmJ1dHRvbnMsIC5tYy1iYXIgPiAuYnV0dG9ucyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubWMtYmFyID4gLmJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubWMtYmFyIC5yb3VuZGVkLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDFyZW0gNHJlbTtcbiAgZm9udC1zaXplOiAyMnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgLm1jLWJhciB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM5MHB4IDEwMCU7XG4gIH1cblxuICAubWMtYmFyIC5zcGxpZGUge1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzkwcHgpO1xuICAgIG1hcmdpbjogMnJlbSAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xuICB9XG5cbiAgLm1jLWJhciAuYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHBhZGRpbmc6IDNyZW07XG4gIH1cblxuICAubWMtYmFyIC5iYWRnZSAubG9nbyB7XG4gICAgd2lkdGg6IDExNnB4O1xuICAgIGhlaWdodDogMTE2cHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG5cbiAgLm1jLWJhciAuYmFkZ2UgLm5hbWUge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG5cbiAgLm1jLWJhciAuYmFkZ2UgLmJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAubWMtYmFyID4gLmJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi5tYy10aWxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMzAwcHg7XG4gIGFzcGVjdC1yYXRpbzogMS4zMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7ICAvKiBib290c3RyYXAgZml4ICovXG4gIGNvbG9yOiAjMDAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4ubWMtdGlsZSA+ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWMtdGlsZTpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNzU7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4ubWMtdGlsZSBpbWcge1xuICB3aWR0aDogMzAwcHg7XG4gIGFzcGVjdC1yYXRpbzogMS42ODg7XG59XG5cbi5tYy10aWxlIGgzIHtcbiAgZ3JpZC1hcmVhOiBoZWFkZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMXJlbSAwIDAgMDtcbiAgbWF4LWhlaWdodDogNDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMjJweDtcbn1cblxuLm1jLXRpbGUgLmZpbmlzaGVkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xNXB4O1xuICByaWdodDogMTBweDtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1jLWJnLWNvbG9yKTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG4ubWMtdGlsZSAuZmVhdHVyZXMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiAnaGVhZGVyIGhlYWRlcicgJ2NvbDEgY29sMic7XG4gIG1hcmdpbjogMCAwIDEycHggMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYy10aWxlIC5mZWF0dXJlcyA+IGRpdjpmaXJzdC1vZi10eXBlIHtcbiAgZ3JpZC1hcmVhOiBjb2wxO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1jLXRpbGUgLmZlYXR1cmVzIC5wcm9ncmVzcyBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLm1jLXRpbGUgLm5hbWUge1xuICBtYXgtaGVpZ2h0OiAxN3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWMtdGlsZVtkYXRhLWZpbmlzaGVkPVwiMVwiXSAubmFtZSB7XG4gIG1heC1oZWlnaHQ6IDM0cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0MjhweCkge1xuICAubWMtdGlsZSB7XG4gICAgd2lkdGg6IDM3MHB4O1xuICB9XG5cbiAgLm1jLXRpbGUgaW1nIHtcbiAgICB3aWR0aDogMzcwcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gIC5tYy10aWxlIHtcbiAgICB3aWR0aDogNDAwcHg7XG4gIH1cblxuICAubWMtdGlsZSBpbWcge1xuICAgIHdpZHRoOiA0MDBweFxuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAubWMtdGlsZSAuZmluaXNoZWQge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5tYy10aWxlIGgzIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyODBweCkge1xuICAubWMtdGlsZSB7XG4gICAgd2lkdGg6IDQ1MHB4O1xuICAgIGhlaWdodDogMzQ3cHg7XG4gIH1cblxuICAubWMtdGlsZSBpbWcge1xuICAgIHdpZHRoOiA0NTBweDtcbiAgfVxuXG4gIC5tYy10aWxlIC5mZWF0dXJlcyB7XG4gICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ2hlYWRlciBjb2wxIGNvbDInO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDEwMHB4LCAxNTBweCkgYXV0byAxNjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC5tYy10aWxlIGgzIHtcbiAgICBtYXgtaGVpZ2h0OiA3NHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG59XG4iLCI8c2NyaXB0IHNldHVwPlxuaW1wb3J0IHtyZWZ9IGZyb20gXCJ2dWVcIjtcblxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wcyh7XG4gIGhvdHNwb3RzOiB7XG4gICAgdHlwZTogQXJyYXksXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgbWlycm9yOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiBmYWxzZVxuICB9XG59KVxuXG5jb25zdCBob3RzcG90cyA9IHJlZihwcm9wcy5ob3RzcG90cylcbmZvciAobGV0IGkgaW4gaG90c3BvdHMudmFsdWUpIHtcbiAgaG90c3BvdHMudmFsdWVbaV0udG9vbHRpcCA9IGZhbHNlXG59XG5cbmZ1bmN0aW9uIGdldFN0eWxlKGhvdHNwb3QpIHtcbiAgaWYgKCFwcm9wcy5taXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbGVmdDogaG90c3BvdC54ICsgJyUnLFxuICAgICAgdG9wOiBob3RzcG90LnkgKyAnJSdcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlZnQ6ICgxMDAgLSBob3RzcG90LngpICsgJyUnLFxuICAgICAgdG9wOiBob3RzcG90LnkgKyAnJSdcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9vbHRpcENzcyhob3RzcG90KSB7XG4gIGlmIChob3RzcG90LnRvb2x0aXApIHtcbiAgICByZXR1cm4ge1xuICAgICAgYW5pbWF0aW9uOiAnaG90c3BvdC1zaGFrZSA1MDBtcyBlYXNlLWluLW91dCBmb3J3YXJkcydcbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFuaW1hdGlvbjogJ25vbmUnXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNob3dUb29sdGlwKGkpIHtcbiAgaG90c3BvdHMudmFsdWVbaV0udG9vbHRpcCA9IHRydWVcbn1cblxuZnVuY3Rpb24gaGlkZVRvb2x0aXAoaSkge1xuICBob3RzcG90cy52YWx1ZVtpXS50b29sdGlwID0gZmFsc2Vcbn1cbjwvc2NyaXB0PlxuXG48dGVtcGxhdGU+XG4gIDx0ZW1wbGF0ZSB2LWZvcj1cIihob3RzcG90LCBpKSBpbiBob3RzcG90c1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBob3RzcG90IGJsb2NrIHotMTBcIiA6ZGF0YS1pZD1cImhvdHNwb3QuaWRcIiA6c3R5bGU9XCJnZXRTdHlsZShob3RzcG90KVwiIEBjbGljay5wcmV2ZW50PVwic2hvd1Rvb2x0aXAoaSlcIiBAbW91c2VlbnRlci5wcmV2ZW50PVwic2hvd1Rvb2x0aXAoaSlcIiBAdG91Y2hzdGFydC5wcmV2ZW50PVwic2hvd1Rvb2x0aXAoaSlcIiBAbW91c2VsZWF2ZT1cImhpZGVUb29sdGlwKGkpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHVsc2VcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtd2hpdGUgdy1bMThweF0gaC1bMThweF1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTSAxMSAyIEwgMTEgMTEgTCAyIDExIEwgMiAxMyBMIDExIDEzIEwgMTEgMjIgTCAxMyAyMiBMIDEzIDEzIEwgMjIgMTMgTCAyMiAxMSBMIDEzIDExIEwgMTMgMiBaXCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG90c3BvdC10b29sdGlwIGJlZm9yZTphYnNvbHV0ZSBiZWZvcmU6Y29udGVudC1bJyddIGJlZm9yZTp0cmFuc2l0aW9uLVthbGxfMC40c19lYXNlXVwiIDpjbGFzcz1cInsgaGlkZGVuOiAhaG90c3BvdC50b29sdGlwIH1cIiA6c3R5bGU9XCJ0b29sdGlwQ3NzKGhvdHNwb3QpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSB3LVsxNjBweF0gbWluLWgtWzQwcHhdIHRleHQtWzEzcHhdIGZvbnQtbGlnaHQgYm90dG9tLVszNXB4XSBsZWZ0LVstMTBweF0gcC0yIHJvdW5kZWQtbWQgYmctcGluay01MDAgdGV4dC13aGl0ZSBjb250ZW50LVsnJ10gdHJhbnNpdGlvbi1bYWxsXzAuNHNfZWFzZV0gc2hhZG93LVswXzBfNXB4XyMzMzNdXCI+e3sgaG90c3BvdC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbjwvdGVtcGxhdGU+XG5cbjxzdHlsZSBzY29wZWQ+XG4ucHVsc2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6ICNjYTFkNjE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMXB4KSB0cmFuc2xhdGVZKC0xMXB4KTtcbiAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSgxNjcsIDE4LCA3NywgMC40KTtcbiAgYW5pbWF0aW9uOiBob3RzcG90LXB1bHNlIDEuNXMgaW5maW5pdGU7XG59XG5cbi5wdWxzZTpob3ZlciB7XG4gIGFuaW1hdGlvbjogbm9uZTtcbn1cblxuLnB1bHNlLmhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQ6ICMxYjkwYzg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMjcsIDE0NCwgMjAwLCAwLjQpO1xuICBhbmltYXRpb246IGhvdHNwb3QtcHVsc2UtaGlnaGxpZ2h0IDEuNXMgaW5maW5pdGU7XG59XG5cbi8qIHRvb2x0aXAgLSBodHRwczovL2NvZGVwZW4uaW8vc2FzaGF0cmFuL3Blbi9LYVlZQnogKi9cbi5ob3RzcG90LXRvb2x0aXA6YmVmb3JlIHtcbiAgYm9yZGVyLXdpZHRoOiAxMXB4IDhweCAwIDExcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbGluay1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIGJvdHRvbTogMjVweDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGhvdHNwb3QtcHVsc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMTY3LCAxOCwgNzcsIDAuNyk7XG4gIH1cbiAgNzAlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgxNjcsIDE4LCA3NywgMC4zKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxNjcsIDE4LCA3NywgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBob3RzcG90LXB1bHNlIHtcbiAgMCUge1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDE2NywgMTgsIDc3LCAwLjcpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxNjcsIDE4LCA3NywgMC41KTtcbiAgfVxuICA3MCUge1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDE2NywgMTgsIDc3LCAwLjMpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgxNjcsIDE4LCA3NywgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMTY3LCAxOCwgNzcsIDApO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxNjcsIDE4LCA3NywgMCk7XG4gIH1cbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGhvdHNwb3QtcHVsc2UtaGlnaGxpZ2h0IHtcbiAgMCUge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI3LCAxNDQsIDIwMCwgMC43KTtcbiAgfVxuICA3MCUge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDI3LCAxNDQsIDIwMCwgMC4zKTtcbiAgfVxuICAxMDAlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNywgMTQ0LCAyMDAsIDApO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaG90c3BvdC1wdWxzZS1oaWdobGlnaHQge1xuICAwJSB7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjcsIDE0NCwgMjAwLCAwLjcpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNywgMTQ0LCAyMDAsIDAuNSk7XG4gIH1cbiAgNzAlIHtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgyNywgMTQ0LCAyMDAsIDAuMyk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDI3LCAxNDQsIDIwMCwgMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjcsIDE0NCwgMjAwLCAwKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjcsIDE0NCwgMjAwLCAwKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGhvdHNwb3Qtc2hha2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMmRlZyk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtM2RlZyk7XG4gIH1cbiAgNzAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG59XG48L3N0eWxlPiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/