/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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.6.2)
 * 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;
  overflow: auto;
}
.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: hsl(0, 0%, 130%);
  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: 0px 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: 0px 4px 0px -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: hsl(0, 0%, -6.1764705882%);
}

.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: 5px;
}
.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]!./vendor/symfony/ux-live-component/assets/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/@fontsource/archivo-black/latin-400.css ***!
  \*********************************************************************************************************************************************/
/* archivo-black-latin-400-normal */
@font-face {
  font-family: 'Archivo Black';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/build/app/shop/fonts/archivo-black-latin-400-normal.fc847a1f.woff2) format('woff2'), url(/build/app/shop/fonts/archivo-black-latin-400-normal.58a301a6.woff) format('woff');
}
/*!*********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/@fontsource/ibm-plex-mono/latin-400.css ***!
  \*********************************************************************************************************************************************/
/* ibm-plex-mono-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/build/app/shop/fonts/ibm-plex-mono-latin-400-normal.2b13cc93.woff2) format('woff2'), url(/build/app/shop/fonts/ibm-plex-mono-latin-400-normal.12ede62e.woff) format('woff');
}
/*!*********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/@fontsource/ibm-plex-mono/latin-500.css ***!
  \*********************************************************************************************************************************************/
/* ibm-plex-mono-latin-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/build/app/shop/fonts/ibm-plex-mono-latin-500-normal.a1fc5384.woff2) format('woff2'), url(/build/app/shop/fonts/ibm-plex-mono-latin-500-normal.89a2903a.woff) format('woff');
}
/*!*********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/@fontsource/ibm-plex-sans/latin-400.css ***!
  \*********************************************************************************************************************************************/
/* ibm-plex-sans-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/build/app/shop/fonts/ibm-plex-sans-latin-400-normal.3160b5c6.woff2) format('woff2'), url(/build/app/shop/fonts/ibm-plex-sans-latin-400-normal.65b2eda7.woff) format('woff');
}
/*!*********************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/@fontsource/ibm-plex-sans/latin-500.css ***!
  \*********************************************************************************************************************************************/
/* ibm-plex-sans-latin-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/build/app/shop/fonts/ibm-plex-sans-latin-500-normal.fcd7b8c3.woff2) format('woff2'), url(/build/app/shop/fonts/ibm-plex-sans-latin-500-normal.4b130dfc.woff) format('woff');
}
/*!******************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/shop/redbutton.css ***!
  \******************************************************************************************************************/
/* ==========================================================================
   RED BUTTON — landing (cartoon cut)
   --------------------------------------------------------------------------
   Same product, same deadpan copy, different universe. The joke was always
   cosmic-stakes-into-banal-payoff — you brace for the end of the world and it
   mutes your microphone — which is the engine of the show this is now drawn
   like. So the words didn't need to change. Only the drawing did.

   Cartoon means specific things here, not "rounder": every shape is outlined in
   ink, the ink is never pure black, fills are FLAT with no gradients anywhere,
   and depth comes from a hard offset shadow with zero blur — the way cel art
   fakes it. That technique is general animation craft and belongs to nobody.

   What does NOT belong to us is another show's trade dress, so there is no
   swirling green portal here and no portal-green in the palette. The signature
   is the device's own: the guard is striped hazard yellow, so the burst behind
   the dome is that stripe pattern thrown outward. Every colour below comes off
   the product — red dome, yellow guard, steel housing, ink, bone.

   Two signals, and they still mean different things:
     RED    is the device — the dome, the button that commits.
     YELLOW is the warning — the guard, the tape, the burst.

   The photograph WAS the hero. It already contains the whole idea: a dark room,
   one hard lamp, a machined puck, a hazard guard thrown open, and a red dome
   pooling light on the desk. The page's only job is to stay out of its way and
   set type in the shadow the photo left empty on the left.

   An earlier pass tried to be maximal by piling on tape, halftone and comic
   panels, and buried the product. The rule now: the device is the loudest thing
   on the page, everything else is quiet enough for it to be heard.

   Two signals, kept strictly apart:
     RED    is the device — the dome, the lamp, the button that commits.
     YELLOW is the cordon — tape, guard edge, the area you shouldn't be in.
   ========================================================================== */

:root {
  --void: #2f3238;      /* the wall the device sits against */
  --panel: #262a2f;     /* the corner it falls into */
  --legend: #f2ece0;    /* bone: paper, type, the lit face of things */
  --signal: #e8302a;    /* the dome — the product */
  --hazard: #f2c511;    /* the guard's stripes, and everything warning you */
  --steel: #98a4ac;     /* the housing */

  --legend-dim: #9aa3ab;
  --ink: #14181b;       /* outlines. never pure black */

  /* A drawn line never repeats itself: four radii per corner. */
  --wobble: 255px 15px 225px 15px / 15px 225px 15px 255px;
  --wobble-2: 15px 225px 15px 255px / 225px 15px 255px 15px;

  --display: 'Archivo Black', 'Arial Black', sans-serif;
  --data: 'IBM Plex Mono', ui-monospace, monospace;
  --body: 'IBM Plex Sans', system-ui, sans-serif;

  --shell: 1180px;
  --gap: clamp(1.25rem, 4vw, 3rem);
}

/* --------------------------------------------------------------- foundation */

body {
  background: var(--void);
  color: var(--legend);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

::selection { background: var(--signal); color: #fff; }
:focus-visible { outline: 2px solid var(--hazard); outline-offset: 3px; }

body[data-route='sylius_shop_homepage'] > div > *:not(.rb-room) { display: none; }

.rb-shell {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 var(--gap);
}

.rb-legend {
  font-family: var(--data);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--hazard);
}

@media (max-width: 680px) {
  .rb-legend--hide-sm { display: none; }
}

.rb-display {
  font-family: var(--display);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 0.94;
  text-transform: uppercase;
  color: var(--legend);
  margin: 0;
  -webkit-text-stroke: 6px var(--ink);
  paint-order: stroke fill;
  text-shadow: 7px 7px 0 var(--ink);
}

.rb-room { position: relative; overflow: hidden; }

/* --------------------------------------------------------------- statusbar */

.rb-statusbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: var(--shell);
  margin: 0 auto;
  padding: 1.25rem var(--gap);
}

.rb-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  text-decoration: none;
  background: var(--ink);
  padding: 0.35rem 0.7rem 0.35rem 0.5rem;
  border-radius: 8px;
}
.rb-brand__mark { display: block; filter: drop-shadow(0 0 7px rgba(224, 29, 16, 0.5)); }

.rb-brand__word {
  font-family: var(--data);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #eef1f2;
}

.rb-brand__word span { color: var(--signal); }

.rb-statusbar__state {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--ink);
  padding: 0.35rem 0.6rem;
  border-radius: 8px;
}

.rb-lamp {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--hazard);
  box-shadow: 0 0 8px var(--hazard);
  animation: rb-flicker 4s steps(1) infinite;
}

@keyframes rb-flicker {
  0%, 92%, 100% { opacity: 1; }
  94%, 98% { opacity: 0.3; }
}

.rb-locales { display: flex; gap: 0.25rem; }

.rb-locales__item {
  font-family: var(--data);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-decoration: none;
  color: var(--legend-dim);
  padding: 0.2rem 0.45rem;
  border: 1px solid transparent;
  border-radius: 2px;
  transition: color 140ms ease, border-color 140ms ease;
}

.rb-locales__item:hover { color: var(--hazard); border-color: #333b3f; }
.rb-locales__item.is-current { color: var(--ink); background: var(--hazard); border-color: var(--hazard); }

/* ================================================================== HERO ==
   Full-bleed photograph. The device already sits in the right third of the
   frame with two thirds of shadow beside it, so the type goes in the shadow
   rather than on top of anything. */

.rb-hero {
  position: relative;
  min-height: min(94vh, 900px);
  display: flex;
  align-items: center;
  isolation: isolate;
}

.rb-hero__plate {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url(/build/app/shop/images/hero-cartoon.5d910c84.webp);
  background-size: cover;
  /* Hold the device in frame as the viewport narrows — its left edge is what
     must never be cropped, or the red dome walks off the page. */
  background-position: 72% 50%;
  background-repeat: no-repeat;
  animation: rb-hero-in 1.6s cubic-bezier(0.2, 0.8, 0.25, 1) both;
}

@keyframes rb-hero-in {
  from { opacity: 0; transform: scale(1.06); }
  to { opacity: 1; transform: none; }
}

/* Two scrims: one to seat the type, one to blend the photo's edges into the
   page so it reads as a room rather than a rectangle. */
.rb-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, var(--void) 0%, var(--void) 26%, rgba(45, 90, 94, 0.86) 42%, rgba(45, 90, 94, 0) 66%),
    linear-gradient(0deg, var(--void) 0%, transparent 18%);
}

.rb-hero__copy {
  position: relative;
  max-width: var(--shell);
  margin: 0 auto;
  padding: 6rem var(--gap) 3rem;
  width: 100%;
}

.rb-hero__eyebrow {
  display: inline-block;
  margin-bottom: 1.5rem;
  background: var(--ink);
  color: var(--hazard);
  padding: 0.3rem 0.7rem;
  border-radius: 6px;
  transform: rotate(-1.2deg);
}

.rb-hero__title {
  font-size: clamp(3rem, 8vw, 6rem);
  max-width: 12ch;
  animation: rb-copy-in 900ms cubic-bezier(0.2, 0.8, 0.3, 1) 300ms both;
}

@keyframes rb-copy-in {
  from { opacity: 0; transform: translateY(16px); }
}

/* The word the page turns on. It glitches because the console is not entirely
   well — rarely, so it reads as a fault and not as decoration. */
.rb-glitch {
  position: relative;
  font-style: normal;
  color: var(--signal);
  display: inline-block;
}

.rb-glitch::before,
.rb-glitch::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
}

.rb-glitch::before { color: var(--hazard); }
.rb-glitch::after { color: #4fd0e0; }

.rb-glitch[data-glitching='true'] { animation: rb-wobble 380ms ease-in-out 1; }

@keyframes rb-wobble {
  0%, 100% { transform: none; }
  25% { transform: rotate(-1.6deg) scale(1.03); }
  60% { transform: rotate(1.2deg) scale(0.99); }
}

@keyframes rb-glitch-a {
  0%, 100% { opacity: 0; transform: none; clip-path: inset(0 0 100% 0); }
  20% { opacity: 0.8; transform: translate(-3px, -2px); clip-path: inset(0 0 62% 0); }
  55% { opacity: 0.6; transform: translate(4px, 1px); clip-path: inset(48% 0 24% 0); }
}

@keyframes rb-glitch-b {
  0%, 100% { opacity: 0; transform: none; clip-path: inset(100% 0 0 0); }
  35% { opacity: 0.55; transform: translate(3px, 2px); clip-path: inset(70% 0 0 0); }
  70% { opacity: 0.45; transform: translate(-4px, -1px); clip-path: inset(20% 0 55% 0); }
}

.rb-hero__sub {
  margin: 1.75rem 0 0;
  max-width: 40ch;
  font-size: 1.0625rem;
  line-height: 1.6;
  color: #99a2a7;
  animation: rb-copy-in 900ms cubic-bezier(0.2, 0.8, 0.3, 1) 420ms both;
}

.rb-hero__sub strong { color: #dfe4e6; font-weight: 500; }

/* ------------------------------------------------------------------ price */

.rb-authorize {
  display: inline-flex;
  align-items: baseline;
  gap: 1rem;
  margin-top: 2.25rem;
  padding: 1.0625rem 1.875rem;
  background: var(--signal);
  color: #fff;
  border: 4px solid var(--ink);
  border-radius: 14px;
  font-family: var(--display);
  font-size: 1.125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  position: relative;
  box-shadow: 7px 7px 0 var(--ink);
  transition: transform 90ms ease, box-shadow 90ms ease;
  animation: rb-copy-in 900ms cubic-bezier(0.2, 0.8, 0.3, 1) 540ms both;
}

/* No gloss sweep here: moulded-plastic shine is a photographic trick, and this
   universe is painted. The button's depth is its ink outline and hard shadow. */

.rb-authorize:hover { color: #fff; transform: translate(2px, 2px); box-shadow: 5px 5px 0 var(--ink); }
.rb-authorize:active { transform: translate(7px, 7px); box-shadow: 0 0 0 var(--ink); }

.rb-authorize__price {
  font-family: var(--data);
  font-weight: 400;
  font-size: 0.875rem;
  letter-spacing: 0.06em;
  position: relative;
  z-index: 1;
}

.rb-authorize__was { text-decoration: line-through; opacity: 0.6; margin-right: 0.35rem; }

/* ============================================================ CORDON TAPE ==
   One strip, where the page stops selling and starts demonstrating. Hazard
   hatching lives in the edges only so the words stay legible on the yellow —
   an earlier version ran text over the stripes and read as a rendering fault. */

.rb-tape {
  position: relative;
  z-index: 2;
  width: 108vw;
  margin-left: -4vw;
  transform: rotate(-1deg);
  background: var(--hazard);
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-image: repeating-linear-gradient(
      -45deg, var(--ink) 0 10px, var(--hazard) 10px 20px
    ) 7;
  box-shadow: 0 10px 30px -8px rgba(0, 0, 0, 0.9);
  overflow: hidden;
}

.rb-tape__words {
  display: flex;
  gap: 2.25rem;
  width: max-content;
  padding: 0.4rem 0;
  animation: rb-crawl 30s linear infinite;
}

.rb-tape__words span {
  font-family: var(--data);
  font-weight: 500;
  font-size: 0.6875rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ink);
  white-space: nowrap;
}

@keyframes rb-crawl {
  to { transform: translateX(-33.33%); }
}

/* ============================================================== GESTURES ==
   What replaced the live-unit mock. The hero already has a drawn button; a CSS
   replica of it below could only ever look worse — two versions of one object,
   and the illustrated one wins. This is the thing that actually makes a single
   button useful, and it was a row in a spec table.

   Each trace is the literal shape of that press: a dot is a tap, a bar is a
   hold, an open dot is the let-go. The diagram IS the explanation, so nothing
   here has to be animated to earn its place. */

.rb-gestures {
  position: relative;
  padding: clamp(3rem, 7vw, 5rem) 0 clamp(2rem, 4vw, 3rem);
  background: var(--panel);
}

.rb-gestures__head { max-width: 46ch; margin-bottom: clamp(2rem, 4vw, 3rem); }
.rb-gestures__title { font-size: clamp(1.75rem, 3.6vw, 2.75rem); margin: 0.75rem 0 1rem; }
.rb-gestures__body { margin: 0; color: #c3cad2; line-height: 1.7; }

.rb-gestures__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

@media (max-width: 900px) { .rb-gestures__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .rb-gestures__grid { grid-template-columns: 1fr; } }

.rb-gesture {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  background: var(--void);
  border: 4px solid var(--ink);
  border-radius: var(--wobble);
  box-shadow: 8px 8px 0 var(--ink);
  padding: 1.5rem 1.25rem 1.25rem;
}

.rb-gesture:nth-child(even) { border-radius: var(--wobble-2); }

/* The trace: a baseline the marks sit on, like a logic diagram. */
.rb-trace {
  position: relative;
  display: block;
  height: 34px;
  margin-bottom: 0.75rem;
}

.rb-trace::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 6px;
  height: 3px;
  background: rgba(242, 197, 17, 0.28);
}

.rb-trace__mark {
  position: absolute;
  bottom: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--signal);
  border: 3px solid var(--ink);
}

/* One dot: a tap. */
.rb-gesture--press .rb-trace__mark { left: 0; }

/* Two dots, close together: that closeness is the whole gesture. */
.rb-gesture--double .rb-trace__mark:first-child { left: 0; }
.rb-gesture--double .rb-trace__mark:last-child { left: 26px; }

/* A bar: the contact stays closed. It is wide because the press is long. */
.rb-gesture--hold .rb-trace__mark {
  left: 0;
  width: 76px;
  border-radius: 10px;
}

/* An open dot at the end of a bar: the moment you let go. */
.rb-gesture--release .rb-trace__mark {
  left: 0;
  width: 76px;
  border-radius: 10px;
  background: transparent;
  border-style: dashed;
}

.rb-gesture--release .rb-trace::after {
  content: '';
  position: absolute;
  left: 68px;
  bottom: 6px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--hazard);
  border: 3px solid var(--ink);
}

