/* css/reset.css */
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin-block-end: 0;
}
ul[role=list],
ol[role=list] {
  list-style: none;
}
body {
  min-height: 100vh;
  line-height: 1.5;
}
h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1;
}
h1,
h2,
h3,
h4 {
  text-wrap: balance;
}
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}
img,
picture {
  max-width: 100%;
  display: block;
}
input,
button,
textarea,
select {
  font-family: inherit;
  font-size: inherit;
}
textarea:not([rows]) {
  min-height: 10em;
}
:target {
  scroll-margin-block: 5ex;
}

/* css/global-styles.css */
* {
  margin: 0;
}
body {
  background: var(--color-base-50);
  color: var(--color-base-900);
  font-size: var(--font-size-0);
  font-family: var(--font-base);
  line-height: var(--leading-standard);
  font-size-adjust: from-font;
  margin: 0;
  padding-block-start: va r(--space-3xl);
}
:is(h1, h2, h3, h4) {
  line-height: var(--leading-fine);
  text-wrap: balance;
}
h1 {
  font-size: var(--font-size-4);
  max-width: 20ch;
}
h2 {
  font-size: var(--font-size-3);
  max-width: 35ch;
}
h3 {
  font-size: var(--font-size-2);
  max-width: 35ch;
}
:is(h4, h5, h6) {
  font-size: var(--font-size-1);
}
small {
  font-size: var(--font-size-0);
}
ins {
  text-decoration: none;
  background: var(--color-primary);
  color: var(--color-dark);
  padding-inline: 0.3em;
}
:is(code, kbd, samp) {
  font-family: var(--font-mono);
  padding: 0.2em 0.2em 0.05em 0.2em;
  hyphens: none;
  tab-size: 2;
  text-align: left;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  box-decoration-break: clone;
}
@supports not (font-size-adjust: from-font) {
  :is(code, kbd, samp) {
    font-size: 0.8em;
  }
}
pre:has(code) {
  overflow-x: auto;
  padding: var(--space-xs);
  border-radius: var(--space-s);
}
pre code {
  border: none;
  background: none;
  padding: 0;
}
ul:not([class]) {
  padding-inline-start: calc(var(--font-size-1) + var(--space-3xs));
  list-style-type: disc;
}
ul:not([class]) > li {
}
:is(ol, ul):not([class]) li + * {
  margin-block-start: var(--flow-space, var(--space-2xs));
}
ul ::marker {
  font-size: 0.8lh;
}
ol ::marker {
  font-size: 1em;
  font-weight: var(--font-bold);
}
blockquote {
  margin-inline: 0;
  color: var(--color-light);
}
blockquote footer {
  margin-block-start: var(--space-s);
  color: var(--color-primary);
  font-size: var(--size-step-0);
}
blockquote q {
  font-style: normal;
}
:is(video, iframe[src*="youtube"], iframe[src*="vimeo"]) {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
}
img {
  height: auto;
  max-width: 100%;
  display: block;
}
figcaption {
  padding-block-start: 0.5em;
  font-size: var(--size-step-0);
  font-family: monospace;
}
table {
  border: var(--stroke);
  border-collapse: collapse;
  width: 100%;
}
th {
  text-align: left;
  font-weight: var(--font-bold);
  line-height: var(--leading-fine);
}
thead th {
  padding-block: var(--space-s);
}
td,
th {
  padding: var(--space-xs) var(--space-s);
}
th:not(:only-of-type) {
  border-block-end: var(--stroke);
}
th:only-of-type {
  border-inline-end: var(--stroke);
}
:is(th, td) ~ :is(th, td) {
  border-inline-start: var(--stroke);
}
tr + tr :is(th, td) {
  border-block-start: var(--stroke);
}
caption {
  caption-side: bottom;
  margin-block-start: var(--space-s);
}
a:not([class]):hover {
  text-underline-offset: 0.1lh;
}
:is(h1, h2, h3, h4) a:not([class]) {
  text-decoration-thickness: 0.1ex;
  text-underline-offset: 0.2ex;
}
:is(h1, h2, h3, h4) a:not([class]):hover {
  text-underline-offset: 0.3ex;
}
:focus {
  outline: none;
}
:focus-visible {
  outline: 2px solid var(--focus-color, currentColor);
  outline-offset: var(--focus-offset, 0.2lh);
}
@supports (-moz-appearance: none) {
  :root {
    --focus-offset: 0.08em;
  }
}
:target {
  scroll-margin-block: 5lh;
}
hr {
  border: none;
  border-block-start: var(--stroke);
  margin-block: var(--flow-space, var(--space-xl));
}
label {
  line-height: var(--leading-fine);
  font-weight: var(--font-medium);
}
label::after {
  content: "\a";
  white-space: pre;
}
label:has(input) {
  display: flex;
  align-items: baseline;
  gap: var(--space-s);
  font-weight: var(--font-normal);
}
label:has(input) + label:has(input) {
  --flow-space: var(--space-s-m);
}
label:has(input) input {
  transform: translateY(-0.1ex);
}
input:disabled {
  background: var(--color-mid);
}
input:disabled,
label input:disabled + * {
  cursor: not-allowed;
}
fieldset {
  border: var(--stroke);
  padding: var(--space-s);
}
legend {
  font-weight: var(--font-medium);
  padding-inline: var(--space-xs);
}
summary {
  font-weight: var(--font-bold);
  cursor: pointer;
}
details[open] summary {
  margin-block-end: var(--space-s);
}

/* css/compositions.css */
.flow > * + * {
  margin-block-start: var(--flow-space, var(--space-l));
}
.flow-space-m {
  --flow-space: var(--space-m);
}
.flow-space-xs {
  --flow-space: var(--space-xs);
}
.flow-space-s {
  --flow-space: var(--space-s);
}
.flow-space-xl {
  --flow-space: var(--space-xl);
}

/* css/blocks/master-header.css */
.master-header {
  max-width: 60ch;
  h1 { color: var(--color-base-950); } --flow-space: var(--space-3xs);
  .tagline {
    color: var(--color-accent);
    font-size: var(--font-size-2);
    font-weight: var(--font-bold);
  }
  .tagline + p {
    --flow-space: var(--space-xs);
  }
}

/* css/blocks/prose.css */
.prose {
  --flow-space: var(--space-m);
  max-width: 60ch;
  line-height: 1.5;
  pre code { font-size: var(--font-size--1); } :is(h1, h2, h3) { overflow-wrap: anywhere; hyphens: auto; } :is(p, li, dl, figcaption, blockquote) { max-width: 60ch; text-wrap: pretty; } :is(h1, h2, h3, h4, header) + *:not([class]) { --flow-space: var(--space-s); } * + :is(h1, h2, h3, h4):not([class]) { --flow-space: var(--space-l); } :is(ul, ol):not([class]) li + li, :is(ul, ol):not([class]) li > :is(ol, ul) { --flow-space: var(--space-2xs); } hr { --flow-space: var(--space-2xl); } :is(img, a > img, picture, video) { border: var(--stroke-solid); };
}

/* css/blocks/slide.css */
.slide {
  font-size: var(--font-size-1);
  &:first-child h1 {
    font-size: calc(1.5 * var(--font-size-6));
    padding-block-end: var(--space-2xl);
  }
  display: none;
  li + li { margin-top: 0.6rem; } &[data-active] { display: grid; place-content: center; } min-height: 100%;
  > h1 {
    margin: 0 auto;
    font-size: var(--font-size-5);
    text-align: center;
    font-family: "Maple";
    background: linear-gradient(90deg, var(--color-accent), var(--color-highlight), var(--color-danger));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradient 15s ease infinite;
    background-size: 500% auto;
  }
  h2 { font-size: var(--font-size-5); } pre { background-color: var(--color-base-50); };
}
.slide:has(.codeblock code[data-active]) .codeblock:not(:has(code[data-active])) {
  opacity: 55%;
}
.slide pre:has(code[data-active]):not(:has(svg)) {
  position: relative;
  &::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 10px 10px;
    border-color: transparent transparent var(--color-accent) transparent;
  }
  code { outline: none; };
}
.slide .mermaid svg {
  max-height: 75vh;
}
.slide .mermaid rect.note {
  fill: var(--color-highlight) !important;
  stroke: none !important;
}
.language-css {
  span[data-highlight="punctuation.bracket"] { color: #997 !important; };
}
article.markdown .slide .takeaway {
  max-width: 80vw;
  top: -6rem;
  :has(li.active) li:not(.active) {
    opacity: 60%;
  }
  :has(li.active) li.active ~ li:not(.active) {
    display: none;
  }
  ol { height: 376px; } li + li { margin-top: 1.6rem; } li.active { position: relative; font-style: bold; } li.active:nth-child(3)::before { content: "\1f35d" !important; } li.active::before { content: "\1f449"; position: absolute; margin-right: 1rem; font-size: 3rem; left: -6rem; bottom: -1.2rem; --bounce: 10%; animation: bouncyLeftToRight 1s cubic-bezier(0.5, 1.5, 0.5, 1.5) infinite; };
}
[data-line] {
  transition: background-color 0.3s;
  border-radius: 12px;
  padding: 2px;
  padding-right: 4px;
  &[data-active] {
    background-color: #f1ebff;
  }
}
code:has([data-line][data-active]) [data-line]:not([data-active]) {
  opacity: 60%;
}
.tabs {
  border: 1px solid black;
  padding: 22px;
  border-radius: 12px;
  width: 20vw;
  background-color: var(--color-base-50);
  .tab {
    font-size: 1.2em;
    &:not([data-active]) {
      background-color: var(--bg-secondary);
    }
    &:first-child {
      border-radius: 12px 0 0 12px;
    }
    &:last-child {
      border-radius: 0 12px 12px 0;
    }
  }
  .group {
    display: flex;
    flex-direction: row;
    border-radius: 20px;
    place-content: center;
  }
  .panel {
    display: none;
    &[data-active] {
      padding-top: 12px;
      display: block;
    }
  }
}
.bounce {
  --bounce: 25%;
  animation: bouncyLeftToRight 0.3s cubic-bezier(0.5, 1.5, 0.5, 1.5) infinite;
}
@keyframes bouncyLeftToRight {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(var(--bounce));
  }
}

