/*!********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/shop/styles/app.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700&display=swap);
/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./vendor/sylius/mollie-plugin/assets/shop/scss/main.scss ***!
  \***********************************************************************************************************************************************************************************************************************************************************************************************************/
.form-fields {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 20px;
}

.mollie-hidden {
  display: none;
}

.display-grid {
  display: grid;
}

.label {
  display: inline-block;
  margin-bottom: 8px;
  font-weight: 600;
}

.form-error,
.field-error {
  margin-top: 8px;
  margin-bottom: 0;
  color: #f00;
  font-size: 13px;
  font-weight: 500;
}

.mollie-component {
  width: 100%;
  padding: 10px 15px;
  color: #222;
  border: 2px solid transparent;
  border-radius: 6px;
  background-color: #fff;
  box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.1), 0px 1px 3px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05);
  transition: all 0.05s ease;
}

.mollie-component.has-focus {
  border-color: #07f;
  box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.1), 0px 2px 6px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px 1px rgba(0, 0, 0, 0.05);
}

.mollie-component.is-invalid {
  border-color: #f00;
  background-color: #fff0f0;
}

@media (min-width: 350px) {
  .form-fields {
    grid-template-columns: 1fr 1fr;
  }
  .form-group--card-number,
  .form-group--card-name,
  .form-group--save-credit-card,
  .form-group--form-error {
    grid-column: span 2;
  }
}
.online-payment__input {
  display: none;
}

.online-payment__label {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  border: 1px solid #dedede;
  padding: 1rem !important;
  border-radius: 5px;
  cursor: pointer;
  font-weight: bold;
  gap: 10px;
}

.online-payment__item {
  min-width: 25%;
  box-sizing: border-box;
  padding: 1rem;
}

.online-payment__input:checked ~ .online-payment__label {
  border-color: #22B99A;
  box-shadow: 0 0 0 2px #22B99A inset;
}

.online-payment__image {
  width: 50px;
}

.online-payment__credit-card {
  display: none;
}

.online-payment__item--active.online-payment__item--creditcard {
  width: 100%;
}

.online-payment__item--active .online-payment__credit-card {
  display: flex;
  flex-wrap: wrap;
}

.online-online-payment__container {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.online-payment__credit-card {
  padding: 1rem;
  border-bottom: 1px solid #d9d9da;
}

#applepay {
  display: none;
}

#mollie_applepay_button {
  display: none;
}

@supports (-webkit-appearance: -apple-pay-button) {
  .apple-pay-button-with-text {
    width: 100%;
    padding: 19px;
    cursor: pointer;
    display: inline-block;
    -webkit-appearance: -apple-pay-button;
    -apple-pay-button-type: buy;
  }
  .apple-pay-button-with-text > * {
    display: none;
  }
}
@supports not (-webkit-appearance: -apple-pay-button) {
  .apple-pay-button-with-text {
    --apple-pay-scale: 1; /* (height / 32) */
    display: inline-flex;
    justify-content: center;
    font-size: 12px;
    border-radius: 5px;
    padding: 0px;
    box-sizing: border-box;
    min-width: 200px;
    min-height: 32px;
    max-height: 64px;
  }
  .apple-pay-button-with-text.apple-pay-button-black-with-text > .logo {
    background-image: -webkit-named-image(apple-pay-logo-white);
    background-color: black;
  }
  .apple-pay-button-with-text.apple-pay-button-white-with-text > .logo {
    background-image: -webkit-named-image(apple-pay-logo-black);
    background-color: white;
  }
  .apple-pay-button-with-text.apple-pay-button-white-with-line-with-text > .logo {
    background-image: -webkit-named-image(apple-pay-logo-black);
    background-color: white;
  }
  .apple-pay-button-with-text > .text {
    font-family: -apple-system;
    font-size: calc(1em * var(--apple-pay-scale));
    font-weight: 300;
    align-self: center;
    margin-right: calc(2px * var(--apple-pay-scale));
  }
  .apple-pay-button-with-text > .logo {
    width: calc(35px * var(--scale));
    height: 100%;
    background-size: 100% 60%;
    background-repeat: no-repeat;
    background-position: 0 50%;
    margin-left: calc(2px * var(--apple-pay-scale));
    border: none;
  }
}
.draggable {
  position: relative;
}

.mollie-every-label-container span.ui.label {
  margin: 0.5rem 0 0 0.5rem;
}

/* Popup container */
.popup-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999; /* Ensure it's above other content */
}

/* Popup */
.popup {
  background-color: #ffffff;
  padding: 20px;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

/* Popup header */
.popup-header {
  text-align: left;
  margin-bottom: 10px;
}

.popup-header h2 {
  margin: 0;
}

.popup-header hr {
  margin: 5px 0;
  border: none;
  border-top: 1px solid #cccccc;
}

/* Popup content */
.popup-content {
  text-align: center;
  margin-bottom: 20px;
}

.popup-content img {
  display: block;
  margin: 0 auto;
}

/* Popup buttons */
.popup-buttons {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.popup-buttons button {
  margin: 5px;
  padding: 10px 20px;
  border: 1px solid #cccccc;
  border-radius: 5px;
  background-color: #ffffff;
  cursor: pointer;
}

.popup-buttons button:hover {
  background-color: #f0f0f0;
}

/* Styling for cancel button */
.popup-buttons #cancel-button {
  border: none;
}
/*!************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/tom-select/dist/css/tom-select.default.css ***!
  \************************************************************************************************************************************************/
/**
 * tom-select.css (v2.4.3)
 * Copyright (c) contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at:
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 *
 */
.ts-control {
  border: 1px solid #d0d0d0;
  padding: 8px 8px;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
  border-radius: 3px;
  display: flex;
  flex-wrap: wrap;
}
.ts-wrapper.multi.has-items .ts-control {
  padding: calc(8px - 2px - 1px) 8px calc(8px - 2px - 3px - 1px);
}
.full .ts-control {
  background-color: #fff;
}
.disabled .ts-control, .disabled .ts-control * {
  cursor: default !important;
}
.focus .ts-control {
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
}
.ts-control > * {
  vertical-align: baseline;
  display: inline-block;
}
.ts-wrapper.multi .ts-control > div {
  cursor: pointer;
  margin: 0 3px 3px 0;
  padding: 2px 6px;
  background: #1da7ee;
  color: #fff;
  border: 1px solid #0073bb;
}
.ts-wrapper.multi .ts-control > div.active {
  background: #92c836;
  color: #fff;
  border: 1px solid #00578d;
}
.ts-wrapper.multi.disabled .ts-control > div, .ts-wrapper.multi.disabled .ts-control > div.active {
  color: white;
  background: #d2d2d2;
  border: 1px solid #aaaaaa;
}
.ts-control > input {
  flex: 1 1 auto;
  min-width: 7rem;
  display: inline-block !important;
  padding: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  max-width: 100% !important;
  margin: 0 !important;
  text-indent: 0 !important;
  border: 0 none !important;
  background: none !important;
  line-height: inherit !important;
  -webkit-user-select: auto !important;
     -moz-user-select: auto !important;
      -ms-user-select: auto !important;
          user-select: auto !important;
  box-shadow: none !important;
}
.ts-control > input::-ms-clear {
  display: none;
}
.ts-control > input:focus {
  outline: none !important;
}
.has-items .ts-control > input {
  margin: 0 4px !important;
}
.ts-control.rtl {
  text-align: right;
}
.ts-control.rtl.single .ts-control:after {
  left: 15px;
  right: auto;
}
.ts-control.rtl .ts-control > input {
  margin: 0 4px 0 -2px !important;
}
.disabled .ts-control {
  opacity: 0.5;
  background-color: #fafafa;
}
.input-hidden .ts-control > input {
  opacity: 0;
  position: absolute;
  left: -10000px;
}

.ts-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 10;
  border: 1px solid #d0d0d0;
  background: #fff;
  margin: 0.25rem 0 0;
  border-top: 0 none;
  box-sizing: border-box;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 3px 3px;
}
.ts-dropdown [data-selectable] {
  cursor: pointer;
  overflow: hidden;
}
.ts-dropdown [data-selectable] .highlight {
  background: rgba(125, 168, 208, 0.2);
  border-radius: 1px;
}
.ts-dropdown .option,
.ts-dropdown .optgroup-header,
.ts-dropdown .no-results,
.ts-dropdown .create {
  padding: 5px 8px;
}
.ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
  cursor: inherit;
  opacity: 0.5;
}
.ts-dropdown [data-selectable].option {
  opacity: 1;
  cursor: pointer;
}
.ts-dropdown .optgroup:first-child .optgroup-header {
  border-top: 0 none;
}
.ts-dropdown .optgroup-header {
  color: #303030;
  background: #fff;
  cursor: default;
}
.ts-dropdown .active {
  background-color: #f5fafd;
  color: #495c68;
}
.ts-dropdown .active.create {
  color: #495c68;
}
.ts-dropdown .create {
  color: rgba(48, 48, 48, 0.5);
}
.ts-dropdown .spinner {
  display: inline-block;
  width: 30px;
  height: 30px;
  margin: 5px 8px;
}
.ts-dropdown .spinner::after {
  content: " ";
  display: block;
  width: 24px;
  height: 24px;
  margin: 3px;
  border-radius: 50%;
  border: 5px solid #d0d0d0;
  border-color: #d0d0d0 transparent #d0d0d0 transparent;
  animation: lds-dual-ring 1.2s linear infinite;
}
@keyframes lds-dual-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.ts-dropdown-content {
  overflow: hidden auto;
  max-height: 200px;
  scroll-behavior: smooth;
}

.ts-wrapper.plugin-drag_drop .ts-dragging {
  color: transparent !important;
}
.ts-wrapper.plugin-drag_drop .ts-dragging > * {
  visibility: hidden !important;
}

.plugin-checkbox_options:not(.rtl) .option input {
  margin-right: 0.5rem;
}

.plugin-checkbox_options.rtl .option input {
  margin-left: 0.5rem;
}

/* stylelint-disable function-name-case */
.plugin-clear_button {
  --ts-pr-clear-button: 1em;
}
.plugin-clear_button .clear-button {
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: calc(8px - 6px);
  margin-right: 0 !important;
  background: transparent !important;
  transition: opacity 0.5s;
  cursor: pointer;
}
.plugin-clear_button.form-select .clear-button, .plugin-clear_button.single .clear-button {
  right: max(var(--ts-pr-caret), 8px);
}
.plugin-clear_button.focus.has-items .clear-button, .plugin-clear_button:not(.disabled):hover.has-items .clear-button {
  opacity: 1;
}

.ts-wrapper .dropdown-header {
  position: relative;
  padding: 10px 8px;
  border-bottom: 1px solid #d0d0d0;
  background: color-mix(#fff, #d0d0d0, 85%);
  border-radius: 3px 3px 0 0;
}
.ts-wrapper .dropdown-header-close {
  position: absolute;
  right: 8px;
  top: 50%;
  color: #303030;
  opacity: 0.4;
  margin-top: -12px;
  line-height: 20px;
  font-size: 20px !important;
}
.ts-wrapper .dropdown-header-close:hover {
  color: black;
}

.plugin-dropdown_input.focus.dropdown-active .ts-control {
  box-shadow: none;
  border: 1px solid #d0d0d0;
}
.plugin-dropdown_input .dropdown-input {
  border: 1px solid #d0d0d0;
  border-width: 0 0 1px;
  display: block;
  padding: 8px 8px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
  width: 100%;
  background: transparent;
}
.plugin-dropdown_input .items-placeholder {
  border: 0 none !important;
  box-shadow: none !important;
  width: 100%;
}
.plugin-dropdown_input.has-items .items-placeholder, .plugin-dropdown_input.dropdown-active .items-placeholder {
  display: none !important;
}

.ts-wrapper.plugin-input_autogrow.has-items .ts-control > input {
  min-width: 0;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input {
  flex: none;
  min-width: 4px;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::-ms-input-placeholder {
  color: transparent;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::placeholder {
  color: transparent;
}

.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content {
  display: flex;
}
.ts-dropdown.plugin-optgroup_columns .optgroup {
  border-right: 1px solid #f2f2f2;
  border-top: 0 none;
  flex-grow: 1;
  flex-basis: 0;
  min-width: 0;
}
.ts-dropdown.plugin-optgroup_columns .optgroup:last-child {
  border-right: 0 none;
}
.ts-dropdown.plugin-optgroup_columns .optgroup::before {
  display: none;
}
.ts-dropdown.plugin-optgroup_columns .optgroup-header {
  border-top: 0 none;
}

.ts-wrapper.plugin-remove_button .item {
  display: inline-flex;
  align-items: center;
}
.ts-wrapper.plugin-remove_button .item .remove {
  color: inherit;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
  padding: 0 6px;
  border-radius: 0 2px 2px 0;
  box-sizing: border-box;
}
.ts-wrapper.plugin-remove_button .item .remove:hover {
  background: rgba(0, 0, 0, 0.05);
}
.ts-wrapper.plugin-remove_button.disabled .item .remove:hover {
  background: none;
}
.ts-wrapper.plugin-remove_button .remove-single {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 23px;
}

.ts-wrapper.plugin-remove_button:not(.rtl) .item {
  padding-right: 0 !important;
}
.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
  border-left: 1px solid #0073bb;
  margin-left: 6px;
}
.ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove {
  border-left-color: #00578d;
}
.ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove {
  border-left-color: #aaaaaa;
}

.ts-wrapper.plugin-remove_button.rtl .item {
  padding-left: 0 !important;
}
.ts-wrapper.plugin-remove_button.rtl .item .remove {
  border-right: 1px solid #0073bb;
  margin-right: 6px;
}
.ts-wrapper.plugin-remove_button.rtl .item.active .remove {
  border-right-color: #00578d;
}
.ts-wrapper.plugin-remove_button.rtl.disabled .item .remove {
  border-right-color: #aaaaaa;
}

:root {
  --ts-pr-clear-button: 0px;
  --ts-pr-caret: 0px;
  --ts-pr-min: .75rem;
}

.ts-wrapper.single .ts-control, .ts-wrapper.single .ts-control input {
  cursor: pointer;
}

.ts-control:not(.rtl) {
  padding-right: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
}

.ts-control.rtl {
  padding-left: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
}

.ts-wrapper {
  position: relative;
}

.ts-dropdown,
.ts-control,
.ts-control input {
  color: #303030;
  font-family: inherit;
  font-size: 13px;
  line-height: 18px;
}

.ts-control,
.ts-wrapper.single.input-active .ts-control {
  background: #fff;
  cursor: text;
}

.ts-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
          clip-path: inset(50%) !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  white-space: nowrap !important;
}

.ts-wrapper.single .ts-control {
  --ts-pr-caret: 2rem;
}
.ts-wrapper.single .ts-control::after {
  content: " ";
  display: block;
  position: absolute;
  top: 50%;
  margin-top: -3px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 5px 0 5px;
  border-color: #808080 transparent transparent transparent;
}
.ts-wrapper.single .ts-control:not(.rtl)::after {
  right: 15px;
}
.ts-wrapper.single .ts-control.rtl::after {
  left: 15px;
}
.ts-wrapper.single.dropdown-active .ts-control::after {
  margin-top: -4px;
  border-width: 0 5px 5px 5px;
  border-color: transparent transparent #808080 transparent;
}
.ts-wrapper.single.input-active .ts-control, .ts-wrapper.single.input-active .ts-control input {
  cursor: text;
}

.ts-wrapper {
  display: flex;
  min-height: 36px;
}
.ts-wrapper.multi.has-items .ts-control {
  padding-left: 5px;
  --ts-pr-min: $padding-x;
}
.ts-wrapper.multi .ts-control [data-value] {
  text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);
  border-radius: 3px;
  background-color: color-mix(#1da7ee, #178ee9, 60%);
  background-image: linear-gradient(to bottom, #1da7ee, #178ee9);
  background-repeat: repeat-x;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 1px rgba(255, 255, 255, 0.03);
}
.ts-wrapper.multi .ts-control [data-value].active {
  background-color: color-mix(#008fd8, #0075cf, 60%);
  background-image: linear-gradient(to bottom, #008fd8, #0075cf);
  background-repeat: repeat-x;
}
.ts-wrapper.multi.disabled .ts-control [data-value] {
  color: #999;
  text-shadow: none;
  background: none;
  box-shadow: none;
}
.ts-wrapper.multi.disabled .ts-control [data-value], .ts-wrapper.multi.disabled .ts-control [data-value] .remove {
  border-color: #e6e6e6;
}
.ts-wrapper.multi.disabled .ts-control [data-value] .remove {
  background: none;
}
.ts-wrapper.single .ts-control {
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  background-color: color-mix(#fefefe, #f2f2f2, 60%);
  background-image: linear-gradient(to bottom, #fefefe, #f2f2f2);
  background-repeat: repeat-x;
}

.ts-wrapper.single .ts-control, .ts-dropdown.single {
  border-color: #b8b8b8;
}

.dropdown-active .ts-control {
  border-radius: 3px 3px 0 0;
}

.ts-dropdown .optgroup-header {
  padding-top: 7px;
  font-weight: bold;
  font-size: 0.85em;
}
.ts-dropdown .optgroup {
  border-top: 1px solid #f0f0f0;
}
.ts-dropdown .optgroup:first-child {
  border-top: 0 none;
}
/*# sourceMappingURL=tom-select.default.css.map */
/*!**************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/@symfony/ux-live-component/dist/live.min.css ***!
  \**************************************************************************************************************************************************/
[data-loading=""],[data-loading=show],[data-loading*=\|show]{display:none}

/*!***************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/tom-select/dist/css/tom-select.bootstrap5.css ***!
  \***************************************************************************************************************************************************/
/**
 * Tom Select Bootstrap 5
 */
/**
 * tom-select.css (v2.4.3)
 * Copyright (c) contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at:
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 *
 */
.ts-control {
  border: 1px solid var(--bs-border-color);
  padding: 0.375rem 0.75rem;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  box-shadow: none;
  border-radius: var(--bs-border-radius);
  display: flex;
  flex-wrap: wrap;
}
.ts-wrapper.multi.has-items .ts-control {
  padding: calc(0.375rem - 1px - 0) 0.75rem calc(0.375rem - 1px - 3px - 0);
}
.full .ts-control {
  background-color: var(--bs-body-bg);
}
.disabled .ts-control, .disabled .ts-control * {
  cursor: default !important;
}
.focus .ts-control {
  box-shadow: none;
}
.ts-control > * {
  vertical-align: baseline;
  display: inline-block;
}
.ts-wrapper.multi .ts-control > div {
  cursor: pointer;
  margin: 0 3px 3px 0;
  padding: 1px 5px;
  background: #efefef;
  color: #343a40;
  border: 0 solid #dee2e6;
}
.ts-wrapper.multi .ts-control > div.active {
  background: #0d6efd;
  color: #fff;
  border: 0 solid rgba(0, 0, 0, 0);
}
.ts-wrapper.multi.disabled .ts-control > div, .ts-wrapper.multi.disabled .ts-control > div.active {
  color: rgb(134.5, 134.5, 134.5);
  background: white;
  border: 0 solid white;
}
.ts-control > input {
  flex: 1 1 auto;
  min-width: 7rem;
  display: inline-block !important;
  padding: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  max-width: 100% !important;
  margin: 0 !important;
  text-indent: 0 !important;
  border: 0 none !important;
  background: none !important;
  line-height: inherit !important;
  -webkit-user-select: auto !important;
     -moz-user-select: auto !important;
      -ms-user-select: auto !important;
          user-select: auto !important;
  box-shadow: none !important;
}
.ts-control > input::-ms-clear {
  display: none;
}
.ts-control > input:focus {
  outline: none !important;
}
.has-items .ts-control > input {
  margin: 0 4px !important;
}
.ts-control.rtl {
  text-align: right;
}
.ts-control.rtl.single .ts-control:after {
  left: calc(0.75rem + 5px);
  right: auto;
}
.ts-control.rtl .ts-control > input {
  margin: 0 4px 0 -2px !important;
}
.disabled .ts-control {
  opacity: 0.5;
  background-color: var(--bs-secondary-bg);
}
.input-hidden .ts-control > input {
  opacity: 0;
  position: absolute;
  left: -10000px;
}

.ts-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 10;
  border: 1px solid #d0d0d0;
  background: var(--bs-body-bg);
  margin: 0.25rem 0 0;
  border-top: 0 none;
  box-sizing: border-box;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius);
}
.ts-dropdown [data-selectable] {
  cursor: pointer;
  overflow: hidden;
}
.ts-dropdown [data-selectable] .highlight {
  background: rgba(255, 237, 40, 0.4);
  border-radius: 1px;
}
.ts-dropdown .option,
.ts-dropdown .optgroup-header,
.ts-dropdown .no-results,
.ts-dropdown .create {
  padding: 3px 0.75rem;
}
.ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
  cursor: inherit;
  opacity: 0.5;
}
.ts-dropdown [data-selectable].option {
  opacity: 1;
  cursor: pointer;
}
.ts-dropdown .optgroup:first-child .optgroup-header {
  border-top: 0 none;
}
.ts-dropdown .optgroup-header {
  color: #6c757d;
  background: var(--bs-body-bg);
  cursor: default;
}
.ts-dropdown .active {
  background-color: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
}
.ts-dropdown .active.create {
  color: var(--bs-body-color);
}
.ts-dropdown .create {
  color: rgba(52, 58, 64, 0.5);
}
.ts-dropdown .spinner {
  display: inline-block;
  width: 30px;
  height: 30px;
  margin: 3px 0.75rem;
}
.ts-dropdown .spinner::after {
  content: " ";
  display: block;
  width: 24px;
  height: 24px;
  margin: 3px;
  border-radius: 50%;
  border: 5px solid #d0d0d0;
  border-color: #d0d0d0 transparent #d0d0d0 transparent;
  animation: lds-dual-ring 1.2s linear infinite;
}
@keyframes lds-dual-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.ts-dropdown-content {
  overflow: hidden auto;
  max-height: 200px;
  scroll-behavior: smooth;
}

.ts-wrapper.plugin-drag_drop .ts-dragging {
  color: transparent !important;
}
.ts-wrapper.plugin-drag_drop .ts-dragging > * {
  visibility: hidden !important;
}

.plugin-checkbox_options:not(.rtl) .option input {
  margin-right: 0.5rem;
}

.plugin-checkbox_options.rtl .option input {
  margin-left: 0.5rem;
}

/* stylelint-disable function-name-case */
.plugin-clear_button {
  --ts-pr-clear-button: 1em;
}
.plugin-clear_button .clear-button {
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: calc(0.75rem - 5px);
  margin-right: 0 !important;
  background: transparent !important;
  transition: opacity 0.5s;
  cursor: pointer;
}
.plugin-clear_button.form-select .clear-button, .plugin-clear_button.single .clear-button {
  right: max(var(--ts-pr-caret), 0.75rem);
}
.plugin-clear_button.focus.has-items .clear-button, .plugin-clear_button:not(.disabled):hover.has-items .clear-button {
  opacity: 1;
}

.ts-wrapper .dropdown-header {
  position: relative;
  padding: 6px 0.75rem;
  border-bottom: 1px solid #d0d0d0;
  background: color-mix(var(--bs-body-bg), #d0d0d0, 85%);
  border-radius: var(--bs-border-radius) var(--bs-border-radius) 0 0;
}
.ts-wrapper .dropdown-header-close {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  color: #343a40;
  opacity: 0.4;
  margin-top: -12px;
  line-height: 20px;
  font-size: 20px !important;
}
.ts-wrapper .dropdown-header-close:hover {
  color: black;
}

.plugin-dropdown_input.focus.dropdown-active .ts-control {
  box-shadow: none;
  border: 1px solid var(--bs-border-color);
  box-shadow: var(--bs-box-shadow-inset);
}
.plugin-dropdown_input .dropdown-input {
  border: 1px solid #d0d0d0;
  border-width: 0 0 1px;
  display: block;
  padding: 0.375rem 0.75rem;
  box-shadow: none;
  width: 100%;
  background: transparent;
}
.plugin-dropdown_input.focus .ts-dropdown .dropdown-input {
  border-color: rgb(134, 182.5, 254);
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.plugin-dropdown_input .items-placeholder {
  border: 0 none !important;
  box-shadow: none !important;
  width: 100%;
}
.plugin-dropdown_input.has-items .items-placeholder, .plugin-dropdown_input.dropdown-active .items-placeholder {
  display: none !important;
}

.ts-wrapper.plugin-input_autogrow.has-items .ts-control > input {
  min-width: 0;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input {
  flex: none;
  min-width: 4px;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::-ms-input-placeholder {
  color: transparent;
}
.ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::placeholder {
  color: transparent;
}

.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content {
  display: flex;
}
.ts-dropdown.plugin-optgroup_columns .optgroup {
  border-right: 1px solid #f2f2f2;
  border-top: 0 none;
  flex-grow: 1;
  flex-basis: 0;
  min-width: 0;
}
.ts-dropdown.plugin-optgroup_columns .optgroup:last-child {
  border-right: 0 none;
}
.ts-dropdown.plugin-optgroup_columns .optgroup::before {
  display: none;
}
.ts-dropdown.plugin-optgroup_columns .optgroup-header {
  border-top: 0 none;
}

.ts-wrapper.plugin-remove_button .item {
  display: inline-flex;
  align-items: center;
}
.ts-wrapper.plugin-remove_button .item .remove {
  color: inherit;
  text-decoration: none;
  vertical-align: middle;
  display: inline-block;
  padding: 0 5px;
  border-radius: 0 2px 2px 0;
  box-sizing: border-box;
}
.ts-wrapper.plugin-remove_button .item .remove:hover {
  background: rgba(0, 0, 0, 0.05);
}
.ts-wrapper.plugin-remove_button.disabled .item .remove:hover {
  background: none;
}
.ts-wrapper.plugin-remove_button .remove-single {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 23px;
}

.ts-wrapper.plugin-remove_button:not(.rtl) .item {
  padding-right: 0 !important;
}
.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
  border-left: 1px solid #dee2e6;
  margin-left: 5px;
}
.ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove {
  border-left-color: rgba(0, 0, 0, 0);
}
.ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove {
  border-left-color: white;
}

.ts-wrapper.plugin-remove_button.rtl .item {
  padding-left: 0 !important;
}
.ts-wrapper.plugin-remove_button.rtl .item .remove {
  border-right: 1px solid #dee2e6;
  margin-right: 5px;
}
.ts-wrapper.plugin-remove_button.rtl .item.active .remove {
  border-right-color: rgba(0, 0, 0, 0);
}
.ts-wrapper.plugin-remove_button.rtl.disabled .item .remove {
  border-right-color: white;
}

:root {
  --ts-pr-clear-button: 0px;
  --ts-pr-caret: 0px;
  --ts-pr-min: .75rem;
}

.ts-wrapper.single .ts-control, .ts-wrapper.single .ts-control input {
  cursor: pointer;
}

.ts-control:not(.rtl) {
  padding-right: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
}

.ts-control.rtl {
  padding-left: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
}

.ts-wrapper {
  position: relative;
}

.ts-dropdown,
.ts-control,
.ts-control input {
  color: #343a40;
  font-family: inherit;
  font-size: inherit;
  line-height: 1.5;
}

.ts-control,
.ts-wrapper.single.input-active .ts-control {
  background: var(--bs-body-bg);
  cursor: text;
}

.ts-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  -webkit-clip-path: inset(50%) !important;
          clip-path: inset(50%) !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  white-space: nowrap !important;
}

.ts-dropdown,
.ts-dropdown.form-control,
.ts-dropdown.form-select {
  height: auto;
  padding: 0;
  z-index: 1000;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color-translucent);
  border-radius: 0.375rem;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
}

.ts-dropdown .optgroup-header {
  font-size: 0.875rem;
  line-height: 1.5;
}
.ts-dropdown .optgroup:first-child::before {
  display: none;
}
.ts-dropdown .optgroup::before {
  content: " ";
  display: block;
  height: 0;
  margin: 0.5rem 0;
  overflow: hidden;
  border-top: 1px solid var(--bs-border-color-translucent);
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}
.ts-dropdown .create {
  padding-left: 0.75rem;
}

.ts-dropdown-content {
  padding: 5px 0;
}

.ts-control {
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  display: flex;
  align-items: center;
}
@media (prefers-reduced-motion: reduce) {
  .ts-control {
    transition: none;
  }
}
.focus .ts-control {
  border-color: rgb(134, 182.5, 254);
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.ts-control .item {
  display: flex;
  align-items: center;
}

.ts-wrapper.is-invalid,
.was-validated .invalid,
.was-validated :invalid + .ts-wrapper {
  border-color: var(--bs-form-invalid-color);
}
.ts-wrapper.is-invalid:not(.single),
.was-validated .invalid:not(.single),
.was-validated :invalid + .ts-wrapper:not(.single) {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
  background-repeat: no-repeat;
}
.ts-wrapper.is-invalid.single,
.was-validated .invalid.single,
.was-validated :invalid + .ts-wrapper.single {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
  background-position: right 0.75rem center, center right 2.25rem;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
  background-repeat: no-repeat;
}
.ts-wrapper.is-invalid.focus .ts-control,
.was-validated .invalid.focus .ts-control,
.was-validated :invalid + .ts-wrapper.focus .ts-control {
  border-color: var(--bs-form-invalid-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-form-invalid-color), 0.25);
}

.ts-wrapper.is-valid,
.was-validated .valid,
.was-validated :valid + .ts-wrapper {
  border-color: var(--bs-form-valid-color);
}
.ts-wrapper.is-valid:not(.single),
.was-validated .valid:not(.single),
.was-validated :valid + .ts-wrapper:not(.single) {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e");
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
  background-repeat: no-repeat;
}
.ts-wrapper.is-valid.single,
.was-validated .valid.single,
.was-validated :valid + .ts-wrapper.single {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 8 8%27%3e%3cpath fill=%27%23198754%27 d=%27M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z%27/%3e%3c/svg%3e");
  background-position: right 0.75rem center, center right 2.25rem;
  background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
  background-repeat: no-repeat;
}
.ts-wrapper.is-valid.focus .ts-control,
.was-validated .valid.focus .ts-control,
.was-validated :valid + .ts-wrapper.focus .ts-control {
  border-color: var(--bs-form-valid-color);
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-form-valid-color), 0.25);
}

.ts-wrapper {
  min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));
  display: flex;
}
.input-group-sm > .ts-wrapper, .ts-wrapper.form-select-sm, .ts-wrapper.form-control-sm {
  min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));
}
.input-group-sm > .ts-wrapper .ts-control, .ts-wrapper.form-select-sm .ts-control, .ts-wrapper.form-control-sm .ts-control {
  border-radius: var(--bs-border-radius-sm);
  font-size: 0.875rem;
}
.input-group-sm > .ts-wrapper.has-items .ts-control, .ts-wrapper.form-select-sm.has-items .ts-control, .ts-wrapper.form-control-sm.has-items .ts-control {
  font-size: 0.875rem;
  padding-bottom: 0;
}
.input-group-sm > .ts-wrapper.multi.has-items .ts-control, .ts-wrapper.form-select-sm.multi.has-items .ts-control, .ts-wrapper.form-control-sm.multi.has-items .ts-control {
  padding-top: calc((calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)) - 1.5 * 0.875rem - calc((var(--bs-border-width) + 1px) * 2)) / 2) !important;
}
.ts-wrapper.multi.has-items .ts-control {
  padding-left: calc(0.75rem - 5px);
  --ts-pr-min: calc(0.75rem - 5px);
}
.ts-wrapper.multi .ts-control > div {
  border-radius: calc(var(--bs-border-radius) - 1px);
}
.input-group-lg > .ts-wrapper, .ts-wrapper.form-control-lg, .ts-wrapper.form-select-lg {
  min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));
}
.input-group-lg > .ts-wrapper .ts-control, .ts-wrapper.form-control-lg .ts-control, .ts-wrapper.form-select-lg .ts-control {
  border-radius: var(--bs-border-radius-lg);
  font-size: 1.25rem;
}
.ts-wrapper:not(.form-control, .form-select) {
  padding: 0;
  border: none;
  height: auto;
  box-shadow: none;
  background: none;
}
.ts-wrapper:not(.form-control, .form-select).single .ts-control {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27m2 5 6 6 6-6%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
}
.ts-wrapper.form-select, .ts-wrapper.single {
  --ts-pr-caret: 2.25rem;
}
.ts-wrapper.form-control, .ts-wrapper.form-select {
  padding: 0 !important;
  height: auto;
  box-shadow: none;
  display: flex;
}
.ts-wrapper.form-control .ts-control, .ts-wrapper.form-control.single.input-active .ts-control, .ts-wrapper.form-select .ts-control, .ts-wrapper.form-select.single.input-active .ts-control {
  border: none !important;
}
.ts-wrapper.form-control:not(.disabled) .ts-control, .ts-wrapper.form-control:not(.disabled).single.input-active .ts-control, .ts-wrapper.form-select:not(.disabled) .ts-control, .ts-wrapper.form-select:not(.disabled).single.input-active .ts-control {
  background: transparent !important;
}

.input-group > .ts-wrapper {
  flex-grow: 1;
  width: 1%;
}
.input-group > .ts-wrapper:not(:nth-child(2)) > .ts-control {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group > .ts-wrapper:not(:last-child) > .ts-control {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
/*# sourceMappingURL=tom-select.bootstrap5.css.map */
/*!************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/shop/styles/app.scss (1) ***!
  \************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/*
 * Tonerdeluxe — Hoja de estilo de la tienda (capa de marca sobre Sylius/Bootstrap).
 * Orden: tokens (variables) → base (refinamientos) → brand (puente con Bootstrap).
 */
/* Fuente de marca para titulares (Archivo). Se carga globalmente (cabecera/pie y todas las
   pantallas); el cuerpo sigue en sans del sistema. display=swap evita texto invisible. */
/*
 * Tonerdeluxe — Design tokens (Fase 8 · Design System)
 * Fuente única de la verdad: CSS custom properties agnósticas del framework.
 * Marca CMYK: Cyan #009EEF · Magenta #E61484 · Amarillo #FFE600 · Negro #000000.
 * El cyan puro se reserva para relleno/identidad; los tonos -600/-700 dan contraste AA
 * para texto y CTAs. Acentos magenta/amarillo = detalle puntual, nunca fondo de texto.
 */
:root {
  /* ---- Color · escala de marca (cyan #009EEF = brand-500) ---- */
  --c-brand-50: #e8f6fe;
  --c-brand-100: #c9eafd;
  --c-brand-200: #93d6fb;
  --c-brand-300: #58c0f7;
  --c-brand-400: #1fa9f1;
  --c-brand-500: #009eef; /* IDENTIDAD: fills, badges, foco, decorativo */
  --c-brand-600: #0a82c7; /* botón primario (texto blanco) */
  --c-brand-700: #0c6ba3; /* enlaces de texto / hover — AA sobre blanco */
  --c-brand-800: #0c5681;
  --c-brand-900: #0a4260;
  /* ---- Color · grises fríos ---- */
  --c-white: #ffffff;
  --c-gray-50: #f6f7f9;
  --c-gray-100: #eceef2;
  --c-gray-200: #dde1e7;
  --c-gray-300: #c8cdd6;
  --c-gray-400: #99a1af;
  --c-gray-500: #6b7280; /* texto secundario */
  --c-gray-600: #4b5563;
  --c-gray-700: #353c49;
  --c-gray-800: #1f242e;
  --c-ink: #0b0b0f; /* gray-900 · texto principal */
  /* ---- Color · acentos CMYK (detalle, no fondo de texto) ---- */
  --c-accent-cyan: #009eef;
  --c-accent-magenta: #e61484;
  --c-accent-yellow: #ffe600;
  /* Magenta para CTAs (botones "Buscar" / "Ver compatibles"): un punto más vivo y
     claro que el deep magenta, sin llegar al acento puro (que saturaba demasiado). */
  --c-magenta-cta: #cc1976;
  --c-magenta-cta-hover: #ad145f;
  /* Amarillo para CTAs (botón "Ver ofertas"): EXACTAMENTE el mismo amarillo de marca
     que el "−70 %" del banner (var --c-accent-yellow). El texto va SIEMPRE oscuro
     (literal) para no romperse en modo oscuro. */
  --c-yellow-cta: var(--c-accent-yellow);
  --c-yellow-cta-hover: #ebd400;
  /* ---- Color · semánticos de estado ---- */
  --c-save: #0f9d58; /* stock · válido · éxito (estado) — verde */
  --c-deal: var(--c-accent-magenta); /* ahorro · descuento · precio-ventaja — acento de marca (jun. 2026: el verde de ahorro pasa a magenta corporativo) */
  --c-warning: #f59e0b;
  --c-error: #dc2626;
  --c-info: #0a82c7;
  /* ---- Color · semánticos de superficie/texto (base para dark mode) ---- */
  --c-bg: var(--c-white);
  --c-surface: var(--c-white);
  --c-surface-sunk: var(--c-gray-50);
  --c-border: var(--c-gray-200);
  --c-text: var(--c-ink);
  --c-text-muted: var(--c-gray-500);
  --c-link: var(--c-brand-700);
  --c-link-hover: var(--c-brand-800);
  --c-focus: var(--c-brand-500);
  /* ---- Tipografía ---- */
  --font-sans: "InterVariable", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  /* Fuente de marca para titulares (hero, títulos de sección, h1–h3). Con carácter, distinta del
     sans de cuerpo: da personalidad y evita el aire "plantilla". Cuerpo y datos siguen en sans. */
  --font-display: "Archivo", var(--font-sans);
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  /* Escala modular fluida (~1.25) */
  --fs-display: clamp(2.5rem, 1.7rem + 3.6vw, 4rem);
  --fs-h1: clamp(2rem, 1.55rem + 2vw, 3rem);
  --fs-h2: clamp(1.5rem, 1.28rem + 1vw, 2.25rem);
  --fs-h3: clamp(1.25rem, 1.13rem + 0.55vw, 1.625rem);
  --fs-h4: 1.25rem;
  --fs-body-lg: 1.125rem;
  --fs-body: 1rem;
  --fs-body-sm: 0.875rem;
  --fs-caption: 0.75rem;
  --lh-tight: 1.15;
  --lh-snug: 1.3;
  --lh-normal: 1.5;
  --lh-relaxed: 1.6;
  /* ---- Espaciado (base 4px) ---- */
  --s-1: 0.25rem;
  --s-2: 0.5rem;
  --s-3: 0.75rem;
  --s-4: 1rem;
  --s-6: 1.5rem;
  --s-8: 2rem;
  --s-12: 3rem;
  --s-16: 4rem;
  --s-24: 6rem;
  /* ---- Radios ---- */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-full: 9999px;
  /* ---- Sombras (elevación e1–e4, sutiles/premium) ---- */
  --shadow-e1: 0 1px 2px rgba(11, 11, 15, 0.06), 0 1px 1px rgba(11, 11, 15, 0.04);
  --shadow-e2: 0 2px 8px rgba(11, 11, 15, 0.08);
  --shadow-e3: 0 8px 24px rgba(11, 11, 15, 0.10);
  --shadow-e4: 0 16px 48px rgba(11, 11, 15, 0.14);
  /* ---- Layout ---- */
  --container-max: 1280px;
  /* ---- Movimiento ---- */
  --transition-fast: 150ms ease;
  --transition: 200ms ease;
  --transition-slow: 300ms ease-out;
  /* ---- Z-index (escala nombrada) ---- */
  --z-header: 1030;
  --z-dropdown: 1000;
  --z-offcanvas: 1045;
  --z-modal: 1055;
  --z-toast: 1090;
  /* Breakpoints (referencia): sm 640 · md 768 · lg 1024 · xl 1280 · 2xl 1536 */
}

/* ---- Dark mode (preparado, NO activado al lanzamiento) ----
   Semántica por tokens. Un único interruptor lo enciende: `data-bs-theme="dark"`
   (el nativo de Bootstrap 5.3, que además voltea sus propios componentes) o el
   alias `data-theme="dark"`. Al volcar --c-bg/--c-text, el puente _brand.scss
   arrastra --bs-body-bg/--bs-body-color, así que toda la tienda cambia a la vez. */
[data-theme=dark],
[data-bs-theme=dark] {
  --c-bg: #0b0d10;
  --c-surface: #14171c;
  --c-surface-sunk: #0f1216;
  --c-border: #262b33;
  --c-text: #f3f5f7;
  --c-text-muted: #9aa1af;
  --c-link: var(--c-brand-300);
  --c-link-hover: var(--c-brand-200);
  --c-ink: #f3f5f7; /* el texto "fuerte" (precios, títulos) también se aclara */
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition: 0ms;
    --transition-slow: 0ms;
  }
}
/*
 * Tonerdeluxe — Base ligera sobre el storefront Sylius.
 * Refinamientos globales no invasivos; la maquetación por pantalla irá en capas aparte.
 */
body {
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  color: var(--c-text);
  background-color: var(--c-bg);
}

::selection {
  background: var(--c-brand-500);
  color: #fff;
}

/* Títulos un punto más contundentes (personalidad de marca, Fase 8) */
h1, h2, h3, .h1, .h2, .h3 {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  letter-spacing: -0.01em;
  line-height: var(--lh-tight);
}

/* Acentos CMYK reutilizables como utilidades de detalle */
.text-accent-magenta {
  color: var(--c-accent-magenta);
}

.text-save {
  color: var(--c-deal);
}

.bg-brand {
  background-color: var(--c-brand-500);
}

.bg-brand-soft {
  background-color: var(--c-brand-50);
}

/*
 * Tonerdeluxe — Puente marca → Bootstrap 5.3 (storefront Sylius)
 * Se carga DESPUÉS del CSS del vendor (hook app_styles), por lo que estos
 * overrides de variables CSS de Bootstrap ganan la cascada sin recompilar Bootstrap.
 * Reemplaza el teal por defecto de Sylius (#22B99A) por el cyan de marca (#009EEF).
 */
:root {
  /* Primary de marca */
  --bs-primary: var(--c-brand-500);
  --bs-primary-rgb: 0, 158, 239;
  /* Enlaces (tono accesible AA) */
  --bs-link-color: var(--c-link);
  --bs-link-color-rgb: 12, 107, 163;
  --bs-link-hover-color: var(--c-link-hover);
  --bs-link-hover-color-rgb: 12, 86, 129;
  /* Cuerpo y tipografía */
  --bs-body-color: var(--c-text);
  --bs-body-color-rgb: 11, 11, 15;
  --bs-body-bg: var(--c-bg);
  --bs-emphasis-color: var(--c-ink);
  --bs-border-color: var(--c-border);
  --bs-font-sans-serif: var(--font-sans);
  --bs-body-font-family: var(--font-sans);
  /* Anillo de foco de marca */
  --bs-focus-ring-color: rgba(0, 158, 239, 0.35);
}

/* Botón primario de marca — Bootstrap fija los --bs-btn-* dentro de .btn-primary,
   así que hay que redefinirlos aquí. Fondo brand-600 + texto blanco = contraste suficiente. */
.btn-primary {
  --bs-btn-bg: var(--c-brand-600);
  --bs-btn-border-color: var(--c-brand-600);
  --bs-btn-hover-bg: var(--c-brand-700);
  --bs-btn-hover-border-color: var(--c-brand-700);
  --bs-btn-active-bg: var(--c-brand-800);
  --bs-btn-active-border-color: var(--c-brand-800);
  --bs-btn-disabled-bg: var(--c-brand-300);
  --bs-btn-disabled-border-color: var(--c-brand-300);
  --bs-btn-color: #fff;
  --bs-btn-hover-color: #fff;
  --bs-btn-active-color: #fff;
  --bs-btn-disabled-color: #fff;
  --bs-btn-focus-shadow-rgb: 0, 158, 239;
}

.btn-outline-primary {
  --bs-btn-color: var(--c-brand-700);
  --bs-btn-border-color: var(--c-brand-600);
  --bs-btn-hover-bg: var(--c-brand-600);
  --bs-btn-hover-border-color: var(--c-brand-600);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--c-brand-700);
  --bs-btn-active-border-color: var(--c-brand-700);
  --bs-btn-active-color: #fff;
  --bs-btn-focus-shadow-rgb: 0, 158, 239;
}

/* Paginación con color de marca */
.pagination {
  --bs-pagination-color: var(--c-brand-700);
  --bs-pagination-hover-color: var(--c-brand-800);
  --bs-pagination-active-bg: var(--c-brand-600);
  --bs-pagination-active-border-color: var(--c-brand-600);
  --bs-pagination-focus-color: var(--c-brand-800);
}

/* Form controls: foco de marca */
.form-control:focus,
.form-select:focus {
  border-color: var(--c-brand-400);
  box-shadow: 0 0 0 0.25rem rgba(0, 158, 239, 0.25);
}

/* El teal de Sylius queda compilado como literal en algunas reglas del navbar:
   lo corregimos a cyan de marca. */
.navbar .nav-link:hover,
.navbar .nav-link:focus,
.navbar .nav-link.active {
  color: var(--c-brand-700) !important;
}

/* Foco accesible visible y consistente en toda la tienda */
:focus-visible {
  outline: 2px solid var(--c-focus);
  outline-offset: 2px;
}

/* Logo: garantiza el wordmark en tinta sobre fondos claros (currentColor) */
.tnd-logo {
  color: var(--c-ink);
  display: block;
}

/*
 * Tonerdeluxe — Componentes reutilizables (Fase 8).
 * Tarjeta de producto base: se reutilizará y ampliará en categorías (Fase 3) y ficha (Fase 4).
 */
/* Botón CTA magenta (mismo color que "Buscar" del header): "Ver compatibles", etc. */
.tnd-btn-magenta.btn {
  background: var(--c-magenta-cta);
  border-color: var(--c-magenta-cta);
  color: var(--c-white);
}

.tnd-btn-magenta.btn:hover,
.tnd-btn-magenta.btn:focus-visible {
  background: var(--c-magenta-cta-hover);
  border-color: var(--c-magenta-cta-hover);
  color: var(--c-white);
}

/* Botón CTA amarillo (dorado): "Ver ofertas". Texto oscuro fijo (legible sobre amarillo
   y a salvo del modo oscuro). */
.tnd-btn-yellow.btn {
  background: var(--c-yellow-cta);
  border-color: var(--c-yellow-cta);
  color: #1b1500;
  font-weight: var(--fw-semibold);
}

.tnd-btn-yellow.btn:hover,
.tnd-btn-yellow.btn:focus-visible {
  background: var(--c-yellow-cta-hover);
  border-color: var(--c-yellow-cta-hover);
  color: #1b1500;
}

.tnd-card {
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  background: var(--c-surface);
  overflow: hidden;
  color: var(--c-text);
  transition: box-shadow var(--transition), border-color var(--transition), transform var(--transition);
}

.tnd-card:hover {
  border-color: var(--c-brand-300);
  box-shadow: var(--shadow-e2);
  transform: translateY(-2px);
  color: var(--c-text);
}

/* Enlace interno que envuelve imagen + datos (la tarjeta ya no es un <a>: lleva el botón
   "Añadir al carrito" fuera del enlace para que sea HTML válido y clicable por separado). */
.tnd-card__link {
  color: inherit;
  text-decoration: none;
}

.tnd-card__link:hover,
.tnd-card__link:focus {
  color: inherit;
}

/* Botón "Añadir al carrito" al pie de la tarjeta (alineado entre tarjetas de distinta altura). */
.tnd-card__add {
  padding: 0 var(--s-3) var(--s-3);
}

.tnd-card__add .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-1);
}

/* Pie de tarjeta sin stock: etiqueta "Sin stock" + botón "Avísame" (en lugar de "Añadir"). */
.tnd-card__oos {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
}

.tnd-card__oos-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-1);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  color: var(--c-text-muted);
}

.tnd-card__oos-tag svg {
  width: 0.95rem;
  height: 0.95rem;
}

.tnd-card__oos .td-notify-btn {
  gap: var(--s-1);
}

.tnd-card__media {
  position: relative;
  /* Recuadro de imagen más bajo (3:2) para que el precio quede visible sin desplazarse. */
  aspect-ratio: 3/2;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-surface-sunk);
  padding: var(--s-2);
}

.tnd-card__badge {
  position: absolute;
  top: var(--s-2);
  left: var(--s-2);
  z-index: 1;
  background: var(--c-accent-magenta);
  color: #fff;
  font-weight: var(--fw-bold);
  font-size: var(--fs-body-sm);
  padding: 2px var(--s-2);
  border-radius: var(--radius-sm);
}

.tnd-card__media img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.tnd-card__noimg {
  color: var(--c-gray-300);
}

.tnd-card__noimg svg {
  width: 2.5rem;
  height: 2.5rem;
}

.tnd-card__body {
  padding: var(--s-3);
  gap: var(--s-1);
  flex: 1 1 auto;
}

.tnd-card__chip {
  align-self: flex-start;
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  padding: 1px var(--s-2);
  border-radius: var(--radius-full);
  margin-bottom: 2px;
}

.tnd-card__chip--compatible {
  background: rgba(0, 158, 239, 0.12);
  color: var(--c-brand-700);
}

.tnd-card__chip--original {
  background: var(--c-gray-100);
  color: var(--c-gray-700);
}

.tnd-card__brand {
  font-size: var(--fs-caption);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  font-weight: var(--fw-semibold);
}

.tnd-card__title {
  font-size: var(--fs-body-sm);
  line-height: var(--lh-snug);
  font-weight: var(--fw-medium);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tnd-card__rating {
  display: inline-flex;
  gap: 1px;
  color: var(--c-accent-yellow);
  margin-top: 2px;
}

.tnd-card__rating svg {
  width: 0.9rem;
  height: 0.9rem;
}

.tnd-card__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--s-1);
  padding-top: var(--s-2);
}

.tnd-card__now {
  font-weight: var(--fw-bold);
  font-size: var(--fs-body-lg);
  color: var(--c-ink);
}

.tnd-card__was {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  text-decoration: line-through;
}

.tnd-card__price small {
  font-weight: var(--fw-regular);
  font-size: var(--fs-caption);
  color: var(--c-text-muted);
}

/* Ahorro frente al original (solo en compatibles emparejados por OEM). */
.tnd-card__save {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  color: var(--c-deal);
  background: rgba(230, 20, 132, 0.1); /* tinte magenta corporativo (acento de ahorro) */
  border-radius: var(--radius-full);
  padding: 1px var(--s-2);
  margin-top: 2px;
}

.tnd-card__save svg {
  width: 0.85rem;
  height: 0.85rem;
}

/* ---- Chip / Badge (componente del sistema, usable fuera de la tarjeta) ----
   Variantes semánticas: tipo de consumible (compatible/original/remanufacturado),
   ahorro (−%), stock y novedad. Pensados como etiqueta pequeña, nunca fondo de texto largo. */
.tnd-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  line-height: 1.4;
  padding: 1px var(--s-2);
  border-radius: var(--radius-full);
  background: var(--c-gray-100);
  color: var(--c-gray-700);
}

.tnd-chip--compatible {
  background: rgba(0, 158, 239, 0.12);
  color: var(--c-brand-700);
}

.tnd-chip--original {
  background: var(--c-gray-100);
  color: var(--c-gray-700);
}

.tnd-chip--remanufactured {
  background: rgba(15, 157, 88, 0.12);
  color: #0b7a44;
}

.tnd-chip--save {
  background: var(--c-accent-magenta);
  color: #fff;
}

.tnd-chip--stock {
  background: rgba(15, 157, 88, 0.14);
  color: #0b7a44;
}

.tnd-chip--outstock {
  background: var(--c-gray-100);
  color: var(--c-gray-500);
}

.tnd-chip--new {
  background: rgba(255, 230, 0, 0.22);
  color: #8a7400;
}

/* Estado vacío genérico */
.tnd-empty {
  border: 1px dashed var(--c-border);
  border-radius: var(--radius-lg);
  background: var(--c-surface-sunk);
}

/* Coincidencias de impresora en el buscador federado */
.tnd-printer-hits {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  padding: var(--s-3) var(--s-4);
  border: 1px solid var(--c-brand-100);
  border-radius: var(--radius-md);
  background: var(--c-brand-50);
}

.tnd-printer-hits__label {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-weight: var(--fw-semibold);
  color: var(--c-brand-900);
}

.tnd-printer-hits__label svg {
  width: 1.15rem;
  height: 1.15rem;
}

.tnd-printer-hits__chip {
  display: inline-flex;
  align-items: center;
  padding: var(--s-1) var(--s-3);
  border-radius: var(--radius-full);
  background: var(--c-surface);
  border: 1px solid var(--c-brand-200);
  color: var(--c-brand-700);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body-sm);
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
}

.tnd-printer-hits__chip:hover {
  background: var(--c-brand-600);
  border-color: var(--c-brand-600);
  color: #fff;
}

/*
 * Tonerdeluxe — Formulario de dirección: widget de teléfono (selector de país con bandera +
 * prefijo editable + número) y badge informativo de VIES del NIF/CIF. Usa los tokens de
 * _tokens.scss. Las banderas son SVG (se ven igual en cualquier sistema).
 */
.tnd-flag {
  width: 1.35rem;
  height: 0.9rem;
  border-radius: 2px;
  flex: 0 0 auto;
  display: inline-block;
  vertical-align: middle;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
  object-fit: cover;
}

.tnd-phone__row {
  display: flex;
  align-items: stretch;
  gap: var(--s-2);
}
.tnd-phone__country {
  position: relative;
  flex: 0 0 auto;
}
.tnd-phone__flag-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: auto;
  cursor: pointer;
  padding-inline: 0.6rem;
}
.tnd-phone__caret {
  font-size: 0.7rem;
  color: var(--c-text-muted);
  line-height: 1;
}
.tnd-phone__prefix {
  max-width: 5rem;
  flex: 0 0 auto;
  text-align: center;
}
.tnd-phone__national {
  flex: 1 1 auto;
  min-width: 0;
}
.tnd-phone__menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: var(--z-dropdown);
  margin: 0;
  padding: var(--s-1);
  list-style: none;
  min-width: 12rem;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-e3);
}
.tnd-phone__menu button {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: var(--s-2) var(--s-3);
  border: 0;
  background: transparent;
  border-radius: var(--radius-sm);
  font-size: var(--fs-body-sm);
  text-align: left;
  cursor: pointer;
}
.tnd-phone__menu button:hover, .tnd-phone__menu button:focus {
  background: var(--c-surface-sunk);
}

.tnd-vat-badge {
  display: inline-block;
  margin-top: var(--s-2);
  font-size: var(--fs-caption);
  font-weight: var(--fw-medium);
}
.tnd-vat-badge--ok {
  color: var(--c-save);
}
.tnd-vat-badge--info {
  color: var(--c-text-muted);
}

/*
 * Tonerdeluxe — Header (Fase 2): utility bar de confianza + barra principal sticky.
 */
/* ---- Utility bar (barra de confianza superior) ---- */
.tnd-utility {
  background: var(--c-ink);
  color: var(--c-gray-100);
  /* Por encima del header sticky para que SUS desplegables (idioma, moneda, cuenta) se
     vean por encima del header y se puedan seleccionar (antes quedaban ocultos debajo). */
  position: relative;
  z-index: calc(var(--z-header) + 5);
}

.tnd-utility a {
  color: var(--c-gray-100);
  text-decoration: none;
}

.tnd-utility a:hover {
  color: #fff;
}

.tnd-trust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2) var(--s-6);
}

.tnd-trust__item {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  white-space: nowrap;
  color: var(--c-gray-100);
}

.tnd-trust__item svg {
  width: 1rem;
  height: 1rem;
  flex: none;
  color: var(--c-accent-cyan);
}

/* Móvil: un mensaje a la vez, rotación CSS (sin JS) */
@media (max-width: 767.98px) {
  .tnd-trust {
    position: relative;
    display: block;
    height: 1.25rem;
  }
  .tnd-trust__item {
    position: absolute;
    inset: 0;
    justify-content: center;
    opacity: 0;
    animation: tnd-trust-rotate 12s infinite;
  }
  .tnd-trust__item:nth-child(2) {
    animation-delay: 3s;
  }
  .tnd-trust__item:nth-child(3) {
    animation-delay: 6s;
  }
  .tnd-trust__item:nth-child(4) {
    animation-delay: 9s;
  }
}
@keyframes tnd-trust-rotate {
  0%, 2% {
    opacity: 0;
    transform: translateY(4px);
  }
  6%, 25% {
    opacity: 1;
    transform: translateY(0);
  }
  29%, 100% {
    opacity: 0;
    transform: translateY(-4px);
  }
}
/* ---- Barra principal sticky ---- */
.tnd-header-main {
  /* Altura común de los controles del header (buscador, login/registro, carrito):
     así quedan perfectamente a la misma línea. */
  --tnd-control-h: 2.875rem;
  position: sticky;
  top: 0;
  z-index: var(--z-header);
  background: var(--c-bg);
  box-shadow: var(--shadow-e1);
}

/* Logo del header dimensionado por ALTURA para igualar la altura de los controles
   (buscador/login/registro/carrito) y quedar a la misma línea. El ancho lo deduce
   el propio SVG por su relación de aspecto. */
.tnd-header-main .tnd-logo,
.tnd-checkout-logo .tnd-logo {
  height: 2.2rem;
  width: auto;
  max-width: 100%;
}

@media (min-width: 992px) {
  .tnd-header-main .tnd-logo,
  .tnd-checkout-logo .tnd-logo {
    height: 2.65rem;
  }
}
.tnd-logo-link {
  width: auto;
  max-width: 100%;
}

/* ---- Menú de cuenta (desktop): botón compacto + dropdown de marca ---- */
.tnd-account__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  max-width: 12rem;
  padding: 0.4rem 0.65rem;
  background: var(--c-surface);
  border: 1px solid var(--c-gray-300);
  border-radius: var(--radius-full);
  color: var(--c-text);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  line-height: 1;
  cursor: pointer;
  transition: border-color var(--transition), box-shadow var(--transition);
}

.tnd-account__toggle:hover,
.tnd-account__toggle[aria-expanded=true] {
  border-color: var(--c-brand-400);
  box-shadow: var(--shadow-e1);
}

.tnd-account__avatar {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: var(--radius-full);
  background: var(--c-brand-50);
  color: var(--c-brand-600);
}

.tnd-account__avatar svg {
  width: 1.05rem;
  height: 1.05rem;
}

.tnd-account__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tnd-account__caret {
  flex: none;
  display: inline-flex;
  color: var(--c-gray-500);
}

.tnd-account__caret svg {
  width: 0.95rem;
  height: 0.95rem;
}

.tnd-account__menu.dropdown-menu {
  --bs-dropdown-min-width: 12.5rem;
  margin-top: var(--s-2);
  padding: var(--s-2);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-e3);
}

.tnd-account__item.dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  padding: var(--s-2) var(--s-3);
  border-radius: var(--radius-sm);
  color: var(--c-text);
  font-size: var(--fs-body-sm);
}

.tnd-account__item.dropdown-item:hover,
.tnd-account__item.dropdown-item:focus {
  background: var(--c-brand-50);
  color: var(--c-brand-700);
}

.tnd-account__item svg {
  width: 1.1rem;
  height: 1.1rem;
  flex: none;
  color: var(--c-gray-500);
}

.tnd-account__item:hover svg,
.tnd-account__item:focus svg {
  color: var(--c-brand-600);
}

/* ---- Buscador protagonista ---- */
.tnd-search {
  /* El buscador se centra verticalmente respecto al logo y al carrito de su misma fila. */
  display: flex;
  align-items: center;
}

.tnd-search__form {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: 640px;
  margin-inline: auto;
}

/* ---- Dropdown de autocompletado ---- */
.tnd-suggest {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: var(--z-dropdown);
  max-height: 70vh;
  overflow-y: auto;
  padding: var(--s-2);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-e3);
  animation: tnd-suggest-in var(--transition) both;
}

@keyframes tnd-suggest-in {
  from {
    opacity: 0;
    transform: translateY(-6px) scale(0.99);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/* ---- Dos paneles: impresoras | productos ----
 * En móvil/columna única se apilan (impresoras y luego productos).
 * En PC, cuando hay de ambos tipos (--split), el panel se ensancha y se divide
 * en dos columnas con un separador, centrado sobre el buscador. */
.tnd-suggest__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-1);
}

.tnd-suggest__col {
  min-width: 0;
}

@media (min-width: 768px) {
  .tnd-suggest--split .tnd-suggest__cols {
    grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
    column-gap: var(--s-4);
  }
  .tnd-suggest--split .tnd-suggest__col--printers {
    border-right: 1px solid var(--c-border);
    padding-right: var(--s-3);
  }
}
/* Panel mucho más ancho en PC cuando se divide en dos columnas. */
@media (min-width: 992px) {
  .tnd-suggest--split {
    width: 760px;
    left: 50%;
    right: auto;
    margin-left: -380px;
  }
}
.tnd-suggest__group {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  padding: var(--s-2) var(--s-2) var(--s-1);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
}

.tnd-suggest__group-ico {
  flex: none;
  display: inline-flex;
  color: var(--c-brand-600);
}

.tnd-suggest__group-ico svg {
  width: 0.95rem;
  height: 0.95rem;
}

.tnd-suggest__group-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tnd-suggest__count {
  flex: none;
  margin-left: auto;
  letter-spacing: 0;
  font-weight: var(--fw-bold);
  color: var(--c-text-muted);
  background: var(--c-surface-sunk);
  border-radius: var(--radius-full);
  padding: 0 var(--s-2);
}

/* Pie de la columna de productos: atajo a /buscar. */
.tnd-suggest__more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-1);
  margin-top: var(--s-1);
  padding: var(--s-2);
  border-top: 1px solid var(--c-border);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-brand-700);
  text-decoration: none;
  transition: background var(--transition-fast);
}

.tnd-suggest__more:hover {
  background: var(--c-brand-50);
}

.tnd-suggest__more-ico {
  flex: none;
  display: inline-flex;
}

.tnd-suggest__more-ico svg {
  width: 1rem;
  height: 1rem;
  transition: transform var(--transition-fast);
}

.tnd-suggest__more:hover .tnd-suggest__more-ico svg {
  transform: translateX(2px);
}

.tnd-suggest__item {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  padding: var(--s-2);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--c-text);
  transition: background var(--transition-fast);
  /* Aparición escalonada (el índice llega por --i desde el JS). */
  animation: tnd-suggest-item-in var(--transition) both;
  animation-delay: calc(var(--i, 0) * 28ms);
}

@keyframes tnd-suggest-item-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.tnd-suggest__item:hover,
.tnd-suggest__item.is-active {
  background: var(--c-brand-50);
  color: var(--c-text);
}

/* Icono de impresora (recuadro de marca) */
.tnd-suggest__ico {
  flex: none;
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  background: var(--c-brand-100);
  color: var(--c-brand-700);
}

.tnd-suggest__ico svg {
  width: 1.2rem;
  height: 1.2rem;
}

/* Miniatura de producto */
.tnd-suggest__thumb {
  flex: none;
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--c-surface-sunk);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  padding: 3px;
}

.tnd-suggest__thumb img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.tnd-suggest__noimg {
  color: var(--c-gray-300);
}

.tnd-suggest__noimg svg {
  width: 1.3rem;
  height: 1.3rem;
}

.tnd-suggest__text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: hidden;
}

/* La fila de impresora es de una sola línea (icono + texto). */
.tnd-suggest__item--printer .tnd-suggest__text {
  flex-direction: row;
  align-items: center;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.tnd-suggest__meta {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  min-width: 0;
}

.tnd-suggest__name {
  font-size: var(--fs-body-sm);
  line-height: var(--lh-snug);
  font-weight: var(--fw-medium);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tnd-suggest__chip {
  flex: none;
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  padding: 0 var(--s-2);
  border-radius: var(--radius-full);
  line-height: 1.5;
}

.tnd-suggest__chip--compatible {
  background: rgba(0, 158, 239, 0.12);
  color: var(--c-brand-700);
}

.tnd-suggest__chip--original {
  background: var(--c-gray-100);
  color: var(--c-gray-700);
}

.tnd-suggest__brand {
  font-size: var(--fs-caption);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--c-text-muted);
  font-weight: var(--fw-semibold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tnd-suggest__price {
  flex: none;
  align-self: center;
  font-weight: var(--fw-bold);
  white-space: nowrap;
  color: var(--c-ink);
}

.tnd-suggest__empty {
  padding: var(--s-3);
  color: var(--c-text-muted);
  font-size: var(--fs-body-sm);
}

/* ---- Banner de ayuda al pie del desplegable ----
 * "¿No encuentras lo que buscas? → Contáctanos". A ancho completo del panel, on-brand
 * y vistoso. Flexible: en PC va icono + texto + CTA en una fila; en móvil se envuelve
 * y el CTA pasa a su línea, ocupando todo el ancho. */
.tnd-suggest__banner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-top: var(--s-2);
  padding: var(--s-3) var(--s-4);
  border-radius: var(--radius-md);
  background: linear-gradient(120deg, var(--c-brand-600) 0%, var(--c-brand-800) 100%);
  color: var(--c-white);
  text-decoration: none;
  box-shadow: var(--shadow-e2);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.tnd-suggest__banner:hover,
.tnd-suggest__banner.is-active {
  color: var(--c-white);
  transform: translateY(-1px);
  box-shadow: var(--shadow-e3);
}

.tnd-suggest__banner-ico {
  flex: none;
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.16);
  color: var(--c-white);
}

.tnd-suggest__banner-ico svg {
  width: 1.35rem;
  height: 1.35rem;
}

.tnd-suggest__banner-text {
  flex: 1 1 12rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.tnd-suggest__banner-title {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-bold);
  line-height: var(--lh-snug);
}

.tnd-suggest__banner-sub {
  font-size: var(--fs-caption);
  line-height: var(--lh-snug);
  color: rgba(255, 255, 255, 0.82);
}

.tnd-suggest__banner-cta {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: var(--s-2) var(--s-3);
  border-radius: var(--radius-full);
  background: var(--c-white);
  color: var(--c-brand-700);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-bold);
  white-space: nowrap;
}

.tnd-suggest__banner-cta-ico {
  display: inline-flex;
}

.tnd-suggest__banner-cta-ico svg {
  width: 1rem;
  height: 1rem;
  transition: transform var(--transition-fast);
}

.tnd-suggest__banner:hover .tnd-suggest__banner-cta-ico svg {
  transform: translateX(2px);
}

/* Móvil: icono + texto siguen juntos en la 1ª línea y el CTA salta a su propia
 * línea a ancho completo, bien tappable. */
@media (max-width: 575.98px) {
  .tnd-suggest__banner-cta {
    flex-basis: 100%;
    justify-content: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tnd-suggest,
  .tnd-suggest__item {
    animation: none;
  }
  .tnd-suggest__banner {
    transition: none;
  }
}
.tnd-search__icon {
  position: absolute;
  left: 0.9rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  color: var(--c-gray-500);
  pointer-events: none;
}

.tnd-search__icon svg {
  width: 1.15rem;
  height: 1.15rem;
}

.tnd-search__input.form-control {
  height: var(--tnd-control-h);
  padding-left: 2.7rem;
  border: 1px solid var(--c-gray-300);
  border-right: 0;
  border-radius: var(--radius-full) 0 0 var(--radius-full);
  font-size: var(--fs-body);
  background: var(--c-surface);
}

.tnd-search__input.form-control:focus {
  border-color: var(--c-brand-500);
  /* Realce de foco con un punto de magenta (identidad CMYK). */
  box-shadow: 0 0 0 0.18rem rgba(0, 158, 239, 0.14), 0 0 0 0.32rem rgba(230, 20, 132, 0.1);
  z-index: 1;
}

/* Botón "Buscar": magenta CTA (más oscuro/menos potente), sin borde, texto blanco. */
.tnd-search__btn.btn {
  border-radius: 0 var(--radius-full) var(--radius-full) 0;
  padding-inline: 1.5rem;
  display: inline-flex;
  align-items: center;
  border: 0;
  color: var(--c-white);
  font-weight: var(--fw-semibold);
  background: var(--c-magenta-cta);
  transition: background var(--transition), box-shadow var(--transition);
}

.tnd-search__btn.btn:hover,
.tnd-search__btn.btn:focus-visible {
  color: var(--c-white);
  background: var(--c-magenta-cta-hover);
  box-shadow: var(--shadow-e1);
}

.tnd-search__btn.btn svg {
  width: 1.15rem;
  height: 1.15rem;
}

@media (prefers-reduced-motion: reduce) {
  .tnd-trust__item {
    animation: none;
  }
}
@media (prefers-reduced-motion: reduce) and (max-width: 767.98px) {
  .tnd-trust__item {
    opacity: 0;
  }
  .tnd-trust__item:first-child {
    opacity: 1;
  }
}
/* ---- Bottom nav móvil ---- */
.tnd-bottomnav {
  position: fixed;
  inset: auto 0 0 0;
  z-index: var(--z-header);
  display: flex;
  background: var(--c-surface);
  border-top: 1px solid var(--c-border);
  box-shadow: 0 -2px 10px rgba(11, 11, 15, 0.06);
  padding-bottom: env(safe-area-inset-bottom, 0);
}

.tnd-bottomnav__item {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0.45rem 0;
  background: none;
  border: 0;
  text-decoration: none;
  color: var(--c-text-muted);
  font-size: var(--fs-caption);
  line-height: 1;
}

.tnd-bottomnav__item svg {
  width: 1.4rem;
  height: 1.4rem;
}

.tnd-bottomnav__item.is-active,
.tnd-bottomnav__item:hover,
.tnd-bottomnav__item:focus-visible {
  color: var(--c-brand-700);
}

/* Reserva espacio bajo el contenido para que la barra no lo tape (solo móvil) */
@media (max-width: 991.98px) {
  body {
    padding-bottom: 4rem;
  }
}
/* ---- Accesos de cuenta del visitante (desktop): login fantasma + registro CTA ---- */
.tnd-auth {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  min-height: var(--tnd-control-h, 2.875rem);
  padding: 0.5rem 0.95rem;
  border-radius: var(--radius-full);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition), transform var(--transition-fast);
}

.tnd-auth__ico {
  flex: none;
  display: inline-flex;
}

.tnd-auth__ico svg {
  width: 1.1rem;
  height: 1.1rem;
}

.tnd-auth--ghost {
  background: var(--c-surface);
  border: 1px solid var(--c-gray-300);
  color: var(--c-text);
}

.tnd-auth--ghost:hover,
.tnd-auth--ghost:focus-visible {
  border-color: var(--c-brand-400);
  color: var(--c-brand-700);
  box-shadow: var(--shadow-e1);
}

.tnd-auth--primary {
  background: var(--c-brand-600);
  border: 1px solid var(--c-brand-600);
  color: var(--c-white);
  box-shadow: var(--shadow-e1);
}

.tnd-auth--primary:hover,
.tnd-auth--primary:focus-visible {
  background: var(--c-brand-700);
  border-color: var(--c-brand-700);
  color: var(--c-white);
  transform: translateY(-1px);
  box-shadow: var(--shadow-e2);
}

/* ---- Botón de carrito (pastilla de marca, sin texto "N artículos") ---- */
.tnd-cart-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  min-height: var(--tnd-control-h, 2.875rem);
  padding: 0.5rem 0.95rem;
  background: var(--c-surface);
  border: 1px solid var(--c-gray-300);
  border-radius: var(--radius-full);
  color: var(--c-text);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  line-height: 1;
  cursor: pointer;
  transition: border-color var(--transition), box-shadow var(--transition), color var(--transition);
}

.tnd-cart-btn:hover,
.tnd-cart-btn:focus-visible {
  border-color: var(--c-brand-400);
  color: var(--c-brand-700);
  box-shadow: var(--shadow-e1);
}

.tnd-cart-btn__ico {
  flex: none;
  display: inline-flex;
}

.tnd-cart-btn__ico svg {
  width: 1.3rem;
  height: 1.3rem;
}

.tnd-cart-btn__total {
  font-variant-numeric: tabular-nums;
}

.tnd-cart-btn__badge.badge {
  position: absolute;
  top: -0.35rem;
  left: -0.35rem;
  min-width: 1.15rem;
  padding: 0.15rem 0.35rem;
  background: var(--c-brand-500);
  color: var(--c-white);
  font-size: 0.7rem;
  font-weight: var(--fw-bold);
  line-height: 1;
  box-shadow: 0 0 0 2px var(--c-bg);
}

/*
 * Tonerdeluxe — Home (Fase 2).
 */
/* ---- Secciones ---- */
.tnd-section {
  /* Más aire vertical: la home respira y deja de parecer un apilado denso de bloques. */
  padding-block: clamp(3rem, 2.1rem + 3.4vw, 5.5rem);
}

.tnd-section--sunk {
  background: var(--c-surface-sunk);
}

.tnd-section__head {
  margin-bottom: var(--s-6);
}

.tnd-section__head--center {
  text-align: center;
}

.tnd-steps__lead {
  max-width: 46rem;
  margin: var(--s-2) auto 0;
  color: var(--c-gray-300);
}

.tnd-section__title {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  letter-spacing: -0.01em;
  margin: 0;
}

/* ---- Hero (buscador de impresoras a todo ancho) ---- */
.tnd-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  /* MARGEN SUPERIOR del hero (encima de "Tinta y tóner compatibles y originales").
     Juega con `padding-top` para acercarlo/alejarlo del header. (Antes era un único
     `padding-block`; lo separamos para poder ajustar solo el de arriba.) */
  padding-top: clamp(0.75rem, 0.4rem + 1.6vw, 1.75rem);
  padding-bottom: clamp(1.6rem, 1.1rem + 2.2vw, 3.25rem);
  background: radial-gradient(60% 80% at 88% -10%, rgba(0, 158, 239, 0.16), transparent 60%), radial-gradient(55% 70% at 0% 110%, rgba(230, 20, 132, 0.1), transparent 60%), radial-gradient(45% 55% at 60% 120%, rgba(255, 230, 0, 0.09), transparent 60%), linear-gradient(180deg, var(--c-brand-50), var(--c-bg) 90%);
}

/* Acento CMYK fino en el borde superior del hero: guiño de marca contenido que sustituye a los
   "orbes" difuminados (look genérico). Una sola firma de color, discreta. */
.tnd-hero::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  z-index: 1;
  background: linear-gradient(90deg, var(--c-accent-cyan) 0 25%, var(--c-accent-magenta) 25% 50%, var(--c-accent-yellow) 50% 75%, var(--c-ink) 75% 100%);
}

/* DEPRECADO: los "blobs" difuminados se retiraron del hero (señal típica de diseño genérico).
   Se conserva la clase por compatibilidad; ya no se renderiza en la home. */
.tnd-hero__blob {
  position: absolute;
  z-index: -1;
  border-radius: var(--radius-full);
  filter: blur(48px);
  opacity: 0.5;
  pointer-events: none;
}

.tnd-hero__blob--c {
  width: 26rem;
  height: 26rem;
  top: -8rem;
  right: -6rem;
  background: radial-gradient(circle, rgba(0, 158, 239, 0.45), transparent 70%);
}

.tnd-hero__blob--m {
  width: 20rem;
  height: 20rem;
  bottom: -7rem;
  left: -5rem;
  background: radial-gradient(circle, rgba(230, 20, 132, 0.3), transparent 70%);
}

.tnd-hero__blob--y {
  width: 16rem;
  height: 16rem;
  bottom: -4rem;
  left: 45%;
  background: radial-gradient(circle, rgba(255, 230, 0, 0.28), transparent 70%);
}

.tnd-hero__inner {
  position: relative;
  max-width: 74rem;
  margin-inline: auto;
  text-align: center;
}

.tnd-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-weight: var(--fw-semibold);
  color: var(--c-brand-700);
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--c-brand-100);
  padding: var(--s-1) var(--s-3);
  border-radius: var(--radius-full);
  font-size: var(--fs-body-sm);
  backdrop-filter: blur(4px);
}

.tnd-hero__eyebrow svg {
  width: 1rem;
  height: 1rem;
}

.tnd-hero__title {
  font-size: var(--fs-display);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: -0.02em;
  max-width: 70rem;
  margin: var(--s-3) auto var(--s-2);
}

.tnd-hero__hl {
  color: var(--c-brand-600);
}

.tnd-hero__sub {
  font-size: var(--fs-body-lg);
  color: var(--c-text-muted);
  max-width: 70rem;
  margin: 0 auto var(--s-6);
}

.tnd-hero__trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--s-3) var(--s-6);
  margin: 1.25rem 0 0;
  color: var(--c-text-muted);
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
}

.tnd-hero__trust li {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
}

.tnd-hero__trust svg {
  width: 1.45rem;
  height: 1.45rem;
  color: var(--c-brand-500);
}

/* Printer finder */
.tnd-finder {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-e2);
  padding: var(--s-4);
}

.tnd-finder__label {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--s-3);
}

.tnd-finder__label svg {
  width: 1.2rem;
  height: 1.2rem;
  color: var(--c-brand-600);
}

.tnd-finder__form {
  display: grid;
  grid-template-columns: 1fr 1.4fr auto;
  gap: var(--s-2);
}

.tnd-finder__form .form-select {
  height: 3rem;
}

.tnd-finder__form .btn {
  height: 3rem;
  white-space: nowrap;
}

.tnd-finder__hint {
  margin: var(--s-3) 0 0;
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

@media (max-width: 575.98px) {
  .tnd-finder__form {
    grid-template-columns: 1fr;
  }
}
/* Variante protagonista del hero: tarjeta ancha, elevada y centrada.
   Más ancha = el form cabe holgado en una sola fila → menos altura. */
.tnd-finder--hero {
  max-width: 72rem;
  margin: 0 auto;
  padding: clamp(var(--s-3), 0.6rem + 0.9vw, var(--s-4));
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-e4);
  text-align: left;
}

.tnd-finder--hero .tnd-finder__label {
  font-size: var(--fs-body-lg);
  margin-bottom: var(--s-2);
}

/* Etiqueta en línea con el form en pantallas anchas para ganar altura */
@media (min-width: 768px) {
  .tnd-finder--hero .tnd-finder__form {
    grid-template-columns: 1fr 1.7fr auto;
  }
}
.tnd-finder--hero .tnd-finder__form .form-select,
.tnd-finder--hero .tnd-finder__form .ts-wrapper,
.tnd-finder--hero .tnd-finder__form .btn {
  height: 3.5rem;
}

.tnd-finder--hero .tnd-finder__form .btn {
  padding-inline: 1.8rem;
  font-weight: var(--fw-semibold);
}

/* TomSelect (selector de modelo) reemplaza el <select>: igualar su control al resto
   para que la tarjeta no se descuadre verticalmente. */
.tnd-finder--hero .tnd-finder__form .ts-wrapper .ts-control {
  height: 3.5rem;
  min-height: 3.5rem;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
}

@media (max-width: 767.98px) {
  .tnd-finder--hero .tnd-finder__form {
    grid-template-columns: 1fr;
  }
}
/* ---- Marcas (cajas de logo uniformes) ---- */
.tnd-brands {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: var(--s-3);
}

.tnd-brandbox {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 72px;
  padding: var(--s-3) var(--s-4);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  background: var(--c-surface);
  text-decoration: none;
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.tnd-brandbox:hover {
  /* Sin "levitar": responde con borde de marca + subrayado cian (acento contenido). */
  border-color: var(--c-brand-500);
  box-shadow: inset 0 -3px 0 var(--c-brand-500);
}

.tnd-brandbox__logo {
  max-height: 30px;
  max-width: 100%;
  width: auto;
  object-fit: contain;
  opacity: 0.75;
  transition: opacity var(--transition);
}

.tnd-brandbox:hover .tnd-brandbox__logo {
  opacity: 1;
}

.tnd-brandbox__name {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-h4);
  color: var(--c-ink);
  letter-spacing: -0.01em;
}

/* ---- Categorías (tarjetas con "cover" gráfico de marca) ---- */
.tnd-cat {
  --cat-color: var(--c-brand-700);
  --cat-grad: linear-gradient(135deg, var(--c-brand-700), var(--c-brand-500));
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  background: var(--c-surface);
  text-decoration: none;
  color: var(--c-text);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.tnd-cat:hover {
  box-shadow: var(--shadow-e3);
  border-color: var(--cat-color);
  color: var(--c-text);
}

/* "Imagen" de la tarjeta: gradiente CMYK + semitono de impresión + glifo */
.tnd-cat__cover {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 9.5rem;
  overflow: hidden;
  background: radial-gradient(rgba(255, 255, 255, 0.28) 1.5px, transparent 1.6px) 0 0/14px 14px, var(--cat-grad);
}

.tnd-cat__cover::after {
  content: "";
  position: absolute;
  right: -2.5rem;
  bottom: -3.5rem;
  width: 8rem;
  height: 8rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.12);
  transition: transform var(--transition);
}

.tnd-cat:hover .tnd-cat__cover::after {
  transform: scale(1.25);
}

/* Glifo grande y protagonista, directamente sobre el cover (sin recuadro).
   Provisional: luego se sustituirá por una ilustración más visual por categoría. */
.tnd-cat__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.2));
  transition: transform var(--transition);
}

.tnd-cat:hover .tnd-cat__icon {
  transform: scale(1.06);
}

.tnd-cat__icon svg {
  width: 5rem;
  height: 5rem;
  stroke-width: 1.6;
}

.tnd-cat__body {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  padding: var(--s-4);
}

.tnd-cat__name {
  font-family: var(--font-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-h4);
}

.tnd-cat__desc {
  color: var(--c-text-muted);
  font-size: var(--fs-body-sm);
}

.tnd-cat__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  margin-top: var(--s-2);
  color: var(--cat-color);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-body-sm);
}

.tnd-cat__cta svg {
  width: 1rem;
  height: 1rem;
}

/* ---- Comparativa Originales vs Compatibles (dos tarjetas, compatible destacada) ---- */
.tnd-vs {
  display: grid;
  grid-template-columns: 1.05fr 1.2fr;
  gap: var(--s-8);
  align-items: center;
}

.tnd-vs__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  margin-bottom: var(--s-3);
  font-weight: var(--fw-semibold);
  color: var(--c-brand-700);
  background: var(--c-brand-50);
  border: 1px solid var(--c-brand-100);
  padding: var(--s-1) var(--s-3);
  border-radius: var(--radius-full);
  font-size: var(--fs-body-sm);
}

.tnd-vs__eyebrow svg {
  width: 1rem;
  height: 1rem;
}

.tnd-vs__lead {
  font-size: var(--fs-body-lg);
  color: var(--c-text-muted);
  margin: var(--s-3) 0 var(--s-4);
}

.tnd-vs__points {
  margin: 0 0 var(--s-6);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.tnd-vs__points li {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  font-weight: var(--fw-medium);
}

.tnd-vs__points svg {
  width: 1.2rem;
  height: 1.2rem;
  color: var(--c-save);
  flex: none;
}

.tnd-vs__table {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--s-3);
  align-items: stretch;
}

.tnd-vs__col {
  position: relative;
  min-width: 0;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: var(--s-4);
  background: var(--c-surface);
}

.tnd-vs__col--comp {
  padding-top: var(--s-6);
  border-color: var(--c-brand-300);
  background: var(--c-brand-50);
  box-shadow: var(--shadow-e3);
}

.tnd-vs__ribbon {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  white-space: nowrap;
  background: var(--c-brand-600);
  color: #fff;
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  padding: 0.25rem 0.7rem;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-e1);
}

.tnd-vs__ribbon svg {
  width: 0.8rem;
  height: 0.8rem;
  color: var(--c-accent-yellow);
}

.tnd-vs__tag {
  display: block;
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--c-text-muted);
  text-align: center;
  margin-bottom: var(--s-3);
}

.tnd-vs__tag--win {
  color: var(--c-brand-700);
}

.tnd-vs__rows {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.tnd-vs__rows li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2);
  padding-bottom: var(--s-2);
  border-bottom: 1px dashed var(--c-border);
}

.tnd-vs__rows li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.tnd-vs__feat {
  color: var(--c-text-muted);
  font-size: var(--fs-body-sm);
}

.tnd-vs__val {
  font-weight: var(--fw-semibold);
  text-align: right;
}

.tnd-vs__val--win {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--c-brand-700);
}

.tnd-vs__val--win svg {
  width: 1rem;
  height: 1rem;
  color: var(--c-deal);
  flex: none;
}

.tnd-vs__priceline {
  padding-top: var(--s-1);
}

.tnd-vs__price {
  font-size: var(--fs-h4);
  font-weight: var(--fw-bold);
  color: var(--c-text);
}

.tnd-vs__price--win {
  color: var(--c-deal);
}

@media (max-width: 767.98px) {
  .tnd-vs {
    grid-template-columns: 1fr;
    gap: var(--s-6);
  }
  .tnd-vs__table {
    grid-template-columns: 1fr;
    gap: var(--s-4);
  }
}
/* ---- Pasos (flujo horizontal conectado, sobre fondo oscuro) ---- */
.tnd-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-6);
  margin: 0;
  padding: 0;
}

/* Línea CMYK que conecta los nodos (solo desktop) */
.tnd-steps::before {
  content: "";
  position: absolute;
  top: 2.75rem;
  left: 16.6%;
  right: 16.6%;
  height: 2px;
  background: linear-gradient(90deg, var(--c-accent-cyan), var(--c-accent-magenta), var(--c-accent-yellow));
  opacity: 0.55;
  z-index: 0;
}

.tnd-stepc {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.tnd-stepc__node {
  position: relative;
  width: 5.5rem;
  height: 5.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.06);
  border: 2px solid rgba(255, 255, 255, 0.16);
  margin-bottom: var(--s-3);
}

.tnd-stepc__icon {
  display: inline-flex;
  color: var(--c-accent-cyan);
}

.tnd-stepc__icon svg {
  width: 2.2rem;
  height: 2.2rem;
}

.tnd-stepc__num {
  position: absolute;
  top: -0.35rem;
  right: -0.35rem;
  width: 1.85rem;
  height: 1.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background: var(--c-brand-600);
  color: #fff;
  font-weight: var(--fw-bold);
  font-size: var(--fs-body-sm);
  border: 3px solid var(--c-ink);
}

.tnd-stepc__title {
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  color: #fff;
  margin: 0 0 var(--s-1);
}

.tnd-stepc__desc {
  color: var(--c-gray-300);
  margin: 0;
  max-width: 18rem;
}

@media (max-width: 767.98px) {
  .tnd-steps {
    grid-template-columns: 1fr;
    gap: var(--s-6);
  }
  .tnd-steps::before {
    display: none;
  }
}
/* ---- USPs ---- */
.tnd-usp {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  height: 100%;
  padding: var(--s-4);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  background: var(--c-surface);
}

.tnd-usp__icon {
  flex: none;
  display: inline-flex;
  width: 2.75rem;
  height: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: var(--c-brand-50);
  color: var(--c-brand-600);
}

.tnd-usp__icon svg {
  width: 1.5rem;
  height: 1.5rem;
}

.tnd-usp__title {
  display: block;
  font-weight: var(--fw-semibold);
}

.tnd-usp__desc {
  display: block;
  color: var(--c-text-muted);
  font-size: var(--fs-body-sm);
}

/* ---- Cabecera de sección con enlace "ver más" ---- */
.tnd-section__more {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  color: var(--c-link);
  text-decoration: none;
  font-weight: var(--fw-medium);
  font-size: var(--fs-body-sm);
  white-space: nowrap;
}

.tnd-section__more svg {
  width: 1rem;
  height: 1rem;
}

.tnd-section__more:hover {
  text-decoration: underline;
}

/* ---- Opiniones de clientes (resumen + tarjetas tipo testimonio) ---- */
.tnd-reviews__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-4);
  flex-wrap: wrap;
  margin-bottom: var(--s-8);
}

.tnd-reviews__score {
  display: inline-flex;
  align-items: baseline;
  gap: 0.15rem;
  padding-right: var(--s-4);
  border-right: 1px solid var(--c-border);
}

.tnd-reviews__avg {
  font-size: var(--fs-display);
  font-weight: var(--fw-bold);
  line-height: 1;
  color: var(--c-text);
}

.tnd-reviews__of {
  font-size: var(--fs-h4);
  color: var(--c-text-muted);
  font-weight: var(--fw-semibold);
}

.tnd-reviews__meta {
  text-align: left;
}

.tnd-reviews__stars {
  display: inline-flex;
  gap: 2px;
  color: var(--c-accent-yellow);
}

.tnd-reviews__stars svg {
  width: 1.4rem;
  height: 1.4rem;
}

.tnd-reviews__count {
  margin: var(--s-1) 0 0;
  color: var(--c-text-muted);
}

.tnd-reviews__count strong {
  color: var(--c-text);
}

.tnd-reviews__verified {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--c-save);
  font-weight: var(--fw-semibold);
}

.tnd-reviews__verified svg {
  width: 1rem;
  height: 1rem;
}

.tnd-reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s-4);
}

.tnd-review {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: var(--s-4);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  background: var(--c-surface);
  box-shadow: var(--shadow-e1);
  transition: transform var(--transition), box-shadow var(--transition);
}

.tnd-review:hover {
  box-shadow: var(--shadow-e2);
  border-color: var(--c-brand-300);
}

.tnd-review__top {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  margin-bottom: var(--s-3);
}

.tnd-review__avatar {
  flex: none;
  width: 2.75rem;
  height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  /* Inicial sobria (gris neutro) en vez del círculo de color: menos aire de "testimonio de plantilla". */
  background: var(--c-surface-sunk);
  border: 1px solid var(--c-border);
  color: var(--c-text-muted);
  font-weight: var(--fw-bold);
}

.tnd-review__id {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin-right: auto;
}

.tnd-review__name {
  font-weight: var(--fw-semibold);
}

.tnd-review__purchase {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  font-size: var(--fs-caption);
  color: var(--c-save);
}

.tnd-review__purchase svg {
  width: 0.85rem;
  height: 0.85rem;
}

.tnd-review__stars {
  flex: none;
  display: inline-flex;
  gap: 1px;
  color: var(--c-accent-yellow);
}

.tnd-review__stars svg {
  width: 1rem;
  height: 1rem;
}

.tnd-review__text {
  flex: 1 1 auto;
  margin: 0;
  color: var(--c-text);
}

.tnd-review__title {
  display: block;
  font-weight: var(--fw-semibold);
  margin-bottom: var(--s-1);
}

.tnd-review__product {
  margin: var(--s-3) 0 0;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

.tnd-review__product svg {
  width: 1rem;
  height: 1rem;
  flex: none;
}

.tnd-reviews__trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--s-3) var(--s-6);
  margin-top: var(--s-6);
  color: var(--c-text-muted);
  font-size: var(--fs-body-sm);
}

.tnd-reviews__trust span {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
}

.tnd-reviews__trust svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--c-save);
  flex: none;
}

@media (max-width: 991.98px) {
  .tnd-reviews__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575.98px) {
  .tnd-reviews__head {
    gap: var(--s-3);
  }
  .tnd-reviews__grid {
    grid-template-columns: 1fr;
  }
}
/* ---- Franja CMYK decorativa ---- */
.tnd-cmyk {
  display: flex;
  height: 6px;
}

.tnd-cmyk span {
  flex: 1;
}

.tnd-cmyk span:nth-child(1) {
  background: var(--c-accent-cyan);
}

.tnd-cmyk span:nth-child(2) {
  background: var(--c-accent-magenta);
}

.tnd-cmyk span:nth-child(3) {
  background: var(--c-accent-yellow);
}

.tnd-cmyk span:nth-child(4) {
  background: var(--c-ink);
}

/* ---- Banner promocional (a todo ancho, con color) ---- */
.tnd-promo {
  background: linear-gradient(100deg, var(--c-brand-700) 0%, var(--c-brand-500) 55%, #12b3c7 100%);
  color: #fff;
}

.tnd-promo__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-6);
  padding-block: clamp(1.25rem, 1rem + 1.5vw, 2rem);
  flex-wrap: wrap;
}

.tnd-promo__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  background: rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-full);
  padding: var(--s-1) var(--s-3);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-body-sm);
}

.tnd-promo__badge svg {
  width: 1rem;
  height: 1rem;
}

.tnd-promo__title {
  font-family: var(--font-display);
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  margin: var(--s-2) 0 0;
}

.tnd-promo__title strong {
  color: var(--c-accent-yellow);
}

.tnd-promo__sub {
  margin: var(--s-1) 0 0;
  opacity: 0.92;
}

.tnd-promo__cta {
  flex: none;
  font-weight: var(--fw-semibold);
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
}

.tnd-promo__cta svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* ---- Categorías con acento CMYK (cada tarjeta fija su gradiente y su color de texto AA) ---- */
.tnd-cat--c {
  --cat-color: var(--c-brand-700);
  --cat-grad: linear-gradient(135deg, #0c6ba3, #009eef);
}

.tnd-cat--m {
  --cat-color: #b3106a;
  --cat-grad: linear-gradient(135deg, #a8106a, #e61484);
}

.tnd-cat--y {
  --cat-color: #9a7600;
  --cat-grad: linear-gradient(135deg, #b08900, #e0a800);
}

.tnd-cat--s {
  --cat-color: #0b7a43;
  --cat-grad: linear-gradient(135deg, #0b7a43, #0f9d58);
}

/* ---- Sección oscura (tinta) ---- */
.tnd-section--dark {
  background: radial-gradient(60% 100% at 100% 0%, rgba(0, 158, 239, 0.18), transparent 60%), radial-gradient(50% 100% at 0% 100%, rgba(230, 20, 132, 0.12), transparent 60%), var(--c-ink);
  color: var(--c-gray-100);
}

.tnd-section--dark .tnd-section__title {
  color: #fff;
}

/* ---- Recompra rápida (banner personal, solo clientes registrados) ---- */
.tnd-rebuy {
  /* MARGEN SUPERIOR de "Vuelve a comprar en un clic". Ajusta `padding-top` a tu gusto.
     (Separado de `padding-bottom` para poder tocar solo el de arriba.) */
  padding-top: clamp(1rem, 0.7rem + 1.4vw, 1.75rem);
  padding-bottom: clamp(1.75rem, 1.3rem + 2vw, 3rem);
  background: radial-gradient(70% 130% at 0% 0%, var(--c-brand-50), transparent 60%), var(--c-surface);
  border-bottom: 1px solid var(--c-border);
}

.tnd-rebuy__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s-3) var(--s-4);
  flex-wrap: wrap;
  margin-bottom: var(--s-6);
}

.tnd-rebuy__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  margin: 0 0 var(--s-1);
  color: var(--c-brand-700);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-body-sm);
}

.tnd-rebuy__eyebrow svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* Carril horizontal: tarjetas SIEMPRE a tamaño pequeño fijo (~6 por línea) y
   centradas cuando hay pocas; si no caben, hace scroll con snap (sin agrandarse). */
.tnd-rebuy__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 11.5rem;
  justify-content: safe center;
  gap: var(--s-3);
  overflow-x: auto;
  scroll-snap-type: x proximity;
  padding-bottom: var(--s-2);
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.tnd-rebuy__cell {
  scroll-snap-align: start;
  min-width: 0;
}

/* ---- Bloque SEO ---- */
.tnd-seo p {
  max-width: 70ch;
  color: var(--c-text-muted);
}

.tnd-seo__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-4);
  margin-top: var(--s-4);
}

.tnd-seo__links a {
  color: var(--c-link);
  text-decoration: none;
  font-size: var(--fs-body-sm);
}

.tnd-seo__links a:hover {
  text-decoration: underline;
}

/*
 * Tonerdeluxe — Página de listado de producto (PLP / categorías, Fase 3).
 * Cabecera con gancho, barra de control, grid de tarjetas, facetas (offcanvas en móvil) y bloque SEO.
 */
/* ---- Cabecera de categoría ---- */
.tnd-plp-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-4);
  padding: var(--s-6) 0 var(--s-4);
  border-bottom: 1px solid var(--c-border);
  margin-bottom: var(--s-4);
}

.tnd-plp-head__title {
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  color: var(--c-text);
  margin: 0 0 var(--s-2);
  line-height: var(--lh-tight);
}

.tnd-plp-head__value {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-1) var(--s-2);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  margin: 0;
}

.tnd-plp-head__value strong {
  color: var(--c-deal);
}

.tnd-plp-head__value svg {
  width: 1.05rem;
  height: 1.05rem;
  color: var(--c-brand-600);
}

.tnd-plp-head__sep {
  color: var(--c-gray-300);
}

.tnd-plp-head__intro {
  margin-top: var(--s-3);
  max-width: 60ch;
}

.tnd-plp-head__intro-text {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  line-height: var(--lh-relaxed);
}

.tnd-plp-head__more {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-link);
  text-decoration: none;
}

.tnd-plp-head__more:hover {
  text-decoration: underline;
}

/* Acento CMYK decorativo a la derecha de la cabecera */
.tnd-plp-head__accent {
  display: none;
  gap: 4px;
  flex-shrink: 0;
  padding-top: var(--s-1);
}

.tnd-plp-head__bar {
  width: 8px;
  height: 44px;
  border-radius: var(--radius-sm);
  display: block;
}

.tnd-plp-head__bar--c {
  background: var(--c-accent-cyan);
}

.tnd-plp-head__bar--m {
  background: var(--c-accent-magenta);
}

.tnd-plp-head__bar--y {
  background: var(--c-accent-yellow);
}

.tnd-plp-head__bar--k {
  background: var(--c-ink);
}

@media (min-width: 768px) {
  .tnd-plp-head__accent {
    display: flex;
  }
}
/* ---- Barra de control (contador + orden + filtrar) ---- */
.tnd-plp-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
  flex-wrap: wrap;
  margin-bottom: var(--s-4);
}

.tnd-plp-bar__count {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

.tnd-plp-bar__count strong {
  color: var(--c-text);
  font-weight: var(--fw-semibold);
}

.tnd-plp-bar__actions {
  display: flex;
  align-items: center;
  gap: var(--s-2);
}

.tnd-plp-bar__sort .dropdown-toggle {
  font-size: var(--fs-body-sm);
}

/* ---- Grid ---- */
.tnd-plp-grid {
  margin-bottom: var(--s-6);
}

/* ---- Paginador ---- */
.tnd-pager {
  margin-top: var(--s-8);
}

/* ---- Chips de filtros activos (sobre la rejilla de resultados de /buscar) ---- */
.tnd-activefilters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  margin-bottom: var(--s-4);
}

.tnd-activefilters__chip {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: 4px var(--s-2) 4px var(--s-3);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  color: var(--c-brand-700);
  background: var(--c-brand-50);
  border: 1px solid var(--c-brand-100);
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: background var(--transition-fast), border-color var(--transition-fast);
}

.tnd-activefilters__chip:hover {
  background: var(--c-brand-100);
  border-color: var(--c-brand-300);
  color: var(--c-brand-700);
}

.tnd-activefilters__chip svg {
  width: 0.9rem;
  height: 0.9rem;
  opacity: 0.7;
}

.tnd-activefilters__clear {
  margin-left: var(--s-1);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  text-decoration: none;
}

.tnd-activefilters__clear:hover {
  color: var(--c-link);
  text-decoration: underline;
}

/* ---- Aparición escalonada + hover reforzado de la rejilla de resultados ---- */
.tnd-results-grid .col {
  animation: tnd-card-in var(--transition-slow) both;
  animation-delay: calc(var(--i, 0) * 45ms);
}

@keyframes tnd-card-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.tnd-results-grid .tnd-card:hover {
  border-color: var(--c-brand-500);
  box-shadow: var(--shadow-e3);
  transform: translateY(-4px);
}

@media (prefers-reduced-motion: reduce) {
  .tnd-results-grid .col {
    animation: none;
  }
}
/* ---- Estado vacío ---- */
.tnd-empty__icon {
  display: inline-flex;
  color: var(--c-gray-300);
}

.tnd-empty__icon svg {
  width: 3rem;
  height: 3rem;
}

/* ---- Facetas (sidebar / offcanvas) ---- */
.tnd-filters__group {
  margin-bottom: var(--s-6);
}

.tnd-filters__title {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text);
  margin-bottom: var(--s-3);
}

.tnd-filters__field {
  margin-bottom: var(--s-3);
}

/* Inputs del grid nativo (búsqueda + marca) dentro de las facetas */
.tnd-filters__field label {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  color: var(--c-text);
}

.tnd-filters__field :is(input[type=text], select) {
  width: 100%;
  font-size: var(--fs-body-sm);
}

.tnd-filters__actions {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  margin-top: var(--s-3);
}

.tnd-filters__nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tnd-filters__nav li + li {
  border-top: 1px solid var(--c-border);
}

.tnd-filters__nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2);
  padding: var(--s-2) 0;
  color: var(--c-text);
  text-decoration: none;
  font-size: var(--fs-body-sm);
}

.tnd-filters__nav a:hover {
  color: var(--c-link);
}

.tnd-filters__nav svg {
  width: 1rem;
  height: 1rem;
  color: var(--c-gray-400);
}

.tnd-filters__up {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  margin-top: var(--s-3);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  text-decoration: none;
}

.tnd-filters__up:hover {
  color: var(--c-link);
}

/* Facetas tipo checkbox con recuento (búsqueda Meilisearch) */
.tnd-facet {
  border: 0;
  margin: 0 0 var(--s-4);
  padding: 0;
}

.tnd-facet__opt {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  padding: 4px 0;
  font-size: var(--fs-body-sm);
  color: var(--c-text);
  cursor: pointer;
}

.tnd-facet__opt input {
  margin: 0;
}

.tnd-facet__opt span:first-of-type {
  flex: 1;
}

.tnd-facet__count {
  font-size: var(--fs-caption);
  color: var(--c-text-muted);
  background: var(--c-surface-sunk);
  border-radius: var(--radius-full);
  padding: 1px 8px;
}

/* En desktop el offcanvas-lg es una columna estática y pegajosa */
@media (min-width: 992px) {
  .tnd-filters {
    position: sticky;
    top: var(--s-4);
  }
  .tnd-filters .offcanvas-body {
    padding: 0;
    overflow: visible;
  }
}
/* ---- Bloque SEO + FAQ ---- */
.tnd-plp-seo {
  margin-top: var(--s-12);
  padding-top: var(--s-8);
  border-top: 1px solid var(--c-border);
}

.tnd-plp-seo__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-8);
}

@media (min-width: 992px) {
  .tnd-plp-seo__cols {
    grid-template-columns: 1.2fr 1fr;
  }
}
.tnd-plp-seo h2 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--s-3);
}

.tnd-plp-seo__text p {
  color: var(--c-text-muted);
  line-height: var(--lh-relaxed);
}

.tnd-plp-seo__links-title {
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  margin-top: var(--s-4);
}

.tnd-plp-seo__links {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  padding: 0;
  margin: var(--s-2) 0 0;
}

.tnd-plp-seo__links a {
  display: inline-block;
  padding: var(--s-1) var(--s-3);
  background: var(--c-brand-50);
  color: var(--c-brand-700);
  border-radius: var(--radius-full);
  font-size: var(--fs-body-sm);
  text-decoration: none;
}

.tnd-plp-seo__links a:hover {
  background: var(--c-brand-100);
}

.tnd-plp-seo__faq .accordion-button {
  font-weight: var(--fw-medium);
}

.tnd-plp-seo__faq .accordion-button:not(.collapsed) {
  color: var(--c-brand-700);
  background: var(--c-brand-50);
}

.tnd-plp-seo__faq .accordion-button:focus {
  box-shadow: none;
  border-color: var(--c-brand-300);
}

/*
 * Tonerdeluxe — Ficha de producto (PDP, Fase 4).
 * Cabecera de marca, bloque estrella de compatibilidad y tira de confianza del buy box.
 */
/* ---- Cabecera del buy box ---- */
.tnd-pdp-head__meta {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  margin-bottom: var(--s-2);
}

.tnd-pdp-head__brand {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
}

.tnd-pdp-head__title {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-text);
  margin: 0 0 var(--s-2);
}

.tnd-pdp-head__ref {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  margin: 0;
}

.tnd-pdp-head__ref strong {
  color: var(--c-text);
}

.tnd-pdp-head__sep {
  color: var(--c-gray-300);
  margin: 0 var(--s-1);
}

/* ---- Bloque estrella de compatibilidad ---- */
.tnd-compat {
  border: 1px solid var(--c-border);
  border-left: 4px solid var(--c-brand-500);
  border-radius: var(--radius-md);
  background: var(--c-brand-50);
  padding: var(--s-3) var(--s-4);
  margin-bottom: var(--s-4);
}

.tnd-compat__title {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  font-weight: var(--fw-semibold);
  color: var(--c-text);
  margin-bottom: var(--s-3);
}

.tnd-compat__title svg {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--c-brand-600);
}

.tnd-compat__check {
  position: relative;
}

.tnd-compat__ico {
  position: absolute;
  left: var(--s-3);
  top: 50%;
  transform: translateY(-50%);
  color: var(--c-gray-400);
  pointer-events: none;
}

.tnd-compat__ico svg {
  width: 1.1rem;
  height: 1.1rem;
  display: block;
}

.tnd-compat__check .form-control {
  padding-left: 2.5rem;
  background: var(--c-white);
}

.tnd-compat__result {
  margin: var(--s-2) 0 0;
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  min-height: 1.2em;
}

.tnd-compat__result--ok {
  color: var(--c-save);
}

.tnd-compat__count {
  display: flex;
  align-items: center;
  gap: var(--s-1);
  margin: var(--s-3) 0 var(--s-2);
  font-size: var(--fs-body-sm);
  color: var(--c-text);
}

.tnd-compat__count svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--c-save);
}

.tnd-compat__count strong {
  color: var(--c-text);
}

.tnd-compat__list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 11rem;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.tnd-compat__item a {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: 4px 0;
  font-size: var(--fs-body-sm);
  color: var(--c-link);
  text-decoration: none;
}

.tnd-compat__item a:hover {
  text-decoration: underline;
}

.tnd-compat__item svg {
  width: 0.95rem;
  height: 0.95rem;
  color: var(--c-gray-400);
}

.tnd-compat__empty {
  margin: var(--s-2) 0 0;
  font-size: var(--fs-body-sm);
  color: var(--c-warning);
}

/* ---- Tira de confianza (USPs) bajo el CTA ---- */
.tnd-pdp-trust {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-2) var(--s-3);
  margin: var(--s-3) 0 0;
  padding: var(--s-3) 0 0;
  border-top: 1px solid var(--c-border);
}

.tnd-pdp-trust li {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

.tnd-pdp-trust svg {
  width: 1.15rem;
  height: 1.15rem;
  color: var(--c-brand-600);
  flex-shrink: 0;
}

/* ---- Pestaña de compatibilidad (lista completa) ---- */
.tnd-compat-tab__list {
  list-style: none;
  margin: 0;
  padding: 0;
  columns: 2;
  column-gap: var(--s-6);
}

@media (max-width: 575px) {
  .tnd-compat-tab__list {
    columns: 1;
  }
}
.tnd-compat-tab__list li {
  break-inside: avoid;
}

.tnd-compat-tab__list a {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: 4px 0;
  color: var(--c-link);
  text-decoration: none;
  font-size: var(--fs-body-sm);
}

.tnd-compat-tab__list a:hover {
  text-decoration: underline;
}

.tnd-compat-tab__list svg {
  width: 0.95rem;
  height: 0.95rem;
  color: var(--c-gray-400);
}

/* ---- Relacionados ---- */
.tnd-related {
  margin-top: var(--s-8);
}

.tnd-related__title {
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--s-4);
}

/* ---- FAQ de la ficha ---- */
.tnd-pdp-faq {
  margin-top: var(--s-12);
  padding-top: var(--s-8);
  border-top: 1px solid var(--c-border);
}

.tnd-pdp-faq h2 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--s-4);
}

.tnd-pdp-faq .accordion-button:not(.collapsed) {
  color: var(--c-brand-700);
  background: var(--c-brand-50);
}

.tnd-pdp-faq .accordion-button:focus {
  box-shadow: none;
  border-color: var(--c-brand-300);
}

/* ---- Galería con protagonismo reducido (en consumibles la foto es apoyo, no protagonista) ---- */
.tnd-pdp-gallery__frame {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 280px;
  padding: var(--s-3);
  background: var(--c-gray-50);
  overflow: hidden;
}

.tnd-pdp-gallery__img {
  max-width: 100%;
  max-height: 440px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* Rediseño PDP — maquetación de la ficha en ≥lg con CSS grid sobre la fila completa.
   `display: contents` en la columna izquierda (overview) eleva sus bloques (imagen, ¿vale?,
   de un vistazo, acordeón) a celdas del grid, para colocar:
     · imagen pequeña arriba-izquierda,
     · "¿Vale para tu impresora?" y "de un vistazo" debajo de la imagen,
     · buy box (precio + añadir al carrito) a la derecha, compacto → entra sin scroll,
     · acordeón de Detalles/Atributos/Compatibilidad/Opiniones a TODO EL ANCHO debajo, encima de la FAQ. */
@media (min-width: 992px) {
  .product-show .tnd-pdp-info {
    display: grid;
    grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); /* 45% galería · 55% buy box */
    column-gap: var(--s-6);
    row-gap: var(--s-4);
    align-items: start;
    margin: 0;
  }
  .product-show .tnd-pdp-info > .col-lg-7.col-xl-8 {
    display: contents;
  }
  .product-show .tnd-pdp-info > .col-lg-5.col-xl-4 { /* buy box a la derecha (55%) */
    grid-column: 2;
    grid-row: 1/3;
    width: auto;
    max-width: none;
    margin: 0; /* anular el margin-top del gutter Bootstrap (g-lg-5 ≈ 3rem) que lo bajaba */
    padding: 0;
  }
  /* Galería: llena su mitad (45%); la imagen SIEMPRE al lado de las miniaturas */
  .product-show .tnd-pdp-info .tnd-pdp-gallery {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    width: 100%; /* llenar la columna del grid (si no, se encoge a las miniaturas) */
    flex-wrap: nowrap; /* la imagen nunca cae debajo de las miniaturas */
    align-items: flex-start;
  }
  .product-show .tnd-pdp-gallery > [data-product-image] {
    display: none;
  } /* div técnico vacío */
  /* la imagen principal ocupa el espacio restante y puede encogerse (el original es 1200px) */
  .product-show .tnd-pdp-gallery > .col {
    flex: 1 1 0;
    min-width: 0;
  }
  /* "¿Vale para tu impresora?" debajo de la galería, llena su mitad */
  .product-show .tnd-pdp-info .tnd-compat {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
  }
  /* la columna derecha (buy box) pegada arriba del todo */
  .product-show .tnd-pdp-info > .col-lg-5.col-xl-4 .sticky-top {
    padding-top: 0 !important;
  }
  /* Acordeón de detalles a TODO EL ANCHO debajo, encima de la FAQ */
  .product-show .tnd-pdp-info > .col-lg-7.col-xl-8 > .accordion {
    grid-column: 1/-1;
    grid-row: 3;
    margin-top: var(--s-6);
  }
  /* Miniaturas en tira vertical compacta y desplazable a la izquierda */
  .product-show .tnd-pdp-gallery > [class*=col-sm-3] {
    flex: 0 0 auto;
    width: 84px;
    order: -1;
  }
  .product-show .tnd-pdp-gallery > [class*=col-sm-3] > .d-flex {
    max-height: 440px;
    overflow-y: auto;
    gap: var(--s-2) !important;
  }
  .product-show .tnd-pdp-gallery > [class*=col-sm-3] a {
    height: 70px;
    background: var(--c-gray-50);
    transition: outline-color 0.15s ease;
  }
  .product-show .tnd-pdp-gallery > [class*=col-sm-3] a:hover {
    outline: 2px solid var(--c-accent-magenta);
    outline-offset: -1px;
  }
}
/* Rediseno PDP - ORDEN EN MOVIL (<lg). En desktop manda el grid de arriba; en movil
   reordenamos los bloques para conversion: Titulo -> Imagen -> Precio -> Carrito ->
   Vale para tu impresora? -> Confianza -> Resenas -> info (ficha/descripcion) -> Detalles.
   Tecnica: display:contents aplana las columnas y el sticky-top para usar `order` sin
   tocar plantillas. El orden del DOM (y por tanto h1/SEO) NO cambia. */
@media (max-width: 991.98px) {
  .product-show .tnd-pdp-info {
    display: flex;
    flex-direction: column;
    --bs-gutter-x: 0;
    margin-left: 0;
    margin-right: 0;
  }
  .product-show .tnd-pdp-info > .col-12 {
    display: contents;
  }
  .product-show .tnd-pdp-info .sticky-top {
    display: contents;
  }
  /* base: lo no marcado (ficha TIPO/RENDIMIENTO, descripcion corta, SKU, promo vacia)
     cae en la zona de informacion, entre resenas y el acordeon */
  .product-show .tnd-pdp-info .sticky-top > * {
    order: 80;
  }
  .product-show .tnd-pdp-info .sticky-top > .tnd-pdp-head {
    order: 10;
  } /* Titulo */
  .product-show .tnd-pdp-info .tnd-pdp-gallery {
    order: 20;
  } /* Imagen */
  .product-show .tnd-pdp-info .sticky-top > .mb-3.pb-1 {
    order: 30;
  } /* Precio */
  .product-show .tnd-pdp-info .sticky-top > .position-relative {
    order: 40;
  } /* Carrito + unidades */
  .product-show .tnd-pdp-info .tnd-compat {
    order: 50;
  } /* Vale para tu impresora? */
  .product-show .tnd-pdp-info .sticky-top > .tnd-pdp-trust {
    order: 60;
  } /* Confianza */
  .product-show .tnd-pdp-info .sticky-top > .row.mb-2 {
    order: 65;
  } /* Resenas */
  .product-show .tnd-pdp-info .accordion {
    order: 90;
  } /* Detalles */
}
/* ---- Precio protagonista (magenta de marca) ---- */
.tnd-pdp-price {
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-accent-magenta);
}

.tnd-pdp-price__old {
  font-size: var(--fs-h4);
  color: var(--c-text-muted);
}

.tnd-pdp-price__old del {
  text-decoration-color: var(--c-text-muted);
}

.tnd-pdp-price__cpp {
  color: var(--c-text-muted);
}

/* "IVA incluido" + "€/página" en bloque pequeño, a la misma altura que el precio */
.tnd-pdp-price__meta {
  line-height: var(--lh-snug);
}

/* ---- CTA compacto: cantidad + "Añadir al carrito" en la misma línea ----
   El formulario (LiveComponent) es el contenedor flex. La cantidad queda estrecha a la
   izquierda y el botón ocupa el resto; cualquier otro bloque del formulario (errores,
   selector de variantes, "entrega más rápida") cae en su propia fila completa. */
/* Fila de compra: cuadro de cantidad + botón como HERMANOS directos en un único flex.
   Al ser hermanos en la misma fila con align-items:center, comparten línea base y altura
   de forma garantizada (no dependen de wrappers de distinta altura). */
.tnd-cta-row {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  margin: var(--s-3) 0;
}

/* Bloque de cantidad (label "Cantidad" en línea + cuadro), no crece.
   `margin: 0 !important` para vencer al `.mb-3` (margin-bottom: 1rem !important) de Bootstrap
   que añade el form theme: ese margen inferior era lo que descuadraba la altura (fila a 58px). */
.tnd-cta-row .field {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  margin: 0 !important;
  flex: 0 0 auto;
}

.tnd-cta-row .field > label {
  margin: 0;
  white-space: nowrap;
}

.tnd-cta-row .field .form-control {
  width: 4.5rem;
  flex: 0 0 auto;
}

/* Botón ocupa el resto */
.tnd-cta-row .btn {
  flex: 1 1 auto;
}

/* Bloque de cantidad reescrito (label inline + input), sin que el error lo ensanche. */
.tnd-qty-field {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  margin: 0 !important;
  flex: 0 0 auto;
}

.tnd-qty-field > label {
  margin: 0;
  white-space: nowrap;
}

.tnd-qty-field .form-control {
  width: 4.5rem;
  flex: 0 0 auto;
}

/* Aviso de stock insuficiente: chip compacto bajo la fila de compra (no rompe la ficha). */
.tnd-stock-warn {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  margin: 0 0 var(--s-3);
  padding: var(--s-2) var(--s-3);
  border-radius: var(--radius-sm);
  background: rgba(230, 20, 132, 0.08);
  border: 1px solid rgba(230, 20, 132, 0.25);
  color: var(--c-accent-magenta);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  line-height: var(--lh-snug);
}

.tnd-stock-warn__ico {
  display: inline-flex;
  flex: none;
}

.tnd-stock-warn__ico svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* Producto agotado: la caja "Sin stock" ocupa el sitio de la cantidad y comparte altura con
   el botón "¡Avísame en cuanto vuelva!" (mismo patrón de hermanos directos del flex).
   Reparto equilibrado ~40/60 (la caja ya no queda raquítica frente al botón). */
.tnd-cta-row .td-no-stock-box {
  flex: 2 1 0;
  min-width: 5.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  padding: 0.375rem 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  background: var(--bs-secondary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius, 0.375rem);
  cursor: not-allowed;
  align-self: stretch;
}

.tnd-cta-row .td-notify-btn {
  flex: 3 1 0;
}

/* Cuando el botón va dentro de un <form> (cliente con avisos ya activados → alta en un clic),
   el form ocupa la parte ancha de la fila igual que el botón suelto. */
.tnd-cta-row > form {
  flex: 3 1 0;
  display: flex;
}

.tnd-cta-row > form > .btn {
  flex: 1 1 auto;
}

/* Botón "Avísame cuando vuelva": se diferencia a propósito del azul de "Añadir al carrito"
   con un magenta de marca en degradado (aparece cuando no hay stock y el producto no es bajo
   demanda). No es scoped a .tnd-cta-row para que el botón del formulario desplegado herede el
   mismo color; el tamaño flex sí va scoped arriba. */
.td-notify-btn {
  --td-magenta-1: #e0218a;
  --td-magenta-2: #a4138c;
  background: linear-gradient(135deg, var(--td-magenta-1) 0%, var(--td-magenta-2) 100%);
  border: none;
  color: #fff;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(196, 24, 139, 0.3);
  transition: filter 0.15s ease, transform 0.05s ease, box-shadow 0.15s ease;
}

.td-notify-btn:hover,
.td-notify-btn:focus,
.td-notify-btn:active {
  color: #fff;
  filter: brightness(1.07);
  box-shadow: 0 4px 14px rgba(196, 24, 139, 0.42);
}

.td-notify-btn:active {
  transform: translateY(1px);
}

/* ---- Advertencias del producto ---- */
.tnd-pdp-warning {
  display: flex;
  gap: var(--s-2);
  align-items: flex-start;
  border: 1px solid var(--c-warning);
  border-left: 4px solid var(--c-warning);
  background: #fff8ec;
  border-radius: var(--radius-md);
  padding: var(--s-3) var(--s-4);
  margin: var(--s-3) 0;
  font-size: var(--fs-body-sm);
  color: var(--c-gray-700);
}

.tnd-pdp-warning__ico {
  flex-shrink: 0;
}

.tnd-pdp-warning__ico svg {
  width: 1.25rem;
  height: 1.25rem;
  color: var(--c-warning);
  display: block;
}

.tnd-pdp-warning__body {
  line-height: var(--lh-snug);
}

.tnd-pdp-warning__body > :last-child {
  margin-bottom: 0;
}

/* ---- Resumen "de un vistazo" (datos de usabilidad) + equivalencias ---- */
.tnd-pdp-at-glance {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: var(--s-2);
  margin: var(--s-3) 0;
}

.tnd-pdp-at-glance__item {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  padding: var(--s-2) var(--s-3);
}

.tnd-pdp-at-glance__item svg {
  width: 1.3rem;
  height: 1.3rem;
  color: var(--c-brand-600);
  flex-shrink: 0;
}

.tnd-pdp-at-glance__k {
  font-size: var(--fs-caption);
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.tnd-pdp-at-glance__v {
  font-weight: var(--fw-semibold);
  color: var(--c-text);
}

.tnd-pdp-swatch {
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  border: 1px solid var(--c-border);
  margin-right: 0.3rem;
  vertical-align: baseline;
}

.tnd-pdp-equiv {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  margin: 0 0 var(--s-3);
}

.tnd-pdp-equiv__k {
  font-weight: var(--fw-semibold);
  color: var(--c-text);
}

/* ============================================================================
   Página de búsqueda (/buscar): buscador protagonista (hero) + pistas de uso.
   El formulario reutiliza las clases .tnd-search__* / .tnd-suggest del header;
   aquí solo se le da el marco de "hero" centrado y algo más grande.
   ========================================================================= */
.tnd-search-hero {
  padding: var(--s-5);
  margin-bottom: var(--s-4);
  text-align: center;
  background: linear-gradient(120deg, var(--c-brand-50), var(--c-surface) 75%);
  border: 1px solid var(--c-brand-100);
  border-radius: var(--radius-lg);
}

.tnd-search-hero__title {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  color: var(--c-text);
  margin: 0;
}

.tnd-search-hero__lead {
  margin: var(--s-2) auto 0;
  max-width: 56ch;
  color: var(--c-text-muted);
}

/* El form del header centrado y un poco más ancho dentro del hero. */
.tnd-search-hero__form {
  margin-top: var(--s-4);
  max-width: 680px;
}

/* Variante compacta cuando ya hay resultados: sin tanto aire, para no empujar la rejilla. */
.tnd-search-hero--compact {
  text-align: left;
  padding: var(--s-4);
}

.tnd-search-hero--compact .tnd-search-hero__title {
  font-size: var(--fs-h4);
}

.tnd-search-hero--compact .tnd-search-hero__form {
  margin-top: var(--s-3);
  margin-inline: 0;
}

/* Atajos: marcas populares + buscador guiado por impresora. */
.tnd-search-hero__shortcuts {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  margin-top: var(--s-4);
}

.tnd-search-hero--compact .tnd-search-hero__shortcuts {
  justify-content: flex-start;
}

.tnd-search-hero__shortcuts-label {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

.tnd-search-hero__chip {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: 0.35rem 0.85rem;
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-brand-700);
  background: var(--c-surface);
  border: 1px solid var(--c-brand-100);
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.tnd-search-hero__chip:hover {
  background: var(--c-brand-50);
  border-color: var(--c-brand-600);
  color: var(--c-brand-700);
}

.tnd-search-hero__chip svg {
  width: 1rem;
  height: 1rem;
}

.tnd-search-hero__chip--printer {
  color: var(--c-text);
  border-style: dashed;
}

/* ---- Filtros integrados en el buscador: chips agrupados por Tipo / Marca / Color ---- */
.tnd-search-hero__filters {
  margin-top: var(--s-4);
  padding-top: var(--s-4);
  border-top: 1px solid var(--c-brand-100);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  text-align: left;
}

/* Un grupo = etiqueta + fila de chips. En PC la etiqueta va a la izquierda alineada;
   en móvil se apila encima para no comerse el ancho. */
.tnd-fgroup {
  display: grid;
  grid-template-columns: 4.25rem 1fr;
  align-items: start;
  gap: var(--s-2) var(--s-3);
}

.tnd-fgroup__label {
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-text-muted);
  padding-top: 0.4rem;
}

.tnd-fgroup__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  align-items: center;
  min-width: 0;
}

/* Chip toggle: recuento discreto, muestra de color opcional y × cuando está activo. */
.tnd-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.7rem;
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  line-height: 1.1;
  color: var(--c-text);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.tnd-chip:hover {
  border-color: var(--c-brand-400);
  color: var(--c-brand-700);
  box-shadow: var(--shadow-e1);
}

.tnd-chip__count {
  font-size: var(--fs-caption);
  color: var(--c-text-muted);
  font-weight: var(--fw-semibold);
}

.tnd-chip__x {
  display: inline-flex;
}

.tnd-chip__x svg {
  width: 0.9rem;
  height: 0.9rem;
}

.tnd-chip.is-on {
  color: #fff;
  background: var(--c-brand-600);
  border-color: var(--c-brand-600);
}

.tnd-chip.is-on:hover {
  background: var(--c-brand-700);
  color: #fff;
}

.tnd-chip.is-on .tnd-chip__count {
  color: rgba(255, 255, 255, 0.75);
}

/* Muestras de color de la faceta Color */
.tnd-chip__swatch {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.15);
  flex: 0 0 auto;
}

.tnd-swatch--black {
  background: #222;
}

.tnd-swatch--cyan {
  background: #00a3d8;
}

.tnd-swatch--magenta {
  background: #e5007e;
}

.tnd-swatch--yellow {
  background: #ffd100;
}

.tnd-swatch--color_multipack {
  background: conic-gradient(#00a3d8, #ffd100, #e5007e, #00a3d8);
}

/* Desplegable "+N más" en CSS puro (checkbox oculto) para marcas largas */
.tnd-fgroup__extra {
  display: none;
}

.tnd-fgroup__toggle:checked ~ .tnd-fgroup__extra {
  display: contents;
}

.tnd-fgroup__more {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.6rem;
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-brand-700);
  cursor: pointer;
  border-radius: var(--radius-full);
  user-select: none;
}

.tnd-fgroup__more:hover {
  background: var(--c-brand-50);
}

.tnd-fgroup__more::after {
  content: attr(data-more);
}

.tnd-fgroup__toggle:checked ~ .tnd-fgroup__more::after {
  content: attr(data-less);
}

.tnd-search-hero__clearfilters {
  align-self: start;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: var(--s-1);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  text-decoration: none;
}

.tnd-search-hero__clearfilters:hover {
  color: var(--c-link);
  text-decoration: underline;
}

.tnd-search-hero__clearfilters svg {
  width: 1rem;
  height: 1rem;
}

/* Móvil: la etiqueta del grupo se apila encima de sus chips */
@media (max-width: 575.98px) {
  .tnd-fgroup {
    grid-template-columns: 1fr;
    gap: var(--s-1);
  }
  .tnd-fgroup__label {
    padding-top: 0;
  }
}
/* Pistas de uso (estado inicial sin búsqueda). */
.tnd-search-tips {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: var(--s-3);
}

.tnd-search-tip {
  display: flex;
  align-items: flex-start;
  gap: var(--s-3);
  padding: var(--s-4);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
}

.tnd-search-tip__ico {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radius-md);
  background: var(--c-brand-50);
  color: var(--c-brand-600);
}

.tnd-search-tip__ico svg {
  width: 1.4rem;
  height: 1.4rem;
}

.tnd-search-tip__title {
  margin: 0;
  font-weight: var(--fw-semibold);
  color: var(--c-text);
}

.tnd-search-tip__text {
  margin: var(--s-1) 0 0;
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

/*
 * Tonerdeluxe — Página de consumibles compatibles por impresora (rediseño jun. 2026).
 * Cabecera contextual de la impresora + tira de confianza + selector plegable +
 * barra de filtro/orden + rejilla con la tarjeta de producto reutilizada (.tnd-card).
 */
/* ---- Migas ---- */
.tnd-compat-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  margin-bottom: var(--s-4);
}

.tnd-compat-crumbs a {
  color: var(--c-text-muted);
  text-decoration: none;
}

.tnd-compat-crumbs a:hover {
  color: var(--c-link);
  text-decoration: underline;
}

.tnd-compat-crumbs__current {
  color: var(--c-text);
  font-weight: var(--fw-medium);
}

/* ---- Cabecera contextual de la impresora ---- */
.tnd-compat-hero {
  display: flex;
  align-items: center;
  gap: var(--s-4);
  padding: var(--s-5);
  background: linear-gradient(120deg, var(--c-brand-50), var(--c-surface) 75%);
  border: 1px solid var(--c-brand-100);
  border-radius: var(--radius-lg);
  margin-bottom: var(--s-4);
}

.tnd-compat-hero__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: var(--radius-md);
  background: var(--c-surface);
  border: 1px solid var(--c-brand-100);
  color: var(--c-brand-600);
}

.tnd-compat-hero__icon svg {
  width: 1.9rem;
  height: 1.9rem;
}

/* Foto real del modelo (cuando el modelo tiene imagen cargada en el admin). */
.tnd-compat-hero__photo {
  flex: none;
  width: 5.5rem;
  height: 5.5rem;
  object-fit: contain;
  border-radius: var(--radius-md);
  background: var(--c-surface);
  border: 1px solid var(--c-brand-100);
  padding: var(--s-2);
}

.tnd-compat-hero__text {
  min-width: 0;
}

.tnd-compat-hero__brand {
  display: inline-block;
  font-size: var(--fs-caption);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: var(--fw-bold);
  color: var(--c-brand-700);
  margin-bottom: 2px;
}

.tnd-compat-hero__title {
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-text);
  margin: 0;
}

.tnd-compat-hero__title strong {
  color: var(--c-brand-700);
}

.tnd-compat-hero__count {
  margin: var(--s-2) 0 0;
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

/* Variante "intro" (sin impresora elegida): bloque vertical sin icono. */
.tnd-compat-hero--intro {
  display: block;
}

.tnd-compat-hero__lead {
  margin: var(--s-2) 0 0;
  color: var(--c-text-muted);
  max-width: 60ch;
}

/* ---- Tira de confianza (línea sobria, sin cajas) ---- */
.tnd-compat-trust {
  list-style: none;
  display: flex;
  justify-content: center; /* Añadido para centrar los elementos - Pita */
  flex-wrap: wrap;
  gap: var(--s-2) 45px; /* Ajusta el espacio entre los elementos de la lista - Originalmente era gap: var(--s-2) var(--s-5); */
  margin: 0 0 var(--s-4);
  padding: 0;
}

.tnd-compat-trust li {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fs-body-sm);
  color: var(--c-text);
}

.tnd-compat-trust svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--c-brand-600);
  flex: none;
}

/* ---- Cabecera de herramientas: "Buscar otra impresora" (izq) + orden (der) a la misma altura ---- */
.tnd-compat-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-3);
  margin-bottom: var(--s-4);
}

/* ---- Selector de impresora (cambiar / inicial) ---- */
.tnd-compat-changer {
  flex: 1 1 auto;
  min-width: 0;
}

.tnd-compat-changer > summary {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  width: fit-content;
  cursor: pointer;
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-link);
  list-style: none;
}

.tnd-compat-changer > summary::-webkit-details-marker {
  display: none;
}

.tnd-compat-changer > summary:hover {
  text-decoration: underline;
}

.tnd-compat-changer > summary svg {
  width: 1.05rem;
  height: 1.05rem;
}

.tnd-compat-changer[open] > summary {
  margin-bottom: var(--s-3);
}

.tnd-compat-finder {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: var(--s-3);
  padding: var(--s-4);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
}

.tnd-compat-hero--intro + .tnd-compat-finder {
  margin-top: var(--s-4);
}

.tnd-compat-finder__field {
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
  min-width: 12rem;
}

.tnd-compat-finder__field--grow {
  flex: 1 1 18rem;
}

.tnd-compat-finder__label {
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.tnd-compat-finder__btn {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
}

.tnd-compat-finder__btn svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* ---- Barra de filtros (tipo + color); pasan a una 2ª línea solo si no caben ---- */
.tnd-compat-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2) var(--s-3);
  margin-bottom: var(--s-4);
}

.tnd-compat-bar__sep {
  flex: none;
  align-self: stretch;
  width: 1px;
  min-height: 1.4rem;
  background: var(--c-border);
  margin: 0 var(--s-1);
}

.tnd-compat-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
}

.tnd-compat-sort {
  flex: none;
}

.tnd-compat-chip {
  display: inline-flex;
  align-items: center;
  flex: none;
  white-space: nowrap;
  gap: var(--s-2);
  padding: var(--s-1) var(--s-3);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  color: var(--c-text);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.tnd-compat-chip:hover {
  border-color: var(--c-brand-300);
  color: var(--c-text);
}

.tnd-compat-chip__count {
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  color: var(--c-text-muted);
  background: var(--c-surface-sunk);
  border-radius: var(--radius-full);
  padding: 0 var(--s-2);
}

.tnd-compat-chip.is-active {
  background: var(--c-brand-600);
  border-color: var(--c-brand-600);
  color: #fff;
}

.tnd-compat-chip.is-active .tnd-compat-chip__count {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.tnd-compat-sort .form-select {
  min-width: 12rem;
}

/* ---- Estado vacío ---- */
.tnd-compat-empty {
  text-align: center;
  padding: var(--s-8) var(--s-4);
  border: 1px dashed var(--c-border);
  border-radius: var(--radius-lg);
  margin-top: var(--s-4);
}

.tnd-compat-empty__icon {
  display: inline-flex;
  color: var(--c-gray-300);
  margin-bottom: var(--s-2);
}

.tnd-compat-empty__icon svg {
  width: 3rem;
  height: 3rem;
}

.tnd-compat-empty__title {
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  margin: 0 0 var(--s-1);
}

.tnd-compat-empty__text {
  color: var(--c-text-muted);
  margin: 0 0 var(--s-4);
}

/* ---- Impresoras de la misma familia (enlaces relacionados) ---- */
.tnd-compat-family {
  margin-top: var(--s-8);
  padding-top: var(--s-6);
  border-top: 1px solid var(--c-border);
}

.tnd-compat-family__title {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  margin: 0 0 var(--s-1);
}

.tnd-compat-family__title svg {
  width: 1.2rem;
  height: 1.2rem;
  color: var(--c-brand-600);
  flex: none;
}

.tnd-compat-family__hint {
  color: var(--c-text-muted);
  font-size: var(--fs-body-sm);
  margin: 0 0 var(--s-3);
}

.tnd-compat-family__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.tnd-compat-family__chip {
  display: inline-flex;
  padding: var(--s-1) var(--s-3);
  border-radius: var(--radius-full);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  color: var(--c-text);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.tnd-compat-family__chip:hover {
  border-color: var(--c-brand-300);
  background: var(--c-brand-50);
  color: var(--c-brand-700);
}

/* ---- Filtro por color (junto a los chips de tipo, en la misma barra) ---- */
.tnd-compat-colors {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
}

.tnd-compat-color {
  display: inline-flex;
  align-items: center;
  flex: none;
  white-space: nowrap;
  gap: var(--s-2);
  padding: var(--s-1) var(--s-3);
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-medium);
  color: var(--c-text);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-full);
  text-decoration: none;
  transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.tnd-compat-color:hover {
  border-color: var(--c-brand-300);
}

.tnd-compat-color.is-active {
  border-color: var(--c-brand-600);
  background: var(--c-brand-50);
  color: var(--c-brand-700);
}

.tnd-compat-color__dot {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.15);
  flex: none;
}

.tnd-compat-color--black .tnd-compat-color__dot {
  background: #222;
}

.tnd-compat-color--cyan .tnd-compat-color__dot {
  background: #00b3e3;
}

.tnd-compat-color--magenta .tnd-compat-color__dot {
  background: #e6007e;
}

.tnd-compat-color--yellow .tnd-compat-color__dot {
  background: #ffd400;
}

.tnd-compat-color--color_multipack .tnd-compat-color__dot {
  background: conic-gradient(#00b3e3, #e6007e, #ffd400, #222, #00b3e3);
}

/* ---- Pack ahorro destacado ---- */
.tnd-compat-pack {
  display: flex;
  align-items: center;
  gap: var(--s-4);
  padding: var(--s-3) var(--s-4);
  margin-bottom: var(--s-4);
  background: linear-gradient(120deg, var(--c-brand-50), var(--c-surface) 70%);
  border: 1px solid var(--c-brand-200);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--c-text);
  transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.tnd-compat-pack:hover {
  border-color: var(--c-brand-400);
  box-shadow: var(--shadow-e2);
  transform: translateY(-2px);
  color: var(--c-text);
}

.tnd-compat-pack__media {
  flex: none;
  width: 4.5rem;
  height: 4.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--c-surface);
  border: 1px solid var(--c-brand-100);
  border-radius: var(--radius-md);
  color: var(--c-brand-600);
  padding: var(--s-1);
}

.tnd-compat-pack__media img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}

.tnd-compat-pack__media svg {
  width: 2rem;
  height: 2rem;
}

.tnd-compat-pack__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.tnd-compat-pack__tag {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  align-self: flex-start;
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-brand-700);
}

.tnd-compat-pack__tag svg {
  width: 0.95rem;
  height: 0.95rem;
}

.tnd-compat-pack__name {
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
}

.tnd-compat-pack__aside {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  text-align: right;
}

.tnd-compat-pack__price {
  font-weight: var(--fw-bold);
  font-size: var(--fs-body-lg);
  color: var(--c-ink);
}

.tnd-compat-pack__save {
  font-size: var(--fs-caption);
  font-weight: var(--fw-bold);
  color: #0b7a44;
  background: rgba(15, 157, 88, 0.12);
  border-radius: var(--radius-full);
  padding: 1px var(--s-2);
}

.tnd-compat-pack__cta {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-brand-700);
}

@media (max-width: 575px) {
  .tnd-compat-pack {
    flex-wrap: wrap;
  }
  .tnd-compat-pack__aside {
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: var(--s-2);
  }
}
/* ---- Editorial + FAQ ---- */
.tnd-compat-content {
  margin-top: var(--s-8);
}

.tnd-compat-editorial {
  color: var(--c-text-muted);
  line-height: var(--lh-relaxed);
  max-width: 70ch;
  margin-bottom: var(--s-6);
}

.tnd-compat-editorial p {
  margin-bottom: var(--s-3);
}

.tnd-compat-faq__title {
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  margin: 0 0 var(--s-3);
}

.tnd-compat-faq .accordion-button {
  font-weight: var(--fw-medium);
}

.tnd-compat-faq .accordion-button:not(.collapsed) {
  color: var(--c-brand-700);
  background: var(--c-brand-50);
}

.tnd-compat-faq .accordion-button:focus {
  box-shadow: none;
  border-color: var(--c-brand-300);
}

/*
 * Tonerdeluxe — Blog y centro de ayuda (Fase 5): hub, tarjetas y plantilla de artículo.
 */
/* Degradados por tipo (placeholder cuando el artículo no tiene imagen) */
.tnd-article-card__media--guia,
.tnd-blog-hero.tnd-article-card__media--guia {
  --grad: linear-gradient(135deg, var(--c-brand-500), var(--c-brand-700));
}

.tnd-article-card__media--tutorial {
  --grad: linear-gradient(135deg, #0a82c7, var(--c-ink));
}

.tnd-article-card__media--comparativa {
  --grad: linear-gradient(135deg, var(--c-accent-magenta), #7a0f53);
}

.tnd-article-card__media--ayuda {
  --grad: linear-gradient(135deg, #0c8f6e, #064d3b);
}

.tnd-article-card__media--novedad {
  --grad: linear-gradient(135deg, var(--c-accent-cyan), var(--c-brand-700));
}

.tnd-blog-head h1 {
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  margin-bottom: var(--s-2);
}

.tnd-blog-head p {
  color: var(--c-text-muted);
  max-width: 60ch;
}

/* Hero destacado */
.tnd-blog-hero {
  display: grid;
  grid-template-columns: 1fr;
  border-radius: var(--radius-lg);
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  background: var(--grad, var(--c-brand-600));
  box-shadow: var(--shadow-e2);
  min-height: 16rem;
}

@media (min-width: 768px) {
  .tnd-blog-hero {
    grid-template-columns: 1.3fr 1fr;
  }
}
.tnd-blog-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  min-height: 16rem;
}

.tnd-blog-hero__body {
  padding: clamp(1.5rem, 1rem + 2vw, 3rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.tnd-blog-hero__tag {
  font-size: var(--fs-body-sm);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.9;
}

.tnd-blog-hero__title {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  margin: var(--s-2) 0;
}

.tnd-blog-hero__excerpt {
  opacity: 0.92;
}

/* Tarjeta de artículo */
.tnd-article-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--transition), transform var(--transition);
}

.tnd-article-card:hover {
  box-shadow: var(--shadow-e2);
  transform: translateY(-2px);
}

.tnd-article-card__media {
  aspect-ratio: 16/9;
  background: var(--grad, var(--c-gray-200));
  display: flex;
  align-items: center;
  justify-content: center;
}

.tnd-article-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tnd-article-card__tag {
  color: #fff;
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: var(--fs-body-sm);
}

.tnd-article-card__body {
  padding: var(--s-4);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  flex: 1;
}

.tnd-article-card__type {
  font-size: var(--fs-caption);
  color: var(--c-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.tnd-article-card__title {
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  margin: 0;
}

.tnd-article-card__excerpt {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  margin: 0;
}

.tnd-article-card__more {
  margin-top: auto;
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-link);
}

.tnd-article-card__more svg {
  width: 0.9rem;
  height: 0.9rem;
}

/* Artículo */
.tnd-article {
  max-width: 46rem;
  margin: 0 auto;
}

.tnd-article__meta {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.tnd-article__type {
  font-weight: var(--fw-semibold);
  color: var(--c-brand-700);
}

.tnd-article__title {
  font-size: var(--fs-h1);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  margin: var(--s-2) 0;
}

.tnd-article__lead {
  font-size: var(--fs-body-lg);
  color: var(--c-text-muted);
}

.tnd-article__hero {
  width: 100%;
  border-radius: var(--radius-lg);
  margin: var(--s-4) 0;
}

.tnd-article__body {
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
}

.tnd-article__body h2 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
  margin: var(--s-6) 0 var(--s-3);
}

.tnd-article__body p, .tnd-article__body ul, .tnd-article__body ol {
  margin-bottom: var(--s-4);
}

.tnd-article__body :is(ul, ol) {
  padding-left: var(--s-6);
}

.tnd-article__body li {
  margin-bottom: var(--s-1);
}

/* CTA contextual info → transaccional */
.tnd-article__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
  margin: var(--s-8) 0;
  padding: var(--s-4) var(--s-6);
  border-radius: var(--radius-md);
  background: var(--c-brand-50);
  border: 1px solid var(--c-brand-100);
}

.tnd-article__cta strong {
  display: block;
  color: var(--c-text);
}

.tnd-article__cta span {
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}

.tnd-article-related {
  margin-top: var(--s-12);
  padding-top: var(--s-8);
  border-top: 1px solid var(--c-border);
}

.tnd-article-related h2 {
  font-size: var(--fs-h3);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--s-4);
}

/*
 * Fase 6 — Área de cliente: bloque de recompra del dashboard y tarjetas de "Mis consumibles".
 * Capa ligera sobre el componente de tarjeta `.tnd-card` y las utilidades de Bootstrap.
 */
.tnd-reorder--mini .tnd-card__title {
  font-size: 0.8rem;
  line-height: 1.2;
}
.tnd-reorder--mini .tnd-card__price {
  font-size: 0.85rem;
}
.tnd-reorder--mini .tnd-card__brand,
.tnd-reorder--mini .tnd-card__rating {
  font-size: 0.7rem;
}

.tnd-reorder .tnd-card {
  flex: 1 1 auto;
}

/*
 * Tonerdeluxe — Páginas de cuenta sin sesión (login / registro).
 * Ambas comparten el pliego "prueba de color" `.tnd-reg` (bloque REGISTRO, abajo):
 * barra de calibración CMYK como columna divisoria + marcas de registro en las
 * esquinas, sobre lienzo con trama de semitono. El login añade el modificador
 * `.tnd-reg--login` (bloque LOGIN, al final). Aquí arriba queda solo la cabecera
 * del formulario (título/subtítulo), que reutilizan las dos pantallas.
 */
/* ---- Cabecera del formulario (compartida login / registro) ---- */
.tnd-authform__head {
  margin-bottom: var(--s-6);
}

.tnd-authform__title {
  font-size: var(--fs-h2);
  font-weight: var(--fw-bold);
  margin: 0;
}

.tnd-authform__sub {
  color: var(--c-text-muted);
  margin: var(--s-2) 0 0;
}

.tnd-authform__alt {
  margin: var(--s-4) 0 0;
  text-align: center;
  color: var(--c-text-muted);
}

/* ════════════════════════════════════════════════════════════════════════
 * REGISTRO / LOGIN — "Prueba de color" (jun. 2026, rediseño)
 * La tarjeta es un pliego de imprenta: barra de calibración CMYK como columna
 * central (firma) + marcas de registro en las esquinas, sobre lienzo con trama
 * de semitono. Tipos de página: Space Grotesk (titular) + Space Mono (técnico).
 * El registro usa `.tnd-reg`; el login `.tnd-reg .tnd-reg--login`.
 * ════════════════════════════════════════════════════════════════════════ */
.tnd-reg {
  /* familias propias de la página (cargadas por <link> en la plantilla) */
  --reg-display: "Space Grotesk", var(--font-sans);
  --reg-mono: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  padding: clamp(1.5rem, 4vw, 4.5rem) var(--s-4);
  /* lienzo: cian muy tenue + trama de semitono */
  background-color: #eaf3fb;
  background-image: radial-gradient(rgba(0, 158, 239, 0.11) 1.4px, transparent 1.6px);
  background-size: 17px 17px;
  background-position: -4px -4px;
}

/* ---- Pliego ---- */
.tnd-reg__sheet {
  position: relative;
  max-width: 1080px;
  margin-inline: auto;
  display: flex;
  align-items: stretch;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-e3);
  overflow: hidden;
}

/* ---- Marcas de registro (cruz + anillo) en las esquinas ---- */
.tnd-reg__mark {
  position: absolute;
  z-index: 3;
  width: 17px;
  height: 17px;
  border-radius: var(--radius-full);
  border: 1px solid rgba(11, 11, 15, 0.28);
  pointer-events: none;
}

.tnd-reg__mark::before,
.tnd-reg__mark::after {
  content: "";
  position: absolute;
  background: rgba(11, 11, 15, 0.28);
}

.tnd-reg__mark::before {
  left: 50%;
  top: -6px;
  bottom: -6px;
  width: 1px;
  transform: translateX(-0.5px);
}

.tnd-reg__mark::after {
  top: 50%;
  left: -6px;
  right: -6px;
  height: 1px;
  transform: translateY(-0.5px);
}

.tnd-reg__mark--tl {
  top: 14px;
  left: 14px;
}

.tnd-reg__mark--tr {
  top: 14px;
  right: 14px;
}

.tnd-reg__mark--bl {
  bottom: 14px;
  left: 14px;
}

.tnd-reg__mark--br {
  bottom: 14px;
  right: 14px;
}

/* ---- Relato de marca (izquierda) ---- */
.tnd-reg__rail {
  flex: 0 0 45%;
  display: flex;
  flex-direction: column;
  padding: clamp(1.75rem, 3.2vw, 3rem);
}

.tnd-reg__eyebrow {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  margin: 0 0 var(--s-4);
  font-family: var(--reg-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-gray-500);
}

.tnd-reg__dots {
  display: inline-flex;
  gap: 3px;
}

.tnd-reg__dots i {
  width: 7px;
  height: 7px;
  border-radius: var(--radius-full);
}

.tnd-reg__dots i:nth-child(1) {
  background: var(--c-accent-cyan);
}

.tnd-reg__dots i:nth-child(2) {
  background: var(--c-accent-magenta);
}

.tnd-reg__dots i:nth-child(3) {
  background: var(--c-accent-yellow);
}

.tnd-reg__dots i:nth-child(4) {
  background: var(--c-ink);
}

.tnd-reg__headline {
  margin: 0;
  font-family: var(--reg-display);
  font-weight: 700;
  font-size: clamp(2rem, 1.5rem + 2.1vw, 3rem);
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: var(--c-ink);
}

.tnd-reg__headline em {
  font-style: normal;
  color: var(--c-magenta-cta);
}

.tnd-reg__lead {
  margin: var(--s-4) 0 0;
  max-width: 34ch;
  font-size: var(--fs-body-lg);
  line-height: var(--lh-relaxed);
  color: var(--c-gray-600);
}

.tnd-reg__benefits {
  margin: var(--s-8) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
}

.tnd-reg__benefits li {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  font-size: var(--fs-body);
  color: var(--c-text);
}

.tnd-reg__benefits li strong {
  font-weight: var(--fw-semibold);
}

.tnd-reg__benefits svg {
  flex: none;
  width: 1.35rem;
  height: 1.35rem;
  padding: 0.28rem;
  border-radius: var(--radius-sm);
  background: var(--c-brand-50);
  color: var(--c-brand-700);
}

.tnd-reg__slug {
  margin: auto 0 0;
  padding-top: var(--s-8);
  font-family: var(--reg-mono);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  color: var(--c-gray-400);
}

/* ---- Barra CMYK de calibración (firma / divisoria) ---- */
.tnd-reg__bar {
  flex: 0 0 16px;
  display: flex;
  flex-direction: column;
}

.tnd-reg__seg {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tnd-reg__seg b {
  font-family: var(--reg-mono);
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1;
}

.tnd-reg__seg--c {
  background: var(--c-accent-cyan);
}

.tnd-reg__seg--m {
  background: var(--c-accent-magenta);
}

.tnd-reg__seg--y {
  background: var(--c-accent-yellow);
}

.tnd-reg__seg--k {
  background: var(--c-ink);
}

.tnd-reg__seg--c b,
.tnd-reg__seg--m b,
.tnd-reg__seg--k b {
  color: rgba(255, 255, 255, 0.92);
}

.tnd-reg__seg--y b {
  color: rgba(11, 11, 15, 0.85);
}

/* ---- Panel del formulario (derecha) ---- */
.tnd-reg__form {
  flex: 1 1 0;
  min-width: 0;
  padding: clamp(1.75rem, 3.2vw, 3rem);
}

/* Cabecera del formulario (título + enlace al otro acceso) */
.tnd-reg__form .tnd-authform__title {
  font-family: var(--reg-display);
  font-size: var(--fs-h3);
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
}

.tnd-reg__form .tnd-authform__sub {
  margin-top: var(--s-2);
}

/* Las secciones (datos / credenciales) en rejilla de 2 columnas */
.tnd-reg__form .mb-5 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--s-3) var(--s-4);
  margin-bottom: var(--s-6) !important;
}

.tnd-reg__form .mb-5 > h2 {
  grid-column: 1/-1;
  margin: var(--s-4) 0 0;
  font-family: var(--reg-mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-gray-500);
}

.tnd-reg__form .mb-5 > h2:first-child {
  margin-top: 0;
}

/* cada grupo de campo ocupa una columna; los marcados .tnd-reg__wide, las dos */
.tnd-reg__form .mb-5 > div {
  margin-bottom: 0 !important;
  min-width: 0;
}

.tnd-reg__form .tnd-reg__wide {
  grid-column: 1/-1;
}

/* Inputs más amplios y modernos, foco en cian de marca */
.tnd-reg__form .form-label {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  color: var(--c-text);
  margin-bottom: var(--s-1);
}

.tnd-reg__form .form-control,
.tnd-reg__form .form-select {
  padding: 0.7rem 0.85rem;
  border-radius: var(--radius-md);
  border-color: var(--c-border);
  background: var(--c-surface-sunk);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.tnd-reg__form .form-control:focus,
.tnd-reg__form .form-select:focus {
  background: var(--c-surface);
  border-color: var(--c-brand-500);
  box-shadow: 0 0 0 3px rgba(0, 158, 239, 0.18);
}

/* Casilla (newsletter / recordarme) */
.tnd-reg__form .form-check {
  padding-top: var(--s-1);
}

.tnd-reg__form .form-check-input:checked {
  background-color: var(--c-brand-600);
  border-color: var(--c-brand-600);
}

/* ---- CTA + nota segura ---- */
.tnd-reg__submit.btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  padding: 0.85rem 1.25rem;
  border: 0;
  border-radius: var(--radius-md);
  background: var(--c-magenta-cta);
  color: var(--c-white);
  font-size: var(--fs-body-lg);
  font-weight: var(--fw-semibold);
  transition: background var(--transition), transform var(--transition-fast), box-shadow var(--transition);
  box-shadow: 0 6px 18px rgba(204, 25, 118, 0.28);
}

.tnd-reg__submit.btn:hover,
.tnd-reg__submit.btn:focus-visible {
  background: var(--c-magenta-cta-hover);
  color: var(--c-white);
  transform: translateY(-1px);
}

.tnd-reg__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  margin: var(--s-3) 0 0;
  font-family: var(--reg-mono);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--c-gray-500);
}

.tnd-reg__secure svg {
  width: 0.95rem;
  height: 0.95rem;
  flex: none;
}

/* ════════════════ LOGIN — modificador `.tnd-reg--login` ════════════════ */
/* En el login el formulario es corto (usuario + contraseña): los campos NO van
   en rejilla de 2 columnas, sino apilados a ancho completo. */
.tnd-reg--login .tnd-reg__form .mb-5 {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  margin-bottom: var(--s-4) !important;
}

/* Pie del rail: invitación (CTA fantasma o enlace) + slug, anclados abajo */
.tnd-reg__rail-foot {
  margin-top: auto;
  padding-top: var(--s-8);
}

.tnd-reg__rail-foot .tnd-reg__slug {
  margin: var(--s-4) 0 0;
  padding-top: 0;
}

.tnd-reg__cross-q {
  display: block;
  margin-bottom: var(--s-2);
  font-size: var(--fs-body-sm);
  color: var(--c-gray-500);
}

.tnd-reg__ghost {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  padding: 0.6rem 1.1rem;
  border: 1.5px solid var(--c-magenta-cta);
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--c-magenta-cta);
  font-weight: var(--fw-semibold);
  transition: background var(--transition), color var(--transition), transform var(--transition-fast);
}

.tnd-reg__ghost:hover,
.tnd-reg__ghost:focus-visible {
  background: var(--c-magenta-cta);
  color: var(--c-white);
  transform: translateY(-1px);
}

.tnd-reg__ghost svg {
  width: 1.1rem;
  height: 1.1rem;
  flex: none;
}

/* "¿Olvidaste tu contraseña?": enlace discreto centrado bajo el botón */
.tnd-reg--login .tnd-reg__form .btn-link {
  display: inline-block;
  width: auto;
  margin: var(--s-2) auto 0;
  padding: 0;
  font-size: var(--fs-body-sm);
  color: var(--c-link);
  text-decoration: none;
}

.tnd-reg--login .tnd-reg__form .btn-link:hover {
  text-decoration: underline;
}

.tnd-reg--login .tnd-reg__form .d-grid:has(.btn-link) {
  justify-items: center;
}

/* ════════ RECUPERAR / FIJAR CONTRASEÑA — `--forgot` y `--reset` ════════ */
/* Formularios cortos: se centran verticalmente frente al rail, más alto. */
.tnd-reg--forgot .tnd-reg__form,
.tnd-reg--reset .tnd-reg__form {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Reset: las dos contraseñas, apiladas a ancho completo (más legible que en par). */
.tnd-reg--reset .tnd-reg__form .mb-5 {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  margin-bottom: var(--s-4) !important;
}

/* Pasos del proceso (secuencia real → numeración con sentido), número en mono */
.tnd-reg__steps {
  margin: var(--s-8) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}

.tnd-reg__steps li {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  font-size: var(--fs-body);
  color: var(--c-text);
}

.tnd-reg__step-n {
  flex: none;
  width: 1.9rem;
  height: 1.9rem;
  display: grid;
  place-items: center;
  border-radius: var(--radius-full);
  border: 1px solid var(--c-brand-100);
  background: var(--c-brand-50);
  color: var(--c-brand-700);
  font-family: var(--reg-mono);
  font-weight: 700;
  font-size: 0.8rem;
}

.tnd-reg--forgot .tnd-reg__cross-q a {
  font-weight: var(--fw-semibold);
}

/* ════════════════ Responsive ════════════════ */
@media (max-width: 860px) {
  .tnd-reg__sheet {
    flex-direction: column;
  }
  .tnd-reg__rail {
    flex-basis: auto;
  }
  /* la barra CMYK pasa a tira horizontal */
  .tnd-reg__bar {
    flex-basis: 12px;
    flex-direction: row;
  }
  .tnd-reg__seg b {
    display: none;
  }
  .tnd-reg__slug {
    display: none;
  }
  .tnd-reg__benefits {
    margin-top: var(--s-6);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-3) var(--s-4);
  }
  .tnd-reg__rail-foot {
    margin-top: var(--s-6);
  }
}
@media (max-width: 480px) {
  .tnd-reg__form .mb-5 {
    grid-template-columns: 1fr;
  }
  .tnd-reg__benefits {
    grid-template-columns: 1fr;
  }
}
/*
 * Tonerdeluxe — Página de Contacto.
 * Reutiliza el pliego "prueba de color" `.tnd-reg` (definido en _auth.scss): mismas
 * marcas de registro, barra de calibración CMYK y lienzo de semitono que login/registro,
 * para que Contacto se sienta de la misma familia. Aquí solo van las piezas propias:
 * el modificador `.tnd-reg--contact` (formulario corto, centrado) y la "ficha de canales"
 * del rail (`.tnd-contact__channels`), la firma de esta pantalla.
 * Depende de: _auth.scss (bloque `.tnd-reg`). Se importa DESPUÉS de 'auth' en app.scss.
 */
/* ---- Ficha de canales (rail izquierdo): etiqueta mono arriba + dato debajo ---- */
.tnd-contact__channels {
  margin: var(--s-8) 0 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}

.tnd-contact__ch {
  display: flex;
  align-items: flex-start;
  gap: var(--s-3);
}

.tnd-contact__ico {
  flex: none;
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-md);
  background: var(--c-brand-50);
  color: var(--c-brand-700);
}

.tnd-contact__ico svg {
  width: 1.25rem;
  height: 1.25rem;
}

.tnd-contact__body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.tnd-contact__k {
  font-family: var(--reg-mono);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-gray-500);
}

.tnd-contact__v {
  margin-top: 0.15rem;
  font-size: var(--fs-body);
  line-height: var(--lh-snug);
  color: var(--c-text);
  word-break: break-word;
}

.tnd-contact__v strong {
  font-weight: var(--fw-semibold);
}

a.tnd-contact__v {
  color: var(--c-magenta-cta);
  font-weight: var(--fw-semibold);
  text-decoration: none;
  transition: color var(--transition-fast);
}

a.tnd-contact__v:hover,
a.tnd-contact__v:focus-visible {
  color: var(--c-magenta-cta-hover);
  text-decoration: underline;
}

/* ---- Modificador contacto: formulario corto centrado frente al rail más alto ---- */
.tnd-reg--contact .tnd-reg__form {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* El textarea del mensaje pide aire para invitar a escribir. */
.tnd-reg--contact .tnd-reg__form textarea.form-control {
  min-height: 8.5rem;
  resize: vertical;
}

/* Separación entre los campos (email / mensaje) — el tema los envuelve en .mb-3. */
.tnd-reg--contact .tnd-reg__form .mb-3 {
  margin-bottom: var(--s-4) !important;
}

@media (max-width: 860px) {
  .tnd-contact__channels {
    margin-top: var(--s-6);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--s-4);
  }
}
@media (max-width: 480px) {
  .tnd-contact__channels {
    grid-template-columns: 1fr;
  }
}
/*
 * Checkout (capa visual + CRO sobre el one-page del Hito 14).
 * Componentes: layout OPC (tarjetas en cascada), resumen en cuadro azul, cross-sell "Completa tu
 * pedido", consentimiento WhatsApp, barra de envío gratis, sellos de confianza/pago y barra de pago
 * móvil. El layout OPC vivía inline en one_page.html.twig; se trajo aquí para mantenibilidad.
 */
/* ============================================================
   Layout One-Page (#opc-sections) — tarjetas en cascada
   ============================================================ */
#opc-sections .steps {
  display: none;
}

#opc-sections .justify-content-between > a {
  display: none;
}

#opc-sections .pe-lg-6 {
  padding-right: 0 !important;
}

[data-opc-section=address] form button[type=submit],
[data-opc-section=shipping] form button[type=submit],
[data-opc-section=payment] form button[type=submit] {
  display: none;
}

.tnd-address-continue {
  margin-top: 0.5rem;
}

[data-opc-section=address] form button[type=submit].tnd-address-continue__btn {
  display: block;
}

#opc-sections {
  line-height: 1.4;
  position: relative;
}
#opc-sections .card-body {
  padding: 1rem 1.15rem;
}
#opc-sections .mb-5 {
  margin-bottom: 0.85rem !important;
}
#opc-sections .mb-4 {
  margin-bottom: 0.7rem !important;
}
#opc-sections .mb-3 {
  margin-bottom: 0.4rem !important;
}
#opc-sections .card.bg-body-tertiary {
  margin-bottom: 0.4rem !important;
}
#opc-sections .form-group {
  margin-bottom: 0.4rem;
}
#opc-sections .form-label {
  margin-bottom: 0.2rem;
}

.opc-card {
  border: 1px solid var(--bs-border-color);
  border-radius: var(--radius-lg, 0.9rem);
  box-shadow: 0 1px 2px rgba(16, 38, 56, 0.04);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.opc-card + .opc-card {
  margin-top: 1rem;
}
.opc-card__title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 0.6rem;
  font-size: 1.1rem;
  font-weight: var(--fw-semibold, 600);
  margin: 0 0 0.65rem;
}
.opc-card__badge {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.6rem;
  font-size: 0.72rem;
  font-weight: var(--fw-semibold, 600);
  color: var(--c-brand-700, #0c6ba3);
  background: var(--c-brand-50, #e8f6fe);
  border: 1px solid var(--c-brand-100, #c9eafd);
  border-radius: 2rem;
  white-space: nowrap;
}
.opc-card__badge svg {
  width: 0.95rem;
  height: 0.95rem;
}
.opc-card__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 50%;
  flex: 0 0 auto;
  background: linear-gradient(135deg, #f3479e, var(--c-accent-magenta, #e61484));
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(230, 20, 132, 0.35);
}
.opc-card--locked {
  opacity: 0.55;
  box-shadow: none;
}
.opc-card--locked .card-body > :not(.opc-card__title):not(.opc-card__hint) {
  display: none;
}
.opc-card--locked .opc-card__num {
  background: var(--bs-secondary-bg);
  color: var(--bs-secondary-color);
  box-shadow: none;
}
.opc-card--done .opc-card__num {
  background: linear-gradient(135deg, #f3479e, var(--c-accent-magenta, #e61484));
  box-shadow: 0 2px 6px rgba(230, 20, 132, 0.35);
}
.opc-card__hint {
  color: var(--bs-secondary-color);
  margin: 0;
}

/* ============================================================
   Cajas de selección de método (envío y pago) — estilo de marca
   Sustituyen a las tarjetas Bootstrap `card bg-body-tertiary`. Tarjeta
   entera clicable; el estado seleccionado se resuelve por CSS con
   :has(input:checked), sin JS. Misma apariencia en envío y pago.
   ============================================================ */
.tnd-methods {
  display: block;
}

.tnd-method {
  border: 1.5px solid var(--bs-border-color);
  border-radius: var(--radius-md, 0.75rem);
  background: var(--bs-body-bg, #fff);
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.tnd-method + .tnd-method {
  margin-top: 0.55rem;
}
.tnd-method:hover {
  border-color: var(--c-brand-300, #58c0f7);
}
.tnd-method:has(.form-check-input:checked) {
  border-color: var(--c-brand-500, #009eef);
  background: var(--c-brand-50, #e8f6fe);
  box-shadow: inset 0 0 0 1px var(--c-brand-500, #009eef);
}
.tnd-method__inner {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  padding: 0.8rem 0.95rem;
  cursor: pointer;
}
.tnd-method__inner > .flex-grow-1 {
  min-width: 0;
}
.tnd-method .form-check-input {
  cursor: pointer;
}
.tnd-method .form-check-input:checked {
  background-color: var(--c-brand-500, #009eef);
  border-color: var(--c-brand-500, #009eef);
}
.tnd-method .form-check-label {
  font-weight: var(--fw-semibold, 600);
  cursor: pointer;
}
.tnd-method .opc-fee {
  margin-left: auto;
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--c-brand-800, #0c5681);
  white-space: nowrap;
}
.tnd-method__pay-icon {
  margin-left: auto;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.tnd-method__pay-icon .tnd-paymark__logo {
  width: auto;
  height: 1.5rem;
}
.tnd-method__pay-icon .tnd-paymark__logo--bizum {
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 0.4rem;
}
.tnd-method__pay-icon .tnd-paymark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 0.5rem;
}
.tnd-method__pay-icon .tnd-paymark svg {
  width: 1.15rem;
  height: 1.15rem;
}
.tnd-method__pay-icon .tnd-paymark--transfer {
  color: #0a82c7;
  background: var(--c-brand-50, #e8f6fe);
}
.tnd-method__pay-icon .tnd-paymark--cod {
  color: #0f9d58;
  background: rgba(15, 157, 88, 0.12);
}

/* ============================================================
   Columna derecha (#opc-aside)
   ============================================================ */
.opc-aside__sticky {
  position: sticky;
  top: 1rem;
}

#opc-aside .h2 {
  font-size: 1.2rem;
  margin-bottom: 0.75rem !important;
}
#opc-aside .table {
  margin-bottom: 0.5rem !important;
  background: transparent;
}

.opc-trust {
  line-height: 1.9;
}
.opc-trust li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

@media (max-width: 991.98px) {
  .opc-aside__sticky {
    position: static;
  }
}
/* ============================================================
   Resumen del pedido en cuadro azul (patrón de marca)
   ============================================================ */
.tnd-checkout-summary {
  border: 1px solid var(--c-brand-100, #c9eafd);
  border-radius: var(--radius-lg, 0.9rem);
  background: var(--c-brand-50, #e8f6fe);
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(12, 107, 163, 0.08);
}
.tnd-checkout-summary__head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 1.1rem;
  background: var(--c-brand-600, #0a82c7);
  color: #fff;
  font-weight: var(--fw-semibold, 600);
  font-size: 1.05rem;
}
.tnd-checkout-summary__head svg {
  width: 1.2rem;
  height: 1.2rem;
}
.tnd-checkout-summary__body {
  padding: 0.9rem 1.1rem;
}
.tnd-checkout-summary__body .table,
.tnd-checkout-summary__body .table > :not(caption) > * > * {
  background: transparent;
}
.tnd-checkout-summary__body .table tfoot td,
.tnd-checkout-summary__body tr:last-child td {
  font-weight: 700;
}

/* ============================================================
   Cross-sell "Completa tu pedido"
   ============================================================ */
.tnd-xsell {
  margin-top: 0.85rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--radius-lg, 0.9rem);
  background: var(--bs-body-bg, #fff);
}
.tnd-xsell__title {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 1rem;
  font-weight: var(--fw-semibold, 600);
  margin: 0 0 0.15rem;
}
.tnd-xsell__title svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--c-brand-600, #0a82c7);
}
.tnd-xsell__hint {
  font-size: 0.8rem;
  color: var(--bs-secondary-color);
  margin: 0 0 0.6rem;
}
.tnd-xsell__list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.tnd-xsell__item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem;
  border-radius: 0.6rem;
  transition: background 0.15s ease;
}
.tnd-xsell__item:hover {
  background: var(--c-brand-50, #e8f6fe);
}
.tnd-xsell__media {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  background: #fff;
  overflow: hidden;
}
.tnd-xsell__media img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.tnd-xsell__media svg {
  width: 1.4rem;
  height: 1.4rem;
  color: var(--bs-secondary-color);
}
.tnd-xsell__body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
.tnd-xsell__name {
  font-size: 0.82rem;
  font-weight: var(--fw-medium, 500);
  color: inherit;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tnd-xsell__name:hover {
  color: var(--c-brand-700, #0c6ba3);
}
.tnd-xsell__save {
  font-size: 0.72rem;
  color: var(--c-deal, #e61484);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}
.tnd-xsell__save svg {
  width: 0.85rem;
  height: 0.85rem;
}
.tnd-xsell__price {
  font-size: 0.9rem;
  font-weight: var(--fw-bold, 700);
  color: var(--c-brand-800, #0c5681);
}
.tnd-xsell__add {
  flex: 0 0 auto;
}
.tnd-xsell__add .btn {
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
}
.tnd-xsell__add svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* ============================================================
   Consentimiento WhatsApp (incidencias de transporte)
   ============================================================ */
.tnd-consent {
  padding: 0.55rem 0.7rem 0.55rem 2rem;
  border: 1px dashed var(--c-brand-200, #93d6fb);
  border-radius: 0.6rem;
  background: var(--c-brand-50, #e8f6fe);
}
.tnd-consent .form-check-label svg {
  width: 1rem;
  height: 1rem;
  color: #25D366;
  vertical-align: -2px;
}

/* ============================================================
   Barra "te faltan X € para el envío gratis"
   ============================================================ */
.tnd-freeship {
  margin-top: 0.75rem;
  padding: 0.6rem 0.8rem;
  border-radius: 0.6rem;
  background: var(--bs-body-bg, #fff);
  border: 1px solid var(--bs-border-color);
}
.tnd-freeship__label {
  margin: 0 0 0.4rem;
  font-size: 0.85rem;
  line-height: 1.3;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.tnd-freeship__track {
  height: 0.5rem;
  border-radius: 1rem;
  background: var(--bs-secondary-bg, #e9ecef);
  overflow: hidden;
}
.tnd-freeship__fill {
  display: block;
  height: 100%;
  border-radius: 1rem;
  background: linear-gradient(90deg, var(--bs-primary, #0a82c7), #e61484);
  transition: width 0.4s ease;
}
.tnd-freeship--done {
  border-color: rgba(230, 20, 132, 0.35);
  background: rgba(230, 20, 132, 0.08);
}
.tnd-freeship--done .tnd-freeship__fill {
  background: var(--c-accent-magenta, #e61484);
}

/* ============================================================
   Sellos de pago junto al CTA
   ============================================================ */
.tnd-paybadges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.tnd-paybadge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  background: var(--bs-body-tertiary, #f6f7f9);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.4rem;
}

/* ============================================================
   Barra de pago sticky en móvil
   ============================================================ */
.tnd-mobile-pay {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 1030;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.6rem 0.9rem calc(0.6rem + env(safe-area-inset-bottom, 0px));
  background: var(--bs-body-bg, #fff);
  border-top: 1px solid var(--bs-border-color);
  box-shadow: 0 -0.4rem 1rem rgba(0, 0, 0, 0.08);
}
.tnd-mobile-pay__total {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  white-space: nowrap;
}
.tnd-mobile-pay__total strong {
  font-size: 1.05rem;
}

@media (max-width: 991.98px) {
  #opc-aside {
    padding-bottom: 5rem;
  }
}
/* ============================================================
   Miniatura del producto en el resumen del pedido
   ============================================================ */
.tnd-summary-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.tnd-summary-item__thumb {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--c-brand-100, #c9eafd);
  border-radius: 0.5rem;
  overflow: hidden;
}
.tnd-summary-item__thumb img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.tnd-summary-item__name {
  font-size: 0.9rem;
  line-height: 1.25;
}

/* ============================================================
   Nota para el transportista (dentro del cuadro de envío)
   ============================================================ */
.tnd-transport-note {
  margin-top: 0.85rem;
}
.tnd-transport-note__counter {
  text-align: right;
}

/* ============================================================
   Banner de consentimiento WhatsApp (avisos del pedido)
   ============================================================ */
.tnd-wa {
  position: relative;
  margin-bottom: 0.85rem;
  padding: 1rem 0.9rem 0.9rem;
  border: 1px solid var(--c-brand-100, #c9eafd);
  border-radius: 0.8rem;
  background: linear-gradient(180deg, #effaf2, var(--bs-body-bg, #fff));
  text-align: center;
}
.tnd-wa__info {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--c-brand-700, #0c6ba3);
  background: transparent;
  cursor: pointer;
  transition: background 0.15s ease;
}
.tnd-wa__info svg {
  width: 1.45rem;
  height: 1.45rem;
}
.tnd-wa__info:hover {
  background: var(--c-brand-50, #e8f6fe);
}
.tnd-wa__hero {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.tnd-wa__logo {
  display: inline-flex;
  margin-bottom: 0.4rem;
}
.tnd-wa__logo svg {
  width: 3.2rem;
  height: 3.2rem;
}
.tnd-wa__title {
  font-size: 0.98rem;
  font-weight: var(--fw-bold, 700);
  line-height: 1.25;
  color: var(--c-ink, #0b0b0f);
}
.tnd-wa__text {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--bs-secondary-color);
}
.tnd-wa__optin {
  margin: 0.75rem auto 0;
  max-width: 22rem;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  text-align: left;
}
.tnd-wa__optin .form-check-input {
  margin-top: 0.15rem;
  flex: 0 0 auto;
  cursor: pointer;
}
.tnd-wa__optin .form-check-input:checked {
  background-color: #25d366;
  border-color: #25d366;
}
.tnd-wa__optin .form-check-label {
  font-size: 0.82rem;
  cursor: pointer;
}
.tnd-wa__optional {
  display: block;
  font-size: 0.74rem;
  color: var(--bs-secondary-color);
}
.tnd-wa__pop {
  position: absolute;
  top: 2.4rem;
  right: 0.5rem;
  z-index: 20;
  width: min(20rem, 100% - 1rem);
  max-height: 60vh;
  overflow-y: auto;
  padding: 0.9rem 1rem;
  text-align: left;
  background: var(--bs-body-bg, #fff);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.7rem;
  box-shadow: 0 0.6rem 1.6rem rgba(16, 38, 56, 0.18);
}
.tnd-wa__pop[hidden] {
  display: none;
}
.tnd-wa__pop-close {
  position: absolute;
  top: 0.4rem;
  right: 0.4rem;
  display: inline-flex;
  padding: 0.15rem;
  border: 0;
  background: transparent;
  color: var(--bs-secondary-color);
  cursor: pointer;
}
.tnd-wa__pop-close svg {
  width: 1.1rem;
  height: 1.1rem;
}
.tnd-wa__pop-close:hover {
  color: var(--bs-body-color);
}
.tnd-wa__pop-body {
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--bs-body-color);
}
.tnd-wa__pop-body p {
  margin: 0 0 0.4rem;
}
.tnd-wa__pop-body ul {
  margin: 0 0 0.4rem;
  padding-left: 1.1rem;
}
.tnd-wa__pop-body li {
  margin-bottom: 0.15rem;
}
.tnd-wa__h {
  font-size: 0.82rem;
  font-weight: var(--fw-bold, 700);
  margin: 0.6rem 0 0.2rem;
}
.tnd-wa__h:first-child {
  margin-top: 0;
}

/* ============================================================
   Libreta de direcciones inline (clientes registrados)
   ============================================================ */
.tnd-address-book__title {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  font-weight: var(--fw-semibold, 600);
  color: var(--c-brand-800, #0c5681);
}
.tnd-address-book__title svg {
  width: 1rem;
  height: 1rem;
}
.tnd-address-book__list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.tnd-address-book__foot {
  margin-top: 0.5rem;
}

.tnd-addr-card {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0;
  padding: 0.45rem 0.65rem;
  border: 1.5px solid var(--bs-border-color);
  border-radius: var(--radius-md, 0.75rem);
  background: var(--bs-body-bg, #fff);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.tnd-addr-card:hover {
  border-color: var(--c-brand-300, #58c0f7);
}
.tnd-addr-card:has(.tnd-addr-card__radio:checked) {
  border-color: var(--c-brand-500, #009eef);
  background: var(--c-brand-50, #e8f6fe);
  box-shadow: inset 0 0 0 1px var(--c-brand-500, #009eef);
}
.tnd-addr-card__radio {
  margin-top: 0.15rem;
  flex: 0 0 auto;
  cursor: pointer;
}
.tnd-addr-card__radio:checked {
  background-color: var(--c-brand-500, #009eef);
  border-color: var(--c-brand-500, #009eef);
}
.tnd-addr-card__main {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.tnd-addr-card__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-weight: var(--fw-semibold, 600);
  font-size: 0.85rem;
}
.tnd-addr-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.05rem 0.4rem;
  font-size: 0.68rem;
  font-weight: var(--fw-semibold, 600);
  border-radius: 2rem;
}
.tnd-addr-card__badge svg {
  width: 0.8rem;
  height: 0.8rem;
}
.tnd-addr-card__badge--ship {
  color: var(--c-brand-700, #0c6ba3);
  background: var(--c-brand-50, #e8f6fe);
  border: 1px solid var(--c-brand-100, #c9eafd);
}
.tnd-addr-card__badge--bill {
  color: var(--c-accent-magenta, #e61484);
  background: rgba(230, 20, 132, 0.08);
  border: 1px solid rgba(230, 20, 132, 0.25);
}
.tnd-addr-card__lines {
  font-size: 0.78rem;
  color: var(--bs-secondary-color);
  line-height: 1.25;
}
.tnd-addr-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 0.25rem;
}
.tnd-addr-card__action {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0;
  border: 0;
  background: none;
  font-size: 0.76rem;
  font-weight: var(--fw-medium, 500);
  color: var(--c-brand-700, #0c6ba3);
  cursor: pointer;
}
.tnd-addr-card__action svg {
  width: 0.85rem;
  height: 0.85rem;
}
.tnd-addr-card__action:hover {
  text-decoration: underline;
}
.tnd-addr-card__action.is-default {
  color: var(--c-gray-400, #99a1af);
  cursor: default;
  text-decoration: none;
}

.tnd-address-fields__savebar {
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.tnd-address-fields__savebar .alert {
  flex: 1 0 100%;
  margin-bottom: 0;
}

/* ============================================================
   Selector Ticket / Factura (#3) + revelado condicional del NIF
   ============================================================ */
.tnd-doc {
  margin: 0 0 0.85rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--c-brand-100, #c9eafd);
  border-radius: var(--radius-md, 0.75rem);
  background: var(--c-brand-50, #e8f6fe);
}
.tnd-doc__q {
  display: block;
  font-size: 0.85rem;
  font-weight: var(--fw-semibold, 600);
  color: var(--c-brand-800, #0c5681);
  margin-bottom: 0.5rem;
}
.tnd-doc__seg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}
.tnd-doc__opt {
  margin: 0;
  cursor: pointer;
}
.tnd-doc__opt input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.tnd-doc__opt-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.55rem 0.6rem;
  border: 1.5px solid var(--bs-border-color);
  border-radius: var(--radius-md, 0.75rem);
  background: var(--bs-body-bg, #fff);
  font-size: 0.85rem;
  font-weight: var(--fw-semibold, 600);
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.tnd-doc__opt-inner svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--c-brand-600, #0a82c7);
}
.tnd-doc__opt input:checked + .tnd-doc__opt-inner {
  border-color: var(--c-brand-500, #009eef);
  background: var(--c-brand-50, #e8f6fe);
  box-shadow: inset 0 0 0 1px var(--c-brand-500, #009eef);
}
.tnd-doc__opt input:focus-visible + .tnd-doc__opt-inner {
  outline: 2px solid var(--c-brand-400, #2eaef9);
  outline-offset: 2px;
}
.tnd-doc__hint {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.55rem 0 0;
  font-size: 0.8rem;
  color: var(--c-accent-magenta, #e61484);
}
.tnd-doc__hint svg {
  width: 0.95rem;
  height: 0.95rem;
  flex: 0 0 auto;
}
.tnd-doc__hint[hidden] {
  display: none;
}

[data-opc-section=address] .tnd-vat-field {
  display: none;
}

[data-opc-section=address].tnd-wants-invoice .tnd-vat-field {
  display: block;
  animation: tnd-vat-reveal 0.25s ease;
}

@keyframes tnd-vat-reveal {
  from {
    opacity: 0;
    transform: translateY(-0.35rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ============================================================
   Loader de transición (#2) — overlay con blur + barras CMYK de marca
   El controlador `opc` inyecta `.tnd-loader-overlay` sobre la columna de pasos y la del resumen
   mientras el servidor recalcula (dirección/envío/totales), y lo retira al terminar. La marca son las
   tres barras corporativas (cian/magenta/amarillo) del logo, animadas en bucle. Comunica "estoy
   trabajando" sin que la pantalla parezca colgada y sin mover el layout (overlay absoluto).
   ============================================================ */
.tnd-loader-overlay {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: clamp(2rem, 18%, 8rem);
  border-radius: var(--radius-lg, 0.9rem);
  background: rgba(255, 255, 255, 0.55);
  backdrop-filter: blur(2.5px);
  -webkit-backdrop-filter: blur(2.5px);
  animation: tnd-loader-fade 0.15s ease;
  cursor: progress;
}

@keyframes tnd-loader-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.tnd-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
  padding: 0.9rem 1.1rem;
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 0.5rem 1.5rem rgba(16, 38, 56, 0.14);
}
.tnd-loader__bars {
  display: inline-flex;
  align-items: flex-end;
  gap: 0.28rem;
  height: 1.7rem;
}
.tnd-loader__bars i {
  display: block;
  width: 0.42rem;
  height: 100%;
  border-radius: 0.12rem;
  transform-origin: bottom center;
  animation: tnd-loader-bar 1s ease-in-out infinite;
}
.tnd-loader__bars i:nth-child(1) {
  background: var(--c-brand-500, #009eef);
  animation-delay: 0s;
}
.tnd-loader__bars i:nth-child(2) {
  background: var(--c-accent-magenta, #e61484);
  animation-delay: 0.16s;
}
.tnd-loader__bars i:nth-child(3) {
  background: #ffe600;
  animation-delay: 0.32s;
}
.tnd-loader__text {
  font-size: 0.82rem;
  font-weight: var(--fw-semibold, 600);
  color: var(--c-brand-800, #0c5681);
  letter-spacing: 0.01em;
}

@keyframes tnd-loader-bar {
  0%, 100% {
    transform: scaleY(0.45);
    opacity: 0.65;
  }
  50% {
    transform: scaleY(1);
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tnd-loader__bars i {
    animation: tnd-loader-pulse 1.2s ease-in-out infinite;
  }
}
@keyframes tnd-loader-pulse {
  0%, 100% {
    opacity: 0.4;
  }
  50% {
    opacity: 1;
  }
}
.tnd-checkout-summary {
  position: relative;
}

/* ============================================================
   Acordeón de la libreta de direcciones (#3)
   Por defecto solo se ve la dirección activa + "Cambiar dirección"; al desplegar, el resto + crear.
   ============================================================ */
.tnd-address-book__change {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.5rem;
  padding: 0.4rem 0.75rem;
  width: 100%;
  justify-content: center;
  border: 1.5px dashed var(--c-brand-200, #93d6fb);
  border-radius: var(--radius-md, 0.75rem);
  background: var(--bs-body-bg, #fff);
  font-size: 0.82rem;
  font-weight: var(--fw-semibold, 600);
  color: var(--c-brand-700, #0c6ba3);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.tnd-address-book__change svg {
  width: 1rem;
  height: 1rem;
}
.tnd-address-book__change:hover {
  border-color: var(--c-brand-400, #2eaef9);
  background: var(--c-brand-50, #e8f6fe);
}

/*
 * Fase 8 — Maquetación de la guía visual viva (/styleguide). Solo afecta a esa página de
 * referencia interna; no entra en el resto de la tienda.
 */
.tnd-sg-section {
  padding-block: var(--s-6);
  border-top: 1px solid var(--c-border);
  scroll-margin-top: 5rem;
}
.tnd-sg-section:first-of-type {
  border-top: 0;
}
.tnd-sg-panel {
  padding: var(--s-4);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  background: var(--c-surface);
}
.tnd-sg-swatches {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: var(--s-3);
  margin-top: var(--s-2);
}
.tnd-sg-swatch {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--fs-caption);
}
.tnd-sg-swatch__chip {
  display: block;
  height: 3rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(0, 0, 0, 0.08);
}
.tnd-sg-swatch__name {
  font-weight: var(--fw-semibold);
}
.tnd-sg-swatch code {
  font-size: 0.68rem;
  color: var(--c-text-muted);
}
.tnd-sg-elev, .tnd-sg-radius {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6rem;
  height: 6rem;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}
.tnd-sg-radius {
  background: var(--c-brand-50);
  border-color: var(--c-brand-200);
}

/*
 * Tonerdeluxe — Footer rico de marca (Fase 2).
 */
.tnd-footer {
  background: var(--c-ink);
  color: var(--c-gray-300);
}

/* Franja de confianza superior */
.tnd-footer__trust {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.tnd-footer__trust .container {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-4) var(--s-6);
  justify-content: center;
  padding-block: var(--s-4);
}

.tnd-footer__trust span {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fs-body-sm);
  color: var(--c-gray-100);
}

.tnd-footer__trust svg {
  width: 1.1rem;
  height: 1.1rem;
  color: var(--c-accent-cyan);
}

/* Cuerpo de columnas */
.tnd-footer__main {
  padding-block: clamp(2rem, 1.5rem + 2vw, 3.5rem);
}

.tnd-footer__logo {
  width: 11rem;
  margin-bottom: var(--s-3);
}

/* El wordmark usa currentColor, pero _brand.scss fija color:var(--c-ink) en el
   propio <svg.tnd-logo>; hay que apuntar al SVG (mayor especificidad) para que
   se vea blanco sobre el fondo negro del pie. Las barras CMYK llevan fill fijo. */
.tnd-footer__logo .tnd-logo {
  color: #fff;
}

.tnd-footer__claim {
  color: var(--c-gray-400);
  font-size: var(--fs-body-sm);
  max-width: 22rem;
}

.tnd-footer__social {
  display: flex;
  gap: var(--s-2);
  margin-top: var(--s-3);
}

.tnd-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.08);
  color: var(--c-gray-100);
  transition: background var(--transition), color var(--transition);
}

.tnd-footer__social a:hover {
  background: var(--c-brand-500);
  color: #fff;
}

.tnd-footer__social svg {
  width: 1.2rem;
  height: 1.2rem;
}

.tnd-footer__title {
  font-size: var(--fs-body-sm);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff;
  margin-bottom: var(--s-3);
}

.tnd-footer__nav {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.tnd-footer__nav a {
  color: var(--c-gray-400);
  text-decoration: none;
  font-size: var(--fs-body-sm);
}

.tnd-footer__nav a:hover {
  color: #fff;
}

/* Newsletter dentro del footer oscuro */
.tnd-footer__news :is(h3, .h6) {
  color: #fff;
}

.tnd-footer__news .text-body-secondary,
.tnd-footer__news .small {
  color: var(--c-gray-400) !important;
}

/* Métodos de pago */
.tnd-footer__pay {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.tnd-footer__pay .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  padding-block: var(--s-4);
}

.tnd-footer__pay-label {
  font-size: var(--fs-body-sm);
  color: var(--c-gray-400);
  margin-right: var(--s-2);
}

.tnd-footer__pay-badge {
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  color: var(--c-gray-100);
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-sm);
  padding: 3px var(--s-2);
}

/* Copyright */
.tnd-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.tnd-footer__bottom .container {
  padding-block: var(--s-4);
  font-size: var(--fs-body-sm);
  color: var(--c-gray-500);
  text-align: center;
}

/*
 * Toast «añadido al carrito» (Tonerdeluxe). Aviso flotante y efímero que confirma el alta de
 * la línea sin sacar al cliente de la página. Lo pinta cart_toast_controller.js a partir del
 * evento sylius:cart:item-added. Construido sobre los tokens de marca; adaptable a dark mode.
 */
/* Capa flotante: abajo-derecha en escritorio, barra inferior a ancho completo en móvil.
   El viewport no intercepta clics; cada toast sí. */
.tnd-cart-toast-viewport {
  position: fixed;
  right: var(--s-4);
  bottom: var(--s-4);
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  width: min(380px, 100vw - 2 * var(--s-4));
  pointer-events: none;
}

.tnd-cart-toast {
  pointer-events: auto;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: var(--s-3);
  padding: var(--s-3) var(--s-4);
  padding-inline-end: var(--s-6); /* hueco para la X */
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-e3);
  color: var(--c-text);
  opacity: 0;
  transform: translateY(16px) scale(0.98);
  transition: opacity var(--transition), transform var(--transition);
}
.tnd-cart-toast.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.tnd-cart-toast.is-leaving {
  opacity: 0;
  transform: translateY(8px) scale(0.98);
}

/* Disco verde con el check: el lenguaje universal de «hecho». */
.tnd-cart-toast__check {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radius-full);
  background: #16a34a;
  color: var(--c-white);
  box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.14);
  /* Pequeño «pop» al aparecer, en sintonía con la entrada del toast. */
  animation: tnd-check-pop var(--transition-slow) both;
}
.tnd-cart-toast__check svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* Variante de error (no se pudo añadir): el disco pasa a rojo de alerta. */
.tnd-cart-toast--error .tnd-cart-toast__check {
  background: #dc2626;
  box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.14);
}

.tnd-cart-toast__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-1);
}

.tnd-cart-toast__title {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  font-weight: var(--fw-bold);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-snug);
}

.tnd-cart-toast__bag {
  display: inline-flex;
  color: var(--c-brand-600);
}
.tnd-cart-toast__bag svg {
  width: 1rem;
  height: 1rem;
}

.tnd-cart-toast__line {
  font-size: var(--fs-caption);
  color: var(--c-gray-600, var(--c-text));
  line-height: var(--lh-snug);
  /* Nombre largo: máximo dos líneas con elipsis. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tnd-cart-toast__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s-2);
  margin-top: var(--s-1);
}

.tnd-cart-toast__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--s-1);
  padding: var(--s-1) var(--s-3);
  border-radius: var(--radius-full);
  background: var(--c-brand-600);
  color: var(--c-white);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  text-decoration: none;
  transition: background var(--transition-fast);
}
.tnd-cart-toast__cta:hover, .tnd-cart-toast__cta:focus {
  background: var(--c-brand-700);
  color: var(--c-white);
}
.tnd-cart-toast__cta-ico {
  display: inline-flex;
  transition: transform var(--transition-fast);
}
.tnd-cart-toast__cta-ico svg {
  width: 0.9rem;
  height: 0.9rem;
}
.tnd-cart-toast__cta:hover .tnd-cart-toast__cta-ico {
  transform: translateX(2px);
}

.tnd-cart-toast__continue {
  appearance: none;
  border: 0;
  background: transparent;
  padding: var(--s-1) var(--s-2);
  color: var(--c-link);
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  cursor: pointer;
  border-radius: var(--radius-sm);
}
.tnd-cart-toast__continue:hover, .tnd-cart-toast__continue:focus {
  color: var(--c-link-hover);
  text-decoration: underline;
}

.tnd-cart-toast__close {
  position: absolute;
  top: var(--s-2);
  inset-inline-end: var(--s-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--c-gray-500, currentColor);
  cursor: pointer;
  border-radius: var(--radius-sm);
  opacity: 0.7;
  transition: opacity var(--transition-fast), background var(--transition-fast);
}
.tnd-cart-toast__close svg {
  width: 1rem;
  height: 1rem;
}
.tnd-cart-toast__close:hover, .tnd-cart-toast__close:focus {
  opacity: 1;
  background: var(--c-surface-sunk);
}

/* "Fly to cart": la imagen del producto (o una burbuja) que vuela hasta el carrito. La anima
   cart_toast_controller.js con la Web Animations API; aquí solo damos su aspecto. */
.tnd-fly {
  position: fixed;
  z-index: calc(var(--z-toast) + 1);
  border-radius: var(--radius-full);
  background-size: cover;
  background-position: center;
  background-color: var(--c-surface);
  box-shadow: var(--shadow-e3), 0 0 0 3px rgba(255, 255, 255, 0.85);
  pointer-events: none;
  will-change: transform, opacity;
}

.tnd-fly--icon {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--c-brand-600);
  color: var(--c-white);
  box-shadow: var(--shadow-e3);
}
.tnd-fly--icon svg {
  width: 58%;
  height: 58%;
}

/* Latido del contador del carrito en el header cuando se añade algo. */
.tnd-cart-bump {
  animation: tnd-cart-bump 450ms ease;
}

@keyframes tnd-cart-bump {
  0% {
    transform: scale(1);
  }
  30% {
    transform: scale(1.35);
  }
  60% {
    transform: scale(0.92);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes tnd-check-pop {
  0% {
    transform: scale(0.4);
    opacity: 0;
  }
  60% {
    transform: scale(1.12);
    opacity: 1;
  }
  100% {
    transform: scale(1);
  }
}
/* Móvil: barra inferior a ancho completo, fácil de leer y de tocar. */
@media (max-width: 575.98px) {
  .tnd-cart-toast-viewport {
    right: var(--s-3);
    left: var(--s-3);
    bottom: var(--s-3);
    width: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tnd-cart-toast {
    transition: opacity var(--transition-fast);
    transform: none !important;
  }
  .tnd-cart-toast__check {
    animation: none;
  }
  .tnd-cart-bump {
    animation: none;
  }
}
/*
 * Consentimiento de cookies (RGPD/AEPD). Usa los tokens de _tokens.scss (theme-aware).
 *
 *  · Primera capa (gate): modal centrado sobre fondo oscurecido que bloquea hasta decidir.
 *  · Segunda capa (panel): modal con consentimiento granular por categorías.
 *
 * Aceptar y Rechazar comparten tamaño, posición y peso (igualdad exigida por AEPD/CEPD):
 * Rechazar es un sólido neutro y Aceptar lleva el color de marca como acción primaria.
 */
.td-consent {
  /* --- Overlay compartido (gate y panel): centra el modal y oscurece el fondo --- */
  /* El gate (primera capa) va justo por debajo del panel y con fondo algo más denso. */
  /* --- Tarjeta modal --- */
  /* --- Distintivo (badge) del gate --- */
  /* --- Botones (gate y panel) --- */
  /* --- Pie del gate: Configurar + Política de cookies --- */
  /* --- Panel: cabecera --- */
  /* --- Switch (toggle) --- */
}
.td-consent__overlay[hidden] {
  display: none;
}
.td-consent__overlay {
  position: fixed;
  inset: 0;
  z-index: calc(var(--z-toast, 1090) + 5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--s-4);
  background: rgba(11, 11, 15, 0.55);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  animation: td-consent-fade var(--transition-fast, 150ms) ease both;
}
.td-consent__overlay--gate {
  z-index: calc(var(--z-toast, 1090) + 4);
  background: rgba(11, 11, 15, 0.62);
}
.td-consent__modal {
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  overflow-y: auto;
  background: var(--c-surface);
  color: var(--c-text);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-e4);
  padding: var(--s-6);
  animation: td-consent-pop var(--transition-fast, 150ms) ease both;
}
.td-consent__modal:focus {
  outline: none;
}
.td-consent__modal--gate {
  max-width: 460px;
  padding: var(--s-8) var(--s-6);
  text-align: center;
}
.td-consent__badge {
  width: 64px;
  height: 64px;
  margin: 0 auto var(--s-4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  line-height: 1;
  border-radius: var(--radius-full);
  background: var(--c-brand-50);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--c-brand-500) 12%, transparent);
}
.td-consent__title {
  margin: 0;
  font-size: var(--fs-h3);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
}
.td-consent__lead {
  margin: var(--s-3) 0 0;
  font-size: var(--fs-body);
  line-height: var(--lh-normal);
  color: var(--c-text);
}
.td-consent__link {
  color: var(--c-link);
  text-decoration: underline;
}
.td-consent__link:hover {
  color: var(--c-link-hover);
}
.td-consent__gate-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-top: var(--s-6);
}
.td-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  flex: 0 0 auto;
}
.td-consent__btn {
  cursor: pointer;
  border-radius: var(--radius-sm);
  padding: var(--s-3) var(--s-6);
  font-size: var(--fs-body);
  font-weight: var(--fw-semibold);
  line-height: 1.2;
  border: 1px solid transparent;
  transition: var(--transition-fast);
  /* En el gate ambos ocupan el mismo ancho: igualdad de prominencia. */
}
.td-consent__gate-actions .td-consent__btn {
  flex: 1 1 150px;
}
.td-consent__btn--neutral {
  background: color-mix(in srgb, var(--c-text) 10%, transparent);
  color: var(--c-text);
  border-color: color-mix(in srgb, var(--c-text) 24%, transparent);
}
.td-consent__btn--neutral:hover {
  background: color-mix(in srgb, var(--c-text) 16%, transparent);
}
.td-consent__btn--primary {
  background: var(--c-brand-600);
  color: var(--c-white);
  border-color: var(--c-brand-600);
}
.td-consent__btn--primary:hover {
  background: var(--c-brand-700);
  border-color: var(--c-brand-700);
}
.td-consent__btn:focus-visible {
  outline: 2px solid var(--c-focus);
  outline-offset: 2px;
}
.td-consent__gate-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  margin-top: var(--s-4);
  font-size: var(--fs-body-sm);
}
.td-consent__sep {
  color: var(--c-text-muted);
}
.td-consent__linkbtn {
  cursor: pointer;
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  color: var(--c-link);
  text-decoration: underline;
}
.td-consent__linkbtn:hover {
  color: var(--c-link-hover);
}
.td-consent__linkbtn:focus-visible {
  outline: 2px solid var(--c-focus);
  outline-offset: 2px;
  border-radius: 2px;
}
.td-consent__reassure {
  margin: var(--s-4) 0 0;
  font-size: var(--fs-caption);
  color: var(--c-text-muted);
}
.td-consent__modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-4);
  margin-bottom: var(--s-2);
}
.td-consent__close {
  cursor: pointer;
  border: 0;
  background: transparent;
  color: var(--c-text-muted);
  padding: var(--s-1);
  line-height: 0;
}
.td-consent__close:hover {
  color: var(--c-text);
}
.td-consent__close:focus-visible {
  outline: 2px solid var(--c-focus);
  outline-offset: 2px;
  border-radius: 4px;
}
.td-consent__intro {
  margin: 0 0 var(--s-4);
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}
.td-consent__cat {
  padding: var(--s-3) 0;
  border-top: 1px solid var(--c-border);
}
.td-consent__cat-head {
  display: flex;
  align-items: center;
  gap: var(--s-3);
}
.td-consent__cat-title {
  font-weight: var(--fw-semibold);
}
.td-consent__always {
  margin-left: auto;
  font-size: var(--fs-caption);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  color: var(--c-save);
}
.td-consent__cat-desc {
  margin: var(--s-2) 0 0;
  font-size: var(--fs-body-sm);
  color: var(--c-text-muted);
}
.td-consent__modal-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-3);
  margin-top: var(--s-4);
  padding-top: var(--s-4);
  border-top: 1px solid var(--c-border);
}
.td-consent__switch {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  width: 42px;
  height: 24px;
  cursor: pointer;
}
.td-consent__switch input {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
}
.td-consent__slider {
  position: absolute;
  inset: 0;
  background: var(--c-gray-300);
  border-radius: var(--radius-full);
  transition: var(--transition-fast);
}
.td-consent__slider::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 3px;
  width: 18px;
  height: 18px;
  background: var(--c-white);
  border-radius: 50%;
  transition: var(--transition-fast);
}
.td-consent__switch input:checked + .td-consent__slider {
  background: var(--c-brand-600);
}
.td-consent__switch input:checked + .td-consent__slider::before {
  transform: translateX(18px);
}
.td-consent__switch input:focus-visible + .td-consent__slider {
  outline: 2px solid var(--c-focus);
  outline-offset: 2px;
}

/* Bloqueo del scroll del fondo mientras el modal está abierto. */
.td-consent-lock {
  overflow: hidden;
}

@keyframes td-consent-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes td-consent-pop {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .td-consent__overlay,
  .td-consent__modal {
    animation: none;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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UjtBbUJwbU9JO0VBQ0U7RUFDQTtBbkJzbU9OO0FtQmptT0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkJtbU9KO0FtQmhtT0U7RUFDRTtBbkJrbU9KO0FtQi9sT0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkJpbU9KO0FtQi9sT0k7RUFDRTtBbkJpbU9OO0FtQjlsT0k7RUFDRTtFQUNBO0VBQ0E7QW5CZ21PTjtBbUI1bE9FO0VBQ0U7RUFDQTtFQUNBO0FuQjhsT0o7QW1CMWxPRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QW5CNGxPSjtBbUJ6bE9FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FuQjJsT0o7QW1CemxPSTtFQUNFO0FuQjJsT047QW1CeGxPSTtFQUNFO0VBQ0E7RUFDQTtBbkIwbE9OO0FtQnRsT0U7RUFDRTtFQUNBO0VBQ0E7QW5Cd2xPSjtBbUJybE9FO0VBQ0U7RUFDQTtBbkJ1bE9KO0FtQnBsT0U7RUFDRTtFQUNBO0VBQ0E7QW5Cc2xPSjtBbUJubE9FO0VBQ0U7QW5CcWxPSjtBbUJsbE9FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkJvbE9KO0FtQmpsT0U7RUFDRTtFQUNBO0VBQ0E7QW5CbWxPSjtBbUJobE9FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkJrbE9KO0FtQjlrT0U7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QW5CZ2xPSjtBbUI5a09JO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QW5CZ2xPTjtBbUI1a09FO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBbkI4a09KO0FtQjVrT0k7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QW5COGtPTjtBbUIxa09FO0VBQ0U7QW5CNGtPSjtBbUIxa09JO0VBQ0U7QW5CNGtPTjtBbUJ4a09FO0VBQ0U7RUFDQTtBbkIwa09KOztBbUJ0a09BO0FBQ0E7RUFDRTtBbkJ5a09GOztBbUJ0a09BO0VBQ0U7SUFBTztFbkIwa09QO0VtQnprT0E7SUFBSztFbkI0a09MO0FBQ0Y7QW1CMWtPQTtFQUNFO0lBQU87SUFBWTtFbkI4a09uQjtFbUI3a09BO0lBQUs7SUFBWTtFbkJpbE9qQjtBQUNGO0FtQi9rT0E7RUFDRTs7SUFFRTtFbkJpbE9GO0FBQ0YsQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvc2hvcC9zY3NzL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vdmVuZG9yL3N5bGl1cy9tb2xsaWUtcGx1Z2luL2Fzc2V0cy9zaG9wL3Njc3MvbWFpbi5zY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvc2hvcC9zY3NzL2NoZWNrb3V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3RvbS1zZWxlY3QvZGlzdC9jc3MvdG9tLXNlbGVjdC5kZWZhdWx0LmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQHN5bWZvbnkvdXgtbGl2ZS1jb21wb25lbnQvZGlzdC9saXZlLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3RvbS1zZWxlY3QvZGlzdC9jc3MvdG9tLXNlbGVjdC5ib290c3RyYXA1LmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvYXBwLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nob3Avc3R5bGVzL190b2tlbnMuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2JyYW5kLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nob3Avc3R5bGVzL19jb21wb25lbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nob3Avc3R5bGVzL19hZGRyZXNzX2Zvcm0uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2hlYWRlci5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zaG9wL3N0eWxlcy9faG9tZS5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zaG9wL3N0eWxlcy9fY2F0ZWdvcnkuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX3Byb2R1Y3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX3ByaW50ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2Jsb2cuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2FjY291bnQuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2F1dGguc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2NvbnRhY3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2NoZWNrb3V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nob3Avc3R5bGVzL19zdHlsZWd1aWRlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nob3Avc3R5bGVzL19mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2NhcnRfdG9hc3Quc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc2hvcC9zdHlsZXMvX2NvbnNlbnQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIuZm9ybS1maWVsZHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC1nYXA6IDIwcHg7XG59XG5cbi5tb2xsaWUtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGlzcGxheS1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xufVxuXG4ubGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmZvcm0tZXJyb3IsXG4uZmllbGQtZXJyb3Ige1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGNvbG9yOiAjZjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubW9sbGllLWNvbXBvbmVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIGNvbG9yOiAjMjIyO1xuXG4gICAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSxcbiAgICAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcblxuICAgIHRyYW5zaXRpb246IGFsbCAwLjA1cyBlYXNlO1xufVxuXG4ubW9sbGllLWNvbXBvbmVudC5oYXMtZm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzA3ZjtcbiAgICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwcHggMnB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpLFxuICAgIDBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4ubW9sbGllLWNvbXBvbmVudC5pcy1pbnZhbGlkIHtcbiAgICBib3JkZXItY29sb3I6ICNmMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjBmMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDM1MHB4KSB7XG4gICAgLmZvcm0tZmllbGRzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIH1cblxuICAgIC5mb3JtLWdyb3VwLS1jYXJkLW51bWJlcixcbiAgICAuZm9ybS1ncm91cC0tY2FyZC1uYW1lLFxuICAgIC5mb3JtLWdyb3VwLS1zYXZlLWNyZWRpdC1jYXJkLFxuICAgIC5mb3JtLWdyb3VwLS1mb3JtLWVycm9ye1xuICAgICAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICAgIH1cbn1cblxuLm9ubGluZS1wYXltZW50X19pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm9ubGluZS1wYXltZW50X19sYWJlbCB7XG4gICAgZGlzcGxheTogZmxleCFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZWRlZGU7XG4gICAgcGFkZGluZzogMXJlbSFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9faXRlbSB7XG4gICAgbWluLXdpZHRoOiAyNSU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAxcmVtO1xufVxuXG4ub25saW5lLXBheW1lbnRfX2lucHV0OmNoZWNrZWR+Lm9ubGluZS1wYXltZW50X19sYWJlbCB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMjJCOTlBO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjMjJCOTlBIGluc2V0O1xufVxuXG4ub25saW5lLXBheW1lbnRfX2ltYWdlIHtcbiAgICB3aWR0aDogNTBweDtcbn1cblxuLm9ubGluZS1wYXltZW50X19jcmVkaXQtY2FyZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm9ubGluZS1wYXltZW50X19pdGVtLS1hY3RpdmUub25saW5lLXBheW1lbnRfX2l0ZW0tLWNyZWRpdGNhcmQge1xuICAgIHdpZHRoOiAxMDAlXG59XG5cbi5vbmxpbmUtcGF5bWVudF9faXRlbS0tYWN0aXZlIC5vbmxpbmUtcGF5bWVudF9fY3JlZGl0LWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ub25saW5lLW9ubGluZS1wYXltZW50X19jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9fY3JlZGl0LWNhcmQge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZGFcbn1cblxuI2FwcGxlcGF5IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jbW9sbGllX2FwcGxlcGF5X2J1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuQHN1cHBvcnRzICgtd2Via2l0LWFwcGVhcmFuY2U6IC1hcHBsZS1wYXktYnV0dG9uKSB7XG4gICAgLmFwcGxlLXBheS1idXR0b24td2l0aC10ZXh0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDE5cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IC1hcHBsZS1wYXktYnV0dG9uO1xuICAgICAgICAtYXBwbGUtcGF5LWJ1dHRvbi10eXBlOiBidXk7XG4gICAgfVxuICAgIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCA+ICoge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQHN1cHBvcnRzIG5vdCAoLXdlYmtpdC1hcHBlYXJhbmNlOiAtYXBwbGUtcGF5LWJ1dHRvbikge1xuICAgIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCB7XG4gICAgICAgIC0tYXBwbGUtcGF5LXNjYWxlOiAxOyAvKiAoaGVpZ2h0IC8gMzIpICovXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzJweDtcbiAgICAgICAgbWF4LWhlaWdodDogNjRweDtcbiAgICB9XG4gICAgLmFwcGxlLXBheS1idXR0b24td2l0aC10ZXh0LmFwcGxlLXBheS1idXR0b24tYmxhY2std2l0aC10ZXh0ID4gLmxvZ28ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LW5hbWVkLWltYWdlKGFwcGxlLXBheS1sb2dvLXdoaXRlKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgfVxuICAgIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dC5hcHBsZS1wYXktYnV0dG9uLXdoaXRlLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1uYW1lZC1pbWFnZShhcHBsZS1wYXktbG9nby1ibGFjayk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQuYXBwbGUtcGF5LWJ1dHRvbi13aGl0ZS13aXRoLWxpbmUtd2l0aC10ZXh0ID4gLmxvZ28ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LW5hbWVkLWltYWdlKGFwcGxlLXBheS1sb2dvLWJsYWNrKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgfVxuICAgIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCA+IC50ZXh0IHtcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygxZW0gKiB2YXIoLS1hcHBsZS1wYXktc2NhbGUpKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoMnB4ICogdmFyKC0tYXBwbGUtcGF5LXNjYWxlKSk7XG4gICAgfVxuICAgIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMzVweCAqIHZhcigtLXNjYWxlKSk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDYwJTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDJweCAqIHZhcigtLWFwcGxlLXBheS1zY2FsZSkpO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxufVxuXG4uZHJhZ2dhYmxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIuZm9ybS1maWVsZHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ3JpZC1nYXA6IDIwcHg7XG59XG5cbi5tb2xsaWUtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRpc3BsYXktZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG5cbi5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZm9ybS1lcnJvcixcbi5maWVsZC1lcnJvciB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY29sb3I6ICNmMDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1vbGxpZS1jb21wb25lbnQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTBweCAxNXB4O1xuICBjb2xvcjogIzIyMjtcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMHB4IDFweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMHB4IDBweCAwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjA1cyBlYXNlO1xufVxuXG4ubW9sbGllLWNvbXBvbmVudC5oYXMtZm9jdXMge1xuICBib3JkZXItY29sb3I6ICMwN2Y7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksIDBweCAycHggNnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksIDBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4ubW9sbGllLWNvbXBvbmVudC5pcy1pbnZhbGlkIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMGYwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzUwcHgpIHtcbiAgLmZvcm0tZmllbGRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIH1cbiAgLmZvcm0tZ3JvdXAtLWNhcmQtbnVtYmVyLFxuICAuZm9ybS1ncm91cC0tY2FyZC1uYW1lLFxuICAuZm9ybS1ncm91cC0tc2F2ZS1jcmVkaXQtY2FyZCxcbiAgLmZvcm0tZ3JvdXAtLWZvcm0tZXJyb3Ige1xuICAgIGdyaWQtY29sdW1uOiBzcGFuIDI7XG4gIH1cbn1cbi5vbmxpbmUtcGF5bWVudF9faW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ub25saW5lLXBheW1lbnRfX2xhYmVsIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGVkZWRlO1xuICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZ2FwOiAxMHB4O1xufVxuXG4ub25saW5lLXBheW1lbnRfX2l0ZW0ge1xuICBtaW4td2lkdGg6IDI1JTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLm9ubGluZS1wYXltZW50X19pbnB1dDpjaGVja2VkIH4gLm9ubGluZS1wYXltZW50X19sYWJlbCB7XG4gIGJvcmRlci1jb2xvcjogIzIyQjk5QTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICMyMkI5OUEgaW5zZXQ7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9faW1hZ2Uge1xuICB3aWR0aDogNTBweDtcbn1cblxuLm9ubGluZS1wYXltZW50X19jcmVkaXQtY2FyZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9faXRlbS0tYWN0aXZlLm9ubGluZS1wYXltZW50X19pdGVtLS1jcmVkaXRjYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9faXRlbS0tYWN0aXZlIC5vbmxpbmUtcGF5bWVudF9fY3JlZGl0LWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5vbmxpbmUtb25saW5lLXBheW1lbnRfX2NvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ub25saW5lLXBheW1lbnRfX2NyZWRpdC1jYXJkIHtcbiAgcGFkZGluZzogMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZGE7XG59XG5cbiNhcHBsZXBheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNtb2xsaWVfYXBwbGVwYXlfYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQHN1cHBvcnRzICgtd2Via2l0LWFwcGVhcmFuY2U6IC1hcHBsZS1wYXktYnV0dG9uKSB7XG4gIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTlweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogLWFwcGxlLXBheS1idXR0b247XG4gICAgLWFwcGxlLXBheS1idXR0b24tdHlwZTogYnV5O1xuICB9XG4gIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCA+ICoge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBzdXBwb3J0cyBub3QgKC13ZWJraXQtYXBwZWFyYW5jZTogLWFwcGxlLXBheS1idXR0b24pIHtcbiAgLmFwcGxlLXBheS1idXR0b24td2l0aC10ZXh0IHtcbiAgICAtLWFwcGxlLXBheS1zY2FsZTogMTsgLyogKGhlaWdodCAvIDMyKSAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgIG1heC1oZWlnaHQ6IDY0cHg7XG4gIH1cbiAgLmFwcGxlLXBheS1idXR0b24td2l0aC10ZXh0LmFwcGxlLXBheS1idXR0b24tYmxhY2std2l0aC10ZXh0ID4gLmxvZ28ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbmFtZWQtaW1hZ2UoYXBwbGUtcGF5LWxvZ28td2hpdGUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICB9XG4gIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dC5hcHBsZS1wYXktYnV0dG9uLXdoaXRlLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LW5hbWVkLWltYWdlKGFwcGxlLXBheS1sb2dvLWJsYWNrKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQuYXBwbGUtcGF5LWJ1dHRvbi13aGl0ZS13aXRoLWxpbmUtd2l0aC10ZXh0ID4gLmxvZ28ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbmFtZWQtaW1hZ2UoYXBwbGUtcGF5LWxvZ28tYmxhY2spO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG4gIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCA+IC50ZXh0IHtcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbTtcbiAgICBmb250LXNpemU6IGNhbGMoMWVtICogdmFyKC0tYXBwbGUtcGF5LXNjYWxlKSk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDJweCAqIHZhcigtLWFwcGxlLXBheS1zY2FsZSkpO1xuICB9XG4gIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICB3aWR0aDogY2FsYygzNXB4ICogdmFyKC0tc2NhbGUpKTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDYwJTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDJweCAqIHZhcigtLWFwcGxlLXBheS1zY2FsZSkpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuLmRyYWdnYWJsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1vbGxpZS1ldmVyeS1sYWJlbC1jb250YWluZXIgc3Bhbi51aS5sYWJlbCB7XG4gIG1hcmdpbjogMC41cmVtIDAgMCAwLjVyZW07XG59XG5cbi8qIFBvcHVwIGNvbnRhaW5lciAqL1xuLnBvcHVwLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7IC8qIFNlbWktdHJhbnNwYXJlbnQgYmFja2dyb3VuZCAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgei1pbmRleDogOTk5OTsgLyogRW5zdXJlIGl0J3MgYWJvdmUgb3RoZXIgY29udGVudCAqL1xufVxuXG4vKiBQb3B1cCAqL1xuLnBvcHVwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgcGFkZGluZzogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi8qIFBvcHVwIGhlYWRlciAqL1xuLnBvcHVwLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5wb3B1cC1oZWFkZXIgaDIge1xuICBtYXJnaW46IDA7XG59XG5cbi5wb3B1cC1oZWFkZXIgaHIge1xuICBtYXJnaW46IDVweCAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjY2NjO1xufVxuXG4vKiBQb3B1cCBjb250ZW50ICovXG4ucG9wdXAtY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnBvcHVwLWNvbnRlbnQgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKiBQb3B1cCBidXR0b25zICovXG4ucG9wdXAtYnV0dG9ucyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnBvcHVwLWJ1dHRvbnMgYnV0dG9uIHtcbiAgbWFyZ2luOiA1cHg7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wb3B1cC1idXR0b25zIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG5cbi8qIFN0eWxpbmcgZm9yIGNhbmNlbCBidXR0b24gKi9cbi5wb3B1cC1idXR0b25zICNjYW5jZWwtYnV0dG9uIHtcbiAgYm9yZGVyOiBub25lO1xufSIsIi5tb2xsaWUtZXZlcnktbGFiZWwtY29udGFpbmVyIHtcbiAgc3Bhbi51aS5sYWJlbCB7XG4gICAgbWFyZ2luOiAwLjVyZW0gMCAwIDAuNXJlbTtcbiAgfVxufVxuXG4vKiBQb3B1cCBjb250YWluZXIgKi9cbi5wb3B1cC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyAvKiBTZW1pLXRyYW5zcGFyZW50IGJhY2tncm91bmQgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgei1pbmRleDogOTk5OTsgLyogRW5zdXJlIGl0J3MgYWJvdmUgb3RoZXIgY29udGVudCAqL1xufVxuXG4vKiBQb3B1cCAqL1xuLnBvcHVwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLyogUG9wdXAgaGVhZGVyICovXG4ucG9wdXAtaGVhZGVyIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5wb3B1cC1oZWFkZXIgaDIge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnBvcHVwLWhlYWRlciBociB7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2NjY2M7XG59XG5cbi8qIFBvcHVwIGNvbnRlbnQgKi9cbi5wb3B1cC1jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnBvcHVwLWNvbnRlbnQgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLyogUG9wdXAgYnV0dG9ucyAqL1xuLnBvcHVwLWJ1dHRvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnBvcHVwLWJ1dHRvbnMgYnV0dG9uIHtcbiAgICBtYXJnaW46IDVweDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wb3B1cC1idXR0b25zIGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cblxuLyogU3R5bGluZyBmb3IgY2FuY2VsIGJ1dHRvbiAqL1xuLnBvcHVwLWJ1dHRvbnMgI2NhbmNlbC1idXR0b24ge1xuICAgIGJvcmRlcjogbm9uZTtcbn1cblxuIiwiLyoqXG4gKiB0b20tc2VsZWN0LmNzcyAodi8vQEB2ZXJzaW9uKVxuICogQ29weXJpZ2h0IChjKSBjb250cmlidXRvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpc1xuICogZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6XG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GXG4gKiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICovXG4udHMtY29udHJvbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIHBhZGRpbmc6IDhweCA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnRzLXdyYXBwZXIubXVsdGkuaGFzLWl0ZW1zIC50cy1jb250cm9sIHtcbiAgcGFkZGluZzogY2FsYyg4cHggLSAycHggLSAxcHgpIDhweCBjYWxjKDhweCAtIDJweCAtIDNweCAtIDFweCk7XG59XG4uZnVsbCAudHMtY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uZGlzYWJsZWQgLnRzLWNvbnRyb2wsIC5kaXNhYmxlZCAudHMtY29udHJvbCAqIHtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG59XG4uZm9jdXMgLnRzLWNvbnRyb2wge1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi50cy1jb250cm9sID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgPiBkaXYge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMCAzcHggM3B4IDA7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGJhY2tncm91bmQ6ICMxZGE3ZWU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMDA3M2JiO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgPiBkaXYuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzkyYzgzNjtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDU3OGQ7XG59XG4udHMtd3JhcHBlci5tdWx0aS5kaXNhYmxlZCAudHMtY29udHJvbCA+IGRpdiwgLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgPiBkaXYuYWN0aXZlIHtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAjZDJkMmQyO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYWFhYWFhO1xufVxuLnRzLWNvbnRyb2wgPiBpbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDdyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHRleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdXNlci1zZWxlY3Q6IGF1dG8gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLnRzLWNvbnRyb2wgPiBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50cy1jb250cm9sID4gaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG4uaGFzLWl0ZW1zIC50cy1jb250cm9sID4gaW5wdXQge1xuICBtYXJnaW46IDAgNHB4ICFpbXBvcnRhbnQ7XG59XG4udHMtY29udHJvbC5ydGwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50cy1jb250cm9sLnJ0bC5zaW5nbGUgLnRzLWNvbnRyb2w6YWZ0ZXIge1xuICBsZWZ0OiAxNXB4O1xuICByaWdodDogYXV0bztcbn1cbi50cy1jb250cm9sLnJ0bCAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwIDRweCAwIC0ycHggIWltcG9ydGFudDtcbn1cbi5kaXNhYmxlZCAudHMtY29udHJvbCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbn1cbi5pbnB1dC1oaWRkZW4gLnRzLWNvbnRyb2wgPiBpbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwcHg7XG59XG5cbi50cy1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG1hcmdpbjogMC4yNXJlbSAwIDA7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAzcHg7XG59XG4udHMtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4udHMtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV0gLmhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxNjgsIDIwOCwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogMXB4O1xufVxuLnRzLWRyb3Bkb3duIC5vcHRpb24sXG4udHMtZHJvcGRvd24gLm9wdGdyb3VwLWhlYWRlcixcbi50cy1kcm9wZG93biAubm8tcmVzdWx0cyxcbi50cy1kcm9wZG93biAuY3JlYXRlIHtcbiAgcGFkZGluZzogNXB4IDhweDtcbn1cbi50cy1kcm9wZG93biAub3B0aW9uLCAudHMtZHJvcGRvd24gW2RhdGEtZGlzYWJsZWRdLCAudHMtZHJvcGRvd24gW2RhdGEtZGlzYWJsZWRdIFtkYXRhLXNlbGVjdGFibGVdLm9wdGlvbiB7XG4gIGN1cnNvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogMC41O1xufVxuLnRzLWRyb3Bkb3duIFtkYXRhLXNlbGVjdGFibGVdLm9wdGlvbiB7XG4gIG9wYWNpdHk6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi50cy1kcm9wZG93biAub3B0Z3JvdXA6Zmlyc3QtY2hpbGQgLm9wdGdyb3VwLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbn1cbi50cy1kcm9wZG93biAub3B0Z3JvdXAtaGVhZGVyIHtcbiAgY29sb3I6ICMzMDMwMzA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi50cy1kcm9wZG93biAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZmFmZDtcbiAgY29sb3I6ICM0OTVjNjg7XG59XG4udHMtZHJvcGRvd24gLmFjdGl2ZS5jcmVhdGUge1xuICBjb2xvcjogIzQ5NWM2ODtcbn1cbi50cy1kcm9wZG93biAuY3JlYXRlIHtcbiAgY29sb3I6IHJnYmEoNDgsIDQ4LCA0OCwgMC41KTtcbn1cbi50cy1kcm9wZG93biAuc3Bpbm5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgbWFyZ2luOiA1cHggOHB4O1xufVxuLnRzLWRyb3Bkb3duIC5zcGlubmVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgbWFyZ2luOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiA1cHggc29saWQgI2QwZDBkMDtcbiAgYm9yZGVyLWNvbG9yOiAjZDBkMGQwIHRyYW5zcGFyZW50ICNkMGQwZDAgdHJhbnNwYXJlbnQ7XG4gIGFuaW1hdGlvbjogbGRzLWR1YWwtcmluZyAxLjJzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgbGRzLWR1YWwtcmluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5cbi50cy1kcm9wZG93bi1jb250ZW50IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi50cy13cmFwcGVyLnBsdWdpbi1kcmFnX2Ryb3AgLnRzLWRyYWdnaW5nIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tZHJhZ19kcm9wIC50cy1kcmFnZ2luZyA+ICoge1xuICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLnBsdWdpbi1jaGVja2JveF9vcHRpb25zOm5vdCgucnRsKSAub3B0aW9uIGlucHV0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG5cbi5wbHVnaW4tY2hlY2tib3hfb3B0aW9ucy5ydGwgLm9wdGlvbiBpbnB1dCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLW5hbWUtY2FzZSAqL1xuLnBsdWdpbi1jbGVhcl9idXR0b24ge1xuICAtLXRzLXByLWNsZWFyLWJ1dHRvbjogMWVtO1xufVxuLnBsdWdpbi1jbGVhcl9idXR0b24gLmNsZWFyLWJ1dHRvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgcmlnaHQ6IGNhbGMoOHB4IC0gNnB4KTtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBsdWdpbi1jbGVhcl9idXR0b24uZm9ybS1zZWxlY3QgLmNsZWFyLWJ1dHRvbiwgLnBsdWdpbi1jbGVhcl9idXR0b24uc2luZ2xlIC5jbGVhci1idXR0b24ge1xuICByaWdodDogbWF4KHZhcigtLXRzLXByLWNhcmV0KSwgOHB4KTtcbn1cbi5wbHVnaW4tY2xlYXJfYnV0dG9uLmZvY3VzLmhhcy1pdGVtcyAuY2xlYXItYnV0dG9uLCAucGx1Z2luLWNsZWFyX2J1dHRvbjpub3QoLmRpc2FibGVkKTpob3Zlci5oYXMtaXRlbXMgLmNsZWFyLWJ1dHRvbiB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi50cy13cmFwcGVyIC5kcm9wZG93bi1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEwcHggOHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2QwZDBkMDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KCNmZmYsICNkMGQwZDAsIDg1JSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwO1xufVxuLnRzLXdyYXBwZXIgLmRyb3Bkb3duLWhlYWRlci1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDhweDtcbiAgdG9wOiA1MCU7XG4gIGNvbG9yOiAjMzAzMDMwO1xuICBvcGFjaXR5OiAwLjQ7XG4gIG1hcmdpbi10b3A6IC0xMnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG59XG4udHMtd3JhcHBlciAuZHJvcGRvd24taGVhZGVyLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0LmZvY3VzLmRyb3Bkb3duLWFjdGl2ZSAudHMtY29udHJvbCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG59XG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0IC5kcm9wZG93bi1pbnB1dCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJvcmRlci13aWR0aDogMCAwIDFweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDhweCA4cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5wbHVnaW4tZHJvcGRvd25faW5wdXQgLml0ZW1zLXBsYWNlaG9sZGVyIHtcbiAgYm9yZGVyOiAwIG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbn1cbi5wbHVnaW4tZHJvcGRvd25faW5wdXQuaGFzLWl0ZW1zIC5pdGVtcy1wbGFjZWhvbGRlciwgLnBsdWdpbi1kcm9wZG93bl9pbnB1dC5kcm9wZG93bi1hY3RpdmUgLml0ZW1zLXBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4taW5wdXRfYXV0b2dyb3cuaGFzLWl0ZW1zIC50cy1jb250cm9sID4gaW5wdXQge1xuICBtaW4td2lkdGg6IDA7XG59XG4udHMtd3JhcHBlci5wbHVnaW4taW5wdXRfYXV0b2dyb3cuaGFzLWl0ZW1zLmZvY3VzIC50cy1jb250cm9sID4gaW5wdXQge1xuICBmbGV4OiBub25lO1xuICBtaW4td2lkdGg6IDRweDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1pbnB1dF9hdXRvZ3Jvdy5oYXMtaXRlbXMuZm9jdXMgLnRzLWNvbnRyb2wgPiBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAudHMtZHJvcGRvd24tY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLm9wdGdyb3VwIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2YyZjJmMjtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtYmFzaXM6IDA7XG4gIG1pbi13aWR0aDogMDtcbn1cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAub3B0Z3JvdXA6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1yaWdodDogMCBub25lO1xufVxuLnRzLWRyb3Bkb3duLnBsdWdpbi1vcHRncm91cF9jb2x1bW5zIC5vcHRncm91cDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAub3B0Z3JvdXAtaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbiAuaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24gLml0ZW0gLnJlbW92ZSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24gLml0ZW0gLnJlbW92ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5kaXNhYmxlZCAuaXRlbSAucmVtb3ZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uIC5yZW1vdmUtc2luZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBmb250LXNpemU6IDIzcHg7XG59XG5cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uOm5vdCgucnRsKSAuaXRlbSB7XG4gIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uOm5vdCgucnRsKSAuaXRlbSAucmVtb3ZlIHtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMDA3M2JiO1xuICBtYXJnaW4tbGVmdDogNnB4O1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b246bm90KC5ydGwpIC5pdGVtLmFjdGl2ZSAucmVtb3ZlIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDU3OGQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbjpub3QoLnJ0bCkuZGlzYWJsZWQgLml0ZW0gLnJlbW92ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjYWFhYWFhO1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5ydGwgLml0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uLnJ0bCAuaXRlbSAucmVtb3ZlIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwNzNiYjtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5ydGwgLml0ZW0uYWN0aXZlIC5yZW1vdmUge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICMwMDU3OGQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5ydGwuZGlzYWJsZWQgLml0ZW0gLnJlbW92ZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogI2FhYWFhYTtcbn1cblxuOnJvb3Qge1xuICAtLXRzLXByLWNsZWFyLWJ1dHRvbjogMHB4O1xuICAtLXRzLXByLWNhcmV0OiAwcHg7XG4gIC0tdHMtcHItbWluOiAuNzVyZW07XG59XG5cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuc2luZ2xlIC50cy1jb250cm9sIGlucHV0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udHMtY29udHJvbDpub3QoLnJ0bCkge1xuICBwYWRkaW5nLXJpZ2h0OiBtYXgodmFyKC0tdHMtcHItbWluKSwgdmFyKC0tdHMtcHItY2xlYXItYnV0dG9uKSArIHZhcigtLXRzLXByLWNhcmV0KSkgIWltcG9ydGFudDtcbn1cblxuLnRzLWNvbnRyb2wucnRsIHtcbiAgcGFkZGluZy1sZWZ0OiBtYXgodmFyKC0tdHMtcHItbWluKSwgdmFyKC0tdHMtcHItY2xlYXItYnV0dG9uKSArIHZhcigtLXRzLXByLWNhcmV0KSkgIWltcG9ydGFudDtcbn1cblxuLnRzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50cy1kcm9wZG93bixcbi50cy1jb250cm9sLFxuLnRzLWNvbnRyb2wgaW5wdXQge1xuICBjb2xvcjogIzMwMzAzMDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG59XG5cbi50cy1jb250cm9sLFxuLnRzLXdyYXBwZXIuc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGN1cnNvcjogdGV4dDtcbn1cblxuLnRzLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCB7XG4gIC0tdHMtcHItY2FyZXQ6IDJyZW07XG59XG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2w6OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtM3B4O1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMCA1cHg7XG4gIGJvcmRlci1jb2xvcjogIzgwODA4MCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn1cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbDpub3QoLnJ0bCk6OmFmdGVyIHtcbiAgcmlnaHQ6IDE1cHg7XG59XG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wucnRsOjphZnRlciB7XG4gIGxlZnQ6IDE1cHg7XG59XG4udHMtd3JhcHBlci5zaW5nbGUuZHJvcGRvd24tYWN0aXZlIC50cy1jb250cm9sOjphZnRlciB7XG4gIG1hcmdpbi10b3A6IC00cHg7XG4gIGJvcmRlci13aWR0aDogMCA1cHggNXB4IDVweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODA4MDgwIHRyYW5zcGFyZW50O1xufVxuLnRzLXdyYXBwZXIuc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCBpbnB1dCB7XG4gIGN1cnNvcjogdGV4dDtcbn1cblxuLnRzLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAzNnB4O1xufVxuLnRzLXdyYXBwZXIubXVsdGkuaGFzLWl0ZW1zIC50cy1jb250cm9sIHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIC0tdHMtcHItbWluOiAkcGFkZGluZy14O1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdIHtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCA1MSwgODMsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KCMxZGE3ZWUsICMxNzhlZTksIDYwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMxZGE3ZWUsICMxNzhlZTkpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCBpbnNldCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peCgjMDA4ZmQ4LCAjMDA3NWNmLCA2MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDA4ZmQ4LCAjMDA3NWNmKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdIHtcbiAgY29sb3I6ICM5OTk7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdLCAudHMtd3JhcHBlci5tdWx0aS5kaXNhYmxlZCAudHMtY29udHJvbCBbZGF0YS12YWx1ZV0gLnJlbW92ZSB7XG4gIGJvcmRlci1jb2xvcjogI2U2ZTZlNjtcbn1cbi50cy13cmFwcGVyLm11bHRpLmRpc2FibGVkIC50cy1jb250cm9sIFtkYXRhLXZhbHVlXSAucmVtb3ZlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peCgjZmVmZWZlLCAjZjJmMmYyLCA2MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmVmZWZlLCAjZjJmMmYyKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wsIC50cy1kcm9wZG93bi5zaW5nbGUge1xuICBib3JkZXItY29sb3I6ICNiOGI4Yjg7XG59XG5cbi5kcm9wZG93bi1hY3RpdmUgLnRzLWNvbnRyb2wge1xuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbn1cblxuLnRzLWRyb3Bkb3duIC5vcHRncm91cC1oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmMGYwZjA7XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xufSIsIltkYXRhLWxvYWRpbmc9XCJcIl0sW2RhdGEtbG9hZGluZz1zaG93XSxbZGF0YS1sb2FkaW5nKj1cXHxzaG93XXtkaXNwbGF5Om5vbmV9XG4iLCIvKipcbiAqIFRvbSBTZWxlY3QgQm9vdHN0cmFwIDVcbiAqL1xuLyoqXG4gKiB0b20tc2VsZWN0LmNzcyAodi8vQEB2ZXJzaW9uKVxuICogQ29weXJpZ2h0IChjKSBjb250cmlidXRvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpc1xuICogZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6XG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyXG4gKiB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GXG4gKiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICovXG4udHMtY29udHJvbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJzLWJvcmRlci1jb2xvcik7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4udHMtd3JhcHBlci5tdWx0aS5oYXMtaXRlbXMgLnRzLWNvbnRyb2wge1xuICBwYWRkaW5nOiBjYWxjKDAuMzc1cmVtIC0gMXB4IC0gMCkgMC43NXJlbSBjYWxjKDAuMzc1cmVtIC0gMXB4IC0gM3B4IC0gMCk7XG59XG4uZnVsbCAudHMtY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLWJvZHktYmcpO1xufVxuLmRpc2FibGVkIC50cy1jb250cm9sLCAuZGlzYWJsZWQgLnRzLWNvbnRyb2wgKiB7XG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xufVxuLmZvY3VzIC50cy1jb250cm9sIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi50cy1jb250cm9sID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgPiBkaXYge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMCAzcHggM3B4IDA7XG4gIHBhZGRpbmc6IDFweCA1cHg7XG4gIGJhY2tncm91bmQ6ICNlZmVmZWY7XG4gIGNvbG9yOiAjMzQzYTQwO1xuICBib3JkZXI6IDAgc29saWQgI2RlZTJlNjtcbn1cbi50cy13cmFwcGVyLm11bHRpIC50cy1jb250cm9sID4gZGl2LmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICMwZDZlZmQ7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDAgc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi50cy13cmFwcGVyLm11bHRpLmRpc2FibGVkIC50cy1jb250cm9sID4gZGl2LCAudHMtd3JhcHBlci5tdWx0aS5kaXNhYmxlZCAudHMtY29udHJvbCA+IGRpdi5hY3RpdmUge1xuICBjb2xvcjogcmdiKDEzNC41LCAxMzQuNSwgMTM0LjUpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyOiAwIHNvbGlkIHdoaXRlO1xufVxuLnRzLWNvbnRyb2wgPiBpbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDdyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHRleHQtaW5kZW50OiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdXNlci1zZWxlY3Q6IGF1dG8gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuLnRzLWNvbnRyb2wgPiBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50cy1jb250cm9sID4gaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG4uaGFzLWl0ZW1zIC50cy1jb250cm9sID4gaW5wdXQge1xuICBtYXJnaW46IDAgNHB4ICFpbXBvcnRhbnQ7XG59XG4udHMtY29udHJvbC5ydGwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50cy1jb250cm9sLnJ0bC5zaW5nbGUgLnRzLWNvbnRyb2w6YWZ0ZXIge1xuICBsZWZ0OiBjYWxjKDAuNzVyZW0gKyA1cHgpO1xuICByaWdodDogYXV0bztcbn1cbi50cy1jb250cm9sLnJ0bCAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwIDRweCAwIC0ycHggIWltcG9ydGFudDtcbn1cbi5kaXNhYmxlZCAudHMtY29udHJvbCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnKTtcbn1cbi5pbnB1dC1oaWRkZW4gLnRzLWNvbnRyb2wgPiBpbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwcHg7XG59XG5cbi50cy1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMTA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJzLWJvZHktYmcpO1xuICBtYXJnaW46IDAuMjVyZW0gMCAwO1xuICBib3JkZXItdG9wOiAwIG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1icy1ib3JkZXItcmFkaXVzKSB2YXIoLS1icy1ib3JkZXItcmFkaXVzKTtcbn1cbi50cy1kcm9wZG93biBbZGF0YS1zZWxlY3RhYmxlXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi50cy1kcm9wZG93biBbZGF0YS1zZWxlY3RhYmxlXSAuaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIzNywgNDAsIDAuNCk7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cbi50cy1kcm9wZG93biAub3B0aW9uLFxuLnRzLWRyb3Bkb3duIC5vcHRncm91cC1oZWFkZXIsXG4udHMtZHJvcGRvd24gLm5vLXJlc3VsdHMsXG4udHMtZHJvcGRvd24gLmNyZWF0ZSB7XG4gIHBhZGRpbmc6IDNweCAwLjc1cmVtO1xufVxuLnRzLWRyb3Bkb3duIC5vcHRpb24sIC50cy1kcm9wZG93biBbZGF0YS1kaXNhYmxlZF0sIC50cy1kcm9wZG93biBbZGF0YS1kaXNhYmxlZF0gW2RhdGEtc2VsZWN0YWJsZV0ub3B0aW9uIHtcbiAgY3Vyc29yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU7XG59XG4udHMtZHJvcGRvd24gW2RhdGEtc2VsZWN0YWJsZV0ub3B0aW9uIHtcbiAgb3BhY2l0eTogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnRzLWRyb3Bkb3duIC5vcHRncm91cDpmaXJzdC1jaGlsZCAub3B0Z3JvdXAtaGVhZGVyIHtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xufVxuLnRzLWRyb3Bkb3duIC5vcHRncm91cC1oZWFkZXIge1xuICBjb2xvcjogIzZjNzU3ZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnMtYm9keS1iZyk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi50cy1kcm9wZG93biAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtdGVydGlhcnktYmcpO1xuICBjb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG59XG4udHMtZHJvcGRvd24gLmFjdGl2ZS5jcmVhdGUge1xuICBjb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcik7XG59XG4udHMtZHJvcGRvd24gLmNyZWF0ZSB7XG4gIGNvbG9yOiByZ2JhKDUyLCA1OCwgNjQsIDAuNSk7XG59XG4udHMtZHJvcGRvd24gLnNwaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbjogM3B4IDAuNzVyZW07XG59XG4udHMtZHJvcGRvd24gLnNwaW5uZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDNweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDVweCBzb2xpZCAjZDBkMGQwO1xuICBib3JkZXItY29sb3I6ICNkMGQwZDAgdHJhbnNwYXJlbnQgI2QwZDBkMCB0cmFuc3BhcmVudDtcbiAgYW5pbWF0aW9uOiBsZHMtZHVhbC1yaW5nIDEuMnMgbGluZWFyIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBsZHMtZHVhbC1yaW5nIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLnRzLWRyb3Bkb3duLWNvbnRlbnQge1xuICBvdmVyZmxvdzogaGlkZGVuIGF1dG87XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cblxuLnRzLXdyYXBwZXIucGx1Z2luLWRyYWdfZHJvcCAudHMtZHJhZ2dpbmcge1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1kcmFnX2Ryb3AgLnRzLWRyYWdnaW5nID4gKiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4ucGx1Z2luLWNoZWNrYm94X29wdGlvbnM6bm90KC5ydGwpIC5vcHRpb24gaW5wdXQge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cblxuLnBsdWdpbi1jaGVja2JveF9vcHRpb25zLnJ0bCAub3B0aW9uIGlucHV0IHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tbmFtZS1jYXNlICovXG4ucGx1Z2luLWNsZWFyX2J1dHRvbiB7XG4gIC0tdHMtcHItY2xlYXItYnV0dG9uOiAxZW07XG59XG4ucGx1Z2luLWNsZWFyX2J1dHRvbiAuY2xlYXItYnV0dG9uIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICByaWdodDogY2FsYygwLjc1cmVtIC0gNXB4KTtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnBsdWdpbi1jbGVhcl9idXR0b24uZm9ybS1zZWxlY3QgLmNsZWFyLWJ1dHRvbiwgLnBsdWdpbi1jbGVhcl9idXR0b24uc2luZ2xlIC5jbGVhci1idXR0b24ge1xuICByaWdodDogbWF4KHZhcigtLXRzLXByLWNhcmV0KSwgMC43NXJlbSk7XG59XG4ucGx1Z2luLWNsZWFyX2J1dHRvbi5mb2N1cy5oYXMtaXRlbXMgLmNsZWFyLWJ1dHRvbiwgLnBsdWdpbi1jbGVhcl9idXR0b246bm90KC5kaXNhYmxlZCk6aG92ZXIuaGFzLWl0ZW1zIC5jbGVhci1idXR0b24ge1xuICBvcGFjaXR5OiAxO1xufVxuXG4udHMtd3JhcHBlciAuZHJvcGRvd24taGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA2cHggMC43NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peCh2YXIoLS1icy1ib2R5LWJnKSwgI2QwZDBkMCwgODUlKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgMCAwO1xufVxuLnRzLXdyYXBwZXIgLmRyb3Bkb3duLWhlYWRlci1jbG9zZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDAuNzVyZW07XG4gIHRvcDogNTAlO1xuICBjb2xvcjogIzM0M2E0MDtcbiAgb3BhY2l0eTogMC40O1xuICBtYXJnaW4tdG9wOiAtMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xufVxuLnRzLXdyYXBwZXIgLmRyb3Bkb3duLWhlYWRlci1jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLnBsdWdpbi1kcm9wZG93bl9pbnB1dC5mb2N1cy5kcm9wZG93bi1hY3RpdmUgLnRzLWNvbnRyb2wge1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICBib3gtc2hhZG93OiB2YXIoLS1icy1ib3gtc2hhZG93LWluc2V0KTtcbn1cbi5wbHVnaW4tZHJvcGRvd25faW5wdXQgLmRyb3Bkb3duLWlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QwZDBkMDtcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMC4zNzVyZW0gMC43NXJlbTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnBsdWdpbi1kcm9wZG93bl9pbnB1dC5mb2N1cyAudHMtZHJvcGRvd24gLmRyb3Bkb3duLWlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMTM0LCAxODIuNSwgMjU0KTtcbiAgb3V0bGluZTogMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4yNXJlbSByZ2JhKDEzLCAxMTAsIDI1MywgMC4yNSk7XG59XG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0IC5pdGVtcy1wbGFjZWhvbGRlciB7XG4gIGJvcmRlcjogMCBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0Lmhhcy1pdGVtcyAuaXRlbXMtcGxhY2Vob2xkZXIsIC5wbHVnaW4tZHJvcGRvd25faW5wdXQuZHJvcGRvd24tYWN0aXZlIC5pdGVtcy1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnRzLXdyYXBwZXIucGx1Z2luLWlucHV0X2F1dG9ncm93Lmhhcy1pdGVtcyAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLWlucHV0X2F1dG9ncm93Lmhhcy1pdGVtcy5mb2N1cyAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgZmxleDogbm9uZTtcbiAgbWluLXdpZHRoOiA0cHg7XG59XG4udHMtd3JhcHBlci5wbHVnaW4taW5wdXRfYXV0b2dyb3cuaGFzLWl0ZW1zLmZvY3VzIC50cy1jb250cm9sID4gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLnRzLWRyb3Bkb3duLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnRzLWRyb3Bkb3duLnBsdWdpbi1vcHRncm91cF9jb2x1bW5zIC5vcHRncm91cCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmMmYyZjI7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LWJhc2lzOiAwO1xuICBtaW4td2lkdGg6IDA7XG59XG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLm9wdGdyb3VwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDAgbm9uZTtcbn1cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAub3B0Z3JvdXA6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLm9wdGdyb3VwLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbn1cblxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24gLml0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uIC5pdGVtIC5yZW1vdmUge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uIC5pdGVtIC5yZW1vdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24uZGlzYWJsZWQgLml0ZW0gLnJlbW92ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbiAucmVtb3ZlLXNpbmdsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgZm9udC1zaXplOiAyM3B4O1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbjpub3QoLnJ0bCkgLml0ZW0ge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbjpub3QoLnJ0bCkgLml0ZW0gLnJlbW92ZSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2RlZTJlNjtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uOm5vdCgucnRsKSAuaXRlbS5hY3RpdmUgLnJlbW92ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b246bm90KC5ydGwpLmRpc2FibGVkIC5pdGVtIC5yZW1vdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogd2hpdGU7XG59XG5cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uLnJ0bCAuaXRlbSB7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24ucnRsIC5pdGVtIC5yZW1vdmUge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGVlMmU2O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uLnJ0bCAuaXRlbS5hY3RpdmUgLnJlbW92ZSB7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uLnJ0bC5kaXNhYmxlZCAuaXRlbSAucmVtb3ZlIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcbn1cblxuOnJvb3Qge1xuICAtLXRzLXByLWNsZWFyLWJ1dHRvbjogMHB4O1xuICAtLXRzLXByLWNhcmV0OiAwcHg7XG4gIC0tdHMtcHItbWluOiAuNzVyZW07XG59XG5cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuc2luZ2xlIC50cy1jb250cm9sIGlucHV0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udHMtY29udHJvbDpub3QoLnJ0bCkge1xuICBwYWRkaW5nLXJpZ2h0OiBtYXgodmFyKC0tdHMtcHItbWluKSwgdmFyKC0tdHMtcHItY2xlYXItYnV0dG9uKSArIHZhcigtLXRzLXByLWNhcmV0KSkgIWltcG9ydGFudDtcbn1cblxuLnRzLWNvbnRyb2wucnRsIHtcbiAgcGFkZGluZy1sZWZ0OiBtYXgodmFyKC0tdHMtcHItbWluKSwgdmFyKC0tdHMtcHItY2xlYXItYnV0dG9uKSArIHZhcigtLXRzLXByLWNhcmV0KSkgIWltcG9ydGFudDtcbn1cblxuLnRzLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50cy1kcm9wZG93bixcbi50cy1jb250cm9sLFxuLnRzLWNvbnRyb2wgaW5wdXQge1xuICBjb2xvcjogIzM0M2E0MDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLnRzLWNvbnRyb2wsXG4udHMtd3JhcHBlci5zaW5nbGUuaW5wdXQtYWN0aXZlIC50cy1jb250cm9sIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnMtYm9keS1iZyk7XG4gIGN1cnNvcjogdGV4dDtcbn1cblxuLnRzLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi50cy1kcm9wZG93bixcbi50cy1kcm9wZG93bi5mb3JtLWNvbnRyb2wsXG4udHMtZHJvcGRvd24uZm9ybS1zZWxlY3Qge1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJzLWJvZHktYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3ItdHJhbnNsdWNlbnQpO1xuICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTc1KTtcbn1cblxuLnRzLWRyb3Bkb3duIC5vcHRncm91cC1oZWFkZXIge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLnRzLWRyb3Bkb3duIC5vcHRncm91cDpmaXJzdC1jaGlsZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi50cy1kcm9wZG93biAub3B0Z3JvdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDAuNXJlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yLXRyYW5zbHVjZW50KTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjc1cmVtO1xufVxuLnRzLWRyb3Bkb3duIC5jcmVhdGUge1xuICBwYWRkaW5nLWxlZnQ6IDAuNzVyZW07XG59XG5cbi50cy1kcm9wZG93bi1jb250ZW50IHtcbiAgcGFkZGluZzogNXB4IDA7XG59XG5cbi50cy1jb250cm9sIHtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnRzLWNvbnRyb2wge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cbi5mb2N1cyAudHMtY29udHJvbCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDEzNCwgMTgyLjUsIDI1NCk7XG4gIG91dGxpbmU6IDA7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMjVyZW0gcmdiYSgxMywgMTEwLCAyNTMsIDAuMjUpO1xufVxuLnRzLWNvbnRyb2wgLml0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udHMtd3JhcHBlci5pcy1pbnZhbGlkLFxuLndhcy12YWxpZGF0ZWQgLmludmFsaWQsXG4ud2FzLXZhbGlkYXRlZCA6aW52YWxpZCArIC50cy13cmFwcGVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1mb3JtLWludmFsaWQtY29sb3IpO1xufVxuLnRzLXdyYXBwZXIuaXMtaW52YWxpZDpub3QoLnNpbmdsZSksXG4ud2FzLXZhbGlkYXRlZCAuaW52YWxpZDpub3QoLnNpbmdsZSksXG4ud2FzLXZhbGlkYXRlZCA6aW52YWxpZCArIC50cy13cmFwcGVyOm5vdCguc2luZ2xlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTIgMTInIHdpZHRoPScxMicgaGVpZ2h0PScxMicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkYzM1NDUnJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8lM2UlM2NwYXRoIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIGQ9J001LjggMy42aC40TDYgNi41eicvJTNlJTNjY2lyY2xlIGN4PSc2JyBjeT0nOC4yJyByPScuNicgZmlsbD0nJTIzZGMzNTQ1JyBzdHJva2U9J25vbmUnLyUzZSUzYy9zdmclM2VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNhbGMoMC4zNzVlbSArIDAuMTg3NXJlbSkgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNhbGMoMC43NWVtICsgMC4zNzVyZW0pIGNhbGMoMC43NWVtICsgMC4zNzVyZW0pO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnRzLXdyYXBwZXIuaXMtaW52YWxpZC5zaW5nbGUsXG4ud2FzLXZhbGlkYXRlZCAuaW52YWxpZC5zaW5nbGUsXG4ud2FzLXZhbGlkYXRlZCA6aW52YWxpZCArIC50cy13cmFwcGVyLnNpbmdsZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyMzM0M2E0MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J20yIDUgNiA2IDYtNicvJTNlJTNjL3N2ZyUzZVwiKSwgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMiAxMicgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJyBmaWxsPSdub25lJyBzdHJva2U9JyUyM2RjMzU0NSclM2UlM2NjaXJjbGUgY3g9JzYnIGN5PSc2JyByPSc0LjUnLyUzZSUzY3BhdGggc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTUuOCAzLjZoLjRMNiA2LjV6Jy8lM2UlM2NjaXJjbGUgY3g9JzYnIGN5PSc4LjInIHI9Jy42JyBmaWxsPSclMjNkYzM1NDUnIHN0cm9rZT0nbm9uZScvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43NXJlbSBjZW50ZXIsIGNlbnRlciByaWdodCAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTJweCwgY2FsYygwLjc1ZW0gKyAwLjM3NXJlbSkgY2FsYygwLjc1ZW0gKyAwLjM3NXJlbSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4udHMtd3JhcHBlci5pcy1pbnZhbGlkLmZvY3VzIC50cy1jb250cm9sLFxuLndhcy12YWxpZGF0ZWQgLmludmFsaWQuZm9jdXMgLnRzLWNvbnRyb2wsXG4ud2FzLXZhbGlkYXRlZCA6aW52YWxpZCArIC50cy13cmFwcGVyLmZvY3VzIC50cy1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1mb3JtLWludmFsaWQtY29sb3IpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjI1cmVtIHJnYmEodmFyKC0tYnMtZm9ybS1pbnZhbGlkLWNvbG9yKSwgMC4yNSk7XG59XG5cbi50cy13cmFwcGVyLmlzLXZhbGlkLFxuLndhcy12YWxpZGF0ZWQgLnZhbGlkLFxuLndhcy12YWxpZGF0ZWQgOnZhbGlkICsgLnRzLXdyYXBwZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJzLWZvcm0tdmFsaWQtY29sb3IpO1xufVxuLnRzLXdyYXBwZXIuaXMtdmFsaWQ6bm90KC5zaW5nbGUpLFxuLndhcy12YWxpZGF0ZWQgLnZhbGlkOm5vdCguc2luZ2xlKSxcbi53YXMtdmFsaWRhdGVkIDp2YWxpZCArIC50cy13cmFwcGVyOm5vdCguc2luZ2xlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOCA4JyUzZSUzY3BhdGggZmlsbD0nJTIzMTk4NzU0JyBkPSdNMi4zIDYuNzMuNiA0LjUzYy0uNC0xLjA0LjQ2LTEuNCAxLjEtLjhsMS4xIDEuNCAzLjQtMy44Yy42LS42MyAxLjYtLjI3IDEuMi43bC00IDQuNmMtLjQzLjUtLjguNC0xLjEuMXonLyUzZSUzYy9zdmclM2VcIik7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNhbGMoMC4zNzVlbSArIDAuMTg3NXJlbSkgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNhbGMoMC43NWVtICsgMC4zNzVyZW0pIGNhbGMoMC43NWVtICsgMC4zNzVyZW0pO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnRzLXdyYXBwZXIuaXMtdmFsaWQuc2luZ2xlLFxuLndhcy12YWxpZGF0ZWQgLnZhbGlkLnNpbmdsZSxcbi53YXMtdmFsaWRhdGVkIDp2YWxpZCArIC50cy13cmFwcGVyLnNpbmdsZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyMzM0M2E0MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J20yIDUgNiA2IDYtNicvJTNlJTNjL3N2ZyUzZVwiKSwgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBmaWxsPSclMjMxOTg3NTQnIGQ9J00yLjMgNi43My42IDQuNTNjLS40LTEuMDQuNDYtMS40IDEuMS0uOGwxLjEgMS40IDMuNC0zLjhjLjYtLjYzIDEuNi0uMjcgMS4yLjdsLTQgNC42Yy0uNDMuNS0uOC40LTEuMS4xeicvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43NXJlbSBjZW50ZXIsIGNlbnRlciByaWdodCAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTJweCwgY2FsYygwLjc1ZW0gKyAwLjM3NXJlbSkgY2FsYygwLjc1ZW0gKyAwLjM3NXJlbSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4udHMtd3JhcHBlci5pcy12YWxpZC5mb2N1cyAudHMtY29udHJvbCxcbi53YXMtdmFsaWRhdGVkIC52YWxpZC5mb2N1cyAudHMtY29udHJvbCxcbi53YXMtdmFsaWRhdGVkIDp2YWxpZCArIC50cy13cmFwcGVyLmZvY3VzIC50cy1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icy1mb3JtLXZhbGlkLWNvbG9yKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4yNXJlbSByZ2JhKHZhcigtLWJzLWZvcm0tdmFsaWQtY29sb3IpLCAwLjI1KTtcbn1cblxuLnRzLXdyYXBwZXIge1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSArIGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpKTtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5pbnB1dC1ncm91cC1zbSA+IC50cy13cmFwcGVyLCAudHMtd3JhcHBlci5mb3JtLXNlbGVjdC1zbSwgLnRzLXdyYXBwZXIuZm9ybS1jb250cm9sLXNtIHtcbiAgbWluLWhlaWdodDogY2FsYygxLjVlbSArIDAuNXJlbSArIGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpKTtcbn1cbi5pbnB1dC1ncm91cC1zbSA+IC50cy13cmFwcGVyIC50cy1jb250cm9sLCAudHMtd3JhcHBlci5mb3JtLXNlbGVjdC1zbSAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuZm9ybS1jb250cm9sLXNtIC50cy1jb250cm9sIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cy1zbSk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG4uaW5wdXQtZ3JvdXAtc20gPiAudHMtd3JhcHBlci5oYXMtaXRlbXMgLnRzLWNvbnRyb2wsIC50cy13cmFwcGVyLmZvcm0tc2VsZWN0LXNtLmhhcy1pdGVtcyAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuZm9ybS1jb250cm9sLXNtLmhhcy1pdGVtcyAudHMtY29udHJvbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLmlucHV0LWdyb3VwLXNtID4gLnRzLXdyYXBwZXIubXVsdGkuaGFzLWl0ZW1zIC50cy1jb250cm9sLCAudHMtd3JhcHBlci5mb3JtLXNlbGVjdC1zbS5tdWx0aS5oYXMtaXRlbXMgLnRzLWNvbnRyb2wsIC50cy13cmFwcGVyLmZvcm0tY29udHJvbC1zbS5tdWx0aS5oYXMtaXRlbXMgLnRzLWNvbnRyb2wge1xuICBwYWRkaW5nLXRvcDogY2FsYygoY2FsYygxLjVlbSArIDAuNXJlbSArIGNhbGModmFyKC0tYnMtYm9yZGVyLXdpZHRoKSAqIDIpKSAtIDEuNSAqIDAuODc1cmVtIC0gY2FsYygodmFyKC0tYnMtYm9yZGVyLXdpZHRoKSArIDFweCkgKiAyKSkgLyAyKSAhaW1wb3J0YW50O1xufVxuLnRzLXdyYXBwZXIubXVsdGkuaGFzLWl0ZW1zIC50cy1jb250cm9sIHtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKDAuNzVyZW0gLSA1cHgpO1xuICAtLXRzLXByLW1pbjogY2FsYygwLjc1cmVtIC0gNXB4KTtcbn1cbi50cy13cmFwcGVyLm11bHRpIC50cy1jb250cm9sID4gZGl2IHtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1icy1ib3JkZXItcmFkaXVzKSAtIDFweCk7XG59XG4uaW5wdXQtZ3JvdXAtbGcgPiAudHMtd3JhcHBlciwgLnRzLXdyYXBwZXIuZm9ybS1jb250cm9sLWxnLCAudHMtd3JhcHBlci5mb3JtLXNlbGVjdC1sZyB7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMS41ZW0gKyAxcmVtICsgY2FsYyh2YXIoLS1icy1ib3JkZXItd2lkdGgpICogMikpO1xufVxuLmlucHV0LWdyb3VwLWxnID4gLnRzLXdyYXBwZXIgLnRzLWNvbnRyb2wsIC50cy13cmFwcGVyLmZvcm0tY29udHJvbC1sZyAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuZm9ybS1zZWxlY3QtbGcgLnRzLWNvbnRyb2wge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1icy1ib3JkZXItcmFkaXVzLWxnKTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuLnRzLXdyYXBwZXI6bm90KC5mb3JtLWNvbnRyb2wsIC5mb3JtLXNlbGVjdCkge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogYXV0bztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi50cy13cmFwcGVyOm5vdCguZm9ybS1jb250cm9sLCAuZm9ybS1zZWxlY3QpLnNpbmdsZSAudHMtY29udHJvbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyMzM0M2E0MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J20yIDUgNiA2IDYtNicvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC43NXJlbSBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMTZweCAxMnB4O1xufVxuLnRzLXdyYXBwZXIuZm9ybS1zZWxlY3QsIC50cy13cmFwcGVyLnNpbmdsZSB7XG4gIC0tdHMtcHItY2FyZXQ6IDIuMjVyZW07XG59XG4udHMtd3JhcHBlci5mb3JtLWNvbnRyb2wsIC50cy13cmFwcGVyLmZvcm0tc2VsZWN0IHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG87XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4udHMtd3JhcHBlci5mb3JtLWNvbnRyb2wgLnRzLWNvbnRyb2wsIC50cy13cmFwcGVyLmZvcm0tY29udHJvbC5zaW5nbGUuaW5wdXQtYWN0aXZlIC50cy1jb250cm9sLCAudHMtd3JhcHBlci5mb3JtLXNlbGVjdCAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuZm9ybS1zZWxlY3Quc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnRzLXdyYXBwZXIuZm9ybS1jb250cm9sOm5vdCguZGlzYWJsZWQpIC50cy1jb250cm9sLCAudHMtd3JhcHBlci5mb3JtLWNvbnRyb2w6bm90KC5kaXNhYmxlZCkuc2luZ2xlLmlucHV0LWFjdGl2ZSAudHMtY29udHJvbCwgLnRzLXdyYXBwZXIuZm9ybS1zZWxlY3Q6bm90KC5kaXNhYmxlZCkgLnRzLWNvbnRyb2wsIC50cy13cmFwcGVyLmZvcm0tc2VsZWN0Om5vdCguZGlzYWJsZWQpLnNpbmdsZS5pbnB1dC1hY3RpdmUgLnRzLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAudHMtd3JhcHBlciB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgd2lkdGg6IDElO1xufVxuLmlucHV0LWdyb3VwID4gLnRzLXdyYXBwZXI6bm90KDpudGgtY2hpbGQoMikpID4gLnRzLWNvbnRyb2wge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xufVxuLmlucHV0LWdyb3VwID4gLnRzLXdyYXBwZXI6bm90KDpsYXN0LWNoaWxkKSA+IC50cy1jb250cm9sIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xufSIsIi8qXG4gKiBUb25lcmRlbHV4ZSDigJQgSG9qYSBkZSBlc3RpbG8gZGUgbGEgdGllbmRhIChjYXBhIGRlIG1hcmNhIHNvYnJlIFN5bGl1cy9Cb290c3RyYXApLlxuICogT3JkZW46IHRva2VucyAodmFyaWFibGVzKSDihpIgYmFzZSAocmVmaW5hbWllbnRvcykg4oaSIGJyYW5kIChwdWVudGUgY29uIEJvb3RzdHJhcCkuXG4gKi9cblxuLyogRnVlbnRlIGRlIG1hcmNhIHBhcmEgdGl0dWxhcmVzIChBcmNoaXZvKS4gU2UgY2FyZ2EgZ2xvYmFsbWVudGUgKGNhYmVjZXJhL3BpZSB5IHRvZGFzIGxhc1xuICAgcGFudGFsbGFzKTsgZWwgY3VlcnBvIHNpZ3VlIGVuIHNhbnMgZGVsIHNpc3RlbWEuIGRpc3BsYXk9c3dhcCBldml0YSB0ZXh0byBpbnZpc2libGUuICovXG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1BcmNoaXZvOndnaHRANTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwJyk7XG5cbkBpbXBvcnQgJ3Rva2Vucyc7XG5AaW1wb3J0ICdiYXNlJztcbkBpbXBvcnQgJ2JyYW5kJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMnO1xuQGltcG9ydCAnYWRkcmVzc19mb3JtJztcbkBpbXBvcnQgJ2hlYWRlcic7XG5AaW1wb3J0ICdob21lJztcbkBpbXBvcnQgJ2NhdGVnb3J5JztcbkBpbXBvcnQgJ3Byb2R1Y3QnO1xuQGltcG9ydCAncHJpbnRlcic7XG5AaW1wb3J0ICdibG9nJztcbkBpbXBvcnQgJ2FjY291bnQnO1xuQGltcG9ydCAnYXV0aCc7XG5AaW1wb3J0ICdjb250YWN0JztcbkBpbXBvcnQgJ2NoZWNrb3V0JztcbkBpbXBvcnQgJ3N0eWxlZ3VpZGUnO1xuQGltcG9ydCAnZm9vdGVyJztcbkBpbXBvcnQgJ2NhcnRfdG9hc3QnO1xuQGltcG9ydCAnY29uc2VudCc7XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIERlc2lnbiB0b2tlbnMgKEZhc2UgOCDCtyBEZXNpZ24gU3lzdGVtKVxuICogRnVlbnRlIMO6bmljYSBkZSBsYSB2ZXJkYWQ6IENTUyBjdXN0b20gcHJvcGVydGllcyBhZ27Ds3N0aWNhcyBkZWwgZnJhbWV3b3JrLlxuICogTWFyY2EgQ01ZSzogQ3lhbiAjMDA5RUVGIMK3IE1hZ2VudGEgI0U2MTQ4NCDCtyBBbWFyaWxsbyAjRkZFNjAwIMK3IE5lZ3JvICMwMDAwMDAuXG4gKiBFbCBjeWFuIHB1cm8gc2UgcmVzZXJ2YSBwYXJhIHJlbGxlbm8vaWRlbnRpZGFkOyBsb3MgdG9ub3MgLTYwMC8tNzAwIGRhbiBjb250cmFzdGUgQUFcbiAqIHBhcmEgdGV4dG8geSBDVEFzLiBBY2VudG9zIG1hZ2VudGEvYW1hcmlsbG8gPSBkZXRhbGxlIHB1bnR1YWwsIG51bmNhIGZvbmRvIGRlIHRleHRvLlxuICovXG5cbjpyb290IHtcbiAgLyogLS0tLSBDb2xvciDCtyBlc2NhbGEgZGUgbWFyY2EgKGN5YW4gIzAwOUVFRiA9IGJyYW5kLTUwMCkgLS0tLSAqL1xuICAtLWMtYnJhbmQtNTA6ICAjZThmNmZlO1xuICAtLWMtYnJhbmQtMTAwOiAjYzllYWZkO1xuICAtLWMtYnJhbmQtMjAwOiAjOTNkNmZiO1xuICAtLWMtYnJhbmQtMzAwOiAjNThjMGY3O1xuICAtLWMtYnJhbmQtNDAwOiAjMWZhOWYxO1xuICAtLWMtYnJhbmQtNTAwOiAjMDA5ZWVmOyAvKiBJREVOVElEQUQ6IGZpbGxzLCBiYWRnZXMsIGZvY28sIGRlY29yYXRpdm8gKi9cbiAgLS1jLWJyYW5kLTYwMDogIzBhODJjNzsgLyogYm90w7NuIHByaW1hcmlvICh0ZXh0byBibGFuY28pICovXG4gIC0tYy1icmFuZC03MDA6ICMwYzZiYTM7IC8qIGVubGFjZXMgZGUgdGV4dG8gLyBob3ZlciDigJQgQUEgc29icmUgYmxhbmNvICovXG4gIC0tYy1icmFuZC04MDA6ICMwYzU2ODE7XG4gIC0tYy1icmFuZC05MDA6ICMwYTQyNjA7XG5cbiAgLyogLS0tLSBDb2xvciDCtyBncmlzZXMgZnLDrW9zIC0tLS0gKi9cbiAgLS1jLXdoaXRlOiAgICAjZmZmZmZmO1xuICAtLWMtZ3JheS01MDogICNmNmY3Zjk7XG4gIC0tYy1ncmF5LTEwMDogI2VjZWVmMjtcbiAgLS1jLWdyYXktMjAwOiAjZGRlMWU3O1xuICAtLWMtZ3JheS0zMDA6ICNjOGNkZDY7XG4gIC0tYy1ncmF5LTQwMDogIzk5YTFhZjtcbiAgLS1jLWdyYXktNTAwOiAjNmI3MjgwOyAvKiB0ZXh0byBzZWN1bmRhcmlvICovXG4gIC0tYy1ncmF5LTYwMDogIzRiNTU2MztcbiAgLS1jLWdyYXktNzAwOiAjMzUzYzQ5O1xuICAtLWMtZ3JheS04MDA6ICMxZjI0MmU7XG4gIC0tYy1pbms6ICAgICAgIzBiMGIwZjsgLyogZ3JheS05MDAgwrcgdGV4dG8gcHJpbmNpcGFsICovXG5cbiAgLyogLS0tLSBDb2xvciDCtyBhY2VudG9zIENNWUsgKGRldGFsbGUsIG5vIGZvbmRvIGRlIHRleHRvKSAtLS0tICovXG4gIC0tYy1hY2NlbnQtY3lhbjogICAgIzAwOWVlZjtcbiAgLS1jLWFjY2VudC1tYWdlbnRhOiAjZTYxNDg0O1xuICAtLWMtYWNjZW50LXllbGxvdzogICNmZmU2MDA7XG4gIC8qIE1hZ2VudGEgcGFyYSBDVEFzIChib3RvbmVzIFwiQnVzY2FyXCIgLyBcIlZlciBjb21wYXRpYmxlc1wiKTogdW4gcHVudG8gbcOhcyB2aXZvIHlcbiAgICAgY2xhcm8gcXVlIGVsIGRlZXAgbWFnZW50YSwgc2luIGxsZWdhciBhbCBhY2VudG8gcHVybyAocXVlIHNhdHVyYWJhIGRlbWFzaWFkbykuICovXG4gIC0tYy1tYWdlbnRhLWN0YTogICAgICAgI2NjMTk3NjtcbiAgLS1jLW1hZ2VudGEtY3RhLWhvdmVyOiAjYWQxNDVmO1xuICAvKiBBbWFyaWxsbyBwYXJhIENUQXMgKGJvdMOzbiBcIlZlciBvZmVydGFzXCIpOiBFWEFDVEFNRU5URSBlbCBtaXNtbyBhbWFyaWxsbyBkZSBtYXJjYVxuICAgICBxdWUgZWwgXCLiiJI3MCAlXCIgZGVsIGJhbm5lciAodmFyIC0tYy1hY2NlbnQteWVsbG93KS4gRWwgdGV4dG8gdmEgU0lFTVBSRSBvc2N1cm9cbiAgICAgKGxpdGVyYWwpIHBhcmEgbm8gcm9tcGVyc2UgZW4gbW9kbyBvc2N1cm8uICovXG4gIC0tYy15ZWxsb3ctY3RhOiAgICAgICAgdmFyKC0tYy1hY2NlbnQteWVsbG93KTtcbiAgLS1jLXllbGxvdy1jdGEtaG92ZXI6ICAjZWJkNDAwO1xuXG4gIC8qIC0tLS0gQ29sb3Igwrcgc2Vtw6FudGljb3MgZGUgZXN0YWRvIC0tLS0gKi9cbiAgLS1jLXNhdmU6ICAgICMwZjlkNTg7IC8qIHN0b2NrIMK3IHbDoWxpZG8gwrcgw6l4aXRvIChlc3RhZG8pIOKAlCB2ZXJkZSAqL1xuICAtLWMtZGVhbDogICAgdmFyKC0tYy1hY2NlbnQtbWFnZW50YSk7IC8qIGFob3JybyDCtyBkZXNjdWVudG8gwrcgcHJlY2lvLXZlbnRhamEg4oCUIGFjZW50byBkZSBtYXJjYSAoanVuLiAyMDI2OiBlbCB2ZXJkZSBkZSBhaG9ycm8gcGFzYSBhIG1hZ2VudGEgY29ycG9yYXRpdm8pICovXG4gIC0tYy13YXJuaW5nOiAjZjU5ZTBiO1xuICAtLWMtZXJyb3I6ICAgI2RjMjYyNjtcbiAgLS1jLWluZm86ICAgICMwYTgyYzc7XG5cbiAgLyogLS0tLSBDb2xvciDCtyBzZW3DoW50aWNvcyBkZSBzdXBlcmZpY2llL3RleHRvIChiYXNlIHBhcmEgZGFyayBtb2RlKSAtLS0tICovXG4gIC0tYy1iZzogICAgICAgICAgIHZhcigtLWMtd2hpdGUpO1xuICAtLWMtc3VyZmFjZTogICAgICB2YXIoLS1jLXdoaXRlKTtcbiAgLS1jLXN1cmZhY2Utc3VuazogdmFyKC0tYy1ncmF5LTUwKTtcbiAgLS1jLWJvcmRlcjogICAgICAgdmFyKC0tYy1ncmF5LTIwMCk7XG4gIC0tYy10ZXh0OiAgICAgICAgIHZhcigtLWMtaW5rKTtcbiAgLS1jLXRleHQtbXV0ZWQ6ICAgdmFyKC0tYy1ncmF5LTUwMCk7XG4gIC0tYy1saW5rOiAgICAgICAgIHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgLS1jLWxpbmstaG92ZXI6ICAgdmFyKC0tYy1icmFuZC04MDApO1xuICAtLWMtZm9jdXM6ICAgICAgICB2YXIoLS1jLWJyYW5kLTUwMCk7XG5cbiAgLyogLS0tLSBUaXBvZ3JhZsOtYSAtLS0tICovXG4gIC0tZm9udC1zYW5zOiAnSW50ZXJWYXJpYWJsZScsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgLyogRnVlbnRlIGRlIG1hcmNhIHBhcmEgdGl0dWxhcmVzIChoZXJvLCB0w610dWxvcyBkZSBzZWNjacOzbiwgaDHigJNoMykuIENvbiBjYXLDoWN0ZXIsIGRpc3RpbnRhIGRlbFxuICAgICBzYW5zIGRlIGN1ZXJwbzogZGEgcGVyc29uYWxpZGFkIHkgZXZpdGEgZWwgYWlyZSBcInBsYW50aWxsYVwiLiBDdWVycG8geSBkYXRvcyBzaWd1ZW4gZW4gc2Fucy4gKi9cbiAgLS1mb250LWRpc3BsYXk6ICdBcmNoaXZvJywgdmFyKC0tZm9udC1zYW5zKTtcbiAgLS1mdy1yZWd1bGFyOiA0MDA7XG4gIC0tZnctbWVkaXVtOiA1MDA7XG4gIC0tZnctc2VtaWJvbGQ6IDYwMDtcbiAgLS1mdy1ib2xkOiA3MDA7XG5cbiAgLyogRXNjYWxhIG1vZHVsYXIgZmx1aWRhICh+MS4yNSkgKi9cbiAgLS1mcy1kaXNwbGF5OiBjbGFtcCgyLjVyZW0sIDEuN3JlbSArIDMuNnZ3LCA0cmVtKTtcbiAgLS1mcy1oMTogICAgICBjbGFtcCgycmVtLCAxLjU1cmVtICsgMnZ3LCAzcmVtKTtcbiAgLS1mcy1oMjogICAgICBjbGFtcCgxLjVyZW0sIDEuMjhyZW0gKyAxdncsIDIuMjVyZW0pO1xuICAtLWZzLWgzOiAgICAgIGNsYW1wKDEuMjVyZW0sIDEuMTNyZW0gKyAwLjU1dncsIDEuNjI1cmVtKTtcbiAgLS1mcy1oNDogICAgICAxLjI1cmVtO1xuICAtLWZzLWJvZHktbGc6IDEuMTI1cmVtO1xuICAtLWZzLWJvZHk6ICAgIDFyZW07XG4gIC0tZnMtYm9keS1zbTogMC44NzVyZW07XG4gIC0tZnMtY2FwdGlvbjogMC43NXJlbTtcblxuICAtLWxoLXRpZ2h0OiAgIDEuMTU7XG4gIC0tbGgtc251ZzogICAgMS4zO1xuICAtLWxoLW5vcm1hbDogIDEuNTtcbiAgLS1saC1yZWxheGVkOiAxLjY7XG5cbiAgLyogLS0tLSBFc3BhY2lhZG8gKGJhc2UgNHB4KSAtLS0tICovXG4gIC0tcy0xOiAgMC4yNXJlbTtcbiAgLS1zLTI6ICAwLjVyZW07XG4gIC0tcy0zOiAgMC43NXJlbTtcbiAgLS1zLTQ6ICAxcmVtO1xuICAtLXMtNjogIDEuNXJlbTtcbiAgLS1zLTg6ICAycmVtO1xuICAtLXMtMTI6IDNyZW07XG4gIC0tcy0xNjogNHJlbTtcbiAgLS1zLTI0OiA2cmVtO1xuXG4gIC8qIC0tLS0gUmFkaW9zIC0tLS0gKi9cbiAgLS1yYWRpdXMtc206ICAgOHB4O1xuICAtLXJhZGl1cy1tZDogICAxMnB4O1xuICAtLXJhZGl1cy1sZzogICAxNnB4O1xuICAtLXJhZGl1cy1mdWxsOiA5OTk5cHg7XG5cbiAgLyogLS0tLSBTb21icmFzIChlbGV2YWNpw7NuIGUx4oCTZTQsIHN1dGlsZXMvcHJlbWl1bSkgLS0tLSAqL1xuICAtLXNoYWRvdy1lMTogMCAxcHggMnB4IHJnYmEoMTEsIDExLCAxNSwgMC4wNiksIDAgMXB4IDFweCByZ2JhKDExLCAxMSwgMTUsIDAuMDQpO1xuICAtLXNoYWRvdy1lMjogMCAycHggOHB4IHJnYmEoMTEsIDExLCAxNSwgMC4wOCk7XG4gIC0tc2hhZG93LWUzOiAwIDhweCAyNHB4IHJnYmEoMTEsIDExLCAxNSwgMC4xMCk7XG4gIC0tc2hhZG93LWU0OiAwIDE2cHggNDhweCByZ2JhKDExLCAxMSwgMTUsIDAuMTQpO1xuXG4gIC8qIC0tLS0gTGF5b3V0IC0tLS0gKi9cbiAgLS1jb250YWluZXItbWF4OiAxMjgwcHg7XG5cbiAgLyogLS0tLSBNb3ZpbWllbnRvIC0tLS0gKi9cbiAgLS10cmFuc2l0aW9uLWZhc3Q6IDE1MG1zIGVhc2U7XG4gIC0tdHJhbnNpdGlvbjogICAgICAyMDBtcyBlYXNlO1xuICAtLXRyYW5zaXRpb24tc2xvdzogMzAwbXMgZWFzZS1vdXQ7XG5cbiAgLyogLS0tLSBaLWluZGV4IChlc2NhbGEgbm9tYnJhZGEpIC0tLS0gKi9cbiAgLS16LWhlYWRlcjogICAgMTAzMDtcbiAgLS16LWRyb3Bkb3duOiAgMTAwMDtcbiAgLS16LW9mZmNhbnZhczogMTA0NTtcbiAgLS16LW1vZGFsOiAgICAgMTA1NTtcbiAgLS16LXRvYXN0OiAgICAgMTA5MDtcblxuICAvKiBCcmVha3BvaW50cyAocmVmZXJlbmNpYSk6IHNtIDY0MCDCtyBtZCA3NjggwrcgbGcgMTAyNCDCtyB4bCAxMjgwIMK3IDJ4bCAxNTM2ICovXG59XG5cbi8qIC0tLS0gRGFyayBtb2RlIChwcmVwYXJhZG8sIE5PIGFjdGl2YWRvIGFsIGxhbnphbWllbnRvKSAtLS0tXG4gICBTZW3DoW50aWNhIHBvciB0b2tlbnMuIFVuIMO6bmljbyBpbnRlcnJ1cHRvciBsbyBlbmNpZW5kZTogYGRhdGEtYnMtdGhlbWU9XCJkYXJrXCJgXG4gICAoZWwgbmF0aXZvIGRlIEJvb3RzdHJhcCA1LjMsIHF1ZSBhZGVtw6FzIHZvbHRlYSBzdXMgcHJvcGlvcyBjb21wb25lbnRlcykgbyBlbFxuICAgYWxpYXMgYGRhdGEtdGhlbWU9XCJkYXJrXCJgLiBBbCB2b2xjYXIgLS1jLWJnLy0tYy10ZXh0LCBlbCBwdWVudGUgX2JyYW5kLnNjc3NcbiAgIGFycmFzdHJhIC0tYnMtYm9keS1iZy8tLWJzLWJvZHktY29sb3IsIGFzw60gcXVlIHRvZGEgbGEgdGllbmRhIGNhbWJpYSBhIGxhIHZlei4gKi9cbltkYXRhLXRoZW1lPSdkYXJrJ10sXG5bZGF0YS1icy10aGVtZT0nZGFyayddIHtcbiAgLS1jLWJnOiAgICAgICAgICAgIzBiMGQxMDtcbiAgLS1jLXN1cmZhY2U6ICAgICAgIzE0MTcxYztcbiAgLS1jLXN1cmZhY2Utc3VuazogIzBmMTIxNjtcbiAgLS1jLWJvcmRlcjogICAgICAgIzI2MmIzMztcbiAgLS1jLXRleHQ6ICAgICAgICAgI2YzZjVmNztcbiAgLS1jLXRleHQtbXV0ZWQ6ICAgIzlhYTFhZjtcbiAgLS1jLWxpbms6ICAgICAgICAgdmFyKC0tYy1icmFuZC0zMDApO1xuICAtLWMtbGluay1ob3ZlcjogICB2YXIoLS1jLWJyYW5kLTIwMCk7XG4gIC0tYy1pbms6ICAgICAgICAgICNmM2Y1Zjc7IC8qIGVsIHRleHRvIFwiZnVlcnRlXCIgKHByZWNpb3MsIHTDrXR1bG9zKSB0YW1iacOpbiBzZSBhY2xhcmEgKi9cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgOnJvb3Qge1xuICAgIC0tdHJhbnNpdGlvbi1mYXN0OiAwbXM7XG4gICAgLS10cmFuc2l0aW9uOiAgICAgIDBtcztcbiAgICAtLXRyYW5zaXRpb24tc2xvdzogMG1zO1xuICB9XG59XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIEJhc2UgbGlnZXJhIHNvYnJlIGVsIHN0b3JlZnJvbnQgU3lsaXVzLlxuICogUmVmaW5hbWllbnRvcyBnbG9iYWxlcyBubyBpbnZhc2l2b3M7IGxhIG1hcXVldGFjacOzbiBwb3IgcGFudGFsbGEgaXLDoSBlbiBjYXBhcyBhcGFydGUuXG4gKi9cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNhbnMpO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYmcpO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTAwKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi8qIFTDrXR1bG9zIHVuIHB1bnRvIG3DoXMgY29udHVuZGVudGVzIChwZXJzb25hbGlkYWQgZGUgbWFyY2EsIEZhc2UgOCkgKi9cbmgxLCBoMiwgaDMsIC5oMSwgLmgyLCAuaDMge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXRpZ2h0KTtcbn1cblxuLyogQWNlbnRvcyBDTVlLIHJldXRpbGl6YWJsZXMgY29tbyB1dGlsaWRhZGVzIGRlIGRldGFsbGUgKi9cbi50ZXh0LWFjY2VudC1tYWdlbnRhIHsgY29sb3I6IHZhcigtLWMtYWNjZW50LW1hZ2VudGEpOyB9XG4udGV4dC1zYXZlICAgICAgICAgICB7IGNvbG9yOiB2YXIoLS1jLWRlYWwpOyB9XG4uYmctYnJhbmQgICAgICAgICAgICB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtNTAwKTsgfVxuLmJnLWJyYW5kLXNvZnQgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTUwKTsgfVxuIiwiLypcbiAqIFRvbmVyZGVsdXhlIOKAlCBQdWVudGUgbWFyY2Eg4oaSIEJvb3RzdHJhcCA1LjMgKHN0b3JlZnJvbnQgU3lsaXVzKVxuICogU2UgY2FyZ2EgREVTUFXDiVMgZGVsIENTUyBkZWwgdmVuZG9yIChob29rIGFwcF9zdHlsZXMpLCBwb3IgbG8gcXVlIGVzdG9zXG4gKiBvdmVycmlkZXMgZGUgdmFyaWFibGVzIENTUyBkZSBCb290c3RyYXAgZ2FuYW4gbGEgY2FzY2FkYSBzaW4gcmVjb21waWxhciBCb290c3RyYXAuXG4gKiBSZWVtcGxhemEgZWwgdGVhbCBwb3IgZGVmZWN0byBkZSBTeWxpdXMgKCMyMkI5OUEpIHBvciBlbCBjeWFuIGRlIG1hcmNhICgjMDA5RUVGKS5cbiAqL1xuXG46cm9vdCB7XG4gIC8qIFByaW1hcnkgZGUgbWFyY2EgKi9cbiAgLS1icy1wcmltYXJ5OiB2YXIoLS1jLWJyYW5kLTUwMCk7XG4gIC0tYnMtcHJpbWFyeS1yZ2I6IDAsIDE1OCwgMjM5O1xuXG4gIC8qIEVubGFjZXMgKHRvbm8gYWNjZXNpYmxlIEFBKSAqL1xuICAtLWJzLWxpbmstY29sb3I6IHZhcigtLWMtbGluayk7XG4gIC0tYnMtbGluay1jb2xvci1yZ2I6IDEyLCAxMDcsIDE2MztcbiAgLS1icy1saW5rLWhvdmVyLWNvbG9yOiB2YXIoLS1jLWxpbmstaG92ZXIpO1xuICAtLWJzLWxpbmstaG92ZXItY29sb3ItcmdiOiAxMiwgODYsIDEyOTtcblxuICAvKiBDdWVycG8geSB0aXBvZ3JhZsOtYSAqL1xuICAtLWJzLWJvZHktY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIC0tYnMtYm9keS1jb2xvci1yZ2I6IDExLCAxMSwgMTU7XG4gIC0tYnMtYm9keS1iZzogdmFyKC0tYy1iZyk7XG4gIC0tYnMtZW1waGFzaXMtY29sb3I6IHZhcigtLWMtaW5rKTtcbiAgLS1icy1ib3JkZXItY29sb3I6IHZhcigtLWMtYm9yZGVyKTtcbiAgLS1icy1mb250LXNhbnMtc2VyaWY6IHZhcigtLWZvbnQtc2Fucyk7XG4gIC0tYnMtYm9keS1mb250LWZhbWlseTogdmFyKC0tZm9udC1zYW5zKTtcblxuICAvKiBBbmlsbG8gZGUgZm9jbyBkZSBtYXJjYSAqL1xuICAtLWJzLWZvY3VzLXJpbmctY29sb3I6IHJnYmEoMCwgMTU4LCAyMzksIDAuMzUpO1xufVxuXG4vKiBCb3TDs24gcHJpbWFyaW8gZGUgbWFyY2Eg4oCUIEJvb3RzdHJhcCBmaWphIGxvcyAtLWJzLWJ0bi0qIGRlbnRybyBkZSAuYnRuLXByaW1hcnksXG4gICBhc8OtIHF1ZSBoYXkgcXVlIHJlZGVmaW5pcmxvcyBhcXXDrS4gRm9uZG8gYnJhbmQtNjAwICsgdGV4dG8gYmxhbmNvID0gY29udHJhc3RlIHN1ZmljaWVudGUuICovXG4uYnRuLXByaW1hcnkge1xuICAtLWJzLWJ0bi1iZzogdmFyKC0tYy1icmFuZC02MDApO1xuICAtLWJzLWJ0bi1ib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTtcbiAgLS1icy1idG4taG92ZXItYmc6IHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgLS1icy1idG4taG92ZXItYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogdmFyKC0tYy1icmFuZC04MDApO1xuICAtLWJzLWJ0bi1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTgwMCk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJnOiB2YXIoLS1jLWJyYW5kLTMwMCk7XG4gIC0tYnMtYnRuLWRpc2FibGVkLWJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC0zMDApO1xuICAtLWJzLWJ0bi1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tZGlzYWJsZWQtY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWZvY3VzLXNoYWRvdy1yZ2I6IDAsIDE1OCwgMjM5O1xufVxuXG4uYnRuLW91dGxpbmUtcHJpbWFyeSB7XG4gIC0tYnMtYnRuLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIC0tYnMtYnRuLWJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC02MDApO1xuICAtLWJzLWJ0bi1ob3Zlci1iZzogdmFyKC0tYy1icmFuZC02MDApO1xuICAtLWJzLWJ0bi1ob3Zlci1ib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTtcbiAgLS1icy1idG4taG92ZXItY29sb3I6ICNmZmY7XG4gIC0tYnMtYnRuLWFjdGl2ZS1iZzogdmFyKC0tYy1icmFuZC03MDApO1xuICAtLWJzLWJ0bi1hY3RpdmUtYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIC0tYnMtYnRuLWFjdGl2ZS1jb2xvcjogI2ZmZjtcbiAgLS1icy1idG4tZm9jdXMtc2hhZG93LXJnYjogMCwgMTU4LCAyMzk7XG59XG5cbi8qIFBhZ2luYWNpw7NuIGNvbiBjb2xvciBkZSBtYXJjYSAqL1xuLnBhZ2luYXRpb24ge1xuICAtLWJzLXBhZ2luYXRpb24tY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgLS1icy1wYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTgwMCk7XG4gIC0tYnMtcGFnaW5hdGlvbi1hY3RpdmUtYmc6IHZhcigtLWMtYnJhbmQtNjAwKTtcbiAgLS1icy1wYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTtcbiAgLS1icy1wYWdpbmF0aW9uLWZvY3VzLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTgwMCk7XG59XG5cbi8qIEZvcm0gY29udHJvbHM6IGZvY28gZGUgbWFyY2EgKi9cbi5mb3JtLWNvbnRyb2w6Zm9jdXMsXG4uZm9ybS1zZWxlY3Q6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNDAwKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4yNXJlbSByZ2JhKDAsIDE1OCwgMjM5LCAwLjI1KTtcbn1cblxuLyogRWwgdGVhbCBkZSBTeWxpdXMgcXVlZGEgY29tcGlsYWRvIGNvbW8gbGl0ZXJhbCBlbiBhbGd1bmFzIHJlZ2xhcyBkZWwgbmF2YmFyOlxuICAgbG8gY29ycmVnaW1vcyBhIGN5YW4gZGUgbWFyY2EuICovXG4ubmF2YmFyIC5uYXYtbGluazpob3Zlcixcbi5uYXZiYXIgLm5hdi1saW5rOmZvY3VzLFxuLm5hdmJhciAubmF2LWxpbmsuYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKSAhaW1wb3J0YW50O1xufVxuXG4vKiBGb2NvIGFjY2VzaWJsZSB2aXNpYmxlIHkgY29uc2lzdGVudGUgZW4gdG9kYSBsYSB0aWVuZGEgKi9cbjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtZm9jdXMpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4vKiBMb2dvOiBnYXJhbnRpemEgZWwgd29yZG1hcmsgZW4gdGludGEgc29icmUgZm9uZG9zIGNsYXJvcyAoY3VycmVudENvbG9yKSAqL1xuLnRuZC1sb2dvIHtcbiAgY29sb3I6IHZhcigtLWMtaW5rKTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIENvbXBvbmVudGVzIHJldXRpbGl6YWJsZXMgKEZhc2UgOCkuXG4gKiBUYXJqZXRhIGRlIHByb2R1Y3RvIGJhc2U6IHNlIHJldXRpbGl6YXLDoSB5IGFtcGxpYXLDoSBlbiBjYXRlZ29yw61hcyAoRmFzZSAzKSB5IGZpY2hhIChGYXNlIDQpLlxuICovXG5cbi8qIEJvdMOzbiBDVEEgbWFnZW50YSAobWlzbW8gY29sb3IgcXVlIFwiQnVzY2FyXCIgZGVsIGhlYWRlcik6IFwiVmVyIGNvbXBhdGlibGVzXCIsIGV0Yy4gKi9cbi50bmQtYnRuLW1hZ2VudGEuYnRuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1tYWdlbnRhLWN0YSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1tYWdlbnRhLWN0YSk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbn1cbi50bmQtYnRuLW1hZ2VudGEuYnRuOmhvdmVyLFxuLnRuZC1idG4tbWFnZW50YS5idG46Zm9jdXMtdmlzaWJsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtbWFnZW50YS1jdGEtaG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtbWFnZW50YS1jdGEtaG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG59XG5cbi8qIEJvdMOzbiBDVEEgYW1hcmlsbG8gKGRvcmFkbyk6IFwiVmVyIG9mZXJ0YXNcIi4gVGV4dG8gb3NjdXJvIGZpam8gKGxlZ2libGUgc29icmUgYW1hcmlsbG9cbiAgIHkgYSBzYWx2byBkZWwgbW9kbyBvc2N1cm8pLiAqL1xuLnRuZC1idG4teWVsbG93LmJ0biB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMteWVsbG93LWN0YSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy15ZWxsb3ctY3RhKTtcbiAgY29sb3I6ICMxYjE1MDA7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG59XG4udG5kLWJ0bi15ZWxsb3cuYnRuOmhvdmVyLFxuLnRuZC1idG4teWVsbG93LmJ0bjpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy15ZWxsb3ctY3RhLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLXllbGxvdy1jdGEtaG92ZXIpO1xuICBjb2xvcjogIzFiMTUwMDtcbn1cblxuLnRuZC1jYXJkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uKSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24pLCB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XG59XG4udG5kLWNhcmQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtMzAwKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUyKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbn1cbi8qIEVubGFjZSBpbnRlcm5vIHF1ZSBlbnZ1ZWx2ZSBpbWFnZW4gKyBkYXRvcyAobGEgdGFyamV0YSB5YSBubyBlcyB1biA8YT46IGxsZXZhIGVsIGJvdMOzblxuICAgXCJBw7FhZGlyIGFsIGNhcnJpdG9cIiBmdWVyYSBkZWwgZW5sYWNlIHBhcmEgcXVlIHNlYSBIVE1MIHbDoWxpZG8geSBjbGljYWJsZSBwb3Igc2VwYXJhZG8pLiAqL1xuLnRuZC1jYXJkX19saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi50bmQtY2FyZF9fbGluazpob3Zlcixcbi50bmQtY2FyZF9fbGluazpmb2N1cyB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuLyogQm90w7NuIFwiQcOxYWRpciBhbCBjYXJyaXRvXCIgYWwgcGllIGRlIGxhIHRhcmpldGEgKGFsaW5lYWRvIGVudHJlIHRhcmpldGFzIGRlIGRpc3RpbnRhIGFsdHVyYSkuICovXG4udG5kLWNhcmRfX2FkZCB7XG4gIHBhZGRpbmc6IDAgdmFyKC0tcy0zKSB2YXIoLS1zLTMpO1xufVxuLnRuZC1jYXJkX19hZGQgLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTEpO1xufVxuLyogUGllIGRlIHRhcmpldGEgc2luIHN0b2NrOiBldGlxdWV0YSBcIlNpbiBzdG9ja1wiICsgYm90w7NuIFwiQXbDrXNhbWVcIiAoZW4gbHVnYXIgZGUgXCJBw7FhZGlyXCIpLiAqL1xuLnRuZC1jYXJkX19vb3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXMtMSk7XG59XG4udG5kLWNhcmRfX29vcy10YWcge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0xKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4udG5kLWNhcmRfX29vcy10YWcgc3ZnIHsgd2lkdGg6IDAuOTVyZW07IGhlaWdodDogMC45NXJlbTsgfVxuLnRuZC1jYXJkX19vb3MgLnRkLW5vdGlmeS1idG4geyBnYXA6IHZhcigtLXMtMSk7IH1cblxuLnRuZC1jYXJkX19tZWRpYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLyogUmVjdWFkcm8gZGUgaW1hZ2VuIG3DoXMgYmFqbyAoMzoyKSBwYXJhIHF1ZSBlbCBwcmVjaW8gcXVlZGUgdmlzaWJsZSBzaW4gZGVzcGxhemFyc2UuICovXG4gIGFzcGVjdC1yYXRpbzogMyAvIDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2Utc3Vuayk7XG4gIHBhZGRpbmc6IHZhcigtLXMtMik7XG59XG4udG5kLWNhcmRfX2JhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IHZhcigtLXMtMik7XG4gIGxlZnQ6IHZhcigtLXMtMik7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYWNjZW50LW1hZ2VudGEpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBwYWRkaW5nOiAycHggdmFyKC0tcy0yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbn1cbi50bmQtY2FyZF9fbWVkaWEgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7XG59XG4udG5kLWNhcmRfX25vaW1nIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JheS0zMDApO1xufVxuLnRuZC1jYXJkX19ub2ltZyBzdmcge1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbn1cblxuLnRuZC1jYXJkX19ib2R5IHtcbiAgcGFkZGluZzogdmFyKC0tcy0zKTtcbiAgZ2FwOiB2YXIoLS1zLTEpO1xuICBmbGV4OiAxIDEgYXV0bztcbn1cbi50bmQtY2FyZF9fY2hpcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIHBhZGRpbmc6IDFweCB2YXIoLS1zLTIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi50bmQtY2FyZF9fY2hpcC0tY29tcGF0aWJsZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMTU4LCAyMzksIDAuMTIpO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xufVxuLnRuZC1jYXJkX19jaGlwLS1vcmlnaW5hbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JheS0xMDApO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTcwMCk7XG59XG4udG5kLWNhcmRfX2JyYW5kIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG59XG4udG5kLWNhcmRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXNudWcpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi50bmQtY2FyZF9fcmF0aW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGdhcDogMXB4O1xuICBjb2xvcjogdmFyKC0tYy1hY2NlbnQteWVsbG93KTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLnRuZC1jYXJkX19yYXRpbmcgc3ZnIHsgd2lkdGg6IDAuOXJlbTsgaGVpZ2h0OiAwLjlyZW07IH1cbi50bmQtY2FyZF9fcHJpY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1zLTEpO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tcy0yKTtcbn1cbi50bmQtY2FyZF9fbm93IHtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktbGcpO1xuICBjb2xvcjogdmFyKC0tYy1pbmspO1xufVxuLnRuZC1jYXJkX193YXMge1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG4udG5kLWNhcmRfX3ByaWNlIHNtYWxsIHtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXJlZ3VsYXIpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi8qIEFob3JybyBmcmVudGUgYWwgb3JpZ2luYWwgKHNvbG8gZW4gY29tcGF0aWJsZXMgZW1wYXJlamFkb3MgcG9yIE9FTSkuICovXG4udG5kLWNhcmRfX3NhdmUge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAzcHg7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgY29sb3I6IHZhcigtLWMtZGVhbCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjMwLCAyMCwgMTMyLCAwLjEwKTsgLyogdGludGUgbWFnZW50YSBjb3Jwb3JhdGl2byAoYWNlbnRvIGRlIGFob3JybykgKi9cbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBwYWRkaW5nOiAxcHggdmFyKC0tcy0yKTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLnRuZC1jYXJkX19zYXZlIHN2ZyB7IHdpZHRoOiAwLjg1cmVtOyBoZWlnaHQ6IDAuODVyZW07IH1cblxuLyogLS0tLSBDaGlwIC8gQmFkZ2UgKGNvbXBvbmVudGUgZGVsIHNpc3RlbWEsIHVzYWJsZSBmdWVyYSBkZSBsYSB0YXJqZXRhKSAtLS0tXG4gICBWYXJpYW50ZXMgc2Vtw6FudGljYXM6IHRpcG8gZGUgY29uc3VtaWJsZSAoY29tcGF0aWJsZS9vcmlnaW5hbC9yZW1hbnVmYWN0dXJhZG8pLFxuICAgYWhvcnJvICjiiJIlKSwgc3RvY2sgeSBub3ZlZGFkLiBQZW5zYWRvcyBjb21vIGV0aXF1ZXRhIHBlcXVlw7FhLCBudW5jYSBmb25kbyBkZSB0ZXh0byBsYXJnby4gKi9cbi50bmQtY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIHBhZGRpbmc6IDFweCB2YXIoLS1zLTIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JheS0xMDApO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTcwMCk7XG59XG4udG5kLWNoaXAtLWNvbXBhdGlibGUgeyBiYWNrZ3JvdW5kOiByZ2JhKDAsIDE1OCwgMjM5LCAwLjEyKTsgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTsgfVxuLnRuZC1jaGlwLS1vcmlnaW5hbCAgIHsgYmFja2dyb3VuZDogdmFyKC0tYy1ncmF5LTEwMCk7IGNvbG9yOiB2YXIoLS1jLWdyYXktNzAwKTsgfVxuLnRuZC1jaGlwLS1yZW1hbnVmYWN0dXJlZCB7IGJhY2tncm91bmQ6IHJnYmEoMTUsIDE1NywgODgsIDAuMTIpOyBjb2xvcjogIzBiN2E0NDsgfVxuLnRuZC1jaGlwLS1zYXZlICAgICB7IGJhY2tncm91bmQ6IHZhcigtLWMtYWNjZW50LW1hZ2VudGEpOyBjb2xvcjogI2ZmZjsgfVxuLnRuZC1jaGlwLS1zdG9jayAgICB7IGJhY2tncm91bmQ6IHJnYmEoMTUsIDE1NywgODgsIDAuMTQpOyBjb2xvcjogIzBiN2E0NDsgfVxuLnRuZC1jaGlwLS1vdXRzdG9jayB7IGJhY2tncm91bmQ6IHZhcigtLWMtZ3JheS0xMDApOyBjb2xvcjogdmFyKC0tYy1ncmF5LTUwMCk7IH1cbi50bmQtY2hpcC0tbmV3ICAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjMwLCAwLCAwLjIyKTsgY29sb3I6ICM4YTc0MDA7IH1cblxuLyogRXN0YWRvIHZhY8OtbyBnZW7DqXJpY28gKi9cbi50bmQtZW1wdHkge1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2Utc3Vuayk7XG59XG5cbi8qIENvaW5jaWRlbmNpYXMgZGUgaW1wcmVzb3JhIGVuIGVsIGJ1c2NhZG9yIGZlZGVyYWRvICovXG4udG5kLXByaW50ZXItaGl0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBwYWRkaW5nOiB2YXIoLS1zLTMpIHZhcigtLXMtNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG59XG4udG5kLXByaW50ZXItaGl0c19fbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC05MDApO1xufVxuLnRuZC1wcmludGVyLWhpdHNfX2xhYmVsIHN2ZyB7XG4gIHdpZHRoOiAxLjE1cmVtO1xuICBoZWlnaHQ6IDEuMTVyZW07XG59XG4udG5kLXByaW50ZXItaGl0c19fY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiB2YXIoLS1zLTEpIHZhcigtLXMtMyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0yMDApO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcbn1cbi50bmQtcHJpbnRlci1oaXRzX19jaGlwOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC02MDApO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTtcbiAgY29sb3I6ICNmZmY7XG59XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIEZvcm11bGFyaW8gZGUgZGlyZWNjacOzbjogd2lkZ2V0IGRlIHRlbMOpZm9ubyAoc2VsZWN0b3IgZGUgcGHDrXMgY29uIGJhbmRlcmEgK1xuICogcHJlZmlqbyBlZGl0YWJsZSArIG7Dum1lcm8pIHkgYmFkZ2UgaW5mb3JtYXRpdm8gZGUgVklFUyBkZWwgTklGL0NJRi4gVXNhIGxvcyB0b2tlbnMgZGVcbiAqIF90b2tlbnMuc2Nzcy4gTGFzIGJhbmRlcmFzIHNvbiBTVkcgKHNlIHZlbiBpZ3VhbCBlbiBjdWFscXVpZXIgc2lzdGVtYSkuXG4gKi9cblxuLnRuZC1mbGFnIHtcbiAgd2lkdGg6IDEuMzVyZW07XG4gIGhlaWdodDogMC45cmVtO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLnRuZC1waG9uZSB7XG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gIH1cblxuICAmX19jb3VudHJ5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAmX19mbGFnLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuMzVyZW07XG4gICAgd2lkdGg6IGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmctaW5saW5lOiAwLjZyZW07XG4gIH1cblxuICAmX19jYXJldCB7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAmX19wcmVmaXgge1xuICAgIG1heC13aWR0aDogNXJlbTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19uYXRpb25hbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IHZhcigtLXotZHJvcGRvd24pO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTEpO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAxMnJlbTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMyk7XG5cbiAgICBidXR0b24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogdmFyKC0tcy0yKSB2YXIoLS1zLTMpO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLXN1bmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4udG5kLXZhdC1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogdmFyKC0tcy0yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG5cbiAgJi0tb2sge1xuICAgIGNvbG9yOiB2YXIoLS1jLXNhdmUpO1xuICB9XG5cbiAgJi0taW5mbyB7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIH1cbn1cbiIsIi8qXG4gKiBUb25lcmRlbHV4ZSDigJQgSGVhZGVyIChGYXNlIDIpOiB1dGlsaXR5IGJhciBkZSBjb25maWFuemEgKyBiYXJyYSBwcmluY2lwYWwgc3RpY2t5LlxuICovXG5cbi8qIC0tLS0gVXRpbGl0eSBiYXIgKGJhcnJhIGRlIGNvbmZpYW56YSBzdXBlcmlvcikgLS0tLSAqL1xuLnRuZC11dGlsaXR5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1pbmspO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTEwMCk7XG4gIC8qIFBvciBlbmNpbWEgZGVsIGhlYWRlciBzdGlja3kgcGFyYSBxdWUgU1VTIGRlc3BsZWdhYmxlcyAoaWRpb21hLCBtb25lZGEsIGN1ZW50YSkgc2VcbiAgICAgdmVhbiBwb3IgZW5jaW1hIGRlbCBoZWFkZXIgeSBzZSBwdWVkYW4gc2VsZWNjaW9uYXIgKGFudGVzIHF1ZWRhYmFuIG9jdWx0b3MgZGViYWpvKS4gKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiBjYWxjKHZhcigtLXotaGVhZGVyKSArIDUpO1xufVxuLnRuZC11dGlsaXR5IGEge1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTEwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi50bmQtdXRpbGl0eSBhOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi50bmQtdHJ1c3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKSB2YXIoLS1zLTYpO1xufVxuLnRuZC10cnVzdF9faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMik7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS1jLWdyYXktMTAwKTtcbn1cbi50bmQtdHJ1c3RfX2l0ZW0gc3ZnIHtcbiAgd2lkdGg6IDFyZW07XG4gIGhlaWdodDogMXJlbTtcbiAgZmxleDogbm9uZTtcbiAgY29sb3I6IHZhcigtLWMtYWNjZW50LWN5YW4pO1xufVxuXG4vKiBNw7N2aWw6IHVuIG1lbnNhamUgYSBsYSB2ZXosIHJvdGFjacOzbiBDU1MgKHNpbiBKUykgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAudG5kLXRydXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxLjI1cmVtO1xuICB9XG4gIC50bmQtdHJ1c3RfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGFuaW1hdGlvbjogdG5kLXRydXN0LXJvdGF0ZSAxMnMgaW5maW5pdGU7XG4gIH1cbiAgLnRuZC10cnVzdF9faXRlbTpudGgtY2hpbGQoMikgeyBhbmltYXRpb24tZGVsYXk6IDNzOyB9XG4gIC50bmQtdHJ1c3RfX2l0ZW06bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiA2czsgfVxuICAudG5kLXRydXN0X19pdGVtOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogOXM7IH1cbn1cblxuQGtleWZyYW1lcyB0bmQtdHJ1c3Qtcm90YXRlIHtcbiAgMCUsIDIlICAgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICA2JSwgMjUlICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAyOSUsIDEwMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7IH1cbn1cblxuLyogLS0tLSBCYXJyYSBwcmluY2lwYWwgc3RpY2t5IC0tLS0gKi9cbi50bmQtaGVhZGVyLW1haW4ge1xuICAvKiBBbHR1cmEgY29tw7puIGRlIGxvcyBjb250cm9sZXMgZGVsIGhlYWRlciAoYnVzY2Fkb3IsIGxvZ2luL3JlZ2lzdHJvLCBjYXJyaXRvKTpcbiAgICAgYXPDrSBxdWVkYW4gcGVyZmVjdGFtZW50ZSBhIGxhIG1pc21hIGzDrW5lYS4gKi9cbiAgLS10bmQtY29udHJvbC1oOiAyLjg3NXJlbTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiB2YXIoLS16LWhlYWRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYmcpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTEpO1xufVxuXG4vKiBMb2dvIGRlbCBoZWFkZXIgZGltZW5zaW9uYWRvIHBvciBBTFRVUkEgcGFyYSBpZ3VhbGFyIGxhIGFsdHVyYSBkZSBsb3MgY29udHJvbGVzXG4gICAoYnVzY2Fkb3IvbG9naW4vcmVnaXN0cm8vY2Fycml0bykgeSBxdWVkYXIgYSBsYSBtaXNtYSBsw61uZWEuIEVsIGFuY2hvIGxvIGRlZHVjZVxuICAgZWwgcHJvcGlvIFNWRyBwb3Igc3UgcmVsYWNpw7NuIGRlIGFzcGVjdG8uICovXG4udG5kLWhlYWRlci1tYWluIC50bmQtbG9nbyxcbi50bmQtY2hlY2tvdXQtbG9nbyAudG5kLWxvZ28ge1xuICBoZWlnaHQ6IDIuMnJlbTtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAudG5kLWhlYWRlci1tYWluIC50bmQtbG9nbyxcbiAgLnRuZC1jaGVja291dC1sb2dvIC50bmQtbG9nbyB7IGhlaWdodDogMi42NXJlbTsgfVxufVxuLnRuZC1sb2dvLWxpbmsge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4vKiAtLS0tIE1lbsO6IGRlIGN1ZW50YSAoZGVza3RvcCk6IGJvdMOzbiBjb21wYWN0byArIGRyb3Bkb3duIGRlIG1hcmNhIC0tLS0gKi9cbi50bmQtYWNjb3VudF9fdG9nZ2xlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgbWF4LXdpZHRoOiAxMnJlbTtcbiAgcGFkZGluZzogMC40cmVtIDAuNjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JheS0zMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24pLCBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24pO1xufVxuLnRuZC1hY2NvdW50X190b2dnbGU6aG92ZXIsXG4udG5kLWFjY291bnRfX3RvZ2dsZVthcmlhLWV4cGFuZGVkPSd0cnVlJ10ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNDAwKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUxKTtcbn1cbi50bmQtYWNjb3VudF9fYXZhdGFyIHtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMS43NXJlbTtcbiAgaGVpZ2h0OiAxLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApO1xufVxuLnRuZC1hY2NvdW50X19hdmF0YXIgc3ZnIHsgd2lkdGg6IDEuMDVyZW07IGhlaWdodDogMS4wNXJlbTsgfVxuLnRuZC1hY2NvdW50X19uYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udG5kLWFjY291bnRfX2NhcmV0IHtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyYXktNTAwKTtcbn1cbi50bmQtYWNjb3VudF9fY2FyZXQgc3ZnIHsgd2lkdGg6IDAuOTVyZW07IGhlaWdodDogMC45NXJlbTsgfVxuXG4udG5kLWFjY291bnRfX21lbnUuZHJvcGRvd24tbWVudSB7XG4gIC0tYnMtZHJvcGRvd24tbWluLXdpZHRoOiAxMi41cmVtO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zLTIpO1xuICBwYWRkaW5nOiB2YXIoLS1zLTIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMyk7XG59XG4udG5kLWFjY291bnRfX2l0ZW0uZHJvcGRvd24taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgcGFkZGluZzogdmFyKC0tcy0yKSB2YXIoLS1zLTMpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbn1cbi50bmQtYWNjb3VudF9faXRlbS5kcm9wZG93bi1pdGVtOmhvdmVyLFxuLnRuZC1hY2NvdW50X19pdGVtLmRyb3Bkb3duLWl0ZW06Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwKTtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTtcbn1cbi50bmQtYWNjb3VudF9faXRlbSBzdmcgeyB3aWR0aDogMS4xcmVtOyBoZWlnaHQ6IDEuMXJlbTsgZmxleDogbm9uZTsgY29sb3I6IHZhcigtLWMtZ3JheS01MDApOyB9XG4udG5kLWFjY291bnRfX2l0ZW06aG92ZXIgc3ZnLFxuLnRuZC1hY2NvdW50X19pdGVtOmZvY3VzIHN2ZyB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCk7IH1cblxuLyogLS0tLSBCdXNjYWRvciBwcm90YWdvbmlzdGEgLS0tLSAqL1xuLnRuZC1zZWFyY2gge1xuICAvKiBFbCBidXNjYWRvciBzZSBjZW50cmEgdmVydGljYWxtZW50ZSByZXNwZWN0byBhbCBsb2dvIHkgYWwgY2Fycml0byBkZSBzdSBtaXNtYSBmaWxhLiAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnRuZC1zZWFyY2hfX2Zvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbn1cblxuLyogLS0tLSBEcm9wZG93biBkZSBhdXRvY29tcGxldGFkbyAtLS0tICovXG4udG5kLXN1Z2dlc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgNnB4KTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IHZhcigtLXotZHJvcGRvd24pO1xuICBtYXgtaGVpZ2h0OiA3MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiB2YXIoLS1zLTIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMyk7XG4gIGFuaW1hdGlvbjogdG5kLXN1Z2dlc3QtaW4gdmFyKC0tdHJhbnNpdGlvbikgYm90aDtcbn1cbkBrZXlmcmFtZXMgdG5kLXN1Z2dlc3QtaW4ge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpIHNjYWxlKDAuOTkpOyB9XG4gIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cbn1cblxuLyogLS0tLSBEb3MgcGFuZWxlczogaW1wcmVzb3JhcyB8IHByb2R1Y3RvcyAtLS0tXG4gKiBFbiBtw7N2aWwvY29sdW1uYSDDum5pY2Egc2UgYXBpbGFuIChpbXByZXNvcmFzIHkgbHVlZ28gcHJvZHVjdG9zKS5cbiAqIEVuIFBDLCBjdWFuZG8gaGF5IGRlIGFtYm9zIHRpcG9zICgtLXNwbGl0KSwgZWwgcGFuZWwgc2UgZW5zYW5jaGEgeSBzZSBkaXZpZGVcbiAqIGVuIGRvcyBjb2x1bW5hcyBjb24gdW4gc2VwYXJhZG9yLCBjZW50cmFkbyBzb2JyZSBlbCBidXNjYWRvci4gKi9cbi50bmQtc3VnZ2VzdF9fY29scyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IHZhcigtLXMtMSk7XG59XG4udG5kLXN1Z2dlc3RfX2NvbCB7IG1pbi13aWR0aDogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnRuZC1zdWdnZXN0LS1zcGxpdCAudG5kLXN1Z2dlc3RfX2NvbHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDM4JSkgbWlubWF4KDAsIDFmcik7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tcy00KTtcbiAgfVxuICAudG5kLXN1Z2dlc3QtLXNwbGl0IC50bmQtc3VnZ2VzdF9fY29sLS1wcmludGVycyB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLXMtMyk7XG4gIH1cbn1cblxuLyogUGFuZWwgbXVjaG8gbcOhcyBhbmNobyBlbiBQQyBjdWFuZG8gc2UgZGl2aWRlIGVuIGRvcyBjb2x1bW5hcy4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAudG5kLXN1Z2dlc3QtLXNwbGl0IHtcbiAgICB3aWR0aDogNzYwcHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiAtMzgwcHg7XG4gIH1cbn1cblxuLnRuZC1zdWdnZXN0X19ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgcGFkZGluZzogdmFyKC0tcy0yKSB2YXIoLS1zLTIpIHZhcigtLXMtMSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLnRuZC1zdWdnZXN0X19ncm91cC1pY28geyBmbGV4OiBub25lOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTsgfVxuLnRuZC1zdWdnZXN0X19ncm91cC1pY28gc3ZnIHsgd2lkdGg6IDAuOTVyZW07IGhlaWdodDogMC45NXJlbTsgfVxuLnRuZC1zdWdnZXN0X19ncm91cC1sYWJlbCB7IG1pbi13aWR0aDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbi50bmQtc3VnZ2VzdF9fY291bnQge1xuICBmbGV4OiBub25lO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS1zdW5rKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBwYWRkaW5nOiAwIHZhcigtLXMtMik7XG59XG4vKiBQaWUgZGUgbGEgY29sdW1uYSBkZSBwcm9kdWN0b3M6IGF0YWpvIGEgL2J1c2Nhci4gKi9cbi50bmQtc3VnZ2VzdF9fbW9yZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMSk7XG4gIG1hcmdpbi10b3A6IHZhcigtLXMtMSk7XG4gIHBhZGRpbmc6IHZhcigtLXMtMik7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuLnRuZC1zdWdnZXN0X19tb3JlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7IH1cbi50bmQtc3VnZ2VzdF9fbW9yZS1pY28geyBmbGV4OiBub25lOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuLnRuZC1zdWdnZXN0X19tb3JlLWljbyBzdmcgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLnRuZC1zdWdnZXN0X19tb3JlOmhvdmVyIC50bmQtc3VnZ2VzdF9fbW9yZS1pY28gc3ZnIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7IH1cbi50bmQtc3VnZ2VzdF9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0zKTtcbiAgcGFkZGluZzogdmFyKC0tcy0yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICAvKiBBcGFyaWNpw7NuIGVzY2Fsb25hZGEgKGVsIMOtbmRpY2UgbGxlZ2EgcG9yIC0taSBkZXNkZSBlbCBKUykuICovXG4gIGFuaW1hdGlvbjogdG5kLXN1Z2dlc3QtaXRlbS1pbiB2YXIoLS10cmFuc2l0aW9uKSBib3RoO1xuICBhbmltYXRpb24tZGVsYXk6IGNhbGModmFyKC0taSwgMCkgKiAyOG1zKTtcbn1cbkBrZXlmcmFtZXMgdG5kLXN1Z2dlc3QtaXRlbS1pbiB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTsgfVxuICB0byAgIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG4udG5kLXN1Z2dlc3RfX2l0ZW06aG92ZXIsXG4udG5kLXN1Z2dlc3RfX2l0ZW0uaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xufVxuLyogSWNvbm8gZGUgaW1wcmVzb3JhIChyZWN1YWRybyBkZSBtYXJjYSkgKi9cbi50bmQtc3VnZ2VzdF9faWNvIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDIuMjVyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTEwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG59XG4udG5kLXN1Z2dlc3RfX2ljbyBzdmcgeyB3aWR0aDogMS4ycmVtOyBoZWlnaHQ6IDEuMnJlbTsgfVxuLyogTWluaWF0dXJhIGRlIHByb2R1Y3RvICovXG4udG5kLXN1Z2dlc3RfX3RodW1iIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDIuNzVyZW07XG4gIGhlaWdodDogMi43NXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2Utc3Vuayk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogM3B4O1xufVxuLnRuZC1zdWdnZXN0X190aHVtYiBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbn1cbi50bmQtc3VnZ2VzdF9fbm9pbWcgeyBjb2xvcjogdmFyKC0tYy1ncmF5LTMwMCk7IH1cbi50bmQtc3VnZ2VzdF9fbm9pbWcgc3ZnIHsgd2lkdGg6IDEuM3JlbTsgaGVpZ2h0OiAxLjNyZW07IH1cbi50bmQtc3VnZ2VzdF9fdGV4dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogTGEgZmlsYSBkZSBpbXByZXNvcmEgZXMgZGUgdW5hIHNvbGEgbMOtbmVhIChpY29ubyArIHRleHRvKS4gKi9cbi50bmQtc3VnZ2VzdF9faXRlbS0tcHJpbnRlciAudG5kLXN1Z2dlc3RfX3RleHQge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi50bmQtc3VnZ2VzdF9fbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnRuZC1zdWdnZXN0X19uYW1lIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXNudWcpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4udG5kLXN1Z2dlc3RfX2NoaXAge1xuICBmbGV4OiBub25lO1xuICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBwYWRkaW5nOiAwIHZhcigtLXMtMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi50bmQtc3VnZ2VzdF9fY2hpcC0tY29tcGF0aWJsZSB7IGJhY2tncm91bmQ6IHJnYmEoMCwgMTU4LCAyMzksIDAuMTIpOyBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApOyB9XG4udG5kLXN1Z2dlc3RfX2NoaXAtLW9yaWdpbmFsICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyYXktMTAwKTsgY29sb3I6IHZhcigtLWMtZ3JheS03MDApOyB9XG4udG5kLXN1Z2dlc3RfX2JyYW5kIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnRuZC1zdWdnZXN0X19wcmljZSB7XG4gIGZsZXg6IG5vbmU7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tYy1pbmspO1xufVxuLnRuZC1zdWdnZXN0X19lbXB0eSB7XG4gIHBhZGRpbmc6IHZhcigtLXMtMyk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xufVxuXG4vKiAtLS0tIEJhbm5lciBkZSBheXVkYSBhbCBwaWUgZGVsIGRlc3BsZWdhYmxlIC0tLS1cbiAqIFwiwr9ObyBlbmN1ZW50cmFzIGxvIHF1ZSBidXNjYXM/IOKGkiBDb250w6FjdGFub3NcIi4gQSBhbmNobyBjb21wbGV0byBkZWwgcGFuZWwsIG9uLWJyYW5kXG4gKiB5IHZpc3Rvc28uIEZsZXhpYmxlOiBlbiBQQyB2YSBpY29ubyArIHRleHRvICsgQ1RBIGVuIHVuYSBmaWxhOyBlbiBtw7N2aWwgc2UgZW52dWVsdmVcbiAqIHkgZWwgQ1RBIHBhc2EgYSBzdSBsw61uZWEsIG9jdXBhbmRvIHRvZG8gZWwgYW5jaG8uICovXG4udG5kLXN1Z2dlc3RfX2Jhbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1zLTMpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zLTIpO1xuICBwYWRkaW5nOiB2YXIoLS1zLTMpIHZhcigtLXMtNCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHZhcigtLWMtYnJhbmQtNjAwKSAwJSwgdmFyKC0tYy1icmFuZC04MDApIDEwMCUpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUyKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cbi50bmQtc3VnZ2VzdF9fYmFubmVyOmhvdmVyLFxuLnRuZC1zdWdnZXN0X19iYW5uZXIuaXMtYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMyk7XG59XG4udG5kLXN1Z2dlc3RfX2Jhbm5lci1pY28ge1xuICBmbGV4OiBub25lO1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbn1cbi50bmQtc3VnZ2VzdF9fYmFubmVyLWljbyBzdmcgeyB3aWR0aDogMS4zNXJlbTsgaGVpZ2h0OiAxLjM1cmVtOyB9XG4udG5kLXN1Z2dlc3RfX2Jhbm5lci10ZXh0IHtcbiAgZmxleDogMSAxIDEycmVtO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXB4O1xufVxuLnRuZC1zdWdnZXN0X19iYW5uZXItdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1zbnVnKTtcbn1cbi50bmQtc3VnZ2VzdF9fYmFubmVyLXN1YiB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1zbnVnKTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG59XG4udG5kLXN1Z2dlc3RfX2Jhbm5lci1jdGEge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTEpO1xuICBwYWRkaW5nOiB2YXIoLS1zLTIpIHZhcigtLXMtMyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy13aGl0ZSk7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi50bmQtc3VnZ2VzdF9fYmFubmVyLWN0YS1pY28geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuLnRuZC1zdWdnZXN0X19iYW5uZXItY3RhLWljbyBzdmcgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLnRuZC1zdWdnZXN0X19iYW5uZXI6aG92ZXIgLnRuZC1zdWdnZXN0X19iYW5uZXItY3RhLWljbyBzdmcgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTsgfVxuXG4vKiBNw7N2aWw6IGljb25vICsgdGV4dG8gc2lndWVuIGp1bnRvcyBlbiBsYSAxwqogbMOtbmVhIHkgZWwgQ1RBIHNhbHRhIGEgc3UgcHJvcGlhXG4gKiBsw61uZWEgYSBhbmNobyBjb21wbGV0bywgYmllbiB0YXBwYWJsZS4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAudG5kLXN1Z2dlc3RfX2Jhbm5lci1jdGEgeyBmbGV4LWJhc2lzOiAxMDAlOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAudG5kLXN1Z2dlc3QsXG4gIC50bmQtc3VnZ2VzdF9faXRlbSB7IGFuaW1hdGlvbjogbm9uZTsgfVxuICAudG5kLXN1Z2dlc3RfX2Jhbm5lciB7IHRyYW5zaXRpb246IG5vbmU7IH1cbn1cbi50bmQtc2VhcmNoX19pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwLjlyZW07XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiB2YXIoLS1jLWdyYXktNTAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udG5kLXNlYXJjaF9faWNvbiBzdmcge1xuICB3aWR0aDogMS4xNXJlbTtcbiAgaGVpZ2h0OiAxLjE1cmVtO1xufVxuLnRuZC1zZWFyY2hfX2lucHV0LmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogdmFyKC0tdG5kLWNvbnRyb2wtaCk7XG4gIHBhZGRpbmctbGVmdDogMi43cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWdyYXktMzAwKTtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCkgMCAwIHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbn1cbi50bmQtc2VhcmNoX19pbnB1dC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNTAwKTtcbiAgLyogUmVhbGNlIGRlIGZvY28gY29uIHVuIHB1bnRvIGRlIG1hZ2VudGEgKGlkZW50aWRhZCBDTVlLKS4gKi9cbiAgYm94LXNoYWRvdzogMCAwIDAgMC4xOHJlbSByZ2JhKDAsIDE1OCwgMjM5LCAwLjE0KSxcbiAgICAgICAgICAgICAgMCAwIDAgMC4zMnJlbSByZ2JhKDIzMCwgMjAsIDEzMiwgMC4xMCk7XG4gIHotaW5kZXg6IDE7XG59XG4vKiBCb3TDs24gXCJCdXNjYXJcIjogbWFnZW50YSBDVEEgKG3DoXMgb3NjdXJvL21lbm9zIHBvdGVudGUpLCBzaW4gYm9yZGUsIHRleHRvIGJsYW5jby4gKi9cbi50bmQtc2VhcmNoX19idG4uYnRuIHtcbiAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yYWRpdXMtZnVsbCkgdmFyKC0tcmFkaXVzLWZ1bGwpIDA7XG4gIHBhZGRpbmctaW5saW5lOiAxLjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1tYWdlbnRhLWN0YSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbik7XG59XG4udG5kLXNlYXJjaF9fYnRuLmJ0bjpob3Zlcixcbi50bmQtc2VhcmNoX19idG4uYnRuOmZvY3VzLXZpc2libGUge1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtbWFnZW50YS1jdGEtaG92ZXIpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTEpO1xufVxuLnRuZC1zZWFyY2hfX2J0bi5idG4gc3ZnIHtcbiAgd2lkdGg6IDEuMTVyZW07XG4gIGhlaWdodDogMS4xNXJlbTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnRuZC10cnVzdF9faXRlbSB7IGFuaW1hdGlvbjogbm9uZTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgICAudG5kLXRydXN0X19pdGVtIHsgb3BhY2l0eTogMDsgfVxuICAgIC50bmQtdHJ1c3RfX2l0ZW06Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OiAxOyB9XG4gIH1cbn1cblxuLyogLS0tLSBCb3R0b20gbmF2IG3Ds3ZpbCAtLS0tICovXG4udG5kLWJvdHRvbW5hdiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IGF1dG8gMCAwIDA7XG4gIHotaW5kZXg6IHZhcigtLXotaGVhZGVyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogMCAtMnB4IDEwcHggcmdiYSgxMSwgMTEsIDE1LCAwLjA2KTtcbiAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwKTtcbn1cbi50bmQtYm90dG9tbmF2X19pdGVtIHtcbiAgZmxleDogMSAxIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogMC40NXJlbSAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnRuZC1ib3R0b21uYXZfX2l0ZW0gc3ZnIHtcbiAgd2lkdGg6IDEuNHJlbTtcbiAgaGVpZ2h0OiAxLjRyZW07XG59XG4udG5kLWJvdHRvbW5hdl9faXRlbS5pcy1hY3RpdmUsXG4udG5kLWJvdHRvbW5hdl9faXRlbTpob3Zlcixcbi50bmQtYm90dG9tbmF2X19pdGVtOmZvY3VzLXZpc2libGUge1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xufVxuXG4vKiBSZXNlcnZhIGVzcGFjaW8gYmFqbyBlbCBjb250ZW5pZG8gcGFyYSBxdWUgbGEgYmFycmEgbm8gbG8gdGFwZSAoc29sbyBtw7N2aWwpICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgYm9keSB7IHBhZGRpbmctYm90dG9tOiA0cmVtOyB9XG59XG5cbi8qIC0tLS0gQWNjZXNvcyBkZSBjdWVudGEgZGVsIHZpc2l0YW50ZSAoZGVza3RvcCk6IGxvZ2luIGZhbnRhc21hICsgcmVnaXN0cm8gQ1RBIC0tLS0gKi9cbi50bmQtYXV0aCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS10bmQtY29udHJvbC1oLCAyLjg3NXJlbSk7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjk1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbiksIGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uKSxcbiAgICAgICAgICAgICAgY29sb3IgdmFyKC0tdHJhbnNpdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbiksXG4gICAgICAgICAgICAgIHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuLnRuZC1hdXRoX19pY28geyBmbGV4OiBub25lOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuLnRuZC1hdXRoX19pY28gc3ZnIHsgd2lkdGg6IDEuMXJlbTsgaGVpZ2h0OiAxLjFyZW07IH1cblxuLnRuZC1hdXRoLS1naG9zdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JheS0zMDApO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbn1cbi50bmQtYXV0aC0tZ2hvc3Q6aG92ZXIsXG4udG5kLWF1dGgtLWdob3N0OmZvY3VzLXZpc2libGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNDAwKTtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUxKTtcbn1cblxuLnRuZC1hdXRoLS1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC02MDApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJyYW5kLTYwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUxKTtcbn1cbi50bmQtYXV0aC0tcHJpbWFyeTpob3Zlcixcbi50bmQtYXV0aC0tcHJpbWFyeTpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC03MDApO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMik7XG59XG5cbi8qIC0tLS0gQm90w7NuIGRlIGNhcnJpdG8gKHBhc3RpbGxhIGRlIG1hcmNhLCBzaW4gdGV4dG8gXCJOIGFydMOtY3Vsb3NcIikgLS0tLSAqL1xuLnRuZC1jYXJ0LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMik7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXRuZC1jb250cm9sLWgsIDIuODc1cmVtKTtcbiAgcGFkZGluZzogMC41cmVtIDAuOTVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtZ3JheS0zMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbiksXG4gICAgICAgICAgICAgIGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xufVxuLnRuZC1jYXJ0LWJ0bjpob3Zlcixcbi50bmQtY2FydC1idG46Zm9jdXMtdmlzaWJsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC00MDApO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTEpO1xufVxuLnRuZC1jYXJ0LWJ0bl9faWNvIHsgZmxleDogbm9uZTsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbi50bmQtY2FydC1idG5fX2ljbyBzdmcgeyB3aWR0aDogMS4zcmVtOyBoZWlnaHQ6IDEuM3JlbTsgfVxuLnRuZC1jYXJ0LWJ0bl9fdG90YWwgeyBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOyB9XG4udG5kLWNhcnQtYnRuX19iYWRnZS5iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMC4zNXJlbTtcbiAgbGVmdDogLTAuMzVyZW07XG4gIG1pbi13aWR0aDogMS4xNXJlbTtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwMCk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jLWJnKTtcbn1cbiIsIi8qXG4gKiBUb25lcmRlbHV4ZSDigJQgSG9tZSAoRmFzZSAyKS5cbiAqL1xuXG4vKiAtLS0tIFNlY2Npb25lcyAtLS0tICovXG4udG5kLXNlY3Rpb24ge1xuICAvKiBNw6FzIGFpcmUgdmVydGljYWw6IGxhIGhvbWUgcmVzcGlyYSB5IGRlamEgZGUgcGFyZWNlciB1biBhcGlsYWRvIGRlbnNvIGRlIGJsb3F1ZXMuICovXG4gIHBhZGRpbmctYmxvY2s6IGNsYW1wKDNyZW0sIDIuMXJlbSArIDMuNHZ3LCA1LjVyZW0pO1xufVxuLnRuZC1zZWN0aW9uLS1zdW5rIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLXN1bmspO1xufVxuLnRuZC1zZWN0aW9uX19oZWFkIHtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy02KTtcbn1cbi50bmQtc2VjdGlvbl9faGVhZC0tY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4udG5kLXN0ZXBzX19sZWFkIHtcbiAgbWF4LXdpZHRoOiA0NnJlbTtcbiAgbWFyZ2luOiB2YXIoLS1zLTIpIGF1dG8gMDtcbiAgY29sb3I6IHZhcigtLWMtZ3JheS0zMDApO1xufVxuLnRuZC1zZWN0aW9uX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDIpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICBtYXJnaW46IDA7XG59XG5cbi8qIC0tLS0gSGVybyAoYnVzY2Fkb3IgZGUgaW1wcmVzb3JhcyBhIHRvZG8gYW5jaG8pIC0tLS0gKi9cbi50bmQtaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKiBNQVJHRU4gU1VQRVJJT1IgZGVsIGhlcm8gKGVuY2ltYSBkZSBcIlRpbnRhIHkgdMOzbmVyIGNvbXBhdGlibGVzIHkgb3JpZ2luYWxlc1wiKS5cbiAgICAgSnVlZ2EgY29uIGBwYWRkaW5nLXRvcGAgcGFyYSBhY2VyY2FybG8vYWxlamFybG8gZGVsIGhlYWRlci4gKEFudGVzIGVyYSB1biDDum5pY29cbiAgICAgYHBhZGRpbmctYmxvY2tgOyBsbyBzZXBhcmFtb3MgcGFyYSBwb2RlciBhanVzdGFyIHNvbG8gZWwgZGUgYXJyaWJhLikgKi9cbiAgcGFkZGluZy10b3A6IGNsYW1wKDAuNzVyZW0sIDAuNHJlbSArIDEuNnZ3LCAxLjc1cmVtKTtcbiAgcGFkZGluZy1ib3R0b206IGNsYW1wKDEuNnJlbSwgMS4xcmVtICsgMi4ydncsIDMuMjVyZW0pO1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudCg2MCUgODAlIGF0IDg4JSAtMTAlLCByZ2JhKDAsIDE1OCwgMjM5LCAwLjE2KSwgdHJhbnNwYXJlbnQgNjAlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoNTUlIDcwJSBhdCAwJSAxMTAlLCByZ2JhKDIzMCwgMjAsIDEzMiwgMC4xMCksIHRyYW5zcGFyZW50IDYwJSksXG4gICAgcmFkaWFsLWdyYWRpZW50KDQ1JSA1NSUgYXQgNjAlIDEyMCUsIHJnYmEoMjU1LCAyMzAsIDAsIDAuMDkpLCB0cmFuc3BhcmVudCA2MCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWMtYnJhbmQtNTApLCB2YXIoLS1jLWJnKSA5MCUpO1xufVxuLyogQWNlbnRvIENNWUsgZmlubyBlbiBlbCBib3JkZSBzdXBlcmlvciBkZWwgaGVybzogZ3Vpw7FvIGRlIG1hcmNhIGNvbnRlbmlkbyBxdWUgc3VzdGl0dXllIGEgbG9zXG4gICBcIm9yYmVzXCIgZGlmdW1pbmFkb3MgKGxvb2sgZ2Vuw6lyaWNvKS4gVW5hIHNvbGEgZmlybWEgZGUgY29sb3IsIGRpc2NyZXRhLiAqL1xuLnRuZC1oZXJvOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMCAwIGF1dG8gMDtcbiAgaGVpZ2h0OiA0cHg7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZyxcbiAgICB2YXIoLS1jLWFjY2VudC1jeWFuKSAwIDI1JSxcbiAgICB2YXIoLS1jLWFjY2VudC1tYWdlbnRhKSAyNSUgNTAlLFxuICAgIHZhcigtLWMtYWNjZW50LXllbGxvdykgNTAlIDc1JSxcbiAgICB2YXIoLS1jLWluaykgNzUlIDEwMCUpO1xufVxuLyogREVQUkVDQURPOiBsb3MgXCJibG9ic1wiIGRpZnVtaW5hZG9zIHNlIHJldGlyYXJvbiBkZWwgaGVybyAoc2XDsWFsIHTDrXBpY2EgZGUgZGlzZcOxbyBnZW7DqXJpY28pLlxuICAgU2UgY29uc2VydmEgbGEgY2xhc2UgcG9yIGNvbXBhdGliaWxpZGFkOyB5YSBubyBzZSByZW5kZXJpemEgZW4gbGEgaG9tZS4gKi9cbi50bmQtaGVyb19fYmxvYiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgZmlsdGVyOiBibHVyKDQ4cHgpO1xuICBvcGFjaXR5OiAwLjU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnRuZC1oZXJvX19ibG9iLS1jIHsgd2lkdGg6IDI2cmVtOyBoZWlnaHQ6IDI2cmVtOyB0b3A6IC04cmVtOyByaWdodDogLTZyZW07IGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMCwgMTU4LCAyMzksIDAuNDUpLCB0cmFuc3BhcmVudCA3MCUpOyB9XG4udG5kLWhlcm9fX2Jsb2ItLW0geyB3aWR0aDogMjByZW07IGhlaWdodDogMjByZW07IGJvdHRvbTogLTdyZW07IGxlZnQ6IC01cmVtOyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDIzMCwgMjAsIDEzMiwgMC4zMCksIHRyYW5zcGFyZW50IDcwJSk7IH1cbi50bmQtaGVyb19fYmxvYi0teSB7IHdpZHRoOiAxNnJlbTsgaGVpZ2h0OiAxNnJlbTsgYm90dG9tOiAtNHJlbTsgbGVmdDogNDUlOyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDI1NSwgMjMwLCAwLCAwLjI4KSwgdHJhbnNwYXJlbnQgNzAlKTsgfVxuXG4udG5kLWhlcm9fX2lubmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDc0cmVtO1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udG5kLWhlcm9fX2V5ZWJyb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgcGFkZGluZzogdmFyKC0tcy0xKSB2YXIoLS1zLTMpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xufVxuLnRuZC1oZXJvX19leWVicm93IHN2ZyB7IHdpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07IH1cbi50bmQtaGVyb19fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLWZzLWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC10aWdodCk7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXgtd2lkdGg6IDcwcmVtO1xuICBtYXJnaW46IHZhcigtLXMtMykgYXV0byB2YXIoLS1zLTIpO1xufVxuLnRuZC1oZXJvX19obCB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCk7IH1cbi50bmQtaGVyb19fc3ViIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LWxnKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIG1heC13aWR0aDogNzByZW07XG4gIG1hcmdpbjogMCBhdXRvIHZhcigtLXMtNik7XG59XG4udG5kLWhlcm9fX3RydXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTMpIHZhcigtLXMtNik7XG4gIG1hcmdpbjogMS4yNXJlbSAwIDA7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHkpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbn1cbi50bmQtaGVyb19fdHJ1c3QgbGkgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zLTIpOyB9XG4udG5kLWhlcm9fX3RydXN0IHN2ZyB7IHdpZHRoOiAxLjQ1cmVtOyBoZWlnaHQ6IDEuNDVyZW07IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTUwMCk7IH1cblxuLyogUHJpbnRlciBmaW5kZXIgKi9cbi50bmQtZmluZGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTIpO1xuICBwYWRkaW5nOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1maW5kZXJfX2xhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0zKTtcbn1cbi50bmQtZmluZGVyX19sYWJlbCBzdmcgeyB3aWR0aDogMS4ycmVtOyBoZWlnaHQ6IDEuMnJlbTsgY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTsgfVxuLnRuZC1maW5kZXJfX2Zvcm0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxLjRmciBhdXRvO1xuICBnYXA6IHZhcigtLXMtMik7XG59XG4udG5kLWZpbmRlcl9fZm9ybSAuZm9ybS1zZWxlY3QgeyBoZWlnaHQ6IDNyZW07IH1cbi50bmQtZmluZGVyX19mb3JtIC5idG4geyBoZWlnaHQ6IDNyZW07IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbi50bmQtZmluZGVyX19oaW50IHtcbiAgbWFyZ2luOiB2YXIoLS1zLTMpIDAgMDtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgLnRuZC1maW5kZXJfX2Zvcm0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxufVxuXG4vKiBWYXJpYW50ZSBwcm90YWdvbmlzdGEgZGVsIGhlcm86IHRhcmpldGEgYW5jaGEsIGVsZXZhZGEgeSBjZW50cmFkYS5cbiAgIE3DoXMgYW5jaGEgPSBlbCBmb3JtIGNhYmUgaG9sZ2FkbyBlbiB1bmEgc29sYSBmaWxhIOKGkiBtZW5vcyBhbHR1cmEuICovXG4udG5kLWZpbmRlci0taGVybyB7XG4gIG1heC13aWR0aDogNzJyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiBjbGFtcCh2YXIoLS1zLTMpLCAwLjZyZW0gKyAwLjl2dywgdmFyKC0tcy00KSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lNCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4udG5kLWZpbmRlci0taGVybyAudG5kLWZpbmRlcl9fbGFiZWwgeyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktbGcpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTIpOyB9XG4vKiBFdGlxdWV0YSBlbiBsw61uZWEgY29uIGVsIGZvcm0gZW4gcGFudGFsbGFzIGFuY2hhcyBwYXJhIGdhbmFyIGFsdHVyYSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC50bmQtZmluZGVyLS1oZXJvIC50bmQtZmluZGVyX19mb3JtIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMS43ZnIgYXV0bzsgfVxufVxuLnRuZC1maW5kZXItLWhlcm8gLnRuZC1maW5kZXJfX2Zvcm0gLmZvcm0tc2VsZWN0LFxuLnRuZC1maW5kZXItLWhlcm8gLnRuZC1maW5kZXJfX2Zvcm0gLnRzLXdyYXBwZXIsXG4udG5kLWZpbmRlci0taGVybyAudG5kLWZpbmRlcl9fZm9ybSAuYnRuIHsgaGVpZ2h0OiAzLjVyZW07IH1cbi50bmQtZmluZGVyLS1oZXJvIC50bmQtZmluZGVyX19mb3JtIC5idG4geyBwYWRkaW5nLWlubGluZTogMS44cmVtOyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyB9XG4vKiBUb21TZWxlY3QgKHNlbGVjdG9yIGRlIG1vZGVsbykgcmVlbXBsYXphIGVsIDxzZWxlY3Q+OiBpZ3VhbGFyIHN1IGNvbnRyb2wgYWwgcmVzdG9cbiAgIHBhcmEgcXVlIGxhIHRhcmpldGEgbm8gc2UgZGVzY3VhZHJlIHZlcnRpY2FsbWVudGUuICovXG4udG5kLWZpbmRlci0taGVybyAudG5kLWZpbmRlcl9fZm9ybSAudHMtd3JhcHBlciAudHMtY29udHJvbCB7XG4gIGhlaWdodDogMy41cmVtO1xuICBtaW4taGVpZ2h0OiAzLjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC50bmQtZmluZGVyLS1oZXJvIC50bmQtZmluZGVyX19mb3JtIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cblxuLyogLS0tLSBNYXJjYXMgKGNhamFzIGRlIGxvZ28gdW5pZm9ybWVzKSAtLS0tICovXG4udG5kLWJyYW5kcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEzMHB4LCAxZnIpKTtcbiAgZ2FwOiB2YXIoLS1zLTMpO1xufVxuLnRuZC1icmFuZGJveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDcycHg7XG4gIHBhZGRpbmc6IHZhcigtLXMtMykgdmFyKC0tcy00KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xufVxuLnRuZC1icmFuZGJveDpob3ZlciB7XG4gIC8qIFNpbiBcImxldml0YXJcIjogcmVzcG9uZGUgY29uIGJvcmRlIGRlIG1hcmNhICsgc3VicmF5YWRvIGNpYW4gKGFjZW50byBjb250ZW5pZG8pLiAqL1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNTAwKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAgdmFyKC0tYy1icmFuZC01MDApO1xufVxuLnRuZC1icmFuZGJveF9fbG9nbyB7XG4gIG1heC1oZWlnaHQ6IDMwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIG9wYWNpdHk6IDAuNzU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XG59XG4udG5kLWJyYW5kYm94OmhvdmVyIC50bmQtYnJhbmRib3hfX2xvZ28geyBvcGFjaXR5OiAxOyB9XG4udG5kLWJyYW5kYm94X19uYW1lIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1oNCk7XG4gIGNvbG9yOiB2YXIoLS1jLWluayk7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xufVxuXG4vKiAtLS0tIENhdGVnb3LDrWFzICh0YXJqZXRhcyBjb24gXCJjb3ZlclwiIGdyw6FmaWNvIGRlIG1hcmNhKSAtLS0tICovXG4udG5kLWNhdCB7XG4gIC0tY2F0LWNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIC0tY2F0LWdyYWQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWMtYnJhbmQtNzAwKSwgdmFyKC0tYy1icmFuZC01MDApKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pLCBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24pLCBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbik7XG59XG4udG5kLWNhdDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2F0LWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG59XG4vKiBcIkltYWdlblwiIGRlIGxhIHRhcmpldGE6IGdyYWRpZW50ZSBDTVlLICsgc2VtaXRvbm8gZGUgaW1wcmVzacOzbiArIGdsaWZvICovXG4udG5kLWNhdF9fY292ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDkuNXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDpcbiAgICByYWRpYWwtZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KSAxLjVweCwgdHJhbnNwYXJlbnQgMS42cHgpIDAgMCAvIDE0cHggMTRweCxcbiAgICB2YXIoLS1jYXQtZ3JhZCk7XG59XG4udG5kLWNhdF9fY292ZXI6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC0yLjVyZW07XG4gIGJvdHRvbTogLTMuNXJlbTtcbiAgd2lkdGg6IDhyZW07XG4gIGhlaWdodDogOHJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XG59XG4udG5kLWNhdDpob3ZlciAudG5kLWNhdF9fY292ZXI6OmFmdGVyIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjI1KTsgfVxuLyogR2xpZm8gZ3JhbmRlIHkgcHJvdGFnb25pc3RhLCBkaXJlY3RhbWVudGUgc29icmUgZWwgY292ZXIgKHNpbiByZWN1YWRybykuXG4gICBQcm92aXNpb25hbDogbHVlZ28gc2Ugc3VzdGl0dWlyw6EgcG9yIHVuYSBpbHVzdHJhY2nDs24gbcOhcyB2aXN1YWwgcG9yIGNhdGVnb3LDrWEuICovXG4udG5kLWNhdF9faWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDZweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC4yMCkpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XG59XG4udG5kLWNhdDpob3ZlciAudG5kLWNhdF9faWNvbiB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNik7IH1cbi50bmQtY2F0X19pY29uIHN2ZyB7IHdpZHRoOiA1cmVtOyBoZWlnaHQ6IDVyZW07IHN0cm9rZS13aWR0aDogMS42OyB9XG4udG5kLWNhdF9fYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tcy0xKTtcbiAgcGFkZGluZzogdmFyKC0tcy00KTtcbn1cbi50bmQtY2F0X19uYW1lIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheSk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTsgZm9udC1zaXplOiB2YXIoLS1mcy1oNCk7IH1cbi50bmQtY2F0X19kZXNjIHsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7IH1cbi50bmQtY2F0X19jdGEge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTEpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zLTIpO1xuICBjb2xvcjogdmFyKC0tY2F0LWNvbG9yKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbn1cbi50bmQtY2F0X19jdGEgc3ZnIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMXJlbTsgfVxuXG4vKiAtLS0tIENvbXBhcmF0aXZhIE9yaWdpbmFsZXMgdnMgQ29tcGF0aWJsZXMgKGRvcyB0YXJqZXRhcywgY29tcGF0aWJsZSBkZXN0YWNhZGEpIC0tLS0gKi9cbi50bmQtdnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEuMDVmciAxLjJmcjtcbiAgZ2FwOiB2YXIoLS1zLTgpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnRuZC12c19fZXllYnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMik7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXMtMyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJyYW5kLTEwMCk7XG4gIHBhZGRpbmc6IHZhcigtLXMtMSkgdmFyKC0tcy0zKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xufVxuLnRuZC12c19fZXllYnJvdyBzdmcgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyB9XG4udG5kLXZzX19sZWFkIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LWxnKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIG1hcmdpbjogdmFyKC0tcy0zKSAwIHZhcigtLXMtNCk7XG59XG4udG5kLXZzX19wb2ludHMge1xuICBtYXJnaW46IDAgMCB2YXIoLS1zLTYpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXMtMik7XG59XG4udG5kLXZzX19wb2ludHMgbGkgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXMtMik7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pOyB9XG4udG5kLXZzX19wb2ludHMgc3ZnIHsgd2lkdGg6IDEuMnJlbTsgaGVpZ2h0OiAxLjJyZW07IGNvbG9yOiB2YXIoLS1jLXNhdmUpOyBmbGV4OiBub25lOyB9XG5cbi50bmQtdnNfX3RhYmxlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMCwgMWZyKTtcbiAgZ2FwOiB2YXIoLS1zLTMpO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cbi50bmQtdnNfX2NvbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIHBhZGRpbmc6IHZhcigtLXMtNCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG59XG4udG5kLXZzX19jb2wtLWNvbXAge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tcy02KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTMwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTMpO1xufVxuLnRuZC12c19fcmliYm9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM3JlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC02MDApO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjdyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUxKTtcbn1cbi50bmQtdnNfX3JpYmJvbiBzdmcgeyB3aWR0aDogMC44cmVtOyBoZWlnaHQ6IDAuOHJlbTsgY29sb3I6IHZhcigtLWMtYWNjZW50LXllbGxvdyk7IH1cbi50bmQtdnNfX3RhZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXMtMyk7XG59XG4udG5kLXZzX190YWctLXdpbiB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7IH1cbi50bmQtdnNfX3Jvd3MgeyBtYXJnaW46IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tcy0yKTsgfVxuLnRuZC12c19fcm93cyBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tcy0yKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1jLWJvcmRlcik7XG59XG4udG5kLXZzX19yb3dzIGxpOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiAwOyBwYWRkaW5nLWJvdHRvbTogMDsgfVxuLnRuZC12c19fZmVhdCB7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyB9XG4udG5kLXZzX192YWwgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyB0ZXh0LWFsaWduOiByaWdodDsgfVxuLnRuZC12c19fdmFsLS13aW4geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjNyZW07IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7IH1cbi50bmQtdnNfX3ZhbC0td2luIHN2ZyB7IHdpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07IGNvbG9yOiB2YXIoLS1jLWRlYWwpOyBmbGV4OiBub25lOyB9XG4udG5kLXZzX19wcmljZWxpbmUgeyBwYWRkaW5nLXRvcDogdmFyKC0tcy0xKTsgfVxuLnRuZC12c19fcHJpY2UgeyBmb250LXNpemU6IHZhcigtLWZzLWg0KTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpOyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxuLnRuZC12c19fcHJpY2UtLXdpbiB7IGNvbG9yOiB2YXIoLS1jLWRlYWwpOyB9XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnRuZC12cyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IHZhcigtLXMtNik7IH1cbiAgLnRuZC12c19fdGFibGUgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgZ2FwOiB2YXIoLS1zLTQpOyB9XG59XG5cbi8qIC0tLS0gUGFzb3MgKGZsdWpvIGhvcml6b250YWwgY29uZWN0YWRvLCBzb2JyZSBmb25kbyBvc2N1cm8pIC0tLS0gKi9cbi50bmQtc3RlcHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIGdhcDogdmFyKC0tcy02KTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLyogTMOtbmVhIENNWUsgcXVlIGNvbmVjdGEgbG9zIG5vZG9zIChzb2xvIGRlc2t0b3ApICovXG4udG5kLXN0ZXBzOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIuNzVyZW07XG4gIGxlZnQ6IDE2LjYlO1xuICByaWdodDogMTYuNiU7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWMtYWNjZW50LWN5YW4pLCB2YXIoLS1jLWFjY2VudC1tYWdlbnRhKSwgdmFyKC0tYy1hY2NlbnQteWVsbG93KSk7XG4gIG9wYWNpdHk6IDAuNTU7XG4gIHotaW5kZXg6IDA7XG59XG4udG5kLXN0ZXBjIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4udG5kLXN0ZXBjX19ub2RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNS41cmVtO1xuICBoZWlnaHQ6IDUuNXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXMtMyk7XG59XG4udG5kLXN0ZXBjX19pY29uIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGNvbG9yOiB2YXIoLS1jLWFjY2VudC1jeWFuKTsgfVxuLnRuZC1zdGVwY19faWNvbiBzdmcgeyB3aWR0aDogMi4ycmVtOyBoZWlnaHQ6IDIuMnJlbTsgfVxuLnRuZC1zdGVwY19fbnVtIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0wLjM1cmVtO1xuICByaWdodDogLTAuMzVyZW07XG4gIHdpZHRoOiAxLjg1cmVtO1xuICBoZWlnaHQ6IDEuODVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTYwMCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWMtaW5rKTtcbn1cbi50bmQtc3RlcGNfX3RpdGxlIHsgZm9udC1zaXplOiB2YXIoLS1mcy1oNCk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IGNvbG9yOiAjZmZmOyBtYXJnaW46IDAgMCB2YXIoLS1zLTEpOyB9XG4udG5kLXN0ZXBjX19kZXNjIHsgY29sb3I6IHZhcigtLWMtZ3JheS0zMDApOyBtYXJnaW46IDA7IG1heC13aWR0aDogMThyZW07IH1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAudG5kLXN0ZXBzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogdmFyKC0tcy02KTsgfVxuICAudG5kLXN0ZXBzOjpiZWZvcmUgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi8qIC0tLS0gVVNQcyAtLS0tICovXG4udG5kLXVzcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0zKTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zLTQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG59XG4udG5kLXVzcF9faWNvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMi43NXJlbTtcbiAgaGVpZ2h0OiAyLjc1cmVtO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCk7XG59XG4udG5kLXVzcF9faWNvbiBzdmcgeyB3aWR0aDogMS41cmVtOyBoZWlnaHQ6IDEuNXJlbTsgfVxuLnRuZC11c3BfX3RpdGxlIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IH1cbi50bmQtdXNwX19kZXNjIHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyB9XG5cbi8qIC0tLS0gQ2FiZWNlcmEgZGUgc2VjY2nDs24gY29uIGVubGFjZSBcInZlciBtw6FzXCIgLS0tLSAqL1xuLnRuZC1zZWN0aW9uX19tb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0xKTtcbiAgY29sb3I6IHZhcigtLWMtbGluayk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4udG5kLXNlY3Rpb25fX21vcmUgc3ZnIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMXJlbTsgfVxuLnRuZC1zZWN0aW9uX19tb3JlOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogLS0tLSBPcGluaW9uZXMgZGUgY2xpZW50ZXMgKHJlc3VtZW4gKyB0YXJqZXRhcyB0aXBvIHRlc3RpbW9uaW8pIC0tLS0gKi9cbi50bmQtcmV2aWV3c19faGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtNCk7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy04KTtcbn1cbi50bmQtcmV2aWV3c19fc2NvcmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDAuMTVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLXMtNCk7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbn1cbi50bmQtcmV2aWV3c19fYXZnIHsgZm9udC1zaXplOiB2YXIoLS1mcy1kaXNwbGF5KTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpOyBsaW5lLWhlaWdodDogMTsgY29sb3I6IHZhcigtLWMtdGV4dCk7IH1cbi50bmQtcmV2aWV3c19fb2YgeyBmb250LXNpemU6IHZhcigtLWZzLWg0KTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IH1cbi50bmQtcmV2aWV3c19fbWV0YSB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbi50bmQtcmV2aWV3c19fc3RhcnMgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAycHg7IGNvbG9yOiB2YXIoLS1jLWFjY2VudC15ZWxsb3cpOyB9XG4udG5kLXJldmlld3NfX3N0YXJzIHN2ZyB7IHdpZHRoOiAxLjRyZW07IGhlaWdodDogMS40cmVtOyB9XG4udG5kLXJldmlld3NfX2NvdW50IHsgbWFyZ2luOiB2YXIoLS1zLTEpIDAgMDsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbi50bmQtcmV2aWV3c19fY291bnQgc3Ryb25nIHsgY29sb3I6IHZhcigtLWMtdGV4dCk7IH1cbi50bmQtcmV2aWV3c19fdmVyaWZpZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tYy1zYXZlKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbn1cbi50bmQtcmV2aWV3c19fdmVyaWZpZWQgc3ZnIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMXJlbTsgfVxuXG4udG5kLXJldmlld3NfX2dyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICBnYXA6IHZhcigtLXMtNCk7XG59XG4udG5kLXJldmlldyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiB2YXIoLS1zLTQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKSwgYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uKTtcbn1cbi50bmQtcmV2aWV3OmhvdmVyIHsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUyKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTMwMCk7IH1cbi50bmQtcmV2aWV3X190b3AgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXMtMyk7IG1hcmdpbi1ib3R0b206IHZhcigtLXMtMyk7IH1cbi50bmQtcmV2aWV3X19hdmF0YXIge1xuICBmbGV4OiBub25lO1xuICB3aWR0aDogMi43NXJlbTtcbiAgaGVpZ2h0OiAyLjc1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgLyogSW5pY2lhbCBzb2JyaWEgKGdyaXMgbmV1dHJvKSBlbiB2ZXogZGVsIGPDrXJjdWxvIGRlIGNvbG9yOiBtZW5vcyBhaXJlIGRlIFwidGVzdGltb25pbyBkZSBwbGFudGlsbGFcIi4gKi9cbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLXN1bmspO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG59XG4udG5kLXJldmlld19faWQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBtaW4td2lkdGg6IDA7IG1hcmdpbi1yaWdodDogYXV0bzsgfVxuLnRuZC1yZXZpZXdfX25hbWUgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyB9XG4udG5kLXJldmlld19fcHVyY2hhc2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjJyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGNvbG9yOiB2YXIoLS1jLXNhdmUpO1xufVxuLnRuZC1yZXZpZXdfX3B1cmNoYXNlIHN2ZyB7IHdpZHRoOiAwLjg1cmVtOyBoZWlnaHQ6IDAuODVyZW07IH1cbi50bmQtcmV2aWV3X19zdGFycyB7IGZsZXg6IG5vbmU7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDFweDsgY29sb3I6IHZhcigtLWMtYWNjZW50LXllbGxvdyk7IH1cbi50bmQtcmV2aWV3X19zdGFycyBzdmcgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyB9XG4udG5kLXJldmlld19fdGV4dCB7IGZsZXg6IDEgMSBhdXRvOyBtYXJnaW46IDA7IGNvbG9yOiB2YXIoLS1jLXRleHQpOyB9XG4udG5kLXJldmlld19fdGl0bGUgeyBkaXNwbGF5OiBibG9jazsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0xKTsgfVxuLnRuZC1yZXZpZXdfX3Byb2R1Y3Qge1xuICBtYXJnaW46IHZhcigtLXMtMykgMCAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLnRuZC1yZXZpZXdfX3Byb2R1Y3Qgc3ZnIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMXJlbTsgZmxleDogbm9uZTsgfVxuXG4udG5kLXJldmlld3NfX3RydXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTMpIHZhcigtLXMtNik7XG4gIG1hcmdpbi10b3A6IHZhcigtLXMtNik7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xufVxuLnRuZC1yZXZpZXdzX190cnVzdCBzcGFuIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tcy0yKTsgfVxuLnRuZC1yZXZpZXdzX190cnVzdCBzdmcgeyB3aWR0aDogMS4xcmVtOyBoZWlnaHQ6IDEuMXJlbTsgY29sb3I6IHZhcigtLWMtc2F2ZSk7IGZsZXg6IG5vbmU7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC50bmQtcmV2aWV3c19fZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAudG5kLXJldmlld3NfX2hlYWQgeyBnYXA6IHZhcigtLXMtMyk7IH1cbiAgLnRuZC1yZXZpZXdzX19ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cblxuLyogLS0tLSBGcmFuamEgQ01ZSyBkZWNvcmF0aXZhIC0tLS0gKi9cbi50bmQtY215ayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogNnB4O1xufVxuLnRuZC1jbXlrIHNwYW4geyBmbGV4OiAxOyB9XG4udG5kLWNteWsgc3BhbjpudGgtY2hpbGQoMSkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjY2VudC1jeWFuKTsgfVxuLnRuZC1jbXlrIHNwYW46bnRoLWNoaWxkKDIpIHsgYmFja2dyb3VuZDogdmFyKC0tYy1hY2NlbnQtbWFnZW50YSk7IH1cbi50bmQtY215ayBzcGFuOm50aC1jaGlsZCgzKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtYWNjZW50LXllbGxvdyk7IH1cbi50bmQtY215ayBzcGFuOm50aC1jaGlsZCg0KSB7IGJhY2tncm91bmQ6IHZhcigtLWMtaW5rKTsgfVxuXG4vKiAtLS0tIEJhbm5lciBwcm9tb2Npb25hbCAoYSB0b2RvIGFuY2hvLCBjb24gY29sb3IpIC0tLS0gKi9cbi50bmQtcHJvbW8ge1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMDBkZWcsIHZhcigtLWMtYnJhbmQtNzAwKSAwJSwgdmFyKC0tYy1icmFuZC01MDApIDU1JSwgIzEyYjNjNyAxMDAlKTtcbiAgY29sb3I6ICNmZmY7XG59XG4udG5kLXByb21vX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zLTYpO1xuICBwYWRkaW5nLWJsb2NrOiBjbGFtcCgxLjI1cmVtLCAxcmVtICsgMS41dncsIDJyZW0pO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4udG5kLXByb21vX19iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgcGFkZGluZzogdmFyKC0tcy0xKSB2YXIoLS1zLTMpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xufVxuLnRuZC1wcm9tb19fYmFkZ2Ugc3ZnIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMXJlbTsgfVxuLnRuZC1wcm9tb19fdGl0bGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1kaXNwbGF5KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1oMyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgbWFyZ2luOiB2YXIoLS1zLTIpIDAgMDtcbn1cbi50bmQtcHJvbW9fX3RpdGxlIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jLWFjY2VudC15ZWxsb3cpOyB9XG4udG5kLXByb21vX19zdWIgeyBtYXJnaW46IHZhcigtLXMtMSkgMCAwOyBvcGFjaXR5OiAwLjkyOyB9XG4udG5kLXByb21vX19jdGEge1xuICBmbGV4OiBub25lO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTEpO1xufVxuLnRuZC1wcm9tb19fY3RhIHN2ZyB7IHdpZHRoOiAxLjFyZW07IGhlaWdodDogMS4xcmVtOyB9XG5cbi8qIC0tLS0gQ2F0ZWdvcsOtYXMgY29uIGFjZW50byBDTVlLIChjYWRhIHRhcmpldGEgZmlqYSBzdSBncmFkaWVudGUgeSBzdSBjb2xvciBkZSB0ZXh0byBBQSkgLS0tLSAqL1xuLnRuZC1jYXQtLWMgeyAtLWNhdC1jb2xvcjogdmFyKC0tYy1icmFuZC03MDApOyAtLWNhdC1ncmFkOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGM2YmEzLCAjMDA5ZWVmKTsgfVxuLnRuZC1jYXQtLW0geyAtLWNhdC1jb2xvcjogI2IzMTA2YTsgICAgICAgICAgICAtLWNhdC1ncmFkOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjYTgxMDZhLCAjZTYxNDg0KTsgfVxuLnRuZC1jYXQtLXkgeyAtLWNhdC1jb2xvcjogIzlhNzYwMDsgICAgICAgICAgICAtLWNhdC1ncmFkOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjYjA4OTAwLCAjZTBhODAwKTsgfVxuLnRuZC1jYXQtLXMgeyAtLWNhdC1jb2xvcjogIzBiN2E0MzsgICAgICAgICAgICAtLWNhdC1ncmFkOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGI3YTQzLCAjMGY5ZDU4KTsgfVxuXG4vKiAtLS0tIFNlY2Npw7NuIG9zY3VyYSAodGludGEpIC0tLS0gKi9cbi50bmQtc2VjdGlvbi0tZGFyayB7XG4gIGJhY2tncm91bmQ6XG4gICAgcmFkaWFsLWdyYWRpZW50KDYwJSAxMDAlIGF0IDEwMCUgMCUsIHJnYmEoMCwgMTU4LCAyMzksIDAuMTgpLCB0cmFuc3BhcmVudCA2MCUpLFxuICAgIHJhZGlhbC1ncmFkaWVudCg1MCUgMTAwJSBhdCAwJSAxMDAlLCByZ2JhKDIzMCwgMjAsIDEzMiwgMC4xMiksIHRyYW5zcGFyZW50IDYwJSksXG4gICAgdmFyKC0tYy1pbmspO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTEwMCk7XG59XG4udG5kLXNlY3Rpb24tLWRhcmsgLnRuZC1zZWN0aW9uX190aXRsZSB7IGNvbG9yOiAjZmZmOyB9XG5cbi8qIC0tLS0gUmVjb21wcmEgcsOhcGlkYSAoYmFubmVyIHBlcnNvbmFsLCBzb2xvIGNsaWVudGVzIHJlZ2lzdHJhZG9zKSAtLS0tICovXG4udG5kLXJlYnV5IHtcbiAgLyogTUFSR0VOIFNVUEVSSU9SIGRlIFwiVnVlbHZlIGEgY29tcHJhciBlbiB1biBjbGljXCIuIEFqdXN0YSBgcGFkZGluZy10b3BgIGEgdHUgZ3VzdG8uXG4gICAgIChTZXBhcmFkbyBkZSBgcGFkZGluZy1ib3R0b21gIHBhcmEgcG9kZXIgdG9jYXIgc29sbyBlbCBkZSBhcnJpYmEuKSAqL1xuICBwYWRkaW5nLXRvcDogY2xhbXAoMXJlbSwgMC43cmVtICsgMS40dncsIDEuNzVyZW0pO1xuICBwYWRkaW5nLWJvdHRvbTogY2xhbXAoMS43NXJlbSwgMS4zcmVtICsgMnZ3LCAzcmVtKTtcbiAgYmFja2dyb3VuZDpcbiAgICByYWRpYWwtZ3JhZGllbnQoNzAlIDEzMCUgYXQgMCUgMCUsIHZhcigtLWMtYnJhbmQtNTApLCB0cmFuc3BhcmVudCA2MCUpLFxuICAgIHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG59XG4udG5kLXJlYnV5X19oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tcy0zKSB2YXIoLS1zLTQpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXMtNik7XG59XG4udG5kLXJlYnV5X19leWVicm93IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgbWFyZ2luOiAwIDAgdmFyKC0tcy0xKTtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbn1cbi50bmQtcmVidXlfX2V5ZWJyb3cgc3ZnIHsgd2lkdGg6IDEuMXJlbTsgaGVpZ2h0OiAxLjFyZW07IH1cbi8qIENhcnJpbCBob3Jpem9udGFsOiB0YXJqZXRhcyBTSUVNUFJFIGEgdGFtYcOxbyBwZXF1ZcOxbyBmaWpvICh+NiBwb3IgbMOtbmVhKSB5XG4gICBjZW50cmFkYXMgY3VhbmRvIGhheSBwb2Nhczsgc2kgbm8gY2FiZW4sIGhhY2Ugc2Nyb2xsIGNvbiBzbmFwIChzaW4gYWdyYW5kYXJzZSkuICovXG4udG5kLXJlYnV5X190cmFjayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gIGdyaWQtYXV0by1jb2x1bW5zOiAxMS41cmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNhZmUgY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMyk7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5O1xuICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tcy0yKTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG59XG4udG5kLXJlYnV5X19jZWxsIHsgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OyBtaW4td2lkdGg6IDA7IH1cblxuLyogLS0tLSBCbG9xdWUgU0VPIC0tLS0gKi9cbi50bmQtc2VvIHAgeyBtYXgtd2lkdGg6IDcwY2g7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyB9XG4udG5kLXNlb19fbGlua3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tcy0yKSB2YXIoLS1zLTQpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1zZW9fX2xpbmtzIGEge1xuICBjb2xvcjogdmFyKC0tYy1saW5rKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xufVxuLnRuZC1zZW9fX2xpbmtzIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuIiwiLypcbiAqIFRvbmVyZGVsdXhlIOKAlCBQw6FnaW5hIGRlIGxpc3RhZG8gZGUgcHJvZHVjdG8gKFBMUCAvIGNhdGVnb3LDrWFzLCBGYXNlIDMpLlxuICogQ2FiZWNlcmEgY29uIGdhbmNobywgYmFycmEgZGUgY29udHJvbCwgZ3JpZCBkZSB0YXJqZXRhcywgZmFjZXRhcyAob2ZmY2FudmFzIGVuIG3Ds3ZpbCkgeSBibG9xdWUgU0VPLlxuICovXG5cbi8qIC0tLS0gQ2FiZWNlcmEgZGUgY2F0ZWdvcsOtYSAtLS0tICovXG4udG5kLXBscC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXMtNCk7XG4gICAgcGFkZGluZzogdmFyKC0tcy02KSAwIHZhcigtLXMtNCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1wbHAtaGVhZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDEpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1zLTIpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC10aWdodCk7XG59XG4udG5kLXBscC1oZWFkX192YWx1ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMSkgdmFyKC0tcy0yKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIG1hcmdpbjogMDtcbn1cbi50bmQtcGxwLWhlYWRfX3ZhbHVlIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jLWRlYWwpOyB9XG4udG5kLXBscC1oZWFkX192YWx1ZSBzdmcgeyB3aWR0aDogMS4wNXJlbTsgaGVpZ2h0OiAxLjA1cmVtOyBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApOyB9XG4udG5kLXBscC1oZWFkX19zZXAgeyBjb2xvcjogdmFyKC0tYy1ncmF5LTMwMCk7IH1cbi50bmQtcGxwLWhlYWRfX2ludHJvIHsgbWFyZ2luLXRvcDogdmFyKC0tcy0zKTsgbWF4LXdpZHRoOiA2MGNoOyB9XG4udG5kLXBscC1oZWFkX19pbnRyby10ZXh0IHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1yZWxheGVkKTtcbn1cbi50bmQtcGxwLWhlYWRfX21vcmUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgICBjb2xvcjogdmFyKC0tYy1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4udG5kLXBscC1oZWFkX19tb3JlOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogQWNlbnRvIENNWUsgZGVjb3JhdGl2byBhIGxhIGRlcmVjaGEgZGUgbGEgY2FiZWNlcmEgKi9cbi50bmQtcGxwLWhlYWRfX2FjY2VudCB7IGRpc3BsYXk6IG5vbmU7IGdhcDogNHB4OyBmbGV4LXNocmluazogMDsgcGFkZGluZy10b3A6IHZhcigtLXMtMSk7IH1cbi50bmQtcGxwLWhlYWRfX2JhciB7IHdpZHRoOiA4cHg7IGhlaWdodDogNDRweDsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsgZGlzcGxheTogYmxvY2s7IH1cbi50bmQtcGxwLWhlYWRfX2Jhci0tYyB7IGJhY2tncm91bmQ6IHZhcigtLWMtYWNjZW50LWN5YW4pOyB9XG4udG5kLXBscC1oZWFkX19iYXItLW0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjY2VudC1tYWdlbnRhKTsgfVxuLnRuZC1wbHAtaGVhZF9fYmFyLS15IHsgYmFja2dyb3VuZDogdmFyKC0tYy1hY2NlbnQteWVsbG93KTsgfVxuLnRuZC1wbHAtaGVhZF9fYmFyLS1rIHsgYmFja2dyb3VuZDogdmFyKC0tYy1pbmspOyB9XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAudG5kLXBscC1oZWFkX19hY2NlbnQgeyBkaXNwbGF5OiBmbGV4OyB9XG59XG5cbi8qIC0tLS0gQmFycmEgZGUgY29udHJvbCAoY29udGFkb3IgKyBvcmRlbiArIGZpbHRyYXIpIC0tLS0gKi9cbi50bmQtcGxwLWJhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXMtNCk7XG59XG4udG5kLXBscC1iYXJfX2NvdW50IHsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbi50bmQtcGxwLWJhcl9fY291bnQgc3Ryb25nIHsgY29sb3I6IHZhcigtLWMtdGV4dCk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IH1cbi50bmQtcGxwLWJhcl9fYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tcy0yKTsgfVxuLnRuZC1wbHAtYmFyX19zb3J0IC5kcm9wZG93bi10b2dnbGUgeyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyB9XG5cbi8qIC0tLS0gR3JpZCAtLS0tICovXG4udG5kLXBscC1ncmlkIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy02KTsgfVxuXG4vKiAtLS0tIFBhZ2luYWRvciAtLS0tICovXG4udG5kLXBhZ2VyIHsgbWFyZ2luLXRvcDogdmFyKC0tcy04KTsgfVxuXG4vKiAtLS0tIENoaXBzIGRlIGZpbHRyb3MgYWN0aXZvcyAoc29icmUgbGEgcmVqaWxsYSBkZSByZXN1bHRhZG9zIGRlIC9idXNjYXIpIC0tLS0gKi9cbi50bmQtYWN0aXZlZmlsdGVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy00KTtcbn1cbi50bmQtYWN0aXZlZmlsdGVyc19fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMSk7XG4gICAgcGFkZGluZzogNHB4IHZhcigtLXMtMikgNHB4IHZhcigtLXMtMyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4udG5kLWFjdGl2ZWZpbHRlcnNfX2NoaXA6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtMzAwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xufVxuLnRuZC1hY3RpdmVmaWx0ZXJzX19jaGlwIHN2ZyB7IHdpZHRoOiAwLjlyZW07IGhlaWdodDogMC45cmVtOyBvcGFjaXR5OiAwLjc7IH1cbi50bmQtYWN0aXZlZmlsdGVyc19fY2xlYXIge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zLTEpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnRuZC1hY3RpdmVmaWx0ZXJzX19jbGVhcjpob3ZlciB7IGNvbG9yOiB2YXIoLS1jLWxpbmspOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4vKiAtLS0tIEFwYXJpY2nDs24gZXNjYWxvbmFkYSArIGhvdmVyIHJlZm9yemFkbyBkZSBsYSByZWppbGxhIGRlIHJlc3VsdGFkb3MgLS0tLSAqL1xuLnRuZC1yZXN1bHRzLWdyaWQgLmNvbCB7XG4gICAgYW5pbWF0aW9uOiB0bmQtY2FyZC1pbiB2YXIoLS10cmFuc2l0aW9uLXNsb3cpIGJvdGg7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiBjYWxjKHZhcigtLWksIDApICogNDVtcyk7XG59XG5Aa2V5ZnJhbWVzIHRuZC1jYXJkLWluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpOyB9XG4gICAgdG8gICB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxufVxuLnRuZC1yZXN1bHRzLWdyaWQgLnRuZC1jYXJkOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNTAwKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnRuZC1yZXN1bHRzLWdyaWQgLmNvbCB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuXG4vKiAtLS0tIEVzdGFkbyB2YWPDrW8gLS0tLSAqL1xuLnRuZC1lbXB0eV9faWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JheS0zMDApO1xufVxuLnRuZC1lbXB0eV9faWNvbiBzdmcgeyB3aWR0aDogM3JlbTsgaGVpZ2h0OiAzcmVtOyB9XG5cbi8qIC0tLS0gRmFjZXRhcyAoc2lkZWJhciAvIG9mZmNhbnZhcykgLS0tLSAqL1xuLnRuZC1maWx0ZXJzX19ncm91cCB7IG1hcmdpbi1ib3R0b206IHZhcigtLXMtNik7IH1cbi50bmQtZmlsdGVyc19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0zKTtcbn1cbi50bmQtZmlsdGVyc19fZmllbGQgeyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTMpOyB9XG4vKiBJbnB1dHMgZGVsIGdyaWQgbmF0aXZvIChiw7pzcXVlZGEgKyBtYXJjYSkgZGVudHJvIGRlIGxhcyBmYWNldGFzICovXG4udG5kLWZpbHRlcnNfX2ZpZWxkIGxhYmVsIHsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7IGNvbG9yOiB2YXIoLS1jLXRleHQpOyB9XG4udG5kLWZpbHRlcnNfX2ZpZWxkIDppcyhpbnB1dFt0eXBlPVwidGV4dFwiXSwgc2VsZWN0KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbn1cbi50bmQtZmlsdGVyc19fYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tcy0xKTsgbWFyZ2luLXRvcDogdmFyKC0tcy0zKTsgfVxuXG4udG5kLWZpbHRlcnNfX25hdiB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfVxuLnRuZC1maWx0ZXJzX19uYXYgbGkgKyBsaSB7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7IH1cbi50bmQtZmlsdGVyc19fbmF2IGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiB2YXIoLS1zLTIpO1xuICAgIHBhZGRpbmc6IHZhcigtLXMtMikgMDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbn1cbi50bmQtZmlsdGVyc19fbmF2IGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tYy1saW5rKTsgfVxuLnRuZC1maWx0ZXJzX19uYXYgc3ZnIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMXJlbTsgY29sb3I6IHZhcigtLWMtZ3JheS00MDApOyB9XG4udG5kLWZpbHRlcnNfX3VwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0xKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zLTMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnRuZC1maWx0ZXJzX191cDpob3ZlciB7IGNvbG9yOiB2YXIoLS1jLWxpbmspOyB9XG5cbi8qIEZhY2V0YXMgdGlwbyBjaGVja2JveCBjb24gcmVjdWVudG8gKGLDunNxdWVkYSBNZWlsaXNlYXJjaCkgKi9cbi50bmQtZmFjZXQgeyBib3JkZXI6IDA7IG1hcmdpbjogMCAwIHZhcigtLXMtNCk7IHBhZGRpbmc6IDA7IH1cbi50bmQtZmFjZXRfX29wdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0yKTtcbiAgICBwYWRkaW5nOiA0cHggMDtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi50bmQtZmFjZXRfX29wdCBpbnB1dCB7IG1hcmdpbjogMDsgfVxuLnRuZC1mYWNldF9fb3B0IHNwYW46Zmlyc3Qtb2YtdHlwZSB7IGZsZXg6IDE7IH1cbi50bmQtZmFjZXRfX2NvdW50IHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS1zdW5rKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gICAgcGFkZGluZzogMXB4IDhweDtcbn1cblxuLyogRW4gZGVza3RvcCBlbCBvZmZjYW52YXMtbGcgZXMgdW5hIGNvbHVtbmEgZXN0w6F0aWNhIHkgcGVnYWpvc2EgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC50bmQtZmlsdGVycyB7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogdmFyKC0tcy00KTsgfVxuICAgIC50bmQtZmlsdGVycyAub2ZmY2FudmFzLWJvZHkgeyBwYWRkaW5nOiAwOyBvdmVyZmxvdzogdmlzaWJsZTsgfVxufVxuXG4vKiAtLS0tIEJsb3F1ZSBTRU8gKyBGQVEgLS0tLSAqL1xuLnRuZC1wbHAtc2VvIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zLTEyKTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tcy04KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xufVxuLnRuZC1wbHAtc2VvX19jb2xzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tcy04KTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC50bmQtcGxwLXNlb19fY29scyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4yZnIgMWZyOyB9XG59XG4udG5kLXBscC1zZW8gaDIgeyBmb250LXNpemU6IHZhcigtLWZzLWgzKTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0zKTsgfVxuLnRuZC1wbHAtc2VvX190ZXh0IHAgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXJlbGF4ZWQpOyB9XG4udG5kLXBscC1zZW9fX2xpbmtzLXRpdGxlIHsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5KTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTsgbWFyZ2luLXRvcDogdmFyKC0tcy00KTsgfVxuLnRuZC1wbHAtc2VvX19saW5rcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IHZhcigtLXMtMikgMCAwO1xufVxuLnRuZC1wbHAtc2VvX19saW5rcyBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogdmFyKC0tcy0xKSB2YXIoLS1zLTMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApO1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnRuZC1wbHAtc2VvX19saW5rcyBhOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC0xMDApOyB9XG4udG5kLXBscC1zZW9fX2ZhcSAuYWNjb3JkaW9uLWJ1dHRvbiB7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pOyB9XG4udG5kLXBscC1zZW9fX2ZhcSAuYWNjb3JkaW9uLWJ1dHRvbjpub3QoLmNvbGxhcHNlZCkge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG59XG4udG5kLXBscC1zZW9fX2ZhcSAuYWNjb3JkaW9uLWJ1dHRvbjpmb2N1cyB7IGJveC1zaGFkb3c6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC0zMDApOyB9XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIEZpY2hhIGRlIHByb2R1Y3RvIChQRFAsIEZhc2UgNCkuXG4gKiBDYWJlY2VyYSBkZSBtYXJjYSwgYmxvcXVlIGVzdHJlbGxhIGRlIGNvbXBhdGliaWxpZGFkIHkgdGlyYSBkZSBjb25maWFuemEgZGVsIGJ1eSBib3guXG4gKi9cblxuLyogLS0tLSBDYWJlY2VyYSBkZWwgYnV5IGJveCAtLS0tICovXG4udG5kLXBkcC1oZWFkX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zLTIpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXMtMik7XG59XG4udG5kLXBkcC1oZWFkX19icmFuZCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi50bmQtcGRwLWhlYWRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWgyKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXRpZ2h0KTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1zLTIpO1xufVxuLnRuZC1wZHAtaGVhZF9fcmVmIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIG1hcmdpbjogMDtcbn1cbi50bmQtcGRwLWhlYWRfX3JlZiBzdHJvbmcgeyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxuLnRuZC1wZHAtaGVhZF9fc2VwIHsgY29sb3I6IHZhcigtLWMtZ3JheS0zMDApOyBtYXJnaW46IDAgdmFyKC0tcy0xKTsgfVxuXG4vKiAtLS0tIEJsb3F1ZSBlc3RyZWxsYSBkZSBjb21wYXRpYmlsaWRhZCAtLS0tICovXG4udG5kLWNvbXBhdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tYy1icmFuZC01MDApO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG4gICAgcGFkZGluZzogdmFyKC0tcy0zKSB2YXIoLS1zLTQpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXMtNCk7XG59XG4udG5kLWNvbXBhdF9fdGl0bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTMpO1xufVxuLnRuZC1jb21wYXRfX3RpdGxlIHN2ZyB7IHdpZHRoOiAxLjI1cmVtOyBoZWlnaHQ6IDEuMjVyZW07IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCk7IH1cblxuLnRuZC1jb21wYXRfX2NoZWNrIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4udG5kLWNvbXBhdF9faWNvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogdmFyKC0tcy0zKTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY29sb3I6IHZhcigtLWMtZ3JheS00MDApO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnRuZC1jb21wYXRfX2ljbyBzdmcgeyB3aWR0aDogMS4xcmVtOyBoZWlnaHQ6IDEuMXJlbTsgZGlzcGxheTogYmxvY2s7IH1cbi50bmQtY29tcGF0X19jaGVjayAuZm9ybS1jb250cm9sIHsgcGFkZGluZy1sZWZ0OiAyLjVyZW07IGJhY2tncm91bmQ6IHZhcigtLWMtd2hpdGUpOyB9XG5cbi50bmQtY29tcGF0X19yZXN1bHQge1xuICAgIG1hcmdpbjogdmFyKC0tcy0yKSAwIDA7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICAgIG1pbi1oZWlnaHQ6IDEuMmVtO1xufVxuLnRuZC1jb21wYXRfX3Jlc3VsdC0tb2sgeyBjb2xvcjogdmFyKC0tYy1zYXZlKTsgfVxuXG4udG5kLWNvbXBhdF9fY291bnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMSk7XG4gICAgbWFyZ2luOiB2YXIoLS1zLTMpIDAgdmFyKC0tcy0yKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xufVxuLnRuZC1jb21wYXRfX2NvdW50IHN2ZyB7IHdpZHRoOiAxLjFyZW07IGhlaWdodDogMS4xcmVtOyBjb2xvcjogdmFyKC0tYy1zYXZlKTsgfVxuLnRuZC1jb21wYXRfX2NvdW50IHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jLXRleHQpOyB9XG5cbi50bmQtY29tcGF0X19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1heC1oZWlnaHQ6IDExcmVtO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuLnRuZC1jb21wYXRfX2l0ZW0gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMSk7XG4gICAgcGFkZGluZzogNHB4IDA7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgICBjb2xvcjogdmFyKC0tYy1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4udG5kLWNvbXBhdF9faXRlbSBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi50bmQtY29tcGF0X19pdGVtIHN2ZyB7IHdpZHRoOiAwLjk1cmVtOyBoZWlnaHQ6IDAuOTVyZW07IGNvbG9yOiB2YXIoLS1jLWdyYXktNDAwKTsgfVxuLnRuZC1jb21wYXRfX2VtcHR5IHtcbiAgICBtYXJnaW46IHZhcigtLXMtMikgMCAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgY29sb3I6IHZhcigtLWMtd2FybmluZyk7XG59XG5cbi8qIC0tLS0gVGlyYSBkZSBjb25maWFuemEgKFVTUHMpIGJham8gZWwgQ1RBIC0tLS0gKi9cbi50bmQtcGRwLXRydXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGdhcDogdmFyKC0tcy0yKSB2YXIoLS1zLTMpO1xuICAgIG1hcmdpbjogdmFyKC0tcy0zKSAwIDA7XG4gICAgcGFkZGluZzogdmFyKC0tcy0zKSAwIDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbn1cbi50bmQtcGRwLXRydXN0IGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zLTIpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG4udG5kLXBkcC10cnVzdCBzdmcgeyB3aWR0aDogMS4xNXJlbTsgaGVpZ2h0OiAxLjE1cmVtOyBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApOyBmbGV4LXNocmluazogMDsgfVxuXG4vKiAtLS0tIFBlc3Rhw7FhIGRlIGNvbXBhdGliaWxpZGFkIChsaXN0YSBjb21wbGV0YSkgLS0tLSAqL1xuLnRuZC1jb21wYXQtdGFiX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbHVtbnM6IDI7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tcy02KTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkgeyAudG5kLWNvbXBhdC10YWJfX2xpc3QgeyBjb2x1bW5zOiAxOyB9IH1cbi50bmQtY29tcGF0LXRhYl9fbGlzdCBsaSB7IGJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbi50bmQtY29tcGF0LXRhYl9fbGlzdCBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0xKTtcbiAgICBwYWRkaW5nOiA0cHggMDtcbiAgICBjb2xvcjogdmFyKC0tYy1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbn1cbi50bmQtY29tcGF0LXRhYl9fbGlzdCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi50bmQtY29tcGF0LXRhYl9fbGlzdCBzdmcgeyB3aWR0aDogMC45NXJlbTsgaGVpZ2h0OiAwLjk1cmVtOyBjb2xvcjogdmFyKC0tYy1ncmF5LTQwMCk7IH1cblxuLyogLS0tLSBSZWxhY2lvbmFkb3MgLS0tLSAqL1xuLnRuZC1yZWxhdGVkIHsgbWFyZ2luLXRvcDogdmFyKC0tcy04KTsgfVxuLnRuZC1yZWxhdGVkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1oMyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpO1xufVxuXG4vKiAtLS0tIEZBUSBkZSBsYSBmaWNoYSAtLS0tICovXG4udG5kLXBkcC1mYXEge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXMtMTIpO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zLTgpO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG59XG4udG5kLXBkcC1mYXEgaDIge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDMpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy00KTtcbn1cbi50bmQtcGRwLWZhcSAuYWNjb3JkaW9uLWJ1dHRvbjpub3QoLmNvbGxhcHNlZCkge1xuICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG59XG4udG5kLXBkcC1mYXEgLmFjY29yZGlvbi1idXR0b246Zm9jdXMgeyBib3gtc2hhZG93OiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtMzAwKTsgfVxuXG4vKiAtLS0tIEdhbGVyw61hIGNvbiBwcm90YWdvbmlzbW8gcmVkdWNpZG8gKGVuIGNvbnN1bWlibGVzIGxhIGZvdG8gZXMgYXBveW8sIG5vIHByb3RhZ29uaXN0YSkgLS0tLSAqL1xuLnRuZC1wZHAtZ2FsbGVyeV9fZnJhbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAyODBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTMpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JheS01MCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi50bmQtcGRwLWdhbGxlcnlfX2ltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBSZWRpc2XDsW8gUERQIOKAlCBtYXF1ZXRhY2nDs24gZGUgbGEgZmljaGEgZW4g4omlbGcgY29uIENTUyBncmlkIHNvYnJlIGxhIGZpbGEgY29tcGxldGEuXG4gICBgZGlzcGxheTogY29udGVudHNgIGVuIGxhIGNvbHVtbmEgaXpxdWllcmRhIChvdmVydmlldykgZWxldmEgc3VzIGJsb3F1ZXMgKGltYWdlbiwgwr92YWxlPyxcbiAgIGRlIHVuIHZpc3Rhem8sIGFjb3JkZcOzbikgYSBjZWxkYXMgZGVsIGdyaWQsIHBhcmEgY29sb2NhcjpcbiAgICAgwrcgaW1hZ2VuIHBlcXVlw7FhIGFycmliYS1penF1aWVyZGEsXG4gICAgIMK3IFwiwr9WYWxlIHBhcmEgdHUgaW1wcmVzb3JhP1wiIHkgXCJkZSB1biB2aXN0YXpvXCIgZGViYWpvIGRlIGxhIGltYWdlbixcbiAgICAgwrcgYnV5IGJveCAocHJlY2lvICsgYcOxYWRpciBhbCBjYXJyaXRvKSBhIGxhIGRlcmVjaGEsIGNvbXBhY3RvIOKGkiBlbnRyYSBzaW4gc2Nyb2xsLFxuICAgICDCtyBhY29yZGXDs24gZGUgRGV0YWxsZXMvQXRyaWJ1dG9zL0NvbXBhdGliaWxpZGFkL09waW5pb25lcyBhIFRPRE8gRUwgQU5DSE8gZGViYWpvLCBlbmNpbWEgZGUgbGEgRkFRLiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLnByb2R1Y3Qtc2hvdyAudG5kLXBkcC1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgNDVmcikgbWlubWF4KDAsIDU1ZnIpOyAgLyogNDUlIGdhbGVyw61hIMK3IDU1JSBidXkgYm94ICovXG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLXMtNik7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLXMtNCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gPiAuY29sLWxnLTcuY29sLXhsLTggeyBkaXNwbGF5OiBjb250ZW50czsgfVxuICAgIC5wcm9kdWN0LXNob3cgLnRuZC1wZHAtaW5mbyA+IC5jb2wtbGctNS5jb2wteGwtNCB7ICAvKiBidXkgYm94IGEgbGEgZGVyZWNoYSAoNTUlKSAqL1xuICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgZ3JpZC1yb3c6IDEgLyAzO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7ICAgLyogYW51bGFyIGVsIG1hcmdpbi10b3AgZGVsIGd1dHRlciBCb290c3RyYXAgKGctbGctNSDiiYggM3JlbSkgcXVlIGxvIGJhamFiYSAqL1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAvKiBHYWxlcsOtYTogbGxlbmEgc3UgbWl0YWQgKDQ1JSk7IGxhIGltYWdlbiBTSUVNUFJFIGFsIGxhZG8gZGUgbGFzIG1pbmlhdHVyYXMgKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnRuZC1wZHAtZ2FsbGVyeSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTsgICAgICAgICAgICAgLyogbGxlbmFyIGxhIGNvbHVtbmEgZGVsIGdyaWQgKHNpIG5vLCBzZSBlbmNvZ2UgYSBsYXMgbWluaWF0dXJhcykgKi9cbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7ICAgICAgIC8qIGxhIGltYWdlbiBudW5jYSBjYWUgZGViYWpvIGRlIGxhcyBtaW5pYXR1cmFzICovXG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWdhbGxlcnkgPiBbZGF0YS1wcm9kdWN0LWltYWdlXSB7IGRpc3BsYXk6IG5vbmU7IH0gIC8qIGRpdiB0w6ljbmljbyB2YWPDrW8gKi9cbiAgICAvKiBsYSBpbWFnZW4gcHJpbmNpcGFsIG9jdXBhIGVsIGVzcGFjaW8gcmVzdGFudGUgeSBwdWVkZSBlbmNvZ2Vyc2UgKGVsIG9yaWdpbmFsIGVzIDEyMDBweCkgKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWdhbGxlcnkgPiAuY29sIHsgZmxleDogMSAxIDA7IG1pbi13aWR0aDogMDsgfVxuICAgIC8qIFwiwr9WYWxlIHBhcmEgdHUgaW1wcmVzb3JhP1wiIGRlYmFqbyBkZSBsYSBnYWxlcsOtYSwgbGxlbmEgc3UgbWl0YWQgKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnRuZC1jb21wYXQgeyBncmlkLWNvbHVtbjogMTsgZ3JpZC1yb3c6IDI7IG1hcmdpbjogMDsgfVxuICAgIC8qIGxhIGNvbHVtbmEgZGVyZWNoYSAoYnV5IGJveCkgcGVnYWRhIGFycmliYSBkZWwgdG9kbyAqL1xuICAgIC5wcm9kdWN0LXNob3cgLnRuZC1wZHAtaW5mbyA+IC5jb2wtbGctNS5jb2wteGwtNCAuc3RpY2t5LXRvcCB7IHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAvKiBBY29yZGXDs24gZGUgZGV0YWxsZXMgYSBUT0RPIEVMIEFOQ0hPIGRlYmFqbywgZW5jaW1hIGRlIGxhIEZBUSAqL1xuICAgIC5wcm9kdWN0LXNob3cgLnRuZC1wZHAtaW5mbyA+IC5jb2wtbGctNy5jb2wteGwtOCA+IC5hY2NvcmRpb24ge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICBncmlkLXJvdzogMztcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tcy02KTtcbiAgICB9XG4gICAgLyogTWluaWF0dXJhcyBlbiB0aXJhIHZlcnRpY2FsIGNvbXBhY3RhIHkgZGVzcGxhemFibGUgYSBsYSBpenF1aWVyZGEgKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWdhbGxlcnkgPiBbY2xhc3MqPVwiY29sLXNtLTNcIl0ge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDg0cHg7XG4gICAgICAgIG9yZGVyOiAtMTtcbiAgICB9XG4gICAgLnByb2R1Y3Qtc2hvdyAudG5kLXBkcC1nYWxsZXJ5ID4gW2NsYXNzKj1cImNvbC1zbS0zXCJdID4gLmQtZmxleCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBnYXA6IHZhcigtLXMtMikgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnByb2R1Y3Qtc2hvdyAudG5kLXBkcC1nYWxsZXJ5ID4gW2NsYXNzKj1cImNvbC1zbS0zXCJdIGEge1xuICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtZ3JheS01MCk7XG4gICAgICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgLjE1cyBlYXNlO1xuICAgIH1cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWdhbGxlcnkgPiBbY2xhc3MqPVwiY29sLXNtLTNcIl0gYTpob3ZlciB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWFjY2VudC1tYWdlbnRhKTtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XG4gICAgfVxufVxuXG4vKiBSZWRpc2VubyBQRFAgLSBPUkRFTiBFTiBNT1ZJTCAoPGxnKS4gRW4gZGVza3RvcCBtYW5kYSBlbCBncmlkIGRlIGFycmliYTsgZW4gbW92aWxcbiAgIHJlb3JkZW5hbW9zIGxvcyBibG9xdWVzIHBhcmEgY29udmVyc2lvbjogVGl0dWxvIC0+IEltYWdlbiAtPiBQcmVjaW8gLT4gQ2Fycml0byAtPlxuICAgVmFsZSBwYXJhIHR1IGltcHJlc29yYT8gLT4gQ29uZmlhbnphIC0+IFJlc2VuYXMgLT4gaW5mbyAoZmljaGEvZGVzY3JpcGNpb24pIC0+IERldGFsbGVzLlxuICAgVGVjbmljYTogZGlzcGxheTpjb250ZW50cyBhcGxhbmEgbGFzIGNvbHVtbmFzIHkgZWwgc3RpY2t5LXRvcCBwYXJhIHVzYXIgYG9yZGVyYCBzaW5cbiAgIHRvY2FyIHBsYW50aWxsYXMuIEVsIG9yZGVuIGRlbCBET00gKHkgcG9yIHRhbnRvIGgxL1NFTykgTk8gY2FtYmlhLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLnByb2R1Y3Qtc2hvdyAudG5kLXBkcC1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLS1icy1ndXR0ZXIteDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgLnByb2R1Y3Qtc2hvdyAudG5kLXBkcC1pbmZvID4gLmNvbC0xMiB7IGRpc3BsYXk6IGNvbnRlbnRzOyB9XG4gICAgLnByb2R1Y3Qtc2hvdyAudG5kLXBkcC1pbmZvIC5zdGlja3ktdG9wIHsgZGlzcGxheTogY29udGVudHM7IH1cblxuICAgIC8qIGJhc2U6IGxvIG5vIG1hcmNhZG8gKGZpY2hhIFRJUE8vUkVORElNSUVOVE8sIGRlc2NyaXBjaW9uIGNvcnRhLCBTS1UsIHByb21vIHZhY2lhKVxuICAgICAgIGNhZSBlbiBsYSB6b25hIGRlIGluZm9ybWFjaW9uLCBlbnRyZSByZXNlbmFzIHkgZWwgYWNvcmRlb24gKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnN0aWNreS10b3AgPiAqIHsgb3JkZXI6IDgwOyB9XG5cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnN0aWNreS10b3AgPiAudG5kLXBkcC1oZWFkICAgICAgIHsgb3JkZXI6IDEwOyB9ICAvKiBUaXR1bG8gKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnRuZC1wZHAtZ2FsbGVyeSAgICAgICAgICAgICAgICAgIHsgb3JkZXI6IDIwOyB9ICAvKiBJbWFnZW4gKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnN0aWNreS10b3AgPiAubWItMy5wYi0xICAgICAgICAgIHsgb3JkZXI6IDMwOyB9ICAvKiBQcmVjaW8gKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnN0aWNreS10b3AgPiAucG9zaXRpb24tcmVsYXRpdmUgIHsgb3JkZXI6IDQwOyB9ICAvKiBDYXJyaXRvICsgdW5pZGFkZXMgKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLnRuZC1jb21wYXQgICAgICAgICAgICAgICAgICAgICAgIHsgb3JkZXI6IDUwOyB9ICAvKiBWYWxlIHBhcmEgdHUgaW1wcmVzb3JhPyAqL1xuICAgIC5wcm9kdWN0LXNob3cgLnRuZC1wZHAtaW5mbyAuc3RpY2t5LXRvcCA+IC50bmQtcGRwLXRydXN0ICAgICAgeyBvcmRlcjogNjA7IH0gIC8qIENvbmZpYW56YSAqL1xuICAgIC5wcm9kdWN0LXNob3cgLnRuZC1wZHAtaW5mbyAuc3RpY2t5LXRvcCA+IC5yb3cubWItMiAgICAgICAgICAgeyBvcmRlcjogNjU7IH0gIC8qIFJlc2VuYXMgKi9cbiAgICAucHJvZHVjdC1zaG93IC50bmQtcGRwLWluZm8gLmFjY29yZGlvbiAgICAgICAgICAgICAgICAgICAgICAgIHsgb3JkZXI6IDkwOyB9ICAvKiBEZXRhbGxlcyAqL1xufVxuXG4vKiAtLS0tIFByZWNpbyBwcm90YWdvbmlzdGEgKG1hZ2VudGEgZGUgbWFyY2EpIC0tLS0gKi9cbi50bmQtcGRwLXByaWNlIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWgxKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXRpZ2h0KTtcbiAgICBjb2xvcjogdmFyKC0tYy1hY2NlbnQtbWFnZW50YSk7XG59XG4udG5kLXBkcC1wcmljZV9fb2xkIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWg0KTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi50bmQtcGRwLXByaWNlX19vbGQgZGVsIHsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyB9XG4udG5kLXBkcC1wcmljZV9fY3BwIHsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbi8qIFwiSVZBIGluY2x1aWRvXCIgKyBcIuKCrC9ww6FnaW5hXCIgZW4gYmxvcXVlIHBlcXVlw7FvLCBhIGxhIG1pc21hIGFsdHVyYSBxdWUgZWwgcHJlY2lvICovXG4udG5kLXBkcC1wcmljZV9fbWV0YSB7IGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1zbnVnKTsgfVxuXG4vKiAtLS0tIENUQSBjb21wYWN0bzogY2FudGlkYWQgKyBcIkHDsWFkaXIgYWwgY2Fycml0b1wiIGVuIGxhIG1pc21hIGzDrW5lYSAtLS0tXG4gICBFbCBmb3JtdWxhcmlvIChMaXZlQ29tcG9uZW50KSBlcyBlbCBjb250ZW5lZG9yIGZsZXguIExhIGNhbnRpZGFkIHF1ZWRhIGVzdHJlY2hhIGEgbGFcbiAgIGl6cXVpZXJkYSB5IGVsIGJvdMOzbiBvY3VwYSBlbCByZXN0bzsgY3VhbHF1aWVyIG90cm8gYmxvcXVlIGRlbCBmb3JtdWxhcmlvIChlcnJvcmVzLFxuICAgc2VsZWN0b3IgZGUgdmFyaWFudGVzLCBcImVudHJlZ2EgbcOhcyByw6FwaWRhXCIpIGNhZSBlbiBzdSBwcm9waWEgZmlsYSBjb21wbGV0YS4gKi9cbi8qIEZpbGEgZGUgY29tcHJhOiBjdWFkcm8gZGUgY2FudGlkYWQgKyBib3TDs24gY29tbyBIRVJNQU5PUyBkaXJlY3RvcyBlbiB1biDDum5pY28gZmxleC5cbiAgIEFsIHNlciBoZXJtYW5vcyBlbiBsYSBtaXNtYSBmaWxhIGNvbiBhbGlnbi1pdGVtczpjZW50ZXIsIGNvbXBhcnRlbiBsw61uZWEgYmFzZSB5IGFsdHVyYVxuICAgZGUgZm9ybWEgZ2FyYW50aXphZGEgKG5vIGRlcGVuZGVuIGRlIHdyYXBwZXJzIGRlIGRpc3RpbnRhIGFsdHVyYSkuICovXG4udG5kLWN0YS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgbWFyZ2luOiB2YXIoLS1zLTMpIDA7XG59XG4vKiBCbG9xdWUgZGUgY2FudGlkYWQgKGxhYmVsIFwiQ2FudGlkYWRcIiBlbiBsw61uZWEgKyBjdWFkcm8pLCBubyBjcmVjZS5cbiAgIGBtYXJnaW46IDAgIWltcG9ydGFudGAgcGFyYSB2ZW5jZXIgYWwgYC5tYi0zYCAobWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50KSBkZSBCb290c3RyYXBcbiAgIHF1ZSBhw7FhZGUgZWwgZm9ybSB0aGVtZTogZXNlIG1hcmdlbiBpbmZlcmlvciBlcmEgbG8gcXVlIGRlc2N1YWRyYWJhIGxhIGFsdHVyYSAoZmlsYSBhIDU4cHgpLiAqL1xuLnRuZC1jdGEtcm93IC5maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0yKTtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi50bmQtY3RhLXJvdyAuZmllbGQgPiBsYWJlbCB7IG1hcmdpbjogMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLnRuZC1jdGEtcm93IC5maWVsZCAuZm9ybS1jb250cm9sIHsgd2lkdGg6IDQuNXJlbTsgZmxleDogMCAwIGF1dG87IH1cbi8qIEJvdMOzbiBvY3VwYSBlbCByZXN0byAqL1xuLnRuZC1jdGEtcm93IC5idG4geyBmbGV4OiAxIDEgYXV0bzsgfVxuLyogQmxvcXVlIGRlIGNhbnRpZGFkIHJlZXNjcml0byAobGFiZWwgaW5saW5lICsgaW5wdXQpLCBzaW4gcXVlIGVsIGVycm9yIGxvIGVuc2FuY2hlLiAqL1xuLnRuZC1xdHktZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMCAwIGF1dG87XG59XG4udG5kLXF0eS1maWVsZCA+IGxhYmVsIHsgbWFyZ2luOiAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4udG5kLXF0eS1maWVsZCAuZm9ybS1jb250cm9sIHsgd2lkdGg6IDQuNXJlbTsgZmxleDogMCAwIGF1dG87IH1cblxuLyogQXZpc28gZGUgc3RvY2sgaW5zdWZpY2llbnRlOiBjaGlwIGNvbXBhY3RvIGJham8gbGEgZmlsYSBkZSBjb21wcmEgKG5vIHJvbXBlIGxhIGZpY2hhKS4gKi9cbi50bmQtc3RvY2std2FybiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0yKTtcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1zLTMpO1xuICAgIHBhZGRpbmc6IHZhcigtLXMtMikgdmFyKC0tcy0zKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjMwLCAyMCwgMTMyLCAwLjA4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzMCwgMjAsIDEzMiwgMC4yNSk7XG4gICAgY29sb3I6IHZhcigtLWMtYWNjZW50LW1hZ2VudGEpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXNudWcpO1xufVxuLnRuZC1zdG9jay13YXJuX19pY28geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZmxleDogbm9uZTsgfVxuLnRuZC1zdG9jay13YXJuX19pY28gc3ZnIHsgd2lkdGg6IDEuMXJlbTsgaGVpZ2h0OiAxLjFyZW07IH1cblxuLyogUHJvZHVjdG8gYWdvdGFkbzogbGEgY2FqYSBcIlNpbiBzdG9ja1wiIG9jdXBhIGVsIHNpdGlvIGRlIGxhIGNhbnRpZGFkIHkgY29tcGFydGUgYWx0dXJhIGNvblxuICAgZWwgYm90w7NuIFwiwqFBdsOtc2FtZSBlbiBjdWFudG8gdnVlbHZhIVwiIChtaXNtbyBwYXRyw7NuIGRlIGhlcm1hbm9zIGRpcmVjdG9zIGRlbCBmbGV4KS5cbiAgIFJlcGFydG8gZXF1aWxpYnJhZG8gfjQwLzYwIChsYSBjYWphIHlhIG5vIHF1ZWRhIHJhcXXDrXRpY2EgZnJlbnRlIGFsIGJvdMOzbikuICovXG4udG5kLWN0YS1yb3cgLnRkLW5vLXN0b2NrLWJveCB7XG4gICAgZmxleDogMiAxIDA7XG4gICAgbWluLXdpZHRoOiA1LjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZzogLjM3NXJlbSAuNXJlbTtcbiAgICBmb250LXNpemU6IC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnMtc2Vjb25kYXJ5LWJnKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJzLWJvcmRlci1yYWRpdXMsIC4zNzVyZW0pO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cbi50bmQtY3RhLXJvdyAudGQtbm90aWZ5LWJ0biB7IGZsZXg6IDMgMSAwOyB9XG4vKiBDdWFuZG8gZWwgYm90w7NuIHZhIGRlbnRybyBkZSB1biA8Zm9ybT4gKGNsaWVudGUgY29uIGF2aXNvcyB5YSBhY3RpdmFkb3Mg4oaSIGFsdGEgZW4gdW4gY2xpYyksXG4gICBlbCBmb3JtIG9jdXBhIGxhIHBhcnRlIGFuY2hhIGRlIGxhIGZpbGEgaWd1YWwgcXVlIGVsIGJvdMOzbiBzdWVsdG8uICovXG4udG5kLWN0YS1yb3cgPiBmb3JtIHsgZmxleDogMyAxIDA7IGRpc3BsYXk6IGZsZXg7IH1cbi50bmQtY3RhLXJvdyA+IGZvcm0gPiAuYnRuIHsgZmxleDogMSAxIGF1dG87IH1cblxuLyogQm90w7NuIFwiQXbDrXNhbWUgY3VhbmRvIHZ1ZWx2YVwiOiBzZSBkaWZlcmVuY2lhIGEgcHJvcMOzc2l0byBkZWwgYXp1bCBkZSBcIkHDsWFkaXIgYWwgY2Fycml0b1wiXG4gICBjb24gdW4gbWFnZW50YSBkZSBtYXJjYSBlbiBkZWdyYWRhZG8gKGFwYXJlY2UgY3VhbmRvIG5vIGhheSBzdG9jayB5IGVsIHByb2R1Y3RvIG5vIGVzIGJham9cbiAgIGRlbWFuZGEpLiBObyBlcyBzY29wZWQgYSAudG5kLWN0YS1yb3cgcGFyYSBxdWUgZWwgYm90w7NuIGRlbCBmb3JtdWxhcmlvIGRlc3BsZWdhZG8gaGVyZWRlIGVsXG4gICBtaXNtbyBjb2xvcjsgZWwgdGFtYcOxbyBmbGV4IHPDrSB2YSBzY29wZWQgYXJyaWJhLiAqL1xuLnRkLW5vdGlmeS1idG4ge1xuICAgIC0tdGQtbWFnZW50YS0xOiAjZTAyMThhO1xuICAgIC0tdGQtbWFnZW50YS0yOiAjYTQxMzhjO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXRkLW1hZ2VudGEtMSkgMCUsIHZhcigtLXRkLW1hZ2VudGEtMikgMTAwJSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTk2LCAyNCwgMTM5LCAuMzApO1xuICAgIHRyYW5zaXRpb246IGZpbHRlciAuMTVzIGVhc2UsIHRyYW5zZm9ybSAuMDVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlO1xufVxuLnRkLW5vdGlmeS1idG46aG92ZXIsXG4udGQtbm90aWZ5LWJ0bjpmb2N1cyxcbi50ZC1ub3RpZnktYnRuOmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDcpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgxOTYsIDI0LCAxMzksIC40Mik7XG59XG4udGQtbm90aWZ5LWJ0bjphY3RpdmUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsgfVxuXG4vKiAtLS0tIEFkdmVydGVuY2lhcyBkZWwgcHJvZHVjdG8gLS0tLSAqL1xuLnRuZC1wZHAtd2FybmluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy13YXJuaW5nKTtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWMtd2FybmluZyk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjhlYztcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICAgIHBhZGRpbmc6IHZhcigtLXMtMykgdmFyKC0tcy00KTtcbiAgICBtYXJnaW46IHZhcigtLXMtMykgMDtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyYXktNzAwKTtcbn1cbi50bmQtcGRwLXdhcm5pbmdfX2ljbyB7IGZsZXgtc2hyaW5rOiAwOyB9XG4udG5kLXBkcC13YXJuaW5nX19pY28gc3ZnIHsgd2lkdGg6IDEuMjVyZW07IGhlaWdodDogMS4yNXJlbTsgY29sb3I6IHZhcigtLWMtd2FybmluZyk7IGRpc3BsYXk6IGJsb2NrOyB9XG4udG5kLXBkcC13YXJuaW5nX19ib2R5IHsgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXNudWcpOyB9XG4udG5kLXBkcC13YXJuaW5nX19ib2R5ID4gOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIC0tLS0gUmVzdW1lbiBcImRlIHVuIHZpc3Rhem9cIiAoZGF0b3MgZGUgdXNhYmlsaWRhZCkgKyBlcXVpdmFsZW5jaWFzIC0tLS0gKi9cbi50bmQtcGRwLWF0LWdsYW5jZSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEzMHB4LCAxZnIpKTtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgbWFyZ2luOiB2YXIoLS1zLTMpIDA7XG59XG4udG5kLXBkcC1hdC1nbGFuY2VfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gICAgcGFkZGluZzogdmFyKC0tcy0yKSB2YXIoLS1zLTMpO1xufVxuLnRuZC1wZHAtYXQtZ2xhbmNlX19pdGVtIHN2ZyB7IHdpZHRoOiAxLjNyZW07IGhlaWdodDogMS4zcmVtOyBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApOyBmbGV4LXNocmluazogMDsgfVxuLnRuZC1wZHAtYXQtZ2xhbmNlX19rIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbn1cbi50bmQtcGRwLWF0LWdsYW5jZV9fdiB7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IGNvbG9yOiB2YXIoLS1jLXRleHQpOyB9XG4udG5kLXBkcC1zd2F0Y2gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMC43cmVtO1xuICAgIGhlaWdodDogMC43cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjNyZW07XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4udG5kLXBkcC1lcXVpdiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1zLTMpO1xufVxuLnRuZC1wZHAtZXF1aXZfX2sgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFDDoWdpbmEgZGUgYsO6c3F1ZWRhICgvYnVzY2FyKTogYnVzY2Fkb3IgcHJvdGFnb25pc3RhIChoZXJvKSArIHBpc3RhcyBkZSB1c28uXG4gICBFbCBmb3JtdWxhcmlvIHJldXRpbGl6YSBsYXMgY2xhc2VzIC50bmQtc2VhcmNoX18qIC8gLnRuZC1zdWdnZXN0IGRlbCBoZWFkZXI7XG4gICBhcXXDrSBzb2xvIHNlIGxlIGRhIGVsIG1hcmNvIGRlIFwiaGVyb1wiIGNlbnRyYWRvIHkgYWxnbyBtw6FzIGdyYW5kZS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi50bmQtc2VhcmNoLWhlcm8ge1xuICBwYWRkaW5nOiB2YXIoLS1zLTUpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsIHZhcigtLWMtYnJhbmQtNTApLCB2YXIoLS1jLXN1cmZhY2UpIDc1JSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbn1cbi50bmQtc2VhcmNoLWhlcm9fX3RpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1oMik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIG1hcmdpbjogMDtcbn1cbi50bmQtc2VhcmNoLWhlcm9fX2xlYWQge1xuICBtYXJnaW46IHZhcigtLXMtMikgYXV0byAwO1xuICBtYXgtd2lkdGg6IDU2Y2g7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xufVxuLyogRWwgZm9ybSBkZWwgaGVhZGVyIGNlbnRyYWRvIHkgdW4gcG9jbyBtw6FzIGFuY2hvIGRlbnRybyBkZWwgaGVyby4gKi9cbi50bmQtc2VhcmNoLWhlcm9fX2Zvcm0ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zLTQpO1xuICBtYXgtd2lkdGg6IDY4MHB4O1xufVxuLyogVmFyaWFudGUgY29tcGFjdGEgY3VhbmRvIHlhIGhheSByZXN1bHRhZG9zOiBzaW4gdGFudG8gYWlyZSwgcGFyYSBubyBlbXB1amFyIGxhIHJlamlsbGEuICovXG4udG5kLXNlYXJjaC1oZXJvLS1jb21wYWN0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogdmFyKC0tcy00KTtcbn1cbi50bmQtc2VhcmNoLWhlcm8tLWNvbXBhY3QgLnRuZC1zZWFyY2gtaGVyb19fdGl0bGUgeyBmb250LXNpemU6IHZhcigtLWZzLWg0KTsgfVxuLnRuZC1zZWFyY2gtaGVyby0tY29tcGFjdCAudG5kLXNlYXJjaC1oZXJvX19mb3JtIHsgbWFyZ2luLXRvcDogdmFyKC0tcy0zKTsgbWFyZ2luLWlubGluZTogMDsgfVxuXG4vKiBBdGFqb3M6IG1hcmNhcyBwb3B1bGFyZXMgKyBidXNjYWRvciBndWlhZG8gcG9yIGltcHJlc29yYS4gKi9cbi50bmQtc2VhcmNoLWhlcm9fX3Nob3J0Y3V0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tcy00KTtcbn1cbi50bmQtc2VhcmNoLWhlcm8tLWNvbXBhY3QgLnRuZC1zZWFyY2gtaGVyb19fc2hvcnRjdXRzIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4udG5kLXNlYXJjaC1oZXJvX19zaG9ydGN1dHMtbGFiZWwge1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbn1cbi50bmQtc2VhcmNoLWhlcm9fX2NoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTEpO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuODVyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4udG5kLXNlYXJjaC1oZXJvX19jaGlwOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC02MDApO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xufVxuLnRuZC1zZWFyY2gtaGVyb19fY2hpcCBzdmcgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyB9XG4udG5kLXNlYXJjaC1oZXJvX19jaGlwLS1wcmludGVyIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xufVxuXG4vKiAtLS0tIEZpbHRyb3MgaW50ZWdyYWRvcyBlbiBlbCBidXNjYWRvcjogY2hpcHMgYWdydXBhZG9zIHBvciBUaXBvIC8gTWFyY2EgLyBDb2xvciAtLS0tICovXG4udG5kLXNlYXJjaC1oZXJvX19maWx0ZXJzIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tcy00KTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXMtNCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJyYW5kLTEwMCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi8qIFVuIGdydXBvID0gZXRpcXVldGEgKyBmaWxhIGRlIGNoaXBzLiBFbiBQQyBsYSBldGlxdWV0YSB2YSBhIGxhIGl6cXVpZXJkYSBhbGluZWFkYTtcbiAgIGVuIG3Ds3ZpbCBzZSBhcGlsYSBlbmNpbWEgcGFyYSBubyBjb21lcnNlIGVsIGFuY2hvLiAqL1xuLnRuZC1mZ3JvdXAge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQuMjVyZW0gMWZyO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIGdhcDogdmFyKC0tcy0yKSB2YXIoLS1zLTMpO1xufVxuLnRuZC1mZ3JvdXBfX2xhYmVsIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIHBhZGRpbmctdG9wOiAwLjRyZW07XG59XG4udG5kLWZncm91cF9fY2hpcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAwO1xufVxuLyogQ2hpcCB0b2dnbGU6IHJlY3VlbnRvIGRpc2NyZXRvLCBtdWVzdHJhIGRlIGNvbG9yIG9wY2lvbmFsIHkgw5cgY3VhbmRvIGVzdMOhIGFjdGl2by4gKi9cbi50bmQtY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgcGFkZGluZzogMC4zcmVtIDAuN3JlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4udG5kLWNoaXA6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNDAwKTsgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUxKTsgfVxuLnRuZC1jaGlwX19jb3VudCB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyB9XG4udG5kLWNoaXBfX3ggeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgfVxuLnRuZC1jaGlwX194IHN2ZyB7IHdpZHRoOiAwLjlyZW07IGhlaWdodDogMC45cmVtOyB9XG4udG5kLWNoaXAuaXMtb24ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC02MDApO1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTtcbn1cbi50bmQtY2hpcC5pcy1vbjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNzAwKTsgY29sb3I6ICNmZmY7IH1cbi50bmQtY2hpcC5pcy1vbiAudG5kLWNoaXBfX2NvdW50IHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7IH1cblxuLyogTXVlc3RyYXMgZGUgY29sb3IgZGUgbGEgZmFjZXRhIENvbG9yICovXG4udG5kLWNoaXBfX3N3YXRjaCB7XG4gIHdpZHRoOiAwLjg1cmVtO1xuICBoZWlnaHQ6IDAuODVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgZmxleDogMCAwIGF1dG87XG59XG4udG5kLXN3YXRjaC0tYmxhY2sgeyBiYWNrZ3JvdW5kOiAjMjIyOyB9XG4udG5kLXN3YXRjaC0tY3lhbiB7IGJhY2tncm91bmQ6ICMwMGEzZDg7IH1cbi50bmQtc3dhdGNoLS1tYWdlbnRhIHsgYmFja2dyb3VuZDogI2U1MDA3ZTsgfVxuLnRuZC1zd2F0Y2gtLXllbGxvdyB7IGJhY2tncm91bmQ6ICNmZmQxMDA7IH1cbi50bmQtc3dhdGNoLS1jb2xvcl9tdWx0aXBhY2sgeyBiYWNrZ3JvdW5kOiBjb25pYy1ncmFkaWVudCgjMDBhM2Q4LCAjZmZkMTAwLCAjZTUwMDdlLCAjMDBhM2Q4KTsgfVxuXG4vKiBEZXNwbGVnYWJsZSBcIitOIG3DoXNcIiBlbiBDU1MgcHVybyAoY2hlY2tib3ggb2N1bHRvKSBwYXJhIG1hcmNhcyBsYXJnYXMgKi9cbi50bmQtZmdyb3VwX19leHRyYSB7IGRpc3BsYXk6IG5vbmU7IH1cbi50bmQtZmdyb3VwX190b2dnbGU6Y2hlY2tlZCB+IC50bmQtZmdyb3VwX19leHRyYSB7IGRpc3BsYXk6IGNvbnRlbnRzOyB9XG4udG5kLWZncm91cF9fbW9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjNyZW0gMC42cmVtO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4udG5kLWZncm91cF9fbW9yZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApOyB9XG4udG5kLWZncm91cF9fbW9yZTo6YWZ0ZXIgeyBjb250ZW50OiBhdHRyKGRhdGEtbW9yZSk7IH1cbi50bmQtZmdyb3VwX190b2dnbGU6Y2hlY2tlZCB+IC50bmQtZmdyb3VwX19tb3JlOjphZnRlciB7IGNvbnRlbnQ6IGF0dHIoZGF0YS1sZXNzKTsgfVxuXG4udG5kLXNlYXJjaC1oZXJvX19jbGVhcmZpbHRlcnMge1xuICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tcy0xKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi50bmQtc2VhcmNoLWhlcm9fX2NsZWFyZmlsdGVyczpob3ZlciB7IGNvbG9yOiB2YXIoLS1jLWxpbmspOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLnRuZC1zZWFyY2gtaGVyb19fY2xlYXJmaWx0ZXJzIHN2ZyB7IHdpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07IH1cblxuLyogTcOzdmlsOiBsYSBldGlxdWV0YSBkZWwgZ3J1cG8gc2UgYXBpbGEgZW5jaW1hIGRlIHN1cyBjaGlwcyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gIC50bmQtZmdyb3VwIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogdmFyKC0tcy0xKTsgfVxuICAudG5kLWZncm91cF9fbGFiZWwgeyBwYWRkaW5nLXRvcDogMDsgfVxufVxuXG4vKiBQaXN0YXMgZGUgdXNvIChlc3RhZG8gaW5pY2lhbCBzaW4gYsO6c3F1ZWRhKS4gKi9cbi50bmQtc2VhcmNoLXRpcHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1cmVtLCAxZnIpKTtcbiAgZ2FwOiB2YXIoLS1zLTMpO1xufVxuLnRuZC1zZWFyY2gtdGlwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogdmFyKC0tcy0zKTtcbiAgcGFkZGluZzogdmFyKC0tcy00KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xufVxuLnRuZC1zZWFyY2gtdGlwX19pY28ge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyLjVyZW07XG4gIGhlaWdodDogMi41cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwKTtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTtcbn1cbi50bmQtc2VhcmNoLXRpcF9faWNvIHN2ZyB7IHdpZHRoOiAxLjRyZW07IGhlaWdodDogMS40cmVtOyB9XG4udG5kLXNlYXJjaC10aXBfX3RpdGxlIHsgbWFyZ2luOiAwOyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyBjb2xvcjogdmFyKC0tYy10ZXh0KTsgfVxuLnRuZC1zZWFyY2gtdGlwX190ZXh0IHsgbWFyZ2luOiB2YXIoLS1zLTEpIDAgMDsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbiIsIi8qXG4gKiBUb25lcmRlbHV4ZSDigJQgUMOhZ2luYSBkZSBjb25zdW1pYmxlcyBjb21wYXRpYmxlcyBwb3IgaW1wcmVzb3JhIChyZWRpc2XDsW8ganVuLiAyMDI2KS5cbiAqIENhYmVjZXJhIGNvbnRleHR1YWwgZGUgbGEgaW1wcmVzb3JhICsgdGlyYSBkZSBjb25maWFuemEgKyBzZWxlY3RvciBwbGVnYWJsZSArXG4gKiBiYXJyYSBkZSBmaWx0cm8vb3JkZW4gKyByZWppbGxhIGNvbiBsYSB0YXJqZXRhIGRlIHByb2R1Y3RvIHJldXRpbGl6YWRhICgudG5kLWNhcmQpLlxuICovXG5cbi8qIC0tLS0gTWlnYXMgLS0tLSAqL1xuLnRuZC1jb21wYXQtY3J1bWJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1jb21wYXQtY3J1bWJzIGEgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4udG5kLWNvbXBhdC1jcnVtYnMgYTpob3ZlciB7IGNvbG9yOiB2YXIoLS1jLWxpbmspOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLnRuZC1jb21wYXQtY3J1bWJzX19jdXJyZW50IHsgY29sb3I6IHZhcigtLWMtdGV4dCk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pOyB9XG5cbi8qIC0tLS0gQ2FiZWNlcmEgY29udGV4dHVhbCBkZSBsYSBpbXByZXNvcmEgLS0tLSAqL1xuLnRuZC1jb21wYXQtaGVybyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy00KTtcbiAgcGFkZGluZzogdmFyKC0tcy01KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgdmFyKC0tYy1icmFuZC01MCksIHZhcigtLWMtc3VyZmFjZSkgNzUlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0xMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1jb21wYXQtaGVyb19faWNvbiB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDMuNXJlbTtcbiAgaGVpZ2h0OiAzLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTtcbn1cbi50bmQtY29tcGF0LWhlcm9fX2ljb24gc3ZnIHsgd2lkdGg6IDEuOXJlbTsgaGVpZ2h0OiAxLjlyZW07IH1cbi8qIEZvdG8gcmVhbCBkZWwgbW9kZWxvIChjdWFuZG8gZWwgbW9kZWxvIHRpZW5lIGltYWdlbiBjYXJnYWRhIGVuIGVsIGFkbWluKS4gKi9cbi50bmQtY29tcGF0LWhlcm9fX3Bob3RvIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDUuNXJlbTtcbiAgaGVpZ2h0OiA1LjVyZW07XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwKTtcbiAgcGFkZGluZzogdmFyKC0tcy0yKTtcbn1cbi50bmQtY29tcGF0LWhlcm9fX3RleHQgeyBtaW4td2lkdGg6IDA7IH1cbi50bmQtY29tcGF0LWhlcm9fX2JyYW5kIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi50bmQtY29tcGF0LWhlcm9fX3RpdGxlIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1oMyk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXRpZ2h0KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIG1hcmdpbjogMDtcbn1cbi50bmQtY29tcGF0LWhlcm9fX3RpdGxlIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7IH1cbi50bmQtY29tcGF0LWhlcm9fX2NvdW50IHsgbWFyZ2luOiB2YXIoLS1zLTIpIDAgMDsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblxuLyogVmFyaWFudGUgXCJpbnRyb1wiIChzaW4gaW1wcmVzb3JhIGVsZWdpZGEpOiBibG9xdWUgdmVydGljYWwgc2luIGljb25vLiAqL1xuLnRuZC1jb21wYXQtaGVyby0taW50cm8geyBkaXNwbGF5OiBibG9jazsgfVxuLnRuZC1jb21wYXQtaGVyb19fbGVhZCB7IG1hcmdpbjogdmFyKC0tcy0yKSAwIDA7IGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpOyBtYXgtd2lkdGg6IDYwY2g7IH1cblxuLyogLS0tLSBUaXJhIGRlIGNvbmZpYW56YSAobMOtbmVhIHNvYnJpYSwgc2luIGNhamFzKSAtLS0tICovXG4udG5kLWNvbXBhdC10cnVzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBBw7FhZGlkbyBwYXJhIGNlbnRyYXIgbG9zIGVsZW1lbnRvcyAtIFBpdGEgKi9cbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IHZhcigtLXMtMikgNDVweDsgLyogQWp1c3RhIGVsIGVzcGFjaW8gZW50cmUgbG9zIGVsZW1lbnRvcyBkZSBsYSBsaXN0YSAtIE9yaWdpbmFsbWVudGUgZXJhIGdhcDogdmFyKC0tcy0yKSB2YXIoLS1zLTUpOyAqL1xuICBtYXJnaW46IDAgMCB2YXIoLS1zLTQpO1xuICBwYWRkaW5nOiAwO1xufVxuLnRuZC1jb21wYXQtdHJ1c3QgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbn1cbi50bmQtY29tcGF0LXRydXN0IHN2ZyB7IHdpZHRoOiAxLjFyZW07IGhlaWdodDogMS4xcmVtOyBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApOyBmbGV4OiBub25lOyB9XG5cbi8qIC0tLS0gQ2FiZWNlcmEgZGUgaGVycmFtaWVudGFzOiBcIkJ1c2NhciBvdHJhIGltcHJlc29yYVwiIChpenEpICsgb3JkZW4gKGRlcikgYSBsYSBtaXNtYSBhbHR1cmEgLS0tLSAqL1xuLnRuZC1jb21wYXQtdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zLTMpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpO1xufVxuXG4vKiAtLS0tIFNlbGVjdG9yIGRlIGltcHJlc29yYSAoY2FtYmlhciAvIGluaWNpYWwpIC0tLS0gKi9cbi50bmQtY29tcGF0LWNoYW5nZXIgeyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyB9XG4udG5kLWNvbXBhdC1jaGFuZ2VyID4gc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMik7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tYy1saW5rKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi50bmQtY29tcGF0LWNoYW5nZXIgPiBzdW1tYXJ5Ojotd2Via2l0LWRldGFpbHMtbWFya2VyIHsgZGlzcGxheTogbm9uZTsgfVxuLnRuZC1jb21wYXQtY2hhbmdlciA+IHN1bW1hcnk6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLnRuZC1jb21wYXQtY2hhbmdlciA+IHN1bW1hcnkgc3ZnIHsgd2lkdGg6IDEuMDVyZW07IGhlaWdodDogMS4wNXJlbTsgfVxuLnRuZC1jb21wYXQtY2hhbmdlcltvcGVuXSA+IHN1bW1hcnkgeyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTMpOyB9XG5cbi50bmQtY29tcGF0LWZpbmRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IHZhcigtLXMtMyk7XG4gIHBhZGRpbmc6IHZhcigtLXMtNCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbn1cbi50bmQtY29tcGF0LWhlcm8tLWludHJvICsgLnRuZC1jb21wYXQtZmluZGVyIHsgbWFyZ2luLXRvcDogdmFyKC0tcy00KTsgfVxuLnRuZC1jb21wYXQtZmluZGVyX19maWVsZCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tcy0xKTsgbWluLXdpZHRoOiAxMnJlbTsgfVxuLnRuZC1jb21wYXQtZmluZGVyX19maWVsZC0tZ3JvdyB7IGZsZXg6IDEgMSAxOHJlbTsgfVxuLnRuZC1jb21wYXQtZmluZGVyX19sYWJlbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xufVxuLnRuZC1jb21wYXQtZmluZGVyX19idG4geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zLTIpOyB9XG4udG5kLWNvbXBhdC1maW5kZXJfX2J0biBzdmcgeyB3aWR0aDogMS4xcmVtOyBoZWlnaHQ6IDEuMXJlbTsgfVxuXG4vKiAtLS0tIEJhcnJhIGRlIGZpbHRyb3MgKHRpcG8gKyBjb2xvcik7IHBhc2FuIGEgdW5hIDLCqiBsw61uZWEgc29sbyBzaSBubyBjYWJlbiAtLS0tICovXG4udG5kLWNvbXBhdC1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKSB2YXIoLS1zLTMpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1jb21wYXQtYmFyX19zZXAge1xuICBmbGV4OiBub25lO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB3aWR0aDogMXB4O1xuICBtaW4taGVpZ2h0OiAxLjRyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYm9yZGVyKTtcbiAgbWFyZ2luOiAwIHZhcigtLXMtMSk7XG59XG4udG5kLWNvbXBhdC1maWx0ZXJzIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXMtMik7IH1cbi50bmQtY29tcGF0LXNvcnQgeyBmbGV4OiBub25lOyB9XG4udG5kLWNvbXBhdC1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgcGFkZGluZzogdmFyKC0tcy0xKSB2YXIoLS1zLTMpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4udG5kLWNvbXBhdC1jaGlwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTMwMCk7IGNvbG9yOiB2YXIoLS1jLXRleHQpOyB9XG4udG5kLWNvbXBhdC1jaGlwX19jb3VudCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS1zdW5rKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBwYWRkaW5nOiAwIHZhcigtLXMtMik7XG59XG4udG5kLWNvbXBhdC1jaGlwLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNjAwKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCk7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRuZC1jb21wYXQtY2hpcC5pcy1hY3RpdmUgLnRuZC1jb21wYXQtY2hpcF9fY291bnQgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpOyBjb2xvcjogI2ZmZjsgfVxuLnRuZC1jb21wYXQtc29ydCAuZm9ybS1zZWxlY3QgeyBtaW4td2lkdGg6IDEycmVtOyB9XG5cbi8qIC0tLS0gRXN0YWRvIHZhY8OtbyAtLS0tICovXG4udG5kLWNvbXBhdC1lbXB0eSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tcy04KSB2YXIoLS1zLTQpO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1jb21wYXQtZW1wdHlfX2ljb24geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgY29sb3I6IHZhcigtLWMtZ3JheS0zMDApOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTIpOyB9XG4udG5kLWNvbXBhdC1lbXB0eV9faWNvbiBzdmcgeyB3aWR0aDogM3JlbTsgaGVpZ2h0OiAzcmVtOyB9XG4udG5kLWNvbXBhdC1lbXB0eV9fdGl0bGUgeyBmb250LXNpemU6IHZhcigtLWZzLWg0KTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTsgbWFyZ2luOiAwIDAgdmFyKC0tcy0xKTsgfVxuLnRuZC1jb21wYXQtZW1wdHlfX3RleHQgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgbWFyZ2luOiAwIDAgdmFyKC0tcy00KTsgfVxuXG4vKiAtLS0tIEltcHJlc29yYXMgZGUgbGEgbWlzbWEgZmFtaWxpYSAoZW5sYWNlcyByZWxhY2lvbmFkb3MpIC0tLS0gKi9cbi50bmQtY29tcGF0LWZhbWlseSB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXMtOCk7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zLTYpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xufVxuLnRuZC1jb21wYXQtZmFtaWx5X190aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1oNCk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gIG1hcmdpbjogMCAwIHZhcigtLXMtMSk7XG59XG4udG5kLWNvbXBhdC1mYW1pbHlfX3RpdGxlIHN2ZyB7IHdpZHRoOiAxLjJyZW07IGhlaWdodDogMS4ycmVtOyBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApOyBmbGV4OiBub25lOyB9XG4udG5kLWNvbXBhdC1mYW1pbHlfX2hpbnQgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTsgbWFyZ2luOiAwIDAgdmFyKC0tcy0zKTsgfVxuLnRuZC1jb21wYXQtZmFtaWx5X19saXN0IHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IHZhcigtLXMtMik7IH1cbi50bmQtY29tcGF0LWZhbWlseV9fY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwYWRkaW5nOiB2YXIoLS1zLTEpIHZhcigtLXMtMyk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LW1lZGl1bSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cbi50bmQtY29tcGF0LWZhbWlseV9fY2hpcDpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC0zMDApOyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwKTsgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTsgfVxuXG4vKiAtLS0tIEZpbHRybyBwb3IgY29sb3IgKGp1bnRvIGEgbG9zIGNoaXBzIGRlIHRpcG8sIGVuIGxhIG1pc21hIGJhcnJhKSAtLS0tICovXG4udG5kLWNvbXBhdC1jb2xvcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbn1cbi50bmQtY29tcGF0LWNvbG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgcGFkZGluZzogdmFyKC0tcy0xKSB2YXIoLS1zLTMpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctbWVkaXVtKTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4udG5kLWNvbXBhdC1jb2xvcjpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC0zMDApOyB9XG4udG5kLWNvbXBhdC1jb2xvci5pcy1hY3RpdmUgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNjAwKTsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7IH1cbi50bmQtY29tcGF0LWNvbG9yX19kb3Qge1xuICB3aWR0aDogMC44NXJlbTtcbiAgaGVpZ2h0OiAwLjg1cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGZsZXg6IG5vbmU7XG59XG4udG5kLWNvbXBhdC1jb2xvci0tYmxhY2sgLnRuZC1jb21wYXQtY29sb3JfX2RvdCB7IGJhY2tncm91bmQ6ICMyMjI7IH1cbi50bmQtY29tcGF0LWNvbG9yLS1jeWFuIC50bmQtY29tcGF0LWNvbG9yX19kb3QgeyBiYWNrZ3JvdW5kOiAjMDBiM2UzOyB9XG4udG5kLWNvbXBhdC1jb2xvci0tbWFnZW50YSAudG5kLWNvbXBhdC1jb2xvcl9fZG90IHsgYmFja2dyb3VuZDogI2U2MDA3ZTsgfVxuLnRuZC1jb21wYXQtY29sb3ItLXllbGxvdyAudG5kLWNvbXBhdC1jb2xvcl9fZG90IHsgYmFja2dyb3VuZDogI2ZmZDQwMDsgfVxuLnRuZC1jb21wYXQtY29sb3ItLWNvbG9yX211bHRpcGFjayAudG5kLWNvbXBhdC1jb2xvcl9fZG90IHtcbiAgYmFja2dyb3VuZDogY29uaWMtZ3JhZGllbnQoIzAwYjNlMywgI2U2MDA3ZSwgI2ZmZDQwMCwgIzIyMiwgIzAwYjNlMyk7XG59XG5cbi8qIC0tLS0gUGFjayBhaG9ycm8gZGVzdGFjYWRvIC0tLS0gKi9cbi50bmQtY29tcGF0LXBhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtNCk7XG4gIHBhZGRpbmc6IHZhcigtLXMtMykgdmFyKC0tcy00KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy00KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgdmFyKC0tYy1icmFuZC01MCksIHZhcigtLWMtc3VyZmFjZSkgNzAlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0yMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbiksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbiksIHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uKTtcbn1cbi50bmQtY29tcGF0LXBhY2s6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNDAwKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUyKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbn1cbi50bmQtY29tcGF0LXBhY2tfX21lZGlhIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDQuNXJlbTtcbiAgaGVpZ2h0OiA0LjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0xMDApO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApO1xuICBwYWRkaW5nOiB2YXIoLS1zLTEpO1xufVxuLnRuZC1jb21wYXQtcGFja19fbWVkaWEgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb250YWluOyBtaXgtYmxlbmQtbW9kZTogbXVsdGlwbHk7IH1cbi50bmQtY29tcGF0LXBhY2tfX21lZGlhIHN2ZyB7IHdpZHRoOiAycmVtOyBoZWlnaHQ6IDJyZW07IH1cbi50bmQtY29tcGF0LXBhY2tfX2JvZHkgeyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDJweDsgfVxuLnRuZC1jb21wYXQtcGFja19fdGFnIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0xKTtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xufVxuLnRuZC1jb21wYXQtcGFja19fdGFnIHN2ZyB7IHdpZHRoOiAwLjk1cmVtOyBoZWlnaHQ6IDAuOTVyZW07IH1cbi50bmQtY29tcGF0LXBhY2tfX25hbWUgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyBsaW5lLWhlaWdodDogdmFyKC0tbGgtc251Zyk7IH1cbi50bmQtY29tcGF0LXBhY2tfX2FzaWRlIHsgZmxleDogbm9uZTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBnYXA6IDJweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi50bmQtY29tcGF0LXBhY2tfX3ByaWNlIHsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpOyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktbGcpOyBjb2xvcjogdmFyKC0tYy1pbmspOyB9XG4udG5kLWNvbXBhdC1wYWNrX19zYXZlIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXB0aW9uKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICBjb2xvcjogIzBiN2E0NDtcbiAgYmFja2dyb3VuZDogcmdiYSgxNSwgMTU3LCA4OCwgMC4xMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgcGFkZGluZzogMXB4IHZhcigtLXMtMik7XG59XG4udG5kLWNvbXBhdC1wYWNrX19jdGEgeyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApOyB9XG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgLnRuZC1jb21wYXQtcGFjayB7IGZsZXgtd3JhcDogd3JhcDsgfVxuICAudG5kLWNvbXBhdC1wYWNrX19hc2lkZSB7IGZsZXgtZGlyZWN0aW9uOiByb3c7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHRleHQtYWxpZ246IGxlZnQ7IGdhcDogdmFyKC0tcy0yKTsgfVxufVxuXG4vKiAtLS0tIEVkaXRvcmlhbCArIEZBUSAtLS0tICovXG4udG5kLWNvbXBhdC1jb250ZW50IHsgbWFyZ2luLXRvcDogdmFyKC0tcy04KTsgfVxuLnRuZC1jb21wYXQtZWRpdG9yaWFsIHtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1yZWxheGVkKTtcbiAgbWF4LXdpZHRoOiA3MGNoO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTYpO1xufVxuLnRuZC1jb21wYXQtZWRpdG9yaWFsIHAgeyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTMpOyB9XG4udG5kLWNvbXBhdC1mYXFfX3RpdGxlIHsgZm9udC1zaXplOiB2YXIoLS1mcy1oNCk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IG1hcmdpbjogMCAwIHZhcigtLXMtMyk7IH1cbi50bmQtY29tcGF0LWZhcSAuYWNjb3JkaW9uLWJ1dHRvbiB7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0pOyB9XG4udG5kLWNvbXBhdC1mYXEgLmFjY29yZGlvbi1idXR0b246bm90KC5jb2xsYXBzZWQpIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7IH1cbi50bmQtY29tcGF0LWZhcSAuYWNjb3JkaW9uLWJ1dHRvbjpmb2N1cyB7IGJveC1zaGFkb3c6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC0zMDApOyB9XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIEJsb2cgeSBjZW50cm8gZGUgYXl1ZGEgKEZhc2UgNSk6IGh1YiwgdGFyamV0YXMgeSBwbGFudGlsbGEgZGUgYXJ0w61jdWxvLlxuICovXG5cbi8qIERlZ3JhZGFkb3MgcG9yIHRpcG8gKHBsYWNlaG9sZGVyIGN1YW5kbyBlbCBhcnTDrWN1bG8gbm8gdGllbmUgaW1hZ2VuKSAqL1xuLnRuZC1hcnRpY2xlLWNhcmRfX21lZGlhLS1ndWlhLFxuLnRuZC1ibG9nLWhlcm8udG5kLWFydGljbGUtY2FyZF9fbWVkaWEtLWd1aWEgeyAtLWdyYWQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWMtYnJhbmQtNTAwKSwgdmFyKC0tYy1icmFuZC03MDApKTsgfVxuLnRuZC1hcnRpY2xlLWNhcmRfX21lZGlhLS10dXRvcmlhbCB7IC0tZ3JhZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBhODJjNywgdmFyKC0tYy1pbmspKTsgfVxuLnRuZC1hcnRpY2xlLWNhcmRfX21lZGlhLS1jb21wYXJhdGl2YSB7IC0tZ3JhZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYy1hY2NlbnQtbWFnZW50YSksICM3YTBmNTMpOyB9XG4udG5kLWFydGljbGUtY2FyZF9fbWVkaWEtLWF5dWRhIHsgLS1ncmFkOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMGM4ZjZlLCAjMDY0ZDNiKTsgfVxuLnRuZC1hcnRpY2xlLWNhcmRfX21lZGlhLS1ub3ZlZGFkIHsgLS1ncmFkOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jLWFjY2VudC1jeWFuKSwgdmFyKC0tYy1icmFuZC03MDApKTsgfVxuXG4udG5kLWJsb2ctaGVhZCBoMSB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtaDEpOyBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7IG1hcmdpbi1ib3R0b206IHZhcigtLXMtMik7IH1cbi50bmQtYmxvZy1oZWFkIHAgeyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgbWF4LXdpZHRoOiA2MGNoOyB9XG5cbi8qIEhlcm8gZGVzdGFjYWRvICovXG4udG5kLWJsb2ctaGVybyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWdyYWQsIHZhcigtLWMtYnJhbmQtNjAwKSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUyKTtcbiAgICBtaW4taGVpZ2h0OiAxNnJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgeyAudG5kLWJsb2ctaGVybyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4zZnIgMWZyOyB9IH1cbi50bmQtYmxvZy1oZXJvX19pbWcgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3ZlcjsgbWluLWhlaWdodDogMTZyZW07IH1cbi50bmQtYmxvZy1oZXJvX19ib2R5IHsgcGFkZGluZzogY2xhbXAoMS41cmVtLCAxcmVtICsgMnZ3LCAzcmVtKTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbi50bmQtYmxvZy1oZXJvX190YWcgeyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4wNWVtOyBvcGFjaXR5OiAwLjk7IH1cbi50bmQtYmxvZy1oZXJvX190aXRsZSB7IGZvbnQtc2l6ZTogdmFyKC0tZnMtaDIpOyBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7IG1hcmdpbjogdmFyKC0tcy0yKSAwOyB9XG4udG5kLWJsb2ctaGVyb19fZXhjZXJwdCB7IG9wYWNpdHk6IDAuOTI7IH1cblxuLyogVGFyamV0YSBkZSBhcnTDrWN1bG8gKi9cbi50bmQtYXJ0aWNsZS1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xufVxuLnRuZC1hcnRpY2xlLWNhcmQ6aG92ZXIgeyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTIpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbi50bmQtYXJ0aWNsZS1jYXJkX19tZWRpYSB7XG4gICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ3JhZCwgdmFyKC0tYy1ncmF5LTIwMCkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi50bmQtYXJ0aWNsZS1jYXJkX19tZWRpYSBpbWcgeyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3ZlcjsgfVxuLnRuZC1hcnRpY2xlLWNhcmRfX3RhZyB7IGNvbG9yOiAjZmZmOyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4wNWVtOyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyB9XG4udG5kLWFydGljbGUtY2FyZF9fYm9keSB7IHBhZGRpbmc6IHZhcigtLXMtNCk7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tcy0yKTsgZmxleDogMTsgfVxuLnRuZC1hcnRpY2xlLWNhcmRfX3R5cGUgeyBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pOyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsgfVxuLnRuZC1hcnRpY2xlLWNhcmRfX3RpdGxlIHsgZm9udC1zaXplOiB2YXIoLS1mcy1oNCk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IG1hcmdpbjogMDsgfVxuLnRuZC1hcnRpY2xlLWNhcmRfX2V4Y2VycHQgeyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgbWFyZ2luOiAwOyB9XG4udG5kLWFydGljbGUtY2FyZF9fbW9yZSB7IG1hcmdpbi10b3A6IGF1dG87IGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IGNvbG9yOiB2YXIoLS1jLWxpbmspOyB9XG4udG5kLWFydGljbGUtY2FyZF9fbW9yZSBzdmcgeyB3aWR0aDogMC45cmVtOyBoZWlnaHQ6IDAuOXJlbTsgfVxuXG4vKiBBcnTDrWN1bG8gKi9cbi50bmQtYXJ0aWNsZSB7IG1heC13aWR0aDogNDZyZW07IG1hcmdpbjogMCBhdXRvOyB9XG4udG5kLWFydGljbGVfX21ldGEgeyBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pOyBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IHZhcigtLXMtMik7IH1cbi50bmQtYXJ0aWNsZV9fdHlwZSB7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCk7IH1cbi50bmQtYXJ0aWNsZV9fdGl0bGUgeyBmb250LXNpemU6IHZhcigtLWZzLWgxKTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpOyBsaW5lLWhlaWdodDogdmFyKC0tbGgtdGlnaHQpOyBtYXJnaW46IHZhcigtLXMtMikgMDsgfVxuLnRuZC1hcnRpY2xlX19sZWFkIHsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LWxnKTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbi50bmQtYXJ0aWNsZV9faGVybyB7IHdpZHRoOiAxMDAlOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBtYXJnaW46IHZhcigtLXMtNCkgMDsgfVxuLnRuZC1hcnRpY2xlX19ib2R5IHsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5KTsgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXJlbGF4ZWQpOyB9XG4udG5kLWFydGljbGVfX2JvZHkgaDIgeyBmb250LXNpemU6IHZhcigtLWZzLWgzKTsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTsgbWFyZ2luOiB2YXIoLS1zLTYpIDAgdmFyKC0tcy0zKTsgfVxuLnRuZC1hcnRpY2xlX19ib2R5IHAsIC50bmQtYXJ0aWNsZV9fYm9keSB1bCwgLnRuZC1hcnRpY2xlX19ib2R5IG9sIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy00KTsgfVxuLnRuZC1hcnRpY2xlX19ib2R5IDppcyh1bCwgb2wpIHsgcGFkZGluZy1sZWZ0OiB2YXIoLS1zLTYpOyB9XG4udG5kLWFydGljbGVfX2JvZHkgbGkgeyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTEpOyB9XG5cbi8qIENUQSBjb250ZXh0dWFsIGluZm8g4oaSIHRyYW5zYWNjaW9uYWwgKi9cbi50bmQtYXJ0aWNsZV9fY3RhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgbWFyZ2luOiB2YXIoLS1zLTgpIDA7XG4gICAgcGFkZGluZzogdmFyKC0tcy00KSB2YXIoLS1zLTYpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0xMDApO1xufVxuLnRuZC1hcnRpY2xlX19jdGEgc3Ryb25nIHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiB2YXIoLS1jLXRleHQpOyB9XG4udG5kLWFydGljbGVfX2N0YSBzcGFuIHsgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cblxuLnRuZC1hcnRpY2xlLXJlbGF0ZWQgeyBtYXJnaW4tdG9wOiB2YXIoLS1zLTEyKTsgcGFkZGluZy10b3A6IHZhcigtLXMtOCk7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7IH1cbi50bmQtYXJ0aWNsZS1yZWxhdGVkIGgyIHsgZm9udC1zaXplOiB2YXIoLS1mcy1oMyk7IGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7IG1hcmdpbi1ib3R0b206IHZhcigtLXMtNCk7IH1cbiIsIi8qXG4gKiBGYXNlIDYg4oCUIMOBcmVhIGRlIGNsaWVudGU6IGJsb3F1ZSBkZSByZWNvbXByYSBkZWwgZGFzaGJvYXJkIHkgdGFyamV0YXMgZGUgXCJNaXMgY29uc3VtaWJsZXNcIi5cbiAqIENhcGEgbGlnZXJhIHNvYnJlIGVsIGNvbXBvbmVudGUgZGUgdGFyamV0YSBgLnRuZC1jYXJkYCB5IGxhcyB1dGlsaWRhZGVzIGRlIEJvb3RzdHJhcC5cbiAqL1xuXG4vLyBUYXJqZXRhcyBtaW5pIGRlbCBkYXNoYm9hcmQgKHJlY29tcHJhIHLDoXBpZGEgZW4gcmVqaWxsYSBkZSA0KTogdMOtdHVsbyBtw6FzIGNvbXBhY3RvLlxuLnRuZC1yZW9yZGVyLS1taW5pIHtcbiAgICAudG5kLWNhcmRfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB9XG5cbiAgICAudG5kLWNhcmRfX3ByaWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAuODVyZW07XG4gICAgfVxuXG4gICAgLnRuZC1jYXJkX19icmFuZCxcbiAgICAudG5kLWNhcmRfX3JhdGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgfVxufVxuXG4vLyBFbCBmb3JtdWxhcmlvIGRlIHJlY29tcHJhIHF1ZWRhIHBlZ2FkbyBhbCBwaWUgZGUgbGEgdGFyamV0YSBkZW50cm8gZGUgbGEgY2VsZGEuXG4udG5kLXJlb3JkZXIge1xuICAgIC50bmQtY2FyZCB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBUb25lcmRlbHV4ZSDigJQgUMOhZ2luYXMgZGUgY3VlbnRhIHNpbiBzZXNpw7NuIChsb2dpbiAvIHJlZ2lzdHJvKS5cbiAqIEFtYmFzIGNvbXBhcnRlbiBlbCBwbGllZ28gXCJwcnVlYmEgZGUgY29sb3JcIiBgLnRuZC1yZWdgIChibG9xdWUgUkVHSVNUUk8sIGFiYWpvKTpcbiAqIGJhcnJhIGRlIGNhbGlicmFjacOzbiBDTVlLIGNvbW8gY29sdW1uYSBkaXZpc29yaWEgKyBtYXJjYXMgZGUgcmVnaXN0cm8gZW4gbGFzXG4gKiBlc3F1aW5hcywgc29icmUgbGllbnpvIGNvbiB0cmFtYSBkZSBzZW1pdG9uby4gRWwgbG9naW4gYcOxYWRlIGVsIG1vZGlmaWNhZG9yXG4gKiBgLnRuZC1yZWctLWxvZ2luYCAoYmxvcXVlIExPR0lOLCBhbCBmaW5hbCkuIEFxdcOtIGFycmliYSBxdWVkYSBzb2xvIGxhIGNhYmVjZXJhXG4gKiBkZWwgZm9ybXVsYXJpbyAodMOtdHVsby9zdWJ0w610dWxvKSwgcXVlIHJldXRpbGl6YW4gbGFzIGRvcyBwYW50YWxsYXMuXG4gKi9cblxuLyogLS0tLSBDYWJlY2VyYSBkZWwgZm9ybXVsYXJpbyAoY29tcGFydGlkYSBsb2dpbiAvIHJlZ2lzdHJvKSAtLS0tICovXG4udG5kLWF1dGhmb3JtX19oZWFkIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy02KTsgfVxuLnRuZC1hdXRoZm9ybV9fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLWZzLWgyKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQpO1xuICBtYXJnaW46IDA7XG59XG4udG5kLWF1dGhmb3JtX19zdWIge1xuICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgbWFyZ2luOiB2YXIoLS1zLTIpIDAgMDtcbn1cbi50bmQtYXV0aGZvcm1fX2FsdCB7XG4gIG1hcmdpbjogdmFyKC0tcy00KSAwIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICogUkVHSVNUUk8gLyBMT0dJTiDigJQgXCJQcnVlYmEgZGUgY29sb3JcIiAoanVuLiAyMDI2LCByZWRpc2XDsW8pXG4gKiBMYSB0YXJqZXRhIGVzIHVuIHBsaWVnbyBkZSBpbXByZW50YTogYmFycmEgZGUgY2FsaWJyYWNpw7NuIENNWUsgY29tbyBjb2x1bW5hXG4gKiBjZW50cmFsIChmaXJtYSkgKyBtYXJjYXMgZGUgcmVnaXN0cm8gZW4gbGFzIGVzcXVpbmFzLCBzb2JyZSBsaWVuem8gY29uIHRyYW1hXG4gKiBkZSBzZW1pdG9uby4gVGlwb3MgZGUgcMOhZ2luYTogU3BhY2UgR3JvdGVzayAodGl0dWxhcikgKyBTcGFjZSBNb25vICh0w6ljbmljbykuXG4gKiBFbCByZWdpc3RybyB1c2EgYC50bmQtcmVnYDsgZWwgbG9naW4gYC50bmQtcmVnIC50bmQtcmVnLS1sb2dpbmAuXG4gKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cblxuLnRuZC1yZWcge1xuICAvKiBmYW1pbGlhcyBwcm9waWFzIGRlIGxhIHDDoWdpbmEgKGNhcmdhZGFzIHBvciA8bGluaz4gZW4gbGEgcGxhbnRpbGxhKSAqL1xuICAtLXJlZy1kaXNwbGF5OiAnU3BhY2UgR3JvdGVzaycsIHZhcigtLWZvbnQtc2Fucyk7XG4gIC0tcmVnLW1vbm86ICdTcGFjZSBNb25vJywgdWktbW9ub3NwYWNlLCAnU0ZNb25vLVJlZ3VsYXInLCBNZW5sbywgbW9ub3NwYWNlO1xuXG4gIHBhZGRpbmc6IGNsYW1wKDEuNXJlbSwgNHZ3LCA0LjVyZW0pIHZhcigtLXMtNCk7XG4gIC8qIGxpZW56bzogY2lhbiBtdXkgdGVudWUgKyB0cmFtYSBkZSBzZW1pdG9ubyAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWFmM2ZiO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJhZGlhbC1ncmFkaWVudChyZ2JhKDAsIDE1OCwgMjM5LCAwLjExKSAxLjRweCwgdHJhbnNwYXJlbnQgMS42cHgpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE3cHggMTdweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTRweCAtNHB4O1xufVxuXG4vKiAtLS0tIFBsaWVnbyAtLS0tICovXG4udG5kLXJlZ19fc2hlZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTA4MHB4O1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiAtLS0tIE1hcmNhcyBkZSByZWdpc3RybyAoY3J1eiArIGFuaWxsbykgZW4gbGFzIGVzcXVpbmFzIC0tLS0gKi9cbi50bmQtcmVnX19tYXJrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAzO1xuICB3aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTEsIDExLCAxNSwgMC4yOCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnRuZC1yZWdfX21hcms6OmJlZm9yZSxcbi50bmQtcmVnX19tYXJrOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTEsIDExLCAxNSwgMC4yOCk7XG59XG4udG5kLXJlZ19fbWFyazo6YmVmb3JlIHsgbGVmdDogNTAlOyB0b3A6IC02cHg7IGJvdHRvbTogLTZweDsgd2lkdGg6IDFweDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wLjVweCk7IH1cbi50bmQtcmVnX19tYXJrOjphZnRlciAgeyB0b3A6IDUwJTsgbGVmdDogLTZweDsgcmlnaHQ6IC02cHg7IGhlaWdodDogMXB4OyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNXB4KTsgfVxuLnRuZC1yZWdfX21hcmstLXRsIHsgdG9wOiAxNHB4OyBsZWZ0OiAxNHB4OyB9XG4udG5kLXJlZ19fbWFyay0tdHIgeyB0b3A6IDE0cHg7IHJpZ2h0OiAxNHB4OyB9XG4udG5kLXJlZ19fbWFyay0tYmwgeyBib3R0b206IDE0cHg7IGxlZnQ6IDE0cHg7IH1cbi50bmQtcmVnX19tYXJrLS1iciB7IGJvdHRvbTogMTRweDsgcmlnaHQ6IDE0cHg7IH1cblxuLyogLS0tLSBSZWxhdG8gZGUgbWFyY2EgKGl6cXVpZXJkYSkgLS0tLSAqL1xuLnRuZC1yZWdfX3JhaWwge1xuICBmbGV4OiAwIDAgNDUlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiBjbGFtcCgxLjc1cmVtLCAzLjJ2dywgM3JlbSk7XG59XG4udG5kLXJlZ19fZXllYnJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgbWFyZ2luOiAwIDAgdmFyKC0tcy00KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJlZy1tb25vKTtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xOGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTUwMCk7XG59XG4udG5kLXJlZ19fZG90cyB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDNweDsgfVxuLnRuZC1yZWdfX2RvdHMgaSB7IHdpZHRoOiA3cHg7IGhlaWdodDogN3B4OyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7IH1cbi50bmQtcmVnX19kb3RzIGk6bnRoLWNoaWxkKDEpIHsgYmFja2dyb3VuZDogdmFyKC0tYy1hY2NlbnQtY3lhbik7IH1cbi50bmQtcmVnX19kb3RzIGk6bnRoLWNoaWxkKDIpIHsgYmFja2dyb3VuZDogdmFyKC0tYy1hY2NlbnQtbWFnZW50YSk7IH1cbi50bmQtcmVnX19kb3RzIGk6bnRoLWNoaWxkKDMpIHsgYmFja2dyb3VuZDogdmFyKC0tYy1hY2NlbnQteWVsbG93KTsgfVxuLnRuZC1yZWdfX2RvdHMgaTpudGgtY2hpbGQoNCkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWluayk7IH1cblxuLnRuZC1yZWdfX2hlYWRsaW5lIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogdmFyKC0tcmVnLWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDEuNXJlbSArIDIuMXZ3LCAzcmVtKTtcbiAgbGluZS1oZWlnaHQ6IDEuMDQ7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBjb2xvcjogdmFyKC0tYy1pbmspO1xufVxuLnRuZC1yZWdfX2hlYWRsaW5lIGVtIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb2xvcjogdmFyKC0tYy1tYWdlbnRhLWN0YSk7XG59XG4udG5kLXJlZ19fbGVhZCB7XG4gIG1hcmdpbjogdmFyKC0tcy00KSAwIDA7XG4gIG1heC13aWR0aDogMzRjaDtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LWxnKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXJlbGF4ZWQpO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTYwMCk7XG59XG5cbi50bmQtcmVnX19iZW5lZml0cyB7XG4gIG1hcmdpbjogdmFyKC0tcy04KSAwIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tcy0zKTtcbn1cbi50bmQtcmVnX19iZW5lZml0cyBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0zKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG59XG4udG5kLXJlZ19fYmVuZWZpdHMgbGkgc3Ryb25nIHsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTsgfVxuLnRuZC1yZWdfX2JlbmVmaXRzIHN2ZyB7XG4gIGZsZXg6IG5vbmU7XG4gIHdpZHRoOiAxLjM1cmVtO1xuICBoZWlnaHQ6IDEuMzVyZW07XG4gIHBhZGRpbmc6IDAuMjhyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xufVxuXG4udG5kLXJlZ19fc2x1ZyB7XG4gIG1hcmdpbjogYXV0byAwIDA7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zLTgpO1xuICBmb250LWZhbWlseTogdmFyKC0tcmVnLW1vbm8pO1xuICBmb250LXNpemU6IDAuNjhyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2ZW07XG4gIGNvbG9yOiB2YXIoLS1jLWdyYXktNDAwKTtcbn1cblxuLyogLS0tLSBCYXJyYSBDTVlLIGRlIGNhbGlicmFjacOzbiAoZmlybWEgLyBkaXZpc29yaWEpIC0tLS0gKi9cbi50bmQtcmVnX19iYXIge1xuICBmbGV4OiAwIDAgMTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi50bmQtcmVnX19zZWcge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi50bmQtcmVnX19zZWcgYiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1yZWctbW9ubyk7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi50bmQtcmVnX19zZWctLWMgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jLWFjY2VudC1jeWFuKTsgfVxuLnRuZC1yZWdfX3NlZy0tbSB7IGJhY2tncm91bmQ6IHZhcigtLWMtYWNjZW50LW1hZ2VudGEpOyB9XG4udG5kLXJlZ19fc2VnLS15IHsgYmFja2dyb3VuZDogdmFyKC0tYy1hY2NlbnQteWVsbG93KTsgfVxuLnRuZC1yZWdfX3NlZy0tayB7IGJhY2tncm91bmQ6IHZhcigtLWMtaW5rKTsgfVxuLnRuZC1yZWdfX3NlZy0tYyBiLFxuLnRuZC1yZWdfX3NlZy0tbSBiLFxuLnRuZC1yZWdfX3NlZy0tayBiIHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7IH1cbi50bmQtcmVnX19zZWctLXkgYiB7IGNvbG9yOiByZ2JhKDExLCAxMSwgMTUsIDAuODUpOyB9XG5cbi8qIC0tLS0gUGFuZWwgZGVsIGZvcm11bGFyaW8gKGRlcmVjaGEpIC0tLS0gKi9cbi50bmQtcmVnX19mb3JtIHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogY2xhbXAoMS43NXJlbSwgMy4ydncsIDNyZW0pO1xufVxuLyogQ2FiZWNlcmEgZGVsIGZvcm11bGFyaW8gKHTDrXR1bG8gKyBlbmxhY2UgYWwgb3RybyBhY2Nlc28pICovXG4udG5kLXJlZ19fZm9ybSAudG5kLWF1dGhmb3JtX190aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1yZWctZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDMpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDFlbTtcbiAgbWFyZ2luOiAwO1xufVxuLnRuZC1yZWdfX2Zvcm0gLnRuZC1hdXRoZm9ybV9fc3ViIHsgbWFyZ2luLXRvcDogdmFyKC0tcy0yKTsgfVxuXG4vKiBMYXMgc2VjY2lvbmVzIChkYXRvcyAvIGNyZWRlbmNpYWxlcykgZW4gcmVqaWxsYSBkZSAyIGNvbHVtbmFzICovXG4udG5kLXJlZ19fZm9ybSAubWItNSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiB2YXIoLS1zLTMpIHZhcigtLXMtNCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXMtNikgIWltcG9ydGFudDtcbn1cbi50bmQtcmVnX19mb3JtIC5tYi01ID4gaDIge1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICBtYXJnaW46IHZhcigtLXMtNCkgMCAwO1xuICBmb250LWZhbWlseTogdmFyKC0tcmVnLW1vbm8pO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1jLWdyYXktNTAwKTtcbn1cbi50bmQtcmVnX19mb3JtIC5tYi01ID4gaDI6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiAwOyB9XG4vKiBjYWRhIGdydXBvIGRlIGNhbXBvIG9jdXBhIHVuYSBjb2x1bW5hOyBsb3MgbWFyY2Fkb3MgLnRuZC1yZWdfX3dpZGUsIGxhcyBkb3MgKi9cbi50bmQtcmVnX19mb3JtIC5tYi01ID4gZGl2IHsgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyBtaW4td2lkdGg6IDA7IH1cbi50bmQtcmVnX19mb3JtIC50bmQtcmVnX193aWRlIHsgZ3JpZC1jb2x1bW46IDEgLyAtMTsgfVxuXG4vKiBJbnB1dHMgbcOhcyBhbXBsaW9zIHkgbW9kZXJub3MsIGZvY28gZW4gY2lhbiBkZSBtYXJjYSAqL1xuLnRuZC1yZWdfX2Zvcm0gLmZvcm0tbGFiZWwge1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0xKTtcbn1cbi50bmQtcmVnX19mb3JtIC5mb3JtLWNvbnRyb2wsXG4udG5kLXJlZ19fZm9ybSAuZm9ybS1zZWxlY3Qge1xuICBwYWRkaW5nOiAwLjdyZW0gMC44NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZS1zdW5rKTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuLnRuZC1yZWdfX2Zvcm0gLmZvcm0tY29udHJvbDpmb2N1cyxcbi50bmQtcmVnX19mb3JtIC5mb3JtLXNlbGVjdDpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC01MDApO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCAxNTgsIDIzOSwgMC4xOCk7XG59XG4vKiBDYXNpbGxhIChuZXdzbGV0dGVyIC8gcmVjb3JkYXJtZSkgKi9cbi50bmQtcmVnX19mb3JtIC5mb3JtLWNoZWNrIHsgcGFkZGluZy10b3A6IHZhcigtLXMtMSk7IH1cbi50bmQtcmVnX19mb3JtIC5mb3JtLWNoZWNrLWlucHV0OmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC02MDApO1xufVxuXG4vKiAtLS0tIENUQSArIG5vdGEgc2VndXJhIC0tLS0gKi9cbi50bmQtcmVnX19zdWJtaXQuYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBwYWRkaW5nOiAwLjg1cmVtIDEuMjVyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1tYWdlbnRhLWN0YSk7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LWxnKTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbik7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDE4cHggcmdiYSgyMDQsIDI1LCAxMTgsIDAuMjgpO1xufVxuLnRuZC1yZWdfX3N1Ym1pdC5idG46aG92ZXIsXG4udG5kLXJlZ19fc3VibWl0LmJ0bjpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYy1tYWdlbnRhLWN0YS1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLnRuZC1yZWdfX3NlY3VyZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMik7XG4gIG1hcmdpbjogdmFyKC0tcy0zKSAwIDA7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1yZWctbW9ubyk7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTUwMCk7XG59XG4udG5kLXJlZ19fc2VjdXJlIHN2ZyB7IHdpZHRoOiAwLjk1cmVtOyBoZWlnaHQ6IDAuOTVyZW07IGZsZXg6IG5vbmU7IH1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQIExPR0lOIOKAlCBtb2RpZmljYWRvciBgLnRuZC1yZWctLWxvZ2luYCDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi8qIEVuIGVsIGxvZ2luIGVsIGZvcm11bGFyaW8gZXMgY29ydG8gKHVzdWFyaW8gKyBjb250cmFzZcOxYSk6IGxvcyBjYW1wb3MgTk8gdmFuXG4gICBlbiByZWppbGxhIGRlIDIgY29sdW1uYXMsIHNpbm8gYXBpbGFkb3MgYSBhbmNobyBjb21wbGV0by4gKi9cbi50bmQtcmVnLS1sb2dpbiAudG5kLXJlZ19fZm9ybSAubWItNSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tcy00KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy00KSAhaW1wb3J0YW50O1xufVxuXG4vKiBQaWUgZGVsIHJhaWw6IGludml0YWNpw7NuIChDVEEgZmFudGFzbWEgbyBlbmxhY2UpICsgc2x1ZywgYW5jbGFkb3MgYWJham8gKi9cbi50bmQtcmVnX19yYWlsLWZvb3QgeyBtYXJnaW4tdG9wOiBhdXRvOyBwYWRkaW5nLXRvcDogdmFyKC0tcy04KTsgfVxuLnRuZC1yZWdfX3JhaWwtZm9vdCAudG5kLXJlZ19fc2x1ZyB7IG1hcmdpbjogdmFyKC0tcy00KSAwIDA7IHBhZGRpbmctdG9wOiAwOyB9XG4udG5kLXJlZ19fY3Jvc3MtcSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTIpO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTUwMCk7XG59XG4udG5kLXJlZ19fZ2hvc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zLTIpO1xuICBwYWRkaW5nOiAwLjZyZW0gMS4xcmVtO1xuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWMtbWFnZW50YS1jdGEpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWMtbWFnZW50YS1jdGEpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4udG5kLXJlZ19fZ2hvc3Q6aG92ZXIsXG4udG5kLXJlZ19fZ2hvc3Q6Zm9jdXMtdmlzaWJsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtbWFnZW50YS1jdGEpO1xuICBjb2xvcjogdmFyKC0tYy13aGl0ZSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cbi50bmQtcmVnX19naG9zdCBzdmcgeyB3aWR0aDogMS4xcmVtOyBoZWlnaHQ6IDEuMXJlbTsgZmxleDogbm9uZTsgfVxuXG4vKiBcIsK/T2x2aWRhc3RlIHR1IGNvbnRyYXNlw7FhP1wiOiBlbmxhY2UgZGlzY3JldG8gY2VudHJhZG8gYmFqbyBlbCBib3TDs24gKi9cbi50bmQtcmVnLS1sb2dpbiAudG5kLXJlZ19fZm9ybSAuYnRuLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW46IHZhcigtLXMtMikgYXV0byAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBjb2xvcjogdmFyKC0tYy1saW5rKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnRuZC1yZWctLWxvZ2luIC50bmQtcmVnX19mb3JtIC5idG4tbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4udG5kLXJlZy0tbG9naW4gLnRuZC1yZWdfX2Zvcm0gLmQtZ3JpZDpoYXMoLmJ0bi1saW5rKSB7IGp1c3RpZnktaXRlbXM6IGNlbnRlcjsgfVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZAgUkVDVVBFUkFSIC8gRklKQVIgQ09OVFJBU0XDkUEg4oCUIGAtLWZvcmdvdGAgeSBgLS1yZXNldGAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4vKiBGb3JtdWxhcmlvcyBjb3J0b3M6IHNlIGNlbnRyYW4gdmVydGljYWxtZW50ZSBmcmVudGUgYWwgcmFpbCwgbcOhcyBhbHRvLiAqL1xuLnRuZC1yZWctLWZvcmdvdCAudG5kLXJlZ19fZm9ybSxcbi50bmQtcmVnLS1yZXNldCAudG5kLXJlZ19fZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLyogUmVzZXQ6IGxhcyBkb3MgY29udHJhc2XDsWFzLCBhcGlsYWRhcyBhIGFuY2hvIGNvbXBsZXRvIChtw6FzIGxlZ2libGUgcXVlIGVuIHBhcikuICovXG4udG5kLXJlZy0tcmVzZXQgLnRuZC1yZWdfX2Zvcm0gLm1iLTUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXMtNCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXMtNCkgIWltcG9ydGFudDtcbn1cbi8qIFBhc29zIGRlbCBwcm9jZXNvIChzZWN1ZW5jaWEgcmVhbCDihpIgbnVtZXJhY2nDs24gY29uIHNlbnRpZG8pLCBuw7ptZXJvIGVuIG1vbm8gKi9cbi50bmQtcmVnX19zdGVwcyB7XG4gIG1hcmdpbjogdmFyKC0tcy04KSAwIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tcy00KTtcbn1cbi50bmQtcmVnX19zdGVwcyBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0zKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5KTtcbiAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG59XG4udG5kLXJlZ19fc3RlcC1uIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDEuOXJlbTtcbiAgaGVpZ2h0OiAxLjlyZW07XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0xMDApO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwKTtcbiAgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLXJlZy1tb25vKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4udG5kLXJlZy0tZm9yZ290IC50bmQtcmVnX19jcm9zcy1xIGEgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyB9XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCBSZXNwb25zaXZlIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDg2MHB4KSB7XG4gIC50bmQtcmVnX19zaGVldCB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLnRuZC1yZWdfX3JhaWwgeyBmbGV4LWJhc2lzOiBhdXRvOyB9XG4gIC8qIGxhIGJhcnJhIENNWUsgcGFzYSBhIHRpcmEgaG9yaXpvbnRhbCAqL1xuICAudG5kLXJlZ19fYmFyIHsgZmxleC1iYXNpczogMTJweDsgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAudG5kLXJlZ19fc2VnIGIgeyBkaXNwbGF5OiBub25lOyB9XG4gIC50bmQtcmVnX19zbHVnIHsgZGlzcGxheTogbm9uZTsgfVxuICAudG5kLXJlZ19fYmVuZWZpdHMge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXMtNik7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiB2YXIoLS1zLTMpIHZhcigtLXMtNCk7XG4gIH1cbiAgLnRuZC1yZWdfX3JhaWwtZm9vdCB7IG1hcmdpbi10b3A6IHZhcigtLXMtNik7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAudG5kLXJlZ19fZm9ybSAubWItNSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG4gIC50bmQtcmVnX19iZW5lZml0cyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIFDDoWdpbmEgZGUgQ29udGFjdG8uXG4gKiBSZXV0aWxpemEgZWwgcGxpZWdvIFwicHJ1ZWJhIGRlIGNvbG9yXCIgYC50bmQtcmVnYCAoZGVmaW5pZG8gZW4gX2F1dGguc2Nzcyk6IG1pc21hc1xuICogbWFyY2FzIGRlIHJlZ2lzdHJvLCBiYXJyYSBkZSBjYWxpYnJhY2nDs24gQ01ZSyB5IGxpZW56byBkZSBzZW1pdG9ubyBxdWUgbG9naW4vcmVnaXN0cm8sXG4gKiBwYXJhIHF1ZSBDb250YWN0byBzZSBzaWVudGEgZGUgbGEgbWlzbWEgZmFtaWxpYS4gQXF1w60gc29sbyB2YW4gbGFzIHBpZXphcyBwcm9waWFzOlxuICogZWwgbW9kaWZpY2Fkb3IgYC50bmQtcmVnLS1jb250YWN0YCAoZm9ybXVsYXJpbyBjb3J0bywgY2VudHJhZG8pIHkgbGEgXCJmaWNoYSBkZSBjYW5hbGVzXCJcbiAqIGRlbCByYWlsIChgLnRuZC1jb250YWN0X19jaGFubmVsc2ApLCBsYSBmaXJtYSBkZSBlc3RhIHBhbnRhbGxhLlxuICogRGVwZW5kZSBkZTogX2F1dGguc2NzcyAoYmxvcXVlIGAudG5kLXJlZ2ApLiBTZSBpbXBvcnRhIERFU1BVw4lTIGRlICdhdXRoJyBlbiBhcHAuc2Nzcy5cbiAqL1xuXG4vKiAtLS0tIEZpY2hhIGRlIGNhbmFsZXMgKHJhaWwgaXpxdWllcmRvKTogZXRpcXVldGEgbW9ubyBhcnJpYmEgKyBkYXRvIGRlYmFqbyAtLS0tICovXG4udG5kLWNvbnRhY3RfX2NoYW5uZWxzIHtcbiAgbWFyZ2luOiB2YXIoLS1zLTgpIDAgMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zLTQpO1xufVxuLnRuZC1jb250YWN0X19jaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IHZhcigtLXMtMyk7XG59XG4udG5kLWNvbnRhY3RfX2ljbyB7XG4gIGZsZXg6IG5vbmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAyLjI1cmVtO1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTApO1xuICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDApO1xufVxuLnRuZC1jb250YWN0X19pY28gc3ZnIHsgd2lkdGg6IDEuMjVyZW07IGhlaWdodDogMS4yNXJlbTsgfVxuXG4udG5kLWNvbnRhY3RfX2JvZHkgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBtaW4td2lkdGg6IDA7IH1cbi50bmQtY29udGFjdF9fayB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1yZWctbW9ubyk7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWMtZ3JheS01MDApO1xufVxuLnRuZC1jb250YWN0X192IHtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxoLXNudWcpO1xuICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cbi50bmQtY29udGFjdF9fdiBzdHJvbmcgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpOyB9XG5hLnRuZC1jb250YWN0X192IHtcbiAgY29sb3I6IHZhcigtLWMtbWFnZW50YS1jdGEpO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5hLnRuZC1jb250YWN0X192OmhvdmVyLFxuYS50bmQtY29udGFjdF9fdjpmb2N1cy12aXNpYmxlIHtcbiAgY29sb3I6IHZhcigtLWMtbWFnZW50YS1jdGEtaG92ZXIpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogLS0tLSBNb2RpZmljYWRvciBjb250YWN0bzogZm9ybXVsYXJpbyBjb3J0byBjZW50cmFkbyBmcmVudGUgYWwgcmFpbCBtw6FzIGFsdG8gLS0tLSAqL1xuLnRuZC1yZWctLWNvbnRhY3QgLnRuZC1yZWdfX2Zvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi8qIEVsIHRleHRhcmVhIGRlbCBtZW5zYWplIHBpZGUgYWlyZSBwYXJhIGludml0YXIgYSBlc2NyaWJpci4gKi9cbi50bmQtcmVnLS1jb250YWN0IC50bmQtcmVnX19mb3JtIHRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gIG1pbi1oZWlnaHQ6IDguNXJlbTtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cbi8qIFNlcGFyYWNpw7NuIGVudHJlIGxvcyBjYW1wb3MgKGVtYWlsIC8gbWVuc2FqZSkg4oCUIGVsIHRlbWEgbG9zIGVudnVlbHZlIGVuIC5tYi0zLiAqL1xuLnRuZC1yZWctLWNvbnRhY3QgLnRuZC1yZWdfX2Zvcm0gLm1iLTMgeyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTQpICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDg2MHB4KSB7XG4gIC50bmQtY29udGFjdF9fY2hhbm5lbHMge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXMtNik7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiB2YXIoLS1zLTQpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnRuZC1jb250YWN0X19jaGFubmVscyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG4iLCIvKlxuICogQ2hlY2tvdXQgKGNhcGEgdmlzdWFsICsgQ1JPIHNvYnJlIGVsIG9uZS1wYWdlIGRlbCBIaXRvIDE0KS5cbiAqIENvbXBvbmVudGVzOiBsYXlvdXQgT1BDICh0YXJqZXRhcyBlbiBjYXNjYWRhKSwgcmVzdW1lbiBlbiBjdWFkcm8gYXp1bCwgY3Jvc3Mtc2VsbCBcIkNvbXBsZXRhIHR1XG4gKiBwZWRpZG9cIiwgY29uc2VudGltaWVudG8gV2hhdHNBcHAsIGJhcnJhIGRlIGVudsOtbyBncmF0aXMsIHNlbGxvcyBkZSBjb25maWFuemEvcGFnbyB5IGJhcnJhIGRlIHBhZ29cbiAqIG3Ds3ZpbC4gRWwgbGF5b3V0IE9QQyB2aXbDrWEgaW5saW5lIGVuIG9uZV9wYWdlLmh0bWwudHdpZzsgc2UgdHJham8gYXF1w60gcGFyYSBtYW50ZW5pYmlsaWRhZC5cbiAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExheW91dCBPbmUtUGFnZSAoI29wYy1zZWN0aW9ucykg4oCUIHRhcmpldGFzIGVuIGNhc2NhZGFcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBVbmEgc29sYSBwYW50YWxsYTogb2N1bHRhbW9zIGxhcyBiYXJyYXMgZGUgcGFzb3MgeSBsb3MgZW5sYWNlcyBcInZvbHZlclwiIGRlbCBjaGVja291dCBuYXRpdm8uXG4jb3BjLXNlY3Rpb25zIC5zdGVwcyB7IGRpc3BsYXk6IG5vbmU7IH1cbiNvcGMtc2VjdGlvbnMgLmp1c3RpZnktY29udGVudC1iZXR3ZWVuID4gYSB7IGRpc3BsYXk6IG5vbmU7IH1cbiNvcGMtc2VjdGlvbnMgLnBlLWxnLTYgeyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cblxuLy8gU2luIGJvdMOzbiBcIlNpZ3VpZW50ZVwiIGVuIE5JTkfDmk4gcGFzbzogbGEgZGlyZWNjacOzbiBzZSBhdXRvLWd1YXJkYSBhbCBjb21wbGV0YXJzZSAobyBhbCBlbGVnaXIgdW5hXG4vLyBndWFyZGFkYSkgeSBlbnbDrW8vcGFnbyBhdmFuemFuIHNvbG9zIGFsIG1hcmNhciBzdSBvcGNpw7NuLiBUb2RvIGxvIG9ycXVlc3RhIGVsIGNvbnRyb2xhZG9yIGBvcGNgLlxuW2RhdGEtb3BjLXNlY3Rpb249XCJhZGRyZXNzXCJdIGZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0sXG5bZGF0YS1vcGMtc2VjdGlvbj1cInNoaXBwaW5nXCJdIGZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0sXG5bZGF0YS1vcGMtc2VjdGlvbj1cInBheW1lbnRcIl0gZm9ybSBidXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLy8gRXhjZXBjacOzbjogYm90w7NuIEVYUEzDjUNJVE8gXCJDb250aW51YXIgY29uIGVsIGVudsOtb1wiIGRlbCBwYXNvIGRlIGRpcmVjY2nDs24gKG5hdmlnYXRpb24uaHRtbC50d2lnKS5cbi8vIEVsIGF1dG8tYXZhbmNlIHBvciBgZm9jdXNvdXRgIGVzIGZyw6FnaWwgcGFyYSBxdWllbiB0ZWNsZWEgbGEgZGlyZWNjacOzbiBhIG1hbm8gKGludml0YWRvIC8gc2luXG4vLyBkaXJlY2Npb25lcyBndWFyZGFkYXMpOiBlc3RlIGJvdMOzbiBnYXJhbnRpemEgcXVlIHNpZW1wcmUgcHVlZGEgdmFsaWRhciB5IHZlciBsb3MgbcOpdG9kb3MgZGUgZW52w61vLlxuLy8gU2UgYW51bGEgbGEgcmVnbGEgZGUgYXJyaWJhIGNvbiB1biBzZWxlY3RvciBtw6FzIGVzcGVjw61maWNvIChtaXNtYSBjYXNjYWRhLCArMSBjbGFzZSkuXG4udG5kLWFkZHJlc3MtY29udGludWUgeyBtYXJnaW4tdG9wOiAuNXJlbTsgfVxuW2RhdGEtb3BjLXNlY3Rpb249XCJhZGRyZXNzXCJdIGZvcm0gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0udG5kLWFkZHJlc3MtY29udGludWVfX2J0biB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8vIENvbXBhY3RhY2nDs246IG1lbm9zIGFpcmUgcGFyYSBxdWUgcXVlcGEgZW4gdW5hIHBhbnRhbGxhLlxuI29wYy1zZWN0aW9ucyB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIGFuY2xhIGRlbCBvdmVybGF5IGRlIGNhcmdhICgjMilcblxuICAgIC5jYXJkLWJvZHkgeyBwYWRkaW5nOiAxcmVtIDEuMTVyZW07IH1cbiAgICAubWItNSB7IG1hcmdpbi1ib3R0b206IC44NXJlbSAhaW1wb3J0YW50OyB9XG4gICAgLm1iLTQgeyBtYXJnaW4tYm90dG9tOiAuN3JlbSAhaW1wb3J0YW50OyB9XG4gICAgLm1iLTMgeyBtYXJnaW4tYm90dG9tOiAuNHJlbSAhaW1wb3J0YW50OyB9XG4gICAgLmNhcmQuYmctYm9keS10ZXJ0aWFyeSB7IG1hcmdpbi1ib3R0b206IC40cmVtICFpbXBvcnRhbnQ7IH1cbiAgICAuZm9ybS1ncm91cCB7IG1hcmdpbi1ib3R0b206IC40cmVtOyB9XG4gICAgLmZvcm0tbGFiZWwgeyBtYXJnaW4tYm90dG9tOiAuMnJlbTsgfVxufVxuXG4ub3BjLWNhcmQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJzLWJvcmRlci1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnLCAuOXJlbSk7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMTYsIDM4LCA1NiwgLjA0KTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4ycyBlYXNlLCBib3JkZXItY29sb3IgLjJzIGVhc2U7XG5cbiAgICAmICsgLm9wYy1jYXJkIHsgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogLjVyZW0gLjZyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQsIDYwMCk7XG4gICAgICAgIG1hcmdpbjogMCAwIC42NXJlbTtcbiAgICB9XG5cbiAgICAvLyBEaXN0aW50aXZvIGEgbGEgZGVyZWNoYSBkZWwgdMOtdHVsbyAocC4gZWouIFwiRW52w61vIGNvbiBzZWd1aW1pZW50b1wiLCBcIlBhZ28gMTAwJSBzZWd1cm9cIikuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjNyZW07XG4gICAgICAgIHBhZGRpbmc6IC4ycmVtIC42cmVtO1xuICAgICAgICBmb250LXNpemU6IC43MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkLCA2MDApO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDAsICMwYzZiYTMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwLCAjZThmNmZlKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0xMDAsICNjOWVhZmQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgIHN2ZyB7IHdpZHRoOiAuOTVyZW07IGhlaWdodDogLjk1cmVtOyB9XG4gICAgfVxuXG4gICAgLy8gKCM0KSBDw61yY3Vsb3MgZGUgcGFzbyBTSUVNUFJFIGVuIG1hZ2VudGEgY29ycG9yYXRpdm8gZGVzZGUgZWwgcHJpbWVyIG1pbGlzZWd1bmRvOiBhbnRlcyBuYWPDrWFuIGVuXG4gICAgLy8gYXp1bCAoZ3JhZGllbnRlIGRlIG1hcmNhKSB5IHNvbG8gdmlyYWJhbiBhIG1hZ2VudGEgYWwgY29tcGxldGFyc2UsIGxvIHF1ZSBwcm9kdWPDrWEgdW4gcGFycGFkZW9cbiAgICAvLyBhenVs4oaScm9zYSBhbCBjYXJnYXIuIEFob3JhIGVsIG1hZ2VudGEgZXMgZWwgZXN0YWRvIGJhc2UgKGFjdGl2byB5IGNvbXBsZXRhZG8pOyBzb2xvIGVsIGJsb3F1ZWFkb1xuICAgIC8vIHF1ZWRhIGVuIGdyaXMuIEFzw60gbm8gaGF5IGNvbG9yIHRyYW5zaXRvcmlvLlxuICAgICZfX251bSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjhyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMzQ3OWUsIHZhcigtLWMtYWNjZW50LW1hZ2VudGEsICNlNjE0ODQpKTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDIzMCwgMjAsIDEzMiwgLjM1KTtcbiAgICB9XG5cbiAgICAvLyBCbG9xdWVhZGE6IGF0ZW51YWRhIHkgc2luIGNvbnRlbmlkbyAoc29sbyB0w610dWxvICsgcGlzdGEpLlxuICAgICYtLWxvY2tlZCB7XG4gICAgICAgIG9wYWNpdHk6IC41NTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAuY2FyZC1ib2R5ID4gOm5vdCgub3BjLWNhcmRfX3RpdGxlKTpub3QoLm9wYy1jYXJkX19oaW50KSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgICAgICAub3BjLWNhcmRfX251bSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1icy1zZWNvbmRhcnktYmcpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ29tcGxldGFkYTogbsO6bWVybyBlbiBtYWdlbnRhIGNvcnBvcmF0aXZvIChhbnRlcyB2ZXJkZSBkZSDDqXhpdG8pLlxuICAgICYtLWRvbmUgLm9wYy1jYXJkX19udW0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjM0NzllLCB2YXIoLS1jLWFjY2VudC1tYWdlbnRhLCAjZTYxNDg0KSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDIzMCwgMjAsIDEzMiwgLjM1KTtcbiAgICB9XG5cbiAgICAmX19oaW50IHsgY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7IG1hcmdpbjogMDsgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENhamFzIGRlIHNlbGVjY2nDs24gZGUgbcOpdG9kbyAoZW52w61vIHkgcGFnbykg4oCUIGVzdGlsbyBkZSBtYXJjYVxuICAgU3VzdGl0dXllbiBhIGxhcyB0YXJqZXRhcyBCb290c3RyYXAgYGNhcmQgYmctYm9keS10ZXJ0aWFyeWAuIFRhcmpldGFcbiAgIGVudGVyYSBjbGljYWJsZTsgZWwgZXN0YWRvIHNlbGVjY2lvbmFkbyBzZSByZXN1ZWx2ZSBwb3IgQ1NTIGNvblxuICAgOmhhcyhpbnB1dDpjaGVja2VkKSwgc2luIEpTLiBNaXNtYSBhcGFyaWVuY2lhIGVuIGVudsOtbyB5IHBhZ28uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRuZC1tZXRob2RzIHsgZGlzcGxheTogYmxvY2s7IH1cblxuLnRuZC1tZXRob2Qge1xuICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQsIC43NXJlbSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnMtYm9keS1iZywgI2ZmZik7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSwgYmFja2dyb3VuZCAuMTVzIGVhc2UsIGJveC1zaGFkb3cgLjE1cyBlYXNlO1xuXG4gICAgJiArICYgeyBtYXJnaW4tdG9wOiAuNTVyZW07IH1cblxuICAgICY6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtMzAwLCAjNThjMGY3KTsgfVxuXG4gICAgLy8gU2VsZWNjaW9uYWRhOiBib3JkZSB5IGZvbmRvIGRlIG1hcmNhIChjeWFuIGNvcnBvcmF0aXZvKS5cbiAgICAmOmhhcyguZm9ybS1jaGVjay1pbnB1dDpjaGVja2VkKSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC01MDAsICMwMDllZWYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwLCAjZThmNmZlKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWMtYnJhbmQtNTAwLCAjMDA5ZWVmKTtcbiAgICB9XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjc1cmVtO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IC44cmVtIC45NXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgID4gLmZsZXgtZ3Jvdy0xIHsgbWluLXdpZHRoOiAwOyB9XG4gICAgfVxuXG4gICAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtYnJhbmQtNTAwLCAjMDA5ZWVmKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC01MDAsICMwMDllZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tY2hlY2stbGFiZWwgeyBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQsIDYwMCk7IGN1cnNvcjogcG9pbnRlcjsgfVxuXG4gICAgLy8gUHJlY2lvIGRlbCBtw6l0b2RvIGRlIGVudsOtbywgYWxpbmVhZG8gYSBsYSBkZXJlY2hhLlxuICAgIC5vcGMtZmVlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC04MDAsICMwYzU2ODEpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC8vIE1lZGlvIGRlIHBhZ28gYSBUT0RPIENPTE9SLCBhbGluZWFkbyBhIGxhIGRlcmVjaGEgKG1pc21vIHNpdGlvIHF1ZSBlbCBwcmVjaW8gZW4gZW52w61vKS5cbiAgICAmX19wYXktaWNvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjM1cmVtO1xuXG4gICAgICAgIC8vIExvZ29zIGRlIG1hcmNhIHJlYWxlcyAoVmlzYS9NYXN0ZXJjYXJkL1BheVBhbCk6IGNvbnNlcnZhbiBzdXMgY29sb3JlczsgYWx0byBmaWpvLlxuICAgICAgICAudG5kLXBheW1hcmtfX2xvZ28ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50bmQtcGF5bWFya19fbG9nby0tYml6dW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEuN3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS43cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHZW7DqXJpY29zIHNpbiBtYXJjYSAodHJhbnNmZXJlbmNpYSwgY29udHJhIHJlZW1ib2xzbyk6IGJhZGdlIHJlZG9uZGVhZG8gdGludGFkby5cbiAgICAgICAgLnRuZC1wYXltYXJrIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgd2lkdGg6IDEuOXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS45cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjVyZW07XG5cbiAgICAgICAgICAgIHN2ZyB7IHdpZHRoOiAxLjE1cmVtOyBoZWlnaHQ6IDEuMTVyZW07IH1cblxuICAgICAgICAgICAgJi0tdHJhbnNmZXIgeyBjb2xvcjogIzBhODJjNzsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCwgI2U4ZjZmZSk7IH1cbiAgICAgICAgICAgICYtLWNvZCB7IGNvbG9yOiAjMGY5ZDU4OyBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAxNTcsIDg4LCAuMTIpOyB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29sdW1uYSBkZXJlY2hhICgjb3BjLWFzaWRlKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5vcGMtYXNpZGVfX3N0aWNreSB7IHBvc2l0aW9uOiBzdGlja3k7IHRvcDogMXJlbTsgfVxuXG4jb3BjLWFzaWRlIHtcbiAgICAuaDIgeyBmb250LXNpemU6IDEuMnJlbTsgbWFyZ2luLWJvdHRvbTogLjc1cmVtICFpbXBvcnRhbnQ7IH1cbiAgICAudGFibGUgeyBtYXJnaW4tYm90dG9tOiAuNXJlbSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxufVxuXG4ub3BjLXRydXN0IHtcbiAgICBsaW5lLWhlaWdodDogMS45O1xuXG4gICAgbGkgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IC41cmVtOyB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5vcGMtYXNpZGVfX3N0aWNreSB7IHBvc2l0aW9uOiBzdGF0aWM7IH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSZXN1bWVuIGRlbCBwZWRpZG8gZW4gY3VhZHJvIGF6dWwgKHBhdHLDs24gZGUgbWFyY2EpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRuZC1jaGVja291dC1zdW1tYXJ5IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJyYW5kLTEwMCwgI2M5ZWFmZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnLCAuOXJlbSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCwgI2U4ZjZmZSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMTIsIDEwNywgMTYzLCAuMDgpO1xuXG4gICAgJl9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IC43cmVtIDEuMXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC02MDAsICMwYTgyYzcpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkLCA2MDApO1xuICAgICAgICBmb250LXNpemU6IDEuMDVyZW07XG5cbiAgICAgICAgc3ZnIHsgd2lkdGg6IDEuMnJlbTsgaGVpZ2h0OiAxLjJyZW07IH1cbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgICAgcGFkZGluZzogLjlyZW0gMS4xcmVtO1xuXG4gICAgICAgIC8vIEVsIHJlc3VtZW4gbmF0aXZvIGRlIFN5bGl1cyBwaW50YSB0YWJsYXM7IGxhcyBkZWphbW9zIHRyYW5zcGFyZW50ZXMgc29icmUgZWwgYXp1bC5cbiAgICAgICAgLnRhYmxlLFxuICAgICAgICAudGFibGUgPiA6bm90KGNhcHRpb24pID4gKiA+ICogeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4gICAgICAgIC8vIFRvdGFsIGZpbmFsIG3DoXMgcHJvbWluZW50ZSAow7psdGltYSBmaWxhIGRlIGxhIHRhYmxhIGRlIHRvdGFsZXMpLlxuICAgICAgICAudGFibGUgdGZvb3QgdGQsXG4gICAgICAgIHRyOmxhc3QtY2hpbGQgdGQgeyBmb250LXdlaWdodDogNzAwOyB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENyb3NzLXNlbGwgXCJDb21wbGV0YSB0dSBwZWRpZG9cIlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50bmQteHNlbGwge1xuICAgIG1hcmdpbi10b3A6IC44NXJlbTtcbiAgICBwYWRkaW5nOiAuODVyZW0gMXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZywgLjlyZW0pO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJzLWJvZHktYmcsICNmZmYpO1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IC40cmVtO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCwgNjAwKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjE1cmVtO1xuXG4gICAgICAgIHN2ZyB7IHdpZHRoOiAxLjFyZW07IGhlaWdodDogMS4xcmVtOyBjb2xvcjogdmFyKC0tYy1icmFuZC02MDAsICMwYTgyYzcpOyB9XG4gICAgfVxuXG4gICAgJl9faGludCB7IGZvbnQtc2l6ZTogLjhyZW07IGNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpOyBtYXJnaW46IDAgMCAuNnJlbTsgfVxuXG4gICAgJl9fbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogLjM1cmVtOyB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAuNnJlbTtcbiAgICAgICAgcGFkZGluZzogLjRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IC42cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4xNXMgZWFzZTtcblxuICAgICAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCwgI2U4ZjZmZSk7IH1cbiAgICB9XG5cbiAgICAmX19tZWRpYSB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb250YWluOyB9XG4gICAgICAgIHN2ZyB7IHdpZHRoOiAxLjRyZW07IGhlaWdodDogMS40cmVtOyBjb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKTsgfVxuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0sIDUwMCk7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCwgIzBjNmJhMyk7IH1cbiAgICB9XG5cbiAgICAmX19zYXZlIHtcbiAgICAgICAgZm9udC1zaXplOiAuNzJyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWRlYWwsICNlNjE0ODQpO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAuMnJlbTtcblxuICAgICAgICBzdmcgeyB3aWR0aDogLjg1cmVtOyBoZWlnaHQ6IC44NXJlbTsgfVxuICAgIH1cblxuICAgICZfX3ByaWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LWJvbGQsIDcwMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTgwMCwgIzBjNTY4MSk7XG4gICAgfVxuXG4gICAgJl9fYWRkIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7IHdpZHRoOiAxLjFyZW07IGhlaWdodDogMS4xcmVtOyB9XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbnNlbnRpbWllbnRvIFdoYXRzQXBwIChpbmNpZGVuY2lhcyBkZSB0cmFuc3BvcnRlKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50bmQtY29uc2VudCB7XG4gICAgcGFkZGluZzogLjU1cmVtIC43cmVtIC41NXJlbSAycmVtOyAvLyBlc3BhY2lvIGV4dHJhIGEgbGEgaXpxLiBwYXJhIGxhIGNhc2lsbGEgZGUgQm9vdHN0cmFwXG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWMtYnJhbmQtMjAwLCAjOTNkNmZiKTtcbiAgICBib3JkZXItcmFkaXVzOiAuNnJlbTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwLCAjZThmNmZlKTtcblxuICAgIC5mb3JtLWNoZWNrLWxhYmVsIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIGNvbG9yOiAjMjVEMzY2OyAvLyB2ZXJkZSBXaGF0c0FwcFxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFycmEgXCJ0ZSBmYWx0YW4gWCDigqwgcGFyYSBlbCBlbnbDrW8gZ3JhdGlzXCJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udG5kLWZyZWVzaGlwIHtcbiAgICBtYXJnaW4tdG9wOiAuNzVyZW07XG4gICAgcGFkZGluZzogLjZyZW0gLjhyZW07XG4gICAgYm9yZGVyLXJhZGl1czogLjZyZW07XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnMtYm9keS1iZywgI2ZmZik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgLjRyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IC4zNXJlbTtcbiAgICB9XG5cbiAgICAmX190cmFjayB7XG4gICAgICAgIGhlaWdodDogLjVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJzLXNlY29uZGFyeS1iZywgI2U5ZWNlZik7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJl9fZmlsbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYnMtcHJpbWFyeSwgIzBhODJjNyksICNlNjE0ODQpO1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAuNHMgZWFzZTtcbiAgICB9XG5cbiAgICAvLyBFbnbDrW8gZ3JhdGlzIGNvbnNlZ3VpZG86IGFjZW50byBtYWdlbnRhIGNvcnBvcmF0aXZvIChhbnRlcyB2ZXJkZSkuXG4gICAgJi0tZG9uZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzAsIDIwLCAxMzIsIC4zNSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjMwLCAyMCwgMTMyLCAuMDgpO1xuXG4gICAgICAgIC50bmQtZnJlZXNoaXBfX2ZpbGwge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1hY2NlbnQtbWFnZW50YSwgI2U2MTQ4NCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU2VsbG9zIGRlIHBhZ28ganVudG8gYWwgQ1RBXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRuZC1wYXliYWRnZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogLjM1cmVtO1xufVxuXG4udG5kLXBheWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogLjI1cmVtO1xuICAgIHBhZGRpbmc6IC4ycmVtIC41cmVtO1xuICAgIGZvbnQtc2l6ZTogLjcycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWJzLXNlY29uZGFyeS1jb2xvcik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnMtYm9keS10ZXJ0aWFyeSwgI2Y2ZjdmOSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAuNHJlbTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXJyYSBkZSBwYWdvIHN0aWNreSBlbiBtw7N2aWxcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vLyBFbCBib3R0b20tbmF2IGdsb2JhbCBzZSBvY3VsdGEgZW4gZWwgY2hlY2tvdXQsIGFzw60gcXVlIGVzdGEgYmFycmEgbm8gY29tcGl0ZSBjb24gw6lsLlxuLnRuZC1tb2JpbGUtcGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IGF1dG8gMCAwIDA7XG4gICAgei1pbmRleDogMTAzMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAuNzVyZW07XG4gICAgcGFkZGluZzogLjZyZW0gLjlyZW0gY2FsYyguNnJlbSArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1icy1ib2R5LWJnLCAjZmZmKTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiAwIC0uNHJlbSAxcmVtIHJnYmEoMCwgMCwgMCwgLjA4KTtcblxuICAgICZfX3RvdGFsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICBzdHJvbmcgeyBmb250LXNpemU6IDEuMDVyZW07IH1cbiAgICB9XG59XG5cbi8vIEh1ZWNvIHBhcmEgcXVlIGxhIGJhcnJhIGZpamEgbm8gdGFwZSBlbCBib3TDs24gZGUgcGFnYXIgcmVhbCBkZWwgYXNpZGUuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAjb3BjLWFzaWRlIHsgcGFkZGluZy1ib3R0b206IDVyZW07IH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNaW5pYXR1cmEgZGVsIHByb2R1Y3RvIGVuIGVsIHJlc3VtZW4gZGVsIHBlZGlkb1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50bmQtc3VtbWFyeS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAuNTVyZW07XG5cbiAgICAmX190aHVtYiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0xMDAsICNjOWVhZmQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAuNXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IG1heC1oZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvbnRhaW47IH1cbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE5vdGEgcGFyYSBlbCB0cmFuc3BvcnRpc3RhIChkZW50cm8gZGVsIGN1YWRybyBkZSBlbnbDrW8pXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRuZC10cmFuc3BvcnQtbm90ZSB7XG4gICAgbWFyZ2luLXRvcDogLjg1cmVtO1xuXG4gICAgJl9fY291bnRlciB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFubmVyIGRlIGNvbnNlbnRpbWllbnRvIFdoYXRzQXBwIChhdmlzb3MgZGVsIHBlZGlkbylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udG5kLXdhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogLjg1cmVtO1xuICAgIHBhZGRpbmc6IDFyZW0gLjlyZW0gLjlyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1icmFuZC0xMDAsICNjOWVhZmQpO1xuICAgIGJvcmRlci1yYWRpdXM6IC44cmVtO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNlZmZhZjIsIHZhcigtLWJzLWJvZHktYmcsICNmZmYpKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvLyBCb3TDs24gXCJpXCIgKGluZm9ybWFjacOzbikgY2lyY3VsYXIsIGVzcXVpbmEgc3VwZXJpb3IgZGVyZWNoYSDihpIgYWJyZSBlbCBwb3BvdmVyLlxuICAgICZfX2luZm8ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLjVyZW07XG4gICAgICAgIHJpZ2h0OiAuNXJlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMS43cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCwgIzBjNmJhMyk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjE1cyBlYXNlO1xuXG4gICAgICAgIHN2ZyB7IHdpZHRoOiAxLjQ1cmVtOyBoZWlnaHQ6IDEuNDVyZW07IH1cbiAgICAgICAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTAsICNlOGY2ZmUpOyB9XG4gICAgfVxuXG4gICAgJl9faGVybyB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuICAgIC8vIExvZ28gZGUgV2hhdHNBcHAgZ3JhbmRlIHkgY2VudHJhZG8gKGNvbmNlcHRvIHZpc3VhbCBkZSBsYSBpbWFnZW4gYXBvcnRhZGEpLlxuICAgICZfX2xvZ28ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLjRyZW07XG5cbiAgICAgICAgc3ZnIHsgd2lkdGg6IDMuMnJlbTsgaGVpZ2h0OiAzLjJyZW07IH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogLjk4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCwgNzAwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWluaywgIzBiMGIwZik7XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIG1hcmdpbjogLjI1cmVtIDAgMDtcbiAgICAgICAgZm9udC1zaXplOiAuODJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICAgIH1cblxuICAgICZfX29wdGluIHtcbiAgICAgICAgbWFyZ2luOiAuNzVyZW0gYXV0byAwO1xuICAgICAgICBtYXgtd2lkdGg6IDIycmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiAuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dCB7IG1hcmdpbi10b3A6IC4xNXJlbTsgZmxleDogMCAwIGF1dG87IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dDpjaGVja2VkIHsgYmFja2dyb3VuZC1jb2xvcjogIzI1ZDM2NjsgYm9yZGVyLWNvbG9yOiAjMjVkMzY2OyB9XG4gICAgICAgIC5mb3JtLWNoZWNrLWxhYmVsIHsgZm9udC1zaXplOiAuODJyZW07IGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIH1cblxuICAgICZfX29wdGlvbmFsIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogLjc0cmVtOyBjb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKTsgfVxuXG4gICAgLy8gUG9wb3ZlciBkZSBpbmZvcm1hY2nDs24gYW1wbGlhZGEgKHN1c3RpdHV5ZSBhbCBhbnRpZ3VvIGFjb3JkZcOzbikuXG4gICAgJl9fcG9wIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDIuNHJlbTtcbiAgICAgICAgcmlnaHQ6IC41cmVtO1xuICAgICAgICB6LWluZGV4OiAyMDtcbiAgICAgICAgd2lkdGg6IG1pbigyMHJlbSwgY2FsYygxMDAlIC0gMXJlbSkpO1xuICAgICAgICBtYXgtaGVpZ2h0OiA2MHZoO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAuOXJlbSAxcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1icy1ib2R5LWJnLCAjZmZmKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjdyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgLjZyZW0gMS42cmVtIHJnYmEoMTYsIDM4LCA1NiwgLjE4KTtcblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuXG4gICAgJl9fcG9wLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC40cmVtO1xuICAgICAgICByaWdodDogLjRyZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nOiAuMTVyZW07XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1icy1zZWNvbmRhcnktY29sb3IpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgc3ZnIHsgd2lkdGg6IDEuMXJlbTsgaGVpZ2h0OiAxLjFyZW07IH1cbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTsgfVxuICAgIH1cblxuICAgICZfX3BvcC1ib2R5IHtcbiAgICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKTtcblxuICAgICAgICBwIHsgbWFyZ2luOiAwIDAgLjRyZW07IH1cbiAgICAgICAgdWwgeyBtYXJnaW46IDAgMCAuNHJlbTsgcGFkZGluZy1sZWZ0OiAxLjFyZW07IH1cbiAgICAgICAgbGkgeyBtYXJnaW4tYm90dG9tOiAuMTVyZW07IH1cbiAgICB9XG5cbiAgICAmX19oIHtcbiAgICAgICAgZm9udC1zaXplOiAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkLCA3MDApO1xuICAgICAgICBtYXJnaW46IC42cmVtIDAgLjJyZW07XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IDA7IH1cbiAgICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlicmV0YSBkZSBkaXJlY2Npb25lcyBpbmxpbmUgKGNsaWVudGVzIHJlZ2lzdHJhZG9zKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50bmQtYWRkcmVzcy1ib29rIHtcbiAgICAmX190aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjM1cmVtO1xuICAgICAgICBtYXJnaW46IDAgMCAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAuOXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkLCA2MDApO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC04MDAsICMwYzU2ODEpO1xuXG4gICAgICAgIHN2ZyB7IHdpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07IH1cbiAgICB9XG5cbiAgICAmX19saXN0IHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAuNHJlbTsgfVxuXG4gICAgJl9fZm9vdCB7IG1hcmdpbi10b3A6IC41cmVtOyB9XG59XG5cbi50bmQtYWRkci1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogLjU1cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAuNDVyZW0gLjY1cmVtO1xuICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tYnMtYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQsIC43NXJlbSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnMtYm9keS1iZywgI2ZmZik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzIGVhc2UsIGJhY2tncm91bmQgLjE1cyBlYXNlLCBib3gtc2hhZG93IC4xNXMgZWFzZTtcblxuICAgICY6aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtMzAwLCAjNThjMGY3KTsgfVxuXG4gICAgLy8gU2VsZWNjaW9uYWRhOiBib3JkZSB5IGZvbmRvIGRlIG1hcmNhIChpZ3VhbCBxdWUgbGFzIGNhamFzIGRlIGVudsOtby9wYWdvKS5cbiAgICAmOmhhcygudG5kLWFkZHItY2FyZF9fcmFkaW86Y2hlY2tlZCkge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNTAwLCAjMDA5ZWVmKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCwgI2U4ZjZmZSk7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jLWJyYW5kLTUwMCwgIzAwOWVlZik7XG4gICAgfVxuXG4gICAgJl9fcmFkaW8ge1xuICAgICAgICBtYXJnaW4tdG9wOiAuMTVyZW07XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJjpjaGVja2VkIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYy1icmFuZC01MDAsICMwMDllZWYpOyBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNTAwLCAjMDA5ZWVmKTsgfVxuICAgIH1cblxuICAgICZfX21haW4geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IC4xcmVtOyBtaW4td2lkdGg6IDA7IH1cblxuICAgICZfX25hbWUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogLjM1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQsIDYwMCk7XG4gICAgICAgIGZvbnQtc2l6ZTogLjg1cmVtO1xuICAgIH1cblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjJyZW07XG4gICAgICAgIHBhZGRpbmc6IC4wNXJlbSAuNHJlbTtcbiAgICAgICAgZm9udC1zaXplOiAuNjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCwgNjAwKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnJlbTtcblxuICAgICAgICBzdmcgeyB3aWR0aDogLjhyZW07IGhlaWdodDogLjhyZW07IH1cblxuICAgICAgICAmLS1zaGlwIHsgY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwLCAjMGM2YmEzKTsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCwgI2U4ZjZmZSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWMtYnJhbmQtMTAwLCAjYzllYWZkKTsgfVxuICAgICAgICAmLS1iaWxsIHsgY29sb3I6IHZhcigtLWMtYWNjZW50LW1hZ2VudGEsICNlNjE0ODQpOyBiYWNrZ3JvdW5kOiByZ2JhKDIzMCwgMjAsIDEzMiwgLjA4KTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzAsIDIwLCAxMzIsIC4yNSk7IH1cbiAgICB9XG5cbiAgICAmX19saW5lcyB7IGZvbnQtc2l6ZTogLjc4cmVtOyBjb2xvcjogdmFyKC0tYnMtc2Vjb25kYXJ5LWNvbG9yKTsgbGluZS1oZWlnaHQ6IDEuMjU7IH1cblxuICAgICZfX2FjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogLjdyZW07IG1hcmdpbi10b3A6IC4yNXJlbTsgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAuNzZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1tZWRpdW0sIDUwMCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWJyYW5kLTcwMCwgIzBjNmJhMyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBzdmcgeyB3aWR0aDogLjg1cmVtOyBoZWlnaHQ6IC44NXJlbTsgfVxuXG4gICAgICAgICY6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAgICAgICAmLmlzLWRlZmF1bHQgeyBjb2xvcjogdmFyKC0tYy1ncmF5LTQwMCwgIzk5YTFhZik7IGN1cnNvcjogZGVmYXVsdDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgfVxufVxuXG4udG5kLWFkZHJlc3MtZmllbGRzX19zYXZlYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogLjVyZW07XG5cbiAgICAuYWxlcnQgeyBmbGV4OiAxIDAgMTAwJTsgbWFyZ2luLWJvdHRvbTogMDsgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNlbGVjdG9yIFRpY2tldCAvIEZhY3R1cmEgKCMzKSArIHJldmVsYWRvIGNvbmRpY2lvbmFsIGRlbCBOSUZcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udG5kLWRvYyB7XG4gICAgbWFyZ2luOiAwIDAgLjg1cmVtO1xuICAgIHBhZGRpbmc6IC43cmVtIC44NXJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJyYW5kLTEwMCwgI2M5ZWFmZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kLCAuNzVyZW0pO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTAsICNlOGY2ZmUpO1xuXG4gICAgJl9fcSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IC44NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkLCA2MDApO1xuICAgICAgICBjb2xvcjogdmFyKC0tYy1icmFuZC04MDAsICMwYzU2ODEpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19zZWcge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgICAgIGdhcDogLjVyZW07XG4gICAgfVxuXG4gICAgJl9fb3B0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgaW5wdXQgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBvcGFjaXR5OiAwOyB9XG4gICAgfVxuXG4gICAgJl9fb3B0LWlubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjRyZW07XG4gICAgICAgIHBhZGRpbmc6IC41NXJlbSAuNnJlbTtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1icy1ib3JkZXItY29sb3IpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQsIC43NXJlbSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJzLWJvZHktYmcsICNmZmYpO1xuICAgICAgICBmb250LXNpemU6IC44NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkLCA2MDApO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4xNXMgZWFzZSwgYm94LXNoYWRvdyAuMTVzIGVhc2U7XG5cbiAgICAgICAgc3ZnIHsgd2lkdGg6IDEuMXJlbTsgaGVpZ2h0OiAxLjFyZW07IGNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCwgIzBhODJjNyk7IH1cbiAgICB9XG5cbiAgICAmX19vcHQgaW5wdXQ6Y2hlY2tlZCArICZfX29wdC1pbm5lciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC01MDAsICMwMDllZWYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWJyYW5kLTUwLCAjZThmNmZlKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWMtYnJhbmQtNTAwLCAjMDA5ZWVmKTtcbiAgICB9XG5cbiAgICAmX19vcHQgaW5wdXQ6Zm9jdXMtdmlzaWJsZSArICZfX29wdC1pbm5lciB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWJyYW5kLTQwMCwgIzJlYWVmOSk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgfVxuXG4gICAgJl9faGludCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogLjM1cmVtO1xuICAgICAgICBtYXJnaW46IC41NXJlbSAwIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogLjhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLWFjY2VudC1tYWdlbnRhLCAjZTYxNDg0KTtcblxuICAgICAgICBzdmcgeyB3aWR0aDogLjk1cmVtOyBoZWlnaHQ6IC45NXJlbTsgZmxleDogMCAwIGF1dG87IH1cblxuICAgICAgICAmW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxufVxuXG4vLyBFbCBOSUYvQ0lGIHNvbG8gc2UgbXVlc3RyYSBlbiBlbCBDSEVDS09VVCBjdWFuZG8gZWwgY2xpZW50ZSBlbGlnZSBcIkZhY3R1cmFcIiAodHJhbnNpY2nDs24gZmx1aWRhKS5cbi8vIEZ1ZXJhIGRlbCBjaGVja291dCAobGlicmV0YSBkZSBjbGllbnRlLCBhZG1pbikgbm8gaGF5IFtkYXRhLW9wYy1zZWN0aW9uXSwgYXPDrSBxdWUgc2UgdmUgc2llbXByZS5cbltkYXRhLW9wYy1zZWN0aW9uPVwiYWRkcmVzc1wiXSAudG5kLXZhdC1maWVsZCB7IGRpc3BsYXk6IG5vbmU7IH1cblxuW2RhdGEtb3BjLXNlY3Rpb249XCJhZGRyZXNzXCJdLnRuZC13YW50cy1pbnZvaWNlIC50bmQtdmF0LWZpZWxkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBhbmltYXRpb246IHRuZC12YXQtcmV2ZWFsIC4yNXMgZWFzZTtcbn1cblxuQGtleWZyYW1lcyB0bmQtdmF0LXJldmVhbCB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtLjM1cmVtKTsgfVxuICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTG9hZGVyIGRlIHRyYW5zaWNpw7NuICgjMikg4oCUIG92ZXJsYXkgY29uIGJsdXIgKyBiYXJyYXMgQ01ZSyBkZSBtYXJjYVxuICAgRWwgY29udHJvbGFkb3IgYG9wY2AgaW55ZWN0YSBgLnRuZC1sb2FkZXItb3ZlcmxheWAgc29icmUgbGEgY29sdW1uYSBkZSBwYXNvcyB5IGxhIGRlbCByZXN1bWVuXG4gICBtaWVudHJhcyBlbCBzZXJ2aWRvciByZWNhbGN1bGEgKGRpcmVjY2nDs24vZW52w61vL3RvdGFsZXMpLCB5IGxvIHJldGlyYSBhbCB0ZXJtaW5hci4gTGEgbWFyY2Egc29uIGxhc1xuICAgdHJlcyBiYXJyYXMgY29ycG9yYXRpdmFzIChjaWFuL21hZ2VudGEvYW1hcmlsbG8pIGRlbCBsb2dvLCBhbmltYWRhcyBlbiBidWNsZS4gQ29tdW5pY2EgXCJlc3RveVxuICAgdHJhYmFqYW5kb1wiIHNpbiBxdWUgbGEgcGFudGFsbGEgcGFyZXpjYSBjb2xnYWRhIHkgc2luIG1vdmVyIGVsIGxheW91dCAob3ZlcmxheSBhYnNvbHV0bykuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRuZC1sb2FkZXItb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IGNsYW1wKDJyZW0sIDE4JSwgOHJlbSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnLCAuOXJlbSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNTUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyLjVweCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMi41cHgpO1xuICAgIGFuaW1hdGlvbjogdG5kLWxvYWRlci1mYWRlIC4xNXMgZWFzZTtcbiAgICBjdXJzb3I6IHByb2dyZXNzO1xufVxuXG5Aa2V5ZnJhbWVzIHRuZC1sb2FkZXItZmFkZSB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgICB0byB7IG9wYWNpdHk6IDE7IH1cbn1cblxuLnRuZC1sb2FkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogLjU1cmVtO1xuICAgIHBhZGRpbmc6IC45cmVtIDEuMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAuOHJlbTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC45KTtcbiAgICBib3gtc2hhZG93OiAwIC41cmVtIDEuNXJlbSByZ2JhKDE2LCAzOCwgNTYsIC4xNCk7XG5cbiAgICAmX19iYXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiAuMjhyZW07XG4gICAgICAgIGhlaWdodDogMS43cmVtO1xuXG4gICAgICAgIGkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogLjQycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjEycmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGNlbnRlcjtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogdG5kLWxvYWRlci1iYXIgMXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMYXMgdHJlcyBiYXJyYXMgZGUgbGEgbWFyY2EsIGRlc2Zhc2FkYXMgcGFyYSBlbCBlZmVjdG8gXCJzYWx0YXLDrW5cIiAoY2lhbiDihpIgbWFnZW50YSDihpIgYW1hcmlsbG8pLlxuICAgICAgICBpOm50aC1jaGlsZCgxKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNTAwLCAjMDA5ZWVmKTsgYW5pbWF0aW9uLWRlbGF5OiAwczsgfVxuICAgICAgICBpOm50aC1jaGlsZCgyKSB7IGJhY2tncm91bmQ6IHZhcigtLWMtYWNjZW50LW1hZ2VudGEsICNlNjE0ODQpOyBhbmltYXRpb24tZGVsYXk6IC4xNnM7IH1cbiAgICAgICAgaTpudGgtY2hpbGQoMykgeyBiYWNrZ3JvdW5kOiAjZmZlNjAwOyBhbmltYXRpb24tZGVsYXk6IC4zMnM7IH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCwgNjAwKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWMtYnJhbmQtODAwLCAjMGM1NjgxKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC4wMWVtO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyB0bmQtbG9hZGVyLWJhciB7XG4gICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlWSguNDUpOyBvcGFjaXR5OiAuNjU7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlWSgxKTsgb3BhY2l0eTogMTsgfVxufVxuXG4vLyBSZXNwZXRvIGEgXCJwcmVmaWVyZSBtZW5vcyBtb3ZpbWllbnRvXCI6IGxhcyBiYXJyYXMgc29sbyBwdWxzYW4gZW4gb3BhY2lkYWQsIHNpbiBzYWx0YXIuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC50bmQtbG9hZGVyX19iYXJzIGkgeyBhbmltYXRpb246IHRuZC1sb2FkZXItcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHRuZC1sb2FkZXItcHVsc2Uge1xuICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogLjQ7IH1cbiAgICA1MCUgeyBvcGFjaXR5OiAxOyB9XG59XG5cbi8vIEFuY2xhcyBkZWwgb3ZlcmxheSBkZWwgcmVzdW1lbiAobGEgY29sdW1uYSBkZSBwYXNvcyB5YSBlcyBwb3NpdGlvbjpyZWxhdGl2ZSBhcnJpYmEpLlxuLnRuZC1jaGVja291dC1zdW1tYXJ5IHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQWNvcmRlw7NuIGRlIGxhIGxpYnJldGEgZGUgZGlyZWNjaW9uZXMgKCMzKVxuICAgUG9yIGRlZmVjdG8gc29sbyBzZSB2ZSBsYSBkaXJlY2Npw7NuIGFjdGl2YSArIFwiQ2FtYmlhciBkaXJlY2Npw7NuXCI7IGFsIGRlc3BsZWdhciwgZWwgcmVzdG8gKyBjcmVhci5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udG5kLWFkZHJlc3MtYm9va19fY2hhbmdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogLjM1cmVtO1xuICAgIG1hcmdpbi10b3A6IC41cmVtO1xuICAgIHBhZGRpbmc6IC40cmVtIC43NXJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IDEuNXB4IGRhc2hlZCB2YXIoLS1jLWJyYW5kLTIwMCwgIzkzZDZmYik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kLCAuNzVyZW0pO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJzLWJvZHktYmcsICNmZmYpO1xuICAgIGZvbnQtc2l6ZTogLjgycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCwgNjAwKTtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC03MDAsICMwYzZiYTMpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIC4xNXMgZWFzZTtcblxuICAgIHN2ZyB7IHdpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07IH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNDAwLCAjMmVhZWY5KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCwgI2U4ZjZmZSk7XG4gICAgfVxufVxuIiwiLypcbiAqIEZhc2UgOCDigJQgTWFxdWV0YWNpw7NuIGRlIGxhIGd1w61hIHZpc3VhbCB2aXZhICgvc3R5bGVndWlkZSkuIFNvbG8gYWZlY3RhIGEgZXNhIHDDoWdpbmEgZGVcbiAqIHJlZmVyZW5jaWEgaW50ZXJuYTsgbm8gZW50cmEgZW4gZWwgcmVzdG8gZGUgbGEgdGllbmRhLlxuICovXG5cbi50bmQtc2cge1xuICAgICYtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IHZhcigtLXMtNik7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gICAgICAgIHNjcm9sbC1tYXJnaW4tdG9wOiA1cmVtO1xuXG4gICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7IGJvcmRlci10b3A6IDA7IH1cbiAgICB9XG5cbiAgICAmLXBhbmVsIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tcy00KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xuICAgIH1cblxuICAgIC8vIFJlamlsbGEgZGUgbXVlc3RyYXMgZGUgY29sb3IuXG4gICAgJi1zd2F0Y2hlcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEyMHB4LCAxZnIpKTtcbiAgICAgICAgZ2FwOiB2YXIoLS1zLTMpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1zLTIpO1xuICAgIH1cblxuICAgICYtc3dhdGNoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FwdGlvbik7XG5cbiAgICAgICAgJl9fY2hpcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4wOCk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19uYW1lIHsgZm9udC13ZWlnaHQ6IHZhcigtLWZ3LXNlbWlib2xkKTsgfVxuXG4gICAgICAgIGNvZGUgeyBmb250LXNpemU6IC42OHJlbTsgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7IH1cbiAgICB9XG5cbiAgICAvLyBDYWphcyBkZSBkZW1vc3RyYWNpw7NuIGRlIHNvbWJyYSB5IHJhZGlvLlxuICAgICYtZWxldixcbiAgICAmLXJhZGl1cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogNnJlbTtcbiAgICAgICAgaGVpZ2h0OiA2cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXN1cmZhY2UpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICAgIH1cblxuICAgICYtcmFkaXVzIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7IGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC0yMDApOyB9XG59XG4iLCIvKlxuICogVG9uZXJkZWx1eGUg4oCUIEZvb3RlciByaWNvIGRlIG1hcmNhIChGYXNlIDIpLlxuICovXG4udG5kLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWMtaW5rKTtcbiAgY29sb3I6IHZhcigtLWMtZ3JheS0zMDApO1xufVxuXG4vKiBGcmFuamEgZGUgY29uZmlhbnphIHN1cGVyaW9yICovXG4udG5kLWZvb3Rlcl9fdHJ1c3Qge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cbi50bmQtZm9vdGVyX190cnVzdCAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IHZhcigtLXMtNCkgdmFyKC0tcy02KTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXMtNCk7XG59XG4udG5kLWZvb3Rlcl9fdHJ1c3Qgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXMtMik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jLWdyYXktMTAwKTtcbn1cbi50bmQtZm9vdGVyX190cnVzdCBzdmcgeyB3aWR0aDogMS4xcmVtOyBoZWlnaHQ6IDEuMXJlbTsgY29sb3I6IHZhcigtLWMtYWNjZW50LWN5YW4pOyB9XG5cbi8qIEN1ZXJwbyBkZSBjb2x1bW5hcyAqL1xuLnRuZC1mb290ZXJfX21haW4geyBwYWRkaW5nLWJsb2NrOiBjbGFtcCgycmVtLCAxLjVyZW0gKyAydncsIDMuNXJlbSk7IH1cbi50bmQtZm9vdGVyX19sb2dvIHtcbiAgd2lkdGg6IDExcmVtO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zLTMpO1xufVxuLyogRWwgd29yZG1hcmsgdXNhIGN1cnJlbnRDb2xvciwgcGVybyBfYnJhbmQuc2NzcyBmaWphIGNvbG9yOnZhcigtLWMtaW5rKSBlbiBlbFxuICAgcHJvcGlvIDxzdmcudG5kLWxvZ28+OyBoYXkgcXVlIGFwdW50YXIgYWwgU1ZHIChtYXlvciBlc3BlY2lmaWNpZGFkKSBwYXJhIHF1ZVxuICAgc2UgdmVhIGJsYW5jbyBzb2JyZSBlbCBmb25kbyBuZWdybyBkZWwgcGllLiBMYXMgYmFycmFzIENNWUsgbGxldmFuIGZpbGwgZmlqby4gKi9cbi50bmQtZm9vdGVyX19sb2dvIC50bmQtbG9nbyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnRuZC1mb290ZXJfX2NsYWltIHtcbiAgY29sb3I6IHZhcigtLWMtZ3JheS00MDApO1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBtYXgtd2lkdGg6IDIycmVtO1xufVxuLnRuZC1mb290ZXJfX3NvY2lhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tcy0zKTtcbn1cbi50bmQtZm9vdGVyX19zb2NpYWwgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDIuMjVyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTEwMCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbiksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xufVxuLnRuZC1mb290ZXJfX3NvY2lhbCBhOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MDApOyBjb2xvcjogI2ZmZjsgfVxuLnRuZC1mb290ZXJfX3NvY2lhbCBzdmcgeyB3aWR0aDogMS4ycmVtOyBoZWlnaHQ6IDEuMnJlbTsgfVxuXG4udG5kLWZvb3Rlcl9fdGl0bGUge1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tcy0zKTtcbn1cbi50bmQtZm9vdGVyX19uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXMtMik7XG59XG4udG5kLWZvb3Rlcl9fbmF2IGEge1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTQwMCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbn1cbi50bmQtZm9vdGVyX19uYXYgYTpob3ZlciB7IGNvbG9yOiAjZmZmOyB9XG5cbi8qIE5ld3NsZXR0ZXIgZGVudHJvIGRlbCBmb290ZXIgb3NjdXJvICovXG4udG5kLWZvb3Rlcl9fbmV3cyA6aXMoaDMsIC5oNikgeyBjb2xvcjogI2ZmZjsgfVxuLnRuZC1mb290ZXJfX25ld3MgLnRleHQtYm9keS1zZWNvbmRhcnksXG4udG5kLWZvb3Rlcl9fbmV3cyAuc21hbGwgeyBjb2xvcjogdmFyKC0tYy1ncmF5LTQwMCkgIWltcG9ydGFudDsgfVxuXG4vKiBNw6l0b2RvcyBkZSBwYWdvICovXG4udG5kLWZvb3Rlcl9fcGF5IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG4udG5kLWZvb3Rlcl9fcGF5IC5jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tcy0yKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tcy00KTtcbn1cbi50bmQtZm9vdGVyX19wYXktbGFiZWwge1xuICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTQwMCk7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tcy0yKTtcbn1cbi50bmQtZm9vdGVyX19wYXktYmFkZ2Uge1xuICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICBjb2xvcjogdmFyKC0tYy1ncmF5LTEwMCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG4gIHBhZGRpbmc6IDNweCB2YXIoLS1zLTIpO1xufVxuXG4vKiBDb3B5cmlnaHQgKi9cbi50bmQtZm9vdGVyX19ib3R0b20ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbn1cbi50bmQtZm9vdGVyX19ib3R0b20gLmNvbnRhaW5lciB7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXMtNCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gIGNvbG9yOiB2YXIoLS1jLWdyYXktNTAwKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbiAqIFRvYXN0IMKrYcOxYWRpZG8gYWwgY2Fycml0b8K7IChUb25lcmRlbHV4ZSkuIEF2aXNvIGZsb3RhbnRlIHkgZWbDrW1lcm8gcXVlIGNvbmZpcm1hIGVsIGFsdGEgZGVcbiAqIGxhIGzDrW5lYSBzaW4gc2FjYXIgYWwgY2xpZW50ZSBkZSBsYSBww6FnaW5hLiBMbyBwaW50YSBjYXJ0X3RvYXN0X2NvbnRyb2xsZXIuanMgYSBwYXJ0aXIgZGVsXG4gKiBldmVudG8gc3lsaXVzOmNhcnQ6aXRlbS1hZGRlZC4gQ29uc3RydWlkbyBzb2JyZSBsb3MgdG9rZW5zIGRlIG1hcmNhOyBhZGFwdGFibGUgYSBkYXJrIG1vZGUuXG4gKi9cblxuLyogQ2FwYSBmbG90YW50ZTogYWJham8tZGVyZWNoYSBlbiBlc2NyaXRvcmlvLCBiYXJyYSBpbmZlcmlvciBhIGFuY2hvIGNvbXBsZXRvIGVuIG3Ds3ZpbC5cbiAgIEVsIHZpZXdwb3J0IG5vIGludGVyY2VwdGEgY2xpY3M7IGNhZGEgdG9hc3Qgc8OtLiAqL1xuLnRuZC1jYXJ0LXRvYXN0LXZpZXdwb3J0IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IHZhcigtLXMtNCk7XG4gICAgYm90dG9tOiB2YXIoLS1zLTQpO1xuICAgIHotaW5kZXg6IHZhcigtLXotdG9hc3QpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgd2lkdGg6IG1pbigzODBweCwgY2FsYygxMDB2dyAtICgyICogdmFyKC0tcy00KSkpKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnRuZC1jYXJ0LXRvYXN0IHtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgcGFkZGluZzogdmFyKC0tcy0zKSB2YXIoLS1zLTQpO1xuICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tcy02KTsgLyogaHVlY28gcGFyYSBsYSBYICovXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctZTMpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuXG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCkgc2NhbGUoMC45OCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cblxuICAgICYuaXMtbGVhdmluZyB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpO1xuICAgIH1cbn1cblxuLyogRGlzY28gdmVyZGUgY29uIGVsIGNoZWNrOiBlbCBsZW5ndWFqZSB1bml2ZXJzYWwgZGUgwqtoZWNob8K7LiAqL1xuLnRuZC1jYXJ0LXRvYXN0X19jaGVjayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICAgIGJhY2tncm91bmQ6ICMxNmEzNGE7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDIyLCAxNjMsIDc0LCAwLjE0KTtcblxuICAgIHN2ZyB7IHdpZHRoOiAxLjFyZW07IGhlaWdodDogMS4xcmVtOyB9XG5cbiAgICAvKiBQZXF1ZcOxbyDCq3BvcMK7IGFsIGFwYXJlY2VyLCBlbiBzaW50b27DrWEgY29uIGxhIGVudHJhZGEgZGVsIHRvYXN0LiAqL1xuICAgIGFuaW1hdGlvbjogdG5kLWNoZWNrLXBvcCB2YXIoLS10cmFuc2l0aW9uLXNsb3cpIGJvdGg7XG59XG5cbi8qIFZhcmlhbnRlIGRlIGVycm9yIChubyBzZSBwdWRvIGHDsWFkaXIpOiBlbCBkaXNjbyBwYXNhIGEgcm9qbyBkZSBhbGVydGEuICovXG4udG5kLWNhcnQtdG9hc3QtLWVycm9yIC50bmQtY2FydC10b2FzdF9fY2hlY2sge1xuICAgIGJhY2tncm91bmQ6ICNkYzI2MjY7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMjIwLCAzOCwgMzgsIDAuMTQpO1xufVxuXG4udG5kLWNhcnQtdG9hc3RfX2JvZHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1zLTEpO1xufVxuXG4udG5kLWNhcnQtdG9hc3RfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tcy0yKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctYm9sZCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5LXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgtc251Zyk7XG59XG5cbi50bmQtY2FydC10b2FzdF9fYmFnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBjb2xvcjogdmFyKC0tYy1icmFuZC02MDApO1xuICAgIHN2ZyB7IHdpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07IH1cbn1cblxuLnRuZC1jYXJ0LXRvYXN0X19saW5lIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICAgIGNvbG9yOiB2YXIoLS1jLWdyYXktNjAwLCB2YXIoLS1jLXRleHQpKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgtc251Zyk7XG4gICAgLyogTm9tYnJlIGxhcmdvOiBtw6F4aW1vIGRvcyBsw61uZWFzIGNvbiBlbGlwc2lzLiAqL1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi50bmQtY2FydC10b2FzdF9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tcy0xKTtcbn1cblxuLnRuZC1jYXJ0LXRvYXN0X19jdGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zLTEpO1xuICAgIHBhZGRpbmc6IHZhcigtLXMtMSkgdmFyKC0tcy0zKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC02MDApO1xuICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7IGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNzAwKTsgY29sb3I6IHZhcigtLWMtd2hpdGUpOyB9XG5cbiAgICAmLWljbyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgICAgICAgc3ZnIHsgd2lkdGg6IDAuOXJlbTsgaGVpZ2h0OiAwLjlyZW07IH1cbiAgICB9XG4gICAgJjpob3ZlciAmLWljbyB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOyB9XG59XG5cbi50bmQtY2FydC10b2FzdF9fY29udGludWUge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IHZhcigtLXMtMSkgdmFyKC0tcy0yKTtcbiAgICBjb2xvcjogdmFyKC0tYy1saW5rKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMgeyBjb2xvcjogdmFyKC0tYy1saW5rLWhvdmVyKTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbn1cblxuLnRuZC1jYXJ0LXRvYXN0X19jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tcy0yKTtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiB2YXIoLS1zLTIpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy1ncmF5LTUwMCwgY3VycmVudENvbG9yKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG5cbiAgICBzdmcgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyB9XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHsgb3BhY2l0eTogMTsgYmFja2dyb3VuZDogdmFyKC0tYy1zdXJmYWNlLXN1bmspOyB9XG59XG5cbi8qIFwiRmx5IHRvIGNhcnRcIjogbGEgaW1hZ2VuIGRlbCBwcm9kdWN0byAobyB1bmEgYnVyYnVqYSkgcXVlIHZ1ZWxhIGhhc3RhIGVsIGNhcnJpdG8uIExhIGFuaW1hXG4gICBjYXJ0X3RvYXN0X2NvbnRyb2xsZXIuanMgY29uIGxhIFdlYiBBbmltYXRpb25zIEFQSTsgYXF1w60gc29sbyBkYW1vcyBzdSBhc3BlY3RvLiAqL1xuLnRuZC1mbHkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiBjYWxjKHZhcigtLXotdG9hc3QpICsgMSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWMtc3VyZmFjZSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWUzKSwgMCAwIDAgM3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbn1cblxuLnRuZC1mbHktLWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jLWJyYW5kLTYwMCk7XG4gICAgY29sb3I6IHZhcigtLWMtd2hpdGUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1lMyk7XG5cbiAgICBzdmcgeyB3aWR0aDogNTglOyBoZWlnaHQ6IDU4JTsgfVxufVxuXG4vKiBMYXRpZG8gZGVsIGNvbnRhZG9yIGRlbCBjYXJyaXRvIGVuIGVsIGhlYWRlciBjdWFuZG8gc2UgYcOxYWRlIGFsZ28uICovXG4udG5kLWNhcnQtYnVtcCB7XG4gICAgYW5pbWF0aW9uOiB0bmQtY2FydC1idW1wIDQ1MG1zIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgdG5kLWNhcnQtYnVtcCB7XG4gICAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAzMCUgIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjM1KTsgfVxuICAgIDYwJSAgeyB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpOyB9XG4gICAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbn1cblxuQGtleWZyYW1lcyB0bmQtY2hlY2stcG9wIHtcbiAgICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjQpOyBvcGFjaXR5OiAwOyB9XG4gICAgNjAlICB7IHRyYW5zZm9ybTogc2NhbGUoMS4xMik7IG9wYWNpdHk6IDE7IH1cbiAgICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxufVxuXG4vKiBNw7N2aWw6IGJhcnJhIGluZmVyaW9yIGEgYW5jaG8gY29tcGxldG8sIGbDoWNpbCBkZSBsZWVyIHkgZGUgdG9jYXIuICovXG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgICAudG5kLWNhcnQtdG9hc3Qtdmlld3BvcnQge1xuICAgICAgICByaWdodDogdmFyKC0tcy0zKTtcbiAgICAgICAgbGVmdDogdmFyKC0tcy0zKTtcbiAgICAgICAgYm90dG9tOiB2YXIoLS1zLTMpO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLnRuZC1jYXJ0LXRvYXN0IHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnRuZC1jYXJ0LXRvYXN0X19jaGVjayB7IGFuaW1hdGlvbjogbm9uZTsgfVxuICAgIC50bmQtY2FydC1idW1wIHsgYW5pbWF0aW9uOiBub25lOyB9XG59XG4iLCIvKlxuICogQ29uc2VudGltaWVudG8gZGUgY29va2llcyAoUkdQRC9BRVBEKS4gVXNhIGxvcyB0b2tlbnMgZGUgX3Rva2Vucy5zY3NzICh0aGVtZS1hd2FyZSkuXG4gKlxuICogIMK3IFByaW1lcmEgY2FwYSAoZ2F0ZSk6IG1vZGFsIGNlbnRyYWRvIHNvYnJlIGZvbmRvIG9zY3VyZWNpZG8gcXVlIGJsb3F1ZWEgaGFzdGEgZGVjaWRpci5cbiAqICDCtyBTZWd1bmRhIGNhcGEgKHBhbmVsKTogbW9kYWwgY29uIGNvbnNlbnRpbWllbnRvIGdyYW51bGFyIHBvciBjYXRlZ29yw61hcy5cbiAqXG4gKiBBY2VwdGFyIHkgUmVjaGF6YXIgY29tcGFydGVuIHRhbWHDsW8sIHBvc2ljacOzbiB5IHBlc28gKGlndWFsZGFkIGV4aWdpZGEgcG9yIEFFUEQvQ0VQRCk6XG4gKiBSZWNoYXphciBlcyB1biBzw7NsaWRvIG5ldXRybyB5IEFjZXB0YXIgbGxldmEgZWwgY29sb3IgZGUgbWFyY2EgY29tbyBhY2Npw7NuIHByaW1hcmlhLlxuICovXG4udGQtY29uc2VudCB7XG4gICZfX292ZXJsYXlbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIC0tLSBPdmVybGF5IGNvbXBhcnRpZG8gKGdhdGUgeSBwYW5lbCk6IGNlbnRyYSBlbCBtb2RhbCB5IG9zY3VyZWNlIGVsIGZvbmRvIC0tLSAqL1xuICAmX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogY2FsYyh2YXIoLS16LXRvYXN0LCAxMDkwKSArIDUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTEsIDExLCAxNSwgMC41NSk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoM3B4KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoM3B4KTtcbiAgICBhbmltYXRpb246IHRkLWNvbnNlbnQtZmFkZSB2YXIoLS10cmFuc2l0aW9uLWZhc3QsIDE1MG1zKSBlYXNlIGJvdGg7XG4gIH1cblxuICAvKiBFbCBnYXRlIChwcmltZXJhIGNhcGEpIHZhIGp1c3RvIHBvciBkZWJham8gZGVsIHBhbmVsIHkgY29uIGZvbmRvIGFsZ28gbcOhcyBkZW5zby4gKi9cbiAgJl9fb3ZlcmxheS0tZ2F0ZSB7XG4gICAgei1pbmRleDogY2FsYyh2YXIoLS16LXRvYXN0LCAxMDkwKSArIDQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTEsIDExLCAxNSwgMC42Mik7XG4gIH1cblxuICAvKiAtLS0gVGFyamV0YSBtb2RhbCAtLS0gKi9cbiAgJl9fbW9kYWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNTYwcHg7XG4gICAgbWF4LWhlaWdodDogOTB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtc3VyZmFjZSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWU0KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTYpO1xuICAgIGFuaW1hdGlvbjogdGQtY29uc2VudC1wb3AgdmFyKC0tdHJhbnNpdGlvbi1mYXN0LCAxNTBtcykgZWFzZSBib3RoO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX21vZGFsLS1nYXRlIHtcbiAgICBtYXgtd2lkdGg6IDQ2MHB4O1xuICAgIHBhZGRpbmc6IHZhcigtLXMtOCkgdmFyKC0tcy02KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvKiAtLS0gRGlzdGludGl2byAoYmFkZ2UpIGRlbCBnYXRlIC0tLSAqL1xuICAmX19iYWRnZSB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIHZhcigtLXMtNCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC01MCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jLWJyYW5kLTUwMCkgMTIlLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtaDMpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1ib2xkKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGgtdGlnaHQpO1xuICB9XG5cbiAgJl9fbGVhZCB7XG4gICAgbWFyZ2luOiB2YXIoLS1zLTMpIDAgMDtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHkpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saC1ub3JtYWwpO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQpO1xuICB9XG5cbiAgJl9fbGluayB7XG4gICAgY29sb3I6IHZhcigtLWMtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLWxpbmstaG92ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tLSBCb3RvbmVzIChnYXRlIHkgcGFuZWwpIC0tLSAqL1xuICAmX19nYXRlLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogdmFyKC0tcy0zKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zLTYpO1xuICB9XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiB2YXIoLS1zLTIpO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fYnRuIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTMpIHZhcigtLXMtNik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1ib2R5KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgIC8qIEVuIGVsIGdhdGUgYW1ib3Mgb2N1cGFuIGVsIG1pc21vIGFuY2hvOiBpZ3VhbGRhZCBkZSBwcm9taW5lbmNpYS4gKi9cbiAgICAudGQtY29uc2VudF9fZ2F0ZS1hY3Rpb25zICYge1xuICAgICAgZmxleDogMSAxIDE1MHB4O1xuICAgIH1cblxuICAgICYtLW5ldXRyYWwge1xuICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtdGV4dCkgMTAlLCB0cmFuc3BhcmVudCk7XG4gICAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWMtdGV4dCkgMjQlLCB0cmFuc3BhcmVudCk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYy10ZXh0KSAxNiUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNjAwKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYy1icmFuZC02MDApO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYy1icmFuZC03MDApO1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWMtYnJhbmQtNzAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtZm9jdXMpO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICB9XG4gIH1cblxuICAvKiAtLS0gUGllIGRlbCBnYXRlOiBDb25maWd1cmFyICsgUG9sw610aWNhIGRlIGNvb2tpZXMgLS0tICovXG4gICZfX2dhdGUtZm9vdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLXMtMik7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tcy00KTtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICB9XG5cbiAgJl9fc2VwIHtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgfVxuXG4gICZfX2xpbmtidG4ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGNvbG9yOiB2YXIoLS1jLWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy1saW5rLWhvdmVyKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtZm9jdXMpO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICB9XG4gIH1cblxuICAmX19yZWFzc3VyZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1zLTQpIDAgMDtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICB9XG5cbiAgLyogLS0tIFBhbmVsOiBjYWJlY2VyYSAtLS0gKi9cbiAgJl9fbW9kYWwtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiB2YXIoLS1zLTQpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXMtMik7XG4gIH1cblxuICAmX19jbG9zZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tYy10ZXh0LW11dGVkKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTEpO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogdmFyKC0tYy10ZXh0KTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWMtZm9jdXMpO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB9XG4gIH1cblxuICAmX19pbnRybyB7XG4gICAgbWFyZ2luOiAwIDAgdmFyKC0tcy00KTtcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWJvZHktc20pO1xuICAgIGNvbG9yOiB2YXIoLS1jLXRleHQtbXV0ZWQpO1xuICB9XG5cbiAgJl9fY2F0IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1zLTMpIDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWMtYm9yZGVyKTtcbiAgfVxuXG4gICZfX2NhdC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zLTMpO1xuICB9XG5cbiAgJl9fY2F0LXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZnctc2VtaWJvbGQpO1xuICB9XG5cbiAgJl9fYWx3YXlzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBmb250LXNpemU6IHZhcigtLWZzLWNhcHRpb24pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mdy1zZW1pYm9sZCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYy1zYXZlKTtcbiAgfVxuXG4gICZfX2NhdC1kZXNjIHtcbiAgICBtYXJnaW46IHZhcigtLXMtMikgMCAwO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtYm9keS1zbSk7XG4gICAgY29sb3I6IHZhcigtLWMtdGV4dC1tdXRlZCk7XG4gIH1cblxuICAmX19tb2RhbC1mb290IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLXMtMyk7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tcy00KTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tcy00KTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYy1ib3JkZXIpO1xuICB9XG5cbiAgLyogLS0tIFN3aXRjaCAodG9nZ2xlKSAtLS0gKi9cbiAgJl9fc3dpdGNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQycHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGlucHV0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAmX19zbGlkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLWdyYXktMzAwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDNweDtcbiAgICAgIHRvcDogM3B4O1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jLXdoaXRlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gICAgfVxuICB9XG5cbiAgJl9fc3dpdGNoIGlucHV0OmNoZWNrZWQgKyAmX19zbGlkZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWMtYnJhbmQtNjAwKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMThweCk7XG4gICAgfVxuICB9XG5cbiAgJl9fc3dpdGNoIGlucHV0OmZvY3VzLXZpc2libGUgKyAmX19zbGlkZXIge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jLWZvY3VzKTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICB9XG59XG5cbi8qIEJsb3F1ZW8gZGVsIHNjcm9sbCBkZWwgZm9uZG8gbWllbnRyYXMgZWwgbW9kYWwgZXN0w6EgYWJpZXJ0by4gKi9cbi50ZC1jb25zZW50LWxvY2sge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5Aa2V5ZnJhbWVzIHRkLWNvbnNlbnQtZmFkZSB7XG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHRkLWNvbnNlbnQtcG9wIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTgpOyB9XG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC50ZC1jb25zZW50X19vdmVybGF5LFxuICAudGQtY29uc2VudF9fbW9kYWwge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/