.rb-gesture__name {
  font-family: var(--display);
  font-size: 1.125rem;
  text-transform: uppercase;
  color: var(--legend);
  -webkit-text-stroke: 3px var(--ink);
  paint-order: stroke fill;
}

.rb-gesture__when {
  font-family: var(--data);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hazard);
}

.rb-gesture__does {
  font-family: var(--body);
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #c3cad2;
  margin-top: 0.25rem;
}

/* -------------------------------------------------------------- precedent */
/* The one panel that isn't about the product. The drawing already reserves its
   left two thirds as flat shadow, so the type sits in the frame rather than on
   top of it — no scrim needed, and none added: a gradient here would only mud
   the flat cel fill the whole page is built on. The figure is nobody on
   purpose. Name him and half the room stops laughing. */

.rb-precedent {
  position: relative;
  margin-top: clamp(3rem, 7vw, 5rem);
  min-height: min(70vh, 620px);
  display: flex;
  align-items: center;
  isolation: isolate;
  border-top: 4px solid var(--ink);
  border-bottom: 4px solid var(--ink);
  overflow: hidden;
}

.rb-precedent__plate {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url(/build/app/shop/images/precedent.d9d8ebd4.webp);
  background-size: cover;
  /* The console and the hand are the right edge of the drawing; crop from the
     left, where there is only shadow to lose. */
  background-position: 100% 50%;
  background-repeat: no-repeat;
}

.rb-precedent__copy {
  max-width: var(--shell);
  margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 4rem) var(--gap);
  width: 100%;
}

.rb-precedent__inner { max-width: 30rem; }

/* .rb-display inks every headline at a flat 6px/7px, which was tuned against the
   hero at its 6rem ceiling — about 6% of the cap height. This title clamps down to
   2.25rem on a phone, where that same 7px is a quarter of the letter and the two
   lines close into a smudge. Tie the ink to the font instead: 0.062em resolves to
   ~6px at the hero's size, so the weight matches by ratio at every width. Scoped
   here rather than raised to .rb-display — the panels' heavy outline at small type
   is the cartoon look, not an accident. */
.rb-precedent__title {
  font-size: clamp(2.25rem, 5vw, 3.5rem);
  margin: 0.75rem 0 1rem;
  -webkit-text-stroke-width: 0.062em;
  text-shadow: 0.072em 0.072em 0 var(--ink);
}

.rb-precedent__body {
  font-family: var(--body);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: #cfd6dd;
  max-width: 27rem;
}

/* Deadpan, small, and set like a plate caption in a manual — it's the footnote
   that admits the drawing is a drawing. */
.rb-precedent__caption {
  display: inline-block;
  margin-top: 1.5rem;
  font-family: var(--data);
  font-size: 0.625rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
  background: var(--hazard);
  padding: 0.3rem 0.6rem;
  border: 3px solid var(--ink);
  transform: rotate(-1.2deg);
}

@media (max-width: 720px) {
  /* Under ~720px the copy would sit on the figure. Drop the drawing to its own
     band above the words instead of fighting for the same rectangle. */
  .rb-precedent {
    display: block;
    min-height: 0;
  }

  /* The drawing's left half is empty shadow on purpose — it's where the desktop
     type sits. Stacked, that space holds nothing, so give the band a portrait-ish
     ratio: `cover` then crops width rather than height, and with the position
     pinned right the console fills the frame at any phone width. */
  .rb-precedent__plate {
    position: relative;
    inset: auto;
    z-index: 0;
    aspect-ratio: 1.2;
    border-bottom: 4px solid var(--ink);
  }

  .rb-precedent__body { max-width: none; }
}

/* ---------------------------------------------------------------- modules */

.rb-modules {
  padding-top: clamp(3rem, 7vw, 5rem);
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 820px) { .rb-modules { grid-template-columns: 1fr; } }

.rb-module {
  position: relative;
  background: var(--panel);
  padding: clamp(1.5rem, 3.5vw, 2.25rem);
  border: 4px solid var(--ink);
  border-radius: var(--wobble);
  box-shadow: 8px 8px 0 var(--ink);
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 520ms ease, transform 520ms cubic-bezier(0.2, 0.8, 0.3, 1);
}

.rb-module:nth-child(even) { border-radius: var(--wobble-2); }
.rb-module[data-seen='true'] { opacity: 1; transform: none; }
.rb-module--wide { grid-column: 1 / -1; }

.rb-module h2 {
  font-family: var(--display);
  font-size: 1.5rem;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--legend);
  margin: 0.75rem 0 1rem;
  -webkit-text-stroke: 4px var(--ink);
  paint-order: stroke fill;
}

