/*!*************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/SliceTransformToolbar.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************************/
.slice-transform-toolbar {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/LayersDrawer.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************/
.layers-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: min(360px, 92vw);
  background: #fff;
  border-left: 1px solid #eaeaea;
  transform: translateX(102%);
  transition: transform 180ms ease;
  z-index: 9999;
  display: flex;
  flex-direction: column;
}
.layers-drawer .canvas-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-bottom: 1px solid #eaeaea;
}
.layers-drawer .canvas-row .canvas-row-title {
  font-weight: bold;
  margin-right: 4px;
}
.layers-drawer .canvas-row .canvas-row-fields {
  display: flex;
  align-items: center;
  gap: 6px;
}
.layers-drawer .canvas-row .canvas-row-fields label {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.layers-drawer .canvas-row .canvas-row-fields input {
  width: 62px;
}
.layers-drawer .canvas-row .canvas-fit {
  flex: 1 1 auto;
}
.layers-drawer.open {
  transform: translateX(0);
}
.layers-drawer > .header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px dotted #eaeaea;
}
.layers-drawer > .header > .title {
  font-size: 16px;
  font-weight: 700;
}
.layers-drawer > .header > .close {
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  padding: 4px 8px;
}
.layers-drawer > .subtitle {
  padding: 6px 12px;
  font-size: 12px;
  color: #666;
  border-bottom: 1px dotted #eaeaea;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6px 8px;
}
.layers-drawer > .subtitle > .subtitle-left {
  min-width: 0;
}
.layers-drawer > .subtitle > .subtitle-right {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 6px;
  margin-left: auto;
}
.layers-drawer > .subtitle > .subtitle-right > .btn-common {
  font-size: 12px;
  white-space: nowrap;
  flex: 0 0 auto;
}
.layers-drawer > .list {
  overflow: auto;
  padding: 8px 8px 12px;
}
.layers-drawer > .list > .item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px dotted #eaeaea;
  margin: 0 0 8px 0;
  background: #fff;
  cursor: pointer;
}
.layers-drawer > .list > .item:hover {
  background: #f7f7f7;
}
.layers-drawer > .list > .item:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}
.layers-drawer > .list > .item.current {
  border: 1px solid #239373;
  background: #f0fbf7;
}
.layers-drawer > .list > .item.hidden {
  opacity: 0.55;
}
.layers-drawer > .list > .item.dragging {
  opacity: 0.4;
}
.layers-drawer > .list > .item.drop-above::before, .layers-drawer > .list > .item.drop-below::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 0;
  border-top: 1px solid #504ff6;
  pointer-events: none;
}
.layers-drawer > .list > .item.drop-above::before {
  top: -5px;
}
.layers-drawer > .list > .item.drop-below::after {
  bottom: -5px;
}
.layers-drawer > .list > .item > .eye {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border: 1px solid #eaeaea;
  background: #fafafa;
  cursor: pointer;
  line-height: 1;
}
.layers-drawer > .list > .item > .eye.off {
  color: #aaa;
  background: #fff;
}
.layers-drawer > .list > .item > .thumb {
  width: 44px;
  height: 44px;
  border: 1px solid #eaeaea;
  background: #fafafa;
  flex: 0 0 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.layers-drawer > .list > .item > .thumb img {
  width: 44px;
  height: 44px;
  object-fit: cover;
  display: block;
}
.layers-drawer > .list > .item > .thumb .thumb-empty,
.layers-drawer > .list > .item > .thumb .thumb-bg {
  width: 100%;
  height: 100%;
}
.layers-drawer > .list > .item > .thumb .thumb-empty {
  background: repeating-linear-gradient(45deg, #f7f7f7, #f7f7f7 6px, #fff 6px, #fff 12px);
}
.layers-drawer > .list > .item > .thumb .thumb-bg {
  background: #fff;
  border: 1px solid #eaeaea;
}
.layers-drawer > .list > .item > .body {
  min-width: 0;
  flex: 1 1 auto;
}
.layers-drawer > .list > .item > .body > .name-input {
  width: 100%;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #504ff6;
  background: transparent;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
}
.layers-drawer > .list > .item > .body > .name-input:focus {
  outline: none;
}
.layers-drawer > .list > .item > .body > .name {
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.layers-drawer > .list > .item > .body > .controls {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
}
.layers-drawer > .list > .item > .body > .controls > .blend {
  font-size: 11px;
  max-width: 110px;
}
.layers-drawer > .list > .item > .body > .controls > .opacity {
  flex: 1 1 auto;
  min-width: 0;
}
.layers-drawer > .list > .item > .delete {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  line-height: 1;
}
/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/AuthModal.scss ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
/* Modal UI for "real auth" and dev-auth variant. */
.auth-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  opacity: 0;
  transition: opacity 300ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.auth-modal-overlay[data-state=open] {
  opacity: 1;
}
.auth-modal-overlay[data-state=exit] {
  opacity: 0;
  pointer-events: none;
}
.auth-modal-overlay .auth-modal {
  position: relative;
  width: min(980px, 100vw - 24px);
  height: min(640px, 100vh - 24px);
  background: #fff;
  border-radius: 3px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.12fr 1fr;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
  line-height: 1.25;
  box-sizing: border-box;
  transform-origin: center;
  transform: scale(0.6);
  opacity: 0;
  transition: transform 300ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 300ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.auth-modal-overlay .auth-modal .auth-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1;
  width: 28px;
  height: 28px;
  border-radius: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.auth-modal-overlay .auth-modal .auth-modal-close:hover {
  background: #f3f3f3;
}
.auth-modal-overlay .auth-modal .auth-modal-left {
  position: relative;
  background: #111;
  overflow: hidden;
}
.auth-modal-overlay .auth-modal .auth-modal-left .auth-modal-left-image {
  width: 100%;
  height: 100%;
  display: block;
}
.auth-modal-overlay .auth-modal .auth-modal-left::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(900px 520px at 20% 15%, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 55%), linear-gradient(180deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.38));
  pointer-events: none;
}
.auth-modal-overlay .auth-modal .auth-modal-right {
  padding: 22px 22px 18px;
  overflow: auto;
  box-sizing: border-box;
  background: #fff;
  border-left: 1px dotted #eaeaea;
  font-size: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-hero {
  text-align: center;
  margin-top: 2px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-hero-title {
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -0.02em;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-hero-subtitle {
  margin-top: 10px;
  font-size: 14px;
  color: #444;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-form-switch {
  text-align: center;
  color: #444;
  margin-top: 6px;
  margin-bottom: 2px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-field {
  display: block;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-field-label {
  font-size: 14px;
  font-weight: 800;
  color: #111;
  margin-bottom: 8px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-input-with-icon {
  position: relative;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-icon-btn {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: none;
  cursor: pointer;
  padding: 4px 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-icon-btn .auth-icon {
  width: 16px;
  height: 16px;
  display: block;
  opacity: 0.75;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-icon-btn:hover .auth-icon {
  opacity: 1;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-remember-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 6px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-toggle {
  position: relative;
  width: 54px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  padding: 0;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-toggle-knob {
  position: absolute;
  top: 50%;
  left: 3px;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #111;
  transition: left 160ms ease, background 160ms ease;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-toggle.on .auth-toggle-knob {
  left: 27px;
  background: #111;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-remember-label {
  font-size: 14px;
  font-weight: 400;
  color: #111;
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-forgot {
  margin-top: 6px;
  text-align: center;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-title {
  font-size: 20px;
  font-weight: 900;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-toggle-row {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-toggle-row button {
  padding: 6px 10px;
  font-size: 13px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-toggle-row button.active {
  border-color: #239373;
  background: #f0fbf7;
  font-weight: 700;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-field {
  display: block;
  margin-bottom: 12px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-label {
  font-size: 12px;
  color: #444;
  margin-bottom: 4px;
  font-weight: 700;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-field input {
  width: 100%;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid #ddd;
  font-size: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 10px 0 6px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-actions button {
  padding: 9px 12px;
  border-radius: 12px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-actions button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-note {
  font-size: 13px;
  color: #333;
  margin: 10px 0;
  padding: 10px 12px;
  border: 1px solid #eee;
  border-radius: 12px;
  background: #fafafa;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #eee;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-title {
  font-size: 13px;
  font-weight: 900;
  margin-bottom: 10px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-section {
  margin-bottom: 14px;
  padding: 10px 12px;
  border: 1px solid #eee;
  border-radius: 12px;
  background: #fff;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-section-title {
  font-weight: 900;
  font-size: 13px;
  margin-bottom: 6px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-dev-section-subtitle {
  font-size: 12px;
  color: #555;
  line-height: 1.35;
  margin-bottom: 10px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-info {
  margin-top: 10px;
  color: #1b5e20;
  font-size: 13px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-error {
  margin-top: 10px;
  color: #b00020;
  font-size: 13px;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-legal {
  margin-top: 14px;
  font-size: 12px;
  color: #666;
  line-height: 1.35;
}
.auth-modal-overlay .auth-modal .auth-modal-right .auth-modal-legal a {
  color: inherit;
  text-decoration: underline;
}
.auth-modal-overlay[data-state=open] .auth-modal {
  transform: scale(1);
  opacity: 1;
}
.auth-modal-overlay[data-state=exit] .auth-modal {
  transform: scale(0.6);
  opacity: 0;
}
@media (max-width: 820px) {
  .auth-modal-overlay .auth-modal {
    grid-template-columns: 1fr;
    height: auto;
    max-height: calc(100vh - 24px);
  }
  .auth-modal-overlay .auth-modal-left {
    height: 220px;
  }
  .auth-modal-overlay .auth-modal-right {
    padding: 20px 16px 16px;
    border-left: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .auth-modal-overlay {
    transition: none !important;
  }
  .auth-modal-overlay .auth-modal {
    transition: none !important;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/AuthLauncher.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************************/
.auth-launcher-btn {
  position: fixed;
  right: 12px;
  bottom: 12px;
  z-index: 99999;
  max-width: min(320px, 100vw - 24px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.auth-launcher-manage {
  bottom: 48px;
  font-size: 12px;
  opacity: 0.85;
}
.auth-launcher-manage:hover {
  opacity: 1;
}
.auth-launcher-manage:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/*!******************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/components/AppErrorBanner.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************************/
.app-error-banner .err-dev-diagnostic {
  display: block;
  max-width: 720px;
  margin: 12px auto 0;
  padding: 8px 12px;
  text-align: left;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  line-height: 1.4;
  color: #5a4500;
  background: #fff3cd;
  border: 1px solid #c9a227;
  border-radius: 4px;
  white-space: pre-wrap;
  word-break: break-word;
}
/*!********************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/App.scss ***!
  \********************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * App.scss
 * The most most CSS SCSS file there is in the universe — and now the ONLY one for app CSS.
 *
 * `_baseline.scss` (originally `_legacyMainMin.scss`, from the v1 `css/main.min.css`) was
 * retired on 2026-08-16 and its rules live here, at the top, where its `@import` used to sit.
 * 102 declarations that this file already restated further down were dropped in the same pass.
 *
 * ⚠️ ORDER IS LOAD-BEARING. The reset + shared component block below must stay ABOVE
 * everything else: dozens of rules further down override it purely by source order, not by
 * specificity. Moving a rule up or down in this file can silently change what renders.
 *
 * ⚠️ `npm run verify:all` CANNOT see a CSS regression — it asserts geometry and behaviour,
 * never appearance. Prove changes here with the computed-style fingerprint harness
 * (`.ai-assist/tools/imageslicer-css-fingerprint.pwspec.ts`) plus before/after screenshots.
 * This retirement was proven that way: 1836 element-states and 15 full-page screenshots,
 * both zero-diff, with both instruments calibrated to zero first.
 */
:root {
  --z-layer-live-canvas: 40;
  --z-layer-canvas-boundary: 46;
  --z-layer-move-capture: 50;
  --z-layer-chrome: 52;
  --z-slice-outline-active: 100;
  --z-slice-delete-button: 104;
  --z-slice-bg-active: 102;
  --z-slice-interactive-layer: 110;
  --z-slice-resize-handle: 105;
  --z-slice-bg-inactive: 2;
  --z-slice-outline-inactive: 0;
  --z-canvas-world: 200;
  --z-canvas-overlay: 500;
  --z-help-popover: 1000;
  --z-zoom-pan-hit-surface: 9996;
}

/**
 * Shared keyframes.
 *
 * `rainbow` used to be declared FIVE times — inline in `App.scss` and again in each of
 * `views/About.scss`, `Faq.scss`, `Privacy.scss` and `Terms.scss` — all byte-identical, all
 * emitted into the same bundle.
 *
 * ⚠️ This partial is imported by `App.scss` ONLY, and that is deliberate. Sass `@import`
 * INLINES a partial into every file that imports it, so importing this from the view
 * stylesheets as well would put the duplicates straight back. One importer = one copy.
 *
 * That is safe because of the module graph, not by luck: `App.tsx` statically imports both
 * `./App.scss` and every one of those four view components, and none of them are lazy
 * (only `Admin` and `MeowMix` use `React.lazy`). So a view cannot render without `App.scss`
 * having been loaded. If a view ever becomes lazily loaded, or gets rendered from its own
 * entry point, it will need its own copy again — a missing `@keyframes` fails SILENTLY.
 *
 * ⚠️ Neither the screenshot harness (which freezes animations) nor the computed-style
 * fingerprint (which records `animation-name` whether or not the rule exists) can detect a
 * missing keyframe. Use `element.getAnimations()` — an `animation-name` matching no
 * `@keyframes` rule creates no animation object at all.
 */
@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
#err,
.err {
  color: red;
}

#imgWrap,
#uploadForm,
.center,
.err,
.result-wrap,
.thumbDiv,
h1,
h2 {
  text-align: center;
}

#actions,
#menu,
#tool-box,
.result-wrap img {
  vertical-align: middle;
}

#actions,
#switch-status,
#tool-box,
.btn-chop,
.switch {
  display: inline-block;
}

a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}
blockquote::before, blockquote::after,
q::before,
q::after {
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

button {
  height: 30px;
}

#err,
.err {
  font-size: 16px;
}

.switch {
  position: relative;
  width: 38px;
  height: 22px;
}

button.btn-add::before, button.btn-clear::before {
  background-size: 18px 18px;
  display: inline-block;
  width: 18px;
  height: 18px;
  content: "";
}
button.btn-add::before {
  background-image: url(/add-new-icon.02471d5f1c2054f3636f7ebed3a1e976.png);
}
button.btn-clear::before {
  background-image: url(/clear-all-icon.f2ebfec47e186fe7e3bfb65cf0a7ec4c.png);
}

:root {
  --font-size-sm: 12px;
  --font-size-base: 14px;
}

@keyframes MOVE-BG {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(46px);
  }
}
.clearfix {
  clear: both;
}

.hide {
  display: none;
}

#actions.full-width {
  width: 100%;
}

.right {
  text-align: right;
}

h1,
h2 {
  margin-top: 5px;
  margin-bottom: 3px;
  font-size: 25px;
}

h1,
h2,
h3 {
  font-weight: 400;
}

.delete-area {
  position: absolute;
  cursor: pointer;
  padding: 5px 5px 2px 2px;
}

#imgWrap, #uploadForm, .center, h1, h2 {
  text-align: center;
}

#uploadForm {
  max-width: 780px;
  margin: 20px auto;
  font-size: 18px;
}

body {
  margin: 0;
  font-size: 14px;
  line-height: 1;
}

*,
body {
  font-family: "Courier New", Courier, "Lucida Sans Typewriter", "Lucida Typewriter", monospace;
}

#dynamic-text {
  font-size: 14px;
}

.download-all {
  clear: both;
  margin: 20px auto;
  text-align: right;
}

.feedback {
  text-align: center;
  padding-top: 8px;
  font-size: 13px;
}

.bold {
  font-weight: bold;
}

.thumbDiv {
  height: 142px;
  width: 142px;
  float: left;
  margin: 10px;
  line-height: 140px;
  padding: 5px;
  border: 1px dotted #999;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  -webkit-box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
  box-shadow: 0 8px 18px -6px rgba(0, 0, 0, 0.75);
}

.result-wrap, .thumbDiv {
  text-align: center;
}

.result-wrap img {
  height: auto;
  width: auto;
  max-height: 140px;
  max-width: 140px;
  vertical-align: middle;
  -webkit-box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
  -moz-box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
  box-shadow: inset 0 0 26px -7px rgba(0, 0, 0, 0.75);
}

#the-grid {
  margin: 10px auto;
  width: auto;
  height: auto;
  min-height: 400px;
}
#the-grid .img-canvas {
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  width: 777px;
  max-width: 100%;
}
#the-grid .img-canvas #sliceImg {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-select: none;
}

.img-canvas {
  position: relative;
}

.img-canvas-zoompan {
  overflow: hidden;
  touch-action: none;
  isolation: isolate;
  contain: paint;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  background-color: #f7f7f7;
  background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.04) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.04) 75%, rgba(0, 0, 0, 0.04)), linear-gradient(45deg, rgba(0, 0, 0, 0.04) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.04) 75%, rgba(0, 0, 0, 0.04));
  background-size: 36px 36px;
  background-position: 0 0, 18px 18px;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.img-canvas-zoompan-space {
  cursor: grab;
}
.img-canvas-zoompan-space .canvas-world,
.img-canvas-zoompan-space .select-areas-overlay,
.img-canvas-zoompan-space .select-areas-slice-wrap,
.img-canvas-zoompan-space .select-areas-outline,
.img-canvas-zoompan-space .select-areas-resize-handler,
.img-canvas-zoompan-space .delete-area,
.img-canvas-zoompan-space .select-areas-delete-area {
  cursor: grab !important;
}

.img-canvas-zoompan-panning {
  cursor: grabbing;
}
.img-canvas-zoompan-panning .canvas-world,
.img-canvas-zoompan-panning .select-areas-overlay,
.img-canvas-zoompan-panning .select-areas-slice-wrap,
.img-canvas-zoompan-panning .select-areas-outline,
.img-canvas-zoompan-panning .select-areas-resize-handler,
.img-canvas-zoompan-panning .delete-area,
.img-canvas-zoompan-panning .select-areas-delete-area {
  cursor: grabbing !important;
}

.canvas-world {
  position: relative;
  display: block;
  z-index: var(--z-canvas-world);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.canvas-layout {
  position: relative;
  display: inline-block;
  max-width: 100%;
}

.slice-delete-escape {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: visible;
  pointer-events: none;
  z-index: var(--z-canvas-overlay);
}
.slice-delete-escape .delete-area,
.slice-delete-escape .select-areas-delete-host {
  pointer-events: auto;
}

.canvas-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-canvas-overlay);
  pointer-events: none;
}

.container {
  max-width: 780px;
  margin: 0 auto;
}
.container h2 {
  font-size: 21px;
}
.container h3 {
  margin-bottom: 8px;
}

.select-areas-outline {
  background-color: transparent;
  overflow: hidden;
  position: relative;
  touch-action: none;
  background-image: linear-gradient(90deg, #fff 50%, #000 50%), linear-gradient(90deg, #fff 50%, #000 50%), linear-gradient(0deg, #fff 50%, #000 50%), linear-gradient(0deg, #fff 50%, #000 50%);
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
  background-size: 8px 1px, 8px 1px, 1px 8px, 1px 8px;
  background-position: 0 0, 0 100%, 0 0, 100% 0;
  animation: marchingAnts 0.6s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .select-areas-outline {
    animation: none;
  }
}
.select-areas-outline::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 160ms ease;
  background-image: linear-gradient(90deg, #fff 75%, #000 75%), linear-gradient(90deg, #fff 75%, #000 75%), linear-gradient(0deg, #fff 75%, #000 75%), linear-gradient(0deg, #fff 75%, #000 75%);
  background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
  background-size: 8px 1px, 8px 1px, 1px 8px, 1px 8px;
  background-position: 0 0, 0 100%, 0 0, 100% 0;
  animation: marchingAnts 1.2s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .select-areas-outline::after {
    animation: none;
  }
}

.select-areas-outline-hover::after {
  opacity: 1;
}

.select-areas-outline-frozen,
.select-areas-outline-frozen::after {
  animation-play-state: paused;
}

@keyframes marchingAnts {
  to {
    background-position: 8px 0, -8px 100%, 0 -8px, 100% 8px;
  }
}
.tetris-rotate-cw,
.tetris-rotate-ccw,
.tetris-counter-cw,
.tetris-counter-ccw {
  transform-origin: center;
}

@keyframes tetrisRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(var(--tetris-rot));
  }
}
@keyframes tetrisCounterRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(var(--tetris-rot));
  }
}
@keyframes tetrisSpin360 {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes tetrisSpin360Ccw {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(-360deg);
  }
}
@keyframes tetrisRainbowHue {
  0% {
    filter: hue-rotate(0deg) saturate(1.6) contrast(1.15);
  }
  100% {
    filter: hue-rotate(360deg) saturate(1.6) contrast(1.15);
  }
}
@keyframes tetrisRainbowHueCcw {
  0% {
    filter: hue-rotate(0deg) saturate(1.6) contrast(1.15);
  }
  100% {
    filter: hue-rotate(-360deg) saturate(1.6) contrast(1.15);
  }
}
.tetris-rotate {
  animation: tetrisRotate 0.3s ease;
}

.tetris-rotate-cw {
  --tetris-rot: 90deg;
}

.tetris-rotate-ccw {
  --tetris-rot: -90deg;
}

.tetris-counter {
  animation: tetrisCounterRotate 0.3s ease;
}

.tetris-counter-cw {
  --tetris-rot: -90deg;
}

.tetris-counter-ccw {
  --tetris-rot: 90deg;
}

.select-areas-background-area {
  transition: opacity 0.18s ease;
}

.select-areas-background-area.tetris-counter-cw,
.select-areas-background-area.tetris-counter-ccw {
  opacity: 0;
}

.tetris-spin360-rainbow {
  animation: tetrisSpin360 0.5s ease, tetrisRainbowHue 0.5s linear;
}

.tetris-spin360-rainbow-ccw {
  animation: tetrisSpin360Ccw 0.5s ease, tetrisRainbowHueCcw 0.5s linear;
}

.select-areas-resize-handler {
  background-color: #000;
  border: 1px solid #fff;
  height: 8px;
  width: 8px;
  overflow: hidden;
  touch-action: none;
}

.select-areas-delete-area {
  cursor: pointer;
  height: 20px;
  width: 20px;
  display: block;
  pointer-events: none;
  background: url(/bt-delete.4bc64b36232b57c1b7171848b8bb906f.png) center/contain no-repeat;
}

.select-areas-delete-host {
  padding: 5px 5px 2px 2px;
}

.tmpImg,
.my-panda-bro {
  margin: 0 auto;
  padding: 5rem;
  max-width: 69px;
}

.tmpImg {
  cursor: pointer;
}

#imgWrap .tmpImg {
  border-radius: 3px;
}

.select-areas-overlay {
  background-color: #000;
  overflow: hidden;
  position: absolute;
  opacity: 0;
  touch-action: none;
  display: block;
  cursor: crosshair;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.select-areas-overlay.has-slice {
  opacity: 0.5;
}

.touch-guides-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 999;
}

@keyframes touchGuideBlink {
  0% {
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  65% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.touch-guide-line {
  position: absolute;
  animation: touchGuideBlink 0.45s ease;
  opacity: 0;
}

.touch-guide-v {
  width: 1px;
  height: 100%;
}

.touch-guide-h {
  height: 1px;
  width: 100%;
}

.touch-guide-snap {
  background: rgba(0, 180, 255, 0.95);
  box-shadow: none;
}

.touch-guide-clamp {
  background: rgba(255, 80, 80, 0.95);
  box-shadow: none;
}

.help-popover-wrap {
  position: relative;
  display: inline-block;
}

.help-popover {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  width: min(620px, 100vw - 24px);
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 2px;
  padding: 10px 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
  z-index: var(--z-help-popover);
}

.help-popover-title {
  font-weight: 700;
  font-size: 12px;
  margin-bottom: 6px;
}

.help-popover-section {
  margin: 22px 0 4px;
  padding-bottom: 3px;
  border-bottom: 1px solid #eaeaea;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #111;
}
.help-popover-section:first-of-type {
  margin-top: 6px;
}

.help-popover-note {
  font-weight: normal;
  text-transform: none;
  letter-spacing: 0;
  color: #666;
}

.help-popover-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.35;
}

.help-popover-desc {
  padding: 3px 10px 3px 0;
  text-align: left;
  vertical-align: top;
}

.help-popover-keys {
  padding: 3px 0;
  text-align: right;
  vertical-align: top;
  white-space: nowrap;
}

.help-popover kbd {
  display: inline-block;
  padding: 1px 6px;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-bottom-width: 2px;
  border-radius: 6px;
  background: whitesmoke;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 11px;
}

.blurred {
  -webkit-filter: blur(3px);
  -moz-filter: blur(3px);
  -o-filter: blur(3px);
  filter: blur(3px);
}

.next {
  font-size: 18px;
  margin-top: 10px;
}

.btn-chop {
  font-weight: 700;
  margin-top: -2px;
}

.btn-add,
.btn-clear {
  position: relative;
  padding: 3px 8px 0 5px;
  font-size: 15px;
}
.btn-add-txt,
.btn-clear-txt {
  font-size: 15px;
  position: relative;
  top: -4px;
}
.btn-add::before,
.btn-clear::before {
  background-size: 18px 18px;
  display: inline-block;
  width: 18px;
  height: 18px;
  content: "";
}

button.btn-add::before {
  background-image: url(/add-new-icon.02471d5f1c2054f3636f7ebed3a1e976.png);
}

button.btn-clear::before {
  background-image: url(/clear-all-icon.f2ebfec47e186fe7e3bfb65cf0a7ec4c.png);
}

.btn-common {
  font-size: 14px;
  padding: 3px 8px;
}
.btn-common:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.layer-src-hidden {
  visibility: hidden;
}

.layer-live-canvas {
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: var(--z-layer-live-canvas);
}

.layer-move-capture {
  position: absolute;
  inset: 0;
  cursor: default;
  z-index: var(--z-layer-move-capture);
}
.layer-move-capture.over-layer {
  cursor: move;
}

.canvas-context-menu {
  position: fixed;
  z-index: 1010;
  min-width: 170px;
  padding: 4px;
  background: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 6px;
  box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.4);
}
.canvas-context-menu > .item {
  display: block;
  width: 100%;
  padding: 6px 10px;
  border: 0;
  background: transparent;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}
.canvas-context-menu > .item:hover:not(:disabled) {
  background: rgba(80, 79, 246, 0.12);
}
.canvas-context-menu > .item:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.canvas-context-menu > .separator {
  margin: 4px 2px;
  border-top: 1px solid #eaeaea;
}

.layer-options-bar {
  position: fixed;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 990;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  max-width: calc(100vw - 24px);
  background: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 8px;
  box-shadow: 0 6px 20px -6px rgba(0, 0, 0, 0.35);
  font-size: 12px;
  animation: layerOptionsIslandIn 140ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .layer-options-bar {
    animation: none;
  }
}
.layer-options-bar > .layer-options-name {
  font-weight: 700;
  max-width: 14ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.layer-options-bar > .layer-options-sep {
  color: #cfcfcf;
}
.layer-options-bar > .layer-field {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.layer-options-bar > .layer-field > .layer-field-label {
  color: #666;
  font-size: 11px;
}
.layer-options-bar > .layer-field > .layer-field-input {
  width: 6ch;
  padding: 2px 4px;
  font-size: 12px;
  border: 1px solid #cfcfcf;
  appearance: textfield;
  -moz-appearance: textfield;
}
.layer-options-bar > .layer-field > .layer-field-input::-webkit-outer-spin-button, .layer-options-bar > .layer-field > .layer-field-input::-webkit-inner-spin-button {
  appearance: none;
  margin: 0;
}
.layer-options-bar > .layer-field > .layer-field-input:focus {
  outline: 2px solid #504ff6;
  outline-offset: -1px;
}
.layer-options-bar > .layer-aspect-link {
  position: relative;
  opacity: 0.45;
}
.layer-options-bar > .layer-aspect-link.active {
  opacity: 1;
  border-color: #504ff6;
  background: rgba(80, 79, 246, 0.12);
}
.layer-options-bar > .layer-aspect-link:not(.active)::after {
  content: "";
  position: absolute;
  left: 15%;
  right: 15%;
  top: 50%;
  border-top: 1px solid #333;
  transform: rotate(-20deg);
}

@keyframes layerOptionsIslandIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
.layer-chrome-escape {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: var(--z-layer-chrome);
}

.layer-chrome {
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  box-sizing: border-box;
  pointer-events: none;
  z-index: var(--z-layer-chrome);
}
.layer-chrome > .hover,
.layer-chrome > .frame {
  --layer-accent: #504ff6;
  position: absolute;
  box-sizing: border-box;
}
.layer-chrome > .hover {
  outline: 1px solid #504ff6;
  outline-offset: -1px;
  background: rgba(80, 79, 246, 0.12);
}
.layer-chrome > .frame {
  background: transparent;
}
.layer-chrome > .frame > .edge-strip {
  position: absolute;
  background: transparent;
  pointer-events: auto;
  touch-action: none;
}
.layer-chrome > .frame > .edge-strip.edge-strip-n, .layer-chrome > .frame > .edge-strip.edge-strip-s {
  cursor: ns-resize;
}
.layer-chrome > .frame > .edge-strip.edge-strip-e, .layer-chrome > .frame > .edge-strip.edge-strip-w {
  cursor: ew-resize;
}
.layer-chrome > .frame > .handle {
  position: absolute;
  background: #504ff6;
  border: 1px solid #fff;
  border-radius: 2px;
  box-sizing: border-box;
  pointer-events: auto;
  touch-action: none;
}
.layer-chrome > .frame > .handle.handle-nw, .layer-chrome > .frame > .handle.handle-se {
  cursor: nwse-resize;
}
.layer-chrome > .frame > .handle.handle-ne, .layer-chrome > .frame > .handle.handle-sw {
  cursor: nesw-resize;
}
.layer-chrome > .frame > .handle.handle-n, .layer-chrome > .frame > .handle.handle-s {
  cursor: ns-resize;
}
.layer-chrome > .frame > .handle.handle-e, .layer-chrome > .frame > .handle.handle-w {
  cursor: ew-resize;
}
.layer-chrome .label {
  position: absolute;
  left: 0;
  top: 0;
  transform-origin: left top;
  padding: 1px 5px;
  background: #504ff6;
  color: #fff;
  font-size: 11px;
  line-height: 1.5;
  white-space: nowrap;
  border-radius: 2px;
  pointer-events: none;
}

.canvas-boundary {
  position: absolute;
  inset: 0;
  box-shadow: 0 0 0 var(--canvas-boundary-w, 1px) #239373;
  pointer-events: none;
  z-index: var(--z-layer-canvas-boundary);
}

.hidden-file-input {
  display: none;
}

.upload-dropzone {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 40px 24px;
  min-height: 340px;
  border: 1px dashed #cfcfcf;
  border-radius: 8px;
  transition: border-color 120ms ease, background 120ms ease;
}
.upload-dropzone:hover, .upload-dropzone.drag-active {
  border-color: #239373;
  background: #f0fbf7;
}
.upload-dropzone .upload-hint {
  font-size: 14px;
  color: #666;
}

.canvas-settings-popover .canvas-settings-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.canvas-settings-popover .canvas-settings-close {
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  padding: 2px 7px;
  line-height: 1;
}
.canvas-settings-popover .canvas-settings-note {
  font-size: 11px;
  color: #666;
  margin: 4px 0 0;
  max-width: 220px;
}
.canvas-settings-popover .canvas-settings-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin: 8px 0;
}
.canvas-settings-popover .canvas-settings-row label {
  display: flex;
  flex-direction: column;
  font-size: 12px;
  gap: 2px;
}
.canvas-settings-popover .canvas-settings-row input {
  width: 72px;
  padding: 2px 4px;
}
.canvas-settings-popover .canvas-settings-row .canvas-settings-x {
  padding-bottom: 4px;
}
.canvas-settings-popover .canvas-settings-actions {
  display: flex;
  gap: 6px;
}

.tool-switch {
  display: inline-flex;
  border: 1px solid #cfcfcf;
  border-radius: 4px;
  overflow: hidden;
}
.tool-switch .tool-switch-btn {
  font-size: 14px;
  padding: 3px 10px;
  border: none;
  border-left: 1px solid #cfcfcf;
  background: #fafafa;
  color: #444;
  cursor: pointer;
}
.tool-switch .tool-switch-btn:first-child {
  border-left: none;
}
.tool-switch .tool-switch-btn.active {
  background: #239373;
  color: #fff;
  font-weight: 700;
}
.tool-switch .tool-switch-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.zoom-percent-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 0 2px;
  font-size: 12px;
  color: #333;
}

.zoom-percent-input {
  width: auto;
  min-width: 4ch;
  max-width: 6ch;
  height: 30px;
  box-sizing: border-box;
  font-size: 12px;
  text-align: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 2px;
  background: transparent;
  color: #111;
  font-variant-numeric: tabular-nums;
}
.zoom-percent-input:focus-visible {
  border-color: rgba(0, 0, 0, 0.25);
  background: #fff;
  outline: 2px solid rgba(35, 147, 115, 0.35);
  outline-offset: 1px;
}

.zoom-percent-wrap.is-active .zoom-percent-input {
  border-color: rgba(0, 0, 0, 0.25);
  background: #fff;
}

.history-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
  z-index: 9998;
}
.history-overlay.open {
  opacity: 1;
  pointer-events: auto;
}

.history-drawer {
  position: fixed;
  top: 0;
  right: 0;
  height: 100vh;
  width: min(360px, 92vw);
  background: #fff;
  border-left: 1px solid #eaeaea;
  transform: translateX(102%);
  transition: transform 180ms ease;
  z-index: 9999;
  display: flex;
  flex-direction: column;
}
.history-drawer.open {
  transform: translateX(0);
}

.history-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px dotted #eaeaea;
}

.history-drawer-title {
  font-size: 16px;
  font-weight: bold;
}

.history-close {
  border: 1px solid #eaeaea;
  background: #fff;
  cursor: pointer;
  padding: 4px 8px;
}

.history-drawer-subtitle {
  padding: 6px 12px;
  font-size: 12px;
  color: #666;
  border-bottom: 1px dotted #eaeaea;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.history-drawer-subtitle-left {
  min-width: 0;
}

.history-drawer-subtitle-right {
  display: flex;
  align-items: center;
  gap: 6px;
}

.history-list {
  overflow: auto;
  padding: 8px 8px 12px;
}

.history-item {
  display: flex;
  gap: 10px;
  padding: 8px;
  border: 1px dotted #eaeaea;
  margin: 0 0 8px 0;
  background: #fff;
  cursor: pointer;
}

.history-item:hover {
  background: #f7f7f7;
}

.history-item:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}

.history-item.current {
  border: 1px solid #239373;
  background: #f0fbf7;
}

.history-item.future {
  opacity: 0.55;
}

.history-item.future:hover {
  opacity: 0.75;
}

.history-item.root .history-primary {
  font-style: italic;
}

.auth-modal-close, .history-index {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #eaeaea;
  background: #fafafa;
  color: #666;
}

.history-index {
  width: 22px;
  flex: 0 0 22px;
  font-size: 12px;
}

.history-thumb {
  width: 44px;
  height: 44px;
  border: 1px solid #eaeaea;
  background: #fafafa;
  flex: 0 0 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.history-thumb img {
  width: 44px;
  height: 44px;
  display: block;
}

.my-slices-thumb-empty, .history-thumb-empty {
  width: 100%;
  height: 100%;
  background: repeating-linear-gradient(45deg, #f7f7f7, #f7f7f7 6px, #ffffff 6px, #ffffff 12px);
}

.history-text {
  min-width: 0;
}

.history-primary {
  font-size: 13px;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.history-secondary {
  font-size: 12px;
  color: #444;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.my-slices-list-wrap {
  margin-top: 20px;
  margin-bottom: 20px;
  text-align: left;
  width: 100%;
  display: inline-block;
}

.my-slices-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.my-slices-summary {
  margin-top: 16px;
  margin-bottom: 16px;
  padding: 10px 12px;
  border: 1px dotted #eaeaea;
  background: #fff;
  text-align: center;
}

.my-slices-summary-title {
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 11px;
}

.my-slices-summary-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  font-size: 14px;
  color: #333;
}

.my-slices-summary-sep {
  color: #777;
  display: inline-block;
  margin: 0 6px;
}

.my-slices-summary-fun {
  margin-top: 6px;
  font-size: 12px;
  color: #555;
}

.my-slices-item {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid #e3e3e3;
  border-radius: 0;
  background: #fff;
  cursor: default;
}
.my-slices-item:hover {
  background: #f7f7f7;
}
.my-slices-item:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}

.my-slices-item .history-index {
  align-self: stretch;
}

.my-slices-thumb {
  width: 56px;
  height: 56px;
  border: 1px solid #ddd;
  background: #f3f3f3;
  flex: 0 0 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
}
.my-slices-thumb:focus {
  outline: 2px solid #239373;
  outline-offset: 1px;
}
.my-slices-thumb img {
  width: 56px;
  height: 56px;
  display: block;
  object-fit: cover;
}

.my-slices-text {
  flex: 1;
  min-width: 0;
}

.my-slices-version {
  margin-left: 8px;
  font-size: 12px;
  font-weight: normal;
  color: #666;
}

.my-slices-primary {
  font-size: 13px;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.my-slices-secondary {
  font-size: 12px;
  color: #444;
  margin-top: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.my-slices-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.my-slices-action {
  font-size: 14px;
}

#menu {
  border-bottom: 1px dotted #eaeaea;
  border-top: 1px dotted #eaeaea;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 4px;
}

#tool-box,
#actions {
  padding: 4px;
  vertical-align: middle;
  display: inline-block;
}

#tool-box {
  flex: 1 1 0;
  min-width: 200px;
  max-width: calc(100% - 150px);
  font-size: 15px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
#tool-box .tool-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
#tool-box .switch-box {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
#tool-box .switch-box .switch {
  position: relative;
  top: 0;
}
#tool-box .switch--disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

#actions {
  width: auto;
  flex: 0 0 auto;
  min-width: 140px;
  text-align: right;
  flex-shrink: 0;
  align-self: flex-start;
}

.active-animation {
  animation-name: MOVE-BG;
  animation-duration: 4s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

.logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: bold;
  text-align: center;
  background-size: 314% 314%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
}
@media (prefers-reduced-motion: reduce) {
  .logo {
    animation: none;
  }
}

.aitch-one {
  font-size: 36px;
}

.commanding-input,
.super-commanding-input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #ccc;
  background: #fff;
  padding: 8px 10px;
  font-size: 14px;
}

.commanding-input {
  height: 30px;
}

.super-commanding-input {
  height: 60px;
}

.auth-link {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: #239373;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.auth-link:hover {
  text-decoration: underline;
}

.green-link-btn {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: #239373;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}

.green-link-btn:hover {
  color: #1f8668;
}

.primary-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 16px;
  border-radius: 10px;
  background: #239373;
  color: #fff;
  border: 1px solid #1a6e55;
  cursor: pointer;
  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}

.primary-btn:hover:enabled {
  background: #1f8668;
}

.primary-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.auth-btn-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Switch styles adapted from provided CSS */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
  cursor: pointer;
}

.slider {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: 0.4s;
  transition: 0.4s;
  cursor: pointer;
}
.slider::before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 2px;
  bottom: 2px;
  background-color: #fff;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}
.slider.round {
  border-radius: 20px;
}
.slider.round::before {
  border-radius: 50%;
}

input:checked + .slider {
  background-color: #239373;
}

input:focus + .slider {
  box-shadow: 0 0 1px #239373;
}

input:checked + .slider::before {
  -webkit-transform: translateX(16px);
  -ms-transform: translateX(16px);
  transform: translateX(16px);
}

#switch-status {
  min-width: 30px;
}

.tool-sep {
  padding: 0 3px;
  color: #aeaeae;
  line-height: 30px;
  vertical-align: middle;
}

@media (max-width: 600px) {
  #menu {
    justify-content: center;
  }

  #tool-box {
    width: 100%;
    text-align: center;
  }

  #actions {
    width: 100%;
    text-align: center;
  }

  #the-grid {
    padding: 0 12px;
  }
}
.grid-document-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: #f7f7f7;
  background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.06) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.06) 75%, rgba(0, 0, 0, 0.06)), linear-gradient(45deg, rgba(0, 0, 0, 0.06) 25%, transparent 25%, transparent 75%, rgba(0, 0, 0, 0.06) 75%, rgba(0, 0, 0, 0.06));
}

#sliceImg {
  position: relative;
  z-index: 0;
}
/*!****************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/About.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************/
.page-about .root,
.page-about .root a {
  text-decoration: none;
}
.page-about h2,
.page-about h3 .cta {
  font-size: 16px;
}
.page-about .content {
  width: 600px;
  margin: 5px auto;
}
.page-about .feedback {
  border-top: 1px solid #d5d5d5;
}
/*!******************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Pricing.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
@keyframes rainbow {
  0% {
    background-position: 0 50%;
  }
  50% {
    background-position: 100% 25%;
  }
  100% {
    background-position: 0 50%;
  }
}
.page-pricing {
  background: #fff;
  color: #333;
  /* Pricing Cards */
}
.page-pricing.container {
  background: #fff;
}
.page-pricing .root,
.page-pricing .root a {
  text-decoration: none;
}
.page-pricing .logo {
  background-image: repeating-linear-gradient(45deg, violet, indigo, #00f, green, #ff0, orange, red, #d04343, #3d773d, #d0ae0b, #3961ab, #a22ea2);
  font-weight: 700;
  text-align: center;
  background-size: 314% 314%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 36px;
  animation: rainbow 11s ease infinite;
  margin-bottom: 10px;
}
.page-pricing .pricing-page .content {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 20px;
}
.page-pricing .feedback {
  text-align: center;
  border-top: 1px solid #d5d5d5;
  padding-top: 8px;
  font-size: 13px;
  margin-top: 40px;
  padding-bottom: 20px;
}
.page-pricing .pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin: 30px 0;
}
.page-pricing .plan {
  display: flex;
  flex-direction: column;
  border: 1px solid #e8e8e8;
  border-radius: 16px;
  padding: 24px;
  text-align: left;
  background: #fff;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
@media (min-width: 801px) {
  .page-pricing .plan:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border-color: #ccc;
  }
}
.page-pricing .plan.active {
  border-color: #333;
}
.page-pricing .plan.active:hover {
  border-color: #333;
}
.page-pricing .plan--featured {
  background: #f3f1fe;
  border-color: #d8d2f7;
}
.page-pricing .plan--featured.active {
  border-color: #6759d6;
}
.page-pricing .plan-head {
  margin-bottom: 18px;
}
.page-pricing .plan-name-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.page-pricing .plan-name {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 6px;
}
.page-pricing .plan-price {
  font-size: 38px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.1;
}
.page-pricing .plan-price span {
  font-size: 14px;
  color: #888;
  font-weight: 400;
  margin-left: 2px;
}
.page-pricing .plan-price .plan-cur {
  font-size: 16px;
  color: #1a1a1a;
  font-weight: 700;
  vertical-align: top;
  margin-left: 0;
  margin-right: 1px;
  line-height: 1;
}
.page-pricing .plan-desc {
  color: #666;
  font-size: 14px;
  margin: 8px 0 0;
}
.page-pricing .plan-cta {
  margin-bottom: 18px;
}
.page-pricing .plan-cta-error {
  color: #c62828;
  font-size: 12px;
  margin-top: 8px;
}
.page-pricing .plan-features-title {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 12px;
}
.page-pricing .plan-features {
  list-style: none;
  padding: 0;
  margin: 0;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.page-pricing .plan-features li {
  font-size: 14px;
  padding-left: 26px;
  position: relative;
  line-height: 1.4;
}
.page-pricing .plan-features li.yes::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #6759d6;
  font-weight: 700;
}
.page-pricing .plan-features li.no {
  color: #aaa;
}
.page-pricing .plan-features li.no::before {
  content: "—";
  position: absolute;
  left: 0;
  color: #ccc;
}
.page-pricing .save-pill {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: #22a722;
  padding: 2px 7px;
  border-radius: 9px;
  vertical-align: middle;
  position: relative;
  top: -2px;
  margin-left: 4px;
}
.page-pricing .cta-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  padding: 12px 20px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.page-pricing .cta-btn.disabled {
  opacity: 0.6;
  pointer-events: none;
  cursor: not-allowed;
}
.page-pricing .cta-outline {
  background: #fff;
  color: #1a1a1a;
  border: 1px solid #d0d0d0;
}
.page-pricing .cta-outline:hover {
  border-color: #888;
  background: #fafafa;
}
.page-pricing .cta-accent {
  background: #6759d6;
  color: #fff;
  border: 1px solid #6759d6;
}
.page-pricing .cta-accent:hover {
  background: #5546c9;
}
.page-pricing .cta-current {
  background: transparent;
  color: #999;
  border: 1px solid #e0e0e0;
  cursor: default;
}
.page-pricing .cta-current:hover {
  background: transparent;
}
.page-pricing .cta-founding {
  display: inline-block;
  width: auto;
  background: transparent;
  border: 2px solid #b38600;
  color: #b38600;
  margin: 0;
  white-space: nowrap;
}
.page-pricing .cta-founding:hover {
  background: #fffbe6;
}
.page-pricing .interval-toggle {
  display: inline-flex;
  gap: 2px;
  background: #eee;
  border-radius: 14px;
  padding: 2px;
}
.page-pricing .interval-btn {
  padding: 4px 10px;
  border: none;
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: #888;
  transition: background 0.15s, color 0.15s;
}
.page-pricing .interval-btn.active {
  background: #fff;
  color: #333;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.page-pricing .interval-btn:hover:not(.active) {
  color: #555;
}
.page-pricing .founding-note {
  background: #fffbe6;
  border: 1px solid #ffe066;
  border-radius: 8px;
  padding: 16px 20px;
  margin: 30px 0;
  font-size: 14px;
}
.page-pricing .founding-note strong {
  color: #b38600;
}
.page-pricing h2 {
  margin-top: 40px;
  margin-bottom: 10px;
}
.page-pricing .subtitle {
  color: #666;
  margin-top: 0;
  margin-bottom: 20px;
}
@media (max-width: 800px) {
  .page-pricing .pricing-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media (max-width: 500px) {
  .page-pricing .logo {
    font-size: 28px;
  }
  .page-pricing .plan-price {
    font-size: 28px;
  }
  .page-pricing .founding-note {
    padding: 12px 16px;
  }
  .page-pricing h2 {
    font-size: 20px;
    margin-top: 30px;
  }
  .page-pricing .content {
    padding: 0 16px;
  }
}
/*!**************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Faq.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************/
.page-faq {
  background: #fff;
  color: #333;
}
.page-faq .root,
.page-faq .root a {
  text-decoration: none;
}
.page-faq .logo {
  margin-bottom: 10px;
}
.page-faq .content {
  max-width: 700px;
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}
.page-faq .feedback {
  border-top: 1px solid #d5d5d5;
  margin-top: 40px;
  padding-bottom: 20px;
}
.page-faq h2 {
  margin-top: 10px;
  margin-bottom: 20px;
}
.page-faq .faq-item {
  margin-bottom: 28px;
}
.page-faq .faq-item h3 {
  margin: 0 0 8px 0;
  font-size: 17px;
  font-weight: 700;
}
.page-faq .faq-item p {
  margin: 0;
  line-height: 1.6;
  color: #444;
}
.page-faq .tier-table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 14px;
}
.page-faq .tier-table th,
.page-faq .tier-table td {
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid #eee;
}
.page-faq .tier-table th {
  background: #f9f9f9;
  font-weight: 600;
}
.page-faq .tier-table td:first-child {
  font-weight: 500;
}
.page-faq .yes {
  color: #22a722;
}
.page-faq .no {
  color: #999;
}
@media (max-width: 500px) {
  .page-faq .logo {
    font-size: 28px;
  }
  .page-faq .content {
    padding: 0 16px;
  }
  .page-faq .tier-table {
    font-size: 13px;
  }
  .page-faq .tier-table th,
.page-faq .tier-table td {
    padding: 8px 6px;
  }
}
/*!****************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Terms.scss ***!
  \****************************************************************************************************************************************************************************************************************************************************/
.page-terms .root,
.page-terms .root a {
  text-decoration: none;
}
.page-terms h2,
.page-terms h3 .cta {
  font-size: 16px;
}
.page-terms .content {
  width: 600px;
  margin: 5px auto;
}
.page-terms .feedback {
  border-top: 1px solid #d5d5d5;
}
/*!******************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./src/front/views/Privacy.scss ***!
  \******************************************************************************************************************************************************************************************************************************************************/
.page-privacy .root,
.page-privacy .root a {
  text-decoration: none;
}
.page-privacy h2,
.page-privacy h3 .cta {
  font-size: 16px;
}
.page-privacy .content {
  width: 600px;
  margin: 5px auto;
}
.page-privacy .feedback {
  border-top: 1px solid #d5d5d5;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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YUU7RUFDRTtFQUNBO0FBWEo7QUFjRTtFQUNFO0FBWko7QUFjSTtFQUNFO0VBQ0E7RUFDQTtBQVpOO0FBZUk7RUFDRTtFQUNBO0VBQ0E7QUFiTjtBQWlCRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0FBZko7QUFpQkk7O0VBRUU7RUFDQTtFQUNBO0FBZk47QUFrQkk7RUFDRTtFQUNBO0FBaEJOO0FBbUJJO0VBQ0U7QUFqQk47QUFxQkU7RUFDRTtBQW5CSjtBQXNCRTtFQUNFO0FBcEJKO0FBdUJFO0VBQ0U7SUFDRTtFQXJCSjtFQXdCRTtJQUNFO0VBdEJKO0VBeUJFO0lBQ0UsZVRUUztFU2RiO0VBeUJJOztJQUVFO0VBdkJOO0FBQ0YsQzs7OztBQ3ZFRTs7RUFFRTtBQU5KO0FBU0U7O0VBRUU7QUFQSjtBQVVFO0VBQ0U7RUFDQTtBQVJKO0FBV0U7RUFDRTtBQVRKLEM7Ozs7QUNQRTs7RUFFRTtBQU5KO0FBU0U7O0VBRUU7QUFQSjtBQVVFO0VBQ0U7RUFDQTtBQVJKO0FBV0U7RUFDRTtBQVRKLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L2NvbXBvbmVudHMvU2xpY2VUcmFuc2Zvcm1Ub29sYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC9jb21wb25lbnRzL0xheWVyc0RyYXdlci5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC9jb21wb25lbnRzL0F1dGhNb2RhbC5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvY29tcG9uZW50cy9BdXRoTGF1bmNoZXIuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L2NvbXBvbmVudHMvQXBwRXJyb3JCYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L0FwcC5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvekluZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vaW1nLXNsaWNlci8uL3NyYy9mcm9udC9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvdmlld3MvQWJvdXQuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L3ZpZXdzL1ByaWNpbmcuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L3ZpZXdzL0ZhcS5zY3NzIiwid2VicGFjazovL2ltZy1zbGljZXIvLi9zcmMvZnJvbnQvdmlld3MvVGVybXMuc2NzcyIsIndlYnBhY2s6Ly9pbWctc2xpY2VyLy4vc3JjL2Zyb250L3ZpZXdzL1ByaXZhY3kuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIuc2xpY2UtdHJhbnNmb3JtLXRvb2xiYXIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiIsIi8vIExheWVycyBwYW5lbCDigJQgdmlzdWFsIHNpYmxpbmcgb2YgdGhlIEhpc3RvcnkgZHJhd2VyIChzZWUgQXBwLnNjc3Ncbi8vIC5oaXN0b3J5LWRyYXdlcikuIFNhbWUgcmlnaHQtc2lkZSBzbGlkZS1vdmVyIGNocm9tZSArIGRvdHRlZC1ib3JkZXIgbGlzdCByb3dzXG4vLyArIGdyZWVuIGFjdGl2ZSBhY2NlbnQsIHdpdGggaW50ZXJhY3RpdmUgcGVyLXJvdyBjb250cm9scy4gRXZlcnl0aGluZyBpcyBzY29wZWRcbi8vIHVuZGVyIHRoZSBgLmxheWVycy1kcmF3ZXJgIGJsb2NrLCBzbyBjaGlsZCBlbGVtZW50cyBjYXJyeSBzaG9ydCwgdW5wcmVmaXhlZFxuLy8gY2xhc3MgbmFtZXMgKGAuaXRlbWAsIGAubmFtZWAsIOKApikgYW5kIHRoZSBibG9jayBvd25zIHRoZSBzY29waW5nLlxuQGltcG9ydCAnLi4vdmFyaWFibGVzJztcblxuLmxheWVycy1kcmF3ZXIge1xuICAvLyBDYW52YXMgc2l6ZSBsaXZlcyBoZXJlIHJhdGhlciB0aGFuIGluIGEgdG9vbGJhciBwb3BvdmVyOiBjYW52YXMgYW5kIGxheWVycyBhcmUgb25lXG4gIC8vIG1lbnRhbCBtb2RlbCDigJQgYSBkb2N1bWVudCBhbmQgdGhlIHRoaW5ncyBpbnNpZGUgaXQg4oCUIHdoaWxlIHpvb20gaXMgb25seSBob3cgeW91IGFyZVxuICAvLyBsb29raW5nIGF0IGl0LiBLZWVwaW5nIGFsbCB0aHJlZSBzY29wZXMgaW4gb25lIHRvb2xiYXIgcm93IGlzIHdoYXQgbWFkZSBcIkZpdCBvblxuICAvLyBzY3JlZW5cIiwgXCJGaXQgY2FudmFzIHRvIGxheWVyc1wiIGFuZCBcIkZpdCB0byBjYW52YXNcIiByZWFkIGFzIHRoZSBzYW1lIHZlcmIgdGhyZWUgdGltZXMuXG4gIC5jYW52YXMtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuXG4gICAgLmNhbnZhcy1yb3ctdGl0bGUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICB9XG5cbiAgICAuY2FudmFzLXJvdy1maWVsZHMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDZweDtcblxuICAgICAgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAzcHg7XG4gICAgICB9XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDYycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gV3JhcHMgdG8gaXRzIG93biBsaW5lIGJlZm9yZSB0aGUgbGFiZWwgY2FuIGJyZWFrIOKAlCB0aGUgc2FtZSBydWxlIHRoZSBsYXllciBhY3Rpb25cbiAgICAvLyBidXR0b25zIGZvbGxvdywgYWZ0ZXIgYSBicm93c2VyIG1pbmltdW0tZm9udC1zaXplIG9uY2UgcHVzaGVkIHRoZW0gb3V0IG9mIHRoZWlyIHJvdy5cbiAgICAuY2FudmFzLWZpdCB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG4gIH1cblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiBtaW4oMzYwcHgsIDkydncpO1xuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMiUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTgwbXMgZWFzZTtcbiAgei1pbmRleDogOTk5OTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmLm9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxuXG4gID4gLmhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuXG4gICAgPiAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRpdGxlO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIH1cblxuICAgID4gLmNsb3NlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIH1cbiAgfVxuXG4gID4gLnN1YnRpdGxlIHtcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LW11dGVkO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGNvbG9yLWJvcmRlci1saWdodDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgLy8gV2hvbGUgUk9XUyByZWZsb3cgYmVmb3JlIGFueSBsYWJlbCBkb2VzLiBXaGVuIHRoZSBsYWJlbHMgZG9uJ3QgZml0IGJlc2lkZSB0aGVcbiAgICAvLyBsYXllciBjb3VudCDigJQgYSBicm93c2VyIG1pbmltdW0tZm9udC1zaXplLCBPUyB0ZXh0IHNjYWxpbmcsIG9yIGEgbmFycm93IHdpbmRvd1xuICAgIC8vIGFsbCBjYXVzZSB0aGlzIOKAlCB0aGUgYWN0aW9uIGdyb3VwIGRyb3BzIHRvIGl0cyBvd24gbGluZSBpbnRhY3QsIGluc3RlYWQgb2ZcbiAgICAvLyBicmVha2luZyBcIkZpdCB0byBjYW52YXNcIiBhY3Jvc3MgdHdvIGxpbmVzIGFuZCBzcGlsbGluZyBpdCBwYXN0IGl0cyBvd24gYm9yZGVyLlxuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDZweCA4cHg7XG5cbiAgICAvLyBUaGUgbGF5ZXIgY291bnQgeWllbGRzIHNwYWNlIGZpcnN0LlxuICAgID4gLnN1YnRpdGxlLWxlZnQge1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgIC8vIExheWVyLWxldmVsIGFjdGlvbnMgKEZpdCB0byBjYW52YXMsICsgQWRkIGxheWVyKSBzaGFyZSB0aGlzIGVuZCBvZiB0aGUgcm93LlxuICAgIC8vIGBub3dyYXBgICsgbm8gc2hyaW5raW5nIG1lYW5zIGVhY2ggYnV0dG9uIGlzIGFuIGluZGl2aXNpYmxlIHVuaXQ6IGl0IGtlZXBzIGl0c1xuICAgIC8vIHdob2xlIGxhYmVsIGF0IHdoYXRldmVyIGZvbnQgc2l6ZSB0aGUgYnJvd3NlciBlbmRzIHVwIHVzaW5nLlxuICAgID4gLnN1YnRpdGxlLXJpZ2h0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBnYXA6IDZweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICA+IC5idG4tY29tbW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IC5saXN0IHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBwYWRkaW5nOiA4cHggOHB4IDEycHg7XG5cbiAgICA+IC5pdGVtIHtcbiAgICAgIC8vIFBvc2l0aW9uZWQgc28gdGhlIGRyb3AtaW5kaWNhdG9yIHBzZXVkby1lbGVtZW50cyBjYW4gc2l0IGluIHRoZSBtYXJnaW4gZ2FwLlxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgIGJvcmRlcjogMXB4IGRvdHRlZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItY2FudmFzLWNoZWNrZXItYmc7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgJGNvbG9yLWdyZWVuLWxpbms7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB9XG5cbiAgICAgICYuY3VycmVudCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmVlbi1saW5rO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tdGludC1iZztcbiAgICAgIH1cblxuICAgICAgJi5oaWRkZW4ge1xuICAgICAgICBvcGFjaXR5OiAwLjU1O1xuICAgICAgfVxuXG4gICAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgfVxuXG4gICAgICAvLyBJbnNlcnRpb24gbGluZTogYSAxcHggaGFpcmxpbmUgb24gdGhlIHNpZGUgdGhlIHJvdyB3b3VsZCBsYW5kLCBzbyB0aGUgZHJhZyBzYXlzXG4gICAgICAvLyBXSEVSRSBpdCBpcyBnb2luZyByYXRoZXIgdGhhbiBvbmx5IHRoYXQgc29tZXRoaW5nIGlzIGJlaW5nIGRyYWdnZWQuIERyYXduIGFzIGFcbiAgICAgIC8vIHBzZXVkby1lbGVtZW50IG91dHNpZGUgdGhlIHJvdydzIGJvcmRlciBib3ggKGBtYXJnaW5gIGdhcCBpcyA4cHgpIHNvIGl0IHJlYWRzIGFzXG4gICAgICAvLyBhIGdhcCBiZXR3ZWVuIHJvd3MgcmF0aGVyIHRoYW4gYW4gZWRnZSBvZiBvbmUsIGFuZCBpbiB0aGUgbGF5ZXIgYWNjZW50IHNvIGl0IGlzXG4gICAgICAvLyBkaXN0aW5jdCBmcm9tIHRoZSBncmVlbiBcImN1cnJlbnQgcm93XCIgaGlnaGxpZ2h0LCB3aGljaCBzdGF5cyB2aXNpYmxlIHVuZGVybmVhdGguXG4gICAgICAmLmRyb3AtYWJvdmU6OmJlZm9yZSxcbiAgICAgICYuZHJvcC1iZWxvdzo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yLWxheWVyLWFjY2VudDtcblxuICAgICAgICAvLyBOdWRnZSBpbnRvIHRoZSBtYXJnaW4gZ2FwOyB0aGUgMXB4IGxpbmUgaXRzZWxmIG11c3Qgbm90IHNoaWZ0IHRoZSByb3cuXG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAmLmRyb3AtYWJvdmU6OmJlZm9yZSB7XG4gICAgICAgIHRvcDogLTVweDtcbiAgICAgIH1cblxuICAgICAgJi5kcm9wLWJlbG93OjphZnRlciB7XG4gICAgICAgIGJvdHRvbTogLTVweDtcbiAgICAgIH1cblxuICAgICAgPiAuZXllIHtcbiAgICAgICAgZmxleDogMCAwIDI2cHg7XG4gICAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1zdXJmYWNlLW11dGVkO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgICAgICYub2ZmIHtcbiAgICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiAudGh1bWIge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZS1tdXRlZDtcbiAgICAgICAgZmxleDogMCAwIDQ0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRodW1iLWVtcHR5LFxuICAgICAgICAudGh1bWItYmcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aHVtYi1lbXB0eSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDQ1ZGVnLFxuICAgICAgICAgICAgJGNvbG9yLWNhbnZhcy1jaGVja2VyLWJnLFxuICAgICAgICAgICAgJGNvbG9yLWNhbnZhcy1jaGVja2VyLWJnIDZweCxcbiAgICAgICAgICAgICRjb2xvci13aGl0ZSA2cHgsXG4gICAgICAgICAgICAkY29sb3Itd2hpdGUgMTJweFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAudGh1bWItYmcge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gLmJvZHkge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuXG4gICAgICAgIC8vIE1hdGNoZXMgYC5uYW1lYCBzbyB0aGUgcm93IGRvZXNuJ3QganVtcCB3aGVuIGVkaXRpbmcgc3RhcnRzLlxuICAgICAgICA+IC5uYW1lLWlucHV0IHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWxheWVyLWFjY2VudDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiAubmFtZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgID4gLmNvbnRyb2xzIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuXG4gICAgICAgICAgPiAuYmxlbmQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXhzO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMTBweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICA+IC5vcGFjaXR5IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+IC5kZWxldGUge1xuICAgICAgICBmbGV4OiAwIDAgMjZweDtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1saWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gVkFSSUFBQUJMRVNTXG4vLyBMb3Qgb2YgdmFyaWF0aW9ucyBpbiBoZXJlIG1hbi4uLi5cbi8vIExldCdzIG5vdCBnZXQgbG9zdC5cbi8vXG4vLyB2YXJpYWJsZXMuc2Nzc1xuLy9cbiRkZWZhdWx0LWZvbnQtc2l6ZTogMTRweDtcblxuLy8gTGF5b3V0XG4kaW1nLWNhbnZhcy13aWR0aDogNzc3cHg7XG4kY2FudmFzLW1pbi1oZWlnaHQ6IDQwMHB4O1xuJGNvbnRhaW5lci1oMi1mb250LXNpemU6IDIxcHg7XG4kY29udHJvbC1oZWlnaHQtbWQ6IDMwcHg7XG5cbi8vIENvbG9yc1xuJGNvbG9yLXdoaXRlOiAjZmZmO1xuJGNvbG9yLXN1cmZhY2U6ICRjb2xvci13aGl0ZTtcbiRjb2xvci1ibGFjazogIzAwMDtcbiRjb2xvci10ZXh0LXVpOiAjMzMzO1xuJGNvbG9yLXRleHQtc3Ryb25nOiAjMTExO1xuJGNvbG9yLWJvcmRlci1kZWZhdWx0OiAjY2NjO1xuJGNvbG9yLWdyZWVuLWxpbms6ICMyMzkzNzM7XG4kY29sb3ItZ3JlZW4tbGluay1ob3ZlcjogIzFmODY2ODtcbiRjb2xvci1ncmVlbi10aW50LWJnOiAjZjBmYmY3OyAgICAgLy8gYWN0aXZlLXJvdyAvIGRyb3AtdGFyZ2V0IHRpbnQgb2YgJGNvbG9yLWdyZWVuLWxpbmtcbiRjb2xvci1jYW52YXMtY2hlY2tlci1iZzogI2Y3ZjdmNztcbiRjb2xvci1ib3JkZXItbGlnaHQ6ICNlYWVhZWE7ICAgICAgLy8gaGFpcmxpbmUgZGl2aWRlcnMgLyBwYW5lbCBib3JkZXJzIChkcmF3ZXJzLCBjaGlwcylcbiRjb2xvci1ib3JkZXItbWlkOiAjY2ZjZmNmOyAgICAgICAgLy8gc2xpZ2h0bHkgc3Ryb25nZXIgY29udHJvbCBib3JkZXJzIChzZWdtZW50ZWQgY29udHJvbCwgZHJvcHpvbmUpXG4kY29sb3Itc3VyZmFjZS1tdXRlZDogI2ZhZmFmYTsgICAgIC8vIGluc2V0IGNvbnRyb2wgc3VyZmFjZSAoZXllL3RodW1iL2RlbGV0ZSBiYWNrZ3JvdW5kcylcbiRjb2xvci10ZXh0LW11dGVkOiAjNjY2OyAgICAgICAgICAgLy8gc2Vjb25kYXJ5L3N1YnRpdGxlIHRleHRcbi8vIExheWVyIGNocm9tZSBhY2NlbnQuIERlbGliZXJhdGVseSBOT1QgdGhlIGdyZWVuIHVzZWQgYnkgdGhlIGRvY3VtZW50IGJvdW5kYXJ5IGFuZCB0aGVcbi8vIExheWVycyBwYW5lbCdzIGFjdGl2ZSByb3csIGFuZCBuZXZlciBkYXNoZWQg4oCUIHNsaWNlcyBhbHJlYWR5IG93biBtYXJjaGluZyBhbnRzLCBzb1xuLy8gbGF5ZXIgc2VsZWN0aW9uIGhhcyB0byByZWFkIGFzIGEgZGlmZmVyZW50IGtpbmQgb2YgdGhpbmcgYXQgYSBnbGFuY2UuXG4kY29sb3ItbGF5ZXItYWNjZW50OiAjNTA0ZmY2O1xuXG4vLyBXaGl0ZSBzaGFyZSBvZiBlYWNoIG1hcmNoaW5nLWFudCBkYXNoIHdoaWxlIGEgc2xpY2UgaXMgaG92ZXJlZC4gSWRsZSBpcyBhbiBldmVuIDUwLzUwXG4vLyB3aGl0ZS9ibGFjayBzcGxpdCAoNHB4LzRweCBvZiB0aGUgOHB4IHRpbGUpOyB0aGlzIHdpZGVucyB3aGl0ZSB0byA2cHgvMnB4LlxuLy9cbi8vIFRoZSB2YWx1ZSBpcyBRVUFOVElaRUQsIHNvIGRvIG5vdCB0cmVhdCBpdCBhcyBhIGZyZWUgZGlhbC4gQSAxcHggbGluZSBvbiBhbiA4cHggdGlsZSBjYW5cbi8vIG9ubHkgcmVuZGVyIHdob2xlLXBpeGVsIHNwbGl0cywgc28gNzAlLCA3NSUgYW5kIDgwJSBhbGwgcmFzdGVyaXplIHRvIHRoZSBzYW1lIDYvMiBhbmRcbi8vIG1lYXN1cmUgaWRlbnRpY2FsbHkuIFRoZSByZWFjaGFibGUgc3RlcHMgYXJlIDUwJSAoaWRsZSksIDYyLjUlICg1LzMpIGFuZCA3NSUgKDYvMikuXG4vLyBNZWFzdXJlZCBsaWZ0IGluIHJlbmRlcmVkIHBpeGVscywgYXZlcmFnZWQgb3ZlciBzaXggYW5pbWF0aW9uIGZyYW1lczpcbi8vICAgNS8zIC0+ICsxNy43JSBvbiBhIGRhcmsgcGhvdG8sICsxMi42JSBvbiBhIHdoaXRlIG9uZVxuLy8gICA2LzIgLT4gKzM1LjUlIG9uIGEgZGFyayBwaG90bywgKzI1LjElIG9uIGEgd2hpdGUgb25lXG4kc2xpY2UtaG92ZXItd2hpdGUtc2hhcmU6IDc1JTtcblxuLy8gTWFyY2hpbmctYW50cyBkYXNoIHRpbGUgYW5kIHNwZWVkLiBIb2lzdGVkIG91dCBvZiBgQXBwLnNjc3NgIHNvIHRoZSBob3ZlciBvdmVybGF5IGNhblxuLy8gREVSSVZFIGZyb20gdGhlbSDigJQgdGhlIG92ZXJsYXkgbXVzdCBzaGFyZSB0aGUgdGlsZSBleGFjdGx5IG9yIHRoZSB0d28gbGF5ZXJzIGNyb3NzLWZhZGVcbi8vIG91dCBvZiByZWdpc3RlciwgYW5kIGl0IGhhbHZlcyB0aGUgZHVyYXRpb24gcmF0aGVyIHRoYW4gcmVzdGF0aW5nIGEgbWFnaWMgbnVtYmVyLlxuJHNsaWNlLWFudHMtdGlsZTogOHB4O1xuJHNsaWNlLWFudHMtZHVyYXRpb246IDAuNnM7XG5cbi8vIEhvdmVyIHJ1bnMgYXQgSEFMRiBTUEVFRCwgc28gdHdpY2UgdGhlIGR1cmF0aW9uLlxuJHNsaWNlLWFudHMtaG92ZXItZHVyYXRpb246ICRzbGljZS1hbnRzLWR1cmF0aW9uICogMjtcblxuLy8gQ3Jvc3MtZmFkZSBiZXR3ZWVuIHRoZSBpZGxlIGFuZCBob3ZlciBhbnRzLiBTaG9ydCBlbm91Z2ggdG8gZmVlbCBsaWtlIGEgcmVzcG9uc2UgdG8gdGhlXG4vLyBwb2ludGVyIHJhdGhlciB0aGFuIGFuIGVmZmVjdCBwbGF5aW5nIGF0IHlvdS5cbiRzbGljZS1ob3Zlci1mYWRlOiAxNjBtcztcbiRjb2xvci1sYXllci1hY2NlbnQtc29mdDogcmdiYSg4MCwgNzksIDI0NiwgMC4xMik7XG4kY29sb3ItZGFuZ2VyLWJvcmRlcjogI2QzMmYyZjtcbiRjb2xvci1kYW5nZXItYmc6ICNmZmViZWU7XG4kY29sb3ItZGFuZ2VyLXRleHQ6ICNjNjI4Mjg7XG5cbi8vIE1lb3cgTWl4IGJhZGdlc1xuJGJhZGdlLXByby1iZzogI2ZmZDU0ZjtcbiRiYWRnZS1wcm8tdGV4dDogIzVhNDUwMDtcbiRiYWRnZS1kZXYtYmc6ICM3ZTU3YzI7XG4kYmFkZ2UtZGV2LXRleHQ6ICRjb2xvci13aGl0ZTtcbiRiYWRnZS1mb250LXNpemU6IDEwcHg7XG4kYmFkZ2UtcGFkZGluZy15OiAxcHg7XG4kYmFkZ2UtcGFkZGluZy14OiA2cHg7XG4kYmFkZ2UtbWFyZ2luLWxlZnQ6IDhweDtcbiRiYWRnZS1yYWRpdXM6IDNweDtcblxuLy8gUmVzaXplIGhhbmRsZSAobWF0Y2ggY29uc3RhbnRzICsgQXBwLnNjc3MpXG4kcmVzaXplLWhhbmRsZS1weDogOHB4O1xuXG4vLyBMYXllciBzZWxlY3Rpb24gY2hyb21lIChtYXRjaCBjb25zdGFudHMuTEFZRVJfSEFORExFX1BYIC8gTEFZRVJfSE9WRVJfRlJBTUVfUFgpLlxuLy8gU0NSRUVOIHBpeGVscyDigJQgdGhlIGNocm9tZSBpcyBjb3VudGVyLXNjYWxlZCBieSAxL2sgc28gem9vbSBuZXZlciBjaGFuZ2VzIHRoZW0uXG4kbGF5ZXItaGFuZGxlLXB4OiAxMHB4O1xuJGxheWVyLWhvdmVyLWZyYW1lLXB4OiAxcHg7XG5cbi8vIFNsaWNlIG91dGxpbmUgbWFyY2hpbmctYW50cyB0aWxlIChtYXRjaCBjb25zdGFudHMuU0xJQ0VfT1VUTElORV9USUxFX1BYKS5cbiRzbGljZS1vdXRsaW5lLXRpbGUtcHg6IDQ2cHg7XG5cbi8vIFR5cG9ncmFwaHlcbiRmb250LXNpemUteHM6IDExcHg7XG4kZm9udC1zaXplLXNtOiAxMnB4O1xuJGZvbnQtc2l6ZS1tZDogMTNweDtcbiRmb250LXNpemUtbGc6IDE4cHg7XG4kZm9udC1zaXplLXRpdGxlOiAxNnB4OyAgICAgICAgICAgIC8vIGRyYXdlciAvIHBhbmVsIHNlY3Rpb24gdGl0bGVzXG4kZm9udC13ZWlnaHQtYm9sZDogNzAwOyAgICAgICAgICAgIC8vIGdlbmVyaWMgYm9sZCBsYWJlbHMgKD09IENTUyBgYm9sZGApXG4kZm9udC13ZWlnaHQtY3RhOiA3MDA7XG4kZm9udC13ZWlnaHQtaGVhdnk6IDkwMDtcblxuLy8gQXV0aCBtb2RhbFxuJGF1dGgtbW9kYWwtYmc6ICRjb2xvci1zdXJmYWNlO1xuJGF1dGgtbW9kYWwtYm9yZGVyLXJhZGl1czogM3B4O1xuJGF1dGgtbW9kYWwtbGVmdC1iZzogIzExMTtcbiRhdXRoLW1vZGFsLXNjYWxlLWNsb3NlZDogMC42MDtcbiRhdXRoLW1vZGFsLXotaW5kZXg6IDEwMDAwMDtcblxuLy8gSGVscCBwb3BvdmVyXG4kaGVscC1wb3BvdmVyLW1heC13aWR0aDogNjIwcHg7XG4kaGVscC1wb3BvdmVyLWJnOiAkY29sb3Itc3VyZmFjZTtcbiRoZWxwLXBvcG92ZXItYm9yZGVyLWNvbG9yOiAkY29sb3ItYm9yZGVyLWRlZmF1bHQ7XG4kaGVscC1wb3BvdmVyLXRpdGxlLWZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtY3RhO1xuJGhlbHAtcG9wb3Zlci10aXRsZS1mb250LXNpemU6IDEycHg7XG4kaGVscC1wb3BvdmVyLWtiZC1mb250LXNpemU6IDExcHg7XG5cbi8vIE1vdGlvblxuJHRldHJpcy1hbmltLWR1cmF0aW9uOiAwLjNzO1xuXG4vLyBPcGFjaXR5XG4kc2VsZWN0LWFyZWFzLW92ZXJsYXktaGFzLXNsaWNlLW9wYWNpdHk6IDAuNTtcbiRkaXNhYmxlZC1vcGFjaXR5OiAwLjU7XG5cbi8vIFotaW5kZXggKGtlZXAgdGhlc2Ugc29ydGVkIGFzY2VuZGluZylcbiR6LXNsaWNlLW91dGxpbmUtaW5hY3RpdmU6IDA7XG4kei1zbGljZS1iZy1pbmFjdGl2ZTogMjtcblxuLy8gUHJvIExheWVyczogbGl2ZSBjb21wb3NpdGUgY2FudmFzIOKGkiBkb2N1bWVudCBib3VuZGFyeSDihpIgbW92ZS1jYXB0dXJlIHN1cmZhY2Ug4oaSXG4vLyBzZWxlY3Rpb24gY2hyb21lLCBhbGwgd2l0aGluIHRoZSAuY2FudmFzLXdvcmxkIHN0YWNraW5nIGNvbnRleHQgKGJlbG93IHRoZSBhY3RpdmVcbi8vIHNsaWNlIGNocm9tZSkuIFRoZSBjaHJvbWUgc2l0cyBBQk9WRSB0aGUgY2FwdHVyZSBzdXJmYWNlIHNvIGl0cyByZXNpemUgaGFuZGxlcyB3aW5cbi8vIHRoZSBwb2ludGVyLCB3aGlsZSBhIGRyYWcgYW55d2hlcmUgZWxzZSBpbiB0aGUgbGF5ZXIgc3RpbGwgZmFsbHMgdGhyb3VnaCB0byBhIG1vdmUuXG5cbiR6LWxheWVyLWxpdmUtY2FudmFzOiA0MDtcbiR6LWxheWVyLWNhbnZhcy1ib3VuZGFyeTogNDY7XG4kei1sYXllci1tb3ZlLWNhcHR1cmU6IDUwO1xuJHotbGF5ZXItY2hyb21lOiA1MjtcbiR6LXNsaWNlLW91dGxpbmUtYWN0aXZlOiAxMDA7XG4kei1zbGljZS1iZy1hY3RpdmU6IDEwMjtcbiR6LXNsaWNlLWRlbGV0ZS1idXR0b246IDEwNDtcbiR6LXNsaWNlLXJlc2l6ZS1oYW5kbGU6IDEwNTtcblxuLy8gSW50ZXJhY3RpdmUgbGF5ZXIgKGhhbmRsZXMvZGVsZXRlL2RyYWcgaGl0KSBhYm92ZSBjcm9wIHByZXZpZXcgaW4gem9vbS9wYW4gbW9kZS5cbiR6LXNsaWNlLWludGVyYWN0aXZlLWxheWVyOiAxMTA7XG4kei1jYW52YXMtd29ybGQ6IDIwMDtcbiR6LWNhbnZhcy1vdmVybGF5OiA1MDA7XG4kei10b3VjaC1ndWlkZXMtb3ZlcmxheTogOTk5O1xuXG4vLyBGbG9hdGluZyBsYXllci1vcHRpb25zIGlzbGFuZDogYWJvdmUgdGhlIGNhbnZhcyArIGRyYXdlcnMsIGJlbG93IHBvcG92ZXJzIGFuZCBtb2RhbHNcbi8vIHNvIGFuIG9wZW4gSGVscC9jYW52YXMtc2l6ZSBwb3BvdmVyIGlzIG5ldmVyIGNvdmVyZWQgYnkgaXQuXG4kei1sYXllci1vcHRpb25zLWlzbGFuZDogOTkwO1xuJHotaGVscC1wb3BvdmVyOiAxMDAwO1xuXG4vLyBDb250ZXh0IG1lbnUgc2l0cyBhYm92ZSBldmVyeXRoaW5nIGl0IGNhbiBiZSBvcGVuZWQgb3ZlciwgaW5jbHVkaW5nIHRoZSBvcHRpb25zIGlzbGFuZC5cbiR6LWNhbnZhcy1jb250ZXh0LW1lbnU6IDEwMTA7XG4kei16b29tLXBhbi1oaXQtc3VyZmFjZTogOTk5NjtcbiR6LWF1dGgtbGF1bmNoZXI6IDk5OTk5O1xuIiwiLyogTW9kYWwgVUkgZm9yIFwicmVhbCBhdXRoXCIgYW5kIGRldi1hdXRoIHZhcmlhbnQuICovXG5AaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuXG4uYXV0aC1tb2RhbC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU1KTtcbiAgei1pbmRleDogJGF1dGgtbW9kYWwtei1pbmRleDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE4cHg7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpO1xuXG4gICZbZGF0YS1zdGF0ZT1cIm9wZW5cIl0ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmW2RhdGEtc3RhdGU9XCJleGl0XCJdIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLmF1dGgtbW9kYWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogbWluKDk4MHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpO1xuICAgIGhlaWdodDogbWluKDY0MHB4LCBjYWxjKDEwMHZoIC0gMjRweCkpO1xuICAgIGJhY2tncm91bmQ6ICRhdXRoLW1vZGFsLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6ICRhdXRoLW1vZGFsLWJvcmRlci1yYWRpdXM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMS4xMmZyIDFmcjtcbiAgICBib3gtc2hhZG93OiAwIDE2cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoJGF1dGgtbW9kYWwtc2NhbGUtY2xvc2VkKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246XG4gICAgICB0cmFuc2Zvcm0gMzAwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44LCAwLjIsIDEpLFxuICAgICAgb3BhY2l0eSAzMDBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjgsIDAuMiwgMSk7XG5cbiAgICAuYXV0aC1tb2RhbC1jbG9zZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB3aWR0aDogMjhweDtcbiAgICAgIGhlaWdodDogMjhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hdXRoLW1vZGFsLWxlZnQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogJGF1dGgtbW9kYWwtbGVmdC1iZztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgIC5hdXRoLW1vZGFsLWxlZnQtaW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC8vIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAvLyBmaWx0ZXI6IHNhdHVyYXRlKDEuMDUpIGNvbnRyYXN0KDEuMDIpO1xuICAgICAgfVxuXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCg5MDBweCA1MjBweCBhdCAyMCUgMTUlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDU1JSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLCAwLCAwLCAwLjA4KSwgcmdiYSgwLCAwLCAwLCAwLjM4KSk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hdXRoLW1vZGFsLXJpZ2h0IHtcbiAgICAgIHBhZGRpbmc6IDIycHggMjJweCAxOHB4O1xuICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXN1cmZhY2U7XG4gICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCAjZWFlYWVhO1xuICAgICAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG5cbiAgICAgIC5hdXRoLWZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLWZvcm0taGVybyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1mb3JtLWhlcm8tdGl0bGUge1xuICAgICAgICAvLyBGb250IHNpemUgY29tZXMgZnJvbSBgLmFpdGNoLW9uZWAgKHNoYXJlZCB3aXRoIEFwcCBoZWFkZXIpLlxuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLWZvcm0taGVyby1zdWJ0aXRsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogIzQ0NDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtZm9ybS1zd2l0Y2gge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjNDQ0O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgIH1cblxuICAgICAgLy8gYXV0aCBsaW5rIHN0eWxlcyBsaXZlIGluIEFwcC5zY3NzIChgLmN0YS1idG4tbGlua2AgLyBgLmF1dGgtbGlua2AgdXNhZ2UpLlxuXG4gICAgICAuYXV0aC1maWVsZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1maWVsZC1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBjb2xvcjogIzExMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgfVxuXG4gICAgICAvLyBJbnB1dCBzdHlsZXMgbGl2ZSBpbiBBcHAuc2NzcyAoYC5jb21tYW5kaW5nLWlucHV0YCAvIGAuc3VwZXItY29tbWFuZGluZy1pbnB1dGApLlxuXG4gICAgICAuYXV0aC1pbnB1dC13aXRoLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLWljb24tYnRuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDRweCA2cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAuYXV0aC1pY29uIHtcbiAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIgLmF1dGgtaWNvbiB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYXV0aC1yZW1lbWJlci1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtdG9nZ2xlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNTRweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXN1cmZhY2U7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtdG9nZ2xlLWtub2Ige1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAzcHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMTE7XG4gICAgICAgIHRyYW5zaXRpb246IGxlZnQgMTYwbXMgZWFzZSwgYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC10b2dnbGUub24gLmF1dGgtdG9nZ2xlLWtub2Ige1xuICAgICAgICBsZWZ0OiAyN3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTExO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1yZW1lbWJlci1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogIzExMTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAvLyBQcmltYXJ5IGJ1dHRvbiBzdHlsZSBsaXZlcyBpbiBBcHAuc2NzcyAoYC5wcmltYXJ5LWJ0bmApIGZvciBjb25zaXN0ZW5jeS5cblxuICAgICAgLmF1dGgtZm9yZ290IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgLy8gRm9udCArIGNvbG9yIGNvbWUgZnJvbSBzaGFyZWQgYC5ncmVlbi1saW5rLWJ0bmAuXG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC10b2dnbGUtcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXN1cmZhY2U7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMjM5MzczO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2YwZmJmNztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWZpZWxkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBjb2xvcjogIzQ0NDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1maWVsZCBpbnB1dCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG1hcmdpbjogMTBweCAwIDZweDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIHBhZGRpbmc6IDlweCAxMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG5cbiAgICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLW5vdGUge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWQ7XG4gICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1kZXYge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTRweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlZWU7XG4gICAgICB9XG5cbiAgICAgIC5hdXRoLW1vZGFsLWRldi10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtZGV2LXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1zdXJmYWNlO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1kZXYtc2VjdGlvbi10aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1kZXYtc2VjdGlvbi1zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICM1NTU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1pbmZvIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgY29sb3I6ICMxYjVlMjA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICAgIH1cblxuICAgICAgLmF1dGgtbW9kYWwtZXJyb3Ige1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBjb2xvcjogI2IwMDAyMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xuICAgICAgfVxuXG4gICAgICAuYXV0aC1tb2RhbC1sZWdhbCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICM2NjY7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJltkYXRhLXN0YXRlPVwib3BlblwiXSAuYXV0aC1tb2RhbCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJltkYXRhLXN0YXRlPVwiZXhpdFwiXSAuYXV0aC1tb2RhbCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkYXV0aC1tb2RhbC1zY2FsZS1jbG9zZWQpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogODIwcHgpIHtcbiAgICAuYXV0aC1tb2RhbCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyNHB4KTtcbiAgICB9XG5cbiAgICAuYXV0aC1tb2RhbC1sZWZ0IHtcbiAgICAgIGhlaWdodDogMjIwcHg7XG4gICAgfVxuXG4gICAgLmF1dGgtbW9kYWwtcmlnaHQge1xuICAgICAgcGFkZGluZzogMjBweCAxNnB4IDE2cHg7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmF1dGgtbW9kYWwtb3ZlcmxheSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgLmF1dGgtbW9kYWwge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuXG4uYXV0aC1sYXVuY2hlci1idG4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAxMnB4O1xuICBib3R0b206IDEycHg7XG4gIHotaW5kZXg6ICR6LWF1dGgtbGF1bmNoZXI7XG4gIG1heC13aWR0aDogbWluKDMyMHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLmF1dGgtbGF1bmNoZXItbWFuYWdlIHtcbiAgYm90dG9tOiA0OHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIG9wYWNpdHk6IDAuODU7XG4gICY6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG4gICY6ZGlzYWJsZWQgeyBvcGFjaXR5OiAwLjU7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbn1cblxuIiwiLmFwcC1lcnJvci1iYW5uZXIge1xuICAuZXJyLWRldi1kaWFnbm9zdGljIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgIG1hcmdpbjogMTJweCBhdXRvIDA7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgTWVubG8sIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjb2xvcjogIzVhNDUwMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmM2NkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjOWEyMjc7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB9XG59XG4iLCIvKipcbiAqIEFwcC5zY3NzXG4gKiBUaGUgbW9zdCBtb3N0IENTUyBTQ1NTIGZpbGUgdGhlcmUgaXMgaW4gdGhlIHVuaXZlcnNlIOKAlCBhbmQgbm93IHRoZSBPTkxZIG9uZSBmb3IgYXBwIENTUy5cbiAqXG4gKiBgX2Jhc2VsaW5lLnNjc3NgIChvcmlnaW5hbGx5IGBfbGVnYWN5TWFpbk1pbi5zY3NzYCwgZnJvbSB0aGUgdjEgYGNzcy9tYWluLm1pbi5jc3NgKSB3YXNcbiAqIHJldGlyZWQgb24gMjAyNi0wOC0xNiBhbmQgaXRzIHJ1bGVzIGxpdmUgaGVyZSwgYXQgdGhlIHRvcCwgd2hlcmUgaXRzIGBAaW1wb3J0YCB1c2VkIHRvIHNpdC5cbiAqIDEwMiBkZWNsYXJhdGlvbnMgdGhhdCB0aGlzIGZpbGUgYWxyZWFkeSByZXN0YXRlZCBmdXJ0aGVyIGRvd24gd2VyZSBkcm9wcGVkIGluIHRoZSBzYW1lIHBhc3MuXG4gKlxuICog4pqg77iPIE9SREVSIElTIExPQUQtQkVBUklORy4gVGhlIHJlc2V0ICsgc2hhcmVkIGNvbXBvbmVudCBibG9jayBiZWxvdyBtdXN0IHN0YXkgQUJPVkVcbiAqIGV2ZXJ5dGhpbmcgZWxzZTogZG96ZW5zIG9mIHJ1bGVzIGZ1cnRoZXIgZG93biBvdmVycmlkZSBpdCBwdXJlbHkgYnkgc291cmNlIG9yZGVyLCBub3QgYnlcbiAqIHNwZWNpZmljaXR5LiBNb3ZpbmcgYSBydWxlIHVwIG9yIGRvd24gaW4gdGhpcyBmaWxlIGNhbiBzaWxlbnRseSBjaGFuZ2Ugd2hhdCByZW5kZXJzLlxuICpcbiAqIOKaoO+4jyBgbnBtIHJ1biB2ZXJpZnk6YWxsYCBDQU5OT1Qgc2VlIGEgQ1NTIHJlZ3Jlc3Npb24g4oCUIGl0IGFzc2VydHMgZ2VvbWV0cnkgYW5kIGJlaGF2aW91cixcbiAqIG5ldmVyIGFwcGVhcmFuY2UuIFByb3ZlIGNoYW5nZXMgaGVyZSB3aXRoIHRoZSBjb21wdXRlZC1zdHlsZSBmaW5nZXJwcmludCBoYXJuZXNzXG4gKiAoYC5haS1hc3Npc3QvdG9vbHMvaW1hZ2VzbGljZXItY3NzLWZpbmdlcnByaW50LnB3c3BlYy50c2ApIHBsdXMgYmVmb3JlL2FmdGVyIHNjcmVlbnNob3RzLlxuICogVGhpcyByZXRpcmVtZW50IHdhcyBwcm92ZW4gdGhhdCB3YXk6IDE4MzYgZWxlbWVudC1zdGF0ZXMgYW5kIDE1IGZ1bGwtcGFnZSBzY3JlZW5zaG90cyxcbiAqIGJvdGggemVyby1kaWZmLCB3aXRoIGJvdGggaW5zdHJ1bWVudHMgY2FsaWJyYXRlZCB0byB6ZXJvIGZpcnN0LlxuICovXG4vLyBCb3RoIGltcG9ydHMgc2l0IGhlcmUsIGFib3ZlIGV2ZXJ5IHJ1bGUuIGBAaW1wb3J0YCBiZWxvdyBhIHJ1bGUgaXMgaW52YWxpZCBDU1MgcG9zaXRpb24g4oCUXG4vLyBTYXNzIHJlc29sdmVzIGl0IGF0IGNvbXBpbGUgdGltZSBzbyBpdCB3b3JrZWQsIGJ1dCBpdCBvbmx5IGVuZGVkIHVwIGRvd24gdGhlcmUgYmVjYXVzZSB0aGVcbi8vIGJhc2VsaW5lIGJsb2NrIHdhcyBpbmxpbmVkIGJldHdlZW4gdGhlIHR3by4gYF96SW5kZXhgIGVtaXRzIG9ubHkgYDpyb290YCBjdXN0b20gcHJvcGVydGllcyxcbi8vIHNvIGhvaXN0aW5nIGl0IGNoYW5nZXMgbm90aGluZyAodmVyaWZpZWQ6IDAgZGlmZnMgb24gMTgzNiBlbGVtZW50LXN0YXRlcywgMCBwaXhlbHMpLlxuQGltcG9ydCAnLi92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi96SW5kZXgnO1xuXG4vLyBgQGtleWZyYW1lcyByYWluYm93YCDigJQgd2FzIGRlY2xhcmVkIGhlcmUgQU5EIGluIGFsbCBmb3VyIHBhZ2Ugc3R5bGVzaGVldHMuIFRoaXMgaXMgdGhlXG4vLyBPTkxZIGltcG9ydGVyIG9mIHRoYXQgcGFydGlhbDsgc2VlIHRoZSBmaWxlIGZvciB3aHkgdGhhdCBpcyBkZWxpYmVyYXRlLlxuQGltcG9ydCAnLi9hbmltYXRpb25zJztcblxuLy8g4pSA4pSAIFJlc2V0ICsgc2hhcmVkIGNvbXBvbmVudCBzdHlsZXMgdGhlIHdob2xlIGFwcCBpcyBkcmF3biBvbiB0b3Agb2YgKHdhcyBgX2Jhc2VsaW5lLnNjc3NgKS5cbiNlcnIsXG4uZXJyIHtcbiAgY29sb3I6IHJlZDtcbn1cblxuI2ltZ1dyYXAsXG4jdXBsb2FkRm9ybSxcbi5jZW50ZXIsXG4uZXJyLFxuLnJlc3VsdC13cmFwLFxuLnRodW1iRGl2LFxuaDEsXG5oMiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI2FjdGlvbnMsXG4jbWVudSxcbiN0b29sLWJveCxcbi5yZXN1bHQtd3JhcCBpbWcge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4jYWN0aW9ucyxcbiNzd2l0Y2gtc3RhdHVzLFxuI3Rvb2wtYm94LFxuLmJ0bi1jaG9wLFxuLnN3aXRjaCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuYSxhYmJyLGFjcm9ueW0sYWRkcmVzcyxhcHBsZXQsYXJ0aWNsZSxhc2lkZSxhdWRpbyxiLGJpZyxibG9ja3F1b3RlLGJvZHksY2FudmFzLGNhcHRpb24sY2VudGVyLGNpdGUsY29kZSxkZCxkZWwsZGV0YWlscyxkZm4sZGl2LGRsLGR0LGVtLGVtYmVkLGZpZWxkc2V0LGZpZ2NhcHRpb24sZmlndXJlLGZvb3Rlcixmb3JtLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHRtbCxpLGlmcmFtZSxpbWcsaW5zLGtiZCxsYWJlbCxsZWdlbmQsbGksbWFyayxtZW51LG5hdixvYmplY3Qsb2wsb3V0cHV0LHAscHJlLHEscnVieSxzLHNhbXAsc2VjdGlvbixzbWFsbCxzcGFuLHN0cmlrZSxzdHJvbmcsc3ViLHN1bW1hcnksc3VwLHRhYmxlLHRib2R5LHRkLHRmb290LHRoLHRoZWFkLHRpbWUsdHIsdHQsdSx1bCx2YXIsdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcblxuICAvLyBOT1RFOiB0aGUgdjEgcmVzZXQgYWxzbyBjYXJyaWVkIGBmb250LXNpemU6IDExMCVgIGhlcmUuIEl0IHdhcyBERUFEIOKAlCB0aGUgYGZvbnQ6IGluaGVyaXRgXG4gIC8vIHNob3J0aGFuZCBvbiB0aGUgbmV4dCBsaW5lIHJlc2V0cyBmb250LXNpemUsIGFuZCBpdCBjb21lcyBhZnRlci4gUmVtb3ZlZCAyMDI2LTA4LTE2IG9uY2VcbiAgLy8gc3R5bGVsaW50J3MgYGRlY2xhcmF0aW9uLWJsb2NrLW5vLXNob3J0aGFuZC1wcm9wZXJ0eS1vdmVycmlkZXNgIHBvaW50ZWQgYXQgaXQuXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuYXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1lbnUsbmF2LHNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbmJsb2NrcXVvdGUsXG5xIHtcbiAgcXVvdGVzOiBub25lO1xuXG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmU7XG4gIH1cbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuYnV0dG9uIHtcbiAgaGVpZ2h0OiAzMHB4O1xufVxuXG4jZXJyLFxuLmVyciB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLnN3aXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDM4cHg7XG4gIGhlaWdodDogMjJweDtcbn1cblxuYnV0dG9uIHtcbiAgJi5idG4tYWRkOjpiZWZvcmUsXG4gICYuYnRuLWNsZWFyOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMThweCAxOHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuXG4gICYuYnRuLWFkZDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4vcmVzb3VyY2VzL2FkZC1uZXctaWNvbi5wbmcnKTtcbiAgfVxuXG4gICYuYnRuLWNsZWFyOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi9yZXNvdXJjZXMvY2xlYXItYWxsLWljb24ucG5nJyk7XG4gIH1cbn1cblxuJGRlbGV0ZS1pbWc6IHVybCgnLi9yZXNvdXJjZXMvYnQtZGVsZXRlLnBuZycpO1xuJGNvbnRhaW5lci13aWR0aDogNzgwcHg7XG4kcmFkaXVzLXNtOiAzcHg7XG5cbjpyb290IHtcbiAgLS1mb250LXNpemUtc206IDEycHg7XG4gIC0tZm9udC1zaXplLWJhc2U6IDE0cHg7XG59XG5cbkBrZXlmcmFtZXMgTU9WRS1CRyB7XG5cdGZyb20ge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcblx0fVxuXG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHNsaWNlLW91dGxpbmUtdGlsZS1weCk7XG5cdH1cbn1cblxuLmNsZWFyZml4IHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2FjdGlvbnMuZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuaDEsXG5oMiB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBmb250LXNpemU6IDI1cHg7XG59XG5cbmgxLFxuaDIsXG5oMyB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5kZWxldGUtYXJlYSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIE1pcnJvciBPRyB2MS4wOiBwYWRkaW5nOiA1cHggNXB4IDJweCAycHggKHNsaWdodGx5IHNob3J0ZXIgYm94IHNvIGRlbGV0ZSBpY29uXG4gIC8vIHNpdHMgYSBiaXQgY2xvc2VyIHRvIHRoZSBzZWxlY3Rpb24sIG1hdGNoaW5nIHRvcDogLThweCB2cyAtMTFweCBiZWhhdmlvcikuXG4gIHBhZGRpbmc6IDVweCA1cHggMnB4IDJweDtcbn1cblxuI2ltZ1dyYXAsICN1cGxvYWRGb3JtLCAuY2VudGVyLCBoMSwgaDIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vIFVwbG9hZCBmb3JtIHNpemluZyBhbmQgdHlwb2dyYXBoeVxuI3VwbG9hZEZvcm0ge1xuICAvLyBUT0RPOiBzaGFyZSBzYW1lIHZhcmlhYmxlIHdpdGggSlMgYW5kIENTU1xuICBtYXgtd2lkdGg6ICRjb250YWluZXItd2lkdGg7XG4gIG1hcmdpbjogMjBweCBhdXRvO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi8vIEdsb2JhbCB0eXBvZ3JhcGh5XG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbiosXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiQ291cmllciBOZXdcIixDb3VyaWVyLFwiTHVjaWRhIFNhbnMgVHlwZXdyaXRlclwiLFwiTHVjaWRhIFR5cGV3cml0ZXJcIixtb25vc3BhY2U7XG59XG5cbiNkeW5hbWljLXRleHQge1xuICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbn1cblxuLmRvd25sb2FkLWFsbCB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDIwcHggYXV0bztcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5mZWVkYmFjayB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLW1kO1xufVxuXG4uYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udGh1bWJEaXYge1xuICBoZWlnaHQ6IDE0MnB4O1xuICB3aWR0aDogMTQycHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxNDBweDtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXI6IDFweCBkb3R0ZWQgIzk5OTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkcmFkaXVzLXNtO1xuICAtbW96LWJvcmRlci1yYWRpdXM6ICRyYWRpdXMtc207XG4gIGJvcmRlci1yYWRpdXM6ICRyYWRpdXMtc207XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMThweCAtNnB4IHJnYmEoMCwwLDAsLjc1KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDhweCAxOHB4IC02cHggcmdiYSgwLDAsMCwuNzUpO1xuICBib3gtc2hhZG93OiAwIDhweCAxOHB4IC02cHggcmdiYSgwLDAsMCwuNzUpO1xufVxuXG4ucmVzdWx0LXdyYXAsIC50aHVtYkRpdiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnJlc3VsdC13cmFwIGltZyB7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDE0MHB4O1xuICBtYXgtd2lkdGg6IDE0MHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAyNnB4IC03cHggcmdiYSgwLDAsMCwuNzUpO1xuICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMCAyNnB4IC03cHggcmdiYSgwLDAsMCwuNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjZweCAtN3B4IHJnYmEoMCwwLDAsLjc1KTtcbn1cblxuLy8gXCJUaGUgR3JpZFwiIOKAlCB0aGUgZGlnaXRhbCBmcm9udGllciB0aGUgZG9jdW1lbnQgbGl2ZXMgb24uIFJlbmFtZWQgZnJvbSBgI2NhbnZhc2AgYmVjYXVzZVxuLy8gdGhyZWUgZGlmZmVyZW50IHRoaW5ncyBpbiB0aGlzIGZpbGUgd2VyZSBhbGwgY2FsbGVkIHNvbWUgZmxhdm91ciBvZiBcImNhbnZhc1wiOiB0aGlzIG91dGVyXG4vLyBjb2x1bW4sIHRoZSB2aWV3cG9ydCAoYC5pbWctY2FudmFzYCksIGFuZCB0aGUgZG9jdW1lbnQgKGAuY2FudmFzLXdvcmxkYCkuIFRob3NlIHRocmVlIGJlaW5nXG4vLyBpbnRlcmNoYW5nZWFibGUgaW4gTkFNRSB3aGlsZSBkaXN0aW5jdCBpbiBCRUhBVklPVVIgaXMgd2hhdCBjb3N0IHRoaXMgY29kZWJhc2UgbW9zdCBvZiB0d29cbi8vIHNlc3Npb25zOyBzZWUgYC5haS1hc3Npc3QvcmVmZXJlbmNlLWltYWdlc2xpY2VyLWNhbnZhcy1lbGVtZW50cy5tZGAuXG4vL1xuLy8gVGhpcyBvbmUgaXMgdGhlIG91dGVybW9zdDogdGhlIHBhZ2UtbGV2ZWwgY29sdW1uIHRoZSB3aG9sZSBlZGl0b3Igc2l0cyBpbi5cbiN0aGUtZ3JpZCB7XG4gIG1hcmdpbjogMTBweCBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtaW4taGVpZ2h0OiAkY2FudmFzLW1pbi1oZWlnaHQ7XG5cbiAgLmltZy1jYW52YXMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIC8vIFNhYWFhZmFhcnJycmkgbm90IEZlcnJhcmlcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHdpZHRoOiAkaW1nLWNhbnZhcy13aWR0aDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAjc2xpY2VJbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAvLyBTYWFhYWZhYXJycnJpIG5vdCBGZXJyYXJpXG4gICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBFbnN1cmUgb3ZlcmxheXMgKHNuYXAvY2xhbXAgZ3VpZGVzLCBzZWxlY3QtYXJlYSBjaHJvbWUpIHBvc2l0aW9uIGNvcnJlY3RseVxuLy8gZXZlbiBpZiBgLmltZy1jYW52YXNgIGlzIHVzZWQgb3V0c2lkZSBgI3RoZS1ncmlkYC5cbi5pbWctY2FudmFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBab29tL1BhbiB2aWV3cG9ydCB3cmFwcGVyOlxuLy8gLSBgLmltZy1jYW52YXNgIHJlbWFpbnMgdGhlIHVudHJhbnNmb3JtZWQgbGF5b3V0IGJveCAodXNlZCBmb3Igc2xpY2UgbWF0aCArIGV4cG9ydHMpLlxuLy8gLSBgLmNhbnZhcy13b3JsZGAgaXMgdHJhbnNmb3JtZWQgKHRyYW5zbGF0ZStzY2FsZSkgdG8gcHJvdmlkZSB2aXN1YWwgem9vbS9wYW4uXG4uaW1nLWNhbnZhcy16b29tcGFuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBQcmV2ZW50IGJyb3dzZXIgc2Nyb2xsL3pvb20gZ2VzdHVyZXMgZnJvbSBoaWphY2tpbmcgd2hlZWwvcGluY2ggaW50ZXJhY3Rpb25zIG92ZXIgdGhlIGNhbnZhcy5cbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuXG4gIC8vIFNhZmFyaS9XZWJLaXQ6IG1pdGlnYXRlIG9jY2FzaW9uYWwgdHJhbnNmb3JtIHJhc3Rlcml6YXRpb24gYXJ0aWZhY3RzIChhIFwidHVubmVsXCIgLyBhZnRlcmltYWdlKVxuICAvLyBhcm91bmQgdGhlIGNhbnZhcyB3aGVuIHpvb21lZCBvdXQuIEZvcmNpbmcgbGF5ZXIgaXNvbGF0aW9uL2NvbXBvc2l0aW5nIGhlbHBzLlxuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGNvbnRhaW46IHBhaW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgLy8gT1VUIE9GIEJPVU5EUzogc3F1YXJlcyBhdCBET1VCTEUgdGhlIGRvY3VtZW50J3MsIGFuZCBmYWludGVyLiBUd28gZGlmZmVyZW50IHRoaW5ncyBtdXN0XG4gIC8vIG5vdCBsb29rIHRoZSBzYW1lIOKAlCBpbnNpZGUgbWVhbnMgXCJ0cmFuc3BhcmVudCBoZXJlXCIsIG91dHNpZGUgbWVhbnMgXCJub3QgcGFydCBvZiB5b3VyIGltYWdlXG4gIC8vIGF0IGFsbFwiLCBhbmQgb25lIHNoYXJlZCBwYXR0ZXJuIG1hZGUgdGhlIGRvY3VtZW50J3MgZWRnZSBnZW51aW5lbHkgaGFyZCB0byBmaW5kIHdpdGggYVxuICAvLyBsYXllciBoYW5naW5nIG92ZXIgaXQuXG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1jYW52YXMtY2hlY2tlci1iZztcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMCwgMCwgMCwgMC4wNCkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDc1JSwgcmdiYSgwLCAwLCAwLCAwLjA0KSA3NSUsIHJnYmEoMCwgMCwgMCwgMC4wNCkpLFxuICAgIGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgwLCAwLCAwLCAwLjA0KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNzUlLCByZ2JhKDAsIDAsIDAsIDAuMDQpIDc1JSwgcmdiYSgwLCAwLCAwLCAwLjA0KSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMzZweCAzNnB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDAsIDE4cHggMThweDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA4KTtcbn1cblxuLmltZy1jYW52YXMtem9vbXBhbi1zcGFjZSB7XG4gIGN1cnNvcjogZ3JhYjtcblxuICAvLyBEdXJpbmcgXCJoYW5kIHRvb2xcIiBtb2RlIChTcGFjZSBoZWxkKSwgZm9yY2UgdGhlIGN1cnNvciB0byByZWZsZWN0IHBhbm5pbmcgZXZlbiB3aGVuIGhvdmVyaW5nXG4gIC8vIGVsZW1lbnRzIHRoYXQgbm9ybWFsbHkgc2V0IHRoZWlyIG93biBjdXJzb3IgKGUuZy4gbW92ZS9yZXNpemUgaGFuZGxlcykuXG4gIC5jYW52YXMtd29ybGQsXG4gIC5zZWxlY3QtYXJlYXMtb3ZlcmxheSxcbiAgLnNlbGVjdC1hcmVhcy1zbGljZS13cmFwLFxuICAuc2VsZWN0LWFyZWFzLW91dGxpbmUsXG4gIC5zZWxlY3QtYXJlYXMtcmVzaXplLWhhbmRsZXIsXG4gIC5kZWxldGUtYXJlYSxcbiAgLnNlbGVjdC1hcmVhcy1kZWxldGUtYXJlYSB7XG4gICAgY3Vyc29yOiBncmFiICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmltZy1jYW52YXMtem9vbXBhbi1wYW5uaW5nIHtcbiAgY3Vyc29yOiBncmFiYmluZztcblxuICAuY2FudmFzLXdvcmxkLFxuICAuc2VsZWN0LWFyZWFzLW92ZXJsYXksXG4gIC5zZWxlY3QtYXJlYXMtc2xpY2Utd3JhcCxcbiAgLnNlbGVjdC1hcmVhcy1vdXRsaW5lLFxuICAuc2VsZWN0LWFyZWFzLXJlc2l6ZS1oYW5kbGVyLFxuICAuZGVsZXRlLWFyZWEsXG4gIC5zZWxlY3QtYXJlYXMtZGVsZXRlLWFyZWEge1xuICAgIGN1cnNvcjogZ3JhYmJpbmcgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uY2FudmFzLXdvcmxkIHtcbiAgLy8gTXVzdCByZW1haW4gaW4gbm9ybWFsIGZsb3cgc28gYC5pbWctY2FudmFzYCByZXRhaW5zIHRoZSBpbWFnZSBoZWlnaHQuXG4gIC8vIElmIHRoaXMgYmVjb21lcyBgcG9zaXRpb246YWJzb2x1dGVgLCB0aGUgcGFyZW50IGNhbiBjb2xsYXBzZSB0byAwIGhlaWdodCBhbmQgdGhlXG4gIC8vIGFjdGl2ZS1zbGljZSBjcm9wIHByZXZpZXcgd2lsbCBsb29rIGxpa2UgYSB3aGl0ZSBib3ggKGJhY2tncm91bmQtc2l6ZSBiZWNvbWVzIDApLlxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB6LWluZGV4OiB2YXIoLS16LWNhbnZhcy13b3JsZCk7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jYW52YXMtbGF5b3V0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLy8gRGVsZXRlIGNvbnRyb2xzIHBvcnRhbGVkIGhlcmUgc28gdGhleSBjYW4gZXh0ZW5kIHBhc3QgYC5pbWctY2FudmFzYCBvdmVyZmxvdyBjbGlwcGluZy5cbi5zbGljZS1kZWxldGUtZXNjYXBlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogdmFyKC0tei1jYW52YXMtb3ZlcmxheSk7XG5cbiAgLmRlbGV0ZS1hcmVhLFxuICAuc2VsZWN0LWFyZWFzLWRlbGV0ZS1ob3N0IHtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgfVxufVxuXG4uY2FudmFzLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcblxuICAvLyBBYm92ZSB0aGUgaW1hZ2Uvd29ybGQgY29udGVudCwgYmVsb3cgdGhlIFNwYWNlK2RyYWcgaGl0IHN1cmZhY2UgKGlubGluZSB6LWluZGV4OiA5OTk2KS5cbiAgei1pbmRleDogdmFyKC0tei1jYW52YXMtb3ZlcmxheSk7XG5cbiAgLy8gTGV0IGNsaWNrcyBmYWxsIHRocm91Z2ggdG8gdGhlIGFjdHVhbCBjYW52YXMgb3ZlcmxheSAobmV3LXNsaWNlIGNyZWF0aW9uKSxcbiAgLy8gYnV0IHN0aWxsIGFsbG93IGV4cGxpY2l0IGludGVyYWN0aXZlIGNocm9tZSAoaGFuZGxlcy9kZWxldGUpIHRvIG9wdC1pbi5cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6ICRjb250YWluZXItd2lkdGg7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIGgyIHtcbiAgICBmb250LXNpemU6ICRjb250YWluZXItaDItZm9udC1zaXplO1xuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxufVxuXG4uc2VsZWN0LWFyZWFzLW91dGxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG5cbiAgLy8gUHVyZS1DU1MgbWFyY2hpbmcgYW50cyAodGhpbiAxcHgsIGhpZ2gtY29udHJhc3QgYmxhY2svd2hpdGUgc28gdGhleSByZWFkIG9uIGFueVxuICAvLyBiYWNrZ3JvdW5kKSBvbiBhbGwgZm91ciBlZGdlcy4gUmVwbGFjZXMgdGhlIG9sZCB0aWxlZCBtYXJjaGluZy1hbnRzLmdpZi5cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICRjb2xvci13aGl0ZSA1MCUsICRjb2xvci1ibGFjayA1MCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgJGNvbG9yLXdoaXRlIDUwJSwgJGNvbG9yLWJsYWNrIDUwJSksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsICRjb2xvci13aGl0ZSA1MCUsICRjb2xvci1ibGFjayA1MCUpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCAkY29sb3Itd2hpdGUgNTAlLCAkY29sb3ItYmxhY2sgNTAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14LCByZXBlYXQteCwgcmVwZWF0LXksIHJlcGVhdC15O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgJHNsaWNlLWFudHMtdGlsZSAxcHgsICRzbGljZS1hbnRzLXRpbGUgMXB4LFxuICAgIDFweCAkc2xpY2UtYW50cy10aWxlLCAxcHggJHNsaWNlLWFudHMtdGlsZTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDEwMCUsIDAgMCwgMTAwJSAwO1xuICBhbmltYXRpb246IG1hcmNoaW5nQW50cyAkc2xpY2UtYW50cy1kdXJhdGlvbiBsaW5lYXIgaW5maW5pdGU7XG5cbiAgLy8gVGhlIGFudHMgYXJlIHRoZSBtb3N0IHByb3Zva2luZyBhbmltYXRpb24gaW4gdGhlIGVkaXRvciBmb3IgYSBtb3Rpb24tc2Vuc2l0aXZlIHVzZXI6XG4gIC8vIHVubGlrZSBldmVyeSBvdGhlciBhbmltYXRpb24gaGVyZSB0aGV5IG5ldmVyIHN0b3AsIGFuZCB0aGV5IHNpdCByaWdodCBuZXh0IHRvIHdoYXQgdGhlXG4gIC8vIHVzZXIgaXMgbG9va2luZyBhdC4gYHByZWZlcnMtcmVkdWNlZC1tb3Rpb25gIGlzIGFuIE9TLWxldmVsIHNldHRpbmcgKG1hY09TIEFjY2Vzc2liaWxpdHkgLT5cbiAgLy8gUmVkdWNlIG1vdGlvbiwgYW5kIHRoZSBlcXVpdmFsZW50IGVsc2V3aGVyZSksIHNvIGhvbm91cmluZyBpdCBpcyBub3Qgb3B0aW9uYWwgZHJlc3NpbmcuXG4gIC8vXG4gIC8vIFN0b3BwaW5nIHRoZSBhbmltYXRpb24gaXMgc3VmZmljaWVudCDigJQgaXQgZG9lcyBOT1QgaGlkZSBhbnl0aGluZy4gVGhlIGRhc2hlcyBhcmUgcGFpbnRlZFxuICAvLyBieSBgYmFja2dyb3VuZC1pbWFnZWAsIHNvIHdoYXQgcmVtYWlucyBpcyBhIHN0YXRpYyBkYXNoZWQgYm9yZGVyLCBleGFjdGx5IGFzIGxlZ2libGUgYXNcbiAgLy8gdGhlIG1vdmluZyBvbmUuIE5vIGZhbGxiYWNrIGJvcmRlciBpcyBuZWVkZWQuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gVGhlIEhPVkVSIGFudHMsIHByZS1wYWludGVkIG9uIGFuIG92ZXJsYXkgdGhhdCBpcyBub3JtYWxseSBpbnZpc2libGUuXG4gIC8vXG4gIC8vIFdoeSBhbiBvdmVybGF5IGluc3RlYWQgb2YganVzdCByZXN0eWxpbmcgdGhpcyBlbGVtZW50IG9uIGhvdmVyOiBuZWl0aGVyIGhhbGYgb2YgdGhlIGhvdmVyXG4gIC8vIGNoYW5nZSBjYW4gYmUgdHJhbnNpdGlvbmVkIGluIHBsYWNlLlxuICAvLyAgIC0gYGJhY2tncm91bmQtaW1hZ2VgIGlzIG5vdCBpbnRlcnBvbGFibGUg4oCUIGJyb3dzZXJzIGRvIG5vdCB0d2VlbiBvbmUgZ3JhZGllbnQgaW50b1xuICAvLyAgICAgYW5vdGhlciwgc28gdGhlIGRhc2ggc3BsaXQgd291bGQgc25hcCBob3dldmVyIGxvbmcgYSB0cmFuc2l0aW9uIHdhcyBkZWNsYXJlZC5cbiAgLy8gICAtIGBhbmltYXRpb24tZHVyYXRpb25gIGlzIG5vdCBpbnRlcnBvbGFibGUgZWl0aGVyLCBhbmQgY2hhbmdpbmcgaXQgb24gYSBSVU5OSU5HXG4gIC8vICAgICBhbmltYXRpb24gcmUtbWFwcyBlbGFwc2VkIHRpbWUgb250byB0aGUgbmV3IGR1cmF0aW9uLCB3aGljaCBtYWtlcyB0aGUgZGFzaCBqdW1wXG4gIC8vICAgICBwb3NpdGlvbiBhdCB0aGUgbW9tZW50IG9mIGhvdmVyLlxuICAvLyBBIHNlY29uZCBsYXllciBzaWRlc3RlcHMgYm90aDogaXQgb3ducyBpdHMgb3duIGdyYWRpZW50IGFuZCBpdHMgb3duIGhhbGYtc3BlZWQgYW5pbWF0aW9uXG4gIC8vIGZyb20gdGhlIHN0YXJ0LCBhbmQgdGhlIG9ubHkgdGhpbmcgdGhhdCBjaGFuZ2VzIG9uIGhvdmVyIGlzIGl0cyBPUEFDSVRZIOKAlCB3aGljaCBkb2VzXG4gIC8vIHRyYW5zaXRpb24uIFRoZSBpZGxlIGFudHMga2VlcCBydW5uaW5nIHVuZGVybmVhdGgsIHNvIHRoZSB0d28gc2ltcGx5IGNyb3NzLWZhZGUuXG4gIC8vXG4gIC8vIENvdmVyYWdlOiBldmVyeSBwaXhlbCBvZiBlYWNoIDFweCBlZGdlIGlzIHBhaW50ZWQgb3BhcXVlICh3aGl0ZSBwb3J0aW9uIG9yIGJsYWNrIHBvcnRpb24pLFxuICAvLyBzbyBhdCBmdWxsIG9wYWNpdHkgdGhpcyBsYXllciBjb21wbGV0ZWx5IGhpZGVzIHRoZSBpZGxlIGFudHMgcmF0aGVyIHRoYW4gYmxlbmRpbmcgd2l0aCB0aGVtLlxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gICAgLy8gTWF0Y2hlcyB0aGlzIGVsZW1lbnQncyBvd24gYm94IGV4YWN0bHkg4oCUIHRoZSBvdmVybGF5IG11c3Qgc2l0IG9uIHRoZSBzYW1lIGZvdXIgZWRnZXMuXG4gICAgaW5zZXQ6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRzbGljZS1ob3Zlci1mYWRlIGVhc2U7XG4gICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgJGNvbG9yLXdoaXRlICRzbGljZS1ob3Zlci13aGl0ZS1zaGFyZSwgJGNvbG9yLWJsYWNrICRzbGljZS1ob3Zlci13aGl0ZS1zaGFyZSksXG4gICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICRjb2xvci13aGl0ZSAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUsICRjb2xvci1ibGFjayAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KDBkZWcsICRjb2xvci13aGl0ZSAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUsICRjb2xvci1ibGFjayAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KDBkZWcsICRjb2xvci13aGl0ZSAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUsICRjb2xvci1ibGFjayAkc2xpY2UtaG92ZXItd2hpdGUtc2hhcmUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteCwgcmVwZWF0LXgsIHJlcGVhdC15LCByZXBlYXQteTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgICAkc2xpY2UtYW50cy10aWxlIDFweCwgJHNsaWNlLWFudHMtdGlsZSAxcHgsXG4gICAgICAxcHggJHNsaWNlLWFudHMtdGlsZSwgMXB4ICRzbGljZS1hbnRzLXRpbGU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCAwIDEwMCUsIDAgMCwgMTAwJSAwO1xuICAgIGFuaW1hdGlvbjogbWFyY2hpbmdBbnRzICRzbGljZS1hbnRzLWhvdmVyLWR1cmF0aW9uIGxpbmVhciBpbmZpbml0ZTtcblxuICAgIC8vIFNhbWUgdHJlYXRtZW50IGFzIHRoZSBpZGxlIGFudHMuIFRoZSBvdmVybGF5J3MgT1BBQ0lUWSB0cmFuc2l0aW9uIGlzIGRlbGliZXJhdGVseSBsZWZ0XG4gICAgLy8gYWxvbmU6IGBwcmVmZXJzLXJlZHVjZWQtbW90aW9uYCBpcyBhYm91dCB0cmF2ZWwg4oCUIHNsaWRpbmcsIHBhcmFsbGF4LCBzcGlubmluZyDigJQgd2hpY2ggaXNcbiAgICAvLyB3aGF0IHByb3Zva2VzIHZlc3RpYnVsYXIgc3ltcHRvbXMuIEEgMTYwbXMgY3Jvc3MtZmFkZSBkb2VzIG5vdCB0cmF2ZWwsIGFuZCByZW1vdmluZyBpdFxuICAgIC8vIHdvdWxkIHN0cmlwIHRoZSBob3ZlciBhZmZvcmRhbmNlIGZyb20gcHJlY2lzZWx5IHRoZSB1c2VycyB3aG8gYXNrZWQgZm9yIGxlc3MgbW90aW9uLFxuICAgIC8vIHdoaWNoIGlzIGEgd29yc2Ugb3V0Y29tZSB0aGFuIGxlYXZpbmcgaXQgaW4gcGxhY2UuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gSG92ZXIgb24gYSBOT04tYWN0aXZlIHNsaWNlOiB0aGUgc2FtZSBtYXJjaGluZyBhbnRzLCBicmlnaHRlciBhbmQgYXQgSEFMRiBTUEVFRC4gYHNyY19vbGRgXG4vLyBkaWQgdGhpcyBieSBzd2FwcGluZyBpdHMgYm9yZGVyIGJhciBmcm9tIGJsdWUgdG8gd2hpdGUgb24gYG1vdXNlZW50ZXJgLCBhbmQgd2FzIGEgbm8tb3Agb25cbi8vIHRoZSBhY3RpdmUgc2xpY2Ug4oCUIHRoYXQgc3VwcHJlc3Npb24gaXMgcHJlc2VydmVkIGluIGBJbWFnZVNsaWNlcmAuXG4vL1xuLy8gQWxsIHRoaXMgcnVsZSBkb2VzIGlzIGZhZGUgaW4gdGhlIG92ZXJsYXkgZGVjbGFyZWQgb24gYC5zZWxlY3QtYXJlYXMtb3V0bGluZTo6YWZ0ZXJgOyBzZWVcbi8vIHRoZXJlIGZvciB3aHkgdGhlIGNoYW5nZSBjYW5ub3QgYmUgdHJhbnNpdGlvbmVkIG9uIHRoZSBlbGVtZW50IGl0c2VsZi5cbi8vXG4vLyDimqDvuI8gVHdvIGZhaWxlZCBhdHRlbXB0cywgYm90aCBvZiB3aGljaCBsb29rZWQgZmluZSBvbiBhIGRhcmsgdGVzdCBpbWFnZSBhbmQgYnJva2Ugb24gYSB3aGl0ZVxuLy8gb25lIOKAlCB3b3J0aCBrZWVwaW5nIHNvIHRoZXkgYXJlIG5vdCByZXBlYXRlZDpcbi8vICAgMS4gTWFraW5nIEJPVEggaGFsdmVzIG9mIHRoZSBkYXNoIHdoaXRlLiBUaGF0IHJlYWRzIGFzIGEgc29saWQgbGluZTogdGhlIGFuaW1hdGlvbiBpc1xuLy8gICAgICBzdGlsbCBydW5uaW5nLCBidXQgYSB1bmlmb3JtbHkgd2hpdGUgbGluZSBoYXMgbm90aGluZyBsZWZ0IHRvIG1hcmNoLCBzbyBob3ZlciBsb29rZWRcbi8vICAgICAgbGlrZSBpdCBoYWQgZnJvemVuIHRoZSBvdXRsaW5lLlxuLy8gICAyLiBMaWZ0aW5nIHRoZSBkYXJrIGhhbGYgdG93YXJkIGdyZXkgKCMwMDAgLT4gIzQwNDA0MCkuIEJyaWdodGVyIG9uIGEgZGFyayBwaG90bywgYnV0IG9uXG4vLyAgICAgIGEgV0hJVEUgcGhvdG8gdGhlIGJsYWNrIHRpY2tzIGFyZSB0aGUgb25seSB2aXNpYmxlIHBhcnQgb2YgdGhlIGRhc2gsIHNvIGxpZ2h0ZW5pbmdcbi8vICAgICAgdGhlbSBtYWRlIGhvdmVyIEZBSU5URVIgdGhhbiBpZGxlIOKAlCB0aGUgb3Bwb3NpdGUgb2YgYW4gYWZmb3JkYW5jZS5cbi8vXG4vLyBTbyBicmlnaHRuZXNzIGNvbWVzIGZyb20gdGhlIHdoaXRlIGhhbGYncyBXSURUSCwgbGVhdmluZyB0aGUgYmxhY2sgdGlja3MgYXQgZnVsbCBjb250cmFzdC5cbi8vIE1lYXN1cmVkIGxpZnQgaW4gcmVuZGVyZWQgcGl4ZWxzLCBhdmVyYWdlZCBvdmVyIHNpeCBhbmltYXRpb24gZnJhbWVzOiArMzUuNSUgb24gYSBkYXJrXG4vLyBwaG90bywgKzI1LjElIG9uIGEgd2hpdGUgb25lLlxuLy9cbi8vIERlbGliZXJhdGVseSBwYWludC1vbmx5LiBUaGUgb3V0bGluZSBtYXJrcyB0aGUgZXhhY3QgZWRnZSB0aGF0IHdpbGwgYmUgY2hvcHBlZCwgc28gaG92ZXJcbi8vIG11c3Qgbm90IGNoYW5nZSBpdHMgd2lkdGgsIG9mZnNldCBvciBwb3NpdGlvbiBieSBldmVuIGEgcGl4ZWwuXG4uc2VsZWN0LWFyZWFzLW91dGxpbmUtaG92ZXI6OmFmdGVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLy8gTWlkLWdlc3R1cmU6IGhvbGQgdGhlIGFudHMgc3RpbGwuIFBob3Rvc2hvcCBkb2VzIHRoaXMgd2hpbGUgeW91IG1vdmUgYSBzZWxlY3Rpb24sIGFuZCB0aGVcbi8vIHJlYXNvbiBnZW5lcmFsaXNlcyDigJQgYSBib3JkZXIgdGhhdCBrZWVwcyBtYXJjaGluZyB3aGlsZSB0aGUgYm94IGl0IHN1cnJvdW5kcyBpcyBiZWluZ1xuLy8gZHJhZ2dlZCBwdXRzIHR3byBtb3Rpb25zIG9uIHNjcmVlbiBjb21wZXRpbmcgZm9yIHRoZSBzYW1lIGF0dGVudGlvbiwgYW5kIHRoZSBib3JkZXIgaXMgdGhlXG4vLyBvbmUgdGhhdCBpcyBOT1QgdGVsbGluZyB5b3UgYW55dGhpbmcuIFBhdXNpbmcgaXQgbWFrZXMgdGhlIHNsaWNlJ3Mgb3duIG1vdmVtZW50IHRoZSBvbmx5XG4vLyB0aGluZyBtb3ZpbmcuXG4vL1xuLy8gYGFuaW1hdGlvbi1wbGF5LXN0YXRlYCwgbm90IGBhbmltYXRpb246IG5vbmVgLiBQYXVzaW5nIGhvbGRzIHRoZSBkYXNoIG1pZC1jeWNsZSBhbmQgcmVzdW1lc1xuLy8gZnJvbSB0aGVyZSwgc28gcmVsZWFzaW5nIHRoZSBtb3VzZSBwaWNrcyB0aGUgbWFyY2ggYmFjayB1cCByYXRoZXIgdGhhbiBzbmFwcGluZyB0aGUgZGFzaCB0b1xuLy8gcGhhc2UgemVyby4gSXQgYWxzbyBoYXMgdG8gbmFtZSB0aGUgb3ZlcmxheSBleHBsaWNpdGx5IOKAlCBgOjphZnRlcmAgcnVucyBpdHMgb3duIGFuaW1hdGlvblxuLy8gYW5kIHdvdWxkIG90aGVyd2lzZSBrZWVwIG1hcmNoaW5nIHVuZGVybmVhdGggYSBwYXVzZWQgYmFzZSBsYXllci5cbi8vXG4vLyBTY29wZWQgYnkgYEltYWdlU2xpY2VyYCB0byB0aGUgc2xpY2UgYWN0dWFsbHkgYmVpbmcgbWFuaXB1bGF0ZWQ7IGZyZWV6aW5nIGV2ZXJ5IHNsaWNlIG9uIHRoZVxuLy8gY2FudmFzIHJlYWRzIGFzIHRoZSBhcHAgaGl0Y2hpbmcsIG5vdCBhcyBmZWVkYmFjayBhYm91dCB0aGlzIG9uZS5cbi5zZWxlY3QtYXJlYXMtb3V0bGluZS1mcm96ZW4sXG4uc2VsZWN0LWFyZWFzLW91dGxpbmUtZnJvemVuOjphZnRlciB7XG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBwYXVzZWQ7XG59XG5cbi8vIOKaoO+4jyBUaGUgbmVnYXRpdmUgb2Zmc2V0cyBNVVNUIHN0YXkgcGFyZW50aGVzaXNlZC4gV3JpdHRlbiBiYXJlLCBTYXNzIHJlYWRzIGAwIC0kdGlsZWAgYXMgdGhlXG4vLyBTVUJUUkFDVElPTiBgMCAtIDhweGAgYW5kIGVtaXRzIGEgc2luZ2xlIGAtOHB4YCB3aGVyZSB0d28gdmFsdWVzIHdlcmUgbWVhbnQg4oCUIHNpbGVudGx5XG4vLyB0dXJuaW5nIHRoZSBMRUZUIGVkZ2UncyBgMCAtOHB4YCBpbnRvIGFuIHgtb25seSBwb3NpdGlvbiwgd2hpY2ggc3RvcHBlZCB0aGF0IGVkZ2UgYW5pbWF0aW5nXG4vLyBhbmQgbWFkZSBpdHMgYW50cyB2YW5pc2guIE9ubHkgdGhlIHRoaXJkIHZhbHVlIGlzIGV4cG9zZWQgKHRoZSBvdGhlcnMgZm9sbG93IGEgY29tbWEsIHNvXG4vLyB0aGVyZSBpcyBubyBsZWZ0LWhhbmQgb3BlcmFuZCB0byBzdWJ0cmFjdCBmcm9tKSwgd2hpY2ggaXMgd2h5IGl0IHByZXNlbnRlZCBhcyBcIm9uZSBlZGdlIGlzXG4vLyBicm9rZW5cIiByYXRoZXIgdGhhbiBhcyBhbiBvYnZpb3VzbHkgbWFsZm9ybWVkIHJ1bGUuXG5Aa2V5ZnJhbWVzIG1hcmNoaW5nQW50cyB7XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOlxuICAgICAgJHNsaWNlLWFudHMtdGlsZSAwLCAoLSRzbGljZS1hbnRzLXRpbGUpIDEwMCUsXG4gICAgICAwICgtJHNsaWNlLWFudHMtdGlsZSksIDEwMCUgJHNsaWNlLWFudHMtdGlsZTtcbiAgfVxufVxuXG4vLyBUZXRyaXMgTW9kZSBhbmltYXRpb24gaGVscGVyczpcbi8vIC0gVGhlIHNsaWNlIFwiY2hyb21lXCIgKG91dGxpbmUvaGFuZGxlcy9kZWxldGUpIHJvdGF0ZXMgdmlhIGAudGV0cmlzLXJvdGF0ZS0qYC5cbi8vIC0gVGhlIGNyb3BwZWQgaW1hZ2UgcHJldmlldyBjb3VudGVyLXJvdGF0ZXMgdmlhIGAudGV0cmlzLWNvdW50ZXItKmAgc28gaXQgc3RheXMgdXByaWdodC5cbi8vIC0gV2UgYnJpZWZseSBmYWRlIHRoZSBjcm9wIG91dCBkdXJpbmcgdGhlIHJvdGF0aW9uIHRvIGF2b2lkIGEgY29uZnVzaW5nIFwic3Bpbm5pbmcgaW1hZ2VcIiBlZmZlY3QuXG4udGV0cmlzLXJvdGF0ZS1jdyxcbi50ZXRyaXMtcm90YXRlLWNjdyxcbi50ZXRyaXMtY291bnRlci1jdyxcbi50ZXRyaXMtY291bnRlci1jY3cge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG5cbkBrZXlmcmFtZXMgdGV0cmlzUm90YXRlIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUodmFyKC0tdGV0cmlzLXJvdCkpOyB9XG59XG5cbkBrZXlmcmFtZXMgdGV0cmlzQ291bnRlclJvdGF0ZSB7XG4gIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKHZhcigtLXRldHJpcy1yb3QpKTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHRldHJpc1NwaW4zNjAge1xuICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XG59XG5cbkBrZXlmcmFtZXMgdGV0cmlzU3BpbjM2MENjdyB7XG4gIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKC0zNjBkZWcpOyB9XG59XG5cbkBrZXlmcmFtZXMgdGV0cmlzUmFpbmJvd0h1ZSB7XG4gIDAlIHsgZmlsdGVyOiBodWUtcm90YXRlKDBkZWcpIHNhdHVyYXRlKDEuNikgY29udHJhc3QoMS4xNSk7IH1cbiAgMTAwJSB7IGZpbHRlcjogaHVlLXJvdGF0ZSgzNjBkZWcpIHNhdHVyYXRlKDEuNikgY29udHJhc3QoMS4xNSk7IH1cbn1cblxuQGtleWZyYW1lcyB0ZXRyaXNSYWluYm93SHVlQ2N3IHtcbiAgMCUgeyBmaWx0ZXI6IGh1ZS1yb3RhdGUoMGRlZykgc2F0dXJhdGUoMS42KSBjb250cmFzdCgxLjE1KTsgfVxuICAxMDAlIHsgZmlsdGVyOiBodWUtcm90YXRlKC0zNjBkZWcpIHNhdHVyYXRlKDEuNikgY29udHJhc3QoMS4xNSk7IH1cbn1cblxuLnRldHJpcy1yb3RhdGUge1xuICBhbmltYXRpb246IHRldHJpc1JvdGF0ZSAkdGV0cmlzLWFuaW0tZHVyYXRpb24gZWFzZTtcbn1cblxuLnRldHJpcy1yb3RhdGUtY3cge1xuICAtLXRldHJpcy1yb3Q6IDkwZGVnO1xufVxuXG4udGV0cmlzLXJvdGF0ZS1jY3cge1xuICAtLXRldHJpcy1yb3Q6IC05MGRlZztcbn1cblxuLy8gQ291bnRlci1yb3RhdGlvbjoga2VlcHMgdGhlIGNyb3BwZWQgaW1hZ2UgdXByaWdodCB3aGlsZSB0aGUgd3JhcHBlciByb3RhdGVzLlxuLy8gRmFkZSBiZWhhdmlvcjpcbi8vIC0gV2Ugc2V0IGBvcGFjaXR5OiAwYCB3aGlsZSB0aGUgY291bnRlciBjbGFzcyBpcyBwcmVzZW50LlxuLy8gLSBXaGVuIHRoZSBjbGFzcyBpcyByZW1vdmVkICh+MzAwbXMpLCBgb3BhY2l0eWAgdHJhbnNpdGlvbnMgYmFjayB0byAxIHNtb290aGx5LlxuLnRldHJpcy1jb3VudGVyIHtcbiAgYW5pbWF0aW9uOiB0ZXRyaXNDb3VudGVyUm90YXRlICR0ZXRyaXMtYW5pbS1kdXJhdGlvbiBlYXNlO1xufVxuXG4udGV0cmlzLWNvdW50ZXItY3cge1xuICAtLXRldHJpcy1yb3Q6IC05MGRlZztcbn1cblxuLnRldHJpcy1jb3VudGVyLWNjdyB7XG4gIC0tdGV0cmlzLXJvdDogOTBkZWc7XG59XG5cbi8vIENyb3AgcHJldmlldyBmYWRlIGR1cmluZyBUZXRyaXMgTW9kZS5cbi5zZWxlY3QtYXJlYXMtYmFja2dyb3VuZC1hcmVhIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE4cyBlYXNlO1xufVxuXG4uc2VsZWN0LWFyZWFzLWJhY2tncm91bmQtYXJlYS50ZXRyaXMtY291bnRlci1jdyxcbi5zZWxlY3QtYXJlYXMtYmFja2dyb3VuZC1hcmVhLnRldHJpcy1jb3VudGVyLWNjdyB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi8vIERvdWJsZS10YXAgUjogMzYwwrAgcmFpbmJvdyBzcGluICh2aXN1YWwgb25seSkuXG4udGV0cmlzLXNwaW4zNjAtcmFpbmJvdyB7XG4gIGFuaW1hdGlvbjogdGV0cmlzU3BpbjM2MCAwLjVzIGVhc2UsIHRldHJpc1JhaW5ib3dIdWUgMC41cyBsaW5lYXI7XG59XG5cbi50ZXRyaXMtc3BpbjM2MC1yYWluYm93LWNjdyB7XG4gIGFuaW1hdGlvbjogdGV0cmlzU3BpbjM2MENjdyAwLjVzIGVhc2UsIHRldHJpc1JhaW5ib3dIdWVDY3cgMC41cyBsaW5lYXI7XG59XG5cbi5zZWxlY3QtYXJlYXMtcmVzaXplLWhhbmRsZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmxhY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1zdXJmYWNlO1xuICBoZWlnaHQ6IDhweDtcbiAgd2lkdGg6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBQcmV2ZW50IGJyb3dzZXIgc2Nyb2xsL3pvb20gZ2VzdHVyZXMgZnJvbSBpbnRlcmZlcmluZyB3aXRoIHBvaW50ZXIgaW50ZXJhY3Rpb25zIG9uIG1vYmlsZS5cbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4uc2VsZWN0LWFyZWFzLWRlbGV0ZS1hcmVhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICRkZWxldGUtaW1nIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xufVxuXG4uc2VsZWN0LWFyZWFzLWRlbGV0ZS1ob3N0IHtcbiAgLy8gTWF0Y2hlcyBjb25zdGFudHMuanMgU0xJQ0VfREVMRVRFX1BBRF8qICg1LzUvMi8yKS5cbiAgcGFkZGluZzogNXB4IDVweCAycHggMnB4O1xufVxuXG4udG1wSW1nLFxuLm15LXBhbmRhLWJybyB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiA1cmVtO1xuICBtYXgtd2lkdGg6IDY5cHg7XG59XG5cbi50bXBJbWcge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiNpbWdXcmFwIC50bXBJbWcge1xuICBib3JkZXItcmFkaXVzOiAkcmFkaXVzLXNtO1xuXG4gIC8vIEhvdmVyL2FjdGl2ZSBmZWVkYmFjayBsaXZlcyBvbiB0aGUgd2hvbGUgYC51cGxvYWQtZHJvcHpvbmVgIG5vdywgbm90IHRoZSBpY29uLlxufVxuXG4uc2VsZWN0LWFyZWFzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmxhY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcblxuICAmLmhhcy1zbGljZSB7XG4gICAgb3BhY2l0eTogJHNlbGVjdC1hcmVhcy1vdmVybGF5LWhhcy1zbGljZS1vcGFjaXR5O1xuICB9XG59XG5cbi8vIFRvdWNoIGd1aWRlczogYnJpZWYgZmxhc2ggbGluZXMgd2hlbiBzbGljZXMgc25hcC9jbGFtcC5cbi50b3VjaC1ndWlkZXMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogJHotdG91Y2gtZ3VpZGVzLW92ZXJsYXk7IC8vIGFib3ZlIHNsaWNlIGNocm9tZVxufVxuXG5Aa2V5ZnJhbWVzIHRvdWNoR3VpZGVCbGluayB7XG4gIDAlIHsgb3BhY2l0eTogMDsgfVxuICAyMCUgeyBvcGFjaXR5OiAxOyB9XG4gIDY1JSB7IG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDA7IH1cbn1cblxuLnRvdWNoLWd1aWRlLWxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGFuaW1hdGlvbjogdG91Y2hHdWlkZUJsaW5rIDAuNDVzIGVhc2U7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi50b3VjaC1ndWlkZS12IHtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udG91Y2gtZ3VpZGUtaCB7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnRvdWNoLWd1aWRlLXNuYXAge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDE4MCwgMjU1LCAwLjk1KTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLnRvdWNoLWd1aWRlLWNsYW1wIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDgwLCA4MCwgMC45NSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8vIFRvb2xiYXIgSEVMUCBwb3BvdmVyLlxuLmhlbHAtcG9wb3Zlci13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5oZWxwLXBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IGNhbGMoMTAwJSArIDZweCk7XG4gIHdpZHRoOiBtaW4oJGhlbHAtcG9wb3Zlci1tYXgtd2lkdGgsIGNhbGMoMTAwdncgLSAyNHB4KSk7XG4gIGJhY2tncm91bmQ6ICRoZWxwLXBvcG92ZXItYmc7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRoZWxwLXBvcG92ZXItYm9yZGVyLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICB6LWluZGV4OiB2YXIoLS16LWhlbHAtcG9wb3Zlcik7XG59XG5cbi5oZWxwLXBvcG92ZXItdGl0bGUge1xuICBmb250LXdlaWdodDogJGhlbHAtcG9wb3Zlci10aXRsZS1mb250LXdlaWdodDtcbiAgZm9udC1zaXplOiAkaGVscC1wb3BvdmVyLXRpdGxlLWZvbnQtc2l6ZTtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4vLyBTY29wZSBoZWFkaW5nIChTbGljZXMgLyBWaWV3IC8gTGF5ZXIpLiBUaGUgZWRpdG9yIGhhcyB0aHJlZSBzY29wZXMgYW5kIGNvbmZsYXRpbmdcbi8vIHRoZW0gaXMgdGhlIG1haW4gc291cmNlIG9mIGNvbmZ1c2lvbiwgc28gdGhlIGhlbHAgZ3JvdXBzIGJ5IHNjb3BlIHJhdGhlciB0aGFuXG4vLyBsaXN0aW5nIGV2ZXJ5dGhpbmcgZmxhdC5cbi5oZWxwLXBvcG92ZXItc2VjdGlvbiB7XG4gIC8vIEdlbmVyb3VzIHNwYWNlIEFCT1ZFIGVhY2ggaGVhZGluZyBzbyB0aGUgZ3JvdXBzIHJlYWQgYXMgc2VwYXJhdGUgYmxvY2tzIHJhdGhlclxuICAvLyB0aGFuIG9uZSBjb250aW51b3VzIGxpc3Q7IHRoZSBydWxlIHVuZGVybmVhdGggdGhlbiByZWFkcyBhcyBhIGRpdmlkZXIuXG4gIG1hcmdpbjogMjJweCAwIDRweDtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG5cbiAgLy8gU21hbGwgKyBoZWF2eSArIHRyYWNrZWQ6IHRoZSBoaWVyYXJjaHkgY29tZXMgZnJvbSB3ZWlnaHQgYW5kIGxldHRlci1zcGFjaW5nLCBub3RcbiAgLy8gc2l6ZSwgc28gaXQgc3RpbGwgcmVhZHMgYXMgYSBoZWFkaW5nIGlmIHRoZSBicm93c2VyIGZsb29ycyBzbWFsbCB0ZXh0IHZpYSBhXG4gIC8vIG1pbmltdW0tZm9udC1zaXplIHNldHRpbmcuXG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14cztcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1oZWF2eTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBjb2xvcjogJGNvbG9yLXRleHQtc3Ryb25nO1xuXG4gICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICB9XG59XG5cbi8vIFRoZSBcIuKAlCB3aGF0IHlvdSBzZWUsIG5ldmVyIHRoZSBleHBvcnRlZCBmaWxlXCIgcXVhbGlmaWVyIGJlc2lkZSBhIHNjb3BlIGhlYWRpbmcuXG4vLyBEZWxpYmVyYXRlbHkgbGlnaHRlciBhbmQgdW4tdHJhY2tlZCBzbyB0aGUgc2NvcGUgd29yZCBzdGF5cyB0aGUgdGhpbmcgeW91IHNlZSBmaXJzdC5cbi5oZWxwLXBvcG92ZXItbm90ZSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgY29sb3I6ICRjb2xvci10ZXh0LW11dGVkO1xufVxuXG4uaGVscC1wb3BvdmVyLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi5oZWxwLXBvcG92ZXItZGVzYyB7XG4gIHBhZGRpbmc6IDNweCAxMHB4IDNweCAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4uaGVscC1wb3BvdmVyLWtleXMge1xuICBwYWRkaW5nOiAzcHggMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5oZWxwLXBvcG92ZXIga2JkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxcHggNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDI0NSwgMjQ1LCAxKTtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAkaGVscC1wb3BvdmVyLWtiZC1mb250LXNpemU7XG59XG5cbi5ibHVycmVkIHtcbiAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoM3B4KTtcbiAgLW1vei1maWx0ZXI6IGJsdXIoM3B4KTtcbiAgLW8tZmlsdGVyOiBibHVyKDNweCk7XG4gIGZpbHRlcjogYmx1cigzcHgpO1xufVxuXG4ubmV4dCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmJ0bi1jaG9wIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLXRvcDogLTJweDtcbn1cblxuLy8gVG9vbGJhciBpY29uIGJ1dHRvbnMgKEFkZCBOZXcgLyBDbGVhciBBbGwpICsgdGhlaXIgbGFiZWxzIGFuZCBpY29ucy5cbi5idG4tYWRkLFxuLmJ0bi1jbGVhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogM3B4IDhweCAwIDVweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuXG4gIC8vIFRleHQgbGFiZWwgaW5zaWRlIHRoZSBidXR0b24gKGtlZXBzIGZvbnQgKyB2ZXJ0aWNhbCBhbGlnbm1lbnQgY29uc2lzdGVudCkuXG4gICYtdHh0IHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTRweDtcbiAgfVxuXG4gIC8vIEljb24gc3ByaXRlIHRoYXQgYXBwZWFycyB0byB0aGUgbGVmdCBvZiB0aGUgdGV4dC5cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE4cHggMThweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG5cbi8vIFVzZSB0aGUgc2FtZSBzZWxlY3RvciBzcGVjaWZpY2l0eSBhcyB0aGUgbGVnYWN5IENTUyAoYnV0dG9uLmJ0bi1hZGQ6YmVmb3JlKVxuLy8gc28gdGhhdCBvdXIgYnVuZGxlZCBzdHlsZXMgd2luIGJ5IHNvdXJjZSBvcmRlciwgYnV0IHRoZSBzdGF0aWMgcGFnZXMgdGhhdFxuLy8gZG9uJ3QgbG9hZCBBcHAuc2NzcyBzdGlsbCByZWx5IG9uIG1haW4ubWluLmNzcy5cbmJ1dHRvbi5idG4tYWRkOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4vcmVzb3VyY2VzL2FkZC1uZXctaWNvbi5wbmcnKTtcbn1cblxuYnV0dG9uLmJ0bi1jbGVhcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuL3Jlc291cmNlcy9jbGVhci1hbGwtaWNvbi5wbmcnKTtcbn1cblxuLmJ0bi1jb21tb24ge1xuICBmb250LXNpemU6ICRkZWZhdWx0LWZvbnQtc2l6ZTtcbiAgcGFkZGluZzogM3B4IDhweDtcblxuICAmOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAkZGlzYWJsZWQtb3BhY2l0eTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cbi8vIEluIE1vdmUgbW9kZSB0aGUgZmxhdCAjc2xpY2VJbWcgaXMgaGlkZGVuOyB0aGUgbGl2ZSBsYXllciBjYW52YXMgc3RhbmRzIGluIGZvclxuLy8gaXQgc28gYSBkcmFnIG5ldmVyIHJldmVhbHMgdGhlIHByZS1tb3ZlIHBvc2l0aW9uIHRocm91Z2ggdHJhbnNwYXJlbnQgYXJlYXMuXG4ubGF5ZXItc3JjLWhpZGRlbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLy8gUmVhbC10aW1lIGNvbXBvc2l0ZSBjYW52YXMgc3RhbmRpbmcgaW4gZm9yICNzbGljZUltZyAob3BhY2l0eS9ibGVuZC92aXNpYmlsaXR5L1xuLy8gcG9zaXRpb24gZWRpdHMgcmVuZGVyIGluc3RhbnRseSkuIEl0cyBsZWZ0L3RvcC93aWR0aC9oZWlnaHQgYXJlIHNldCBieSBKUyBpblxuLy8gZHJhd0xheWVyc1RvTGl2ZSAoZG9jdW1lbnQgdnMuIG91dC1vZi1ib3VuZHMgZ2hvc3QgZXh0ZW50KTsgdGhpcyBydWxlIG9ubHkgb3duc1xuLy8gdGhlIHN0YXRpYyBwb3NpdGlvbmluZy9zdGFja2luZyBzbyB0aGUgY29tcG9uZW50IGNhcnJpZXMgbm8gaW5saW5lIHN0eWxlLlxuLmxheWVyLWxpdmUtY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiB2YXIoLS16LWxheWVyLWxpdmUtY2FudmFzKTtcbn1cblxuLy8gTW92ZS10b29sIGNhcHR1cmUgc3VyZmFjZTogdHVybnMgY2FudmFzIGRyYWdzIGludG8gbGF5ZXIgcmVwb3NpdGlvbmluZy4gQWN0aXZlXG4vLyBvbmx5IHdoaWxlIHRoZSBNb3ZlIHRvb2wgaXMgc2VsZWN0ZWQgKG1vdW50ZWQgY29uZGl0aW9uYWxseSkuXG4vL1xuLy8gUmVuZGVyZWQgYXMgYSBzaWJsaW5nIG9mIGAuaW1nLWNhbnZhc2AgaW5zaWRlIGAuY2FudmFzLWxheW91dGAsIE5PVCBpbnNpZGUgYC5jYW52YXMtd29ybGRgLFxuLy8gc28gYGluc2V0OiAwYCBpcyB0aGUgVklFV1BPUlQgYW5kIGRvZXMgbm90IHNocmluayB3aXRoIHRoZSB6b29tLiBJbnNpZGUgdGhlIHdvcmxkIGl0IHNjYWxlZFxuLy8gZG93biB0byB0aGUgZG9jdW1lbnQgKG1lYXN1cmVkIDgweDYwIGFnYWluc3QgYSA3Nzl4NTg1IHZpZXdwb3J0IGF0IDQgc3RlcHMgb3V0KSwgd2hpY2ggbGVmdFxuLy8gYSB2aXNpYmxlIGxheWVyIG91dHNpZGUgdGhlIGRvY3VtZW50IGltcG9zc2libGUgdG8gZ3JhYiBldmVuIHRob3VnaCBpdHMgaGFuZGxlcyBzdGlsbFxuLy8gd29ya2VkLlxuLmxheWVyLW1vdmUtY2FwdHVyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgei1pbmRleDogdmFyKC0tei1sYXllci1tb3ZlLWNhcHR1cmUpO1xuXG4gIC8vIE9ubHkgcHJvbWlzZSBcImdyYWJiYWJsZVwiIHdoZW4gdGhlIHBvaW50ZXIgaXMgYWN0dWFsbHkgb3ZlciBhIGxheWVyLlxuICAmLm92ZXItbGF5ZXIge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgfVxufVxuXG4vLyBSaWdodC1jbGljayBtZW51IGZvciB0aGUgY2FudmFzLiBGaXhlZC1wb3NpdGlvbmVkIGF0IHRoZSBwb2ludGVyICh0aGUgY29tcG9uZW50IHB1bGxzXG4vLyBpdCBiYWNrIGluc2lkZSB0aGUgdmlld3BvcnQgd2hlbiBhIGNsaWNrIGxhbmRzIG5lYXIgYW4gZWRnZSkuXG4uY2FudmFzLWNvbnRleHQtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogJHotY2FudmFzLWNvbnRleHQtbWVudTtcbiAgbWluLXdpZHRoOiAxNzBweDtcbiAgcGFkZGluZzogNHB4O1xuICBiYWNrZ3JvdW5kOiAkY29sb3Itd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbWlkO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggLThweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cbiAgPiAuaXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbGF5ZXItYWNjZW50LXNvZnQ7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAkZGlzYWJsZWQtb3BhY2l0eTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG5cbiAgPiAuc2VwYXJhdG9yIHtcbiAgICBtYXJnaW46IDRweCAycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbGlnaHQ7XG4gIH1cbn1cblxuLy8gQ29udGV4dHVhbCBvcHRpb25zIGZvciB0aGUgc2VsZWN0ZWQgbGF5ZXIg4oCUIGEgZmxvYXRpbmcgaXNsYW5kIHBpbm5lZCB0byB0aGUgYm90dG9tIG9mXG4vLyB0aGUgdmlld3BvcnQgcmF0aGVyIHRoYW4gYSBmb3VydGggdG9vbGJhciByb3cuIFRoZSB0b29sYmFyIGlzIGFscmVhZHkgdGhyZWUgcm93cyBkZWVwLFxuLy8gYW5kIHRoZXNlIGNvbnRyb2xzIG9ubHkgbWF0dGVyIHdoaWxlIGEgbGF5ZXIgaXMgc2VsZWN0ZWQsIHNvIHRoZXkgZm9sbG93IHRoZSBzZWxlY3Rpb25cbi8vIGluc3RlYWQgb2YgcGVybWFuZW50bHkgb2NjdXB5aW5nIGNocm9tZS5cbi5sYXllci1vcHRpb25zLWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAxOHB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgei1pbmRleDogJHotbGF5ZXItb3B0aW9ucy1pc2xhbmQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDdweCAxMHB4O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAyNHB4KTtcbiAgYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLW1pZDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IC02cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuICBhbmltYXRpb246IGxheWVyT3B0aW9uc0lzbGFuZEluIDE0MG1zIGVhc2Utb3V0O1xuXG4gIC8vIFJlc3BlY3QgdXNlcnMgd2hvIGFzayBmb3IgbGVzcyBtb3Rpb247IHRoZSBpc2xhbmQgc3RpbGwgYXBwZWFycywganVzdCB3aXRob3V0IHRyYXZlbC5cbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cblxuICA+IC5sYXllci1vcHRpb25zLW5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcblxuICAgIC8vIFRoZSBuYW1lIGNhbiBiZSBsb25nIG9uY2UgbGF5ZXJzIGFyZSByZW5hbWVhYmxlOyBpdCB5aWVsZHMgYmVmb3JlIHRoZSBmaWVsZHMgZG8uXG4gICAgbWF4LXdpZHRoOiAxNGNoO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gID4gLmxheWVyLW9wdGlvbnMtc2VwIHtcbiAgICBjb2xvcjogJGNvbG9yLWJvcmRlci1taWQ7XG4gIH1cblxuICA+IC5sYXllci1maWVsZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcblxuICAgID4gLmxheWVyLWZpZWxkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1tdXRlZDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14cztcbiAgICB9XG5cbiAgICA+IC5sYXllci1maWVsZC1pbnB1dCB7XG4gICAgICB3aWR0aDogNmNoO1xuICAgICAgcGFkZGluZzogMnB4IDRweDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbWlkO1xuXG4gICAgICAvLyBTcGlubmVycyBzdGVhbCB3aWR0aCBmcm9tIGFuIGFscmVhZHktbmFycm93IGZpZWxkIGFuZCBpbnZpdGUgbWlzLWNsaWNrcy5cbiAgICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAkY29sb3ItbGF5ZXItYWNjZW50O1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+IC5sYXllci1hc3BlY3QtbGluayB7XG4gICAgLy8gVGhlIGdseXBoIGlzIGNvbnN0YW50OyB0aGUgU1RBVEUgaXMgd2hhdCBkaWZmZXJzLiBVbmxvY2tlZCByZWFkcyBhcyBmYWRlZCBhbmRcbiAgICAvLyBzdHJ1Y2sgdGhyb3VnaCwgbG9ja2VkIGFzIHRoZSBhY2NlbnQgdXNlZCBieSB0aGUgc2VsZWN0aW9uIGNocm9tZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3BhY2l0eTogMC40NTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvci1sYXllci1hY2NlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbGF5ZXItYWNjZW50LXNvZnQ7XG4gICAgfVxuXG4gICAgLy8gRGlhZ29uYWwgc3RyaWtlIHdoaWxlIHVubG9ja2VkLCBzbyB0aGUgc3RhdGUgaXMgbGVnaWJsZSB3aXRob3V0IHJlbHlpbmcgb24gY29sb3VyLlxuICAgICY6bm90KC5hY3RpdmUpOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDE1JTtcbiAgICAgIHJpZ2h0OiAxNSU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItdGV4dC11aTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMGRlZyk7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgbGF5ZXJPcHRpb25zSXNsYW5kSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDhweCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuXG4vLyBMYXllciBzZWxlY3Rpb24gY2hyb21lOiBob3ZlciBwcmV2aWV3ICsgYWN0aXZlIGZyYW1lIHdpdGggY29ybmVyIHJlc2l6ZSBoYW5kbGVzLlxuLy8gTGl2ZXMgaW5zaWRlIC5jYW52YXMtd29ybGQgKHNvIGl0IHRyYWNrcyBwYW4vem9vbSBmb3IgZnJlZSkgYnV0IEFCT1ZFIHRoZSBjYXB0dXJlXG4vLyBzdXJmYWNlLCBzbyBoYW5kbGVzIHdpbiB0aGUgcG9pbnRlciB3aGlsZSBldmVyeXRoaW5nIGVsc2Ugc3RheXMgY2xpY2stdGhyb3VnaCBhbmRcbi8vIGZhbGxzIGJhY2sgdG8gYSBtb3ZlLiBTaXplcyBtYXJrZWQgXCJzY3JlZW4gcHhcIiBhcmUgY291bnRlci1zY2FsZWQgYnkgMS9rIGluIEpTLlxuLy9cbi8vIERlbGliZXJhdGVseSBzb2xpZCwgbmV2ZXIgZGFzaGVkOiBzbGljZXMgb3duIG1hcmNoaW5nIGFudHMsIHNvIGxheWVyIHNlbGVjdGlvbiBoYXNcbi8vIHRvIHJlYWQgYXMgYSBkaWZmZXJlbnQga2luZCBvZiB0aGluZyBhdCBhIGdsYW5jZS5cbi8vIExheWVyIGNocm9tZSBsaXZlcyBPVVRTSURFIGAuaW1nLWNhbnZhc2AsIGFzIGEgc2libGluZywgc28gYGNvbnRhaW46IHBhaW50YCBjYW5ub3QgY2xpcFxuLy8gaXRzIGhhbmRsZXMgb3V0IG9mIGhpdC10ZXN0aW5nLiBUaGUgdHJhbnNwYXJlbnQgYm9yZGVyIG1pcnJvcnMgYC5pbWctY2FudmFzYCdzIG93biAxcHhcbi8vIGJvcmRlciBzbyB0aGlzIGJveCdzIENPTlRFTlQgYm94IHN0YXJ0cyBleGFjdGx5IHdoZXJlIGAuY2FudmFzLXdvcmxkYCBpcyBsYWlkIG91dCDigJRcbi8vIGtlZXBpbmcgdGhhdCBvZmZzZXQgaW4gQ1NTIGluc3RlYWQgb2YgYXMgYSBjb25zdGFudCBpbiB0aGUgZ2VvbWV0cnkgY29kZS5cbi5sYXllci1jaHJvbWUtZXNjYXBlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIC8vIEdyb3duIGJ5IGV4YWN0bHkgdGhlIGhhbmRsZSBibGVlZCwgdGhlbiBjbGlwcGVkLiBCb3RoIGhhbHZlcyBtYXR0ZXI6XG4gIC8vICAtIGdyb3duLCBzbyBhIGhhbmRsZSBjZW50cmVkIG9uIHRoZSBjYW52YXMgZWRnZSBpcyBmdWxseSBpbnNpZGUgdGhpcyBib3ggYW5kIGtlZXBzXG4gIC8vICAgIGl0cyBoaXQtdGVzdGluZyAodGhlIHdob2xlIHBvaW50IG9mIGVzY2FwaW5nIGAuaW1nLWNhbnZhc2AncyBgY29udGFpbjogcGFpbnRgKTtcbiAgLy8gIC0gY2xpcHBlZCwgc28gYSBsYXllciBkcmFnZ2VkIGZhciBvZmYtY2FudmFzIGNhbm5vdCBwYWludCBpdHMgZnJhbWUgYWNyb3NzIHRoZVxuICAvLyAgICB0b29sYmFyIGFuZCB0aGUgcmVzdCBvZiB0aGUgcGFnZS4gYG92ZXJmbG93OiB2aXNpYmxlYCBoZXJlIGRpZCBleGFjdGx5IHRoYXQuXG4gIC8vIEV4YWN0bHkgYC5pbWctY2FudmFzYCdzIGJveC4gVGhlcmUgaXMgbm8gcGFzdGVib2FyZCBhbmQgbm8gY2hyb21lIGJsZWVkLCBzbyB0aGlzIGlzIGFcbiAgLy8gcGxhaW4gYGluc2V0OiAwYCDigJQgaXQgd2FzIGAtJGxheWVyLWNocm9tZS1ibGVlZGAgKGEgdmFyaWFibGUgcGlubmVkIGF0IDBweCkgdW50aWwgdGhlXG4gIC8vIHBhcmtlZCBwYXN0ZWJvYXJkIHNjYWZmb2xkaW5nIHdhcyByZW1vdmVkIG9uIDIwMjYtMDgtMTIuXG4gIC8vXG4gIC8vIOKaoO+4jyBEbyBOT1QgdHJ5IHRvIGRlcml2ZSB0aGlzIGJveCBieSBpbnNldHRpbmcgYC5jYW52YXMtbGF5b3V0YCBpZiBhIHBhc3RlYm9hcmQgZXZlclxuICAvLyByZXR1cm5zLiBUaGlzIGJveCBpcyBhIFNJQkxJTkcgb2YgYC5pbWctY2FudmFzYCwgYW5kIGAuY2FudmFzLWxheW91dGAgaXNcbiAgLy8gYGlubGluZS1ibG9jazsgbWF4LXdpZHRoOiAxMDAlYCwgc28gaXQgc2hyaW5rLXdyYXBzIGFnYWluc3QgdGhlIENPTFVNTiByYXRoZXIgdGhhblxuICAvLyBhZ2FpbnN0IGAuaW1nLWNhbnZhc2AuIE1lYXN1cmVkIGF0IGEgMjRweCBwYXN0ZWJvYXJkIGl0IGNhbWUgb3V0IDc4MCB3aGVyZSB0aGUgcGFkZGVkIGJveFxuICAvLyBpcyB+ODI3LCBsZWF2aW5nIHRoaXMgYm94IDc0OCB3aWRlIGFnYWluc3QgYSA3NzcgZG9jdW1lbnQg4oCUIHRoZSBlYXN0IGVkZ2Ugc3RyaXAgZmVsbFxuICAvLyBvdXRzaWRlIGFuZCBgb3ZlcmZsb3c6IGhpZGRlbmAgY2xpcHBlZCBpdCBvdXQgb2YgSElULVRFU1RJTkcsIG5vdCBqdXN0IHBhaW50aW5nLlxuICBpbnNldDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IHZhcigtLXotbGF5ZXItY2hyb21lKTtcbn1cblxuLmxheWVyLWNocm9tZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAvLyBgLmltZy1jYW52YXNgJ3Mgb3duIGJveCwgcGx1cyBhIHRyYW5zcGFyZW50IGJvcmRlciBtaXJyb3JpbmcgaXRzIDFweCBvbmUsIHNvIHRoaXMgY29udGVudFxuICAvLyBib3ggc3RhcnRzIGV4YWN0bHkgd2hlcmUgYC5jYW52YXMtd29ybGRgIGlzIGxhaWQgb3V0IOKAlCBrZWVwaW5nIHRoYXQgb2Zmc2V0IGluIENTUyByYXRoZXJcbiAgLy8gdGhhbiBkdXBsaWNhdGluZyBpdCBpbiB0aGUgZ2VvbWV0cnkgY29kZS5cbiAgaW5zZXQ6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogdmFyKC0tei1sYXllci1jaHJvbWUpO1xuXG4gID4gLmhvdmVyLFxuICA+IC5mcmFtZSB7XG4gICAgLy8gQ29uc3VtZWQgYnkgdGhlIGlubGluZSBib3gtc2hhZG93IHJpbmcgb24gYC5mcmFtZWAuXG4gICAgLS1sYXllci1hY2NlbnQ6ICN7JGNvbG9yLWxheWVyLWFjY2VudH07XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gID4gLmhvdmVyIHtcbiAgICBvdXRsaW5lOiAkbGF5ZXItaG92ZXItZnJhbWUtcHggc29saWQgJGNvbG9yLWxheWVyLWFjY2VudDtcbiAgICBvdXRsaW5lLW9mZnNldDogLSN7JGxheWVyLWhvdmVyLWZyYW1lLXB4fTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItbGF5ZXItYWNjZW50LXNvZnQ7XG4gIH1cblxuICA+IC5mcmFtZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAvLyBIYW5kbGVzIFNUUkFERExFIHRoZSBmcmFtZSBlZGdlLCBjZW50cmVkIG9uIGl0LCBsaWtlIHRoZSBzbGljZSB0b29sJ3MuIFRoYXQgaXMgb25seVxuICAgIC8vIHNhZmUgYmVjYXVzZSB0aGUgY2hyb21lIHJlbmRlcnMgb3V0c2lkZSBgLmltZy1jYW52YXMtem9vbXBhbmAg4oCUIGluc2lkZSBpdCxcbiAgICAvLyBgY29udGFpbjogcGFpbnRgIGRyb3BwZWQgdGhlIG91dHNpZGUgaGFsZiBvZiBlYWNoIGhhbmRsZSBmcm9tIGhpdC10ZXN0aW5nIGFuZCBsZWZ0XG4gICAgLy8gdGhlIGNvcm5lcnMgdW5ncmFiYmFibGUgb24gYSBsYXllciB0aGF0IGZpbGxlZCB0aGUgY2FudmFzLlxuICAgIC8vXG4gICAgLy8gU2l6ZXMgYW5kIG9mZnNldHMgYXJlIHBsYWluIFNDUkVFTiBweCBzZXQgaW5saW5lIGJ5IHRoZSBjb21wb25lbnQuIFRoZXkgYXJlIG5vdFxuICAgIC8vIGNvdW50ZXItc2NhbGVkIGFueSBtb3JlLCBhbmQgdGhleSBhcmUgbm90IGNlbnRyZWQgd2l0aCBgdHJhbnNsYXRlKC01MCUpYCBlaXRoZXI6XG4gICAgLy8gdGhhdCByZXNvbHZlcyBhZ2FpbnN0IHRoZSBlbGVtZW50J3Mgb3duIHdpZHRoLCB3aGljaCBwdXQgZWRnZSBoYW5kbGVzIG9mZi1jZW50cmUgYXRcbiAgICAvLyBhbnkgem9vbSBidXQgMTAwJSBiYWNrIHdoZW4gYSBzY2FsZSB3YXMgc3RpbGwgaW52b2x2ZWQuIE9ubHkgdGhlIGN1cnNvciBkaWZmZXJzIGhlcmUuXG4gICAgLy8gSW52aXNpYmxlIGZ1bGwtbGVuZ3RoIGdyYWIgc3RyaXAgb24gZWFjaCBlZGdlIOKAlCB0aGUgc3F1YXJlIGhhbmRsZSBpcyBvbmx5IHRoZVxuICAgIC8vIHZpc3VhbCBjdWUsIHNvIHlvdSBuZXZlciBoYXZlIHRvIGFpbSBmb3IgYSAxMHB4IHRhcmdldCB0byByZXNpemUgYSBzaWRlLiBTaXRzXG4gICAgLy8gQkVMT1cgdGhlIHNxdWFyZXMgaW4gc291cmNlIG9yZGVyIHNvIHRoZSBjb3JuZXIgaGFuZGxlcyBrZWVwIHRoZWlyIHpvbmUuXG4gICAgPiAuZWRnZS1zdHJpcCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuXG4gICAgICAmLmVkZ2Utc3RyaXAtbixcbiAgICAgICYuZWRnZS1zdHJpcC1zIHsgY3Vyc29yOiBucy1yZXNpemU7IH1cblxuICAgICAgJi5lZGdlLXN0cmlwLWUsXG4gICAgICAmLmVkZ2Utc3RyaXAtdyB7IGN1cnNvcjogZXctcmVzaXplOyB9XG4gICAgfVxuXG4gICAgPiAuaGFuZGxlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvci1sYXllci1hY2NlbnQ7XG5cbiAgICAgIC8vIEEgcmVhbCAxcHgsIHN0YXRlZCBvbmNlIGhlcmUuIEl0IHVzZWQgdG8gYmUgc2V0IGlubGluZSBhcyBgbWF4KDAuNSwgMS9rKWAgc28gaXRcbiAgICAgIC8vIHdvdWxkIHN1cnZpdmUgdGhlIHdvcmxkJ3Mgc2NhbGluZyDigJQgYnV0IGBib3JkZXItd2lkdGhgIHF1YW50aXNlcyB0byB3aG9sZSBwaXhlbHMsXG4gICAgICAvLyBzbyB0aGF0IGNhbWUgb3V0IGFueXdoZXJlIGJldHdlZW4gMC44cHggYW5kIDMuM3B4IG9uIHNjcmVlbiBkZXBlbmRpbmcgb24gem9vbS5cbiAgICAgIC8vIE91dHNpZGUgdGhlIHdvcmxkIHRoZXJlIGlzIG5vdGhpbmcgdG8gY29tcGVuc2F0ZSBmb3IuXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3Itd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG5cbiAgICAgIC8vIFByZXZlbnQgYnJvd3NlciBzY3JvbGwvem9vbSBnZXN0dXJlcyBmcm9tIHN0ZWFsaW5nIHRoZSBkcmFnIG9uIHRvdWNoLlxuICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuXG4gICAgICAmLmhhbmRsZS1udyxcbiAgICAgICYuaGFuZGxlLXNlIHsgY3Vyc29yOiBud3NlLXJlc2l6ZTsgfVxuXG4gICAgICAmLmhhbmRsZS1uZSxcbiAgICAgICYuaGFuZGxlLXN3IHsgY3Vyc29yOiBuZXN3LXJlc2l6ZTsgfVxuXG4gICAgICAmLmhhbmRsZS1uLFxuICAgICAgJi5oYW5kbGUtcyB7IGN1cnNvcjogbnMtcmVzaXplOyB9XG5cbiAgICAgICYuaGFuZGxlLWUsXG4gICAgICAmLmhhbmRsZS13IHsgY3Vyc29yOiBldy1yZXNpemU7IH1cbiAgICB9XG4gIH1cblxuICAvLyBOYW1lIGJhZGdlOiB0aGUgcmVhbCBkaXNhbWJpZ3VhdG9yIHdoZW4gc2V2ZXJhbCBzaW1pbGFyIGxheWVycyBvdmVybGFwIGFuZCB0aGVcbiAgLy8gb3V0bGluZXMgYWxvbmUgY2FuJ3QgdGVsbCB5b3Ugd2hpY2ggb25lIHlvdSBoYXZlLiBBbmNob3JlZCBpbnNpZGUgdGhlIGJveCdzIHRvcC1sZWZ0LFxuICAvLyBpbiBzY3JlZW4gcHgg4oCUIG5vIGNvdW50ZXItc2NhbGUgbmVlZGVkIG5vdyB0aGUgY2hyb21lIGlzIG91dHNpZGUgdGhlIHpvb20vcGFuIHdvcmxkLlxuICAvLyBKUyBhZGRzIGEgdHJhbnNsYXRlIHRoYXQgY2xlYXJzIHRoZSBOVyBoYW5kbGUuXG4gIC5sYWJlbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWxheWVyLWFjY2VudDtcbiAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS14cztcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG59XG5cbi8vIERvY3VtZW50IGJvdW5kYXJ5OiBmcmFtZXMgdGhlIGNhbnZhcyAoZG9jdW1lbnQpIHNvIGluLWJvdW5kcyB2cyBvdXQtb2YtYm91bmRzXG4vLyBpcyBvYnZpb3VzLiBTaXRzIGFib3ZlIHRoZSBsaXZlIGNvbXBvc2l0ZSwgYmVsb3cgdGhlIG1vdmUtY2FwdHVyZSBzdXJmYWNlLlxuLmNhbnZhcy1ib3VuZGFyeSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG5cbiAgLy8gQSBSSU5HLCBub3QgYSBgYm9yZGVyYC4gVGhpcyBlbGVtZW50IHNpdHMgaW5zaWRlIHRoZSB6b29tL3BhbiB3b3JsZCwgc28gaXRzIG91dGxpbmUgaXNcbiAgLy8gc2NhbGVkIHdpdGggZXZlcnl0aGluZyBlbHNlIGFuZCBoYXMgdG8gYmUgY291bnRlci1zY2FsZWQgYnkgMS9rIHRvIHN0YXkgb25lIHNjcmVlblxuICAvLyBwaXhlbCDigJQgYnV0IGBib3JkZXItd2lkdGhgIGlzIFFVQU5USVNFRCBUTyBXSE9MRSBQSVhFTFMsIHNvIGFza2luZyBmb3IgNi45NTVweCB5aWVsZHNcbiAgLy8gNnB4IGFuZCB0aGUgbGluZSBsYW5kcyBhdCAwLjg2IHNjcmVlbiBweCwgdGhpbiBlbm91Z2ggYXQgc29tZSB6b29tIGxldmVscyB0byB3YXNoIG91dFxuICAvLyBlbnRpcmVseS4gRWRnZXMgdGhlbiB3aW5rIGluIGFuZCBvdXQgaW5kZXBlbmRlbnRseSB3aGlsZSB6b29taW5nLiBBIGJveC1zaGFkb3cgc3ByZWFkXG4gIC8vIHRha2VzIHRoZSBmcmFjdGlvbmFsIHZhbHVlIGFzIGdpdmVuLCB3aGljaCBpcyB0aGUgc2FtZSByZWFzb24gdGhlIGxheWVyIHNlbGVjdGlvblxuICAvLyBmcmFtZSBpcyBkcmF3biBhcyBhIHJpbmcuIFdpZHRoIGNvbWVzIGZyb20gYC0tY2FudmFzLWJvdW5kYXJ5LXdgIChzZXQgaW5saW5lLCBpdCBpc1xuICAvLyB0aGUgb25seSB0aGluZyB0aGF0IGtub3dzIHRoZSBjdXJyZW50IHpvb20pOyB0aGUgY29sb3VyIHN0YXlzIGhlcmUuXG4gIGJveC1zaGFkb3c6IDAgMCAwIHZhcigtLWNhbnZhcy1ib3VuZGFyeS13LCAxcHgpICRjb2xvci1ncmVlbi1saW5rO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogdmFyKC0tei1sYXllci1jYW52YXMtYm91bmRhcnkpO1xufVxuXG4vLyBIaWRkZW4gZmlsZSBpbnB1dHMgKHVwbG9hZCB0cmlnZ2VyICsgYWRkLWxheWVyKTogdGhlIHZpc2libGUgZHJvcHpvbmUvcGFuZWxcbi8vIGJ1dHRvbnMgcHJveHkgdGhlIGNsaWNrOyB0aGUgcmF3IDxpbnB1dCB0eXBlPWZpbGU+IHN0YXlzIG91dCBvZiB0aGUgbGF5b3V0LlxuLmhpZGRlbi1maWxlLWlucHV0IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gSG9tZS1zY3JlZW4gdXBsb2FkOiB0aGUgd2hvbGUgY29udGFpbmVyIElTIHRoZSB0cmlnZ2VyICsgZHJhZy1hbmQtZHJvcCB6b25lLlxuLnVwbG9hZC1kcm9wem9uZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMTRweDtcbiAgcGFkZGluZzogNDBweCAyNHB4O1xuICBtaW4taGVpZ2h0OiAzNDBweDtcblxuICAvLyBIYWlybGluZSwgbm90IGEgaGVhdnkgMnB4IHJ1bGU6IGF0IHRoaXMgc2l6ZSB0aGUgZHJvcHpvbmUgaXMgYWxyZWFkeSB1bm1pc3Rha2FibGVcbiAgLy8gZnJvbSBpdHMgc2NhbGUgYW5kIGl0cyBcImRyYWcgJiBkcm9wXCIgY29weSwgc28gdGhlIGJvcmRlciBvbmx5IG5lZWRzIHRvIGRlc2NyaWJlIHRoZVxuICAvLyBlZGdlIOKAlCBhIHRoaWNrIGRhc2hlZCBmcmFtZSByZWFkcyBhcyBkZWNvcmF0aW9uIGFuZCBkb21pbmF0ZXMgYW4gb3RoZXJ3aXNlIGVtcHR5IHBhZ2UuXG4gIGJvcmRlcjogMXB4IGRhc2hlZCAkY29sb3ItYm9yZGVyLW1pZDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTIwbXMgZWFzZSwgYmFja2dyb3VuZCAxMjBtcyBlYXNlO1xuXG4gIC8vIFdob2xlLWNvbnRhaW5lciBoaWdobGlnaHQgb24gaG92ZXIgQU5EIHdoaWxlIGEgZmlsZSBpcyBkcmFnZ2VkIG92ZXIuXG4gICY6aG92ZXIsXG4gICYuZHJhZy1hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWdyZWVuLWxpbms7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLXRpbnQtYmc7XG4gIH1cblxuICAudXBsb2FkLWhpbnQge1xuICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1tdXRlZDtcbiAgfVxufVxuXG4vLyBDYW52YXMtc2l6ZSBzZXR0aW5ncyBwb3BvdmVyIChnZWFyIGJ1dHRvbikuXG4uY2FudmFzLXNldHRpbmdzLXBvcG92ZXIge1xuICAuY2FudmFzLXNldHRpbmdzLWhlYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAuY2FudmFzLXNldHRpbmdzLWNsb3NlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLWxpZ2h0O1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci13aGl0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMnB4IDdweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC5jYW52YXMtc2V0dGluZ3Mtbm90ZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLXhzO1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1tdXRlZDtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgfVxuXG4gIC5jYW52YXMtc2V0dGluZ3Mtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW46IDhweCAwO1xuXG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gICAgICBnYXA6IDJweDtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogNzJweDtcbiAgICAgIHBhZGRpbmc6IDJweCA0cHg7XG4gICAgfVxuXG4gICAgLmNhbnZhcy1zZXR0aW5ncy14IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgfVxuICB9XG5cbiAgLmNhbnZhcy1zZXR0aW5ncy1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNnB4O1xuICB9XG59XG5cbi8vIFNsaWNlL01vdmUgdG9vbCBzd2l0Y2hlciDigJQgYSBzZWdtZW50ZWQgY29udHJvbCB3aXRoIGFuIHVubWlzdGFrYWJsZSBhY3RpdmUgdG9vbC5cbi50b29sLXN3aXRjaCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYm9yZGVyLW1pZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC50b29sLXN3aXRjaC1idG4ge1xuICAgIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xuICAgIHBhZGRpbmc6IDNweCAxMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRjb2xvci1ib3JkZXItbWlkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1zdXJmYWNlLW11dGVkO1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZWVuLWxpbms7XG4gICAgICBjb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogJGRpc2FibGVkLW9wYWNpdHk7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbiAgfVxufVxuXG4vLyBab29tIHRvb2xiYXI6IGtlZXAgdGhlIHpvb20gcGVyY2VudCBjb21wYWN0IGFuZCBhY2Nlc3NpYmxlLlxuLnpvb20tcGVyY2VudC13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMCAycHg7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcbiAgY29sb3I6ICRjb2xvci10ZXh0LXVpO1xufVxuXG4uem9vbS1wZXJjZW50LWlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogNGNoO1xuICBtYXgtd2lkdGg6IDZjaDtcbiAgaGVpZ2h0OiAkY29udHJvbC1oZWlnaHQtbWQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICRjb2xvci10ZXh0LXN0cm9uZztcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZTtcbiAgICBvdXRsaW5lOiAycHggc29saWQgcmdiYSgzNSwgMTQ3LCAxMTUsIDAuMzUpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIH1cbn1cblxuLnpvb20tcGVyY2VudC13cmFwLmlzLWFjdGl2ZSAuem9vbS1wZXJjZW50LWlucHV0IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZTtcbn1cblxuLmhpc3Rvcnktb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE2MG1zIGVhc2U7XG4gIHotaW5kZXg6IDk5OTg7XG5cbiAgJi5vcGVuIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB9XG59XG5cbi5oaXN0b3J5LWRyYXdlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IG1pbigzNjBweCwgOTJ2dyk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2VhZWFlYTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMiUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTgwbXMgZWFzZTtcbiAgei1pbmRleDogOTk5OTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmLm9wZW4ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuXG4uaGlzdG9yeS1kcmF3ZXItaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2VhZWFlYTtcbn1cblxuLmhpc3RvcnktZHJhd2VyLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmhpc3RvcnktY2xvc2Uge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZWFlYWVhO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG59XG5cbi5oaXN0b3J5LWRyYXdlci1zdWJ0aXRsZSB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjNjY2O1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNlYWVhZWE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG59XG5cbi5oaXN0b3J5LWRyYXdlci1zdWJ0aXRsZS1sZWZ0IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uaGlzdG9yeS1kcmF3ZXItc3VidGl0bGUtcmlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cblxuLmhpc3RvcnktbGlzdCB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBwYWRkaW5nOiA4cHggOHB4IDEycHg7XG59XG5cbi5oaXN0b3J5LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyOiAxcHggZG90dGVkICNlYWVhZWE7XG4gIG1hcmdpbjogMCAwIDhweCAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5oaXN0b3J5LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xufVxuXG4uaGlzdG9yeS1pdGVtOmZvY3VzIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICMyMzkzNzM7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG5cbi5oaXN0b3J5LWl0ZW0uY3VycmVudCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMzkzNzM7XG4gIGJhY2tncm91bmQ6ICNmMGZiZjc7XG59XG5cbi5oaXN0b3J5LWl0ZW0uZnV0dXJlIHtcbiAgb3BhY2l0eTogMC41NTtcbn1cblxuLmhpc3RvcnktaXRlbS5mdXR1cmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjc1O1xufVxuXG4uaGlzdG9yeS1pdGVtLnJvb3QgLmhpc3RvcnktcHJpbWFyeSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLy8gU2hhcmVkIFwiY2hpcFwiIHN0eWxlIHVzZWQgYWNyb3NzIHNtYWxsIFVJIGJhZGdlcy9idXR0b25zLlxuJXVpLWNoaXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VhZWFlYTtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgY29sb3I6ICM2NjY7XG59XG5cbi5oaXN0b3J5LWluZGV4IHtcbiAgQGV4dGVuZCAldWktY2hpcDtcblxuICB3aWR0aDogMjJweDtcbiAgZmxleDogMCAwIDIycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLy8gQXV0aCBtb2RhbCBjbG9zZSBidXR0b24gdXNlcyB0aGUgc2FtZSBiYXNlIFwiY2hpcFwiIHN0eWxpbmcgYXMgaGlzdG9yeSBpbmRpY2VzLlxuLmF1dGgtbW9kYWwtY2xvc2Uge1xuICBAZXh0ZW5kICV1aS1jaGlwO1xufVxuXG4uaGlzdG9yeS10aHVtYiB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlYWVhZWE7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGZsZXg6IDAgMCA0NHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBpbWcge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4ldGh1bWItZW1wdHktYmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgIDQ1ZGVnLFxuICAgICNmN2Y3ZjcsXG4gICAgI2Y3ZjdmNyA2cHgsXG4gICAgI2ZmZmZmZiA2cHgsXG4gICAgI2ZmZmZmZiAxMnB4XG4gICk7XG59XG5cbi5oaXN0b3J5LXRodW1iLWVtcHR5IHtcbiAgQGV4dGVuZCAldGh1bWItZW1wdHktYmc7XG59XG5cbi5oaXN0b3J5LXRleHQge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5oaXN0b3J5LXByaW1hcnkge1xuICBmb250LXNpemU6ICRmb250LXNpemUtbWQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLmhpc3Rvcnktc2Vjb25kYXJ5IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzQ0NDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm15LXNsaWNlcy1saXN0LXdyYXAge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXktc2xpY2VzLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi5teS1zbGljZXMtc3VtbWFyeSB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyOiAxcHggZG90dGVkICNlYWVhZWE7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm15LXNsaWNlcy1zdW1tYXJ5LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogODAwO1xuICBtYXJnaW4tYm90dG9tOiAxMXB4O1xufVxuXG4ubXktc2xpY2VzLXN1bW1hcnktcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDZweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAkZGVmYXVsdC1mb250LXNpemU7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG4ubXktc2xpY2VzLXN1bW1hcnktc2VwIHtcbiAgY29sb3I6ICM3Nzc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDZweDtcbn1cblxuLm15LXNsaWNlcy1zdW1tYXJ5LWZ1biB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzU1NTtcbn1cblxuLm15LXNsaWNlcy1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTNlM2UzO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjdmNzsgLy8gbWF0Y2ggaGlzdG9yeSBob3ZlclxuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMyMzkzNzM7IC8vIG1hdGNoIGhpc3RvcnkgZm9jdXNcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB9XG59XG5cbi5teS1zbGljZXMtaXRlbSAuaGlzdG9yeS1pbmRleCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG5cbi5teS1zbGljZXMtdGh1bWIge1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICBmbGV4OiAwIDAgNTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzIzOTM3MztcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB9XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cblxuLm15LXNsaWNlcy10aHVtYi1lbXB0eSB7XG4gIEBleHRlbmQgJXRodW1iLWVtcHR5LWJnO1xufVxuXG4ubXktc2xpY2VzLXRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5teS1zbGljZXMtdmVyc2lvbiB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICM2NjY7XG59XG5cbi5teS1zbGljZXMtcHJpbWFyeSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubXktc2xpY2VzLXNlY29uZGFyeSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM0NDQ7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teS1zbGljZXMtYWN0aW9ucyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubXktc2xpY2VzLWFjdGlvbiB7XG4gIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xufVxuXG4jbWVudSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2VhZWFlYTtcbiAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjZWFlYWVhO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA0cHg7XG59XG5cbiN0b29sLWJveCxcbiNhY3Rpb25zIHtcbiAgcGFkZGluZzogNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiN0b29sLWJveCB7XG4gIC8vIExlYXZlIGEgZml4ZWQgY29sdW1uIGZvciAjYWN0aW9ucyBzbyB0b29sYmFyIGNvbnRyb2xzIG5ldmVyIHNpdCB1bmRlciBDaG9wLlxuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxNTBweCk7XG4gIGZvbnQtc2l6ZTogMTVweDtcblxuICAvLyBUd28gc3RhY2tlZCByb3dzOiBwcmltYXJ5IGFjdGlvbnMgKEFkZCBOZXcgfCBTbmFwIHwgQ2xlYXIgQWxsIHwgSEVMUCkgdGhlbiB0aGVcbiAgLy8gbmV3ZXIvc2Vjb25kYXJ5IGFjdGlvbnMgKFVuZG8sIFJlZG8sIEhpc3RvcnksIHpvb20sIHRyYW5zZm9ybSkuIEVhY2ggcm93IHdyYXBzXG4gIC8vIGluZGVwZW5kZW50bHkgd2hlbiBzcGFjZSBpcyB0aWdodC4gYWxpZ24taXRlbXM6ZmxleC1zdGFydCBrZWVwcyBib3RoIHJvd3MgbGVmdC1cbiAgLy8gYWxpZ25lZCAoYSBjZW50ZXJlZCBjb2x1bW4gd291bGQgaW5kZW50IHRoZSBuYXJyb3dlciBwcmltYXJ5IHJvdykuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDhweDtcblxuICAudG9vbC1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAuc3dpdGNoLWJveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcblxuICAgIC8vIE92ZXJyaWRlIGxlZ2FjeSBgY3NzL21haW4ubWluLmNzc2Agd2hpY2ggcG9zaXRpb25zIGAuc3dpdGNoYCBzbGlnaHRseSB1cHdhcmQgKHRvcDotNHB4KS5cbiAgICAuc3dpdGNoIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBQcm8tZ2F0ZWQgdG9nZ2xlIChlLmcuIFNuYXAgTW9kZSkgc2hvd24gdG8gbm9uLVBybyB0aWVyczogdmlzaWJseSBpbmVydC5cbiAgLnN3aXRjaC0tZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxufVxuXG4jYWN0aW9ucyB7XG4gIHdpZHRoOiBhdXRvO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWluLXdpZHRoOiAxNDBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4uYWN0aXZlLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBNT1ZFLUJHO1xuXHRhbmltYXRpb24tZHVyYXRpb246IDRzO1xuXHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG5cdGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuXG4ubG9nbyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsdmlvbGV0LGluZGlnbywjMDBmLGdyZWVuLCNmZjAsb3JhbmdlLHJlZCwjZDA0MzQzLCMzZDc3M2QsI2QwYWUwYiwjMzk2MWFiLCNhMjJlYTIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMxNCUgMzE0JTtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDM2cHg7XG4gIGFuaW1hdGlvbjogcmFpbmJvdyAxMXMgZWFzZSBpbmZpbml0ZTtcblxuICAvLyBUaGUgZWRpdG9yJ3Mgb3RoZXIgbmV2ZXItZW5kaW5nIGFuaW1hdGlvbi4gSHVlIGN5Y2xpbmcgcmF0aGVyIHRoYW4gdHJhdmVsLCBzbyBpdCBpcyBtaWxkZXJcbiAgLy8gdGhhbiB0aGUgYW50cywgYnV0IFwicGVybWFuZW50IG1vdGlvblwiIGlzIHRoZSB0aGluZyB0aGUgc2V0dGluZyBhc2tzIHVzIHRvIHN0b3AuIFRoZSBsb2dvXG4gIC8vIGtlZXBzIGl0cyBncmFkaWVudDsgaXQganVzdCBob2xkcyBzdGlsbC5cbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLy8gU2hhcmVkIGhlYWRpbmcgc2l6aW5nIGhlbHBlciAodXNlIGFsb25nc2lkZSBvdGhlciBjbGFzc2VzIGxpa2UgYC5sb2dvYCkuXG4uYWl0Y2gtb25lIHtcbiAgZm9udC1zaXplOiAzNnB4O1xufVxuXG4vLyBTaGFyZWQgaW5wdXQgc3R5bGVzIGZvciBcImNvbW1hbmRpbmdcIiBhdXRoL2FkbWluIFVJcy5cbi5jb21tYW5kaW5nLWlucHV0LFxuLnN1cGVyLWNvbW1hbmRpbmctaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWJvcmRlci1kZWZhdWx0O1xuICBiYWNrZ3JvdW5kOiAkY29sb3Itc3VyZmFjZTtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogJGRlZmF1bHQtZm9udC1zaXplO1xufVxuXG4uY29tbWFuZGluZy1pbnB1dCB7XG4gIGhlaWdodDogJGNvbnRyb2wtaGVpZ2h0LW1kO1xufVxuXG4uc3VwZXItY29tbWFuZGluZy1pbnB1dCB7XG4gIGhlaWdodDogNjBweDtcbn1cblxuLy8gU2ltcGxlIGdyZWVuIFwibGluayBidXR0b25cIiBzdHlsZSAodXNlZCBhY3Jvc3MgVUkpLlxuLmF1dGgtbGluayB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6ICRjb2xvci1ncmVlbi1saW5rO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWN0YTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5hdXRoLWxpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLy8gR3JlZW4gbGluay1zdHlsZSBidXR0b24gKHVzZWQgZm9yIGlubGluZSBDVEFzIGxpa2UgXCJTaWduIFVwIVwiKVxuLmdyZWVuLWxpbmstYnRuIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogJGNvbG9yLWdyZWVuLWxpbms7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtY3RhO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZ3JlZW4tbGluay1idG46aG92ZXIge1xuICBjb2xvcjogJGNvbG9yLWdyZWVuLWxpbmstaG92ZXI7XG59XG5cbi8vIFByaW1hcnkgYnV0dG9uIHN0eWxlIChzaGFyZWQpLlxuLnByaW1hcnktYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxNnB4IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6ICMyMzkzNzM7XG4gIGNvbG9yOiAkY29sb3Itd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxYTZlNTU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAkZm9udC1zaXplLWxnO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWhlYXZ5O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnByaW1hcnktYnRuOmhvdmVyOmVuYWJsZWQge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JlZW4tbGluay1ob3Zlcjtcbn1cblxuLnByaW1hcnktYnRuOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41NTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLy8gU2hhcmVkIFwic2ltcGxlIGJ1dHRvbiByb3dcIiBsYXlvdXQgKHVzZWQgaW4gZGV2IHBhbmVscyArIGF1dGggZmxvd3MpLlxuLmF1dGgtYnRuLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi8qIFN3aXRjaCBzdHlsZXMgYWRhcHRlZCBmcm9tIHByb3ZpZGVkIENTUyAqL1xuLnN3aXRjaCBpbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnNsaWRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgdHJhbnNpdGlvbjogLjRzO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgbGVmdDogMnB4O1xuICAgIGJvdHRvbTogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgICB0cmFuc2l0aW9uOiAuNHM7XG4gIH1cblxuICAmLnJvdW5kIHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG4gIH1cbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjM5MzczO1xufVxuXG5pbnB1dDpmb2N1cyArIC5zbGlkZXIge1xuICBib3gtc2hhZG93OiAwIDAgMXB4ICMyMzkzNzM7XG59XG5cbmlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOjpiZWZvcmUge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xufVxuXG4jc3dpdGNoLXN0YXR1cyB7XG4gIG1pbi13aWR0aDogJGNvbnRyb2wtaGVpZ2h0LW1kO1xufVxuXG4udG9vbC1zZXAge1xuICBwYWRkaW5nOiAwIDNweDtcbiAgY29sb3I6ICNhZWFlYWU7XG4gIGxpbmUtaGVpZ2h0OiAkY29udHJvbC1oZWlnaHQtbWQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIE1vYmlsZSBzdHlsZXNcbkBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAvLyBUb29sYmFyOiBmdWxsIHdpZHRoLCBjZW50ZXJlZFxuICAjbWVudSB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAjdG9vbC1ib3gge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICNhY3Rpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAvLyBDYW52YXM6IGFkZCBtYXJnaW5zIGZvciBlYXNpZXIgZWRnZSBpbnRlcmFjdGlvbiAocGhvbmUgY2FzZSBmaW5nZXIgcmVhY2gpXG4gICN0aGUtZ3JpZCB7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICB9XG59XG5cbi8vIFRoZSBET0NVTUVOVCdzIHRyYW5zcGFyZW5jeSBjaGVja2VyOiBIQUxGIHRoZSBzaXplIG9mIHRoZSBvdXQtb2YtYm91bmRzIG9uZSwgYW5kIHN0cm9uZ2VyLlxuLy9cbi8vIFNpdHMgaW5zaWRlIGAuY2FudmFzLXdvcmxkYCBhdCBgaW5zZXQ6IDBgLCBzbyBpdCBjb3ZlcnMgZXhhY3RseSB0aGUgZG9jdW1lbnQgYW5kIGNvbXB1dGVzIG5vXG4vLyBnZW9tZXRyeSBvZiBpdHMgb3duIOKAlCBldmVyeSBnZW9tZXRyeSBidWcgaW4gdGhpcyBjYW52YXMgY2FtZSBmcm9tIGEgcmVjdGFuZ2xlIGludmVudGluZyBpdHNcbi8vIG93biBpZGVhIG9mIHdoZXJlIHRoZSBkb2N1bWVudCBpcywgYW5kIGluaGVyaXRpbmcgaXQgZnJvbSB0aGUgZWxlbWVudCB0aGF0IGFscmVhZHkga25vd3MgaXNcbi8vIGhvdyBub3QgdG8gYWRkIGFub3RoZXIuXG4vL1xuLy8gYGJhY2tncm91bmQtc2l6ZWAgaXMgc2V0IGlubGluZSBhbmQgY291bnRlci1zY2FsZWQgYnkgMS9rOyBgLmNhbnZhcy13b3JsZGAgY2FycmllcyB0aGVcbi8vIHpvb20vcGFuIG1hdHJpeCwgc28gd2l0aG91dCB0aGF0IHRoZSBzcXVhcmVzIHdvdWxkIGdyb3cgYW5kIHNocmluayB3aXRoIHpvb20gYW5kIHN0b3Bcbi8vIHJlYWRpbmcgYXMgYSBiYWNrZHJvcC4gYGJhY2tncm91bmQtcG9zaXRpb25gIGlzIHNldCBpbmxpbmUgZm9yIHRoZSBzYW1lIHJlYXNvbiDigJQgc2VlIHRoZVxuLy8gd2FybmluZyBvbiB0aGUgcnVsZS4gKEFuIGVhcmxpZXIgdmVyc2lvbiBvZiB0aGlzIGNvbW1lbnQgcmVhc29uZWQgdGhhdCBiZWluZyBpbiBhIHNjYWxlZFxuLy8gc3BhY2UgbWVhbnQgdGhlIG9mZnNldCBzaG91bGQgYmUgYSBQRVJDRU5UQUdFLiBUaGF0IGlzIGV4YWN0bHkgYmFja3dhcmRzLCBhbmQgaXQgaXMgd2hhdFxuLy8gcHJvZHVjZWQgdGhlIG1vaXLDqTogdGhlIG9mZnNldCBtdXN0IGJlIGhhbGYgYSBUSUxFLCBhbmQgdGhlIHRpbGUgaXMgYSBwaXhlbCBsZW5ndGguKVxuLmdyaWQtZG9jdW1lbnQtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAvLyBJZGVudGljYWwgdG8gdGhlIGNoZWNrZXIgdGhlIGNhbnZhcyBoYXMgYWx3YXlzIGhhZDogc2FtZSBjb2xvdXIsIHNhbWUgMThweCB0aWxlLiBUaGUgb25seVxuICAvLyB0aGluZyB0aGF0IGNoYW5nZWQgaXMgV0hFUkUgaXQgaXMgcGFpbnRlZCDigJQgb24gdGhlIGRvY3VtZW50IHJhdGhlciB0aGFuIG9uIHRoZSB2aWV3cG9ydCDigJRcbiAgLy8gc28gdGhhdCB0aGUgb3V0LW9mLWJvdW5kcyBhcmVhIGNhbiBsb29rIGRpZmZlcmVudCB3aXRob3V0IHRoaXMgbG9va2luZyBkaWZmZXJlbnQgYXQgYWxsLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItY2FudmFzLWNoZWNrZXItYmc7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDAsIDAsIDAsIDAuMDYpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA3NSUsIHJnYmEoMCwgMCwgMCwgMC4wNikgNzUlLCByZ2JhKDAsIDAsIDAsIDAuMDYpKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMCwgMCwgMCwgMC4wNikgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDc1JSwgcmdiYSgwLCAwLCAwLCAwLjA2KSA3NSUsIHJnYmEoMCwgMCwgMCwgMC4wNikpO1xuXG4gIC8vIOKaoO+4jyBgYmFja2dyb3VuZC1wb3NpdGlvbmAgaXMgc2V0IGlubGluZSBhbG9uZ3NpZGUgYGJhY2tncm91bmQtc2l6ZWAsIE5PVCBoZXJlLiBUaGUgdHdvXG4gIC8vIGdyYWRpZW50cyBpbnRlcmxvY2sgaW50byBhIGNoZWNrZXIgb25seSB3aGVuIHRoZSBzZWNvbmQgaXMgb2Zmc2V0IGJ5IGV4YWN0bHkgSEFMRiBBIFRJTEVcbiAgLy8gaW4gcGl4ZWxzLiBBIHBlcmNlbnRhZ2UgaXMgaGFsZiB0aGUgRUxFTUVOVCwgd2hpY2ggaXMgYSBkaWZmZXJlbnQgbnVtYmVyIGVudGlyZWx5IOKAlCB1c2luZ1xuICAvLyBgNTAlIDUwJWAgcHJvZHVjZWQgYSBkaWFnb25hbCBsYXR0aWNlIG1vaXLDqSBpbnN0ZWFkIG9mIHNxdWFyZXMuIEFuZCBiZWNhdXNlIHRoZSB0aWxlIGlzXG4gIC8vIGNvdW50ZXItc2NhbGVkIGJ5IDEvaywgaGFsZiBvZiBpdCBpcyBvbmx5IGtub3duIGF0IHJlbmRlciB0aW1lLlxufVxuXG4vLyBUaGUgY29tcG9zaXRlIGhhcyB0byBiZSBsaWZ0ZWQgb3ZlciB0aGUgYmFja2Ryb3AgRVhQTElDSVRMWSwgYmVjYXVzZSB0aGUgYmFja2Ryb3AgYWJvdmUgaXNcbi8vIGBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDowYCB3aGlsZSBgI3NsaWNlSW1nYCBpcyBhbiBvcmRpbmFyeSBpbi1mbG93IGltYWdlLiBDU1MgcGFpbnRzXG4vLyBub24tcG9zaXRpb25lZCBpbi1mbG93IGNvbnRlbnQgQkVGT1JFIHBvc2l0aW9uZWQvc3RhY2tpbmctY29udGV4dCBjb250ZW50LCBzbyBhIHN0YXRpY1xuLy8gYCNzbGljZUltZ2AgcmVuZGVycyBVTkRFUk5FQVRIIHRoZSBjaGVja2VyIG5vIG1hdHRlciB0aGF0IGl0IGNvbWVzIGxhdGVyIGluIHRoZSBET00uXG4vL1xuLy8gSXQgbG9va2VkIGZpbmUgb25seSBieSBhY2NpZGVudDogYC5ibHVycmVkYCAoYGZpbHRlcjogYmx1cigzcHgpYCwgYXBwbGllZCB3aGlsZSBzbGljZXNcbi8vIGV4aXN0KSBjcmVhdGVzIGEgc3RhY2tpbmcgY29udGV4dCwgd2hpY2ggcHJvbW90ZWQgdGhlIGltYWdlIGludG8gdGhlIHNhbWUgcGFpbnRpbmcgc3RlcCBhc1xuLy8gdGhlIGJhY2tkcm9wIGFuZCDigJQgYmVpbmcgbGF0ZXIgaW4gdHJlZSBvcmRlciDigJQgb3ZlciBpdC4gU28gdGhlIHBpY3R1cmUgd2FzIHJpZGluZyBvbiBhIGJsdXJcbi8vIGZpbHRlciBmb3IgaXRzIHN0YWNraW5nLiBgQ2xlYXIgQWxsYCBlbXB0aWVzIHRoZSBzbGljZXMsIGAuYmx1cnJlZGAgY29tZXMgb2ZmLCB0aGUgc3RhY2tpbmdcbi8vIGNvbnRleHQgZ29lcyB3aXRoIGl0IGFuZCB0aGUgaW1hZ2UgZHJvcHBlZCBiZWhpbmQgdGhlIGNoZWNrZXI6IHRoZSBjYW52YXMgd2VudCBmdWxseVxuLy8gdHJhbnNwYXJlbnQgd2hpbGUgdGhlIGxheWVyLCBpdHMgdGh1bWJuYWlsIGFuZCB0aGUgY29tcG9zaXRlIGJsb2Igd2VyZSBhbGwgc3RpbGwgcGVyZmVjdGx5XG4vLyBpbnRhY3QuIFRoYXQgaXMgdGhlIFwiQ2xlYXIgQWxsIGhpZGVzIHRoZSBsYXllciBpbWFnZVwiIHJlcG9ydC5cbi8vXG4vLyBgei1pbmRleDogMGAgYW5kIE5PVCBhIHBvc2l0aXZlIHZhbHVlLCBkZWxpYmVyYXRlbHk6IGl0IG11c3Qgc3RheSBCRUxPVyB0aGUgc2xpY2Ugb3ZlcmxheVxuLy8gKGAuc2VsZWN0LWFyZWFzLW92ZXJsYXlgLCBgei1pbmRleDphdXRvYCwgbGF0ZXIgaW4gdHJlZSBvcmRlciksIHRoZSBsaXZlIGxheWVyIGNhbnZhcyAoNDApXG4vLyBhbmQgdGhlIGRvY3VtZW50IGJvdW5kYXJ5ICg0NikuIE1hdGNoaW5nIHRoZSBiYWNrZHJvcCdzIG93biAwIGFuZCB3aW5uaW5nIG9uIHRyZWUgb3JkZXIgaXNcbi8vIGV4YWN0bHkgdGhlIHN0YWNraW5nIGAuYmx1cnJlZGAgdXNlZCB0byBwcm9kdWNlIOKAlCB0aGUgcGljdHVyZSBpcyBhYm92ZSB0aGUgY2hlY2tlciwgYW5kXG4vLyBldmVyeXRoaW5nIGRyYXduIG9uIHRvcCBvZiB0aGUgcGljdHVyZSBzdGlsbCBpcy5cbiNzbGljZUltZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbn1cbiIsIi8vIFogSW5kZXhcbi8vIFVzZSBDU1MgdmFyaWFibGVzIHNvIEpTIChpbmxpbmUgc3R5bGVzKSBhbmQgQ1NTIHNoYXJlIHRoZSBzYW1lIHNvdXJjZSBvZiB0cnV0aC5cbkBpbXBvcnQgJy4vdmFyaWFibGVzJztcblxuOnJvb3Qge1xuICAtLXotbGF5ZXItbGl2ZS1jYW52YXM6ICN7JHotbGF5ZXItbGl2ZS1jYW52YXN9O1xuICAtLXotbGF5ZXItY2FudmFzLWJvdW5kYXJ5OiAjeyR6LWxheWVyLWNhbnZhcy1ib3VuZGFyeX07XG4gIC0tei1sYXllci1tb3ZlLWNhcHR1cmU6ICN7JHotbGF5ZXItbW92ZS1jYXB0dXJlfTtcbiAgLS16LWxheWVyLWNocm9tZTogI3skei1sYXllci1jaHJvbWV9O1xuICAtLXotc2xpY2Utb3V0bGluZS1hY3RpdmU6ICN7JHotc2xpY2Utb3V0bGluZS1hY3RpdmV9O1xuICAtLXotc2xpY2UtZGVsZXRlLWJ1dHRvbjogI3skei1zbGljZS1kZWxldGUtYnV0dG9ufTtcbiAgLS16LXNsaWNlLWJnLWFjdGl2ZTogI3skei1zbGljZS1iZy1hY3RpdmV9O1xuICAtLXotc2xpY2UtaW50ZXJhY3RpdmUtbGF5ZXI6ICN7JHotc2xpY2UtaW50ZXJhY3RpdmUtbGF5ZXJ9O1xuICAtLXotc2xpY2UtcmVzaXplLWhhbmRsZTogI3skei1zbGljZS1yZXNpemUtaGFuZGxlfTtcbiAgLS16LXNsaWNlLWJnLWluYWN0aXZlOiAjeyR6LXNsaWNlLWJnLWluYWN0aXZlfTtcbiAgLS16LXNsaWNlLW91dGxpbmUtaW5hY3RpdmU6ICN7JHotc2xpY2Utb3V0bGluZS1pbmFjdGl2ZX07XG4gIC0tei1jYW52YXMtd29ybGQ6ICN7JHotY2FudmFzLXdvcmxkfTtcbiAgLS16LWNhbnZhcy1vdmVybGF5OiAjeyR6LWNhbnZhcy1vdmVybGF5fTtcbiAgLS16LWhlbHAtcG9wb3ZlcjogI3skei1oZWxwLXBvcG92ZXJ9O1xuICAtLXotem9vbS1wYW4taGl0LXN1cmZhY2U6ICN7JHotem9vbS1wYW4taGl0LXN1cmZhY2V9O1xufVxuIiwiLyoqXG4gKiBTaGFyZWQga2V5ZnJhbWVzLlxuICpcbiAqIGByYWluYm93YCB1c2VkIHRvIGJlIGRlY2xhcmVkIEZJVkUgdGltZXMg4oCUIGlubGluZSBpbiBgQXBwLnNjc3NgIGFuZCBhZ2FpbiBpbiBlYWNoIG9mXG4gKiBgdmlld3MvQWJvdXQuc2Nzc2AsIGBGYXEuc2Nzc2AsIGBQcml2YWN5LnNjc3NgIGFuZCBgVGVybXMuc2Nzc2Ag4oCUIGFsbCBieXRlLWlkZW50aWNhbCwgYWxsXG4gKiBlbWl0dGVkIGludG8gdGhlIHNhbWUgYnVuZGxlLlxuICpcbiAqIOKaoO+4jyBUaGlzIHBhcnRpYWwgaXMgaW1wb3J0ZWQgYnkgYEFwcC5zY3NzYCBPTkxZLCBhbmQgdGhhdCBpcyBkZWxpYmVyYXRlLiBTYXNzIGBAaW1wb3J0YFxuICogSU5MSU5FUyBhIHBhcnRpYWwgaW50byBldmVyeSBmaWxlIHRoYXQgaW1wb3J0cyBpdCwgc28gaW1wb3J0aW5nIHRoaXMgZnJvbSB0aGUgdmlld1xuICogc3R5bGVzaGVldHMgYXMgd2VsbCB3b3VsZCBwdXQgdGhlIGR1cGxpY2F0ZXMgc3RyYWlnaHQgYmFjay4gT25lIGltcG9ydGVyID0gb25lIGNvcHkuXG4gKlxuICogVGhhdCBpcyBzYWZlIGJlY2F1c2Ugb2YgdGhlIG1vZHVsZSBncmFwaCwgbm90IGJ5IGx1Y2s6IGBBcHAudHN4YCBzdGF0aWNhbGx5IGltcG9ydHMgYm90aFxuICogYC4vQXBwLnNjc3NgIGFuZCBldmVyeSBvbmUgb2YgdGhvc2UgZm91ciB2aWV3IGNvbXBvbmVudHMsIGFuZCBub25lIG9mIHRoZW0gYXJlIGxhenlcbiAqIChvbmx5IGBBZG1pbmAgYW5kIGBNZW93TWl4YCB1c2UgYFJlYWN0LmxhenlgKS4gU28gYSB2aWV3IGNhbm5vdCByZW5kZXIgd2l0aG91dCBgQXBwLnNjc3NgXG4gKiBoYXZpbmcgYmVlbiBsb2FkZWQuIElmIGEgdmlldyBldmVyIGJlY29tZXMgbGF6aWx5IGxvYWRlZCwgb3IgZ2V0cyByZW5kZXJlZCBmcm9tIGl0cyBvd25cbiAqIGVudHJ5IHBvaW50LCBpdCB3aWxsIG5lZWQgaXRzIG93biBjb3B5IGFnYWluIOKAlCBhIG1pc3NpbmcgYEBrZXlmcmFtZXNgIGZhaWxzIFNJTEVOVExZLlxuICpcbiAqIOKaoO+4jyBOZWl0aGVyIHRoZSBzY3JlZW5zaG90IGhhcm5lc3MgKHdoaWNoIGZyZWV6ZXMgYW5pbWF0aW9ucykgbm9yIHRoZSBjb21wdXRlZC1zdHlsZVxuICogZmluZ2VycHJpbnQgKHdoaWNoIHJlY29yZHMgYGFuaW1hdGlvbi1uYW1lYCB3aGV0aGVyIG9yIG5vdCB0aGUgcnVsZSBleGlzdHMpIGNhbiBkZXRlY3QgYVxuICogbWlzc2luZyBrZXlmcmFtZS4gVXNlIGBlbGVtZW50LmdldEFuaW1hdGlvbnMoKWAg4oCUIGFuIGBhbmltYXRpb24tbmFtZWAgbWF0Y2hpbmcgbm9cbiAqIGBAa2V5ZnJhbWVzYCBydWxlIGNyZWF0ZXMgbm8gYW5pbWF0aW9uIG9iamVjdCBhdCBhbGwuXG4gKi9cblxuQGtleWZyYW1lcyByYWluYm93IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlO1xuICB9XG5cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDI1JTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgNTAlO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuXG4vLyBFeHRyYWN0ZWQgZnJvbSBwYWdlcy9hYm91dC5odG1sIGlubGluZSA8c3R5bGU+XG4vL1xuLy8g4pqg77iPIE9ubHkgd2hhdCBpcyBOT1QgYWxyZWFkeSBnbG9iYWwgbGl2ZXMgaGVyZS4gYEJyYW5kSGVhZGVyYCByZW5kZXJzIGA8aDEgY2xhc3M9XCJsb2dvXCI+YCBhbmRcbi8vIGBTdGF0aWNQYWdlQmFzZWAgd3JhcHMgaXQgaW4gYC5jb250YWluZXJgLCBzbyBgQXBwLnNjc3NgJ3MgZ2xvYmFsIGAubG9nb2AgYW5kIGAuZmVlZGJhY2tgXG4vLyBhbHJlYWR5IGFwcGx5IG9uIHRoaXMgcGFnZS4gUmVzdGF0aW5nIHRoZW0gd2FzIHB1cmUgZHVwbGljYXRpb24g4oCUIG1lYXN1cmVkIGlkZW50aWNhbCBhY3Jvc3Ncbi8vIGFsbCBmaXZlIHN1cmZhY2VzIGJlZm9yZSByZW1vdmFsIChzYW1lIGdyYWRpZW50LCBgZm9udC13ZWlnaHQ6IDcwMGAsIGBiYWNrZ3JvdW5kLWNsaXA6IHRleHRgLFxuLy8gYGFuaW1hdGlvbjogcmFpbmJvd2ApLiBgQGtleWZyYW1lcyByYWluYm93YCBsaXZlcyBpbiBgX2FuaW1hdGlvbnMuc2Nzc2AsIGltcG9ydGVkIGJ5XG4vLyBgQXBwLnNjc3NgLCB3aGljaCBpcyBhbHdheXMgbG9hZGVkIGJlY2F1c2UgYEFwcC50c3hgIHN0YXRpY2FsbHkgaW1wb3J0cyB0aGlzIHZpZXcgYW5kIGl0LlxuLnBhZ2UtYWJvdXQge1xuICAucm9vdCxcbiAgLnJvb3QgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgaDIsXG4gIGgzIC5jdGEge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxuXG4gIC5jb250ZW50IHtcbiAgICB3aWR0aDogNjAwcHg7XG4gICAgbWFyZ2luOiA1cHggYXV0bztcbiAgfVxuXG4gIC8vIFRoZSBib3JkZXIgaXMgdGhlIG9ubHkgdGhpbmcgdGhpcyBwYWdlIGFkZHM7IHRoZSByZXN0IG9mIGAuZmVlZGJhY2tgIGlzIGdsb2JhbC5cbiAgLmZlZWRiYWNrIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q1ZDVkNTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcblxuQGtleWZyYW1lcyByYWluYm93IHtcbiAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTsgfVxuICA1MCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDI1JTsgfVxuICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCA1MCU7IH1cbn1cblxuLy8gRXh0cmFjdGVkIGZyb20gcGFnZXMvcHJpY2luZy5odG1sIGlubGluZSA8c3R5bGU+XG4ucGFnZS1wcmljaW5nIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMzMzM7XG5cbiAgJi5jb250YWluZXIgeyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG5cbiAgLnJvb3QsXG4gIC5yb290IGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuICAubG9nbyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZyx2aW9sZXQsaW5kaWdvLCMwMGYsZ3JlZW4sI2ZmMCxvcmFuZ2UscmVkLCNkMDQzNDMsIzNkNzczZCwjZDBhZTBiLCMzOTYxYWIsI2EyMmVhMik7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAzMTQlIDMxNCU7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBhbmltYXRpb246IHJhaW5ib3cgMTFzIGVhc2UgaW5maW5pdGU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIC5wcmljaW5nLXBhZ2UgLmNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG5cbiAgLmZlZWRiYWNrIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtbWQ7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIC8qIFByaWNpbmcgQ2FyZHMgKi9cbiAgLnByaWNpbmctZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW46IDMwcHggMDtcbiAgfVxuXG4gIC5wbGFuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U4ZThlODtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCBib3gtc2hhZG93IDAuMnMsIGJvcmRlci1jb2xvciAwLjJzO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwMXB4KSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4wOCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2NjYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDdXJyZW50IHBsYW4g4oCUIGFsd2F5cy12aXNpYmxlIGJvcmRlclxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzMzMztcblxuICAgICAgJjpob3ZlciB7IGJvcmRlci1jb2xvcjogIzMzMzsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEZlYXR1cmVkIChQcm8pIOKAlCB0aW50ZWQgY2FyZFxuICAucGxhbi0tZmVhdHVyZWQge1xuICAgIGJhY2tncm91bmQ6ICNmM2YxZmU7XG4gICAgYm9yZGVyLWNvbG9yOiAjZDhkMmY3O1xuXG4gICAgJi5hY3RpdmUgeyBib3JkZXItY29sb3I6ICM2NzU5ZDY7IH1cbiAgfVxuXG4gIC5wbGFuLWhlYWQgeyBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbiAgLnBsYW4tbmFtZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMHB4O1xuICB9XG5cbiAgLnBsYW4tbmFtZSB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICB9XG5cbiAgLnBsYW4tcHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgfVxuXG4gICAgLy8gVGlueSBjdXJyZW5jeSBtYXJrLCB0b3AtYWxpZ25lZCB0byB0aGUgYmlnIG51bWJlciAobGlrZSB0aGUgcmVmZXJlbmNlKVxuICAgIC5wbGFuLWN1ciB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBjb2xvcjogIzFhMWExYTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5wbGFuLWRlc2Mge1xuICAgIGNvbG9yOiAjNjY2O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW46IDhweCAwIDA7XG4gIH1cblxuICAvLyBDVEEgYXJlYVxuICAucGxhbi1jdGEge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG5cbiAgICAmLWVycm9yIHtcbiAgICAgIGNvbG9yOiAjYzYyODI4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIEZlYXR1cmUgbGlzdFxuICAucGxhbi1mZWF0dXJlcy10aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gIC5wbGFuLWZlYXR1cmVzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcblxuICAgIGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMjZweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAgICYueWVzOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlxcMjcxM1wiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGNvbG9yOiAjNjc1OWQ2O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuXG4gICAgICAmLm5vIHtcbiAgICAgICAgY29sb3I6ICNhYWE7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiBcIlxcMjAxNFwiO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2F2ZSBwaWxsIOKAlCBpbmxpbmUgYmFkZ2UgbmV4dCB0byB5ZWFybHkgcHJpY2VcbiAgLnNhdmUtcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICMyMmE3MjI7XG4gICAgcGFkZGluZzogMnB4IDdweDtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIH1cblxuICAvLyBDVEEgYnV0dG9ucyDigJQgZnVsbCB3aWR0aCBwaWxsc1xuICAuY3RhLWJ0biB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzLCBjb2xvciAwLjJzO1xuXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gT3V0bGluZSAoZGVmYXVsdCAvIG5vbi1mZWF0dXJlZClcbiAgLmN0YS1vdXRsaW5lIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMGQwZDA7XG5cbiAgICAmOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiAjODg4OyBiYWNrZ3JvdW5kOiAjZmFmYWZhOyB9XG4gIH1cblxuICAvLyBBY2NlbnQgKFBybylcbiAgLmN0YS1hY2NlbnQge1xuICAgIGJhY2tncm91bmQ6ICM2NzU5ZDY7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzY3NTlkNjtcblxuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjNTU0NmM5OyB9XG4gIH1cblxuICAvLyBDdXJyZW50IHBsYW4gaW5kaWNhdG9yXG4gIC5jdGEtY3VycmVudCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgfVxuXG4gIC8vIEZvdW5kaW5nIG5vdGUgQ1RBIOKAlCBjb21wYWN0IChvdmVycmlkZXMgZnVsbC13aWR0aCBjdGEtYnRuIGZvciB0aGUgaW5saW5lIHJvdylcbiAgLmN0YS1mb3VuZGluZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNiMzg2MDA7XG4gICAgY29sb3I6ICNiMzg2MDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2ZmZmJlNjsgfVxuICB9XG5cbiAgLy8gSW50ZXJ2YWwgdG9nZ2xlIOKAlCBjb21wYWN0IHBpbGxcbiAgLmludGVydmFsLXRvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZ2FwOiAycHg7XG4gICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDJweDtcbiAgfVxuXG4gIC5pbnRlcnZhbC1idG4ge1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogIzg4ODtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzLCBjb2xvciAwLjE1cztcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjpub3QoLmFjdGl2ZSkgeyBjb2xvcjogIzU1NTsgfVxuICB9XG5cbiAgLmZvdW5kaW5nLW5vdGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmZiZTY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZTA2NjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIG1hcmdpbjogMzBweCAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIHN0cm9uZyB7IGNvbG9yOiAjYjM4NjAwOyB9XG4gIH1cblxuICBoMiB7IG1hcmdpbi10b3A6IDQwcHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgLnN1YnRpdGxlIHsgY29sb3I6ICM2NjY7IG1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuICAvLyBSZXNwb25zaXZlOiBzdGFjayB0aGUgY2FyZHNcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDgwMHB4KSB7XG4gICAgLnByaWNpbmctZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG4gIH1cblxuICAvLyBNb2JpbGUgdHdlYWtzXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgIC5sb2dvIHsgZm9udC1zaXplOiAyOHB4OyB9XG4gICAgLnBsYW4tcHJpY2UgeyBmb250LXNpemU6IDI4cHg7IH1cbiAgICAuZm91bmRpbmctbm90ZSB7IHBhZGRpbmc6IDEycHggMTZweDsgfVxuICAgIGgyIHsgZm9udC1zaXplOiAyMHB4OyBtYXJnaW4tdG9wOiAzMHB4OyB9XG4gICAgLmNvbnRlbnQgeyBwYWRkaW5nOiAwIDE2cHg7IH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcblxuLy8gRXh0cmFjdGVkIGZyb20gcGFnZXMvZmFxLmh0bWwgaW5saW5lIDxzdHlsZT5cbi8vXG4vLyDimqDvuI8gT25seSB3aGF0IGlzIE5PVCBhbHJlYWR5IGdsb2JhbCBsaXZlcyBoZXJlIOKAlCBzZWUgdGhlIG5vdGUgaW4gYEFib3V0LnNjc3NgLiBUaGUgYC5sb2dvYFxuLy8gZ3JhZGllbnQgYW5kIG1vc3Qgb2YgYC5mZWVkYmFja2AgY29tZSBmcm9tIGBBcHAuc2Nzc2AuIFRoaXMgcGFnZSBrZWVwcyBhIGAubG9nb2AgYmxvY2sgZm9yXG4vLyBPTkUgZGVjbGFyYXRpb246IGBtYXJnaW4tYm90dG9tYCwgd2hpY2ggaXMgdGhlIHNpbmdsZSBtZWFzdXJlZCBkaWZmZXJlbmNlIGJldHdlZW4gdGhpc1xuLy8gc3VyZmFjZSBhbmQgdGhlIG90aGVyIGZvdXIgKDEwcHggaGVyZSB2cyB0aGUgM3B4IHRoZSBnbG9iYWwgYGgxYCBydWxlIGdpdmVzKS5cbi5wYWdlLWZhcSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMzMzO1xuXG4gIC5yb290LFxuICAucm9vdCBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAubG9nbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIC5jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDcwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5mZWVkYmFjayB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICAuZmFxLWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDAgMCA4cHggMDtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgICAgY29sb3I6ICM0NDQ7XG4gICAgfVxuICB9XG5cbiAgLnRpZXItdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgdGgsXG4gICAgdGQge1xuICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIH1cblxuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgIHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuICB9XG5cbiAgLnllcyB7XG4gICAgY29sb3I6ICMyMmE3MjI7XG4gIH1cblxuICAubm8ge1xuICAgIGNvbG9yOiAjOTk5O1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgLmxvZ28ge1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgIH1cblxuICAgIC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICB9XG5cbiAgICAudGllci10YWJsZSB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtbWQ7XG5cbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nOiA4cHggNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vdmFyaWFibGVzJztcblxuLy8gRXh0cmFjdGVkIGZyb20gcGFnZXMvdGMuaHRtbCBpbmxpbmUgPHN0eWxlPlxuLy9cbi8vIOKaoO+4jyBPbmx5IHdoYXQgaXMgTk9UIGFscmVhZHkgZ2xvYmFsIGxpdmVzIGhlcmUg4oCUIHNlZSB0aGUgbm90ZSBpbiBgQWJvdXQuc2Nzc2AuIFRoZSBgLmxvZ29gXG4vLyBncmFkaWVudCBhbmQgbW9zdCBvZiBgLmZlZWRiYWNrYCBjb21lIGZyb20gYEFwcC5zY3NzYC5cbi5wYWdlLXRlcm1zIHtcbiAgLnJvb3QsXG4gIC5yb290IGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIGgyLFxuICBoMyAuY3RhIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1hcmdpbjogNXB4IGF1dG87XG4gIH1cblxuICAuZmVlZGJhY2sge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi92YXJpYWJsZXMnO1xuXG4vLyBFeHRyYWN0ZWQgZnJvbSBwYWdlcy9wcml2YWN5Lmh0bWwgaW5saW5lIDxzdHlsZT5cbi8vXG4vLyDimqDvuI8gT25seSB3aGF0IGlzIE5PVCBhbHJlYWR5IGdsb2JhbCBsaXZlcyBoZXJlIOKAlCBzZWUgdGhlIG5vdGUgaW4gYEFib3V0LnNjc3NgLiBUaGUgYC5sb2dvYFxuLy8gZ3JhZGllbnQgYW5kIG1vc3Qgb2YgYC5mZWVkYmFja2AgY29tZSBmcm9tIGBBcHAuc2Nzc2AuXG4ucGFnZS1wcml2YWN5IHtcbiAgLnJvb3QsXG4gIC5yb290IGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIGgyLFxuICBoMyAuY3RhIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1hcmdpbjogNXB4IGF1dG87XG4gIH1cblxuICAuZmVlZGJhY2sge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDVkNWQ1O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/