/* css/blocks/post-entry.css */
.post-entry {
  header { font-size: var(--font-size-1); font-weight: bold; };
}
.readmore {
  font-weight: bold;
  span { font-family: var(--font-mono); font-size: var(--font-size-1); };
}

/* css/tokens/font.css */
:root {
  --font-size--2: clamp(0.7035rem, 0.8131rem + -0.1414vw, 0.7813rem);
  --font-size--1: clamp(0.9375rem, 0.9374rem + 0.0004vw, 0.9377rem);
  --font-size-0: clamp(1.125rem, 1.0739rem + 0.2273vw, 1.25rem);
  --font-size-1: clamp(1.35rem, 1.2206rem + 0.575vw, 1.6663rem);
  --font-size-2: clamp(1.62rem, 1.3741rem + 1.0929vw, 2.2211rem);
  --font-size-3: clamp(1.944rem, 1.5281rem + 1.8486vw, 2.9607rem);
  --font-size-4: clamp(2.3328rem, 1.6726rem + 2.9343vw, 3.9467rem);
  --font-size-5: clamp(2.7994rem, 1.7924rem + 4.4755vw, 5.2609rem);
  --font-size-6: clamp(3.3592rem, 2.7828rem + 2.5621vw, 4.7684rem);
  --space-3xs: clamp(0.3125rem, 0.3125rem + 0vw, 0.3125rem);
  --space-2xs: clamp(0.5625rem, 0.5369rem + 0.1136vw, 0.625rem);
  --space-xs: clamp(0.875rem, 0.8494rem + 0.1136vw, 0.9375rem);
  --space-s: clamp(1.125rem, 1.0739rem + 0.2273vw, 1.25rem);
  --space-m: clamp(1.6875rem, 1.6108rem + 0.3409vw, 1.875rem);
  --space-l: clamp(2.25rem, 2.1477rem + 0.4545vw, 2.5rem);
  --space-xl: clamp(3.375rem, 3.2216rem + 0.6818vw, 3.75rem);
  --space-2xl: clamp(4.5rem, 4.2955rem + 0.9091vw, 5rem);
  --space-3xl: clamp(6.75rem, 6.4432rem + 1.3636vw, 7.5rem);
  --space-3xs-2xs: clamp(0.3125rem, 0.1847rem + 0.5682vw, 0.625rem);
  --space-2xs-xs: clamp(0.5625rem, 0.4091rem + 0.6818vw, 0.9375rem);
  --space-xs-s: clamp(0.875rem, 0.7216rem + 0.6818vw, 1.25rem);
  --space-s-m: clamp(1.125rem, 0.8182rem + 1.3636vw, 1.875rem);
  --space-m-l: clamp(1.6875rem, 1.3551rem + 1.4773vw, 2.5rem);
  --space-l-xl: clamp(2.25rem, 1.6364rem + 2.7273vw, 3.75rem);
  --space-xl-2xl: clamp(3.375rem, 2.7102rem + 2.9545vw, 5rem);
  --space-2xl-3xl: clamp(4.5rem, 3.2727rem + 5.4545vw, 7.5rem);
  --leading-fine: 1.2;
  --font-mono: "Maple";
  --stroke-width: 1px;
  --stroke: var(--stroke-width) dashed var(--color-mid);
  --font-bold: bold;
}
.font-size-0 {
  font-size: var(--font-size-0);
}
.font-size-3 {
  font-size: var(--font-size-3);
}

/* css/tokens/colors.css */
:root {
  --color-base-50: oklch(0.952 0.012 286.27);
  --color-base-100: oklch(0.905 0.022 283.14);
  --color-base-200: oklch(0.814 0.038 280.52);
  --color-base-300: oklch(0.714 0.056 277.88);
  --color-base-400: oklch(0.63 0.065 273.05);
  --color-base-500: oklch(0.545 0.071 270.36);
  --color-base-600: oklch(0.472 0.051 266.3);
  --color-base-700: oklch(0.382 0.033 264.07);
  --color-base-800: oklch(0.292 0.02 260.62);
  --color-base-900: oklch(0.19 0.009 255.63);
  --color-base-950: oklch(0.128 0.003 245.79);
  --purple: #8250df;
  --light-purple: #c6a8ff;
  --light-green: #8dffb3;
  --red: #cf222e;
  --color-base-50: oklch(0.982 0.004 271.54);
  --color-base-100: oklch(0.931 0.011 269.6);
  --color-base-200: oklch(0.836 0.025 270.32);
  --color-base-300: oklch(0.753 0.034 266.1);
  --color-base-400: oklch(0.659 0.041 265.69);
  --color-base-500: oklch(0.568 0.04 264.19);
  --color-base-600: oklch(0.503 0.046 264.7);
  --color-base-700: oklch(0.429 0.046 266.71);
  --color-base-800: oklch(0.366 0.044 266.79);
  --color-base-900: oklch(0.288 0.038 269.11);
  --color-base-950: oklch(0.256 0.039 270.72);
  --font-primary: var(--color-base-900);
}