.rb-module p { margin: 0; color: #8d969b; line-height: 1.7; font-size: 0.9375rem; max-width: 58ch; }
.rb-module__note { margin-top: 1.25rem !important; }

.rb-effects { list-style: none; margin: 1.25rem 0 0; padding: 0; }

.rb-effects li {
  display: flex;
  align-items: baseline;
  gap: 0.875rem;
  padding: 0.6875rem 0;
  border-bottom: 2px dashed rgba(242, 197, 17, 0.24);
  font-family: var(--data);
  font-size: 0.8125rem;
  color: var(--legend);
}

.rb-effects li:last-child { border-bottom: 0; }
.rb-effects li::before { content: '▸'; color: var(--signal); font-size: 0.6875rem; }

.rb-effects li em {
  font-style: normal;
  margin-left: auto;
  color: var(--legend-dim);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.rb-spec { width: 100%; border-collapse: collapse; margin-top: 1.25rem; font-family: var(--data); font-size: 0.8125rem; }
.rb-spec th, .rb-spec td { text-align: left; padding: 0.625rem 0; border-bottom: 2px dashed rgba(242, 197, 17, 0.24); }

.rb-spec th {
  font-weight: 400;
  color: var(--legend-dim);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.6875rem;
  width: 45%;
}

.rb-spec td { color: var(--legend); }
.rb-spec tr:last-child th, .rb-spec tr:last-child td { border-bottom: 0; }

.rb-procedure {
  background: var(--ink);
  border: 4px solid var(--ink);
  border-radius: 10px;
  padding: 1.125rem 1.25rem;
  margin-top: 1.25rem;
  font-family: var(--data);
  font-size: 0.75rem;
  line-height: 1.9;
  overflow-x: auto;
}

.rb-procedure { color: var(--hazard); }
.rb-procedure .c-prompt { color: var(--hazard); }
.rb-procedure .c-key { color: #ff8a7e; }
.rb-procedure .c-str { color: #cbb46a; }
.rb-procedure .c-dim { color: #6f767c; }

/* ----------------------------------------------------------------- footer */

.rb-footer {
  padding: 3rem 0 4rem;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.rb-footer a { color: var(--legend-dim); text-decoration: none; }
.rb-footer a { color: var(--hazard); }
.rb-footer a:hover { color: var(--legend); }

/* -------------------------------------------------------- reduced motion */

@media (prefers-reduced-motion: reduce) {
  .rb-lamp,
  .rb-hero__plate,
  .rb-hero__title,
  .rb-hero__sub,
  .rb-authorize,
  .rb-tape__words {
    animation: none !important;
  }

  .rb-authorize { transition: none; }
  .rb-module { opacity: 1; transform: none; transition: none; }
}

/*!*************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/shop/shop.css ***!
  \*************************************************************************************************************/
/* ==========================================================================
   The rest of the shop — product, cart, checkout, account.
   --------------------------------------------------------------------------
   The landing is the device's face; these pages are the paperwork that comes
   with it. Same room, same panel, same typefaces, but calmer: nobody wants a
   glitching headline while typing their card number. Boldness stays spent on
   the landing. Here the job is only to not break the spell.

   Sylius ships Bootstrap 5 markup, so this overrides Bootstrap's own classes
   rather than introducing new ones.
   ========================================================================== */

body:not([data-route='sylius_shop_homepage']) {
  background:
    radial-gradient(120% 60% at 50% 0%, #16191b 0%, transparent 55%),
    var(--void);
}

/* ------------------------------------------------------------------ chrome */

body:not([data-route='sylius_shop_homepage']) .navbar,
body:not([data-route='sylius_shop_homepage']) header .bg-black,
body:not([data-route='sylius_shop_homepage']) header .container {
  background: transparent !important;
}

/* Scoped away from the homepage: the landing's status bar is a <header> too, and this
   gradient painted a slab across the hero photograph. */
body:not([data-route='sylius_shop_homepage']) header {
  border-bottom: 1px solid #1e2325;
  background: linear-gradient(180deg, #1a1e20, #131617);
}

/* Our mark, swapped in via the logo hookable (see templates/shop/logo.html.twig). */
.rb-shoplogo {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  text-decoration: none;
}

.rb-shoplogo img { filter: drop-shadow(0 0 6px rgba(222, 27, 15, 0.45)); flex: none; }

/* Sylius pins the logo anchor to 10rem for its wordmark SVG; ours needs room to breathe. */
header a[aria-label='sylius logo'] { width: auto !important; }

.rb-shoplogo__word {
  font-family: var(--data);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #eef1f2;
}

.rb-shoplogo__word span { color: var(--signal); }
.rb-shoplogo:hover .rb-shoplogo__word { color: var(--hazard); }

body:not([data-route='sylius_shop_homepage']) footer {
  border-top: 1px solid #1e2325;
  background: #101314;
  color: var(--legend-dim);
}

/* -------------------------------------------------------------- typography */

h1, h2, h3, h4, h5,
.h1, .h2, .h3, .h4, .h5 {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #eef1f2;
}

a { color: var(--legend); }
a:hover { color: var(--hazard); }

.text-body, .text-dark, .text-black { color: var(--legend) !important; }
.text-muted, .text-secondary { color: var(--legend-dim) !important; }

/* ------------------------------------------------------------------ panels */

.card,
.list-group-item,
.accordion-item,
.offcanvas,
.modal-content,
.dropdown-menu {
  background: linear-gradient(180deg, #212629 0%, #1b1f21 100%);
  border: 1px solid #2b3134;
  border-radius: 3px;
  color: var(--legend);
}

.card-header, .card-footer {
  background: #1a1e20;
  border-color: #2b3134;
  color: var(--legend);
}

/* Everything that isn't the console is quieter: hairline, not inked. The comic
   panels belong to the landing. */
.bg-body, .bg-white, .bg-light, .bg-body-tertiary, .bg-body-secondary {
  background: #1b1f21 !important;
  color: var(--legend) !important;
}

hr, .border, .border-top, .border-bottom, .border-start, .border-end {
  border-color: #2b3134 !important;
}

/* ----------------------------------------------------------------- buttons */

.btn {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 2px;
  transition: transform 120ms ease, box-shadow 160ms ease, background 160ms ease;
}

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

/* Red is the device: the button that commits is the only red one on the page. */
.btn-primary {
  background: var(--signal);
  border-color: #ff5545;
  color: #fff;
  box-shadow: 0 8px 20px -8px rgba(222, 27, 15, 0.7);
}

.btn-primary:hover,
.btn-primary:focus {
  background: #f22a1d;
  border-color: #ff6a5c;
  color: #fff;
  box-shadow: 0 0 22px rgba(222, 27, 15, 0.4), 0 8px 20px -8px rgba(222, 27, 15, 0.8);
}

.btn-secondary, .btn-outline-primary, .btn-outline-secondary, .btn-light, .btn-outline-dark {
  background: transparent;
  border-color: #3a4247;
  color: var(--legend);
}

.btn-secondary:hover, .btn-outline-primary:hover,
.btn-outline-secondary:hover, .btn-light:hover, .btn-outline-dark:hover {
  background: #262c2f;
  border-color: var(--hazard);
  color: var(--hazard);
}

.btn-danger { background: var(--signal); border-color: #ff5545; }

/* ------------------------------------------------------------------- forms */

.form-control, .form-select, .input-group-text {
  background: #14181a;
  border: 1px solid #333b3f;
  border-radius: 2px;
  color: #eef1f2;
  font-family: var(--data);
  font-size: 0.875rem;
}

.form-control:focus, .form-select:focus {
  background: #14181a;
  border-color: var(--hazard);
  box-shadow: 0 0 0 3px rgba(242, 197, 17, 0.16);
  color: #eef1f2;
}

.form-control::placeholder { color: #5c666a; }

.form-label, legend {
  font-family: var(--data);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--legend-dim);
}

.form-check-input { background-color: #14181a; border-color: #3a4247; }
.form-check-input:checked { background-color: var(--signal); border-color: var(--signal); }

.invalid-feedback, .text-danger { color: #ff6a5c !important; }

/* ------------------------------------------------------------------ tables */

.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--legend);
  --bs-table-border-color: #2b3134;
  --bs-table-striped-bg: #1e2325;
  --bs-table-striped-color: var(--legend);
  --bs-table-hover-bg: #23282b;
  --bs-table-hover-color: #eef1f2;
  font-size: 0.9375rem;
}

.table thead th {
  font-family: var(--data);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--legend-dim);
  border-bottom: 1px solid #333b3f;
}

/* Money is machine output — it lines up because it's monospaced. */
.table td:last-child,
.price, [class*='price'] {
  font-family: var(--data);
}

/* --------------------------------------------------------------- checkout */

/* The checkout steps are a procedure, so they read like one. */
.nav-pills .nav-link,
.steps .step,
.breadcrumb-item {
  font-family: var(--data);
  font-size: 0.6875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--legend-dim);
}

.nav-pills .nav-link.active {
  background: var(--signal);
  color: #fff;
  border-radius: 2px;
}

/* Bootstrap's breadcrumb ships near-black links, which vanish on this background. */
.breadcrumb { --bs-breadcrumb-divider-color: #4a5257; }
.breadcrumb-item, .breadcrumb-item a, .breadcrumb a { color: var(--legend-dim) !important; text-decoration: none; }
.breadcrumb-item a:hover { color: var(--hazard); }
.breadcrumb-item.active, .breadcrumb-item.active a { color: var(--legend) !important; }
.breadcrumb-item + .breadcrumb-item::before { color: #4a5257; }

/* ------------------------------------------------------------------ misc */

.alert {
  border-radius: 2px;
  border-width: 1px;
  font-size: 0.9375rem;
}

.alert-success { background: #16241c; border-color: #2f5b40; color: #9ed7ae; }
.alert-danger { background: #2a1614; border-color: #6b2a24; color: #ffa79c; }
.alert-info, .alert-warning {
  background: #2a2413;
  border-color: #6b5a24;
  color: var(--hazard);
}

.badge { font-family: var(--data); letter-spacing: 0.08em; border-radius: 2px; }
.bg-primary { background: var(--signal) !important; }

.pagination .page-link {
  background: #1b1f21;
  border-color: #2b3134;
  color: var(--legend);
}

.pagination .page-item.active .page-link {
  background: var(--signal);
  border-color: var(--signal);
  color: #fff;
}

/* Product imagery sits on ink, like a plate in a manual. */
.card-img-top, .product-image, figure img {
  background: #0e1112;
  border-radius: 2px;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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eUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQixXQUFXO0FBQ2I7O0FBRUEsMkRBQTJEO0FBQzNEO0VBQ0UsbUJBQW1CO0VBQ25CLGtCQUFrQjtBQUNwQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvc2hvcC9zY3NzL3N0eWxlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vdmVuZG9yL3N5bGl1cy9tb2xsaWUtcGx1Z2luL2Fzc2V0cy9zaG9wL3Njc3MvbWFpbi5zY3NzIiwid2VicGFjazovLy8uL3ZlbmRvci9zeWxpdXMvbW9sbGllLXBsdWdpbi9hc3NldHMvc2hvcC9zY3NzL2NoZWNrb3V0LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3RvbS1zZWxlY3QvZGlzdC9jc3MvdG9tLXNlbGVjdC5kZWZhdWx0LmNzcyIsIndlYnBhY2s6Ly8vLi92ZW5kb3Ivc3ltZm9ueS91eC1saXZlLWNvbXBvbmVudC9hc3NldHMvZGlzdC9saXZlLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb250c291cmNlL2FyY2hpdm8tYmxhY2svbGF0aW4tNDAwLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2UvaWJtLXBsZXgtbW9uby9sYXRpbi00MDAuY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9AZm9udHNvdXJjZS9pYm0tcGxleC1tb25vL2xhdGluLTUwMC5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb250c291cmNlL2libS1wbGV4LXNhbnMvbGF0aW4tNDAwLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvbnRzb3VyY2UvaWJtLXBsZXgtc2Fucy9sYXRpbi01MDAuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zaG9wL3JlZGJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL3Nob3Avc2hvcC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLmZvcm0tZmllbGRzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtZ2FwOiAyMHB4O1xufVxuXG4ubW9sbGllLWhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRpc3BsYXktZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbn1cblxuLmxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5mb3JtLWVycm9yLFxuLmZpZWxkLWVycm9yIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBjb2xvcjogI2YwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1vbGxpZS1jb21wb25lbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICBjb2xvcjogIzIyMjtcblxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksXG4gICAgMHB4IDBweCAwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4wNXMgZWFzZTtcbn1cblxuLm1vbGxpZS1jb21wb25lbnQuaGFzLWZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMwN2Y7XG4gICAgYm94LXNoYWRvdzogMHB4IDFweCAxcHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMHB4IDJweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xKSxcbiAgICAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLm1vbGxpZS1jb21wb25lbnQuaXMtaW52YWxpZCB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmYwZjA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNTBweCkge1xuICAgIC5mb3JtLWZpZWxkcyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICB9XG5cbiAgICAuZm9ybS1ncm91cC0tY2FyZC1udW1iZXIsXG4gICAgLmZvcm0tZ3JvdXAtLWNhcmQtbmFtZSxcbiAgICAuZm9ybS1ncm91cC0tc2F2ZS1jcmVkaXQtY2FyZCxcbiAgICAuZm9ybS1ncm91cC0tZm9ybS1lcnJvcntcbiAgICAgICAgZ3JpZC1jb2x1bW46IHNwYW4gMjtcbiAgICB9XG59XG5cbi5vbmxpbmUtcGF5bWVudF9faW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXghaW1wb3J0YW50O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGVkZWRlO1xuICAgIHBhZGRpbmc6IDFyZW0haW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4ub25saW5lLXBheW1lbnRfX2l0ZW0ge1xuICAgIG1pbi13aWR0aDogMjUlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMXJlbTtcbn1cblxuLm9ubGluZS1wYXltZW50X19pbnB1dDpjaGVja2Vkfi5vbmxpbmUtcGF5bWVudF9fbGFiZWwge1xuICAgIGJvcmRlci1jb2xvcjogIzIyQjk5QTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggIzIyQjk5QSBpbnNldDtcbn1cblxuLm9ubGluZS1wYXltZW50X19pbWFnZSB7XG4gICAgd2lkdGg6IDUwcHg7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9fY3JlZGl0LWNhcmQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9faXRlbS0tYWN0aXZlLm9ubGluZS1wYXltZW50X19pdGVtLS1jcmVkaXRjYXJkIHtcbiAgICB3aWR0aDogMTAwJVxufVxuXG4ub25saW5lLXBheW1lbnRfX2l0ZW0tLWFjdGl2ZSAub25saW5lLXBheW1lbnRfX2NyZWRpdC1jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLm9ubGluZS1vbmxpbmUtcGF5bWVudF9fY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ub25saW5lLXBheW1lbnRfX2NyZWRpdC1jYXJkIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWRhXG59XG5cbiNhcHBsZXBheSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuI21vbGxpZV9hcHBsZXBheV9idXR0b24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiAtYXBwbGUtcGF5LWJ1dHRvbikge1xuICAgIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxOXB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiAtYXBwbGUtcGF5LWJ1dHRvbjtcbiAgICAgICAgLWFwcGxlLXBheS1idXR0b24tdHlwZTogYnV5O1xuICAgIH1cbiAgICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQgPiAqIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBzdXBwb3J0cyBub3QgKC13ZWJraXQtYXBwZWFyYW5jZTogLWFwcGxlLXBheS1idXR0b24pIHtcbiAgICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQge1xuICAgICAgICAtLWFwcGxlLXBheS1zY2FsZTogMTsgLyogKGhlaWdodCAvIDMyKSAqL1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDY0cHg7XG4gICAgfVxuICAgIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dC5hcHBsZS1wYXktYnV0dG9uLWJsYWNrLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1uYW1lZC1pbWFnZShhcHBsZS1wYXktbG9nby13aGl0ZSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQuYXBwbGUtcGF5LWJ1dHRvbi13aGl0ZS13aXRoLXRleHQgPiAubG9nbyB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbmFtZWQtaW1hZ2UoYXBwbGUtcGF5LWxvZ28tYmxhY2spO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gICAgLmFwcGxlLXBheS1idXR0b24td2l0aC10ZXh0LmFwcGxlLXBheS1idXR0b24td2hpdGUtd2l0aC1saW5lLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1uYW1lZC1pbWFnZShhcHBsZS1wYXktbG9nby1ibGFjayk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQgPiAudGV4dCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtO1xuICAgICAgICBmb250LXNpemU6IGNhbGMoMWVtICogdmFyKC0tYXBwbGUtcGF5LXNjYWxlKSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBjYWxjKDJweCAqIHZhcigtLWFwcGxlLXBheS1zY2FsZSkpO1xuICAgIH1cbiAgICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQgPiAubG9nbyB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDM1cHggKiB2YXIoLS1zY2FsZSkpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSA2MCU7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYygycHggKiB2YXIoLS1hcHBsZS1wYXktc2NhbGUpKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbn1cblxuLmRyYWdnYWJsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiLmZvcm0tZmllbGRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdyaWQtZ2FwOiAyMHB4O1xufVxuXG4ubW9sbGllLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kaXNwbGF5LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xufVxuXG4ubGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmZvcm0tZXJyb3IsXG4uZmllbGQtZXJyb3Ige1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjZjAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tb2xsaWUtY29tcG9uZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgY29sb3I6ICMyMjI7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggMXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksIDBweCAxcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSksIDBweCAwcHggMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4wNXMgZWFzZTtcbn1cblxuLm1vbGxpZS1jb21wb25lbnQuaGFzLWZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDdmO1xuICBib3gtc2hhZG93OiAwcHggMXB4IDFweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwcHggMnB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwcHggMHB4IDBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLm1vbGxpZS1jb21wb25lbnQuaXMtaW52YWxpZCB7XG4gIGJvcmRlci1jb2xvcjogI2YwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjBmMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDM1MHB4KSB7XG4gIC5mb3JtLWZpZWxkcyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICB9XG4gIC5mb3JtLWdyb3VwLS1jYXJkLW51bWJlcixcbiAgLmZvcm0tZ3JvdXAtLWNhcmQtbmFtZSxcbiAgLmZvcm0tZ3JvdXAtLXNhdmUtY3JlZGl0LWNhcmQsXG4gIC5mb3JtLWdyb3VwLS1mb3JtLWVycm9yIHtcbiAgICBncmlkLWNvbHVtbjogc3BhbiAyO1xuICB9XG59XG4ub25saW5lLXBheW1lbnRfX2lucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm9ubGluZS1wYXltZW50X19sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RlZGVkZTtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGdhcDogMTBweDtcbn1cblxuLm9ubGluZS1wYXltZW50X19pdGVtIHtcbiAgbWluLXdpZHRoOiAyNSU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDFyZW07XG59XG5cbi5vbmxpbmUtcGF5bWVudF9faW5wdXQ6Y2hlY2tlZCB+IC5vbmxpbmUtcGF5bWVudF9fbGFiZWwge1xuICBib3JkZXItY29sb3I6ICMyMkI5OUE7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjMjJCOTlBIGluc2V0O1xufVxuXG4ub25saW5lLXBheW1lbnRfX2ltYWdlIHtcbiAgd2lkdGg6IDUwcHg7XG59XG5cbi5vbmxpbmUtcGF5bWVudF9fY3JlZGl0LWNhcmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ub25saW5lLXBheW1lbnRfX2l0ZW0tLWFjdGl2ZS5vbmxpbmUtcGF5bWVudF9faXRlbS0tY3JlZGl0Y2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ub25saW5lLXBheW1lbnRfX2l0ZW0tLWFjdGl2ZSAub25saW5lLXBheW1lbnRfX2NyZWRpdC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ub25saW5lLW9ubGluZS1wYXltZW50X19jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLm9ubGluZS1wYXltZW50X19jcmVkaXQtY2FyZCB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWRhO1xufVxuXG4jYXBwbGVwYXkge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jbW9sbGllX2FwcGxlcGF5X2J1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiAtYXBwbGUtcGF5LWJ1dHRvbikge1xuICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE5cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IC1hcHBsZS1wYXktYnV0dG9uO1xuICAgIC1hcHBsZS1wYXktYnV0dG9uLXR5cGU6IGJ1eTtcbiAgfVxuICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQgPiAqIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5Ac3VwcG9ydHMgbm90ICgtd2Via2l0LWFwcGVhcmFuY2U6IC1hcHBsZS1wYXktYnV0dG9uKSB7XG4gIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dCB7XG4gICAgLS1hcHBsZS1wYXktc2NhbGU6IDE7IC8qIChoZWlnaHQgLyAzMikgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgbWluLWhlaWdodDogMzJweDtcbiAgICBtYXgtaGVpZ2h0OiA2NHB4O1xuICB9XG4gIC5hcHBsZS1wYXktYnV0dG9uLXdpdGgtdGV4dC5hcHBsZS1wYXktYnV0dG9uLWJsYWNrLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LW5hbWVkLWltYWdlKGFwcGxlLXBheS1sb2dvLXdoaXRlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgfVxuICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQuYXBwbGUtcGF5LWJ1dHRvbi13aGl0ZS13aXRoLXRleHQgPiAubG9nbyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1uYW1lZC1pbWFnZShhcHBsZS1wYXktbG9nby1ibGFjayk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgLmFwcGxlLXBheS1idXR0b24td2l0aC10ZXh0LmFwcGxlLXBheS1idXR0b24td2hpdGUtd2l0aC1saW5lLXdpdGgtdGV4dCA+IC5sb2dvIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LW5hbWVkLWltYWdlKGFwcGxlLXBheS1sb2dvLWJsYWNrKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxuICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQgPiAudGV4dCB7XG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW07XG4gICAgZm9udC1zaXplOiBjYWxjKDFlbSAqIHZhcigtLWFwcGxlLXBheS1zY2FsZSkpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygycHggKiB2YXIoLS1hcHBsZS1wYXktc2NhbGUpKTtcbiAgfVxuICAuYXBwbGUtcGF5LWJ1dHRvbi13aXRoLXRleHQgPiAubG9nbyB7XG4gICAgd2lkdGg6IGNhbGMoMzVweCAqIHZhcigtLXNjYWxlKSk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSA2MCU7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygycHggKiB2YXIoLS1hcHBsZS1wYXktc2NhbGUpKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cbn1cbi5kcmFnZ2FibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tb2xsaWUtZXZlcnktbGFiZWwtY29udGFpbmVyIHNwYW4udWkubGFiZWwge1xuICBtYXJnaW46IDAuNXJlbSAwIDAgMC41cmVtO1xufVxuXG4vKiBQb3B1cCBjb250YWluZXIgKi9cbi5wb3B1cC1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyAvKiBTZW1pLXRyYW5zcGFyZW50IGJhY2tncm91bmQgKi9cbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHotaW5kZXg6IDk5OTk7IC8qIEVuc3VyZSBpdCdzIGFib3ZlIG90aGVyIGNvbnRlbnQgKi9cbn1cblxuLyogUG9wdXAgKi9cbi5wb3B1cCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4vKiBQb3B1cCBoZWFkZXIgKi9cbi5wb3B1cC1oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucG9wdXAtaGVhZGVyIGgyIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ucG9wdXAtaGVhZGVyIGhyIHtcbiAgbWFyZ2luOiA1cHggMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjY2NjYztcbn1cblxuLyogUG9wdXAgY29udGVudCAqL1xuLnBvcHVwLWNvbnRlbnQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wb3B1cC1jb250ZW50IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLyogUG9wdXAgYnV0dG9ucyAqL1xuLnBvcHVwLWJ1dHRvbnMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5wb3B1cC1idXR0b25zIGJ1dHRvbiB7XG4gIG1hcmdpbjogNXB4O1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucG9wdXAtYnV0dG9ucyBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuXG4vKiBTdHlsaW5nIGZvciBjYW5jZWwgYnV0dG9uICovXG4ucG9wdXAtYnV0dG9ucyAjY2FuY2VsLWJ1dHRvbiB7XG4gIGJvcmRlcjogbm9uZTtcbn0iLCIubW9sbGllLWV2ZXJ5LWxhYmVsLWNvbnRhaW5lciB7XG4gIHNwYW4udWkubGFiZWwge1xuICAgIG1hcmdpbjogMC41cmVtIDAgMCAwLjVyZW07XG4gIH1cbn1cblxuLyogUG9wdXAgY29udGFpbmVyICovXG4ucG9wdXAtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgLyogU2VtaS10cmFuc3BhcmVudCBiYWNrZ3JvdW5kICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHotaW5kZXg6IDk5OTk7IC8qIEVuc3VyZSBpdCdzIGFib3ZlIG90aGVyIGNvbnRlbnQgKi9cbn1cblxuLyogUG9wdXAgKi9cbi5wb3B1cCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi8qIFBvcHVwIGhlYWRlciAqL1xuLnBvcHVwLWhlYWRlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucG9wdXAtaGVhZGVyIGgyIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5wb3B1cC1oZWFkZXIgaHIge1xuICAgIG1hcmdpbjogNXB4IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjY2NjO1xufVxuXG4vKiBQb3B1cCBjb250ZW50ICovXG4ucG9wdXAtY29udGVudCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5wb3B1cC1jb250ZW50IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qIFBvcHVwIGJ1dHRvbnMgKi9cbi5wb3B1cC1idXR0b25zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5wb3B1cC1idXR0b25zIGJ1dHRvbiB7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucG9wdXAtYnV0dG9ucyBidXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG59XG5cbi8qIFN0eWxpbmcgZm9yIGNhbmNlbCBidXR0b24gKi9cbi5wb3B1cC1idXR0b25zICNjYW5jZWwtYnV0dG9uIHtcbiAgICBib3JkZXI6IG5vbmU7XG59XG5cbiIsIi8qKlxuICogdG9tLXNlbGVjdC5jc3MgKHYvL0BAdmVyc2lvbilcbiAqIENvcHlyaWdodCAoYykgY29udHJpYnV0b3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXNcbiAqIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OlxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRlxuICogQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlXG4gKiBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICpcbiAqL1xuLnRzLWNvbnRyb2wge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDBkMGQwO1xuICBwYWRkaW5nOiA4cHggOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi50cy13cmFwcGVyLm11bHRpLmhhcy1pdGVtcyAudHMtY29udHJvbCB7XG4gIHBhZGRpbmc6IGNhbGMoOHB4IC0gMnB4IC0gMXB4KSA4cHggY2FsYyg4cHggLSAycHggLSAzcHggLSAxcHgpO1xufVxuLmZ1bGwgLnRzLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmRpc2FibGVkIC50cy1jb250cm9sLCAuZGlzYWJsZWQgLnRzLWNvbnRyb2wgKiB7XG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xufVxuLmZvY3VzIC50cy1jb250cm9sIHtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4udHMtY29udHJvbCA+ICoge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi50cy13cmFwcGVyLm11bHRpIC50cy1jb250cm9sID4gZGl2IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW46IDAgM3B4IDNweCAwO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBiYWNrZ3JvdW5kOiAjMWRhN2VlO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwNzNiYjtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4udHMtd3JhcHBlci5tdWx0aSAudHMtY29udHJvbCA+IGRpdi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjOTJjODM2O1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwNTc4ZDtcbn1cbi50cy13cmFwcGVyLm11bHRpLmRpc2FibGVkIC50cy1jb250cm9sID4gZGl2LCAudHMtd3JhcHBlci5tdWx0aS5kaXNhYmxlZCAudHMtY29udHJvbCA+IGRpdi5hY3RpdmUge1xuICBjb2xvcjogaHNsKDAsIDAlLCAxMzAlKTtcbiAgYmFja2dyb3VuZDogI2QyZDJkMjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FhYWFhYTtcbn1cbi50cy1jb250cm9sID4gaW5wdXQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiA3cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IG5vbmUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB0ZXh0LWluZGVudDogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgbm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHVzZXItc2VsZWN0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi50cy1jb250cm9sID4gaW5wdXQ6Oi1tcy1jbGVhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udHMtY29udHJvbCA+IGlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuLmhhcy1pdGVtcyAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwcHggNHB4ICFpbXBvcnRhbnQ7XG59XG4udHMtY29udHJvbC5ydGwge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50cy1jb250cm9sLnJ0bC5zaW5nbGUgLnRzLWNvbnRyb2w6YWZ0ZXIge1xuICBsZWZ0OiAxNXB4O1xuICByaWdodDogYXV0bztcbn1cbi50cy1jb250cm9sLnJ0bCAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgbWFyZ2luOiAwcHggNHB4IDBweCAtMnB4ICFpbXBvcnRhbnQ7XG59XG4uZGlzYWJsZWQgLnRzLWNvbnRyb2wge1xuICBvcGFjaXR5OiAwLjU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG4uaW5wdXQtaGlkZGVuIC50cy1jb250cm9sID4gaW5wdXQge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMDAwMHB4O1xufVxuXG4udHMtZHJvcGRvd24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDBkMGQwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBtYXJnaW46IDAuMjVyZW0gMCAwO1xuICBib3JkZXItdG9wOiAwIG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCAzcHggM3B4O1xufVxuLnRzLWRyb3Bkb3duIFtkYXRhLXNlbGVjdGFibGVdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnRzLWRyb3Bkb3duIFtkYXRhLXNlbGVjdGFibGVdIC5oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTY4LCAyMDgsIDAuMik7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbn1cbi50cy1kcm9wZG93biAub3B0aW9uLFxuLnRzLWRyb3Bkb3duIC5vcHRncm91cC1oZWFkZXIsXG4udHMtZHJvcGRvd24gLm5vLXJlc3VsdHMsXG4udHMtZHJvcGRvd24gLmNyZWF0ZSB7XG4gIHBhZGRpbmc6IDVweCA4cHg7XG59XG4udHMtZHJvcGRvd24gLm9wdGlvbiwgLnRzLWRyb3Bkb3duIFtkYXRhLWRpc2FibGVkXSwgLnRzLWRyb3Bkb3duIFtkYXRhLWRpc2FibGVkXSBbZGF0YS1zZWxlY3RhYmxlXS5vcHRpb24ge1xuICBjdXJzb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi50cy1kcm9wZG93biBbZGF0YS1zZWxlY3RhYmxlXS5vcHRpb24ge1xuICBvcGFjaXR5OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwOmZpcnN0LWNoaWxkIC5vcHRncm91cC1oZWFkZXIge1xuICBib3JkZXItdG9wOiAwIG5vbmU7XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwLWhlYWRlciB7XG4gIGNvbG9yOiAjMzAzMDMwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4udHMtZHJvcGRvd24gLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWZhZmQ7XG4gIGNvbG9yOiAjNDk1YzY4O1xufVxuLnRzLWRyb3Bkb3duIC5hY3RpdmUuY3JlYXRlIHtcbiAgY29sb3I6ICM0OTVjNjg7XG59XG4udHMtZHJvcGRvd24gLmNyZWF0ZSB7XG4gIGNvbG9yOiByZ2JhKDQ4LCA0OCwgNDgsIDAuNSk7XG59XG4udHMtZHJvcGRvd24gLnNwaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1hcmdpbjogNXB4IDhweDtcbn1cbi50cy1kcm9wZG93biAuc3Bpbm5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogNXB4IHNvbGlkICNkMGQwZDA7XG4gIGJvcmRlci1jb2xvcjogI2QwZDBkMCB0cmFuc3BhcmVudCAjZDBkMGQwIHRyYW5zcGFyZW50O1xuICBhbmltYXRpb246IGxkcy1kdWFsLXJpbmcgMS4ycyBsaW5lYXIgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIGxkcy1kdWFsLXJpbmcge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG4udHMtZHJvcGRvd24tY29udGVudCB7XG4gIG92ZXJmbG93OiBoaWRkZW4gYXV0bztcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4tZHJhZ19kcm9wIC50cy1kcmFnZ2luZyB7XG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLWRyYWdfZHJvcCAudHMtZHJhZ2dpbmcgPiAqIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5wbHVnaW4tY2hlY2tib3hfb3B0aW9uczpub3QoLnJ0bCkgLm9wdGlvbiBpbnB1dCB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xufVxuXG4ucGx1Z2luLWNoZWNrYm94X29wdGlvbnMucnRsIC5vcHRpb24gaW5wdXQge1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xufVxuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBmdW5jdGlvbi1uYW1lLWNhc2UgKi9cbi5wbHVnaW4tY2xlYXJfYnV0dG9uIHtcbiAgLS10cy1wci1jbGVhci1idXR0b246IDFlbTtcbn1cbi5wbHVnaW4tY2xlYXJfYnV0dG9uIC5jbGVhci1idXR0b24ge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHJpZ2h0OiBjYWxjKDhweCAtIDZweCk7XG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5wbHVnaW4tY2xlYXJfYnV0dG9uLmZvcm0tc2VsZWN0IC5jbGVhci1idXR0b24sIC5wbHVnaW4tY2xlYXJfYnV0dG9uLnNpbmdsZSAuY2xlYXItYnV0dG9uIHtcbiAgcmlnaHQ6IG1heCh2YXIoLS10cy1wci1jYXJldCksIDhweCk7XG59XG4ucGx1Z2luLWNsZWFyX2J1dHRvbi5mb2N1cy5oYXMtaXRlbXMgLmNsZWFyLWJ1dHRvbiwgLnBsdWdpbi1jbGVhcl9idXR0b246bm90KC5kaXNhYmxlZCk6aG92ZXIuaGFzLWl0ZW1zIC5jbGVhci1idXR0b24ge1xuICBvcGFjaXR5OiAxO1xufVxuXG4udHMtd3JhcHBlciAuZHJvcGRvd24taGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMGQwZDA7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peCgjZmZmLCAjZDBkMGQwLCA4NSUpO1xuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbn1cbi50cy13cmFwcGVyIC5kcm9wZG93bi1oZWFkZXItY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA4cHg7XG4gIHRvcDogNTAlO1xuICBjb2xvcjogIzMwMzAzMDtcbiAgb3BhY2l0eTogMC40O1xuICBtYXJnaW4tdG9wOiAtMTJweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xufVxuLnRzLXdyYXBwZXIgLmRyb3Bkb3duLWhlYWRlci1jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiBoc2woMCwgMCUsIC02LjE3NjQ3MDU4ODIlKTtcbn1cblxuLnBsdWdpbi1kcm9wZG93bl9pbnB1dC5mb2N1cy5kcm9wZG93bi1hY3RpdmUgLnRzLWNvbnRyb2wge1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDBkMGQwO1xufVxuLnBsdWdpbi1kcm9wZG93bl9pbnB1dCAuZHJvcGRvd24taW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDBkMGQwO1xuICBib3JkZXItd2lkdGg6IDAgMCAxcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA4cHggOHB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0IC5pdGVtcy1wbGFjZWhvbGRlciB7XG4gIGJvcmRlcjogMCBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ucGx1Z2luLWRyb3Bkb3duX2lucHV0Lmhhcy1pdGVtcyAuaXRlbXMtcGxhY2Vob2xkZXIsIC5wbHVnaW4tZHJvcGRvd25faW5wdXQuZHJvcGRvd24tYWN0aXZlIC5pdGVtcy1wbGFjZWhvbGRlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnRzLXdyYXBwZXIucGx1Z2luLWlucHV0X2F1dG9ncm93Lmhhcy1pdGVtcyAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLWlucHV0X2F1dG9ncm93Lmhhcy1pdGVtcy5mb2N1cyAudHMtY29udHJvbCA+IGlucHV0IHtcbiAgZmxleDogbm9uZTtcbiAgbWluLXdpZHRoOiA0cHg7XG59XG4udHMtd3JhcHBlci5wbHVnaW4taW5wdXRfYXV0b2dyb3cuaGFzLWl0ZW1zLmZvY3VzIC50cy1jb250cm9sID4gaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLnRzLWRyb3Bkb3duLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnRzLWRyb3Bkb3duLnBsdWdpbi1vcHRncm91cF9jb2x1bW5zIC5vcHRncm91cCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmMmYyZjI7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbiAgZmxleC1ncm93OiAxO1xuICBmbGV4LWJhc2lzOiAwO1xuICBtaW4td2lkdGg6IDA7XG59XG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLm9wdGdyb3VwOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDAgbm9uZTtcbn1cbi50cy1kcm9wZG93bi5wbHVnaW4tb3B0Z3JvdXBfY29sdW1ucyAub3B0Z3JvdXA6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udHMtZHJvcGRvd24ucGx1Z2luLW9wdGdyb3VwX2NvbHVtbnMgLm9wdGdyb3VwLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IDAgbm9uZTtcbn1cblxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24gLml0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uIC5pdGVtIC5yZW1vdmUge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBib3JkZXItcmFkaXVzOiAwIDJweCAycHggMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uIC5pdGVtIC5yZW1vdmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24uZGlzYWJsZWQgLml0ZW0gLnJlbW92ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbiAucmVtb3ZlLXNpbmdsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgZm9udC1zaXplOiAyM3B4O1xufVxuXG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbjpub3QoLnJ0bCkgLml0ZW0ge1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbjpub3QoLnJ0bCkgLml0ZW0gLnJlbW92ZSB7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzAwNzNiYjtcbiAgbWFyZ2luLWxlZnQ6IDZweDtcbn1cbi50cy13cmFwcGVyLnBsdWdpbi1yZW1vdmVfYnV0dG9uOm5vdCgucnRsKSAuaXRlbS5hY3RpdmUgLnJlbW92ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDA1NzhkO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b246bm90KC5ydGwpLmRpc2FibGVkIC5pdGVtIC5yZW1vdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2FhYWFhYTtcbn1cblxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24ucnRsIC5pdGVtIHtcbiAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG4udHMtd3JhcHBlci5wbHVnaW4tcmVtb3ZlX2J1dHRvbi5ydGwgLml0ZW0gLnJlbW92ZSB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDczYmI7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24ucnRsIC5pdGVtLmFjdGl2ZSAucmVtb3ZlIHtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMDA1NzhkO1xufVxuLnRzLXdyYXBwZXIucGx1Z2luLXJlbW92ZV9idXR0b24ucnRsLmRpc2FibGVkIC5pdGVtIC5yZW1vdmUge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNhYWFhYWE7XG59XG5cbjpyb290IHtcbiAgLS10cy1wci1jbGVhci1idXR0b246IDBweDtcbiAgLS10cy1wci1jYXJldDogMHB4O1xuICAtLXRzLXByLW1pbjogLjc1cmVtO1xufVxuXG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wsIC50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCBpbnB1dCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRzLWNvbnRyb2w6bm90KC5ydGwpIHtcbiAgcGFkZGluZy1yaWdodDogbWF4KHZhcigtLXRzLXByLW1pbiksIHZhcigtLXRzLXByLWNsZWFyLWJ1dHRvbikgKyB2YXIoLS10cy1wci1jYXJldCkpICFpbXBvcnRhbnQ7XG59XG5cbi50cy1jb250cm9sLnJ0bCB7XG4gIHBhZGRpbmctbGVmdDogbWF4KHZhcigtLXRzLXByLW1pbiksIHZhcigtLXRzLXByLWNsZWFyLWJ1dHRvbikgKyB2YXIoLS10cy1wci1jYXJldCkpICFpbXBvcnRhbnQ7XG59XG5cbi50cy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udHMtZHJvcGRvd24sXG4udHMtY29udHJvbCxcbi50cy1jb250cm9sIGlucHV0IHtcbiAgY29sb3I6ICMzMDMwMzA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xufVxuXG4udHMtY29udHJvbCxcbi50cy13cmFwcGVyLnNpbmdsZS5pbnB1dC1hY3RpdmUgLnRzLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHRleHQ7XG59XG5cbi50cy1oaWRkZW4tYWNjZXNzaWJsZSB7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wge1xuICAtLXRzLXByLWNhcmV0OiAycmVtO1xufVxuLnRzLXdyYXBwZXIuc2luZ2xlIC50cy1jb250cm9sOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTNweDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDAgNXB4O1xuICBib3JkZXItY29sb3I6ICM4MDgwODAgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2w6bm90KC5ydGwpOjphZnRlciB7XG4gIHJpZ2h0OiAxNXB4O1xufVxuLnRzLXdyYXBwZXIuc2luZ2xlIC50cy1jb250cm9sLnJ0bDo6YWZ0ZXIge1xuICBsZWZ0OiAxNXB4O1xufVxuLnRzLXdyYXBwZXIuc2luZ2xlLmRyb3Bkb3duLWFjdGl2ZSAudHMtY29udHJvbDo6YWZ0ZXIge1xuICBtYXJnaW4tdG9wOiAtNHB4O1xuICBib3JkZXItd2lkdGg6IDAgNXB4IDVweCA1cHg7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgIzgwODA4MCB0cmFuc3BhcmVudDtcbn1cbi50cy13cmFwcGVyLnNpbmdsZS5pbnB1dC1hY3RpdmUgLnRzLWNvbnRyb2wsIC50cy13cmFwcGVyLnNpbmdsZS5pbnB1dC1hY3RpdmUgLnRzLWNvbnRyb2wgaW5wdXQge1xuICBjdXJzb3I6IHRleHQ7XG59XG5cbi50cy13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogMzZweDtcbn1cbi50cy13cmFwcGVyLm11bHRpLmhhcy1pdGVtcyAudHMtY29udHJvbCB7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICAtLXRzLXByLW1pbjogNXB4O1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdIHtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCA1MSwgODMsIDAuMyk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KCMxZGE3ZWUsICMxNzhlZTksIDYwJSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMxZGE3ZWUsICMxNzhlZTkpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCBpbnNldCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xufVxuLnRzLXdyYXBwZXIubXVsdGkgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peCgjMDA4ZmQ4LCAjMDA3NWNmLCA2MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDA4ZmQ4LCAjMDA3NWNmKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdIHtcbiAgY29sb3I6ICM5OTk7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLnRzLXdyYXBwZXIubXVsdGkuZGlzYWJsZWQgLnRzLWNvbnRyb2wgW2RhdGEtdmFsdWVdLCAudHMtd3JhcHBlci5tdWx0aS5kaXNhYmxlZCAudHMtY29udHJvbCBbZGF0YS12YWx1ZV0gLnJlbW92ZSB7XG4gIGJvcmRlci1jb2xvcjogI2U2ZTZlNjtcbn1cbi50cy13cmFwcGVyLm11bHRpLmRpc2FibGVkIC50cy1jb250cm9sIFtkYXRhLXZhbHVlXSAucmVtb3ZlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi50cy13cmFwcGVyLnNpbmdsZSAudHMtY29udHJvbCB7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peCgjZmVmZWZlLCAjZjJmMmYyLCA2MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmVmZWZlLCAjZjJmMmYyKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG4udHMtd3JhcHBlci5zaW5nbGUgLnRzLWNvbnRyb2wsIC50cy1kcm9wZG93bi5zaW5nbGUge1xuICBib3JkZXItY29sb3I6ICNiOGI4Yjg7XG59XG5cbi5kcm9wZG93bi1hY3RpdmUgLnRzLWNvbnRyb2wge1xuICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbn1cblxuLnRzLWRyb3Bkb3duIC5vcHRncm91cC1oZWFkZXIge1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAwLjg1ZW07XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmMGYwZjA7XG59XG4udHMtZHJvcGRvd24gLm9wdGdyb3VwOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogMCBub25lO1xufSIsIltkYXRhLWxvYWRpbmc9XCJcIl0sW2RhdGEtbG9hZGluZz1zaG93XSxbZGF0YS1sb2FkaW5nKj1cXHxzaG93XXtkaXNwbGF5Om5vbmV9XG4iLCIvKiBhcmNoaXZvLWJsYWNrLWxhdGluLTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0FyY2hpdm8gQmxhY2snO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9hcmNoaXZvLWJsYWNrLWxhdGluLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvYXJjaGl2by1ibGFjay1sYXRpbi00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xufSIsIi8qIGlibS1wbGV4LW1vbm8tbGF0aW4tNDAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSUJNIFBsZXggTW9ubyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguL2ZpbGVzL2libS1wbGV4LW1vbm8tbGF0aW4tNDAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9pYm0tcGxleC1tb25vLWxhdGluLTQwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG59IiwiLyogaWJtLXBsZXgtbW9uby1sYXRpbi01MDAtbm9ybWFsICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdJQk0gUGxleCBNb25vJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKC4vZmlsZXMvaWJtLXBsZXgtbW9uby1sYXRpbi01MDAtbm9ybWFsLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyksIHVybCguL2ZpbGVzL2libS1wbGV4LW1vbm8tbGF0aW4tNTAwLW5vcm1hbC53b2ZmKSBmb3JtYXQoJ3dvZmYnKTtcbn0iLCIvKiBpYm0tcGxleC1zYW5zLWxhdGluLTQwMC1ub3JtYWwgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0lCTSBQbGV4IFNhbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi9maWxlcy9pYm0tcGxleC1zYW5zLWxhdGluLTQwMC1ub3JtYWwud29mZjIpIGZvcm1hdCgnd29mZjInKSwgdXJsKC4vZmlsZXMvaWJtLXBsZXgtc2Fucy1sYXRpbi00MDAtbm9ybWFsLndvZmYpIGZvcm1hdCgnd29mZicpO1xufSIsIi8qIGlibS1wbGV4LXNhbnMtbGF0aW4tNTAwLW5vcm1hbCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnSUJNIFBsZXggU2Fucyc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguL2ZpbGVzL2libS1wbGV4LXNhbnMtbGF0aW4tNTAwLW5vcm1hbC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLCB1cmwoLi9maWxlcy9pYm0tcGxleC1zYW5zLWxhdGluLTUwMC1ub3JtYWwud29mZikgZm9ybWF0KCd3b2ZmJyk7XG59IiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFJFRCBCVVRUT04g4oCUIGxhbmRpbmcgKGNhcnRvb24gY3V0KVxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFNhbWUgcHJvZHVjdCwgc2FtZSBkZWFkcGFuIGNvcHksIGRpZmZlcmVudCB1bml2ZXJzZS4gVGhlIGpva2Ugd2FzIGFsd2F5c1xuICAgY29zbWljLXN0YWtlcy1pbnRvLWJhbmFsLXBheW9mZiDigJQgeW91IGJyYWNlIGZvciB0aGUgZW5kIG9mIHRoZSB3b3JsZCBhbmQgaXRcbiAgIG11dGVzIHlvdXIgbWljcm9waG9uZSDigJQgd2hpY2ggaXMgdGhlIGVuZ2luZSBvZiB0aGUgc2hvdyB0aGlzIGlzIG5vdyBkcmF3blxuICAgbGlrZS4gU28gdGhlIHdvcmRzIGRpZG4ndCBuZWVkIHRvIGNoYW5nZS4gT25seSB0aGUgZHJhd2luZyBkaWQuXG5cbiAgIENhcnRvb24gbWVhbnMgc3BlY2lmaWMgdGhpbmdzIGhlcmUsIG5vdCBcInJvdW5kZXJcIjogZXZlcnkgc2hhcGUgaXMgb3V0bGluZWQgaW5cbiAgIGluaywgdGhlIGluayBpcyBuZXZlciBwdXJlIGJsYWNrLCBmaWxscyBhcmUgRkxBVCB3aXRoIG5vIGdyYWRpZW50cyBhbnl3aGVyZSxcbiAgIGFuZCBkZXB0aCBjb21lcyBmcm9tIGEgaGFyZCBvZmZzZXQgc2hhZG93IHdpdGggemVybyBibHVyIOKAlCB0aGUgd2F5IGNlbCBhcnRcbiAgIGZha2VzIGl0LiBUaGF0IHRlY2huaXF1ZSBpcyBnZW5lcmFsIGFuaW1hdGlvbiBjcmFmdCBhbmQgYmVsb25ncyB0byBub2JvZHkuXG5cbiAgIFdoYXQgZG9lcyBOT1QgYmVsb25nIHRvIHVzIGlzIGFub3RoZXIgc2hvdydzIHRyYWRlIGRyZXNzLCBzbyB0aGVyZSBpcyBub1xuICAgc3dpcmxpbmcgZ3JlZW4gcG9ydGFsIGhlcmUgYW5kIG5vIHBvcnRhbC1ncmVlbiBpbiB0aGUgcGFsZXR0ZS4gVGhlIHNpZ25hdHVyZVxuICAgaXMgdGhlIGRldmljZSdzIG93bjogdGhlIGd1YXJkIGlzIHN0cmlwZWQgaGF6YXJkIHllbGxvdywgc28gdGhlIGJ1cnN0IGJlaGluZFxuICAgdGhlIGRvbWUgaXMgdGhhdCBzdHJpcGUgcGF0dGVybiB0aHJvd24gb3V0d2FyZC4gRXZlcnkgY29sb3VyIGJlbG93IGNvbWVzIG9mZlxuICAgdGhlIHByb2R1Y3Qg4oCUIHJlZCBkb21lLCB5ZWxsb3cgZ3VhcmQsIHN0ZWVsIGhvdXNpbmcsIGluaywgYm9uZS5cblxuICAgVHdvIHNpZ25hbHMsIGFuZCB0aGV5IHN0aWxsIG1lYW4gZGlmZmVyZW50IHRoaW5nczpcbiAgICAgUkVEICAgIGlzIHRoZSBkZXZpY2Ug4oCUIHRoZSBkb21lLCB0aGUgYnV0dG9uIHRoYXQgY29tbWl0cy5cbiAgICAgWUVMTE9XIGlzIHRoZSB3YXJuaW5nIOKAlCB0aGUgZ3VhcmQsIHRoZSB0YXBlLCB0aGUgYnVyc3QuXG5cbiAgIFRoZSBwaG90b2dyYXBoIFdBUyB0aGUgaGVyby4gSXQgYWxyZWFkeSBjb250YWlucyB0aGUgd2hvbGUgaWRlYTogYSBkYXJrIHJvb20sXG4gICBvbmUgaGFyZCBsYW1wLCBhIG1hY2hpbmVkIHB1Y2ssIGEgaGF6YXJkIGd1YXJkIHRocm93biBvcGVuLCBhbmQgYSByZWQgZG9tZVxuICAgcG9vbGluZyBsaWdodCBvbiB0aGUgZGVzay4gVGhlIHBhZ2UncyBvbmx5IGpvYiBpcyB0byBzdGF5IG91dCBvZiBpdHMgd2F5IGFuZFxuICAgc2V0IHR5cGUgaW4gdGhlIHNoYWRvdyB0aGUgcGhvdG8gbGVmdCBlbXB0eSBvbiB0aGUgbGVmdC5cblxuICAgQW4gZWFybGllciBwYXNzIHRyaWVkIHRvIGJlIG1heGltYWwgYnkgcGlsaW5nIG9uIHRhcGUsIGhhbGZ0b25lIGFuZCBjb21pY1xuICAgcGFuZWxzLCBhbmQgYnVyaWVkIHRoZSBwcm9kdWN0LiBUaGUgcnVsZSBub3c6IHRoZSBkZXZpY2UgaXMgdGhlIGxvdWRlc3QgdGhpbmdcbiAgIG9uIHRoZSBwYWdlLCBldmVyeXRoaW5nIGVsc2UgaXMgcXVpZXQgZW5vdWdoIGZvciBpdCB0byBiZSBoZWFyZC5cblxuICAgVHdvIHNpZ25hbHMsIGtlcHQgc3RyaWN0bHkgYXBhcnQ6XG4gICAgIFJFRCAgICBpcyB0aGUgZGV2aWNlIOKAlCB0aGUgZG9tZSwgdGhlIGxhbXAsIHRoZSBidXR0b24gdGhhdCBjb21taXRzLlxuICAgICBZRUxMT1cgaXMgdGhlIGNvcmRvbiDigJQgdGFwZSwgZ3VhcmQgZWRnZSwgdGhlIGFyZWEgeW91IHNob3VsZG4ndCBiZSBpbi5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBpbXBvcnQgJ0Bmb250c291cmNlL2FyY2hpdm8tYmxhY2svbGF0aW4tNDAwLmNzcyc7XG5AaW1wb3J0ICdAZm9udHNvdXJjZS9pYm0tcGxleC1tb25vL2xhdGluLTQwMC5jc3MnO1xuQGltcG9ydCAnQGZvbnRzb3VyY2UvaWJtLXBsZXgtbW9uby9sYXRpbi01MDAuY3NzJztcbkBpbXBvcnQgJ0Bmb250c291cmNlL2libS1wbGV4LXNhbnMvbGF0aW4tNDAwLmNzcyc7XG5AaW1wb3J0ICdAZm9udHNvdXJjZS9pYm0tcGxleC1zYW5zL2xhdGluLTUwMC5jc3MnO1xuXG46cm9vdCB7XG4gIC0tdm9pZDogIzJmMzIzODsgICAgICAvKiB0aGUgd2FsbCB0aGUgZGV2aWNlIHNpdHMgYWdhaW5zdCAqL1xuICAtLXBhbmVsOiAjMjYyYTJmOyAgICAgLyogdGhlIGNvcm5lciBpdCBmYWxscyBpbnRvICovXG4gIC0tbGVnZW5kOiAjZjJlY2UwOyAgICAvKiBib25lOiBwYXBlciwgdHlwZSwgdGhlIGxpdCBmYWNlIG9mIHRoaW5ncyAqL1xuICAtLXNpZ25hbDogI2U4MzAyYTsgICAgLyogdGhlIGRvbWUg4oCUIHRoZSBwcm9kdWN0ICovXG4gIC0taGF6YXJkOiAjZjJjNTExOyAgICAvKiB0aGUgZ3VhcmQncyBzdHJpcGVzLCBhbmQgZXZlcnl0aGluZyB3YXJuaW5nIHlvdSAqL1xuICAtLXN0ZWVsOiAjOThhNGFjOyAgICAgLyogdGhlIGhvdXNpbmcgKi9cblxuICAtLWxlZ2VuZC1kaW06ICM5YWEzYWI7XG4gIC0taW5rOiAjMTQxODFiOyAgICAgICAvKiBvdXRsaW5lcy4gbmV2ZXIgcHVyZSBibGFjayAqL1xuXG4gIC8qIEEgZHJhd24gbGluZSBuZXZlciByZXBlYXRzIGl0c2VsZjogZm91ciByYWRpaSBwZXIgY29ybmVyLiAqL1xuICAtLXdvYmJsZTogMjU1cHggMTVweCAyMjVweCAxNXB4IC8gMTVweCAyMjVweCAxNXB4IDI1NXB4O1xuICAtLXdvYmJsZS0yOiAxNXB4IDIyNXB4IDE1cHggMjU1cHggLyAyMjVweCAxNXB4IDI1NXB4IDE1cHg7XG5cbiAgLS1kaXNwbGF5OiAnQXJjaGl2byBCbGFjaycsICdBcmlhbCBCbGFjaycsIHNhbnMtc2VyaWY7XG4gIC0tZGF0YTogJ0lCTSBQbGV4IE1vbm8nLCB1aS1tb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLS1ib2R5OiAnSUJNIFBsZXggU2FucycsIHN5c3RlbS11aSwgc2Fucy1zZXJpZjtcblxuICAtLXNoZWxsOiAxMTgwcHg7XG4gIC0tZ2FwOiBjbGFtcCgxLjI1cmVtLCA0dncsIDNyZW0pO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZm91bmRhdGlvbiAqL1xuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tdm9pZCk7XG4gIGNvbG9yOiB2YXIoLS1sZWdlbmQpO1xuICBmb250LWZhbWlseTogdmFyKC0tYm9keSk7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbjo6c2VsZWN0aW9uIHsgYmFja2dyb3VuZDogdmFyKC0tc2lnbmFsKTsgY29sb3I6ICNmZmY7IH1cbjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWhhemFyZCk7IG91dGxpbmUtb2Zmc2V0OiAzcHg7IH1cblxuYm9keVtkYXRhLXJvdXRlPSdzeWxpdXNfc2hvcF9ob21lcGFnZSddID4gZGl2ID4gKjpub3QoLnJiLXJvb20pIHsgZGlzcGxheTogbm9uZTsgfVxuXG4ucmItc2hlbGwge1xuICBtYXgtd2lkdGg6IHZhcigtLXNoZWxsKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgdmFyKC0tZ2FwKTtcbn1cblxuLnJiLWxlZ2VuZCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjIyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1oYXphcmQpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjgwcHgpIHtcbiAgLnJiLWxlZ2VuZC0taGlkZS1zbSB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLnJiLWRpc3BsYXkge1xuICBmb250LWZhbWlseTogdmFyKC0tZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xuICBsaW5lLWhlaWdodDogMC45NDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZCk7XG4gIG1hcmdpbjogMDtcbiAgLXdlYmtpdC10ZXh0LXN0cm9rZTogNnB4IHZhcigtLWluayk7XG4gIHBhaW50LW9yZGVyOiBzdHJva2UgZmlsbDtcbiAgdGV4dC1zaGFkb3c6IDdweCA3cHggMCB2YXIoLS1pbmspO1xufVxuXG4ucmItcm9vbSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gc3RhdHVzYmFyICovXG5cbi5yYi1zdGF0dXNiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxcmVtO1xuICBtYXgtd2lkdGg6IHZhcigtLXNoZWxsKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDEuMjVyZW0gdmFyKC0tZ2FwKTtcbn1cblxuLnJiLWJyYW5kIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42MjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5rKTtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjdyZW0gMC4zNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi5yYi1icmFuZF9fbWFyayB7IGRpc3BsYXk6IGJsb2NrOyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA3cHggcmdiYSgyMjQsIDI5LCAxNiwgMC41KSk7IH1cblxuLnJiLWJyYW5kX193b3JkIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRhdGEpO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjI4ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZWVmMWYyO1xufVxuXG4ucmItYnJhbmRfX3dvcmQgc3BhbiB7IGNvbG9yOiB2YXIoLS1zaWduYWwpOyB9XG5cbi5yYi1zdGF0dXNiYXJfX3N0YXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmspO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNnJlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ucmItbGFtcCB7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWhhemFyZCk7XG4gIGJveC1zaGFkb3c6IDAgMCA4cHggdmFyKC0taGF6YXJkKTtcbiAgYW5pbWF0aW9uOiByYi1mbGlja2VyIDRzIHN0ZXBzKDEpIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHJiLWZsaWNrZXIge1xuICAwJSwgOTIlLCAxMDAlIHsgb3BhY2l0eTogMTsgfVxuICA5NCUsIDk4JSB7IG9wYWNpdHk6IDAuMzsgfVxufVxuXG4ucmItbG9jYWxlcyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMC4yNXJlbTsgfVxuXG4ucmItbG9jYWxlc19faXRlbSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZC1kaW0pO1xuICBwYWRkaW5nOiAwLjJyZW0gMC40NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMTQwbXMgZWFzZSwgYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2U7XG59XG5cbi5yYi1sb2NhbGVzX19pdGVtOmhvdmVyIHsgY29sb3I6IHZhcigtLWhhemFyZCk7IGJvcmRlci1jb2xvcjogIzMzM2IzZjsgfVxuLnJiLWxvY2FsZXNfX2l0ZW0uaXMtY3VycmVudCB7IGNvbG9yOiB2YXIoLS1pbmspOyBiYWNrZ3JvdW5kOiB2YXIoLS1oYXphcmQpOyBib3JkZXItY29sb3I6IHZhcigtLWhhemFyZCk7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEhFUk8gPT1cbiAgIEZ1bGwtYmxlZWQgcGhvdG9ncmFwaC4gVGhlIGRldmljZSBhbHJlYWR5IHNpdHMgaW4gdGhlIHJpZ2h0IHRoaXJkIG9mIHRoZVxuICAgZnJhbWUgd2l0aCB0d28gdGhpcmRzIG9mIHNoYWRvdyBiZXNpZGUgaXQsIHNvIHRoZSB0eXBlIGdvZXMgaW4gdGhlIHNoYWRvd1xuICAgcmF0aGVyIHRoYW4gb24gdG9wIG9mIGFueXRoaW5nLiAqL1xuXG4ucmItaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogbWluKDk0dmgsIDkwMHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xufVxuXG4ucmItaGVyb19fcGxhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAtMTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9wdWJsaWMvaW1hZ2VzL2hlcm8tY2FydG9vbi53ZWJwJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIC8qIEhvbGQgdGhlIGRldmljZSBpbiBmcmFtZSBhcyB0aGUgdmlld3BvcnQgbmFycm93cyDigJQgaXRzIGxlZnQgZWRnZSBpcyB3aGF0XG4gICAgIG11c3QgbmV2ZXIgYmUgY3JvcHBlZCwgb3IgdGhlIHJlZCBkb21lIHdhbGtzIG9mZiB0aGUgcGFnZS4gKi9cbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNzIlIDUwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYW5pbWF0aW9uOiByYi1oZXJvLWluIDEuNnMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjI1LCAxKSBib3RoO1xufVxuXG5Aa2V5ZnJhbWVzIHJiLWhlcm8taW4ge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTsgfVxuICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogbm9uZTsgfVxufVxuXG4vKiBUd28gc2NyaW1zOiBvbmUgdG8gc2VhdCB0aGUgdHlwZSwgb25lIHRvIGJsZW5kIHRoZSBwaG90bydzIGVkZ2VzIGludG8gdGhlXG4gICBwYWdlIHNvIGl0IHJlYWRzIGFzIGEgcm9vbSByYXRoZXIgdGhhbiBhIHJlY3RhbmdsZS4gKi9cbi5yYi1oZXJvOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogLTE7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS12b2lkKSAwJSwgdmFyKC0tdm9pZCkgMjYlLCByZ2JhKDQ1LCA5MCwgOTQsIDAuODYpIDQyJSwgcmdiYSg0NSwgOTAsIDk0LCAwKSA2NiUpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB2YXIoLS12b2lkKSAwJSwgdHJhbnNwYXJlbnQgMTglKTtcbn1cblxuLnJiLWhlcm9fX2NvcHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogdmFyKC0tc2hlbGwpO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogNnJlbSB2YXIoLS1nYXApIDNyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucmItaGVyb19fZXllYnJvdyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmspO1xuICBjb2xvcjogdmFyKC0taGF6YXJkKTtcbiAgcGFkZGluZzogMC4zcmVtIDAuN3JlbTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMS4yZGVnKTtcbn1cblxuLnJiLWhlcm9fX3RpdGxlIHtcbiAgZm9udC1zaXplOiBjbGFtcCgzcmVtLCA4dncsIDZyZW0pO1xuICBtYXgtd2lkdGg6IDEyY2g7XG4gIGFuaW1hdGlvbjogcmItY29weS1pbiA5MDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMywgMSkgMzAwbXMgYm90aDtcbn1cblxuQGtleWZyYW1lcyByYi1jb3B5LWluIHtcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsgfVxufVxuXG4vKiBUaGUgd29yZCB0aGUgcGFnZSB0dXJucyBvbi4gSXQgZ2xpdGNoZXMgYmVjYXVzZSB0aGUgY29uc29sZSBpcyBub3QgZW50aXJlbHlcbiAgIHdlbGwg4oCUIHJhcmVseSwgc28gaXQgcmVhZHMgYXMgYSBmYXVsdCBhbmQgbm90IGFzIGRlY29yYXRpb24uICovXG4ucmItZ2xpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiB2YXIoLS1zaWduYWwpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5yYi1nbGl0Y2g6OmJlZm9yZSxcbi5yYi1nbGl0Y2g6OmFmdGVyIHtcbiAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnJiLWdsaXRjaDo6YmVmb3JlIHsgY29sb3I6IHZhcigtLWhhemFyZCk7IH1cbi5yYi1nbGl0Y2g6OmFmdGVyIHsgY29sb3I6ICM0ZmQwZTA7IH1cblxuLnJiLWdsaXRjaFtkYXRhLWdsaXRjaGluZz0ndHJ1ZSddIHsgYW5pbWF0aW9uOiByYi13b2JibGUgMzgwbXMgZWFzZS1pbi1vdXQgMTsgfVxuXG5Aa2V5ZnJhbWVzIHJiLXdvYmJsZSB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBub25lOyB9XG4gIDI1JSB7IHRyYW5zZm9ybTogcm90YXRlKC0xLjZkZWcpIHNjYWxlKDEuMDMpOyB9XG4gIDYwJSB7IHRyYW5zZm9ybTogcm90YXRlKDEuMmRlZykgc2NhbGUoMC45OSk7IH1cbn1cblxuQGtleWZyYW1lcyByYi1nbGl0Y2gtYSB7XG4gIDAlLCAxMDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBub25lOyBjbGlwLXBhdGg6IGluc2V0KDAgMCAxMDAlIDApOyB9XG4gIDIwJSB7IG9wYWNpdHk6IDAuODsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTNweCwgLTJweCk7IGNsaXAtcGF0aDogaW5zZXQoMCAwIDYyJSAwKTsgfVxuICA1NSUgeyBvcGFjaXR5OiAwLjY7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDRweCwgMXB4KTsgY2xpcC1wYXRoOiBpbnNldCg0OCUgMCAyNCUgMCk7IH1cbn1cblxuQGtleWZyYW1lcyByYi1nbGl0Y2gtYiB7XG4gIDAlLCAxMDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiBub25lOyBjbGlwLXBhdGg6IGluc2V0KDEwMCUgMCAwIDApOyB9XG4gIDM1JSB7IG9wYWNpdHk6IDAuNTU7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDNweCwgMnB4KTsgY2xpcC1wYXRoOiBpbnNldCg3MCUgMCAwIDApOyB9XG4gIDcwJSB7IG9wYWNpdHk6IDAuNDU7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIC0xcHgpOyBjbGlwLXBhdGg6IGluc2V0KDIwJSAwIDU1JSAwKTsgfVxufVxuXG4ucmItaGVyb19fc3ViIHtcbiAgbWFyZ2luOiAxLjc1cmVtIDAgMDtcbiAgbWF4LXdpZHRoOiA0MGNoO1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6ICM5OWEyYTc7XG4gIGFuaW1hdGlvbjogcmItY29weS1pbiA5MDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMywgMSkgNDIwbXMgYm90aDtcbn1cblxuLnJiLWhlcm9fX3N1YiBzdHJvbmcgeyBjb2xvcjogI2RmZTRlNjsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gcHJpY2UgKi9cblxuLnJiLWF1dGhvcml6ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogMXJlbTtcbiAgbWFyZ2luLXRvcDogMi4yNXJlbTtcbiAgcGFkZGluZzogMS4wNjI1cmVtIDEuODc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWduYWwpO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0taW5rKTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRpc3BsYXkpO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogN3B4IDdweCAwIHZhcigtLWluayk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSA5MG1zIGVhc2UsIGJveC1zaGFkb3cgOTBtcyBlYXNlO1xuICBhbmltYXRpb246IHJiLWNvcHktaW4gOTAwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjMsIDEpIDU0MG1zIGJvdGg7XG59XG5cbi8qIE5vIGdsb3NzIHN3ZWVwIGhlcmU6IG1vdWxkZWQtcGxhc3RpYyBzaGluZSBpcyBhIHBob3RvZ3JhcGhpYyB0cmljaywgYW5kIHRoaXNcbiAgIHVuaXZlcnNlIGlzIHBhaW50ZWQuIFRoZSBidXR0b24ncyBkZXB0aCBpcyBpdHMgaW5rIG91dGxpbmUgYW5kIGhhcmQgc2hhZG93LiAqL1xuXG4ucmItYXV0aG9yaXplOmhvdmVyIHsgY29sb3I6ICNmZmY7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDJweCwgMnB4KTsgYm94LXNoYWRvdzogNXB4IDVweCAwIHZhcigtLWluayk7IH1cbi5yYi1hdXRob3JpemU6YWN0aXZlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoN3B4LCA3cHgpOyBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1pbmspOyB9XG5cbi5yYi1hdXRob3JpemVfX3ByaWNlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRhdGEpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5yYi1hdXRob3JpemVfX3dhcyB7IHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyBvcGFjaXR5OiAwLjY7IG1hcmdpbi1yaWdodDogMC4zNXJlbTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gQ09SRE9OIFRBUEUgPT1cbiAgIE9uZSBzdHJpcCwgd2hlcmUgdGhlIHBhZ2Ugc3RvcHMgc2VsbGluZyBhbmQgc3RhcnRzIGRlbW9uc3RyYXRpbmcuIEhhemFyZFxuICAgaGF0Y2hpbmcgbGl2ZXMgaW4gdGhlIGVkZ2VzIG9ubHkgc28gdGhlIHdvcmRzIHN0YXkgbGVnaWJsZSBvbiB0aGUgeWVsbG93IOKAlFxuICAgYW4gZWFybGllciB2ZXJzaW9uIHJhbiB0ZXh0IG92ZXIgdGhlIHN0cmlwZXMgYW5kIHJlYWQgYXMgYSByZW5kZXJpbmcgZmF1bHQuICovXG5cbi5yYi10YXBlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICB3aWR0aDogMTA4dnc7XG4gIG1hcmdpbi1sZWZ0OiAtNHZ3O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMWRlZyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWhhemFyZCk7XG4gIGJvcmRlci10b3A6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoXG4gICAgICAtNDVkZWcsIHZhcigtLWluaykgMCAxMHB4LCB2YXIoLS1oYXphcmQpIDEwcHggMjBweFxuICAgICkgNztcbiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggLThweCByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5yYi10YXBlX193b3JkcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMi4yNXJlbTtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBwYWRkaW5nOiAwLjRyZW0gMDtcbiAgYW5pbWF0aW9uOiByYi1jcmF3bCAzMHMgbGluZWFyIGluZmluaXRlO1xufVxuXG4ucmItdGFwZV9fd29yZHMgc3BhbiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjNlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWluayk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbkBrZXlmcmFtZXMgcmItY3Jhd2wge1xuICB0byB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzMuMzMlKTsgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBHRVNUVVJFUyA9PVxuICAgV2hhdCByZXBsYWNlZCB0aGUgbGl2ZS11bml0IG1vY2suIFRoZSBoZXJvIGFscmVhZHkgaGFzIGEgZHJhd24gYnV0dG9uOyBhIENTU1xuICAgcmVwbGljYSBvZiBpdCBiZWxvdyBjb3VsZCBvbmx5IGV2ZXIgbG9vayB3b3JzZSDigJQgdHdvIHZlcnNpb25zIG9mIG9uZSBvYmplY3QsXG4gICBhbmQgdGhlIGlsbHVzdHJhdGVkIG9uZSB3aW5zLiBUaGlzIGlzIHRoZSB0aGluZyB0aGF0IGFjdHVhbGx5IG1ha2VzIGEgc2luZ2xlXG4gICBidXR0b24gdXNlZnVsLCBhbmQgaXQgd2FzIGEgcm93IGluIGEgc3BlYyB0YWJsZS5cblxuICAgRWFjaCB0cmFjZSBpcyB0aGUgbGl0ZXJhbCBzaGFwZSBvZiB0aGF0IHByZXNzOiBhIGRvdCBpcyBhIHRhcCwgYSBiYXIgaXMgYVxuICAgaG9sZCwgYW4gb3BlbiBkb3QgaXMgdGhlIGxldC1nby4gVGhlIGRpYWdyYW0gSVMgdGhlIGV4cGxhbmF0aW9uLCBzbyBub3RoaW5nXG4gICBoZXJlIGhhcyB0byBiZSBhbmltYXRlZCB0byBlYXJuIGl0cyBwbGFjZS4gKi9cblxuLnJiLWdlc3R1cmVzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiBjbGFtcCgzcmVtLCA3dncsIDVyZW0pIDAgY2xhbXAoMnJlbSwgNHZ3LCAzcmVtKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGFuZWwpO1xufVxuXG4ucmItZ2VzdHVyZXNfX2hlYWQgeyBtYXgtd2lkdGg6IDQ2Y2g7IG1hcmdpbi1ib3R0b206IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7IH1cbi5yYi1nZXN0dXJlc19fdGl0bGUgeyBmb250LXNpemU6IGNsYW1wKDEuNzVyZW0sIDMuNnZ3LCAyLjc1cmVtKTsgbWFyZ2luOiAwLjc1cmVtIDAgMXJlbTsgfVxuLnJiLWdlc3R1cmVzX19ib2R5IHsgbWFyZ2luOiAwOyBjb2xvcjogI2MzY2FkMjsgbGluZS1oZWlnaHQ6IDEuNzsgfVxuXG4ucmItZ2VzdHVyZXNfX2dyaWQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogMS4yNXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7IC5yYi1nZXN0dXJlc19fZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH0gfVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ2MHB4KSB7IC5yYi1nZXN0dXJlc19fZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IH1cblxuLnJiLWdlc3R1cmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tdm9pZCk7XG4gIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLWluayk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXdvYmJsZSk7XG4gIGJveC1zaGFkb3c6IDhweCA4cHggMCB2YXIoLS1pbmspO1xuICBwYWRkaW5nOiAxLjVyZW0gMS4yNXJlbSAxLjI1cmVtO1xufVxuXG4ucmItZ2VzdHVyZTpudGgtY2hpbGQoZXZlbikgeyBib3JkZXItcmFkaXVzOiB2YXIoLS13b2JibGUtMik7IH1cblxuLyogVGhlIHRyYWNlOiBhIGJhc2VsaW5lIHRoZSBtYXJrcyBzaXQgb24sIGxpa2UgYSBsb2dpYyBkaWFncmFtLiAqL1xuLnJiLXRyYWNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAzNHB4O1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuXG4ucmItdHJhY2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDZweDtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQyLCAxOTcsIDE3LCAwLjI4KTtcbn1cblxuLnJiLXRyYWNlX19tYXJrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWduYWwpO1xuICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1pbmspO1xufVxuXG4vKiBPbmUgZG90OiBhIHRhcC4gKi9cbi5yYi1nZXN0dXJlLS1wcmVzcyAucmItdHJhY2VfX21hcmsgeyBsZWZ0OiAwOyB9XG5cbi8qIFR3byBkb3RzLCBjbG9zZSB0b2dldGhlcjogdGhhdCBjbG9zZW5lc3MgaXMgdGhlIHdob2xlIGdlc3R1cmUuICovXG4ucmItZ2VzdHVyZS0tZG91YmxlIC5yYi10cmFjZV9fbWFyazpmaXJzdC1jaGlsZCB7IGxlZnQ6IDA7IH1cbi5yYi1nZXN0dXJlLS1kb3VibGUgLnJiLXRyYWNlX19tYXJrOmxhc3QtY2hpbGQgeyBsZWZ0OiAyNnB4OyB9XG5cbi8qIEEgYmFyOiB0aGUgY29udGFjdCBzdGF5cyBjbG9zZWQuIEl0IGlzIHdpZGUgYmVjYXVzZSB0aGUgcHJlc3MgaXMgbG9uZy4gKi9cbi5yYi1nZXN0dXJlLS1ob2xkIC5yYi10cmFjZV9fbWFyayB7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA3NnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG4vKiBBbiBvcGVuIGRvdCBhdCB0aGUgZW5kIG9mIGEgYmFyOiB0aGUgbW9tZW50IHlvdSBsZXQgZ28uICovXG4ucmItZ2VzdHVyZS0tcmVsZWFzZSAucmItdHJhY2VfX21hcmsge1xuICBsZWZ0OiAwO1xuICB3aWR0aDogNzZweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xufVxuXG4ucmItZ2VzdHVyZS0tcmVsZWFzZSAucmItdHJhY2U6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNjhweDtcbiAgYm90dG9tOiA2cHg7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0taGF6YXJkKTtcbiAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0taW5rKTtcbn1cblxuLnJiLWdlc3R1cmVfX25hbWUge1xuICBmb250LWZhbWlseTogdmFyKC0tZGlzcGxheSk7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1sZWdlbmQpO1xuICAtd2Via2l0LXRleHQtc3Ryb2tlOiAzcHggdmFyKC0taW5rKTtcbiAgcGFpbnQtb3JkZXI6IHN0cm9rZSBmaWxsO1xufVxuXG4ucmItZ2VzdHVyZV9fd2hlbiB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1oYXphcmQpO1xufVxuXG4ucmItZ2VzdHVyZV9fZG9lcyB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1ib2R5KTtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjYzNjYWQyO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwcmVjZWRlbnQgKi9cbi8qIFRoZSBvbmUgcGFuZWwgdGhhdCBpc24ndCBhYm91dCB0aGUgcHJvZHVjdC4gVGhlIGRyYXdpbmcgYWxyZWFkeSByZXNlcnZlcyBpdHNcbiAgIGxlZnQgdHdvIHRoaXJkcyBhcyBmbGF0IHNoYWRvdywgc28gdGhlIHR5cGUgc2l0cyBpbiB0aGUgZnJhbWUgcmF0aGVyIHRoYW4gb25cbiAgIHRvcCBvZiBpdCDigJQgbm8gc2NyaW0gbmVlZGVkLCBhbmQgbm9uZSBhZGRlZDogYSBncmFkaWVudCBoZXJlIHdvdWxkIG9ubHkgbXVkXG4gICB0aGUgZmxhdCBjZWwgZmlsbCB0aGUgd2hvbGUgcGFnZSBpcyBidWlsdCBvbi4gVGhlIGZpZ3VyZSBpcyBub2JvZHkgb25cbiAgIHB1cnBvc2UuIE5hbWUgaGltIGFuZCBoYWxmIHRoZSByb29tIHN0b3BzIGxhdWdoaW5nLiAqL1xuXG4ucmItcHJlY2VkZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tdG9wOiBjbGFtcCgzcmVtLCA3dncsIDVyZW0pO1xuICBtaW4taGVpZ2h0OiBtaW4oNzB2aCwgNjIwcHgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCB2YXIoLS1pbmspO1xuICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdmFyKC0taW5rKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnJiLXByZWNlZGVudF9fcGxhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAtMTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi8uLi9wdWJsaWMvaW1hZ2VzL3ByZWNlZGVudC53ZWJwJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIC8qIFRoZSBjb25zb2xlIGFuZCB0aGUgaGFuZCBhcmUgdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIGRyYXdpbmc7IGNyb3AgZnJvbSB0aGVcbiAgICAgbGVmdCwgd2hlcmUgdGhlcmUgaXMgb25seSBzaGFkb3cgdG8gbG9zZS4gKi9cbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5yYi1wcmVjZWRlbnRfX2NvcHkge1xuICBtYXgtd2lkdGg6IHZhcigtLXNoZWxsKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IGNsYW1wKDIuNXJlbSwgNnZ3LCA0cmVtKSB2YXIoLS1nYXApO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnJiLXByZWNlZGVudF9faW5uZXIgeyBtYXgtd2lkdGg6IDMwcmVtOyB9XG5cbi8qIC5yYi1kaXNwbGF5IGlua3MgZXZlcnkgaGVhZGxpbmUgYXQgYSBmbGF0IDZweC83cHgsIHdoaWNoIHdhcyB0dW5lZCBhZ2FpbnN0IHRoZVxuICAgaGVybyBhdCBpdHMgNnJlbSBjZWlsaW5nIOKAlCBhYm91dCA2JSBvZiB0aGUgY2FwIGhlaWdodC4gVGhpcyB0aXRsZSBjbGFtcHMgZG93biB0b1xuICAgMi4yNXJlbSBvbiBhIHBob25lLCB3aGVyZSB0aGF0IHNhbWUgN3B4IGlzIGEgcXVhcnRlciBvZiB0aGUgbGV0dGVyIGFuZCB0aGUgdHdvXG4gICBsaW5lcyBjbG9zZSBpbnRvIGEgc211ZGdlLiBUaWUgdGhlIGluayB0byB0aGUgZm9udCBpbnN0ZWFkOiAwLjA2MmVtIHJlc29sdmVzIHRvXG4gICB+NnB4IGF0IHRoZSBoZXJvJ3Mgc2l6ZSwgc28gdGhlIHdlaWdodCBtYXRjaGVzIGJ5IHJhdGlvIGF0IGV2ZXJ5IHdpZHRoLiBTY29wZWRcbiAgIGhlcmUgcmF0aGVyIHRoYW4gcmFpc2VkIHRvIC5yYi1kaXNwbGF5IOKAlCB0aGUgcGFuZWxzJyBoZWF2eSBvdXRsaW5lIGF0IHNtYWxsIHR5cGVcbiAgIGlzIHRoZSBjYXJ0b29uIGxvb2ssIG5vdCBhbiBhY2NpZGVudC4gKi9cbi5yYi1wcmVjZWRlbnRfX3RpdGxlIHtcbiAgZm9udC1zaXplOiBjbGFtcCgyLjI1cmVtLCA1dncsIDMuNXJlbSk7XG4gIG1hcmdpbjogMC43NXJlbSAwIDFyZW07XG4gIC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDAuMDYyZW07XG4gIHRleHQtc2hhZG93OiAwLjA3MmVtIDAuMDcyZW0gMCB2YXIoLS1pbmspO1xufVxuXG4ucmItcHJlY2VkZW50X19ib2R5IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWJvZHkpO1xuICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6ICNjZmQ2ZGQ7XG4gIG1heC13aWR0aDogMjdyZW07XG59XG5cbi8qIERlYWRwYW4sIHNtYWxsLCBhbmQgc2V0IGxpa2UgYSBwbGF0ZSBjYXB0aW9uIGluIGEgbWFudWFsIOKAlCBpdCdzIHRoZSBmb290bm90ZVxuICAgdGhhdCBhZG1pdHMgdGhlIGRyYXdpbmcgaXMgYSBkcmF3aW5nLiAqL1xuLnJiLXByZWNlZGVudF9fY2FwdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZGF0YSk7XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1pbmspO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1oYXphcmQpO1xuICBwYWRkaW5nOiAwLjNyZW0gMC42cmVtO1xuICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1pbmspO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMS4yZGVnKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIC8qIFVuZGVyIH43MjBweCB0aGUgY29weSB3b3VsZCBzaXQgb24gdGhlIGZpZ3VyZS4gRHJvcCB0aGUgZHJhd2luZyB0byBpdHMgb3duXG4gICAgIGJhbmQgYWJvdmUgdGhlIHdvcmRzIGluc3RlYWQgb2YgZmlnaHRpbmcgZm9yIHRoZSBzYW1lIHJlY3RhbmdsZS4gKi9cbiAgLnJiLXByZWNlZGVudCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gIC8qIFRoZSBkcmF3aW5nJ3MgbGVmdCBoYWxmIGlzIGVtcHR5IHNoYWRvdyBvbiBwdXJwb3NlIOKAlCBpdCdzIHdoZXJlIHRoZSBkZXNrdG9wXG4gICAgIHR5cGUgc2l0cy4gU3RhY2tlZCwgdGhhdCBzcGFjZSBob2xkcyBub3RoaW5nLCBzbyBnaXZlIHRoZSBiYW5kIGEgcG9ydHJhaXQtaXNoXG4gICAgIHJhdGlvOiBgY292ZXJgIHRoZW4gY3JvcHMgd2lkdGggcmF0aGVyIHRoYW4gaGVpZ2h0LCBhbmQgd2l0aCB0aGUgcG9zaXRpb25cbiAgICAgcGlubmVkIHJpZ2h0IHRoZSBjb25zb2xlIGZpbGxzIHRoZSBmcmFtZSBhdCBhbnkgcGhvbmUgd2lkdGguICovXG4gIC5yYi1wcmVjZWRlbnRfX3BsYXRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaW5zZXQ6IGF1dG87XG4gICAgei1pbmRleDogMDtcbiAgICBhc3BlY3QtcmF0aW86IDEuMjtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdmFyKC0taW5rKTtcbiAgfVxuXG4gIC5yYi1wcmVjZWRlbnRfX2JvZHkgeyBtYXgtd2lkdGg6IG5vbmU7IH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBtb2R1bGVzICovXG5cbi5yYi1tb2R1bGVzIHtcbiAgcGFkZGluZy10b3A6IGNsYW1wKDNyZW0sIDd2dywgNXJlbSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMS4yNXJlbTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDgyMHB4KSB7IC5yYi1tb2R1bGVzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0gfVxuXG4ucmItbW9kdWxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7XG4gIHBhZGRpbmc6IGNsYW1wKDEuNXJlbSwgMy41dncsIDIuMjVyZW0pO1xuICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS1pbmspO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS13b2JibGUpO1xuICBib3gtc2hhZG93OiA4cHggOHB4IDAgdmFyKC0taW5rKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE4cHgpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDUyMG1zIGVhc2UsIHRyYW5zZm9ybSA1MjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMywgMSk7XG59XG5cbi5yYi1tb2R1bGU6bnRoLWNoaWxkKGV2ZW4pIHsgYm9yZGVyLXJhZGl1czogdmFyKC0td29iYmxlLTIpOyB9XG4ucmItbW9kdWxlW2RhdGEtc2Vlbj0ndHJ1ZSddIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB9XG4ucmItbW9kdWxlLS13aWRlIHsgZ3JpZC1jb2x1bW46IDEgLyAtMTsgfVxuXG4ucmItbW9kdWxlIGgyIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRpc3BsYXkpO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZCk7XG4gIG1hcmdpbjogMC43NXJlbSAwIDFyZW07XG4gIC13ZWJraXQtdGV4dC1zdHJva2U6IDRweCB2YXIoLS1pbmspO1xuICBwYWludC1vcmRlcjogc3Ryb2tlIGZpbGw7XG59XG5cbi5yYi1tb2R1bGUgcCB7IG1hcmdpbjogMDsgY29sb3I6ICM4ZDk2OWI7IGxpbmUtaGVpZ2h0OiAxLjc7IGZvbnQtc2l6ZTogMC45Mzc1cmVtOyBtYXgtd2lkdGg6IDU4Y2g7IH1cbi5yYi1tb2R1bGVfX25vdGUgeyBtYXJnaW4tdG9wOiAxLjI1cmVtICFpbXBvcnRhbnQ7IH1cblxuLnJiLWVmZmVjdHMgeyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDEuMjVyZW0gMCAwOyBwYWRkaW5nOiAwOyB9XG5cbi5yYi1lZmZlY3RzIGxpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDAuODc1cmVtO1xuICBwYWRkaW5nOiAwLjY4NzVyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IGRhc2hlZCByZ2JhKDI0MiwgMTk3LCAxNywgMC4yNCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1sZWdlbmQpO1xufVxuXG4ucmItZWZmZWN0cyBsaTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogMDsgfVxuLnJiLWVmZmVjdHMgbGk6OmJlZm9yZSB7IGNvbnRlbnQ6ICfilrgnOyBjb2xvcjogdmFyKC0tc2lnbmFsKTsgZm9udC1zaXplOiAwLjY4NzVyZW07IH1cblxuLnJiLWVmZmVjdHMgbGkgZW0ge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBjb2xvcjogdmFyKC0tbGVnZW5kLWRpbSk7XG4gIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5yYi1zcGVjIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IG1hcmdpbi10b3A6IDEuMjVyZW07IGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTsgZm9udC1zaXplOiAwLjgxMjVyZW07IH1cbi5yYi1zcGVjIHRoLCAucmItc3BlYyB0ZCB7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDAuNjI1cmVtIDA7IGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgcmdiYSgyNDIsIDE5NywgMTcsIDAuMjQpOyB9XG5cbi5yYi1zcGVjIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZC1kaW0pO1xuICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgd2lkdGg6IDQ1JTtcbn1cblxuLnJiLXNwZWMgdGQgeyBjb2xvcjogdmFyKC0tbGVnZW5kKTsgfVxuLnJiLXNwZWMgdHI6bGFzdC1jaGlsZCB0aCwgLnJiLXNwZWMgdHI6bGFzdC1jaGlsZCB0ZCB7IGJvcmRlci1ib3R0b206IDA7IH1cblxuLnJiLXByb2NlZHVyZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWluayk7XG4gIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLWluayk7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDEuMTI1cmVtIDEuMjVyZW07XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS45O1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4ucmItcHJvY2VkdXJlIHsgY29sb3I6IHZhcigtLWhhemFyZCk7IH1cbi5yYi1wcm9jZWR1cmUgLmMtcHJvbXB0IHsgY29sb3I6IHZhcigtLWhhemFyZCk7IH1cbi5yYi1wcm9jZWR1cmUgLmMta2V5IHsgY29sb3I6ICNmZjhhN2U7IH1cbi5yYi1wcm9jZWR1cmUgLmMtc3RyIHsgY29sb3I6ICNjYmI0NmE7IH1cbi5yYi1wcm9jZWR1cmUgLmMtZGltIHsgY29sb3I6ICM2Zjc2N2M7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZm9vdGVyICovXG5cbi5yYi1mb290ZXIge1xuICBwYWRkaW5nOiAzcmVtIDAgNHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDFyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnJiLWZvb3RlciBhIHsgY29sb3I6IHZhcigtLWxlZ2VuZC1kaW0pOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi5yYi1mb290ZXIgYSB7IGNvbG9yOiB2YXIoLS1oYXphcmQpOyB9XG4ucmItZm9vdGVyIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0tbGVnZW5kKTsgfVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSByZWR1Y2VkIG1vdGlvbiAqL1xuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAucmItbGFtcCxcbiAgLnJiLWhlcm9fX3BsYXRlLFxuICAucmItaGVyb19fdGl0bGUsXG4gIC5yYi1oZXJvX19zdWIsXG4gIC5yYi1hdXRob3JpemUsXG4gIC5yYi10YXBlX193b3JkcyB7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAucmItYXV0aG9yaXplIHsgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAucmItbW9kdWxlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBub25lOyB0cmFuc2l0aW9uOiBub25lOyB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGhlIHJlc3Qgb2YgdGhlIHNob3Ag4oCUIHByb2R1Y3QsIGNhcnQsIGNoZWNrb3V0LCBhY2NvdW50LlxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIFRoZSBsYW5kaW5nIGlzIHRoZSBkZXZpY2UncyBmYWNlOyB0aGVzZSBwYWdlcyBhcmUgdGhlIHBhcGVyd29yayB0aGF0IGNvbWVzXG4gICB3aXRoIGl0LiBTYW1lIHJvb20sIHNhbWUgcGFuZWwsIHNhbWUgdHlwZWZhY2VzLCBidXQgY2FsbWVyOiBub2JvZHkgd2FudHMgYVxuICAgZ2xpdGNoaW5nIGhlYWRsaW5lIHdoaWxlIHR5cGluZyB0aGVpciBjYXJkIG51bWJlci4gQm9sZG5lc3Mgc3RheXMgc3BlbnQgb25cbiAgIHRoZSBsYW5kaW5nLiBIZXJlIHRoZSBqb2IgaXMgb25seSB0byBub3QgYnJlYWsgdGhlIHNwZWxsLlxuXG4gICBTeWxpdXMgc2hpcHMgQm9vdHN0cmFwIDUgbWFya3VwLCBzbyB0aGlzIG92ZXJyaWRlcyBCb290c3RyYXAncyBvd24gY2xhc3Nlc1xuICAgcmF0aGVyIHRoYW4gaW50cm9kdWNpbmcgbmV3IG9uZXMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5ib2R5Om5vdChbZGF0YS1yb3V0ZT0nc3lsaXVzX3Nob3BfaG9tZXBhZ2UnXSkge1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudCgxMjAlIDYwJSBhdCA1MCUgMCUsICMxNjE5MWIgMCUsIHRyYW5zcGFyZW50IDU1JSksXG4gICAgdmFyKC0tdm9pZCk7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBjaHJvbWUgKi9cblxuYm9keTpub3QoW2RhdGEtcm91dGU9J3N5bGl1c19zaG9wX2hvbWVwYWdlJ10pIC5uYXZiYXIsXG5ib2R5Om5vdChbZGF0YS1yb3V0ZT0nc3lsaXVzX3Nob3BfaG9tZXBhZ2UnXSkgaGVhZGVyIC5iZy1ibGFjayxcbmJvZHk6bm90KFtkYXRhLXJvdXRlPSdzeWxpdXNfc2hvcF9ob21lcGFnZSddKSBoZWFkZXIgLmNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNjb3BlZCBhd2F5IGZyb20gdGhlIGhvbWVwYWdlOiB0aGUgbGFuZGluZydzIHN0YXR1cyBiYXIgaXMgYSA8aGVhZGVyPiB0b28sIGFuZCB0aGlzXG4gICBncmFkaWVudCBwYWludGVkIGEgc2xhYiBhY3Jvc3MgdGhlIGhlcm8gcGhvdG9ncmFwaC4gKi9cbmJvZHk6bm90KFtkYXRhLXJvdXRlPSdzeWxpdXNfc2hvcF9ob21lcGFnZSddKSBoZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFlMjMyNTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzFhMWUyMCwgIzEzMTYxNyk7XG59XG5cbi8qIE91ciBtYXJrLCBzd2FwcGVkIGluIHZpYSB0aGUgbG9nbyBob29rYWJsZSAoc2VlIHRlbXBsYXRlcy9zaG9wL2xvZ28uaHRtbC50d2lnKS4gKi9cbi5yYi1zaG9wbG9nbyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNjI1cmVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5yYi1zaG9wbG9nbyBpbWcgeyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA2cHggcmdiYSgyMjIsIDI3LCAxNSwgMC40NSkpOyBmbGV4OiBub25lOyB9XG5cbi8qIFN5bGl1cyBwaW5zIHRoZSBsb2dvIGFuY2hvciB0byAxMHJlbSBmb3IgaXRzIHdvcmRtYXJrIFNWRzsgb3VycyBuZWVkcyByb29tIHRvIGJyZWF0aGUuICovXG5oZWFkZXIgYVthcmlhLWxhYmVsPSdzeWxpdXMgbG9nbyddIHsgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfVxuXG4ucmItc2hvcGxvZ29fX3dvcmQge1xuICBmb250LWZhbWlseTogdmFyKC0tZGF0YSk7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM2VtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2VlZjFmMjtcbn1cblxuLnJiLXNob3Bsb2dvX193b3JkIHNwYW4geyBjb2xvcjogdmFyKC0tc2lnbmFsKTsgfVxuLnJiLXNob3Bsb2dvOmhvdmVyIC5yYi1zaG9wbG9nb19fd29yZCB7IGNvbG9yOiB2YXIoLS1oYXphcmQpOyB9XG5cbmJvZHk6bm90KFtkYXRhLXJvdXRlPSdzeWxpdXNfc2hvcF9ob21lcGFnZSddKSBmb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzFlMjMyNTtcbiAgYmFja2dyb3VuZDogIzEwMTMxNDtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZC1kaW0pO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0eXBvZ3JhcGh5ICovXG5cbmgxLCBoMiwgaDMsIGg0LCBoNSxcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2VlZjFmMjtcbn1cblxuYSB7IGNvbG9yOiB2YXIoLS1sZWdlbmQpOyB9XG5hOmhvdmVyIHsgY29sb3I6IHZhcigtLWhhemFyZCk7IH1cblxuLnRleHQtYm9keSwgLnRleHQtZGFyaywgLnRleHQtYmxhY2sgeyBjb2xvcjogdmFyKC0tbGVnZW5kKSAhaW1wb3J0YW50OyB9XG4udGV4dC1tdXRlZCwgLnRleHQtc2Vjb25kYXJ5IHsgY29sb3I6IHZhcigtLWxlZ2VuZC1kaW0pICFpbXBvcnRhbnQ7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHBhbmVscyAqL1xuXG4uY2FyZCxcbi5saXN0LWdyb3VwLWl0ZW0sXG4uYWNjb3JkaW9uLWl0ZW0sXG4ub2ZmY2FudmFzLFxuLm1vZGFsLWNvbnRlbnQsXG4uZHJvcGRvd24tbWVudSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMyMTI2MjkgMCUsICMxYjFmMjEgMTAwJSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyYjMxMzQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZCk7XG59XG5cbi5jYXJkLWhlYWRlciwgLmNhcmQtZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogIzFhMWUyMDtcbiAgYm9yZGVyLWNvbG9yOiAjMmIzMTM0O1xuICBjb2xvcjogdmFyKC0tbGVnZW5kKTtcbn1cblxuLyogRXZlcnl0aGluZyB0aGF0IGlzbid0IHRoZSBjb25zb2xlIGlzIHF1aWV0ZXI6IGhhaXJsaW5lLCBub3QgaW5rZWQuIFRoZSBjb21pY1xuICAgcGFuZWxzIGJlbG9uZyB0byB0aGUgbGFuZGluZy4gKi9cbi5iZy1ib2R5LCAuYmctd2hpdGUsIC5iZy1saWdodCwgLmJnLWJvZHktdGVydGlhcnksIC5iZy1ib2R5LXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQ6ICMxYjFmMjEgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZCkgIWltcG9ydGFudDtcbn1cblxuaHIsIC5ib3JkZXIsIC5ib3JkZXItdG9wLCAuYm9yZGVyLWJvdHRvbSwgLmJvcmRlci1zdGFydCwgLmJvcmRlci1lbmQge1xuICBib3JkZXItY29sb3I6ICMyYjMxMzQgIWltcG9ydGFudDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYnV0dG9ucyAqL1xuXG4uYnRuIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEyMG1zIGVhc2UsIGJveC1zaGFkb3cgMTYwbXMgZWFzZSwgYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xufVxuXG4uYnRuOmFjdGl2ZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpOyB9XG5cbi8qIFJlZCBpcyB0aGUgZGV2aWNlOiB0aGUgYnV0dG9uIHRoYXQgY29tbWl0cyBpcyB0aGUgb25seSByZWQgb25lIG9uIHRoZSBwYWdlLiAqL1xuLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2lnbmFsKTtcbiAgYm9yZGVyLWNvbG9yOiAjZmY1NTQ1O1xuICBjb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzogMCA4cHggMjBweCAtOHB4IHJnYmEoMjIyLCAyNywgMTUsIDAuNyk7XG59XG5cbi5idG4tcHJpbWFyeTpob3Zlcixcbi5idG4tcHJpbWFyeTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNmMjJhMWQ7XG4gIGJvcmRlci1jb2xvcjogI2ZmNmE1YztcbiAgY29sb3I6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAyMnB4IHJnYmEoMjIyLCAyNywgMTUsIDAuNCksIDAgOHB4IDIwcHggLThweCByZ2JhKDIyMiwgMjcsIDE1LCAwLjgpO1xufVxuXG4uYnRuLXNlY29uZGFyeSwgLmJ0bi1vdXRsaW5lLXByaW1hcnksIC5idG4tb3V0bGluZS1zZWNvbmRhcnksIC5idG4tbGlnaHQsIC5idG4tb3V0bGluZS1kYXJrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogIzNhNDI0NztcbiAgY29sb3I6IHZhcigtLWxlZ2VuZCk7XG59XG5cbi5idG4tc2Vjb25kYXJ5OmhvdmVyLCAuYnRuLW91dGxpbmUtcHJpbWFyeTpob3Zlcixcbi5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIsIC5idG4tbGlnaHQ6aG92ZXIsIC5idG4tb3V0bGluZS1kYXJrOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzI2MmMyZjtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1oYXphcmQpO1xuICBjb2xvcjogdmFyKC0taGF6YXJkKTtcbn1cblxuLmJ0bi1kYW5nZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1zaWduYWwpOyBib3JkZXItY29sb3I6ICNmZjU1NDU7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBmb3JtcyAqL1xuXG4uZm9ybS1jb250cm9sLCAuZm9ybS1zZWxlY3QsIC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgYmFja2dyb3VuZDogIzE0MTgxYTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzM2IzZjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogI2VlZjFmMjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRhdGEpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG4uZm9ybS1jb250cm9sOmZvY3VzLCAuZm9ybS1zZWxlY3Q6Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjMTQxODFhO1xuICBib3JkZXItY29sb3I6IHZhcigtLWhhemFyZCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI0MiwgMTk3LCAxNywgMC4xNik7XG4gIGNvbG9yOiAjZWVmMWYyO1xufVxuXG4uZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAjNWM2NjZhOyB9XG5cbi5mb3JtLWxhYmVsLCBsZWdlbmQge1xuICBmb250LWZhbWlseTogdmFyKC0tZGF0YSk7XG4gIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4xOGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tbGVnZW5kLWRpbSk7XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0IHsgYmFja2dyb3VuZC1jb2xvcjogIzE0MTgxYTsgYm9yZGVyLWNvbG9yOiAjM2E0MjQ3OyB9XG4uZm9ybS1jaGVjay1pbnB1dDpjaGVja2VkIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lnbmFsKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1zaWduYWwpOyB9XG5cbi5pbnZhbGlkLWZlZWRiYWNrLCAudGV4dC1kYW5nZXIgeyBjb2xvcjogI2ZmNmE1YyAhaW1wb3J0YW50OyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0YWJsZXMgKi9cblxuLnRhYmxlIHtcbiAgLS1icy10YWJsZS1iZzogdHJhbnNwYXJlbnQ7XG4gIC0tYnMtdGFibGUtY29sb3I6IHZhcigtLWxlZ2VuZCk7XG4gIC0tYnMtdGFibGUtYm9yZGVyLWNvbG9yOiAjMmIzMTM0O1xuICAtLWJzLXRhYmxlLXN0cmlwZWQtYmc6ICMxZTIzMjU7XG4gIC0tYnMtdGFibGUtc3RyaXBlZC1jb2xvcjogdmFyKC0tbGVnZW5kKTtcbiAgLS1icy10YWJsZS1ob3Zlci1iZzogIzIzMjgyYjtcbiAgLS1icy10YWJsZS1ob3Zlci1jb2xvcjogI2VlZjFmMjtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG59XG5cbi50YWJsZSB0aGVhZCB0aCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1sZWdlbmQtZGltKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzNiM2Y7XG59XG5cbi8qIE1vbmV5IGlzIG1hY2hpbmUgb3V0cHV0IOKAlCBpdCBsaW5lcyB1cCBiZWNhdXNlIGl0J3MgbW9ub3NwYWNlZC4gKi9cbi50YWJsZSB0ZDpsYXN0LWNoaWxkLFxuLnByaWNlLCBbY2xhc3MqPSdwcmljZSddIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRhdGEpO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2hlY2tvdXQgKi9cblxuLyogVGhlIGNoZWNrb3V0IHN0ZXBzIGFyZSBhIHByb2NlZHVyZSwgc28gdGhleSByZWFkIGxpa2Ugb25lLiAqL1xuLm5hdi1waWxscyAubmF2LWxpbmssXG4uc3RlcHMgLnN0ZXAsXG4uYnJlYWRjcnVtYi1pdGVtIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRhdGEpO1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTZlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHZhcigtLWxlZ2VuZC1kaW0pO1xufVxuXG4ubmF2LXBpbGxzIC5uYXYtbGluay5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWduYWwpO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vKiBCb290c3RyYXAncyBicmVhZGNydW1iIHNoaXBzIG5lYXItYmxhY2sgbGlua3MsIHdoaWNoIHZhbmlzaCBvbiB0aGlzIGJhY2tncm91bmQuICovXG4uYnJlYWRjcnVtYiB7IC0tYnMtYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAjNGE1MjU3OyB9XG4uYnJlYWRjcnVtYi1pdGVtLCAuYnJlYWRjcnVtYi1pdGVtIGEsIC5icmVhZGNydW1iIGEgeyBjb2xvcjogdmFyKC0tbGVnZW5kLWRpbSkgIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4uYnJlYWRjcnVtYi1pdGVtIGE6aG92ZXIgeyBjb2xvcjogdmFyKC0taGF6YXJkKTsgfVxuLmJyZWFkY3J1bWItaXRlbS5hY3RpdmUsIC5icmVhZGNydW1iLWl0ZW0uYWN0aXZlIGEgeyBjb2xvcjogdmFyKC0tbGVnZW5kKSAhaW1wb3J0YW50OyB9XG4uYnJlYWRjcnVtYi1pdGVtICsgLmJyZWFkY3J1bWItaXRlbTo6YmVmb3JlIHsgY29sb3I6ICM0YTUyNTc7IH1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG1pc2MgKi9cblxuLmFsZXJ0IHtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG59XG5cbi5hbGVydC1zdWNjZXNzIHsgYmFja2dyb3VuZDogIzE2MjQxYzsgYm9yZGVyLWNvbG9yOiAjMmY1YjQwOyBjb2xvcjogIzllZDdhZTsgfVxuLmFsZXJ0LWRhbmdlciB7IGJhY2tncm91bmQ6ICMyYTE2MTQ7IGJvcmRlci1jb2xvcjogIzZiMmEyNDsgY29sb3I6ICNmZmE3OWM7IH1cbi5hbGVydC1pbmZvLCAuYWxlcnQtd2FybmluZyB7XG4gIGJhY2tncm91bmQ6ICMyYTI0MTM7XG4gIGJvcmRlci1jb2xvcjogIzZiNWEyNDtcbiAgY29sb3I6IHZhcigtLWhhemFyZCk7XG59XG5cbi5iYWRnZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1kYXRhKTsgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTsgYm9yZGVyLXJhZGl1czogMnB4OyB9XG4uYmctcHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLXNpZ25hbCkgIWltcG9ydGFudDsgfVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgYmFja2dyb3VuZDogIzFiMWYyMTtcbiAgYm9yZGVyLWNvbG9yOiAjMmIzMTM0O1xuICBjb2xvcjogdmFyKC0tbGVnZW5kKTtcbn1cblxuLnBhZ2luYXRpb24gLnBhZ2UtaXRlbS5hY3RpdmUgLnBhZ2UtbGluayB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNpZ25hbCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2lnbmFsKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi8qIFByb2R1Y3QgaW1hZ2VyeSBzaXRzIG9uIGluaywgbGlrZSBhIHBsYXRlIGluIGEgbWFudWFsLiAqL1xuLmNhcmQtaW1nLXRvcCwgLnByb2R1Y3QtaW1hZ2UsIGZpZ3VyZSBpbWcge1xuICBiYWNrZ3JvdW5kOiAjMGUxMTEyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/