/* css/app.css */
@font-face {
  font-family: "Maple";
  font-style: monospace;
  font-weight: 400;
  src: url(/fonts/maple/MapleMono-Regular-2e40aae10d4f732d54df4b3624c50891.otf?vsn=d) format("opentype");
  font-display: swap;
}
@font-face {
  font-family: "Maple";
  font-style: italic;
  font-weight: 400;
  src: url(/fonts/maple/MapleMono-Italic-1c215ae8c99f377f0d2bf43620a5cc11.otf?vsn=d) format("opentype");
  font-display: swap;
}
:root {
  view-transition-name: root;
  --color-accent: var(--purple);
  --color-accent-light: var(--light-purple);
  --color-highlight: var(--light-green);
  --color-danger: var(--red);
  --color-dark: #231f1f;
  --white: #fbfefe;
  --off-white: #f0f0f0;
  --main-content: 720px;
  --margin-sm: 1rem;
  --background-z: -100;
  --tablet: 768px;
  --header-padding: 0.6rem 0;
  --icon-size: 0.2rem;
}
body {
  margin: 0 auto;
  padding: var(--gutter);
  font-family: "Noto Sans", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings: "width" 100;
  color: var(--font-primary);
  z-index: var(--background-z);
  --dot: rgba(0, 0, 0, 0.05);
  background-image: radial-gradient(var(--dot) 10%, transparent 11%), radial-gradient(var(--dot) 10%, transparent 11%);
  background-size: 10px 10px;
  background-position: 0 0, 30px 30px;
  background-repeat: repeat;
}
.layout {
  background-color: var(--color-base-50);
  margin: 0 auto;
  max-width: 980px;
  display: grid;
  place-content: center;
  &:has(.presentation-slides) {
    max-width: 100vw;
    padding-inline: 32px;
  }
}
h1,
h2,
h3,
h4,
h5,
h6,
blockquote {
  text-wrap: balance;
}
.presentation-slides {
  display: none;
}
.slides-mobile-warning {
  display: block;
  display: grid;
  height: 100%;
  place-content: center;
  font-size: 1.6rem;
}
@media only screen {
  :root {
    --gutter: var(--space-s);
    --font-code: 0.8rem;
    --text-line-height: 1.5;
  }
  main {
    padding: var(--gutter);
  }
}
a.logo {
  display: block;
  color: var(--font-primary);
  margin-left: 4px;
  padding: var(--gutter);
  padding-bottom: 0;
  font-family: "Maple";
  font-style: italic;
  font-weight: bold;
  text-decoration-thickness: 0.2ex;
  text-underline-offset: 0.2ex;
  text-decoration-color: var(--color-accent);
  &:hover {
    color: var(--color-accent);
  }
}
@media only screen and (max-width: 720px) {
  :root {
    --gutter: var(--space-s);
  }
  main {
    padding: 0;
    width: 90vw;
  }
  a.logo {
    margin: 2px;
    padding: 0;
    padding-bottom: var(--space-s);
  }
}
@media only screen and (min-width: 64.063em) {
  :root {
    --gutter: 1rem 2rem;
    --font-code: 1rem;
    --text-line-height: 1.45;
    --header-padding: 1rem 0;
  }
  .presentation-slides {
    display: block;
  }
  .slides-mobile-warning {
    display: none;
  }
}
main:has(.slide) {
  height: calc(100vh - 140px);
  article { height: 96%; };
}
.round {
  border-radius: 100%;
}
:root:has(.slide) {
  font-size: 1.25rem;
  .slide:has(.busy) {
    --font-code: 1rem;
  }
  .slide:has(.relaxed) {
    --font-code: 2rem;
  }
}
article.markdown @keyframes gradient {
  0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; };
}
article.markdown,
main {
  position: relative;
  details > *:not(:is(summary)) { margin-inline: 1rem; } details { padding: 0.6rem; background-color: var(--bg-secondary); } &::before { position: absolute; width: 100%; height: 100%; content: ""; z-index: var(--background-z); background-color: var(--bg-primary); } u { --rotate: 2deg; --skew: -25deg; --bottom: -0.5px; --left: 0px; position: relative; text-decoration: none; font-style: italic; font-family: Maple; } *:nth-child(2) u { --bottom: 1px; --rotate: -8deg; --skew: 36deg; } *:nth-child(6) u { --left: -5px; --bottom: 5px; --skew: 40deg; --rotate: 12deg; } :not(h2) > u::before { position: absolute; content: ""; background-color: var(--color-highlight); width: 100%; height: 0.45rem; bottom: var(--bottom); z-index: -1; transform: skew(var(--skew)) rotate(var(--rotate)); } code .ahl-comment { font-style: italic; } :not(pre) > code { text-wrap: nowrap; font-size: calc(var(--font-size-0) - 2px); background-color: var(--color-base-100); padding: 3px 6px; corner-shape: squircle; border-radius: 10px; } input { font-size: 1rem; padding: 0.3rem 0.8rem; border-radius: 5px; border: 1px solid black; * + & { margin-top: 0.4rem; } };
}
header a {
  text-decoration: none;
}
header a,
main a {
  color: unset;
}
main a:not([class]) {
  text-decoration: underline !important;
  text-decoration-thickness: 0.1rem !important;
  text-underline-offset: 0.1rem;
  text-decoration-color: var(--color-accent) !important;
  transition: color 0.2s, text-decoration-color 0.5s;
}
a:not([class]),
.markdown u {
  text-decoration-thickness: max(0.08em, 1px);
  text-underline-offset: 0.12rem;
}
.split {
  display: flex;
  flex-wrap: wrap;
  row-gap: 1rem;
  column-gap: 1rem;
  justify-content: space-between;
  &[data-evenly] {
    justify-content: space-evenly;
  }
  &.wide {
    column-gap: 4rem;
  }
  & + & {
    margin-top: 1rem;
  }
}
.demo {
  padding: 1rem 1.2rem;
  border: 1.5px solid var(--font-primary);
  border-radius: 5px;
  .title {
    font-weight: bold;
  }
}
.spacer {
  padding: 0.8rem;
}
.mermaid {
  &:not(:has(svg)) {
    display: none;
  }
  [class^=messageLine][data-active] {
    stroke-width: 2.6 !important;
    stroke: var(--color-accent) !important;
  }
  &:has([data-active]) [class^=messageLine]:not([data-active]) {
    stroke: #999 !important;
  }
  &:not(:has([data-active])) g:last-of-type ~ *,
  [data-active] ~ * {
    display: none !important;
  }
}
.flash {
  z-index: 999;
  position: fixed;
  top: 20px;
  right: 20px;
  border-radius: 8px;
  min-width: 10vw;
  padding: 16px;
  background-color: var(--color-danger);
}
.note {
  padding: 1rem 2rem;
  padding-left: 0.6rem;
  font-size: 1.4rem;
  border-left: 12px solid var(--color-accent-light);
  background-color: #fdeaff;
  margin-top: 1.4rem;
  display: flex;
  gap: 0.5rem;
  .slide & .content {
    transition: opacity 0.2s;
    opacity: 0;
  }
  &[data-active] .content {
    opacity: 1;
  }
  .icon {
    svg { width: 2rem; } font-size: var(--icon-size);
    color: var(--color-accent);
  }
}
.note u::before,
.note code::before {
  display: none !important;
}
.home > * + * {
  --flow-space: var(--space-xl);
}
.slide pre {
  overflow: hidden !important;
  padding: var(--space-s);
  border-radius: 8px;
  border: 1px solid var(--color-base-400);
}
:has(.slide[data-active]:has(.cat)) {
  background-color: pink !important;
}
.slide[data-active]:has(.cat) {
  .cat {
    border-radius: 10%;
  }
}
@view-transition { navigation: auto; }
::view-transition-group(*),
::view-transition-old(*),
::view-transition-new(*) {
  animation-duration: 0.3s;
  animation-fill-mode: forwards;
}
button:not([class]) {
  background-color: var(--color-accent-light);
  font-style: italic;
  font-family: Maple;
  border: 1px solid black;
  border-radius: 5px;
  padding: 0.3em 0.8em;
  &:hover {
    cursor: pointer;
  }
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vYXNzZXRzL2Nzcy9yZXNldC5jc3MiLCAiLi4vLi4vLi4vYXNzZXRzL2Nzcy9nbG9iYWwtc3R5bGVzLmNzcyIsICIuLi8uLi8uLi9hc3NldHMvY3NzL2NvbXBvc2l0aW9ucy5jc3MiLCAiLi4vLi4vLi4vYXNzZXRzL2Nzcy9ibG9ja3MvbWFzdGVyLWhlYWRlci5jc3MiLCAiLi4vLi4vLi4vYXNzZXRzL2Nzcy9ibG9ja3MvcHJvc2UuY3NzIiwgIi4uLy4uLy4uL2Fzc2V0cy9jc3MvYmxvY2tzL3NsaWRlLmNzcyIsICIuLi8uLi8uLi9hc3NldHMvY3NzL2Jsb2Nrcy9wb3N0LWVudHJ5LmNzcyIsICIuLi8uLi8uLi9hc3NldHMvY3NzL3Rva2Vucy9mb250LmNzcyIsICIuLi8uLi8uLi9hc3NldHMvY3NzL3Rva2Vucy9jb2xvcnMuY3NzIiwgIi4uLy4uLy4uL2Fzc2V0cy9jc3MvYXBwLmNzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogQm94IHNpemluZyBydWxlcyAqL1xuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogUHJldmVudCBmb250IHNpemUgaW5mbGF0aW9uICovXG5odG1sIHtcbiAgLW1vei10ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG59XG5cbi8qIFJlbW92ZSBkZWZhdWx0IG1hcmdpbiBpbiBmYXZvdXIgb2YgYmV0dGVyIGNvbnRyb2wgaW4gYXV0aG9yZWQgQ1NTICovXG5ib2R5LCBoMSwgaDIsIGgzLCBoNCwgcCxcbmZpZ3VyZSwgYmxvY2txdW90ZSwgZGwsIGRkIHtcbiAgbWFyZ2luLWJsb2NrLWVuZDogMDtcbn1cblxuLyogUmVtb3ZlIGxpc3Qgc3R5bGVzIG9uIHVsLCBvbCBlbGVtZW50cyB3aXRoIGEgbGlzdCByb2xlLCB3aGljaCBzdWdnZXN0cyBkZWZhdWx0IHN0eWxpbmcgd2lsbCBiZSByZW1vdmVkICovXG51bFtyb2xlPSdsaXN0J10sXG5vbFtyb2xlPSdsaXN0J10ge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBTZXQgY29yZSBib2R5IGRlZmF1bHRzICovXG5ib2R5IHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi8qIFNldCBzaG9ydGVyIGxpbmUgaGVpZ2h0cyBvbiBoZWFkaW5ncyBhbmQgaW50ZXJhY3RpdmUgZWxlbWVudHMgKi9cbmgxLCBoMiwgaDMsIGg0LFxuYnV0dG9uLCBpbnB1dCwgbGFiZWwge1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4vKiBCYWxhbmNlIHRleHQgd3JhcHBpbmcgb24gaGVhZGluZ3MgKi9cbmgxLCBoMixcbmgzLCBoNCB7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLyogQSBlbGVtZW50cyB0aGF0IGRvbid0IGhhdmUgYSBjbGFzcyBnZXQgZGVmYXVsdCBzdHlsZXMgKi9cbmE6bm90KFtjbGFzc10pIHtcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBhdXRvO1xuICBjb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4vKiBNYWtlIGltYWdlcyBlYXNpZXIgdG8gd29yayB3aXRoICovXG5pbWcsXG5waWN0dXJlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogSW5oZXJpdCBmb250cyBmb3IgaW5wdXRzIGFuZCBidXR0b25zICovXG5pbnB1dCwgYnV0dG9uLFxudGV4dGFyZWEsIHNlbGVjdCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi8qIE1ha2Ugc3VyZSB0ZXh0YXJlYXMgd2l0aG91dCBhIHJvd3MgYXR0cmlidXRlIGFyZSBub3QgdGlueSAqL1xudGV4dGFyZWE6bm90KFtyb3dzXSkge1xuICBtaW4taGVpZ2h0OiAxMGVtO1xufVxuXG4vKiBBbnl0aGluZyB0aGF0IGhhcyBiZWVuIGFuY2hvcmVkIHRvIHNob3VsZCBoYXZlIGV4dHJhIHNjcm9sbCBtYXJnaW4gKi9cbjp0YXJnZXQge1xuICBzY3JvbGwtbWFyZ2luLWJsb2NrOiA1ZXg7XG59XG4iLCAiLyogVE9ETzogcmV2aWV3IC0tY29sb3ItKiAqL1xuXG4qIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5ib2R5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFzZS01MCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1iYXNlLTkwMCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTApO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1iYXNlKTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWxlYWRpbmctc3RhbmRhcmQpO1xuICBmb250LXNpemUtYWRqdXN0OiBmcm9tLWZvbnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1ibG9jay1zdGFydDogdmEgcigtLXNwYWNlLTN4bCk7XG59XG5cbjppcyhoMSwgaDIsIGgzLCBoNCkge1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGVhZGluZy1maW5lKTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTQpO1xuICBtYXgtd2lkdGg6IDIwY2g7XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMyk7XG4gIG1heC13aWR0aDogMzVjaDtcbn1cblxuaDMge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0yKTtcbiAgbWF4LXdpZHRoOiAzNWNoO1xufVxuXG46aXMoaDQsIGg1LCBoNikge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xKTtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wKTtcbn1cblxuaW5zIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWRhcmspO1xuICBwYWRkaW5nLWlubGluZTogMC4zZW07XG59XG5cbjppcyhjb2RlLCBrYmQsIHNhbXApIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIHBhZGRpbmc6IDAuMmVtIDAuMmVtIDAuMDVlbSAwLjJlbTtcbiAgaHlwaGVuczogbm9uZTtcbiAgdGFiLXNpemU6IDI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdvcmQtc3BhY2luZzogbm9ybWFsO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBib3gtZGVjb3JhdGlvbi1icmVhazogY2xvbmU7XG59XG5cbi8qIFRoaXMgaXMgcXVpdGUgYSBuZXcgcHJvcGVydHksIHNvIHdlIHdhbnQgY29kZSBzdHlsZXMgdG8gYXQgbGVhc3QsIG5vdCBiZSBodWdlIG9yIHRpbnkgKi9cbkBzdXBwb3J0cyBub3QgKGZvbnQtc2l6ZS1hZGp1c3Q6IGZyb20tZm9udCkge1xuICA6aXMoY29kZSwga2JkLCBzYW1wKSB7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgfVxufVxuXG5wcmU6aGFzKGNvZGUpIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgcGFkZGluZzogdmFyKC0tc3BhY2UteHMpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zcGFjZS1zKTtcbn1cblxucHJlIGNvZGUge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qIExpc3RzICovXG5cbnVsOm5vdChbY2xhc3NdKSB7XG4gIC8qIGFsaWduIGxpc3QgbWFya2VyIHdpdGggdGV4dCBzdGFydCAqL1xuICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1mb250LXNpemUtMSkgKyB2YXIoLS1zcGFjZS0zeHMpKTtcbiAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xufVxuXG51bDpub3QoW2NsYXNzXSkgPiBsaSB7XG4gIC8qIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zcGFjZS0zeHMpOyAqL1xufVxuXG46aXMob2wsIHVsKTpub3QoW2NsYXNzXSkgbGkgKyAqIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1mbG93LXNwYWNlLCB2YXIoLS1zcGFjZS0yeHMpKTtcbn1cblxudWwgOjptYXJrZXIge1xuICBmb250LXNpemU6IDAuOGxoO1xufVxuXG5vbCA6Om1hcmtlciB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC1ib2xkKTtcbn1cblxuYmxvY2txdW90ZSB7XG4gIG1hcmdpbi1pbmxpbmU6IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1saWdodCk7XG59XG5cbmJsb2NrcXVvdGUgZm9vdGVyIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zcGFjZS1zKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBmb250LXNpemU6IHZhcigtLXNpemUtc3RlcC0wKTtcbn1cblxuYmxvY2txdW90ZSBxIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG46aXModmlkZW8sIGlmcmFtZVtzcmMqPVwieW91dHViZVwiXSwgaWZyYW1lW3NyYyo9XCJ2aW1lb1wiXSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYXNwZWN0LXJhdGlvOiAxNi85O1xufVxuXG5pbWcge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmZpZ2NhcHRpb24ge1xuICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiAwLjVlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLXN0ZXAtMCk7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG59XG5cbi8qIFRhYmxlcyAqL1xudGFibGUge1xuICBib3JkZXI6IHZhcigtLXN0cm9rZSk7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG50aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LWJvbGQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tbGVhZGluZy1maW5lKTtcbn1cblxudGhlYWQgdGgge1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjZS1zKTtcbn1cblxudGQsXG50aCB7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNlLXhzKSB2YXIoLS1zcGFjZS1zKTtcbn1cblxudGg6bm90KDpvbmx5LW9mLXR5cGUpIHtcbiAgYm9yZGVyLWJsb2NrLWVuZDogdmFyKC0tc3Ryb2tlKTtcbn1cblxudGg6b25seS1vZi10eXBlIHtcbiAgYm9yZGVyLWlubGluZS1lbmQ6IHZhcigtLXN0cm9rZSk7XG59XG5cbjppcyh0aCwgdGQpIH4gOmlzKHRoLCB0ZCkge1xuICBib3JkZXItaW5saW5lLXN0YXJ0OiB2YXIoLS1zdHJva2UpO1xufVxuXG50ciArIHRyIDppcyh0aCwgdGQpIHtcbiAgYm9yZGVyLWJsb2NrLXN0YXJ0OiB2YXIoLS1zdHJva2UpO1xufVxuXG5jYXB0aW9uIHtcbiAgY2FwdGlvbi1zaWRlOiBib3R0b207XG4gIG1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc3BhY2Utcyk7XG59XG5cbi8qIExpbmtzICovXG5hOm5vdChbY2xhc3NdKTpob3ZlciB7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xbGg7XG59XG5cbjppcyhoMSwgaDIsIGgzLCBoNCkgYTpub3QoW2NsYXNzXSkge1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAwLjFleDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjJleDtcbn1cblxuOmlzKGgxLCBoMiwgaDMsIGg0KSBhOm5vdChbY2xhc3NdKTpob3ZlciB7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4zZXg7XG59XG5cbi8qIEZvY3VzICovXG46Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG46Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1jb2xvciwgY3VycmVudENvbG9yKTtcbiAgb3V0bGluZS1vZmZzZXQ6IHZhcigtLWZvY3VzLW9mZnNldCwgMC4ybGgpO1xufVxuXG4vKiBGaXJlZm94IGlzIHRoZSBvbmx5IGJyb3dzZXIgdGhhdCBkb2Vzbid0IG91dGxpbmUgdGhlIHdob2xlIGVsZW1lbnQgdW5sZXNzIHlvdSBtYWtlIGl0IGRpc3BsYXk6IGlubGluZS1ibG9jay4gVGhhdCBpbiBpdHNlbGYgY2F1c2VzIG11bHRpcGxlIGZsb3cgaXNzdWVzIHNvIHdlIGNhbiBkZXRlY3QgaXQsIHVzaW5nIGl0cyBvd24gdmVuZG9yIHByZWZpeCBhbmQgcmVkdWNlIGZvY3VzIG9mZnNldFxuKi9cbkBzdXBwb3J0cyAoLW1vei1hcHBlYXJhbmNlOiBub25lKSB7XG4gIDpyb290IHtcbiAgICAtLWZvY3VzLW9mZnNldDogMC4wOGVtO1xuICB9XG59XG5cbjp0YXJnZXQge1xuICBzY3JvbGwtbWFyZ2luLWJsb2NrOiA1bGg7XG59XG5cbi8qIE1pc2MgKi9cblxuaHIge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ibG9jay1zdGFydDogdmFyKC0tc3Ryb2tlKTtcbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1mbG93LXNwYWNlLCB2YXIoLS1zcGFjZS14bCkpO1xufVxuXG5sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1sZWFkaW5nLWZpbmUpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC1tZWRpdW0pO1xufVxuXG5sYWJlbDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlxcQVwiO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xufVxuXG4vKiBVc3VhbGx5IGxhYmVsIHdyYXBzIGNoZWNrYm94IGFuZCByYWRpbyBidXR0b25zLCBzbyB3ZSBnaXZlIG91cnNlbHZlcyBtb3JlIGxheW91dCBhbmQgdGV4dC1mbG93IGNvbnRyb2wgd2l0aCBmbGV4ICovXG5sYWJlbDpoYXMoaW5wdXQpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IHZhcigtLXNwYWNlLXMpO1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC1ub3JtYWwpO1xufVxuXG5sYWJlbDpoYXMoaW5wdXQpICsgbGFiZWw6aGFzKGlucHV0KSB7XG4gIC0tZmxvdy1zcGFjZTogdmFyKC0tc3BhY2Utcy1tKTtcbn1cblxuLyogU2xpZ2h0bHkgYWRqdXN0cyB0aGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIGNoZWNrL3JhZGlvICovXG5sYWJlbDpoYXMoaW5wdXQpIGlucHV0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjFleCk7XG59XG5cbmlucHV0OmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItbWlkKTtcbn1cblxuaW5wdXQ6ZGlzYWJsZWQsXG5sYWJlbCBpbnB1dDpkaXNhYmxlZCArICoge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5maWVsZHNldCB7XG4gIGJvcmRlcjogdmFyKC0tc3Ryb2tlKTtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2Utcyk7XG59XG5cbmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LW1lZGl1bSk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zcGFjZS14cyk7XG59XG5cbnN1bW1hcnkge1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC1ib2xkKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5kZXRhaWxzW29wZW5dIHN1bW1hcnkge1xuICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zcGFjZS1zKTtcbn1cbiIsICIuZmxvdyA+ICogKyAqIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1mbG93LXNwYWNlLCB2YXIoLS1zcGFjZS1sKSk7XG59XG5cbi5mbG93LXNwYWNlLW0ge1xuICAtLWZsb3ctc3BhY2U6IHZhcigtLXNwYWNlLW0pO1xufVxuXG4uZmxvdy1zcGFjZS14cyB7XG4gIC0tZmxvdy1zcGFjZTogdmFyKC0tc3BhY2UteHMpO1xufVxuXG4uZmxvdy1zcGFjZS1zIHtcbiAgLS1mbG93LXNwYWNlOiB2YXIoLS1zcGFjZS1zKTtcbn1cbi5mbG93LXNwYWNlLXhsIHtcbiAgLS1mbG93LXNwYWNlOiB2YXIoLS1zcGFjZS14bCk7XG59XG4iLCAiLm1hc3Rlci1oZWFkZXIge1xuICBtYXgtd2lkdGg6IDYwY2g7XG4gIGgxIHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYmFzZS05NTApO1xuICB9XG4gIC0tZmxvdy1zcGFjZTogdmFyKC0tc3BhY2UtM3hzKTtcblxuICAudGFnbGluZSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtYm9sZCk7XG4gIH1cblxuICAudGFnbGluZSArIHAge1xuICAgIC0tZmxvdy1zcGFjZTogdmFyKC0tc3BhY2UteHMpO1xuICB9XG59XG4iLCAiLnByb3NlIHtcbiAgLS1mbG93LXNwYWNlOiB2YXIoLS1zcGFjZS1tKTtcblxuICBtYXgtd2lkdGg6IDYwY2g7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgcHJlIGNvZGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLS0xKTtcbiAgfVxuXG4gIDppcyhoMSwgaDIsIGgzKSB7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgaHlwaGVuczogYXV0bztcbiAgfVxuXG4gIDppcyhwLCBsaSwgZGwsIGZpZ2NhcHRpb24sIGJsb2NrcXVvdGUpIHtcbiAgICBtYXgtd2lkdGg6IDYwY2g7XG4gICAgdGV4dC13cmFwOiBwcmV0dHk7XG4gIH1cblxuICAvKiBSZWR1Y2VzIHNwYWNlIGZvbGxvd2luZyBoZWFkaW5ncyAqL1xuICA6aXMoaDEsIGgyLCBoMywgaDQsIGhlYWRlcikgKyAqOm5vdChbY2xhc3NdKSB7XG4gICAgLS1mbG93LXNwYWNlOiB2YXIoLS1zcGFjZS1zKTtcbiAgfVxuXG4gIC8qIEFkZCBtb3JlIHNwYWNlIGFib3ZlIGhlYWRpbmdzICovXG4gICogKyA6aXMoaDEsIGgyLCBoMywgaDQpOm5vdChbY2xhc3NdKSB7XG4gICAgLS1mbG93LXNwYWNlOiB2YXIoLS1zcGFjZS1sKTtcbiAgfVxuXG4gIDppcyh1bCwgb2wpOm5vdChbY2xhc3NdKSBsaSArIGxpLFxuICA6aXModWwsIG9sKTpub3QoW2NsYXNzXSkgbGkgPiA6aXMob2wsIHVsKSB7XG4gICAgLS1mbG93LXNwYWNlOiB2YXIoLS1zcGFjZS0yeHMpO1xuICB9XG5cbiAgaHIge1xuICAgIC0tZmxvdy1zcGFjZTogdmFyKC0tc3BhY2UtMnhsKTtcbiAgfVxuXG4gIDppcyhpbWcsIGEgPiBpbWcsIHBpY3R1cmUsIHZpZGVvKSB7XG4gICAgYm9yZGVyOiB2YXIoLS1zdHJva2Utc29saWQpO1xuICB9XG59XG4iLCAiLnNsaWRlIHtcbiAgLyogQmlnZ2VyIGJhc2UgZm9udCBzaXplICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTEpO1xuXG4gICY6Zmlyc3QtY2hpbGQoKSBoMSB7XG4gICAgZm9udC1zaXplOiBjYWxjKDEuNSAqIHZhcigtLWZvbnQtc2l6ZS02KSk7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNwYWNlLTJ4bCk7XG4gIH1cblxuICBkaXNwbGF5OiBub25lO1xuXG4gIGxpICsgbGkge1xuICAgIG1hcmdpbi10b3A6IDAuNnJlbTtcbiAgfVxuXG4gICZbZGF0YS1hY3RpdmVdIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG5cbiAgPiBoMSB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIHBhZGRpbmctYmxvY2s6IDE2cmVtIDVyZW07ICovXG4gICAgZm9udC1mYW1pbHk6IFwiTWFwbGVcIjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHZhcigtLWNvbG9yLWFjY2VudCksXG4gICAgICB2YXIoLS1jb2xvci1oaWdobGlnaHQpLFxuICAgICAgdmFyKC0tY29sb3ItZGFuZ2VyKVxuICAgICk7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGFuaW1hdGlvbjogZ3JhZGllbnQgMTVzIGVhc2UgaW5maW5pdGU7XG4gICAgYmFja2dyb3VuZC1zaXplOiA1MDAlIGF1dG87XG4gIH1cblxuICBoMiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNSk7XG4gIH1cblxuICBwcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhc2UtNTApO1xuICB9XG59XG5cbi5zbGlkZTpoYXMoLmNvZGVibG9jayBjb2RlW2RhdGEtYWN0aXZlXSlcbiAgLmNvZGVibG9jazpub3QoOmhhcyhjb2RlW2RhdGEtYWN0aXZlXSkpIHtcbiAgb3BhY2l0eTogNTUlO1xufVxuXG4uc2xpZGUgcHJlOmhhcyhjb2RlW2RhdGEtYWN0aXZlXSk6bm90KDpoYXMoc3ZnKSkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDAgMCAxMHB4IDEwcHg7IC8qIEFkanVzdCBzaXplIGhlcmUgKi9cbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNvbG9yLWFjY2VudCkgdHJhbnNwYXJlbnQ7IC8qIENoYW5nZSBjb2xvciBoZXJlICovXG4gIH1cblxuICBjb2RlIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbi5zbGlkZSAubWVybWFpZCBzdmcge1xuICBtYXgtaGVpZ2h0OiA3NXZoO1xufVxuXG4uc2xpZGUgLm1lcm1haWQgcmVjdC5ub3RlIHtcbiAgZmlsbDogdmFyKC0tY29sb3ItaGlnaGxpZ2h0KSAhaW1wb3J0YW50O1xuICBzdHJva2U6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmxhbmd1YWdlLWNzcyB7XG4gIHNwYW5bZGF0YS1oaWdobGlnaHQ9XCJwdW5jdHVhdGlvbi5icmFja2V0XCJdIHtcbiAgICBjb2xvcjogIzk5NyAhaW1wb3J0YW50O1xuICB9XG59XG5cbmFydGljbGUubWFya2Rvd24gLnNsaWRlIC50YWtlYXdheSB7XG4gIG1heC13aWR0aDogODB2dztcbiAgdG9wOiAtNnJlbTtcblxuICA6aGFzKGxpLmFjdGl2ZSkgbGk6bm90KC5hY3RpdmUpIHtcbiAgICBvcGFjaXR5OiA2MCU7XG4gIH1cblxuICA6aGFzKGxpLmFjdGl2ZSkgbGkuYWN0aXZlIH4gbGk6bm90KC5hY3RpdmUpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgb2wge1xuICAgIGhlaWdodDogMzc2cHg7XG4gIH1cblxuICBsaSArIGxpIHtcbiAgICBtYXJnaW4tdG9wOiAxLjZyZW07XG4gIH1cblxuICBsaS5hY3RpdmUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXN0eWxlOiBib2xkO1xuICB9XG5cbiAgbGkuYWN0aXZlOm50aC1jaGlsZCgzKTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlx1RDgzQ1x1REY1RFwiICFpbXBvcnRhbnQ7XG4gIH1cblxuICBsaS5hY3RpdmU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcdUQ4M0RcdURDNDlcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyAvKiBhZGRzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgZW1vamkgYW5kIHRoZSBlbGVtZW50J3MgY29udGVudCAqL1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBsZWZ0OiAtNnJlbTtcbiAgICBib3R0b206IC0xLjJyZW07XG4gICAgLS1ib3VuY2U6IDEwJTtcbiAgICBhbmltYXRpb246IGJvdW5jeUxlZnRUb1JpZ2h0IDFzIGN1YmljLWJlemllcigwLjUsIDEuNSwgMC41LCAxLjUpIGluZmluaXRlO1xuICB9XG59XG5bZGF0YS1saW5lXSB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcztcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cbiAgJltkYXRhLWFjdGl2ZV0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWViZmY7XG4gIH1cbn1cblxuY29kZTpoYXMoW2RhdGEtbGluZV1bZGF0YS1hY3RpdmVdKSBbZGF0YS1saW5lXTpub3QoW2RhdGEtYWN0aXZlXSkge1xuICBvcGFjaXR5OiA2MCU7XG59XG5cbi50YWJzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHBhZGRpbmc6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHdpZHRoOiAyMHZ3O1xuICAvKiBtYXgtd2lkdGg6IDI5MHB4OyAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYXNlLTUwKTtcblxuICAudGFiIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuXG4gICAgJjpub3QoW2RhdGEtYWN0aXZlXSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctc2Vjb25kYXJ5KTtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHggMCAwIDEycHg7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDEycHggMTJweCAwO1xuICAgIH1cbiAgfVxuXG4gIC5ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLnBhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJltkYXRhLWFjdGl2ZV0ge1xuICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC8qIGRpc3BsYXk6IGdyaWQ7ICovXG4gICAgICAvKiBwbGFjZS1jb250ZW50OiBjZW50ZXI7ICovXG4gICAgfVxuICB9XG59XG5cbi5ib3VuY2Uge1xuICAtLWJvdW5jZTogMjUlO1xuICBhbmltYXRpb246IGJvdW5jeUxlZnRUb1JpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAuNSwgMS41LCAwLjUsIDEuNSkgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgYm91bmN5TGVmdFRvUmlnaHQge1xuICAwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLWJvdW5jZSkpO1xuICB9XG59XG4iLCAiLnBvc3QtZW50cnkge1xuICBoZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTEpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cbi5yZWFkbW9yZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBzcGFuIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0xKTtcbiAgfVxufVxuIiwgIjpyb290IHtcbiAgLyogU3RlcCAtMjogMTIuNXB4IFx1MjE5MiAxMS4yNTU2cHggKi9cbiAgLS1mb250LXNpemUtLTI6IGNsYW1wKDAuNzAzNXJlbSwgMC44MTMxcmVtICsgLTAuMTQxNHZ3LCAwLjc4MTNyZW0pO1xuICAvKiBTdGVwIC0xOiAxNXB4IFx1MjE5MiAxNS4wMDM4cHggKi9cbiAgLS1mb250LXNpemUtLTE6IGNsYW1wKDAuOTM3NXJlbSwgMC45Mzc0cmVtICsgMC4wMDA0dncsIDAuOTM3N3JlbSk7XG4gIC8qIFN0ZXAgMDogMThweCBcdTIxOTIgMjBweCAqL1xuICAtLWZvbnQtc2l6ZS0wOiBjbGFtcCgxLjEyNXJlbSwgMS4wNzM5cmVtICsgMC4yMjczdncsIDEuMjVyZW0pO1xuICAvKiBTdGVwIDE6IDIxLjZweCBcdTIxOTIgMjYuNjZweCAqL1xuICAtLWZvbnQtc2l6ZS0xOiBjbGFtcCgxLjM1cmVtLCAxLjIyMDZyZW0gKyAwLjU3NXZ3LCAxLjY2NjNyZW0pO1xuICAvKiBTdGVwIDI6IDI1LjkycHggXHUyMTkyIDM1LjUzNzhweCAqL1xuICAtLWZvbnQtc2l6ZS0yOiBjbGFtcCgxLjYycmVtLCAxLjM3NDFyZW0gKyAxLjA5Mjl2dywgMi4yMjExcmVtKTtcbiAgLyogU3RlcCAzOiAzMS4xMDRweCBcdTIxOTIgNDcuMzcxOXB4ICovXG4gIC0tZm9udC1zaXplLTM6IGNsYW1wKDEuOTQ0cmVtLCAxLjUyODFyZW0gKyAxLjg0ODZ2dywgMi45NjA3cmVtKTtcbiAgLyogU3RlcCA0OiAzNy4zMjQ4cHggXHUyMTkyIDYzLjE0NjdweCAqL1xuICAtLWZvbnQtc2l6ZS00OiBjbGFtcCgyLjMzMjhyZW0sIDEuNjcyNnJlbSArIDIuOTM0M3Z3LCAzLjk0NjdyZW0pO1xuICAvKiBTdGVwIDU6IDQ0Ljc4OThweCBcdTIxOTIgODQuMTc0NXB4ICovXG4gIC0tZm9udC1zaXplLTU6IGNsYW1wKDIuNzk5NHJlbSwgMS43OTI0cmVtICsgNC40NzU1dncsIDUuMjYwOXJlbSk7XG4gIC8qIFN0ZXAgNjogNTMuNzQ3N3B4IFx1MjE5MiA3Ni4yOTM5cHggKi9cbiAgLS1mb250LXNpemUtNjogY2xhbXAoMy4zNTkycmVtLCAyLjc4MjhyZW0gKyAyLjU2MjF2dywgNC43Njg0cmVtKTtcblxuICAvKiBTcGFjZSAzeHM6IDVweCBcdTIxOTIgNXB4ICovXG4gIC0tc3BhY2UtM3hzOiBjbGFtcCgwLjMxMjVyZW0sIDAuMzEyNXJlbSArIDB2dywgMC4zMTI1cmVtKTtcbiAgLyogU3BhY2UgMnhzOiA5cHggXHUyMTkyIDEwcHggKi9cbiAgLS1zcGFjZS0yeHM6IGNsYW1wKDAuNTYyNXJlbSwgMC41MzY5cmVtICsgMC4xMTM2dncsIDAuNjI1cmVtKTtcbiAgLyogU3BhY2UgeHM6IDE0cHggXHUyMTkyIDE1cHggKi9cbiAgLS1zcGFjZS14czogY2xhbXAoMC44NzVyZW0sIDAuODQ5NHJlbSArIDAuMTEzNnZ3LCAwLjkzNzVyZW0pO1xuICAvKiBTcGFjZSBzOiAxOHB4IFx1MjE5MiAyMHB4ICovXG4gIC0tc3BhY2UtczogY2xhbXAoMS4xMjVyZW0sIDEuMDczOXJlbSArIDAuMjI3M3Z3LCAxLjI1cmVtKTtcbiAgLyogU3BhY2UgbTogMjdweCBcdTIxOTIgMzBweCAqL1xuICAtLXNwYWNlLW06IGNsYW1wKDEuNjg3NXJlbSwgMS42MTA4cmVtICsgMC4zNDA5dncsIDEuODc1cmVtKTtcbiAgLyogU3BhY2UgbDogMzZweCBcdTIxOTIgNDBweCAqL1xuICAtLXNwYWNlLWw6IGNsYW1wKDIuMjVyZW0sIDIuMTQ3N3JlbSArIDAuNDU0NXZ3LCAyLjVyZW0pO1xuICAvKiBTcGFjZSB4bDogNTRweCBcdTIxOTIgNjBweCAqL1xuICAtLXNwYWNlLXhsOiBjbGFtcCgzLjM3NXJlbSwgMy4yMjE2cmVtICsgMC42ODE4dncsIDMuNzVyZW0pO1xuICAvKiBTcGFjZSAyeGw6IDcycHggXHUyMTkyIDgwcHggKi9cbiAgLS1zcGFjZS0yeGw6IGNsYW1wKDQuNXJlbSwgNC4yOTU1cmVtICsgMC45MDkxdncsIDVyZW0pO1xuICAvKiBTcGFjZSAzeGw6IDEwOHB4IFx1MjE5MiAxMjBweCAqL1xuICAtLXNwYWNlLTN4bDogY2xhbXAoNi43NXJlbSwgNi40NDMycmVtICsgMS4zNjM2dncsIDcuNXJlbSk7XG5cbiAgLyogT25lLXVwIHBhaXJzICovXG4gIC8qIFNwYWNlIDN4cy0yeHM6IDVweCBcdTIxOTIgMTBweCAqL1xuICAtLXNwYWNlLTN4cy0yeHM6IGNsYW1wKDAuMzEyNXJlbSwgMC4xODQ3cmVtICsgMC41NjgydncsIDAuNjI1cmVtKTtcbiAgLyogU3BhY2UgMnhzLXhzOiA5cHggXHUyMTkyIDE1cHggKi9cbiAgLS1zcGFjZS0yeHMteHM6IGNsYW1wKDAuNTYyNXJlbSwgMC40MDkxcmVtICsgMC42ODE4dncsIDAuOTM3NXJlbSk7XG4gIC8qIFNwYWNlIHhzLXM6IDE0cHggXHUyMTkyIDIwcHggKi9cbiAgLS1zcGFjZS14cy1zOiBjbGFtcCgwLjg3NXJlbSwgMC43MjE2cmVtICsgMC42ODE4dncsIDEuMjVyZW0pO1xuICAvKiBTcGFjZSBzLW06IDE4cHggXHUyMTkyIDMwcHggKi9cbiAgLS1zcGFjZS1zLW06IGNsYW1wKDEuMTI1cmVtLCAwLjgxODJyZW0gKyAxLjM2MzZ2dywgMS44NzVyZW0pO1xuICAvKiBTcGFjZSBtLWw6IDI3cHggXHUyMTkyIDQwcHggKi9cbiAgLS1zcGFjZS1tLWw6IGNsYW1wKDEuNjg3NXJlbSwgMS4zNTUxcmVtICsgMS40NzczdncsIDIuNXJlbSk7XG4gIC8qIFNwYWNlIGwteGw6IDM2cHggXHUyMTkyIDYwcHggKi9cbiAgLS1zcGFjZS1sLXhsOiBjbGFtcCgyLjI1cmVtLCAxLjYzNjRyZW0gKyAyLjcyNzN2dywgMy43NXJlbSk7XG4gIC8qIFNwYWNlIHhsLTJ4bDogNTRweCBcdTIxOTIgODBweCAqL1xuICAtLXNwYWNlLXhsLTJ4bDogY2xhbXAoMy4zNzVyZW0sIDIuNzEwMnJlbSArIDIuOTU0NXZ3LCA1cmVtKTtcbiAgLyogU3BhY2UgMnhsLTN4bDogNzJweCBcdTIxOTIgMTIwcHggKi9cbiAgLS1zcGFjZS0yeGwtM3hsOiBjbGFtcCg0LjVyZW0sIDMuMjcyN3JlbSArIDUuNDU0NXZ3LCA3LjVyZW0pO1xuXG4gIC8qICAqL1xuICAtLWxlYWRpbmctZmluZTogMS4yO1xuICAtLWZvbnQtbW9ubzogXCJNYXBsZVwiO1xuICAtLXN0cm9rZS13aWR0aDogMXB4O1xuICAtLXN0cm9rZTogdmFyKC0tc3Ryb2tlLXdpZHRoKSBkYXNoZWQgdmFyKC0tY29sb3ItbWlkKTtcbiAgLS1mb250LWJvbGQ6IGJvbGQ7XG59XG5cbi5mb250LXNpemUtMCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTApO1xufVxuXG4uZm9udC1zaXplLTMge1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0zKTtcbn1cbiIsICI6cm9vdCB7XG4gIC0tY29sb3ItYmFzZS01MDogb2tsY2goMC45NTIgMC4wMTIgMjg2LjI3KTtcbiAgLS1jb2xvci1iYXNlLTEwMDogb2tsY2goMC45MDUgMC4wMjIgMjgzLjE0KTtcbiAgLS1jb2xvci1iYXNlLTIwMDogb2tsY2goMC44MTQgMC4wMzggMjgwLjUyKTtcbiAgLS1jb2xvci1iYXNlLTMwMDogb2tsY2goMC43MTQgMC4wNTYgMjc3Ljg4KTtcbiAgLS1jb2xvci1iYXNlLTQwMDogb2tsY2goMC42MyAwLjA2NSAyNzMuMDUpO1xuICAtLWNvbG9yLWJhc2UtNTAwOiBva2xjaCgwLjU0NSAwLjA3MSAyNzAuMzYpO1xuICAtLWNvbG9yLWJhc2UtNjAwOiBva2xjaCgwLjQ3MiAwLjA1MSAyNjYuMyk7XG4gIC0tY29sb3ItYmFzZS03MDA6IG9rbGNoKDAuMzgyIDAuMDMzIDI2NC4wNyk7XG4gIC0tY29sb3ItYmFzZS04MDA6IG9rbGNoKDAuMjkyIDAuMDIgMjYwLjYyKTtcbiAgLS1jb2xvci1iYXNlLTkwMDogb2tsY2goMC4xOSAwLjAwOSAyNTUuNjMpO1xuICAtLWNvbG9yLWJhc2UtOTUwOiBva2xjaCgwLjEyOCAwLjAwMyAyNDUuNzkpO1xuXG4gIC0tcHVycGxlOiAjODI1MGRmO1xuICAtLWxpZ2h0LXB1cnBsZTogI2M2YThmZjtcbiAgLS1saWdodC1ncmVlbjogIzhkZmZiMztcbiAgLS1yZWQ6ICNjZjIyMmU7XG5cbiAgLS1jb2xvci1iYXNlLTUwOiBva2xjaCgwLjk4MiAwLjAwNCAyNzEuNTQpO1xuICAtLWNvbG9yLWJhc2UtMTAwOiBva2xjaCgwLjkzMSAwLjAxMSAyNjkuNik7XG4gIC0tY29sb3ItYmFzZS0yMDA6IG9rbGNoKDAuODM2IDAuMDI1IDI3MC4zMik7XG4gIC0tY29sb3ItYmFzZS0zMDA6IG9rbGNoKDAuNzUzIDAuMDM0IDI2Ni4xKTtcbiAgLS1jb2xvci1iYXNlLTQwMDogb2tsY2goMC42NTkgMC4wNDEgMjY1LjY5KTtcbiAgLS1jb2xvci1iYXNlLTUwMDogb2tsY2goMC41NjggMC4wNCAyNjQuMTkpO1xuICAtLWNvbG9yLWJhc2UtNjAwOiBva2xjaCgwLjUwMyAwLjA0NiAyNjQuNyk7XG4gIC0tY29sb3ItYmFzZS03MDA6IG9rbGNoKDAuNDI5IDAuMDQ2IDI2Ni43MSk7XG4gIC0tY29sb3ItYmFzZS04MDA6IG9rbGNoKDAuMzY2IDAuMDQ0IDI2Ni43OSk7XG4gIC0tY29sb3ItYmFzZS05MDA6IG9rbGNoKDAuMjg4IDAuMDM4IDI2OS4xMSk7XG4gIC0tY29sb3ItYmFzZS05NTA6IG9rbGNoKDAuMjU2IDAuMDM5IDI3MC43Mik7XG5cbiAgLS1mb250LXByaW1hcnk6IHZhcigtLWNvbG9yLWJhc2UtOTAwKTtcbn1cbiIsICJAaW1wb3J0IFwiLi9yZXNldFwiO1xuQGltcG9ydCBcIi4vZ2xvYmFsLXN0eWxlc1wiO1xuQGltcG9ydCBcIi4vY29tcG9zaXRpb25zXCI7XG5cbkBpbXBvcnQgXCIuL2Jsb2Nrcy9tYXN0ZXItaGVhZGVyXCI7XG5AaW1wb3J0IFwiLi9ibG9ja3MvcHJvc2VcIjtcbkBpbXBvcnQgXCIuL2Jsb2Nrcy9zbGlkZVwiO1xuQGltcG9ydCBcIi4vYmxvY2tzL3Bvc3QtZW50cnlcIjtcblxuQGltcG9ydCBcIi4vdG9rZW5zL2ZvbnRcIjtcbkBpbXBvcnQgXCIuL3Rva2Vucy9jb2xvcnNcIjtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1hcGxlXCI7XG4gIGZvbnQtc3R5bGU6IG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoL2ZvbnRzL21hcGxlL01hcGxlTW9uby1SZWd1bGFyLm90ZikgZm9ybWF0KFwib3BlbnR5cGVcIik7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk1hcGxlXCI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoL2ZvbnRzL21hcGxlL01hcGxlTW9uby1JdGFsaWMub3RmKSBmb3JtYXQoXCJvcGVudHlwZVwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG46cm9vdCB7XG4gIHZpZXctdHJhbnNpdGlvbi1uYW1lOiByb290O1xuICAtLWNvbG9yLWFjY2VudDogdmFyKC0tcHVycGxlKTtcbiAgLS1jb2xvci1hY2NlbnQtbGlnaHQ6IHZhcigtLWxpZ2h0LXB1cnBsZSk7XG5cbiAgLS1jb2xvci1oaWdobGlnaHQ6IHZhcigtLWxpZ2h0LWdyZWVuKTtcbiAgLS1jb2xvci1kYW5nZXI6IHZhcigtLXJlZCk7XG5cbiAgLS1jb2xvci1kYXJrOiAjMjMxZjFmO1xuXG4gIC0td2hpdGU6ICNmYmZlZmU7XG4gIC0tb2ZmLXdoaXRlOiAjZjBmMGYwO1xuXG4gIC0tbWFpbi1jb250ZW50OiA3MjBweDtcbiAgLS1tYXJnaW4tc206IDFyZW07XG4gIC0tYmFja2dyb3VuZC16OiAtMTAwO1xuICAtLXRhYmxldDogNzY4cHg7XG4gIC0taGVhZGVyLXBhZGRpbmc6IDAuNnJlbSAwO1xuXG4gIC0taWNvbi1zaXplOiAwLjJyZW07XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyKTtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTYW5zXCIsIHNlcmlmO1xuICBmb250LW9wdGljYWwtc2l6aW5nOiBhdXRvO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBcIndpZHRoXCIgMTAwO1xuICBjb2xvcjogdmFyKC0tZm9udC1wcmltYXJ5KTtcbiAgLyogcG9sa2EgZG90IHN0eWxlICovXG4gIHotaW5kZXg6IHZhcigtLWJhY2tncm91bmQteik7XG4gIC0tZG90OiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIHJhZGlhbC1ncmFkaWVudCh2YXIoLS1kb3QpIDEwJSwgdHJhbnNwYXJlbnQgMTElKSxcbiAgICByYWRpYWwtZ3JhZGllbnQodmFyKC0tZG90KSAxMCUsIHRyYW5zcGFyZW50IDExJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMTBweCAxMHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOlxuICAgIDAgMCxcbiAgICAzMHB4IDMwcHg7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7XG59XG5cbi5sYXlvdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYXNlLTUwKTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogOTgwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcblxuICAmOmhhcygucHJlc2VudGF0aW9uLXNsaWRlcykge1xuICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgcGFkZGluZy1pbmxpbmU6IDMycHg7XG4gIH1cbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxuYmxvY2txdW90ZSB7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cblxuLnByZXNlbnRhdGlvbi1zbGlkZXMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpZGVzLW1vYmlsZS13YXJuaW5nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDEuNnJlbTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIHtcbiAgOnJvb3Qge1xuICAgIC0tZ3V0dGVyOiB2YXIoLS1zcGFjZS1zKTtcbiAgICAtLWZvbnQtY29kZTogMC44cmVtO1xuICAgIC0tdGV4dC1saW5lLWhlaWdodDogMS41O1xuICB9XG5cbiAgbWFpbiB7XG4gICAgcGFkZGluZzogdmFyKC0tZ3V0dGVyKTtcbiAgfVxufVxuXG5hLmxvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLWZvbnQtcHJpbWFyeSk7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcik7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBmb250LWZhbWlseTogXCJNYXBsZVwiO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDAuMmV4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMmV4O1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCk7XG4gIH1cbn1cblxuLyogTU9CSUxFICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gIDpyb290IHtcbiAgICAtLWd1dHRlcjogdmFyKC0tc3BhY2Utcyk7XG4gIH1cbiAgbWFpbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogOTB2dztcbiAgfVxuICBhLmxvZ28ge1xuICAgIG1hcmdpbjogMnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNlLXMpO1xuICB9XG59XG5cbi8qIExhcmdlIHNjcmVlbnMgLSBERVNLVE9QICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0LjA2M2VtKSB7XG4gIDpyb290IHtcbiAgICAtLWd1dHRlcjogMXJlbSAycmVtO1xuICAgIC0tZm9udC1jb2RlOiAxcmVtO1xuICAgIC0tdGV4dC1saW5lLWhlaWdodDogMS40NTtcbiAgICAtLWhlYWRlci1wYWRkaW5nOiAxcmVtIDA7XG4gIH1cblxuICAucHJlc2VudGF0aW9uLXNsaWRlcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuc2xpZGVzLW1vYmlsZS13YXJuaW5nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbm1haW46aGFzKC5zbGlkZSkge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxNDBweCk7XG5cbiAgYXJ0aWNsZSB7XG4gICAgaGVpZ2h0OiA5NiU7XG4gIH1cbn1cblxuLnJvdW5kIHtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cblxuOnJvb3Q6aGFzKC5zbGlkZSkge1xuICBmb250LXNpemU6IDEuMjVyZW07XG5cbiAgLnNsaWRlOmhhcyguYnVzeSkge1xuICAgIC0tZm9udC1jb2RlOiAxcmVtO1xuICB9XG5cbiAgLnNsaWRlOmhhcygucmVsYXhlZCkge1xuICAgIC0tZm9udC1jb2RlOiAycmVtO1xuICB9XG59XG5cbmFydGljbGUubWFya2Rvd24gQGtleWZyYW1lcyBncmFkaWVudCB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7XG4gIH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7XG4gIH1cbn1cblxuYXJ0aWNsZS5tYXJrZG93bixcbm1haW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgZGV0YWlscyA+ICo6bm90KDppcyhzdW1tYXJ5KSkge1xuICAgIG1hcmdpbi1pbmxpbmU6IDFyZW07XG4gICAgLyogbWFyZ2luLWxlZnQ6IDFyZW07ICovXG4gIH1cblxuICBkZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAwLjZyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctc2Vjb25kYXJ5KTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHotaW5kZXg6IHZhcigtLWJhY2tncm91bmQteik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctcHJpbWFyeSk7XG4gIH1cblxuICB1IHtcbiAgICAtLXJvdGF0ZTogMmRlZztcbiAgICAtLXNrZXc6IC0yNWRlZztcbiAgICAtLWJvdHRvbTogLTAuNXB4O1xuICAgIC0tbGVmdDogMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtZmFtaWx5OiBNYXBsZTtcbiAgfVxuXG4gICo6bnRoLWNoaWxkKDIpIHUge1xuICAgIC0tYm90dG9tOiAxcHg7XG4gICAgLS1yb3RhdGU6IC04ZGVnO1xuICAgIC0tc2tldzogMzZkZWc7XG4gIH1cblxuICAqOm50aC1jaGlsZCg2KSB1IHtcbiAgICAtLWxlZnQ6IC01cHg7XG4gICAgLS1ib3R0b206IDVweDtcbiAgICAtLXNrZXc6IDQwZGVnO1xuICAgIC0tcm90YXRlOiAxMmRlZztcbiAgfVxuXG4gIDpub3QoaDIpID4gdTo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1oaWdobGlnaHQpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMC40NXJlbTtcbiAgICBib3R0b206IHZhcigtLWJvdHRvbSk7XG4gICAgei1pbmRleDogLTE7XG4gICAgdHJhbnNmb3JtOiBza2V3KHZhcigtLXNrZXcpKSByb3RhdGUodmFyKC0tcm90YXRlKSk7XG4gIH1cblxuICBjb2RlIC5haGwtY29tbWVudCB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgOm5vdChwcmUpID4gY29kZSB7XG4gICAgdGV4dC13cmFwOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiBjYWxjKHZhcigtLWZvbnQtc2l6ZS0wKSAtIDJweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFzZS0xMDApO1xuICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgY29ybmVyLXNoYXBlOiBzcXVpcmNsZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBwYWRkaW5nOiAwLjNyZW0gMC44cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcblxuICAgICogKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgICB9XG4gIH1cbn1cblxuaGVhZGVyIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbmhlYWRlciBhLFxubWFpbiBhIHtcbiAgY29sb3I6IHVuc2V0O1xufVxuXG5tYWluIGE6bm90KFtjbGFzc10pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMC4xcmVtICFpbXBvcnRhbnQ7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xcmVtO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudCkgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjpcbiAgICBjb2xvciAwLjJzLFxuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvciAwLjVzO1xufVxuXG4vKiBDU1MgUmVzZXRzICovXG5cbi8qIEJhc2VsaW5lIGZvciBkZWZhdWx0IGxpbmtzICovXG5hOm5vdChbY2xhc3NdKSxcbi5tYXJrZG93biB1IHtcbiAgLyogUmVsYXRpdmVseSBzaXplZCB0aGlja25lc3MgYW5kIG9mZnNldCAqL1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBtYXgoMC4wOGVtLCAxcHgpO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMTJyZW07XG59XG5cbi8qIENvbXBvbmVudHMgKi9cblxuLnNwbGl0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICByb3ctZ2FwOiAxcmVtO1xuICBjb2x1bW4tZ2FwOiAxcmVtO1xuICAvKiBhbGlnbi1pdGVtczogY2VudGVyOyAqL1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICZbZGF0YS1ldmVubHldIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgfVxuXG4gICYud2lkZSB7XG4gICAgY29sdW1uLWdhcDogNHJlbTtcbiAgfVxuXG4gICYgKyAmIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG59XG5cbi5kZW1vIHtcbiAgcGFkZGluZzogMXJlbSAxLjJyZW07XG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tZm9udC1wcmltYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gIC50aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLnNwYWNlciB7XG4gIHBhZGRpbmc6IDAuOHJlbTtcbn1cblxuLm1lcm1haWQge1xuICAvKiBIaWRlIGNvZGVibG9jayBiZWZvcmUgbWVybWFpZCBraWNrcyBpbiAgKi9cbiAgJjpub3QoOmhhcyhzdmcpKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIEFwcGx5IHRvIGFsbCBwYXRocyBpbiBTVkcgKi9cbiAgW2NsYXNzXj1cIm1lc3NhZ2VMaW5lXCJdW2RhdGEtYWN0aXZlXSB7XG4gICAgc3Ryb2tlLXdpZHRoOiAyLjYgIWltcG9ydGFudDtcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWFjY2VudCkgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8qIERpbSB0aGUgbm9uLWFjdGl2ZSBsaW5lcyB3aGVuIHRoZXJlJ3MgYW4gYWN0aXZlIGxpbmUgKi9cbiAgJjpoYXMoW2RhdGEtYWN0aXZlXSkgW2NsYXNzXj1cIm1lc3NhZ2VMaW5lXCJdOm5vdChbZGF0YS1hY3RpdmVdKSB7XG4gICAgc3Ryb2tlOiAjOTk5ICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvKiBFdmVyeXRoaW5nIGFmdGVyIHRoZSBsYXN0IDxnPiAqL1xuICAmOm5vdCg6aGFzKFtkYXRhLWFjdGl2ZV0pKSBnOmxhc3Qtb2YtdHlwZSB+ICosXG4gIFtkYXRhLWFjdGl2ZV0gfiAqIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmZsYXNoIHtcbiAgei1pbmRleDogOTk5O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWluLXdpZHRoOiAxMHZ3O1xuICBwYWRkaW5nOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1kYW5nZXIpO1xuICAvKiBAa2luZCA9PSA6aW5mbyAmJiBcImJnLWVtZXJhbGQtNTAgdGV4dC1lbWVyYWxkLTgwMCByaW5nLWVtZXJhbGQtNTAwIGZpbGwtY3lhbi05MDBcIiwgKi9cbiAgLyogQGtpbmQgPT0gOmVycm9yICYmIFwiYmctcm9zZS01MCB0ZXh0LXJvc2UtOTAwIHNoYWRvdy1tZCByaW5nLXJvc2UtNTAwIGZpbGwtcm9zZS05MDBcIiAqL1xufVxuXG4ubm90ZSB7XG4gIC8qIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1saWdodCk7ICovXG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjZyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBib3JkZXItbGVmdDogMTJweCBzb2xpZCB2YXIoLS1jb2xvci1hY2NlbnQtbGlnaHQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRlYWZmO1xuXG4gIG1hcmdpbi10b3A6IDEuNHJlbTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcblxuICAuc2xpZGUgJiAuY29udGVudCB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmW2RhdGEtYWN0aXZlXSAuY29udGVudCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5pY29uIHtcbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDJyZW07XG4gICAgfVxuICAgIC8qIHRvcDogLTFyZW07ICovXG4gICAgZm9udC1zaXplOiB2YXIoLS1pY29uLXNpemUpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQpO1xuICB9XG59XG5cbi8qIElkayB3aHksIGJ1dCBpbnNpZGUgdGhlIC5ub3RlIHsgIH0gYmxvY2sgY29tcGlsZXIgd2FzIGZhcnRpbmcgKi9cbi5ub3RlIHU6OmJlZm9yZSxcbi5ub3RlIGNvZGU6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmhvbWUgPiAqICsgKiB7XG4gIC0tZmxvdy1zcGFjZTogdmFyKC0tc3BhY2UteGwpO1xufVxuXG4uc2xpZGUgcHJlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1iYXNlLTQwMCk7XG59XG5cbjpoYXMoLnNsaWRlW2RhdGEtYWN0aXZlXTpoYXMoLmNhdCkpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcGluayAhaW1wb3J0YW50O1xufVxuXG4uc2xpZGVbZGF0YS1hY3RpdmVdOmhhcyguY2F0KSB7XG4gIC8qIGJhY2tncm91bmQtY29sb3I6ICNmZTM0MDY7ICovXG5cbiAgLmNhdCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAlO1xuICB9XG59XG5cbkB2aWV3LXRyYW5zaXRpb24ge1xuICBuYXZpZ2F0aW9uOiBhdXRvO1xufVxuXG46OnZpZXctdHJhbnNpdGlvbi1ncm91cCgqKSxcbjo6dmlldy10cmFuc2l0aW9uLW9sZCgqKSxcbjo6dmlldy10cmFuc2l0aW9uLW5ldygqKSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7IC8qIGltcG9ydGFudCBpZiB5b3UgbWl4IGR1cmF0aW9ucyAqL1xuICAvKiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1kZWZhdWx0LWVhc2UpOyAqL1xufVxuXG5idXR0b246bm90KFtjbGFzc10pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LWxpZ2h0KTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LWZhbWlseTogTWFwbGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBhZGRpbmc6IDAuM2VtIDAuOGVtO1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQTtBQUFBO0FBQUE7QUFHRTtBQUFBO0FBSUY7QUFDRTtBQUNBO0FBQ0E7QUFBQTtBQUlGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUU7QUFBQTtBQUlGO0FBQUE7QUFFRTtBQUFBO0FBSUY7QUFDRTtBQUNBO0FBQUE7QUFJRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFJRjtBQUFBO0FBQUE7QUFBQTtBQUVFO0FBQUE7QUFJRjtBQUNFO0FBQ0E7QUFBQTtBQUlGO0FBQUE7QUFFRTtBQUNBO0FBQUE7QUFJRjtBQUFBO0FBQUE7QUFBQTtBQUVFO0FBQ0E7QUFBQTtBQUlGO0FBQ0U7QUFBQTtBQUlGO0FBQ0U7QUFBQTs7O0FDckVGO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFBQTtBQUdGO0FBQ0U7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBSUY7QUFDRTtBQUNFO0FBQUE7QUFBQTtBQUlKO0FBQ0U7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUFBO0FBS0Y7QUFFRTtBQUNBO0FBQUE7QUFHRjtBQUFBO0FBSUE7QUFDRTtBQUFBO0FBR0Y7QUFDRTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFBQTtBQUdGO0FBQ0U7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQ0E7QUFBQTtBQUlGO0FBQ0U7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUFBO0FBR0Y7QUFBQTtBQUVFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFBQTtBQUlGO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUFBO0FBSUY7QUFDRTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQUE7QUFLRjtBQUNFO0FBQ0U7QUFBQTtBQUFBO0FBSUo7QUFDRTtBQUFBO0FBS0Y7QUFDRTtBQUNBO0FBQ0E7QUFBQTtBQUdGO0FBQ0U7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQUE7QUFJRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFJRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUFBO0FBRUU7QUFBQTtBQUdGO0FBQ0U7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFBQTtBQUdGO0FBQ0U7QUFBQTs7O0FDelJGO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFBQTtBQUVGO0FBQ0U7QUFBQTs7O0FDaEJGO0FBQ0U7QUFDQTtBQUtBO0FBQ0U7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFBQTs7O0FDZEo7QUFDRTtBQUVBO0FBQ0E7QUFFQTtBQUFBOzs7QUNORjtBQUVFO0FBRUE7QUFDRTtBQUNBO0FBQUE7QUFHRjtBQUVBO0FBV0E7QUFDRTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdGO0FBQUE7QUFTRjtBQUVFO0FBQUE7QUFHRjtBQUNFO0FBRUE7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdGO0FBQUE7QUFLRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFBQTtBQUdGO0FBQ0U7QUFBQTtBQUtGO0FBQ0U7QUFDQTtBQUVBO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFBQTtBQUdGO0FBQUE7QUE0QkY7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0U7QUFBQTtBQUFBO0FBSUo7QUFDRTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDRTtBQUVBO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFBQTtBQUVGO0FBQ0U7QUFBQTtBQUFBO0FBSUo7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUVBO0FBQ0U7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQU9OO0FBQ0U7QUFDQTtBQUFBO0FBR0Y7QUFBQTtBQUdJO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFBQTs7O0FDck1KO0FBQ0U7QUFBQTtBQU1GO0FBQ0U7QUFDQTtBQUFBOzs7QUNURjtBQUVFO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUdBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUlBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7OztBQ3RFRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBOzs7QUNsQkY7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdGO0FBQ0U7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNFO0FBQ0E7QUFBQTtBQUFBO0FBSUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPRTtBQUFBO0FBR0Y7QUFDRTtBQUFBO0FBR0Y7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQ0U7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFBQTtBQUlKO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0U7QUFBQTtBQUFBO0FBS0o7QUFDRTtBQUNFO0FBQUE7QUFFRjtBQUNFO0FBQ0E7QUFBQTtBQUVGO0FBQ0U7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUtKO0FBQ0U7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBR0Y7QUFDRTtBQUFBO0FBR0Y7QUFDRTtBQUFBO0FBQUE7QUFJSjtBQUNFO0FBRUE7QUFBQTtBQUtGO0FBQ0U7QUFBQTtBQUdGO0FBQ0U7QUFFQTtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFBQTtBQUlKO0FBQ0U7QUFBQTtBQVdGO0FBQUE7QUFFRTtBQUVBO0FBQUE7QUErRUY7QUFDRTtBQUFBO0FBR0Y7QUFBQTtBQUVFO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQVFGO0FBQUE7QUFHRTtBQUNBO0FBQUE7QUFLRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFBQTtBQUlKO0FBQ0U7QUFDQTtBQUNBO0FBRUE7QUFDRTtBQUFBO0FBQUE7QUFJSjtBQUNFO0FBQUE7QUFHRjtBQUVFO0FBQ0U7QUFBQTtBQUlGO0FBQ0U7QUFDQTtBQUFBO0FBSUY7QUFDRTtBQUFBO0FBSUY7QUFBQTtBQUVFO0FBQUE7QUFBQTtBQUlKO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBS0Y7QUFFRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDRTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBS0E7QUFBQTtBQUFBO0FBS0o7QUFBQTtBQUVFO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHRjtBQUNFO0FBQUE7QUFHRjtBQUdFO0FBQ0U7QUFBQTtBQUFBO0FBSUo7QUFJQTtBQUFBO0FBQUE7QUFHRTtBQUNBO0FBQUE7QUFJRjtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo= */
