/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

:root {
  --color-yellow: 255, 203, 132;
  --color-yellow-dark: 218, 159, 79;
  --color-orange: 218, 101, 38;
  --color-orange-dark: 180, 79, 24;
  --color-turquoise: 7, 170, 184;
  --color-turquoise-dark: 4, 118, 128;
  --color-pink: 255, 179, 179;
  --color-pink-dark: 214, 128, 128;
  --color-blue: 17, 0, 70;
  --color-blue-dark: 0, 0, 0;
  --color-gray: 244, 243, 246;
  --color-gray-dark: 209, 208, 212;

  --color-muted: 17, 0, 70, 0.5;
  --color-link: var(--color-turquoise);

  --document-font-family: 'Basier Circle', -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji',
    'Segoe UI Emoji', 'Segoe UI Symbol';
  --document-font-size: 1rem;
  --document-line-height: 1.5;

  --document-background: 255, 255, 255;
  --document-color: 0, 0, 0;

  --document-width: 1600px;
  --document-margin: 1.2rem;

  --container-large-width: var(--document-width);
  --container-medium-width: 48rem;
  --container-small-width: 30rem;

  --loading-color: 17, 0, 70, 0.06;
  --loading-color-solid: 235, 235, 235;

  --focus-ring-width: 3px;
  --focus-ring-color: var(--color-blue);

  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
}

@media (min-width: 350px) {
  :root {
    --document-margin: 1.5rem;
  }
}

@media (min-width: 400px) {
  :root {
    --document-margin: 1.8rem;
  }
}

@media (min-width: 600px) {
  :root {
    --document-margin: 2.5rem;
  }
}

@media (min-width: 1000px) {
  :root {
    --document-margin: 3.5rem;
  }
}

@media (min-width: 1400px) {
  :root {
    --document-margin: 6rem;
  }
}

/* @define utilties */

.u-colorYellow {
  color: rgb(var(--color-yellow)) !important;
}

.u-colorOrange {
  color: rgb(var(--color-orange)) !important;
}

.u-colorTurquoise {
  color: rgb(var(--color-turquoise)) !important;
}

.u-colorPink {
  color: rgb(var(--color-pink)) !important;
}

.u-colorBlue {
  color: rgb(var(--color-blue)) !important;
}

.u-colorGray {
  color: rgb(var(--color-gray)) !important;
}

.u-bgYellow {
  background-color: rgb(var(--color-yellow)) !important;
}

.u-bgOrange {
  background-color: rgb(var(--color-orange)) !important;
}

.u-bgTurquoise {
  background-color: rgb(var(--color-turquoise)) !important;
}

.u-bgPink {
  background-color: rgb(var(--color-pink)) !important;
}

.u-bgBlue {
  background-color: rgb(var(--color-blue)) !important;
}

.u-bgGray {
  background-color: rgb(var(--color-gray)) !important;
}

/* @define utilities */

.u-hidden {
  display: none !important;
}

.u-hiddenVisually {
  border: 0 !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  height: 1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
}

@media print {
  .u-printHidden {
    display: none !important;
  }
}

.u-arrow {
  width: 0.375em;
  vertical-align: middle;
  margin: 0 0.4rem;
  position: relative;
  top: -0.03em;
}

.u-overflowHidden {
  overflow: hidden !important;
}

.u-calloutFix + .u-calloutFix {
  /* margin-top: -8vh !important; */
}

.u-borderT {
  border-top: 1px solid rgba(0, 0, 0, 0.13) !important;
}

.u-borderB {
  border-bottom: 1px solid rgba(0, 0, 0, 0.13) !important;
}

/**
 * Display
 */

.u-block {
  display: block !important;
}

.u-inlineBlock {
  display: inline-block !important;
}

.u-inline {
  display: inline !important;
}

.u-flex {
  display: flex !important;
}

/**
 * Position
 */

.u-posStatic {
  position: static !important;
}

.u-posRelative {
  position: relative !important;
}

.u-posAbsolute {
  position: absolute !important;
}

.u-posFixed {
  position: fixed !important;
}

/**
 * Flex
 */

.u-flexWrap {
  flex-wrap: wrap !important;
}

.u-alignCenter {
  align-items: center !important;
}

.u-alignStart {
  align-items: flex-start !important;
}

.u-alignEnd {
  align-items: flex-end !important;
}

.u-justifyCenter {
  justify-content: center !important;
}

.u-justifySpaceBetween {
  justify-content: space-between !important;
}

/**
 * Aspect ratio
 */

.u-aspect1-1,
.u-aspect4-3,
.u-aspect16-9,
.u-aspectPoster {
  position: relative !important;
}

.u-aspect1-1::before,
.u-aspect4-3::before,
.u-aspect16-9::before,
.u-aspectPoster::before {
  content: '' !important;
  display: block !important;
  height: 0 !important;
}

.u-aspect1-1::before {
  padding-top: 100% !important;
}

.u-aspect4-3::before {
  padding-top: calc(100% * 3 / 4) !important;
}

.u-aspect16-9::before {
  padding-top: calc(100% * 9 / 16) !important;
}

.u-aspectPoster::before {
  padding-top: calc(100% * 278 / 195) !important;
}

/**
 * Overflowing container
 */

.u-expand {
  margin-left: calc((var(--document-margin) * 0.55) * -1);
  margin-right: calc((var(--document-margin) * 0.55) * -1);
}

@media (min-width: 1000px) {
  .u-lg-expand {
    margin-left: calc((var(--document-margin) * 0.55) * -1);
    margin-right: calc((var(--document-margin) * 0.55) * -1);
  }
}

@media (max-width: 999px) {
  .u-md-expand {
    margin-left: calc((var(--document-margin) * 0.55) * -1);
    margin-right: calc((var(--document-margin) * 0.55) * -1);
  }
}

@media (max-width: 599px) {
  .u-sm-expand {
    margin-left: calc((var(--document-margin) * 0.55) * -1);
    margin-right: calc((var(--document-margin) * 0.55) * -1);
  }
}

/**
 * Centered page container
 */

.u-container,
.u-md-container,
.u-lg-container,
.u-xl-container {
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--document-margin) !important;
  padding-right: var(--document-margin) !important;
  max-width: calc(
    var(--container-large-width) + (var(--document-margin) * 2)
  ) !important;
}

.u-large {
  max-width: var(--container-large-width) !important;
}

.u-medium {
  max-width: var(--container-medium-width) !important;
}

.u-small {
  max-width: var(--container-small-width) !important;
}

@supports (padding-left: constant(safe-area-inset-left)) {
  .u-container,
  .u-md-container,
  .u-lg-container,
  .u-xl-container {
    padding-left: calc(
      var(--document-margin) + constant(safe-area-inset-left)
    ) !important;
    padding-right: calc(
      var(--document-margin) + constant(safe-area-inset-right)
    ) !important;
  }
}

@supports (padding-left: env(safe-area-inset-left)) {
  .u-container,
  .u-md-container,
  .u-lg-container,
  .u-xl-container {
    padding-left: calc(
      var(--document-margin) + env(safe-area-inset-left)
    ) !important;
    padding-right: calc(
      var(--document-margin) + env(safe-area-inset-right)
    ) !important;
  }
}

@media (max-width: 599px) {
  .u-md-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 899px) {
  .u-lg-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

@media (max-width: 1199px) {
  .u-xl-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

.u-uncontain,
.u-md-uncontain,
.u-lg-uncontain,
.u-xl-uncontain {
  max-width: none !important;
  margin-left: calc(var(--document-margin) * -1) !important;
  margin-right: calc(var(--document-margin) * -1) !important;
}

@supports (margin-left: constant(safe-area-inset-left)) {
  .u-uncontain,
  .u-md-uncontain,
  .u-lg-uncontain,
  .u-xl-uncontain {
    margin-left: calc(
      (var(--document-margin) + constant(safe-area-inset-left)) * -1
    ) !important;
    margin-right: calc(
      (var(--document-margin) + constant(safe-area-inset-right)) * -1
    ) !important;
  }
}

@supports (margin-left: env(safe-area-inset-left)) {
  .u-uncontain,
  .u-md-uncontain,
  .u-lg-uncontain,
  .u-xl-uncontain {
    margin-left: calc(
      (var(--document-margin) + env(safe-area-inset-left)) * -1
    ) !important;
    margin-right: calc(
      (var(--document-margin) + env(safe-area-inset-right)) * -1
    ) !important;
  }
}

@media (min-width: 600px) {
  .u-md-uncontain {
    margin: 0 !important;
  }
}

@media (min-width: 900px) {
  .u-lg-uncontain {
    margin: 0 !important;
  }
}

@media (min-width: 1200px) {
  .u-xl-uncontain {
    margin: 0 !important;
  }
}

.u-loading,
.u-loadingLight {
  background: rgba(var(--loading-color)) !important;
  color: transparent !important;
  user-select: none !important;
  line-height: 1.4 !important;
}

.u-loadingLight {
  background: rgba(var(--loading-color-solid)) !important;
}

/* @define utilities */

/**
 * Proportional widths
 */

.u-size1of4 {
  flex-basis: auto !important;
  width: 25% !important;
}

.u-size1of3 {
  flex-basis: auto !important;
  width: calc(100% * 1 / 3) !important;
}

.u-size1of2,
.u-size2of4 {
  flex-basis: auto !important;
  width: 50% !important;
}

.u-size2of3 {
  flex-basis: auto !important;
  width: calc(100% * 2 / 3) !important;
}

.u-size3of4 {
  flex-basis: auto !important;
  width: 75% !important;
}

/**
 * Small
 */

@media (min-width: 400px) {
  .u-sm-size1of4 {
    flex-basis: auto !important;
    width: 25% !important;
  }

  .u-sm-size1of3 {
    flex-basis: auto !important;
    width: calc(100% * 1 / 3) !important;
  }

  .u-sm-size1of2,
  .u-sm-size2of4 {
    flex-basis: auto !important;
    width: 50% !important;
  }

  .u-sm-size2of3 {
    flex-basis: auto !important;
    width: calc(100% * 2 / 3) !important;
  }

  .u-sm-size3of4 {
    flex-basis: auto !important;
    width: 75% !important;
  }

  .u-sm-size1of1 {
    flex-basis: auto !important;
    width: 100% !important;
  }
}

/**
 * Medium
 */

@media (min-width: 600px) {
  .u-md-size1of4 {
    flex-basis: auto !important;
    width: 25% !important;
  }

  .u-md-size1of3 {
    flex-basis: auto !important;
    width: calc(100% * 1 / 3) !important;
  }

  .u-md-size1of2,
  .u-md-size2of4 {
    flex-basis: auto !important;
    width: 50% !important;
  }

  .u-md-size2of3 {
    flex-basis: auto !important;
    width: calc(100% * 2 / 3) !important;
  }

  .u-md-size3of4 {
    flex-basis: auto !important;
    width: 75% !important;
  }

  .u-md-size1of1 {
    flex-basis: auto !important;
    width: 100% !important;
  }
}

/**
 * Large
 */

@media (min-width: 1000px) {
  .u-lg-size1of4 {
    flex-basis: auto !important;
    width: 25% !important;
  }

  .u-lg-size1of3 {
    flex-basis: auto !important;
    width: calc(100% * 1 / 3) !important;
  }

  .u-lg-size1of2,
  .u-lg-size2of4 {
    flex-basis: auto !important;
    width: 50% !important;
  }

  .u-lg-size2of3 {
    flex-basis: auto !important;
    width: calc(100% * 2 / 3) !important;
  }

  .u-lg-size3of4 {
    flex-basis: auto !important;
    width: 75% !important;
  }

  .u-lg-size1of1 {
    flex-basis: auto !important;
    width: 100% !important;
  }
}

/**
 * Extra Large
 */

@media (min-width: 1500px) {
  .u-xl-size1of4 {
    flex-basis: auto !important;
    width: 25% !important;
  }

  .u-xl-size1of3 {
    flex-basis: auto !important;
    width: calc(100% * 1 / 3) !important;
  }

  .u-xl-size1of2,
  .u-xl-size2of4 {
    flex-basis: auto !important;
    width: 50% !important;
  }

  .u-xl-size2of3 {
    flex-basis: auto !important;
    width: calc(100% * 2 / 3) !important;
  }

  .u-xl-size3of4 {
    flex-basis: auto !important;
    width: 75% !important;
  }
}

/**
 * Intrinsic widths
 */

/**
 * Make an element shrink wrap its content.
 */

.u-sizeFit {
  flex-basis: auto !important;
}

/**
 * Make an element fill the remaining space.
 *
 * 1. Be explicit to work around IE10 bug with shorthand flex
 *    http://git.io/vllC7
 * 2. IE10 ignores previous `flex-basis` value. Setting again here fixes
 *    http://git.io/vllMt
 */

.u-sizeFill {
  flex: 1 1 0% !important; /* 1 */
  flex-basis: 0% !important; /* 2 */
}

/**
 * An alternative method to make an element fill the remaining space.
 * Distributes space based on the initial width and height of the element
 *
 * http://www.w3.org/TR/css-flexbox/images/rel-vs-abs-flex.svg
 */

.u-sizeFillAlt {
  flex: 1 1 auto !important;
  flex-basis: auto !important;
}

/**
 * Make an element the width of its parent.
 */

.u-sizeFull {
  width: 100% !important;
  max-width: none !important;
  flex: 1 0 100% !important;
}

/* @define utilities */

/**
 * Dynamic
 */

.u-space0 {
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
}

.u-space1 {
  margin-top: 2.6rem !important;
  margin-bottom: 2.6rem !important;
}

@media (min-width: 800px) and (min-height: 400px) {
  .u-space1 {
    margin-top: 4rem !important;
    margin-bottom: 4rem !important;
  }
}

.u-space2 {
  margin-top: 8vh !important;
  margin-bottom: 8vh !important;
}

.u-space2end {
  margin-bottom: 8vh !important;
}

.u-space3 {
  margin-top: 24vh !important;
  margin-bottom: 22vh !important;
}

.u-spacePullUpHero {
  margin-top: calc(-8vh - 1px);
}

/**
 * All
 */

.u-spaceA0 {
  margin: 0 !important;
}

.u-spaceA1 {
  margin: 0.5rem !important;
}

.u-spaceA2 {
  margin: 1rem !important;
}

.u-spaceA3 {
  margin: 1.5rem !important;
}

.u-spaceA4 {
  margin: 2rem !important;
}

.u-spaceA5 {
  margin: 2.5rem !important;
}

.u-spaceA6 {
  margin: 3rem !important;
}

.u-spaceA8 {
  margin: 4rem !important;
}

/**
 * Top
 */

.u-spaceT0 {
  margin-top: 0 !important;
}

.u-spaceT1 {
  margin-top: 0.5rem !important;
}

.u-spaceT2 {
  margin-top: 1rem !important;
}

.u-spaceT3 {
  margin-top: 1.5rem !important;
}

.u-spaceT4 {
  margin-top: 2rem !important;
}

.u-spaceT5 {
  margin-top: 2.5rem !important;
}

.u-spaceT6 {
  margin-top: 3rem !important;
}

.u-spaceT8 {
  margin-top: 4rem !important;
}

/**
 * Right
 */

.u-spaceR0 {
  margin-right: 0 !important;
}

.u-spaceR1 {
  margin-right: 0.5rem !important;
}

.u-spaceR2 {
  margin-right: 1rem !important;
}

.u-spaceR3 {
  margin-right: 1.5rem !important;
}

.u-spaceR4 {
  margin-right: 2rem !important;
}

.u-spaceR5 {
  margin-right: 2.5rem !important;
}

.u-spaceR6 {
  margin-right: 3rem !important;
}

.u-spaceR8 {
  margin-right: 4rem !important;
}

/**
 * Bottom
 */

.u-spaceB0 {
  margin-bottom: 0 !important;
}

.u-spaceB1 {
  margin-bottom: 0.5rem !important;
}

.u-spaceB2 {
  margin-bottom: 1rem !important;
}

.u-spaceB3 {
  margin-bottom: 1.5rem !important;
}

.u-spaceB4 {
  margin-bottom: 2rem !important;
}

.u-spaceB5 {
  margin-bottom: 2.5rem !important;
}

.u-spaceB6 {
  margin-bottom: 3rem !important;
}

.u-spaceB8 {
  margin-bottom: 4rem !important;
}

/**
 * Left
 */

.u-spaceL0 {
  margin-left: 0 !important;
}

.u-spaceL1 {
  margin-left: 0.5rem !important;
}

.u-spaceL2 {
  margin-left: 1rem !important;
}

.u-spaceL3 {
  margin-left: 1.5rem !important;
}

.u-spaceL4 {
  margin-left: 2rem !important;
}

.u-spaceL5 {
  margin-left: 2.5rem !important;
}

.u-spaceL6 {
  margin-left: 3rem !important;
}

.u-spaceL8 {
  margin-left: 4rem !important;
}

/**
 * Vertical
 */

.u-spaceV0 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.u-spaceV1 {
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

.u-spaceV2 {
  margin-top: 1rem !important;
  margin-bottom: 1rem !important;
}

.u-spaceV3 {
  margin-top: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.u-spaceV4 {
  margin-top: 2rem !important;
  margin-bottom: 2rem !important;
}

.u-spaceV5 {
  margin-top: 2.5rem !important;
  margin-bottom: 2.5rem !important;
}

.u-spaceV6 {
  margin-top: 3rem !important;
  margin-bottom: 3rem !important;
}

.u-spaceV8 {
  margin-top: 4rem !important;
  margin-bottom: 4rem !important;
}

/**
 * Horizontal
 */

.u-spaceH0 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.u-spaceH1 {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}

.u-spaceH2 {
  margin-left: 1rem !important;
  margin-right: 1rem !important;
}

.u-spaceH3 {
  margin-left: 1.5rem !important;
  margin-right: 1.5rem !important;
}

.u-spaceH4 {
  margin-left: 2rem !important;
  margin-right: 2rem !important;
}

.u-spaceH5 {
  margin-left: 2.5rem !important;
  margin-right: 2.5rem !important;
}

.u-spaceH6 {
  margin-left: 3rem !important;
  margin-right: 3rem !important;
}

.u-spaceH8 {
  margin-left: 4rem !important;
  margin-right: 4rem !important;
}

/* @define utilities */

.u-textRegular {
  font-weight: 400 !important;
}

.u-textBold {
  font-weight: 700 !important;
}

.u-textItalic {
  font-style: italic !important;
}

.u-textCenter {
  text-align: center !important;
}

.u-textNowrap {
  white-space: nowrap !important;
}

.u-textNowrap {
  white-space: nowrap !important;
}

.u-textUnselectable {
  user-select: none !important;
}

.u-textUppercase {
  text-transform: uppercase !important;
}

/**
 * Prevent text from wrapping onto multiple lines and truncate with an ellipsis.
 * 1. Ensure that the node has a maximum width after which truncation can occur.
 */

.u-textTruncate {
  display: block !important;
  max-width: 100% !important; /* 1 */
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/**
 * Source: https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/
 */

.u-textBreakLongWords {
  overflow-wrap: break-word;
  word-wrap: break-word;
  -ms-word-break: break-all;
  word-break: break-all;
  word-break: break-word;
  hyphens: auto;
}

/* @define utilities */

.u-slideDown {
  opacity: 0;
  animation: slide-down 300ms cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}

@keyframes slide-down {
  0% {
    opacity: 0;
    transform: translateY(-1.5rem);
  }

  100% {
    opacity: 1;
    transform: none;
  }
}

/**
 * Font declaration
 */

@font-face {
  font-family: 'Basier Circle';
  font-style: normal;
  font-weight: 400;
  src: url('/components/base/fonts/basiercircle-regular.woff') format('woff');
}

@font-face {
  font-family: 'Basier Circle';
  font-style: normal;
  font-weight: 700;
  src: url('/components/base/fonts/basiercircle-bold.woff') format('woff');
}

@font-face {
  font-family: 'Basier Circle';
  font-style: italic;
  font-weight: 400;
  src: url('/components/base/fonts/basiercircle-regularitalic.woff') format('woff');
}

/**
 * Document styles
 * 1. Global box sizing
 * 2. Guard for horizontal scrolling
 * 3. Support sticky footer solutions
 * 4. Simply feels better then global text cursor
 * 5. Site should have a background in case it's iframed
 * 6. Fabulous text rendering
 * 7. Fabulous svg text sizing
 */

:root {
  box-sizing: border-box; /* 1 */
  width: 100%; /* 2 */
  height: 100%; /* 3 */
  overflow-x: hidden; /* 2 */
  cursor: default; /* 4 */
  font-family: var(--document-font-family);
  background: rgb(var(--document-background-color)); /* 5 */
  color: rgb(var(--document-color));
  font-size: 100%;
  line-height: var(--document-line-height);
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: antialiased; /* 6 */
  -moz-osx-font-smoothing: grayscale; /* 6 */
  text-rendering: geometricPrecision; /* 7 */
}

@media (min-width: 1700px) {
  :root {
    font-size: 115%;
  }
}

*,
*::before,
*::after {
  box-sizing: inherit; /* 1 */
}

/**
 * Media elements
 */

svg,
img,
video,
iframe {
  display: inline-block;
  vertical-align: bottom;
}

/**
 * 1. Improve alt text rendering for broken images
 */

img {
  width: 100%;
  max-width: 100%;
  height: auto;
  font-size: 0.8rem; /* 1 */
}

/**
 * Inline elements
 */

strong {
  font-weight: 700;
}

/*
 * Clickable elements
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove the tapping delay
 */

a {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

a,
area,
button,
input,
label,
select,
summary,
textarea,
[tabindex] {
  -ms-touch-action: manipulation; /* 2 */
  touch-action: manipulation; /* 2 */
}

input {
  font-size: 1rem;
}

/**
 * Reset a few styles
 */

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
blockquote,
iframe,
figure {
  font: inherit;
  margin: 0;
  border: 0;
  list-style: none;
  padding: 0;
}

/**
 * Set sensible default ruler styles
 */

hr {
  display: block;
  width: 100%;
  height: 1px;
  margin: 0 auto;
  border: 0;
  background: rgba(0, 0, 0, 0.13);
}

/**
 * Clean out browser button styles
 */

button {
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  cursor: default;
}

/**
 * Pointer is for links, not for actions on the same page
 */

:root[scripting-enabled] [role='button'],
:root[scripting-enabled] [role='tab'] {
  cursor: default;
}

/**
 * Remove default focus styles for mouse users if :focus-visible is supported on
 * this platform, or polyfilled with https://github.com/WICG/focus-visible
 */

:focus:not(.focus-visible).js-focus-visible, .js-focus-visible :focus:not(.focus-visible) {
  outline: 0 !important;
}

/**
 * Provide enhanced focus styles for keyboard focus
 */

.focus-visible.js-focus-visible, .js-focus-visible .focus-visible {
  outline: rgb(var(--focus-ring-color)) solid var(--focus-ring-width) !important;
}

/**
 * Print styles
 */

@page {
  margin: 2cm;
}

@media print {
  a {
    page-break-inside: avoid;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p {
    page-break-after: avoid;
    page-break-inside: avoid;
  }

  img {
    page-break-inside: avoid;
    page-break-after: avoid;
  }

  ul,
  ol,
  img {
    page-break-before: avoid;
  }

  iframe {
    display: none;
  }

  a,
  a:link,
  a:visited {
    background: transparent;
    text-decoration: underline;
  }
}

/* @define Button */

.Button {
  display: inline-block;
  position: relative;
  overflow: hidden;
  padding: 1em 1.25em;
  border: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  border-radius: 0.1875rem;
  text-decoration: none;
  cursor: pointer;
  color: rgb(var(--color-blue));
  background: rgb(var(--color-gray));
  transition: background 100ms var(--ease-out);
}

.Button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: opacity 300ms;
  background: rgb(var(--color-gray-dark));
  opacity: 0;
}

.Button:hover::before,
.Button:active::before {
  opacity: 1;
}

.Button:active::before {
  transition-duration: 50ms;
}

.Button span {
  position: relative;
  z-index: 1;
}

.Button[disabled] {
  opacity: 0.6;
  pointer-events: none;
}

/**
 * Themes
 */

.Button--gray {
  color: rgb(var(--color-blue));
  background: rgb(var(--color-gray));
}

.Button--gray::before {
  background: rgb(var(--color-gray-dark));
}

.Button--yellow {
  color: rgb(var(--color-blue));
  background: rgb(var(--color-yellow));
}

.Button--yellow::before {
  background: rgb(var(--color-yellow-dark));
}

.Button--orange {
  color: #fff;
  background: rgb(var(--color-orange));
}

.Button--orange::before {
  background: rgb(var(--color-orange-dark));
}

.Button--turquoise {
  color: #fff;
  background: rgb(var(--color-turquoise));
}

.Button--turquoise::before {
  background: rgb(var(--color-turquoise-dark));
}

.Button--pink {
  color: rgb(var(--color-blue));
  background: rgb(var(--color-pink));
}

.Button--pink::before {
  background: rgb(var(--color-pink-dark));
}

.Button--blue {
  color: #fff;
  background: rgb(var(--color-blue));
}

.Button--blue::before {
  background: rgb(var(--color-blue-dark));
}

/* @define Callout */

.Callout {
  position: relative;
  overflow: hidden;
  border-radius: 0.375rem;
  background-color: rgb(var(--color-gray));
  color: rgb(var(--color-blue));
}

.Callout-content {
  flex: 1 1 auto;
  padding: 2rem 1.5rem;
}

@media (min-width: 1000px) {
  .Callout-content {
    padding: 2.5rem;
  }
}

.Callout-body {
  margin: 1rem 0 0 0;
}

.Callout-label {
  display: block;
  margin-bottom: 0.5em;
  color: rgb(var(--color-muted));
}

.Callout-title {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.15;
}

@media (min-width: 1000px) {
  .Callout-title {
    font-size: 2.5rem;
    line-height: 1.15;
    margin-top: -0.3rem;
  }
}

.Callout-figure {
  position: relative;
}

.Callout-image {
  display: block;
  width: 100%;
}

.Callout-link {
  align-self: flex-start;
  display: inline-block;
  color: rgb(var(--color-blue));
  padding: 0.1rem 0.3rem;
  margin: 1.25rem -0.3rem -0.1rem -0.3rem;
  border-radius: 0.1875rem;
  transition: background 400ms var(--ease-out);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
  max-width: 27em;
}

.Callout-link::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.Callout-link:hover {
  background: rgba(var(--color-blue), 0.05);
  transition: none;
}

.Callout-link:active {
  opacity: 0.6;
}

@media (min-width: 350px) {
  .Callout-link {
    font-size: 1.125rem;
  }
}

@media (min-width: 1000px) {
  .Callout-link {
    font-size: 1.25rem;
  }
}

@media (min-width: 800px) {
  .Callout {
    display: flex;
  }

  .Callout-figure {
    flex-basis: 40%;
    padding: 2rem 0 2rem 2rem;
  }

  .Callout--right .Callout-figure {
    padding: 2rem 2rem 2rem 0;
  }

  .Callout-image {
    border-radius: 0.375rem;
  }

  .Callout:not(.Callout--image) .Callout-body {
    margin-top: 0.5rem;
  }

  .Callout:not(.Callout--image) .Callout-label {
    width: 100%;
  }

  .Callout:not(.Callout--image) .Callout-text {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .Callout:not(.Callout--image) .Callout-title,
  .Callout:not(.Callout--image) .Callout-body {
    flex: 0 1 auto;
    width: calc(50% - 1.5rem);
  }

  .Callout--image .Callout-content {
    flex-basis: 60%;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .Callout--right .Callout-figure {
    margin-left: 0.5rem;
    order: 1;
    flex-wrap: nowrap;
  }

  .Callout--left .Callout-figure {
    margin-right: 0.5rem;
    order: 0;
    flex-wrap: nowrap;
  }
}

@media (min-width: 1000px) {
  .Callout-figure {
    flex-basis: 50%;
    padding: 2.5rem 0.75rem 2.5rem 2.5rem;
  }

  .Callout--right .Callout-figure {
    padding: 2.5rem 2.5rem 2.5rem 0.75rem;
  }

  .Callout--image .Callout-content {
    flex-basis: 50%;
  }

  .Callout--right .Callout-figure,
  .Callout--left .Callout-figure {
    margin: 0;
  }
}

@media (min-width: 1200px) {
  .Callout-figure {
    padding: 2.5rem 1.4rem 2.5rem 2.5rem;
  }

  .Callout--right .Callout-figure {
    padding: 2.5rem 2.5rem 2.5rem 1.4rem;
  }
}

/**
 * Themes
 */

.Callout--yellow {
  color: rgb(var(--color-blue));
  background-color: rgb(var(--color-yellow));
}

.Callout--yellow .Callout-link {
  color: rgb(var(--color-blue));
}

.Callout--orange {
  color: #fff;
  background-color: rgb(var(--color-orange));
}

.Callout--orange .Callout-link {
  color: rgb(var(--color-yellow));
}

.Callout--turquoise {
  color: #fff;
  background-color: rgb(var(--color-turquoise));
}

.Callout--turquoise .Callout-link {
  color: rgb(var(--color-yellow));
}

.Callout--pink {
  color: rgb(var(--color-blue));
  background-color: rgb(var(--color-pink));
}

.Callout--pink .Callout-link {
  color: rgb(var(--color-blue));
}

.Callout--blue {
  color: #fff;
  background-color: rgb(var(--color-blue));
}

.Callout--blue .Callout-link {
  color: rgb(var(--color-pink));
}

/* @define Grid */

:root {
  --Grid-gutter: 1.5rem;
  --Grid-gutter-vertical: 1.8rem;
}

@media (min-width: 800px), print {
  :root {
    --Grid-gutter: 2.8rem;
    --Grid-gutter-vertical: 2.5rem;
  }
}

@media (min-width: 1000px), print {
  :root {
    --Grid-gutter: 1.5rem;
    --Grid-gutter-vertical: 3rem;
  }
}

@media (min-width: 1200px), print {
  :root {
    --Grid-gutter: 2.8rem;
  }
}

.Grid {
  display: flex;
  flex-wrap: wrap;
  width: calc(100% + var(--Grid-gutter));
  margin: 0 calc(var(--Grid-gutter) * -0.5);
  margin-bottom: calc(var(--Grid-gutter-vertical) * -1);
}

.Grid--divided {
  margin-bottom: calc(var(--Grid-gutter-vertical) * -2);
  overflow: hidden;
}

.Grid--slim {
  --Grid-gutter: 0.6rem;
  --Grid-gutter-vertical: 0.6rem;
}

@media (min-width: 600px), print {
  .Grid--slim {
    --Grid-gutter: 1.5rem;
    --Grid-gutter-vertical: 1.5rem;
  }
}

/**
 * 1. Add support for truncated text within the grid
 */

.Grid-cell {
  flex: 0 0 100%;
  display: flex;
  flex-direction: column;
  min-width: 0; /* 1 */
  padding: 0 calc(var(--Grid-gutter) * 0.5);
  margin-bottom: var(--Grid-gutter-vertical);
}

.Grid--divided .Grid-cell {
  margin-bottom: calc(var(--Grid-gutter-vertical) * 2);
  margin-top: calc(var(--Grid-gutter-vertical) * -1);
}

.Grid-cell > * {
  flex-basis: 100%;
  min-width: 0; /* 1 */
}

.Grid--divided .Grid-cell::before {
  flex: 0 0 1px;
  content: '';
  display: block;
  width: 100%;
  height: 1px;
  margin-bottom: var(--Grid-gutter-vertical);
  background: rgba(0, 0, 0, 0.13);
}

.Grid-cell--appear {
  opacity: 0;
  transform: translateY(100px);
  animation: Grid-cell--appear 600ms cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@keyframes Grid-cell--appear {
  to {
    opacity: 1;
    transform: translateY(0px);
  }
}

/**
 * Carousel
 */

@media (max-width: 599px) {
  .Grid--carousel {
    width: 100%;
    margin: 0;
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    -webkit-scroll-snap-type: mandatory;
    scroll-snap-type: x mandatory;
    -webkit-scroll-snap-points-x: repeat(100%);
    scroll-snap-points-x: repeat(100%);
  }

  .Grid--carousel .Grid-cell {
    flex-basis: calc(100% - 2rem);
    padding-left: var(--document-margin);
    padding-right: 0;
    margin-right: calc((var(--document-margin) * -1) + 1rem);
    scroll-snap-align: start;
    margin-bottom: 0;
  }

  .Grid--carousel .Grid-cell:last-child {
    padding-right: var(--document-margin);
    flex-basis: calc(100% - 1rem);
  }
}

/* @define Book */

.Book {
  padding: 3rem 0 1.5rem;
  background: rgb(var(--color-gray));
}

@media (min-width: 800px) and (min-height: 400px) {
  .Book {
    padding-top: 5rem;
  }
}

.Book-content {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.Book-figure {
  margin-bottom: 1rem;
  padding: 0 2rem 0 1rem;
}

@media (min-width: 1000px) {
  .Book-content {
    align-items: center;
  }
}

@media (min-width: 600px) {
  .Book-figure {
    flex: 0 1 33.333%;
    padding-right: 2rem;
    margin-right: 0.5rem;
  }
}

@media (min-width: 1000px) {
  .Book-figure {
    flex: 0 1 50%;
    padding: 0 4rem;
  }
}

@media (min-width: 1200px) {
  .Book-figure {
    margin-right: 1.5rem;
  }
}

.Book-image {
  display: block;
  width: 100%;
  height: auto;
}

.Book-body {
  flex: 1 1 0%;
}

.Book-title {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.25;
  color: rgb(var(--color-blue));
}

@media (min-width: 800px) and (min-height: 400px) {
  .Book-title {
    font-size: 2.75rem;
    line-height: 1.2;
  }
}

.Book-rating {
  display: block;
  margin: 0.5em 0;
  position: relative;
  font-size: 0.875rem;
}

.Book-rating::before {
  content: '★★★★★';
  position: absolute;
  color: rgb(var(--color-muted));
}

.Book-rating::after {
  content: attr(data-rating);
  position: relative;
  color: #ff9300;
}

.Book-author {
  display: block;
  margin: 0.5em 0 1em;
  font-size: 0.875rem;
}

.Book-footer {
  flex: 1 0 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 1.5rem 0 0;
  margin-top: 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.Book-retailers {
  display: none;
  font-size: 0.875rem;
  color: rgb(var(--color-muted));
}

@media (min-width: 600px) {
  .Book-footer {
    margin-top: 2rem;
  }

  .Book-retailers {
    display: flex;
    align-items: center;
    margin-right: 1rem;
  }
}

.Book-logotype {
  display: block;
  width: auto;
  max-height: 0.9rem;
  margin-left: 1rem;
}

/* @define Course */

.Course {
  padding: 3rem 1.5rem;
  border-radius: 0.375rem;
  background-color: rgb(var(--color-gray));
}

.Course + .Course {
  margin-top: 1.5rem;
}

@media (min-width: 800px) and (min-height: 400px) {
  .Course {
    padding: 3.5rem;
  }
}

.Course-panel {
  padding: 2rem 1.5rem;
  border-radius: 0.375rem;
  border: 1px solid rgba(0, 0, 0, 0.13);
  background-color: #fff;
}

.Course-tag {
  display: inline-block;
  padding: 0.3em 0.8em;
  margin: 0 0.5em 0.5em 0;
  font-size: 0.75rem;
  border-radius: 0.1875rem;
}

.Course-title {
  margin-bottom: 0.5em;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.25;
}

@media (min-width: 800px) and (min-height: 400px) {
  .Course-title {
    font-size: 2.35rem;
    line-height: 1.2;
  }
}

.Course-title:not(:first-child) {
  margin-top: 0.25em;
}

.Course-link {
  display: inline-block;
  margin-top: 1em;
  padding: 0.1em 0.3em;
  margin: 1.5rem -0.3em -0.1em -0.3em;
  border-radius: 0.1875rem;
  transition: background 400ms var(--ease-out);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
}

.Course-link:hover {
  background: rgba(var(--color-blue), 0.05);
  transition: none;
}

.Course-link:active {
  opacity: 0.6;
}

.Course-heading {
  display: block;
  margin: 0 0 1em;
  font-weight: 700;
}

.Course-features {
  padding-left: 1.5em;
}

@media (min-width: 600px) and (max-width: 1200px) {
  .Course-features {
    font-size: 0.9rem;
  }
}

.Course-feature {
  margin-bottom: 0.5em;
  position: relative;
  list-style-position: outside;
  list-style-image: url('/components/course/checkmark.svg');
}

.Course-dates {
  margin-top: var(--Grid-gutter);
}

/* @define Product */

.Product {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  padding: 1.5rem 1.5rem 3rem;
  border: 1px solid rgba(0, 0, 0, 0.13);
  border-radius: 0.375rem;
}

.Product + .Product {
  margin-top: 1.5rem;
}

@media (min-width: 600px) and (min-height: 350px) {
  .Product {
    padding: 3rem 1.5rem;
  }
}

@media (min-width: 800px) and (min-height: 400px) {
  .Product {
    padding: 3.5rem;
  }
}

.Product--standalone {
  border: 0;
  padding: 0;
}

.Product-figure {
  flex: 0 0 100%;
  margin-bottom: 2rem;
  position: relative;
  overflow: hidden;
  border-radius: 0.375rem;
}

@media (min-width: 600px) {
  .Product-figure {
    flex: 0 0 33.333%;
  }
}

.Product-figure::before {
  content: '';
  display: block;
  padding-top: 100%;
}

.Product-image {
  position: absolute;
  left: 50%;
  top: 50%;
  min-width: 100%;
  min-height: 100%;
  max-height: 100%;
  width: auto;
  transform: translate(-50%, -50%);
  background: rgb(var(--color-gray));
}

.Product.is-loading .Product-image {
  background-color: rgba(var(--loading-color));
}

@supports (object-fit: cover) {
  .Product-image {
    object-fit: cover;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    transform: none;
  }
}

.Product-header {
  flex: 1 1 100%;
}

@media (min-width: 600px) {
  .Product-header {
    flex: 1 1 0%;
    margin-left: 2rem;
  }
}

.Product-label {
  display: block;
  margin-bottom: 0.5rem;
}

.Product-title {
  margin-bottom: 0.5em;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.25;
}

@media (min-width: 800px) and (min-height: 400px) {
  .Product-title {
    font-size: 2.75rem;
    line-height: 1.2;
  }
}

.Product-properties {
  margin: 0 0 1rem;
}

.Product-value {
  display: inline-block;
}

.Product-value {
  margin: 0 1rem 0.5rem 0;
}

.Product-body {
  margin-bottom: 2rem;
}

.Product-heading {
  margin: 2rem 0 1rem;
  font-weight: 700;
}

.Product-features {
  padding-left: 1.5em;
}

.Product-feature {
  margin-bottom: 0.5em;
  position: relative;
  list-style-position: outside;
  list-style-image: url('/components/product/checkmark.svg');
}

@media (min-width: 1000px) {
  .Product {
    display: block;
    overflow: hidden;
  }

  .Product-figure,
  .Product-contact {
    float: left;
    clear: left;
    width: 33.333%;
  }

  .Product-header,
  .Product-body {
    float: right;
    width: 66.666%;
    padding-left: 4rem;
    margin-left: 0;
    position: relative;
    overflow: hidden;
  }
}

/* @define Date */

.Date {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 1.35rem 1.5rem;
  margin: 0.5rem 0;
  border: 1px solid rgba(0, 0, 0, 0.13);
  background-color: #fff;
  border-radius: 0.375rem;
  color: rgb(var(--color-muted));
}

.Date-content {
  width: 100%;
  padding-right: 1.5rem;
  margin-right: auto;
}

@media (min-width: 1000px) {
  .Date-content {
    max-width: calc(100% - 12rem);
  }
}

.Date-title {
  font-size: 1.125rem;
  color: rgb(var(--document-color));
}

.Date-action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.5rem;
}

.Date-meta {
  margin: 0 1.5rem 0.25rem 0;
}

@media (min-width: 800px) {
  .Date-meta {
    margin-bottom: 0;
  }
}

/* @define View */

.View {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  background: rgb(var(--document-background));
}

.View.is-overlayed {
  background: rgb(var(--color-gray));
}

/**
 * Header
 */

.View-header {
  position: relative;
  z-index: 5;
}

/**
 * Main content area
 */

.View-main {
  flex-grow: 1;
}

@media (max-width: 799px) {
  .View.is-overlayed .View-main {
    display: none !important;
  }
}

.View-title {
  display: flex;
  justify-content: space-between;
  margin-bottom: 1rem;
  font-weight: 700;
  font-size: 1.25rem;
}

@media (min-width: 600px) {
  .View-title {
    margin-bottom: 1.5rem;
  }
}

/**
 * Footer
 */

.View-footer::before {
  content: '';
  height: 13vh;
  display: block;
  max-height: 7rem;
}

@media (min-width: 1000px) {
  .View-footer::before {
    max-height: none;
    min-height: 8rem;
  }
}

/**
 * Slide in things
 */

:root[scripting-enabled] .View-slide {
  opacity: 0;
  transform: translateY(20vh);
  animation: View-slide--appear 600ms 3000ms forwards var(--ease-out);
}

:root[scripting-enabled] .View-slide.is-initialized {
  animation: none;
}

:root[scripting-enabled] .View-slide.is-visible {
  will-change: transform;
  animation: View-slide--appear 600ms forwards var(--ease-out);
}

@keyframes View-slide--appear {
  to {
    opacity: 1;
    transform: translateY(0vh);
  }
}

:root[scripting-enabled] .View-slide.is-immediate {
  opacity: 1;
  transform: translateY(0vh);
  animation: none;
}

/* @defind Embed */

.Embed {
  width: 100%;
  position: relative;
  color: #fff;
  background: rgb(var(--color-blue));
  user-select: none;
}

.Embed-link {
  display: block;
  width: 0;
  height: 0;
  cursor: default;
}

.Embed-link::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.Embed-link::after {
  content: '';
  width: 3rem;
  height: 3rem;

  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;

  text-indent: 3rem;
  white-space: nowrap;
  overflow: hidden;

  transform: translate(-50%, -50%);
  transition: transform 140ms var(--ease);
  will-change: transform;
  background-color: rgba(var(--current-color));
  background-image: url('/components/embed/icon.svg');
  background-size: 100% 100%;
  border-radius: 100%;
  box-shadow: 0 0 2rem 1px rgba(0, 0, 0, 0.15);
}

.Embed:hover .Embed-link::after {
  transform: translate(-50%, -50%) scale(1.08);
}

.Embed--fullscreen::after,
.Embed--hidden::after {
  content: none;
}

@media (min-width: 600px) {
  .Embed:not(.Embed--sm) .Embed-link::after {
    width: 4.5rem;
    height: 4.5rem;
    transform: translate(-50%, -60%);
  }

  .Embed:not(.Embed--sm):hover .Embed-link::after {
    transform: translate(-50%, -60%) scale(1.08);
  }
}

.Embed-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.375rem;
}

@supports (object-fit: cover) {
  .Embed:not(.Embed--sm) .Embed-image {
    min-height: 40vh;
    object-fit: cover;
  }
}

.Embed-caption {
  display: none;
  flex-direction: column-reverse;
  width: 100%;
  min-height: 25%;
  padding: 1rem 1.1rem;
  position: absolute;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(
    rgba(0, 0, 0, 0),
    rgba(0, 0, 0, 0.3) 40%,
    rgba(0, 0, 0, 0.5)
  );
  border-radius: 0 0 0.375rem 0.375rem;
}

.Embed-title {
  padding-top: 0.2rem;
  position: relative;
  z-index: 1;
  line-height: 1.3;
  font-size: 1rem;
  max-width: 35em;
  font-family: var(--heading-font-family);
  line-height: var(--heading-line-height);
}

@media (min-width: 375px) {
  .Embed:not(.Embed--sm) .Embed-caption {
    display: flex;
  }
}

@media (min-width: 500px) {
  .Embed-title {
    font-size: 1.25rem;
    line-height: 1.25;
  }

  .Embed-caption {
    padding: 1.4rem 2rem;
  }
}

/**
 * Fullscreen mode
 */

.Embed--fullscreen {
  width: 100vw;
  height: 100vh;
  padding: 2rem;

  position: fixed;
  top: 0;
  left: 0;
  z-index: 30;

  background: rgba(0, 0, 0, 0.85);
  animation: Embed--appear 500ms cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}

@keyframes Embed--appear {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.Embed--fullscreen.is-closing {
  animation: Embed--disappear 350ms 200ms cubic-bezier(0.165, 0.84, 0.44, 1)
    forwards;
}

@keyframes Embed--disappear {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.Embed-close {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: -2;
}

.Embed-cross {
  box-sizing: content-box;
  width: 1.5rem;
  height: 1.5rem;
  padding: 1rem;
  position: absolute;
  top: 2rem;
  right: 2rem;
  border-radius: 0.1875rem;
  pointer-events: none;
  background-color: rgba(81, 81, 81, 0);
  transition: background-color 180ms var(--ease-out);
}

.Embed-cross::before,
.Embed-cross::after {
  content: '';
  width: 1.5rem;
  height: 2px;
  position: absolute;
  right: 1rem;
  top: 50%;
  background: currentColor;
}

.Embed-cross::before {
  transform: rotate(45deg);
}

.Embed-cross::after {
  transform: rotate(-45deg);
}

.Embed-close:hover .Embed-cross {
  background-color: rgba(81, 81, 81, 1);
}

.Embed-wrapper {
  height: 0;
  width: 88%;
  max-width: var(--document-max-width);

  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -1;
}

@media (min-width: 600px) {
  .Embed-wrapper {
    width: 75%;
  }
}

.Embed-iframe {
  height: 0;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  padding-bottom: calc(100% * (9 / 16));

  background-color: #000;
  box-shadow: 0 0 10rem rgba(0, 0, 0, 0.2);
  transform: translate(-50%, -50%);
  will-change: transform;
}

.Embed--fullscreen.is-closing .Embed-iframe {
  animation: Embed-iframe--disappear 250ms cubic-bezier(0.33, 0.89, 0.62, 1)
    forwards;
}

@keyframes Embed-iframe--disappear {
  from {
    transform: translate(-50%, -50%);
  }

  to {
    transform: translate(-50%, 50vh);
  }
}

.Embed-iframe iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.Embed--fullscreen .Embed-iframe iframe {
  visibility: hidden;
  animation: Embed-content--appear 0ms 650ms linear forwards;
}

@keyframes Embed-content--appear {
  to {
    visibility: visible;
  }
}

/* @define Card */

:root {
  --Card-aspect: calc(10 / 12);
  --Card-tiltX: 0;
  --Card-tiltY: 0;
}

.Card {
  display: flex;
  flex-direction: column;
  width: 100%;
  position: relative;
  z-index: 0;
  color: rgb(var(--current-color));
}

@media print {
  .Card {
    page-break-inside: avoid;
    page-break-after: avoid;
  }
}

.Card-content {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  align-items: flex-start;
  padding: 0;
}

/**
 * 1. Get a z-index to put ontop of hover shading
 */

.Card-body {
  position: relative; /* 1 */
  width: 100%;
  max-width: 36rem;
}

.Card--image .Card-body {
  margin-top: 1.375rem;
}

.Card-body a {
  position: relative;
  z-index: 1;
  transition: opacity 200ms var(--ease-out);
}

.Card-body a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
}

.Card-body a:active {
  opacity: 0.6;
  transition: none;
}

.Card-meta {
  display: block;
  margin-bottom: 0.75em;
  font-size: 0.875rem;
  font-style: normal;
  color: rgb(var(--color-muted));
}

.Card-title {
  margin-bottom: 0.5em;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  max-width: 40rem;
}

@media (min-width: 1000px) {
  .Card-title {
    font-size: 1.75rem;
  }
}

.Card-text {
  margin: 0.5rem 0 0;
}

/**
 * Figure
 */

.Card-figure {
  max-height: 24rem;
  position: relative;
  overflow: hidden;
  background-color: rgba(var(--loading-color));
}

.Card-figure::before {
  content: '';
  display: block;
  height: 0;
  padding-top: calc(100% * var(--Card-aspect));
}

.Card-figureIcon {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  display: block;
}

@media (min-width: 600px) {
  .Card-figureIcon {
    width: 67px;
    height: 67px;
  }
}

.Card-image {
  position: absolute;
  left: 50%;
  top: 50%;
  min-width: 100%;
  min-height: 100%;
  max-height: 100%;
  width: auto;
  transform: translate(-50%, -50%);
  border-radius: 0.375rem;
}

@supports (object-fit: cover) {
  .Card .Card-image {
    object-fit: cover;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    transform: none;
  }
}

/**
 * Link
 */

.Card-link {
  display: inline-block;
  color: rgb(var(--color-turquoise));
  padding: 0.1em 0.3em;
  margin: 0.5rem -0.3em -0.1em -0.3em;
  border-radius: 0.1875rem;
  transition: background 400ms var(--ease-out);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
  max-width: 32rem;
}

.Card-link::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}

.Card-link:active {
  opacity: 0.6;
}

.Card-link:hover {
  background: rgba(var(--color-blue), 0.05);
  transition: none;
}

/** @define Text */

.Text {
  color: rgb(var(--current-color));
  font-family: var(--default-font-family);
  line-height: var(--default-line-height);
  font-size: 1rem;
  text-align: left;
  max-width: var(--container-medium-width);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.Text--muted,
.Text-muted {
  color: rgb(var(--color-muted));
}

.Text--small,
.Text-small {
  font-size: 1rem;
}

.Text--large,
.Text-large {
  font-size: 1.25rem;
}

.Text--left {
  margin: 0;
}

@media (min-width: 350px) {
  .Text {
    font-size: 1.125rem;
  }

  .Text--small,
  .Text-small {
    font-size: 0.9rem;
  }

  .Text--large,
  .Text-large {
    font-size: 1.25rem;
  }
}

@media (min-width: 800px) and (min-height: 400px) {
  .Text {
    font-size: 1.25rem;
  }

  .Text--small,
  .Text-small {
    font-size: 1rem;
  }

  .Text--large,
  .Text-large {
    font-size: 1.5rem;
    line-height: 1.4;
  }
}

/**
 * Inline elements
 */

.Text small {
  font-size: 0.875rem;
}

.Text a:not(.Embed-link) {
  color: rgb(var(--color-link));
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
  padding: 0.1em 0.3em;
  margin: -0.1em -0.3em;
  border-radius: 0.1875rem;
  transition: background 400ms var(--ease-out);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
}

.Text a:not(.Embed-link):hover {
  background: rgba(var(--color-link), 0.05);
  transition: none;
}

.Text a:not(.Embed-link):active {
  opacity: 0.6;
}

/**
 * Block elements
 */

.Text p,
.Text ul,
.Text ol,
.Text h1,
.Text h2,
.Text h3,
.Text h4,
.Text h5,
.Text h6 {
  margin: 0.8em 0;
}

.Text p:first-child,
.Text ul:first-child,
.Text ol:first-child,
.Text h1:first-child,
.Text h2:first-child,
.Text h3:first-child,
.Text h4:first-child,
.Text h5:first-child,
.Text h6:first-child {
  margin-top: 0;
}

.Text p:last-child,
.Text ul:last-child,
.Text ol:last-child,
.Text h1:last-child,
.Text h2:last-child,
.Text h3:last-child,
.Text h4:last-child,
.Text h5:last-child,
.Text h6:last-child {
  margin-bottom: 0;
}

.Text img:not(.Embed-image) {
  display: block;
  width: 100%;
  height: auto;
  margin: 2.2em 0;
  border-radius: 0;
}

@media (min-width: 600px) {
  .Text img:not(.Embed-image) {
    border-radius: 0.375rem;
  }
}

.Text-caption {
  margin: -1.2em 0 1.6em;
  font-size: 1rem;
  text-align: center;
  color: rgb(var(--color-muted));
}

.Text-caption:empty {
  display: none;
}

@media (min-width: 800px) and (min-height: 400px) {
  .Text img:not(.Embed-image) {
    margin: 4em 0;
  }

  .Text-caption {
    margin: -2.5em 0 2.5em;
  }
}

.Text pre {
  font-size: 0.8rem;
  overflow: auto;
  background: rgb(var(--color-blue));
  color: rgb(255, 255, 255);
  padding: 1rem;
  text-align: left;
}

/**
 * Lists
 */

.Text ul,
.Text ol {
  margin: 0;
}

.Text ul:not(:first-child),
.Text ol:not(:first-child) {
  margin-top: calc(1.2em - 0.5em);
}

.Text ul:not(:last-child),
.Text ol:not(:last-child) {
  margin: 1.2em;
}

.Text ul {
  list-style-type: none;
}

.Text ol {
  list-style-type: decimal;
  padding-left: 1.7em;
}

.Text ul > li {
  padding-left: 1.2em;
  position: relative;
}

.Text ol > li {
  padding-left: 0.5em;
}

.Text ul > li::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: calc(0.5em + 0.6em);
  background: currentColor;
}

.Text li {
  padding-top: 0.5em;
}

/**
 * Headings
 */

.Text h1,
.Text h2,
.Text h3,
.Text h4,
.Text h5,
.Text h6,
.Text .Text-h1,
.Text .Text-h2,
.Text .Text-h3,
.Text .Text-h4,
.Text .Text-h5,
.Text .Text-h6 {
  font-weight: 700;
  line-height: 1.25;
}

.Text h1,
.Text .Text-h1 {
  font-size: 1.55em;
}

.Text h2,
.Text .Text-h2 {
  font-size: 1.33rem;
  line-height: 1.35;
  margin-top: 2em;
}

.Text h3,
.Text .Text-h3 {
  margin: 0 0 -0.4em 0;
}

@media (min-width: 600px) {
  .Text h2,
  .Text .Text-h2 {
    font-size: 1.8rem;
  }

  .Text h3,
  .Text .Text-h3 {
    margin: 0.8em 0;
    font-size: 1.1em;
  }
}

@media (min-width: 1400px) {
  .Text h2,
  .Text .Text-h2 {
    font-size: 2.5rem;
    line-height: 1.25;
  }

  .Text--small h2,
  .Text--small .Text-h2 {
    margin-bottom: 1rem;
    font-size: 1.8rem;
  }
}

.Text h4,
.Text .Text-h4 {
  font-size: 1em;
  margin-top: 1.4em;
}

.Text h5,
.Text .Text-h5 {
  font-size: 0.9em;
  text-transform: uppercase;
}

.Text h6,
.Text .Text-h6 {
  font-size: 0.8em;
  font-weight: 400;
  text-transform: uppercase;
  color: rgba(var(--color-muted));
}

@media (min-width: 800px) and (min-height: 400px) {
  .Text h1,
  .Text .Text-h1 {
    font-size: 2.1em;
  }
}

.Text--centerOnlyChildHeading h1:only-child,
.Text--centerOnlyChildHeading h2:only-child,
.Text--centerOnlyChildHeading h3:only-child,
.Text--centerOnlyChildHeading h4:only-child {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

.Text-number {
  border-radius: 50%;
  width: 3.5rem;
  height: 3.5rem;
  font-size: 2.25rem;
  background: pink;
  display: block;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #110046;
  font-weight: 700;
  margin-bottom: 1rem;
}

@media (min-width: 1000px) {
  .Text-number {
    width: 4.5rem;
    height: 4.5rem;
    font-size: 3rem;
  }
}

.Text-small .Symbol {
  display: none;
}

.Text .Embed {
  margin: 3rem 0;
}

/* @define Person */

.Person {
  display: flex;
  align-items: flex-start;
  position: relative;
}

.Person-figure {
  flex: 0 0 24vw;
  max-width: 180px;
  margin-right: 2.2rem;
  position: relative;
  overflow: hidden;
  border-radius: 100%;
  opacity: 1;
  transition: opacity 200ms ease;
}

.Person--small .Person-figure {
  max-width: 4rem;
  margin-right: 1rem;
}

@media (min-width: 600px) and (max-width: 1200px) {
  .Person--small .Person-figure {
    max-width: 3rem;
  }
}

.Person-figure::before {
  content: '';
  display: block;
  padding-top: 100%;
}

.Person-image {
  min-width: 100%;
  min-height: 100%;
  max-height: 100%;
  width: auto;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: rgb(var(--color-gray));
}

@supports (object-fit: cover) {
  .Person-image {
    object-fit: cover;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    transform: none;
  }
}

.Person.is-loading .Person-image {
  background-color: rgba(var(--loading-color));
}

.Person-info {
  flex: 1 1 auto;
}

.Person-title {
  font-size: 1.25rem;
  line-height: 1.2;
  font-weight: 700;
  margin-bottom: 0.2em;
  margin-top: 0.1em;
}

.Person--small .Person-title {
  font-size: 1rem;
  font-weight: 400;
}

@media (min-width: 900px) {
  .Person-title {
    margin-top: 0.7rem;
  }
}

.Person--small .Person-title {
  margin-top: 0;
}

.Person-info a:not(.Person-link):hover {
  color: rgb(var(--document-color));
}

.Person-link,
.Person-text a {
  display: inline-block;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
  padding: 0.1em 0.3em;
  margin: 0 -0.3em;
  border-radius: 0.1875rem;
  color: rgb(var(--color-turquoise));
  transition: background 400ms var(--ease-out);
}

.Person-link:hover,
.Person-text a:hover {
  background: rgba(var(--color-turquoise), 0.05);
  transition: none;
}

.Person-link:active,
.Person-text a:active {
  opacity: 0.6;
}

.Person-text {
  color: rgb(var(--color-muted));
  margin: 0.3em 0;
}

.Person--small .Person-text {
  font-size: 0.9rem;
}

/* @define Footer */

.Footer-navigation {
  background: rgb(var(--color-gray));
  padding: 3rem 0 2.5rem;
  color: rgb(var(--color-blue));
}

@media (min-width: 800px) {
  .Footer-navigation {
    padding: 4rem 0 3.5rem;
  }
}

@media (min-width: 1000px) {
  .Footer-navigation {
    padding-bottom: 1.8rem;
  }
}

.Footer--newsletter:not(.Footer--alt) .Footer-navigation {
  padding-top: 16rem;
}

@media (min-width: 800px) {
  .Footer--newsletter:not(.Footer--alt) .Footer-navigation {
    padding-top: 13rem;
  }
}

.Footer-menu {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -0.4rem;
}

.Footer-list {
  margin: 0.8rem 0;
}

.Footer-section.Footer-section {
  flex-basis: 50%;
  margin-bottom: 1rem;
}

@media (max-width: 599px) {
  .Footer-section.Footer-section {
    flex-basis: 100% !important;
    width: 100% !important;
  }
}

.Footer-item {
  margin: 0.4rem;
  margin-right: 1rem;
}

.Footer-link {
  display: inline-block;
  padding: 0.1rem 0.3rem;
  margin: -0.1rem -0.3rem;
  border-radius: 0.1875rem;
  transition: background 400ms var(--ease-out);
}

.Footer-link:link:hover,
.Footer-link:link:active {
  background: rgba(var(--color-blue), 0.05);
  transition: none;
}

.Footer-link--primary {
  font-weight: 700;
}

@media (min-width: 800px) {
  .Footer-link--primary {
    font-size: 1.375rem;
  }

  .Footer-item {
    margin-right: 2rem;
  }
}

@media (min-width: 600px) {
  .Footer-section {
    flex-basis: 33.33333%;
  }

  .Footer-title {
    font-size: 1.5rem;
  }
}

@media (min-width: 800px) {
  .Footer-section {
    flex-basis: 25%;
  }
}

@media (min-width: 1000px) {
  .Footer-section {
    flex-basis: 16.66666%;
  }
}

/**
 * Newsletter
 */

.Footer-newsletter {
  padding: 3rem 1.5rem 2rem;
  margin: -9.5rem 0 0;
  border-radius: 0.375rem;
  color: #fff;
  background-color: rgb(var(--color-blue));
  transform: translateY(50%);
}

@media (min-width: 600px) {
  .Footer-newsletter {
    margin-top: -4rem;
  }
}

@media (min-width: 1000px) {
  .Footer-newsletter {
    margin-top: -3rem;
  }
}

.Footer-form {
  width: 100%;
  margin: 2rem 0;
  position: relative;
}

.Footer-email {
  display: block;
  width: 100%;
  padding: 1em 1.25em;
  border: 0;
  max-width: 30rem;
  font-size: 1rem;
  line-height: 1;
  background-color: #fff;
  color: rgb(var(--color-blue));
  border-radius: 0.1875rem;
  -webkit-appearance: none;
}

.Footer-email.focus-visible.js-focus-visible,
.js-focus-visible .Footer-email.focus-visible,
.Footer-email:focus {
  outline: 0 !important;
  border: 0 !important;
}

.Footer-message {
  display: block;
  width: 100%;
  margin-top: 1rem;
  font-weight: 700;
  position: absolute;
}

.Footer-button {
  margin-top: 0.5em;
  text-align: left;
}

@media (min-width: 800px) {
  .Footer-newsletter {
    display: flex;
    align-items: center;
    padding: 3.5rem;
  }

  .Footer-newsletter p {
    max-width: 32em;
  }

  .Footer-form {
    flex: 0 1 45em;
    margin-left: 3rem;
  }
}

@media (min-width: 1100px) {
  .Footer-newsletter {
    margin-left: auto;
    margin-right: auto;
  }
}

.Footer-contact {
  max-width: 30rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 1400px) {
  .Footer-contact {
    max-width: 48rem;
  }
}

/**
 * Meta section
 */

.Footer-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: center;
}

.Footer-home {
  display: inline-block;
  width: 6.8rem;
  transform-origin: center;
}

.Footer-logo {
  width: 8.5rem;
}

.Footer-copy {
  opacity: 0.5;
  font-size: 0.875rem;
  margin-top: 0.2rem;
  white-space: nowrap;
}

@media (min-width: 600px) {
  .Footer-meta {
    margin: 2rem 0 1rem;
  }

  .Footer-copy {
    display: block;
  }
}

@media (min-width: 1000px) {
  .Footer-meta {
    display: flex;
    flex-wrap: nowrap;
  }

  .Footer-meta .Footer-logo {
    position: relative;
    order: 1;
  }

  .Footer-meta .Footer-section {
    order: 2;
  }

  .Footer-meta .Footer-copy {
    order: 3;
  }

  .Footer-meta .Footer-list,
  .Footer-meta .Footer-copy,
  .Footer-meta .Footer-item,
  .Footer-meta .Footer-home {
    margin-top: 0;
    margin-bottom: 0;
  }
}

/**
 * Alternative version
 * Used when the footer is used as mobile navigation
 */

@media (max-width: 799px) {
  .Footer--alt .Footer-navigation {
    padding-top: 5rem;
    background: rgb(var(--color-gray));
    text-align: center;
    line-height: 1.35;
  }

  .Footer--alt .Footer-newsletter,
  .Footer--alt .Footer-contact {
    display: none;
  }

  .Footer--alt .Footer-meta {
    display: none;
  }

  .Footer-list {
    margin: 0.4rem 0 1.8rem;
  }

  .Footer--alt .Footer-menu {
    font-size: 1.125rem;
  }

  .Footer--alt .Footer-link--primary {
    font-size: 1.375rem;
  }

  .Footer--alt .Footer-copy {
    display: none;
  }

  .Footer--alt .Footer-menu {
    text-align: left;
  }

  .Footer--alt .Footer-meta {
    padding-top: 2rem;
    margin: 1.3rem 0;
  }
}

@media (min-width: 600px) {
  .Footer--alt .Footer-navigation {
    padding-top: 7rem;
  }
}

/* @define Facts */

.Facts {
  padding: 3rem var(--document-margin);
  background-color: rgb(var(--color-gray));
}

.Facts-heading {
  font-size: 1.375rem;
  margin-bottom: 1rem;
  font-weight: 700;
}

@media (min-width: 600px) and (min-height: 400px) {
  .Facts {
    padding: 3rem 1.5rem;
    border-radius: 0.375rem;
  }
}

@media (min-width: 800px) and (min-height: 400px) {
  .Facts {
    padding: 4rem 3.25rem;
  }
}

@media (min-width: 900px) {
  .Facts-body {
    column-count: 2;
    column-gap: 3rem;
  }
}

.Facts-body li,
.Facts-body p {
  break-inside: avoid-column;
}

/* @define Partners */

.Partners {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 0;
  margin: 4rem -1rem 0;
  justify-content: center;
}

.Partners-item {
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
}

.Partners-logo {
  display: inline-block;
  width: auto;
  height: auto;
  max-height: 2.7rem;
  max-width: 7.5rem;
  user-select: none;
}

@media (min-width: 900px) {
  .Partners {
    margin: 4rem -1rem 0;
  }

  .Partners-item {
    padding: 0.5rem 1.5rem;
  }

  .Partners-logo {
    max-height: 4.5rem;
    max-width: 12rem;
  }
}

@media (min-width: 1000px) {
  .Partners {
    margin: 5.5rem -1rem 0;
  }
}

/* @define Quote */

.Quote {
  overflow: hidden;
}

.Quote-symbol {
  display: block;
  color: rgb(var(--color-turquoise));
  width: 3rem;
  margin-bottom: 1rem;
}

.Quote-content {
  max-width: var(--container-medium-width);
  margin: 0 auto;
  font-weight: 700;
}

.Quote figcaption {
  margin-top: 1rem;
  font-weight: 400;
}

.Quote em {
  font-style: normal;
}

:root {
  --Header-height: 4rem;
}

/* @define Header */

.Header {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  height: var(--Header-height);
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  color: rgb(var(--color-blue));
  user-select: none;
}

.Header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
}

@media (min-width: 600px) {
  :root {
    --Header-height: 5rem;
  }
}

@media (min-width: 1000px) {
  :root {
    --Header-height: 7rem;
  }
}

/**
 * Logo
 */

.Header-home {
  display: inline-block;
  position: relative;
  top: 0.1rem;
  white-space: nowrap;
  font-weight: 700;
}

.Header-home:active {
  opacity: 0.6;
}

.Header-logo {
  width: 8.5rem;
}

@media (min-width: 900px) {
  .Header-home {
    font-size: 1.75rem;
  }

  .Header-logo {
    width: 11rem;
  }
}

.Header-link.is-active {
  font-weight: 700;
}

/**
 * Desktop navigation
 */

.Header-list {
  display: none;
  white-space: nowrap;
}

@media (min-width: 900px) {
  .Header-menu {
    margin-top: 0.6rem;
  }

  .Header-list {
    display: flex;
    height: 100%;
    margin-right: -1rem;
  }

  .Header-item {
    height: 100%;
    position: relative;
  }

  .Header-link {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0.6rem 1rem;
    border-radius: 0.1875rem;
  }

  .Header-link:hover .Header-label {
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 0.14em;
  }

  .Header-link:active .Header-label,
  .Header-link:active .Header-title {
    opacity: 0.6;
  }

  .Header-label {
    display: inline-block;
  }

  .Header-item--dropdown .Header-link {
    padding-right: 0.7rem;
  }

  .Header-dropdown {
    width: 16rem;
    pointer-events: none;
    position: absolute;
    right: -2rem;
    top: calc(100% - 1px);
    z-index: 102;
    font-size: 0.75rem;
    color: rgba(var(--color-muted));
    background: rgb(255, 255, 255);
    border-radius: 0.375rem;
    opacity: 0;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.02),
      0 30px 100px -20px rgba(50, 50, 93, 0.2),
      0 30px 60px -30px rgba(0, 0, 0, 0.2),
      0 -18px 30px -10px rgba(0, 0, 0, 0.03);
    transition: 100ms var(--ease-in);
    transition-property: transform, opacity;
    will-change: transform, opacity;
    transform: translateY(1rem);
  }

  .Header-dropdown .Header-link {
    display: block;
    padding: 0.8rem 1rem;
    white-space: initial;
  }

  .Header-dropdown .Header-item:first-child .Header-link::before {
    border-radius: 0.375rem 0.375rem 0 0;
  }

  .Header-dropdown .Header-item:last-child .Header-link::before {
    border-radius: 0 0 0.375rem 0.375rem;
  }

  .Header-dropdown .Header-link > * {
    position: relative;
  }

  .Header-dropdown .Header-link::before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 400ms var(--ease-out);
    background: linear-gradient(
      to right,
      rgba(var(--color-gray), 0.4),
      rgba(var(--color-gray), 0.8) 30%,
      rgba(var(--color-gray), 1) 70%,
      rgba(var(--color-gray), 0.4)
    );
  }

  .Header-dropdown .Header-link:hover::before {
    opacity: 1;
    transition: none;
  }

  .Header-title {
    display: block;
    margin-bottom: 0.15rem;
    color: rgb(var(--document-color));
    font-size: 0.875rem;
  }

  .Header:not(.is-navigating) .Header-link:hover + .Header-dropdown,
  .Header:not(.is-navigating) .Header-dropdown:focus-within,
  .Header:not(.is-navigating) .Header-dropdown:hover {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    transition: 300ms 70ms var(--ease-out);
  }
}

@media (min-width: 1000px) {
  .Header-menu {
    font-size: 1.125rem;
  }
}

/**
 * Toggle button
 */

.Header-toggle {
  display: block;
  width: 48px;
  height: 48px;
  position: relative;
  right: -13px;
  border-radius: 0.1875rem;
}

@media (min-width: 600px) {
  .Header-toggle {
    right: -15px;
  }
}

.Header-toggle:active {
  background: rgba(0, 0, 0, 0.1);
}

@media (min-width: 900px) {
  .Header-toggle {
    display: none;
  }
}

.Header-figure {
  width: 20px;
  height: 18px;
  margin: -10px 0 0 -9px;
  position: absolute;
  top: 25px;
  left: 23px;
}

.Header-lines::after,
.Header-lines::before {
  content: '';
}

.Header-lines,
.Header-lines::after,
.Header-lines::before {
  position: absolute;
  width: 20px;
  height: 2px;
  transition: transform 150ms var(--ease);
  border-radius: 0.1875rem;
  background-color: currentColor;
}

.Header-lines {
  top: 50%;
  margin-top: -1px;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition-duration: 200ms;
}

.Header-lines::before {
  top: -8px;
  transition: top 200ms ease 0.12s, opacity 200ms ease;
}

.Header-lines::after {
  bottom: -8px;
  transition: bottom 200ms ease 0.12s,
    transform 200ms cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

/**
 * Open state
 */

@media (max-width: 799px) {
  .Header.is-open {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    color: #000;
    background: rgb(var(--color-gray));
    transform: none !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  .Header.is-open .Header-logo {
    color: transparent;
  }

  .Header.is-open .Header-lines {
    transition-delay: 0.12s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    transform: rotate(45deg);
  }

  .Header.is-open .Header-lines::before {
    top: 0;
    transition: top 200ms ease, opacity 200ms ease 0.12s;
    opacity: 0;
  }

  .Header.is-open .Header-lines:after {
    bottom: 0;
    transition: bottom 200ms ease,
      transform 200ms cubic-bezier(0.215, 0.61, 0.355, 1) 0.12s;
    transform: rotate(-90deg);
  }
}

/* @define Hero */

.Hero {
  display: flex;
  flex-direction: column;
  padding: 5rem 0 2rem;
  position: relative;
  color: rgb(var(--color-blue));
  margin-bottom: 8vh;
  padding-bottom: 8vh;
}

.Hero::after {
  content: '';
  position: absolute;
  bottom: 0;
  z-index: -1;
  left: 50%;
  display: block;
  width: calc(100% - (var(--document-margin) * 2));
  border-bottom: 1px solid rgba(0, 0, 0, 0.13);
  margin-left: var(--document-margin) !important;
  margin-right: var(--document-margin) !important;
  transform: translateX(calc(-50% - var(--document-margin)));
}

.Hero--pull {
  margin-bottom: -2.6rem;
}

.Hero--pull::after {
  border-bottom: 0;
}

@media (min-width: 800px) and (min-height: 400px) {
  .Hero--pull {
    margin-bottom: -4rem !important;
  }
}

@supports (padding-left: constant(safe-area-inset-left)) {
  .u-container {
    margin-left: calc(
      var(--document-margin) + constant(safe-area-inset-left)
    ) !important;
    margin-right: calc(
      var(--document-margin) + constant(safe-area-inset-right)
    ) !important;
  }
}

.Hero::before {
  flex: 0 1 auto;
  content: '';
  height: 14vh;
}

@media (min-width: 600px) {
  .Hero::before {
    height: 22vh;
  }
}

.Hero-body {
  position: relative;
  z-index: 1;
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.3;
  max-width: 75rem;
}

.Hero--center .Hero-body {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--container-medium-width);
}

.Hero-body p {
  max-width: 32em;
}

@media (min-width: 600px) {
  .Hero-body {
    font-size: 1.5rem;
  }
}

@media (min-width: 1400px) {
  .Hero-body {
    font-size: 1.75rem;
    line-height: 1.25;
  }
}

.Hero-label {
  font-size: 1rem;
  font-weight: 400;
  margin-bottom: 1.3rem;
  display: inline-block;
}

@media (min-width: 1400px) {
  .Hero-label {
    font-size: 1.25rem;
  }
}

.Hero-body a:not([class]) {
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.14em;
  padding: 0.08em 0.2em;
  margin: -0.08em -0.2em;
  border-radius: 0.1875rem;
  transition: background 400ms var(--ease-out);
}

.Hero-body a:not([class]):hover {
  background: rgba(var(--color-blue), 0.05);
  transition: none;
}

.Hero-body a:not([class]):active {
  opacity: 0.6;
}

.Hero-body h1 {
  margin-bottom: 1rem;
  font-size: 2rem;
  line-height: 1.15;
  max-width: 17em;
}

@media (min-width: 600px) {
  .Hero-body h1 {
    font-size: 3rem;
    line-height: 1.1;
  }
}

@media (min-width: 900px) {
  .Hero-body h1 {
    font-size: 3rem;
  }

  .Hero-body a:not([class]) {
    border-bottom-width: 3px;
  }
}

@media (min-width: 1400px) {
  .Hero:not(.Hero--center) .Hero-body h1 {
    font-size: 3.75rem;
    margin-bottom: 2rem;
  }
}

/**
 * Blob
 */

.Hero-blob {
  position: absolute;
  color: rgb(var(--color-pink));
}

.Hero-blob--1 {
  top: 0;
  right: 0;
  width: 35%;
}

.Hero-blob--2 {
  display: none;
  bottom: 0;
  left: 0;
  transform: translateY(20%);
  width: 8%;
}

@media (min-width: 1200px) {
  .Hero-blob--1 {
    width: 30%;
  }
}

@keyframes move-in {
  0% {
    opacity: 0;
    transform: translateY(30%);
  }

  100% {
    opacity: 1;
    transform: none;
  }
}

.Hero-moving {
  position: absolute;
  height: auto;
  overflow: visible;
  color: rgb(var(--color-pink));
  opacity: 0;
  animation: move-in 600ms var(--ease-out) forwards;
}

.Hero-moving--small {
  width: 20vw;
  left: 4%;
  top: 55%;
  animation-delay: 300ms;
}

.Hero-moving--medium {
  width: 34vw;
  right: 10%;
  top: 8%;
  animation-delay: 500ms;
}

.Hero-moving--large {
  width: auto;
  height: 60%;
  right: -7rem;
  top: 16%;
  animation-duration: 1000ms;
}

@media (min-width: 600px) {
  .Hero-moving--small {
    width: 8vw;
    left: 13%;
    bottom: 4%;
  }

  .Hero-moving--medium {
    width: 18vw;
    right: 27%;
    top: 11%;
  }

  .Hero-moving--large {
    height: 69%;
    right: -5rem;
    top: 20%;
  }
}

@media (min-width: 1000px) {
  .Hero-moving--small {
    width: 4.5vw;
    left: 12%;
    bottom: 6%;
  }

  .Hero-moving--medium {
    width: 8vw;
    right: 30%;
    top: 15%;
  }

  .Hero-moving--large {
    width: auto;
    height: 75%;
    right: 0;
    top: 17%;
  }
}

/**
 * Themes
 */

.Hero--gray {
  background-color: rgb(var(--color-gray));
}

.Hero--gray::after {
  content: none;
}

.Hero--gray .Hero-blob,
.Hero--gray .Hero-moving {
  display: none;
}

.Hero--yellow .Hero-blob,
.Hero--yellow .Hero-moving {
  color: rgb(var(--color-yellow));
}

.Hero--orange .Hero-blob,
.Hero--orange .Hero-moving {
  color: rgb(var(--color-orange));
}

.Hero--turquoise .Hero-blob,
.Hero--turquoise .Hero-moving {
  color: rgb(var(--color-turquoise));
}

.Hero--pink .Hero-blob,
.Hero--pink .Hero-moving {
  color: rgb(var(--color-pink));
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9ub3JtYWxpemUuY3NzL25vcm1hbGl6ZS5jc3MiLCJjb21wb25lbnRzL2Jhc2UvZ2xvYmFsLmNzcyIsImNvbXBvbmVudHMvYmFzZS91dGlsaXRpZXMvY29sb3JzLmNzcyIsImNvbXBvbmVudHMvYmFzZS91dGlsaXRpZXMvbGF5b3V0LmNzcyIsImNvbXBvbmVudHMvYmFzZS91dGlsaXRpZXMvbG9hZGluZy5jc3MiLCJjb21wb25lbnRzL2Jhc2UvdXRpbGl0aWVzL3NpemUuY3NzIiwiY29tcG9uZW50cy9iYXNlL3V0aWxpdGllcy9zcGFjZS5jc3MiLCJjb21wb25lbnRzL2Jhc2UvdXRpbGl0aWVzL3RleHQuY3NzIiwiY29tcG9uZW50cy9iYXNlL3V0aWxpdGllcy90cmFuc2l0aW9ucy5jc3MiLCJjb21wb25lbnRzL2Jhc2UvaW5kZXguY3NzIiwiY29tcG9uZW50cy9idXR0b24vaW5kZXguY3NzIiwiY29tcG9uZW50cy9jYWxsb3V0L2luZGV4LmNzcyIsImNvbXBvbmVudHMvZ3JpZC9pbmRleC5jc3MiLCJjb21wb25lbnRzL2Jvb2svaW5kZXguY3NzIiwiY29tcG9uZW50cy9jb3Vyc2UvaW5kZXguY3NzIiwiY29tcG9uZW50cy9wcm9kdWN0L2luZGV4LmNzcyIsImNvbXBvbmVudHMvZGF0ZS9pbmRleC5jc3MiLCJjb21wb25lbnRzL3ZpZXcvaW5kZXguY3NzIiwiY29tcG9uZW50cy9lbWJlZC9pbmRleC5jc3MiLCJjb21wb25lbnRzL2NhcmQvaW5kZXguY3NzIiwiY29tcG9uZW50cy90ZXh0L2luZGV4LmNzcyIsImNvbXBvbmVudHMvcGVyc29uL2luZGV4LmNzcyIsImNvbXBvbmVudHMvZm9vdGVyL2luZGV4LmNzcyIsImNvbXBvbmVudHMvZmFjdHMvaW5kZXguY3NzIiwiY29tcG9uZW50cy9wYXJ0bmVycy9pbmRleC5jc3MiLCJjb21wb25lbnRzL3F1b3RlL2luZGV4LmNzcyIsImNvbXBvbmVudHMvaGVhZGVyL2luZGV4LmNzcyIsImNv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QkFBMkI7RUFDM0IsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBOztFQUVFOztBQUVGO0VBQ0Usb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBOztFQUVFOztBQUVGO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBOztFQUVFOztBQUVGO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsNkJBQTZCO0FBQy9COztBQUVBOztFQUVFOztBQUVGO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsOEJBQThCO0FBQ2hDOztBQUVBOztFQUVFOztBQUVGO0VBQ0UseUJBQXlCO0FBQzNC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IHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIjpyb290IHtcbiAgLS1jb2xvci15ZWxsb3c6IDI1NSwgMjAzLCAxMzI7XG4gIC0tY29sb3IteWVsbG93LWRhcms6IDIxOCwgMTU5LCA3OTtcbiAgLS1jb2xvci1vcmFuZ2U6IDIxOCwgMTAxLCAzODtcbiAgLS1jb2xvci1vcmFuZ2UtZGFyazogMTgwLCA3OSwgMjQ7XG4gIC0tY29sb3ItdHVycXVvaXNlOiA3LCAxNzAsIDE4NDtcbiAgLS1jb2xvci10dXJxdW9pc2UtZGFyazogNCwgMTE4LCAxMjg7XG4gIC0tY29sb3ItcGluazogMjU1LCAxNzksIDE3OTtcbiAgLS1jb2xvci1waW5rLWRhcms6IDIxNCwgMTI4LCAxMjg7XG4gIC0tY29sb3ItYmx1ZTogMTcsIDAsIDcwO1xuICAtLWNvbG9yLWJsdWUtZGFyazogMCwgMCwgMDtcbiAgLS1jb2xvci1ncmF5OiAyNDQsIDI0MywgMjQ2O1xuICAtLWNvbG9yLWdyYXktZGFyazogMjA5LCAyMDgsIDIxMjtcblxuICAtLWNvbG9yLW11dGVkOiAxNywgMCwgNzAsIDAuNTtcbiAgLS1jb2xvci1saW5rOiB2YXIoLS1jb2xvci10dXJxdW9pc2UpO1xuXG4gIC0tZG9jdW1lbnQtZm9udC1mYW1pbHk6ICdCYXNpZXIgQ2lyY2xlJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICAgICdTZWdvZSBVSScsIFJvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgJ0FwcGxlIENvbG9yIEVtb2ppJyxcbiAgICAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJztcbiAgLS1kb2N1bWVudC1mb250LXNpemU6IDFyZW07XG4gIC0tZG9jdW1lbnQtbGluZS1oZWlnaHQ6IDEuNTtcblxuICAtLWRvY3VtZW50LWJhY2tncm91bmQ6IDI1NSwgMjU1LCAyNTU7XG4gIC0tZG9jdW1lbnQtY29sb3I6IDAsIDAsIDA7XG5cbiAgLS1kb2N1bWVudC13aWR0aDogMTYwMHB4O1xuICAtLWRvY3VtZW50LW1hcmdpbjogMS4ycmVtO1xuXG4gIC0tY29udGFpbmVyLWxhcmdlLXdpZHRoOiB2YXIoLS1kb2N1bWVudC13aWR0aCk7XG4gIC0tY29udGFpbmVyLW1lZGl1bS13aWR0aDogNDhyZW07XG4gIC0tY29udGFpbmVyLXNtYWxsLXdpZHRoOiAzMHJlbTtcblxuICAtLWxvYWRpbmctY29sb3I6IDE3LCAwLCA3MCwgMC4wNjtcbiAgLS1sb2FkaW5nLWNvbG9yLXNvbGlkOiAyMzUsIDIzNSwgMjM1O1xuXG4gIC0tZm9jdXMtcmluZy13aWR0aDogM3B4O1xuICAtLWZvY3VzLXJpbmctY29sb3I6IHZhcigtLWNvbG9yLWJsdWUpO1xuXG4gIC0tZWFzZS1pbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gIC0tZWFzZS1vdXQ6IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xuICAtLWVhc2U6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNTBweCkge1xuICA6cm9vdCB7XG4gICAgLS1kb2N1bWVudC1tYXJnaW46IDEuNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDAwcHgpIHtcbiAgOnJvb3Qge1xuICAgIC0tZG9jdW1lbnQtbWFyZ2luOiAxLjhyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIDpyb290IHtcbiAgICAtLWRvY3VtZW50LW1hcmdpbjogMi41cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgOnJvb3Qge1xuICAgIC0tZG9jdW1lbnQtbWFyZ2luOiAzLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0MDBweCkge1xuICA6cm9vdCB7XG4gICAgLS1kb2N1bWVudC1tYXJnaW46IDZyZW07XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL2dsb2JhbCc7XG5cbi8qIEBkZWZpbmUgdXRpbHRpZXMgKi9cblxuLnUtY29sb3JZZWxsb3cge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLXllbGxvdykpICFpbXBvcnRhbnQ7XG59XG4udS1jb2xvck9yYW5nZSB7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3Itb3JhbmdlKSkgIWltcG9ydGFudDtcbn1cbi51LWNvbG9yVHVycXVvaXNlIHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci10dXJxdW9pc2UpKSAhaW1wb3J0YW50O1xufVxuLnUtY29sb3JQaW5rIHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1waW5rKSkgIWltcG9ydGFudDtcbn1cbi51LWNvbG9yQmx1ZSB7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpICFpbXBvcnRhbnQ7XG59XG4udS1jb2xvckdyYXkge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWdyYXkpKSAhaW1wb3J0YW50O1xufVxuXG4udS1iZ1llbGxvdyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1jb2xvci15ZWxsb3cpKSAhaW1wb3J0YW50O1xufVxuLnUtYmdPcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tY29sb3Itb3JhbmdlKSkgIWltcG9ydGFudDtcbn1cbi51LWJnVHVycXVvaXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLWNvbG9yLXR1cnF1b2lzZSkpICFpbXBvcnRhbnQ7XG59XG4udS1iZ1Bpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tY29sb3ItcGluaykpICFpbXBvcnRhbnQ7XG59XG4udS1iZ0JsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpICFpbXBvcnRhbnQ7XG59XG4udS1iZ0dyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tY29sb3ItZ3JheSkpICFpbXBvcnRhbnQ7XG59XG4iLCJAaW1wb3J0ICcuLi9nbG9iYWwnO1xuXG4vKiBAZGVmaW5lIHV0aWxpdGllcyAqL1xuLnUtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udS1oaWRkZW5WaXN1YWxseSB7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC51LXByaW50SGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtYXJyb3cge1xuICB3aWR0aDogMC4zNzVlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luOiAwIDAuNHJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0wLjAzZW07XG59XG5cbi51LW92ZXJmbG93SGlkZGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4udS1jYWxsb3V0Rml4ICsgLnUtY2FsbG91dEZpeCB7XG4gIC8qIG1hcmdpbi10b3A6IC04dmggIWltcG9ydGFudDsgKi9cbn1cblxuLnUtYm9yZGVyVCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTMpICFpbXBvcnRhbnQ7XG59XG5cbi51LWJvcmRlckIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEzKSAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIERpc3BsYXlcbiAqL1xuXG4udS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4udS1pbmxpbmVCbG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xufVxuLnUtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7XG59XG4udS1mbGV4IHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIFBvc2l0aW9uXG4gKi9cblxuLnUtcG9zU3RhdGljIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xufVxuLnUtcG9zUmVsYXRpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbn1cbi51LXBvc0Fic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG59XG4udS1wb3NGaXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIEZsZXhcbiAqL1xuXG4udS1mbGV4V3JhcCB7XG4gIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xufVxuLnUtYWxpZ25DZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4udS1hbGlnblN0YXJ0IHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbn1cbi51LWFsaWduRW5kIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7XG59XG4udS1qdXN0aWZ5Q2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cbi51LWp1c3RpZnlTcGFjZUJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBBc3BlY3QgcmF0aW9cbiAqL1xuXG4udS1hc3BlY3QxLTEsXG4udS1hc3BlY3Q0LTMsXG4udS1hc3BlY3QxNi05LFxuLnUtYXNwZWN0UG9zdGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG5cbi51LWFzcGVjdDEtMTo6YmVmb3JlLFxuLnUtYXNwZWN0NC0zOjpiZWZvcmUsXG4udS1hc3BlY3QxNi05OjpiZWZvcmUsXG4udS1hc3BlY3RQb3N0ZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4udS1hc3BlY3QxLTE6OmJlZm9yZSB7XG4gIHBhZGRpbmctdG9wOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4udS1hc3BlY3Q0LTM6OmJlZm9yZSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDEwMCUgKiAzIC8gNCkgIWltcG9ydGFudDtcbn1cbi51LWFzcGVjdDE2LTk6OmJlZm9yZSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDEwMCUgKiA5IC8gMTYpICFpbXBvcnRhbnQ7XG59XG4udS1hc3BlY3RQb3N0ZXI6OmJlZm9yZSB7XG4gIHBhZGRpbmctdG9wOiBjYWxjKDEwMCUgKiAyNzggLyAxOTUpICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogT3ZlcmZsb3dpbmcgY29udGFpbmVyXG4gKi9cblxuLnUtZXhwYW5kIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoKHZhcigtLWRvY3VtZW50LW1hcmdpbikgKiAwLjU1KSAqIC0xKTtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKCh2YXIoLS1kb2N1bWVudC1tYXJnaW4pICogMC41NSkgKiAtMSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLnUtbGctZXhwYW5kIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygodmFyKC0tZG9jdW1lbnQtbWFyZ2luKSAqIDAuNTUpICogLTEpO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygodmFyKC0tZG9jdW1lbnQtbWFyZ2luKSAqIDAuNTUpICogLTEpO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTlweCkge1xuICAudS1tZC1leHBhbmQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCh2YXIoLS1kb2N1bWVudC1tYXJnaW4pICogMC41NSkgKiAtMSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKCh2YXIoLS1kb2N1bWVudC1tYXJnaW4pICogMC41NSkgKiAtMSk7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC51LXNtLWV4cGFuZCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoKHZhcigtLWRvY3VtZW50LW1hcmdpbikgKiAwLjU1KSAqIC0xKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoKHZhcigtLWRvY3VtZW50LW1hcmdpbikgKiAwLjU1KSAqIC0xKTtcbiAgfVxufVxuXG4vKipcbiAqIENlbnRlcmVkIHBhZ2UgY29udGFpbmVyXG4gKi9cblxuLnUtY29udGFpbmVyLFxuLnUtbWQtY29udGFpbmVyLFxuLnUtbGctY29udGFpbmVyLFxuLnUteGwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tZG9jdW1lbnQtbWFyZ2luKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1kb2N1bWVudC1tYXJnaW4pICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogY2FsYyhcbiAgICB2YXIoLS1jb250YWluZXItbGFyZ2Utd2lkdGgpICsgKHZhcigtLWRvY3VtZW50LW1hcmdpbikgKiAyKVxuICApICFpbXBvcnRhbnQ7XG59XG5cbi51LWxhcmdlIHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItbGFyZ2Utd2lkdGgpICFpbXBvcnRhbnQ7XG59XG5cbi51LW1lZGl1bSB7XG4gIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLW1lZGl1bS13aWR0aCkgIWltcG9ydGFudDtcbn1cblxuLnUtc21hbGwge1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1zbWFsbC13aWR0aCkgIWltcG9ydGFudDtcbn1cblxuQHN1cHBvcnRzIChwYWRkaW5nLWxlZnQ6IGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSkge1xuICAudS1jb250YWluZXIsXG4gIC51LW1kLWNvbnRhaW5lcixcbiAgLnUtbGctY29udGFpbmVyLFxuICAudS14bC1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICAgIHZhcigtLWRvY3VtZW50LW1hcmdpbikgKyBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtbGVmdClcbiAgICApICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYyhcbiAgICAgIHZhcigtLWRvY3VtZW50LW1hcmdpbikgKyBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtcmlnaHQpXG4gICAgKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBzdXBwb3J0cyAocGFkZGluZy1sZWZ0OiBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKSB7XG4gIC51LWNvbnRhaW5lcixcbiAgLnUtbWQtY29udGFpbmVyLFxuICAudS1sZy1jb250YWluZXIsXG4gIC51LXhsLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKFxuICAgICAgdmFyKC0tZG9jdW1lbnQtbWFyZ2luKSArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdClcbiAgICApICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYyhcbiAgICAgIHZhcigtLWRvY3VtZW50LW1hcmdpbikgKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KVxuICAgICkgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLnUtbWQtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDg5OXB4KSB7XG4gIC51LWxnLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgLnUteGwtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtdW5jb250YWluLFxuLnUtbWQtdW5jb250YWluLFxuLnUtbGctdW5jb250YWluLFxuLnUteGwtdW5jb250YWluIHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWRvY3VtZW50LW1hcmdpbikgKiAtMSkgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWRvY3VtZW50LW1hcmdpbikgKiAtMSkgIWltcG9ydGFudDtcbn1cblxuQHN1cHBvcnRzIChtYXJnaW4tbGVmdDogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LWxlZnQpKSB7XG4gIC51LXVuY29udGFpbixcbiAgLnUtbWQtdW5jb250YWluLFxuICAudS1sZy11bmNvbnRhaW4sXG4gIC51LXhsLXVuY29udGFpbiB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoXG4gICAgICAodmFyKC0tZG9jdW1lbnQtbWFyZ2luKSArIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSkgKiAtMVxuICAgICkgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoXG4gICAgICAodmFyKC0tZG9jdW1lbnQtbWFyZ2luKSArIGNvbnN0YW50KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpICogLTFcbiAgICApICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQHN1cHBvcnRzIChtYXJnaW4tbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSkge1xuICAudS11bmNvbnRhaW4sXG4gIC51LW1kLXVuY29udGFpbixcbiAgLnUtbGctdW5jb250YWluLFxuICAudS14bC11bmNvbnRhaW4ge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKFxuICAgICAgKHZhcigtLWRvY3VtZW50LW1hcmdpbikgKyBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKSAqIC0xXG4gICAgKSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyhcbiAgICAgICh2YXIoLS1kb2N1bWVudC1tYXJnaW4pICsgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpICogLTFcbiAgICApICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC51LW1kLXVuY29udGFpbiB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDkwMHB4KSB7XG4gIC51LWxnLXVuY29udGFpbiB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAudS14bC11bmNvbnRhaW4ge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi9nbG9iYWwnO1xuXG4udS1sb2FkaW5nLFxuLnUtbG9hZGluZ0xpZ2h0IHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1sb2FkaW5nLWNvbG9yKSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDtcbn1cblxuLnUtbG9hZGluZ0xpZ2h0IHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1sb2FkaW5nLWNvbG9yLXNvbGlkKSkgIWltcG9ydGFudDtcbn1cbiIsIi8qIEBkZWZpbmUgdXRpbGl0aWVzICovXG5cbi8qKlxuICogUHJvcG9ydGlvbmFsIHdpZHRoc1xuICovXG5cbi51LXNpemUxb2Y0IHtcbiAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7XG59XG5cbi51LXNpemUxb2YzIHtcbiAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICB3aWR0aDogY2FsYygxMDAlICogMSAvIDMpICFpbXBvcnRhbnQ7XG59XG5cbi51LXNpemUxb2YyLFxuLnUtc2l6ZTJvZjQge1xuICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA1MCUgIWltcG9ydGFudDtcbn1cblxuLnUtc2l6ZTJvZjMge1xuICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKiAyIC8gMykgIWltcG9ydGFudDtcbn1cblxuLnUtc2l6ZTNvZjQge1xuICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBTbWFsbFxuICovXG5cbkBtZWRpYSAobWluLXdpZHRoOiA0MDBweCkge1xuICAudS1zbS1zaXplMW9mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51LXNtLXNpemUxb2YzIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUtc20tc2l6ZTFvZjIsXG4gIC51LXNtLXNpemUyb2Y0IHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUtc20tc2l6ZTJvZjMge1xuICAgIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudS1zbS1zaXplM29mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51LXNtLXNpemUxb2YxIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcbiAqIE1lZGl1bVxuICovXG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAudS1tZC1zaXplMW9mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51LW1kLXNpemUxb2YzIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUtbWQtc2l6ZTFvZjIsXG4gIC51LW1kLXNpemUyb2Y0IHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUtbWQtc2l6ZTJvZjMge1xuICAgIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudS1tZC1zaXplM29mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51LW1kLXNpemUxb2YxIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcbiAqIExhcmdlXG4gKi9cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAudS1sZy1zaXplMW9mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51LWxnLXNpemUxb2YzIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUtbGctc2l6ZTFvZjIsXG4gIC51LWxnLXNpemUyb2Y0IHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUtbGctc2l6ZTJvZjMge1xuICAgIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudS1sZy1zaXplM29mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51LWxnLXNpemUxb2YxIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcbiAqIEV4dHJhIExhcmdlXG4gKi9cblxuQG1lZGlhIChtaW4td2lkdGg6IDE1MDBweCkge1xuICAudS14bC1zaXplMW9mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC51LXhsLXNpemUxb2YzIHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAqIDEgLyAzKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUteGwtc2l6ZTFvZjIsXG4gIC51LXhsLXNpemUyb2Y0IHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnUteGwtc2l6ZTJvZjMge1xuICAgIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbiAgICB3aWR0aDogY2FsYygxMDAlICogMiAvIDMpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAudS14bC1zaXplM29mNCB7XG4gICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vKipcbiAqIEludHJpbnNpYyB3aWR0aHNcbiAqL1xuXG4vKipcbiAqIE1ha2UgYW4gZWxlbWVudCBzaHJpbmsgd3JhcCBpdHMgY29udGVudC5cbiAqL1xuXG4udS1zaXplRml0IHtcbiAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIE1ha2UgYW4gZWxlbWVudCBmaWxsIHRoZSByZW1haW5pbmcgc3BhY2UuXG4gKlxuICogMS4gQmUgZXhwbGljaXQgdG8gd29yayBhcm91bmQgSUUxMCBidWcgd2l0aCBzaG9ydGhhbmQgZmxleFxuICogICAgaHR0cDovL2dpdC5pby92bGxDN1xuICogMi4gSUUxMCBpZ25vcmVzIHByZXZpb3VzIGBmbGV4LWJhc2lzYCB2YWx1ZS4gU2V0dGluZyBhZ2FpbiBoZXJlIGZpeGVzXG4gKiAgICBodHRwOi8vZ2l0LmlvL3ZsbE10XG4gKi9cblxuLnUtc2l6ZUZpbGwge1xuICBmbGV4OiAxIDEgMCUgIWltcG9ydGFudDsgLyogMSAqL1xuICBmbGV4LWJhc2lzOiAwJSAhaW1wb3J0YW50OyAvKiAyICovXG59XG5cbi8qKlxuICogQW4gYWx0ZXJuYXRpdmUgbWV0aG9kIHRvIG1ha2UgYW4gZWxlbWVudCBmaWxsIHRoZSByZW1haW5pbmcgc3BhY2UuXG4gKiBEaXN0cmlidXRlcyBzcGFjZSBiYXNlZCBvbiB0aGUgaW5pdGlhbCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBlbGVtZW50XG4gKlxuICogaHR0cDovL3d3dy53My5vcmcvVFIvY3NzLWZsZXhib3gvaW1hZ2VzL3JlbC12cy1hYnMtZmxleC5zdmdcbiAqL1xuXG4udS1zaXplRmlsbEFsdCB7XG4gIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG4gIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBNYWtlIGFuIGVsZW1lbnQgdGhlIHdpZHRoIG9mIGl0cyBwYXJlbnQuXG4gKi9cblxuLnUtc2l6ZUZ1bGwge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgZmxleDogMSAwIDEwMCUgIWltcG9ydGFudDtcbn1cbiIsIi8qIEBkZWZpbmUgdXRpbGl0aWVzICovXG5cbkBpbXBvcnQgJy4uL2dsb2JhbCc7XG5cbi8qKlxuICogRHluYW1pY1xuICovXG5cbi51LXNwYWNlMCB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZTEge1xuICBtYXJnaW4tdG9wOiAyLjZyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMi42cmVtICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtaW4taGVpZ2h0OiA0MDBweCkge1xuICAudS1zcGFjZTEge1xuICAgIG1hcmdpbi10b3A6IDRyZW0gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnUtc3BhY2UyIHtcbiAgbWFyZ2luLXRvcDogOHZoICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDh2aCAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZTJlbmQge1xuICBtYXJnaW4tYm90dG9tOiA4dmggIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2UzIHtcbiAgbWFyZ2luLXRvcDogMjR2aCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAyMnZoICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlUHVsbFVwSGVybyB7XG4gIG1hcmdpbi10b3A6IGNhbGMoLTh2aCAtIDFweCk7XG59XG5cbi8qKlxuICogQWxsXG4gKi9cblxuLnUtc3BhY2VBMCB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUExIHtcbiAgbWFyZ2luOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VBMiB7XG4gIG1hcmdpbjogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUEzIHtcbiAgbWFyZ2luOiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VBNCB7XG4gIG1hcmdpbjogMnJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUE1IHtcbiAgbWFyZ2luOiAyLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VBNiB7XG4gIG1hcmdpbjogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUE4IHtcbiAgbWFyZ2luOiA0cmVtICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogVG9wXG4gKi9cblxuLnUtc3BhY2VUMCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VUMSB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZVQyIHtcbiAgbWFyZ2luLXRvcDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZVQzIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlVDQge1xuICBtYXJnaW4tdG9wOiAycmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlVDUge1xuICBtYXJnaW4tdG9wOiAyLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VUNiB7XG4gIG1hcmdpbi10b3A6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VUOCB7XG4gIG1hcmdpbi10b3A6IDRyZW0gIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBSaWdodFxuICovXG5cbi51LXNwYWNlUjAge1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VSMSB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlUjIge1xuICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VSMyB7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlUjQge1xuICBtYXJnaW4tcmlnaHQ6IDJyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VSNSB7XG4gIG1hcmdpbi1yaWdodDogMi41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlUjYge1xuICBtYXJnaW4tcmlnaHQ6IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VSOCB7XG4gIG1hcmdpbi1yaWdodDogNHJlbSAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIEJvdHRvbVxuICovXG5cbi51LXNwYWNlQjAge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlQjEge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VCMiB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VCMyB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUI0IHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUI1IHtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlQjYge1xuICBtYXJnaW4tYm90dG9tOiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlQjgge1xuICBtYXJnaW4tYm90dG9tOiA0cmVtICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogTGVmdFxuICovXG5cbi51LXNwYWNlTDAge1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUwxIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUwyIHtcbiAgbWFyZ2luLWxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VMMyB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VMNCB7XG4gIG1hcmdpbi1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlTDUge1xuICBtYXJnaW4tbGVmdDogMi41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlTDYge1xuICBtYXJnaW4tbGVmdDogM3JlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUw4IHtcbiAgbWFyZ2luLWxlZnQ6IDRyZW0gIWltcG9ydGFudDtcbn1cblxuLyoqXG4gKiBWZXJ0aWNhbFxuICovXG5cbi51LXNwYWNlVjAge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VWMSB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VWMiB7XG4gIG1hcmdpbi10b3A6IDFyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZVYzIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZVY0IHtcbiAgbWFyZ2luLXRvcDogMnJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAycmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlVjUge1xuICBtYXJnaW4tdG9wOiAyLjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlVjYge1xuICBtYXJnaW4tdG9wOiAzcmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDNyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VWOCB7XG4gIG1hcmdpbi10b3A6IDRyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbSAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIEhvcml6b250YWxcbiAqL1xuXG4udS1zcGFjZUgwIHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlSDEge1xuICBtYXJnaW4tbGVmdDogMC41cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlSDIge1xuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDFyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VIMyB7XG4gIG1hcmdpbi1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnUtc3BhY2VINCB7XG4gIG1hcmdpbi1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMnJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUg1IHtcbiAgbWFyZ2luLWxlZnQ6IDIuNXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDIuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4udS1zcGFjZUg2IHtcbiAgbWFyZ2luLWxlZnQ6IDNyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAzcmVtICFpbXBvcnRhbnQ7XG59XG5cbi51LXNwYWNlSDgge1xuICBtYXJnaW4tbGVmdDogNHJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDRyZW0gIWltcG9ydGFudDtcbn1cbiIsIi8qIEBkZWZpbmUgdXRpbGl0aWVzICovXG5cbkBpbXBvcnQgJy4uL2dsb2JhbCc7XG5cbi51LXRleHRSZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xufVxuXG4udS10ZXh0Qm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDtcbn1cblxuLnUtdGV4dEl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50O1xufVxuXG4udS10ZXh0Q2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi51LXRleHROb3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi51LXRleHROb3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG59XG5cbi51LXRleHRVbnNlbGVjdGFibGUge1xuICB1c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4udS10ZXh0VXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGV4dCBmcm9tIHdyYXBwaW5nIG9udG8gbXVsdGlwbGUgbGluZXMgYW5kIHRydW5jYXRlIHdpdGggYW4gZWxsaXBzaXMuXG4gKiAxLiBFbnN1cmUgdGhhdCB0aGUgbm9kZSBoYXMgYSBtYXhpbXVtIHdpZHRoIGFmdGVyIHdoaWNoIHRydW5jYXRpb24gY2FuIG9jY3VyLlxuICovXG5cbi51LXRleHRUcnVuY2F0ZSB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyAvKiAxICovXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXMgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIFNvdXJjZTogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvcHJldmVudC1sb25nLXVybHMtZnJvbS1icmVha2luZy1vdXQtb2YtY29udGFpbmVyL1xuICovXG5cbi51LXRleHRCcmVha0xvbmdXb3JkcyB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgLW1zLXdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBoeXBoZW5zOiBhdXRvO1xufVxuIiwiLyogQGRlZmluZSB1dGlsaXRpZXMgKi9cblxuLnUtc2xpZGVEb3duIHtcbiAgb3BhY2l0eTogMDtcbiAgYW5pbWF0aW9uOiBzbGlkZS1kb3duIDMwMG1zIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpIGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlLWRvd24ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNXJlbSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiQGltcG9ydCAnbm9ybWFsaXplLmNzcyc7XG5AaW1wb3J0ICcuL2dsb2JhbCc7XG5AaW1wb3J0ICcuL3V0aWxpdGllcy9jb2xvcnMnO1xuQGltcG9ydCAnLi91dGlsaXRpZXMvbGF5b3V0JztcbkBpbXBvcnQgJy4vdXRpbGl0aWVzL2xvYWRpbmcnO1xuQGltcG9ydCAnLi91dGlsaXRpZXMvc2l6ZSc7XG5AaW1wb3J0ICcuL3V0aWxpdGllcy9zcGFjZSc7XG5AaW1wb3J0ICcuL3V0aWxpdGllcy90ZXh0JztcbkBpbXBvcnQgJy4vdXRpbGl0aWVzL3RyYW5zaXRpb25zJztcblxuLyoqXG4gKiBGb250IGRlY2xhcmF0aW9uXG4gKi9cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQmFzaWVyIENpcmNsZSc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoJy4vZm9udHMvYmFzaWVyY2lyY2xlLXJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdCYXNpZXIgQ2lyY2xlJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCgnLi9mb250cy9iYXNpZXJjaXJjbGUtYm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0Jhc2llciBDaXJjbGUnO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKCcuL2ZvbnRzL2Jhc2llcmNpcmNsZS1yZWd1bGFyaXRhbGljLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbn1cblxuLyoqXG4gKiBEb2N1bWVudCBzdHlsZXNcbiAqIDEuIEdsb2JhbCBib3ggc2l6aW5nXG4gKiAyLiBHdWFyZCBmb3IgaG9yaXpvbnRhbCBzY3JvbGxpbmdcbiAqIDMuIFN1cHBvcnQgc3RpY2t5IGZvb3RlciBzb2x1dGlvbnNcbiAqIDQuIFNpbXBseSBmZWVscyBiZXR0ZXIgdGhlbiBnbG9iYWwgdGV4dCBjdXJzb3JcbiAqIDUuIFNpdGUgc2hvdWxkIGhhdmUgYSBiYWNrZ3JvdW5kIGluIGNhc2UgaXQncyBpZnJhbWVkXG4gKiA2LiBGYWJ1bG91cyB0ZXh0IHJlbmRlcmluZ1xuICogNy4gRmFidWxvdXMgc3ZnIHRleHQgc2l6aW5nXG4gKi9cblxuOnJvb3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHdpZHRoOiAxMDAlOyAvKiAyICovXG4gIGhlaWdodDogMTAwJTsgLyogMyAqL1xuICBvdmVyZmxvdy14OiBoaWRkZW47IC8qIDIgKi9cbiAgY3Vyc29yOiBkZWZhdWx0OyAvKiA0ICovXG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1kb2N1bWVudC1mb250LWZhbWlseSk7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1kb2N1bWVudC1iYWNrZ3JvdW5kLWNvbG9yKSk7IC8qIDUgKi9cbiAgY29sb3I6IHJnYih2YXIoLS1kb2N1bWVudC1jb2xvcikpO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1kb2N1bWVudC1saW5lLWhlaWdodCk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvKiA2ICovXG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IC8qIDYgKi9cbiAgdGV4dC1yZW5kZXJpbmc6IGdlb21ldHJpY1ByZWNpc2lvbjsgLyogNyAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTcwMHB4KSB7XG4gIDpyb290IHtcbiAgICBmb250LXNpemU6IDExNSU7XG4gIH1cbn1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgLyogMSAqL1xufVxuXG4vKipcbiAqIE1lZGlhIGVsZW1lbnRzXG4gKi9cblxuc3ZnLFxuaW1nLFxudmlkZW8sXG5pZnJhbWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi8qKlxuICogMS4gSW1wcm92ZSBhbHQgdGV4dCByZW5kZXJpbmcgZm9yIGJyb2tlbiBpbWFnZXNcbiAqL1xuXG5pbWcge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC44cmVtOyAvKiAxICovXG59XG5cbi8qKlxuICogSW5saW5lIGVsZW1lbnRzXG4gKi9cblxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLypcbiAqIENsaWNrYWJsZSBlbGVtZW50c1xuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSB0YXBwaW5nIGRlbGF5XG4gKi9cblxuYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYSxcbmFyZWEsXG5idXR0b24sXG5pbnB1dCxcbmxhYmVsLFxuc2VsZWN0LFxuc3VtbWFyeSxcbnRleHRhcmVhLFxuW3RhYmluZGV4XSB7XG4gIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgLyogMiAqL1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjsgLyogMiAqL1xufVxuXG5pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLyoqXG4gKiBSZXNldCBhIGZldyBzdHlsZXNcbiAqL1xuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wLFxudWwsXG5vbCxcbmJsb2NrcXVvdGUsXG5pZnJhbWUsXG5maWd1cmUge1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBTZXQgc2Vuc2libGUgZGVmYXVsdCBydWxlciBzdHlsZXNcbiAqL1xuXG5ociB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xMyk7XG59XG5cbi8qKlxuICogQ2xlYW4gb3V0IGJyb3dzZXIgYnV0dG9uIHN0eWxlc1xuICovXG5cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUG9pbnRlciBpcyBmb3IgbGlua3MsIG5vdCBmb3IgYWN0aW9ucyBvbiB0aGUgc2FtZSBwYWdlXG4gKi9cblxuOnJvb3Rbc2NyaXB0aW5nLWVuYWJsZWRdIFtyb2xlPSdidXR0b24nXSxcbjpyb290W3NjcmlwdGluZy1lbmFibGVkXSBbcm9sZT0ndGFiJ10ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgZm9jdXMgc3R5bGVzIGZvciBtb3VzZSB1c2VycyBpZiA6Zm9jdXMtdmlzaWJsZSBpcyBzdXBwb3J0ZWQgb25cbiAqIHRoaXMgcGxhdGZvcm0sIG9yIHBvbHlmaWxsZWQgd2l0aCBodHRwczovL2dpdGh1Yi5jb20vV0lDRy9mb2N1cy12aXNpYmxlXG4gKi9cblxuOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogUHJvdmlkZSBlbmhhbmNlZCBmb2N1cyBzdHlsZXMgZm9yIGtleWJvYXJkIGZvY3VzXG4gKi9cblxuOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiByZ2IodmFyKC0tZm9jdXMtcmluZy1jb2xvcikpIHNvbGlkIHZhcigtLWZvY3VzLXJpbmctd2lkdGgpICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogUHJpbnQgc3R5bGVzXG4gKi9cblxuQHBhZ2Uge1xuICBtYXJnaW46IDJjbTtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgYSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcCB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG5cbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cblxuICB1bCxcbiAgb2wsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1iZWZvcmU6IGF2b2lkO1xuICB9XG5cbiAgaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgYSxcbiAgYTpsaW5rLFxuICBhOnZpc2l0ZWQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuLyogQGRlZmluZSBCdXR0b24gKi9cbi5CdXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMWVtIDEuMjVlbTtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWdyYXkpKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMDBtcyB2YXIoLS1lYXNlLW91dCk7XG59XG5cbi5CdXR0b246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcztcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uQnV0dG9uOmhvdmVyOjpiZWZvcmUsXG4uQnV0dG9uOmFjdGl2ZTo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLkJ1dHRvbjphY3RpdmU6OmJlZm9yZSB7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDUwbXM7XG59XG5cbi5CdXR0b24gc3BhbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLkJ1dHRvbltkaXNhYmxlZF0ge1xuICBvcGFjaXR5OiAwLjY7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKipcbiAqIFRoZW1lc1xuICovXG5cbi5CdXR0b24tLWdyYXkge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWdyYXkpKTtcbn1cblxuLkJ1dHRvbi0tZ3JheTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWdyYXktZGFyaykpO1xufVxuXG4uQnV0dG9uLS15ZWxsb3cge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLXllbGxvdykpO1xufVxuXG4uQnV0dG9uLS15ZWxsb3c6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1jb2xvci15ZWxsb3ctZGFyaykpO1xufVxuXG4uQnV0dG9uLS1vcmFuZ2Uge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLW9yYW5nZSkpO1xufVxuXG4uQnV0dG9uLS1vcmFuZ2U6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1jb2xvci1vcmFuZ2UtZGFyaykpO1xufVxuXG4uQnV0dG9uLS10dXJxdW9pc2Uge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLXR1cnF1b2lzZSkpO1xufVxuXG4uQnV0dG9uLS10dXJxdW9pc2U6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1jb2xvci10dXJxdW9pc2UtZGFyaykpO1xufVxuXG4uQnV0dG9uLS1waW5rIHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1ibHVlKSk7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1jb2xvci1waW5rKSk7XG59XG5cbi5CdXR0b24tLXBpbms6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1jb2xvci1waW5rLWRhcmspKTtcbn1cblxuLkJ1dHRvbi0tYmx1ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpO1xufVxuXG4uQnV0dG9uLS1ibHVlOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tY29sb3ItYmx1ZS1kYXJrKSk7XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuLyogQGRlZmluZSBDYWxsb3V0ICovXG4uQ2FsbG91dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1jb2xvci1ncmF5KSk7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpO1xufVxuXG4uQ2FsbG91dC1jb250ZW50IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6IDJyZW0gMS41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5DYWxsb3V0LWNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDIuNXJlbTtcbiAgfVxufVxuXG4uQ2FsbG91dC1ib2R5IHtcbiAgbWFyZ2luOiAxcmVtIDAgMCAwO1xufVxuXG4uQ2FsbG91dC1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1tdXRlZCkpO1xufVxuXG4uQ2FsbG91dC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLkNhbGxvdXQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgIG1hcmdpbi10b3A6IC0wLjNyZW07XG4gIH1cbn1cblxuLkNhbGxvdXQtZmlndXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uQ2FsbG91dC1pbWFnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLkNhbGxvdXQtbGluayB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1ibHVlKSk7XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjNyZW07XG4gIG1hcmdpbjogMS4yNXJlbSAtMC4zcmVtIC0wLjFyZW0gLTAuM3JlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQwMG1zIHZhcigtLWVhc2Utb3V0KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDEuNXB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMTRlbTtcbiAgbWF4LXdpZHRoOiAyN2VtO1xufVxuXG4uQ2FsbG91dC1saW5rOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG5cbi5DYWxsb3V0LWxpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWNvbG9yLWJsdWUpLCAwLjA1KTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLkNhbGxvdXQtbGluazphY3RpdmUge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNTBweCkge1xuICAuQ2FsbG91dC1saW5rIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLkNhbGxvdXQtbGluayB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkge1xuICAuQ2FsbG91dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5DYWxsb3V0LWZpZ3VyZSB7XG4gICAgZmxleC1iYXNpczogNDAlO1xuICAgIHBhZGRpbmc6IDJyZW0gMCAycmVtIDJyZW07XG4gIH1cblxuICAuQ2FsbG91dC0tcmlnaHQgLkNhbGxvdXQtZmlndXJlIHtcbiAgICBwYWRkaW5nOiAycmVtIDJyZW0gMnJlbSAwO1xuICB9XG5cbiAgLkNhbGxvdXQtaW1hZ2Uge1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xuICB9XG5cbiAgLkNhbGxvdXQ6bm90KC5DYWxsb3V0LS1pbWFnZSkgLkNhbGxvdXQtYm9keSB7XG4gICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICB9XG5cbiAgLkNhbGxvdXQ6bm90KC5DYWxsb3V0LS1pbWFnZSkgLkNhbGxvdXQtbGFiZWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLkNhbGxvdXQ6bm90KC5DYWxsb3V0LS1pbWFnZSkgLkNhbGxvdXQtdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG5cbiAgLkNhbGxvdXQ6bm90KC5DYWxsb3V0LS1pbWFnZSkgLkNhbGxvdXQtdGl0bGUsXG4gIC5DYWxsb3V0Om5vdCguQ2FsbG91dC0taW1hZ2UpIC5DYWxsb3V0LWJvZHkge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEuNXJlbSk7XG4gIH1cblxuICAuQ2FsbG91dC0taW1hZ2UgLkNhbGxvdXQtY29udGVudCB7XG4gICAgZmxleC1iYXNpczogNjAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC5DYWxsb3V0LS1yaWdodCAuQ2FsbG91dC1maWd1cmUge1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgb3JkZXI6IDE7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cblxuICAuQ2FsbG91dC0tbGVmdCAuQ2FsbG91dC1maWd1cmUge1xuICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgIG9yZGVyOiAwO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLkNhbGxvdXQtZmlndXJlIHtcbiAgICBmbGV4LWJhc2lzOiA1MCU7XG4gICAgcGFkZGluZzogMi41cmVtIDAuNzVyZW0gMi41cmVtIDIuNXJlbTtcbiAgfVxuXG4gIC5DYWxsb3V0LS1yaWdodCAuQ2FsbG91dC1maWd1cmUge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAyLjVyZW0gMi41cmVtIDAuNzVyZW07XG4gIH1cblxuICAuQ2FsbG91dC0taW1hZ2UgLkNhbGxvdXQtY29udGVudCB7XG4gICAgZmxleC1iYXNpczogNTAlO1xuICB9XG5cbiAgLkNhbGxvdXQtLXJpZ2h0IC5DYWxsb3V0LWZpZ3VyZSxcbiAgLkNhbGxvdXQtLWxlZnQgLkNhbGxvdXQtZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuQ2FsbG91dC1maWd1cmUge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAxLjRyZW0gMi41cmVtIDIuNXJlbTtcbiAgfVxuXG4gIC5DYWxsb3V0LS1yaWdodCAuQ2FsbG91dC1maWd1cmUge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAyLjVyZW0gMi41cmVtIDEuNHJlbTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZW1lc1xuICovXG5cbi5DYWxsb3V0LS15ZWxsb3cge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLWNvbG9yLXllbGxvdykpO1xufVxuXG4uQ2FsbG91dC0teWVsbG93IC5DYWxsb3V0LWxpbmsge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbn1cblxuLkNhbGxvdXQtLW9yYW5nZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tY29sb3Itb3JhbmdlKSk7XG59XG5cbi5DYWxsb3V0LS1vcmFuZ2UgLkNhbGxvdXQtbGluayB7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3IteWVsbG93KSk7XG59XG5cbi5DYWxsb3V0LS10dXJxdW9pc2Uge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLWNvbG9yLXR1cnF1b2lzZSkpO1xufVxuXG4uQ2FsbG91dC0tdHVycXVvaXNlIC5DYWxsb3V0LWxpbmsge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLXllbGxvdykpO1xufVxuXG4uQ2FsbG91dC0tcGluayB7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tY29sb3ItcGluaykpO1xufVxuXG4uQ2FsbG91dC0tcGluayAuQ2FsbG91dC1saW5rIHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1ibHVlKSk7XG59XG5cbi5DYWxsb3V0LS1ibHVlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1jb2xvci1ibHVlKSk7XG59XG5cbi5DYWxsb3V0LS1ibHVlIC5DYWxsb3V0LWxpbmsge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLXBpbmspKTtcbn1cbiIsIkBpbXBvcnQgJy4uL2Jhc2UnO1xuXG4vKiBAZGVmaW5lIEdyaWQgKi9cbjpyb290IHtcbiAgLS1HcmlkLWd1dHRlcjogMS41cmVtO1xuICAtLUdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAxLjhyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCksIHByaW50IHtcbiAgOnJvb3Qge1xuICAgIC0tR3JpZC1ndXR0ZXI6IDIuOHJlbTtcbiAgICAtLUdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAyLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCksIHByaW50IHtcbiAgOnJvb3Qge1xuICAgIC0tR3JpZC1ndXR0ZXI6IDEuNXJlbTtcbiAgICAtLUdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAzcmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpLCBwcmludCB7XG4gIDpyb290IHtcbiAgICAtLUdyaWQtZ3V0dGVyOiAyLjhyZW07XG4gIH1cbn1cblxuLkdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1HcmlkLWd1dHRlcikpO1xuICBtYXJnaW46IDAgY2FsYyh2YXIoLS1HcmlkLWd1dHRlcikgKiAtMC41KTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1HcmlkLWd1dHRlci12ZXJ0aWNhbCkgKiAtMSk7XG59XG5cbi5HcmlkLS1kaXZpZGVkIHtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1HcmlkLWd1dHRlci12ZXJ0aWNhbCkgKiAtMik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5HcmlkLS1zbGltIHtcbiAgLS1HcmlkLWd1dHRlcjogMC42cmVtO1xuICAtLUdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAwLjZyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCksIHByaW50IHtcbiAgLkdyaWQtLXNsaW0ge1xuICAgIC0tR3JpZC1ndXR0ZXI6IDEuNXJlbTtcbiAgICAtLUdyaWQtZ3V0dGVyLXZlcnRpY2FsOiAxLjVyZW07XG4gIH1cbn1cblxuLyoqXG4gKiAxLiBBZGQgc3VwcG9ydCBmb3IgdHJ1bmNhdGVkIHRleHQgd2l0aGluIHRoZSBncmlkXG4gKi9cblxuLkdyaWQtY2VsbCB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDA7IC8qIDEgKi9cbiAgcGFkZGluZzogMCBjYWxjKHZhcigtLUdyaWQtZ3V0dGVyKSAqIDAuNSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLUdyaWQtZ3V0dGVyLXZlcnRpY2FsKTtcbn1cblxuLkdyaWQtLWRpdmlkZWQgLkdyaWQtY2VsbCB7XG4gIG1hcmdpbi1ib3R0b206IGNhbGModmFyKC0tR3JpZC1ndXR0ZXItdmVydGljYWwpICogMik7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tR3JpZC1ndXR0ZXItdmVydGljYWwpICogLTEpO1xufVxuXG4uR3JpZC1jZWxsID4gKiB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIG1pbi13aWR0aDogMDsgLyogMSAqL1xufVxuXG4uR3JpZC0tZGl2aWRlZCAuR3JpZC1jZWxsOjpiZWZvcmUge1xuICBmbGV4OiAwIDAgMXB4O1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tR3JpZC1ndXR0ZXItdmVydGljYWwpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTMpO1xufVxuXG4uR3JpZC1jZWxsLS1hcHBlYXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpO1xuICBhbmltYXRpb246IEdyaWQtY2VsbC0tYXBwZWFyIDYwMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBHcmlkLWNlbGwtLWFwcGVhciB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICB9XG59XG5cbi8qKlxuICogQ2Fyb3VzZWxcbiAqL1xuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLkdyaWQtLWNhcm91c2VsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIC13ZWJraXQtc2Nyb2xsLXNuYXAtdHlwZTogbWFuZGF0b3J5O1xuICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAgIC13ZWJraXQtc2Nyb2xsLXNuYXAtcG9pbnRzLXg6IHJlcGVhdCgxMDAlKTtcbiAgICBzY3JvbGwtc25hcC1wb2ludHMteDogcmVwZWF0KDEwMCUpO1xuICB9XG5cbiAgLkdyaWQtLWNhcm91c2VsIC5HcmlkLWNlbGwge1xuICAgIGZsZXgtYmFzaXM6IGNhbGMoMTAwJSAtIDJyZW0pO1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZG9jdW1lbnQtbWFyZ2luKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogY2FsYygodmFyKC0tZG9jdW1lbnQtbWFyZ2luKSAqIC0xKSArIDFyZW0pO1xuICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLkdyaWQtLWNhcm91c2VsIC5HcmlkLWNlbGw6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZG9jdW1lbnQtbWFyZ2luKTtcbiAgICBmbGV4LWJhc2lzOiBjYWxjKDEwMCUgLSAxcmVtKTtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vYmFzZSc7XG5cbi8qIEBkZWZpbmUgQm9vayAqL1xuLkJvb2sge1xuICBwYWRkaW5nOiAzcmVtIDAgMS41cmVtO1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tY29sb3ItZ3JheSkpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODAwcHgpIGFuZCAobWluLWhlaWdodDogNDAwcHgpIHtcbiAgLkJvb2sge1xuICAgIHBhZGRpbmctdG9wOiA1cmVtO1xuICB9XG59XG5cbi5Cb29rLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uQm9vay1maWd1cmUge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nOiAwIDJyZW0gMCAxcmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5Cb29rLWNvbnRlbnQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5Cb29rLWZpZ3VyZSB7XG4gICAgZmxleDogMCAxIDMzLjMzMyU7XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5Cb29rLWZpZ3VyZSB7XG4gICAgZmxleDogMCAxIDUwJTtcbiAgICBwYWRkaW5nOiAwIDRyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAuQm9vay1maWd1cmUge1xuICAgIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICB9XG59XG5cbi5Cb29rLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5Cb29rLWJvZHkge1xuICBmbGV4OiAxIDEgMCU7XG59XG5cbi5Cb29rLXRpdGxlIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1ibHVlKSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtaW4taGVpZ2h0OiA0MDBweCkge1xuICAuQm9vay10aXRsZSB7XG4gICAgZm9udC1zaXplOiAyLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbn1cblxuLkJvb2stcmF0aW5nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMC41ZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuXG4uQm9vay1yYXRpbmc6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICfimIXimIXimIXimIXimIUnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItbXV0ZWQpKTtcbn1cblxuLkJvb2stcmF0aW5nOjphZnRlciB7XG4gIGNvbnRlbnQ6IGF0dHIoZGF0YS1yYXRpbmcpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAjZmY5MzAwO1xufVxuXG4uQm9vay1hdXRob3Ige1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwLjVlbSAwIDFlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cblxuLkJvb2stZm9vdGVyIHtcbiAgZmxleDogMSAwIDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBhZGRpbmc6IDEuNXJlbSAwIDA7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLkJvb2stcmV0YWlsZXJzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1tdXRlZCkpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLkJvb2stZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICB9XG5cbiAgLkJvb2stcmV0YWlsZXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICB9XG59XG5cbi5Cb29rLWxvZ290eXBlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAwLjlyZW07XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuIiwiQGltcG9ydCAnLi4vYmFzZSc7XG5AaW1wb3J0ICcuLi9ncmlkJztcblxuLyogQGRlZmluZSBDb3Vyc2UgKi9cbi5Db3Vyc2Uge1xuICBwYWRkaW5nOiAzcmVtIDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1jb2xvci1ncmF5KSk7XG59XG5cbi5Db3Vyc2UgKyAuQ291cnNlIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODAwcHgpIGFuZCAobWluLWhlaWdodDogNDAwcHgpIHtcbiAgLkNvdXJzZSB7XG4gICAgcGFkZGluZzogMy41cmVtO1xuICB9XG59XG5cbi5Db3Vyc2UtcGFuZWwge1xuICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMyk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5Db3Vyc2UtdGFnIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjNlbSAwLjhlbTtcbiAgbWFyZ2luOiAwIDAuNWVtIDAuNWVtIDA7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xufVxuXG4uQ291cnNlLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtaW4taGVpZ2h0OiA0MDBweCkge1xuICAuQ291cnNlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDIuMzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuXG4uQ291cnNlLXRpdGxlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLXRvcDogMC4yNWVtO1xufVxuXG4uQ291cnNlLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgcGFkZGluZzogMC4xZW0gMC4zZW07XG4gIG1hcmdpbjogMS41cmVtIC0wLjNlbSAtMC4xZW0gLTAuM2VtO1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgdmFyKC0tZWFzZS1vdXQpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMS41cHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xNGVtO1xufVxuXG4uQ291cnNlLWxpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWNvbG9yLWJsdWUpLCAwLjA1KTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLkNvdXJzZS1saW5rOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLkNvdXJzZS1oZWFkaW5nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCAwIDFlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLkNvdXJzZS1mZWF0dXJlcyB7XG4gIHBhZGRpbmctbGVmdDogMS41ZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAuQ291cnNlLWZlYXR1cmVzIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxufVxuXG4uQ291cnNlLWZlYXR1cmUge1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBsaXN0LXN0eWxlLWltYWdlOiB1cmwoJy4vY2hlY2ttYXJrLnN2ZycpO1xufVxuXG4uQ291cnNlLWRhdGVzIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tR3JpZC1ndXR0ZXIpO1xufVxuIiwiQGltcG9ydCAnLi4vYmFzZSc7XG5cbi8qIEBkZWZpbmUgUHJvZHVjdCAqL1xuLlByb2R1Y3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nOiAxLjVyZW0gMS41cmVtIDNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xufVxuXG4uUHJvZHVjdCArIC5Qcm9kdWN0IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIGFuZCAobWluLWhlaWdodDogMzUwcHgpIHtcbiAgLlByb2R1Y3Qge1xuICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtaW4taGVpZ2h0OiA0MDBweCkge1xuICAuUHJvZHVjdCB7XG4gICAgcGFkZGluZzogMy41cmVtO1xuICB9XG59XG5cbi5Qcm9kdWN0LS1zdGFuZGFsb25lIHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uUHJvZHVjdC1maWd1cmUge1xuICBmbGV4OiAwIDAgMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5Qcm9kdWN0LWZpZ3VyZSB7XG4gICAgZmxleDogMCAwIDMzLjMzMyU7XG4gIH1cbn1cblxuLlByb2R1Y3QtZmlndXJlOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAxMDAlO1xufVxuXG4uUHJvZHVjdC1pbWFnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogYXV0bztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1jb2xvci1ncmF5KSk7XG59XG5cbi5Qcm9kdWN0LmlzLWxvYWRpbmcgLlByb2R1Y3QtaW1hZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHZhcigtLWxvYWRpbmctY29sb3IpKTtcbn1cblxuQHN1cHBvcnRzIChvYmplY3QtZml0OiBjb3Zlcikge1xuICAuUHJvZHVjdC1pbWFnZSB7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uUHJvZHVjdC1oZWFkZXIge1xuICBmbGV4OiAxIDEgMTAwJTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5Qcm9kdWN0LWhlYWRlciB7XG4gICAgZmxleDogMSAxIDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICB9XG59XG5cbi5Qcm9kdWN0LWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLlByb2R1Y3QtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSBhbmQgKG1pbi1oZWlnaHQ6IDQwMHB4KSB7XG4gIC5Qcm9kdWN0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDIuNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxufVxuXG4uUHJvZHVjdC1wcm9wZXJ0aWVzIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuLlByb2R1Y3QtdmFsdWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5Qcm9kdWN0LXZhbHVlIHtcbiAgbWFyZ2luOiAwIDFyZW0gMC41cmVtIDA7XG59XG5cbi5Qcm9kdWN0LWJvZHkge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uUHJvZHVjdC1oZWFkaW5nIHtcbiAgbWFyZ2luOiAycmVtIDAgMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLlByb2R1Y3QtZmVhdHVyZXMge1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xufVxuXG4uUHJvZHVjdC1mZWF0dXJlIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKCcuL2NoZWNrbWFyay5zdmcnKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuUHJvZHVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC5Qcm9kdWN0LWZpZ3VyZSxcbiAgLlByb2R1Y3QtY29udGFjdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgd2lkdGg6IDMzLjMzMyU7XG4gIH1cblxuICAuUHJvZHVjdC1oZWFkZXIsXG4gIC5Qcm9kdWN0LWJvZHkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNjYuNjY2JTtcbiAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL2Jhc2UnO1xuXG4vKiBAZGVmaW5lIERhdGUgKi9cbi5EYXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxLjM1cmVtIDEuNXJlbTtcbiAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEzKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItbXV0ZWQpKTtcbn1cblxuLkRhdGUtY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuRGF0ZS1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDEycmVtKTtcbiAgfVxufVxuXG4uRGF0ZS10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiByZ2IodmFyKC0tZG9jdW1lbnQtY29sb3IpKTtcbn1cblxuLkRhdGUtYWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLkRhdGUtbWV0YSB7XG4gIG1hcmdpbjogMCAxLjVyZW0gMC4yNXJlbSAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgLkRhdGUtbWV0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuIiwiQGltcG9ydCAnLi4vYmFzZSc7XG5cbi8qIEBkZWZpbmUgVmlldyAqL1xuLlZpZXcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tZG9jdW1lbnQtYmFja2dyb3VuZCkpO1xufVxuXG4uVmlldy5pcy1vdmVybGF5ZWQge1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tY29sb3ItZ3JheSkpO1xufVxuXG4vKipcbiAqIEhlYWRlclxuICovXG5cbi5WaWV3LWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNTtcbn1cblxuLyoqXG4gKiBNYWluIGNvbnRlbnQgYXJlYVxuICovXG5cbi5WaWV3LW1haW4ge1xuICBmbGV4LWdyb3c6IDE7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3OTlweCkge1xuICAuVmlldy5pcy1vdmVybGF5ZWQgLlZpZXctbWFpbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5WaWV3LXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAuVmlldy10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICB9XG59XG5cbi8qKlxuICogRm9vdGVyXG4gKi9cblxuLlZpZXctZm9vdGVyOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgaGVpZ2h0OiAxM3ZoO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LWhlaWdodDogN3JlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuVmlldy1mb290ZXI6OmJlZm9yZSB7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBtaW4taGVpZ2h0OiA4cmVtO1xuICB9XG59XG5cbi8qKlxuICogU2xpZGUgaW4gdGhpbmdzXG4gKi9cblxuOnJvb3Rbc2NyaXB0aW5nLWVuYWJsZWRdIC5WaWV3LXNsaWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwdmgpO1xuICBhbmltYXRpb246IFZpZXctc2xpZGUtLWFwcGVhciA2MDBtcyAzMDAwbXMgZm9yd2FyZHMgdmFyKC0tZWFzZS1vdXQpO1xufVxuXG46cm9vdFtzY3JpcHRpbmctZW5hYmxlZF0gLlZpZXctc2xpZGUuaXMtaW5pdGlhbGl6ZWQge1xuICBhbmltYXRpb246IG5vbmU7XG59XG5cbjpyb290W3NjcmlwdGluZy1lbmFibGVkXSAuVmlldy1zbGlkZS5pcy12aXNpYmxlIHtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgYW5pbWF0aW9uOiBWaWV3LXNsaWRlLS1hcHBlYXIgNjAwbXMgZm9yd2FyZHMgdmFyKC0tZWFzZS1vdXQpO1xufVxuXG5Aa2V5ZnJhbWVzIFZpZXctc2xpZGUtLWFwcGVhciB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwdmgpO1xuICB9XG59XG5cbjpyb290W3NjcmlwdGluZy1lbmFibGVkXSAuVmlldy1zbGlkZS5pcy1pbW1lZGlhdGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHZoKTtcbiAgYW5pbWF0aW9uOiBub25lO1xufVxuIiwiQGltcG9ydCAnLi4vYmFzZSc7XG5cbi8qIEBkZWZpbmQgRW1iZWQgKi9cbi5FbWJlZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLkVtYmVkLWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4uRW1iZWQtbGluazo6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuXG4uRW1iZWQtbGluazo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHotaW5kZXg6IDE7XG5cbiAgdGV4dC1pbmRlbnQ6IDNyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNDBtcyB2YXIoLS1lYXNlKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1jdXJyZW50LWNvbG9yKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi9pY29uLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYm94LXNoYWRvdzogMCAwIDJyZW0gMXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5cbi5FbWJlZDpob3ZlciAuRW1iZWQtbGluazo6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxLjA4KTtcbn1cblxuLkVtYmVkLS1mdWxsc2NyZWVuOjphZnRlcixcbi5FbWJlZC0taGlkZGVuOjphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAuRW1iZWQ6bm90KC5FbWJlZC0tc20pIC5FbWJlZC1saW5rOjphZnRlciB7XG4gICAgd2lkdGg6IDQuNXJlbTtcbiAgICBoZWlnaHQ6IDQuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNjAlKTtcbiAgfVxuXG4gIC5FbWJlZDpub3QoLkVtYmVkLS1zbSk6aG92ZXIgLkVtYmVkLWxpbms6OmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNjAlKSBzY2FsZSgxLjA4KTtcbiAgfVxufVxuXG4uRW1iZWQtaW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG59XG5cbkBzdXBwb3J0cyAob2JqZWN0LWZpdDogY292ZXIpIHtcbiAgLkVtYmVkOm5vdCguRW1iZWQtLXNtKSAuRW1iZWQtaW1hZ2Uge1xuICAgIG1pbi1oZWlnaHQ6IDQwdmg7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gIH1cbn1cblxuLkVtYmVkLWNhcHRpb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAyNSU7XG4gIHBhZGRpbmc6IDFyZW0gMS4xcmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIHJnYmEoMCwgMCwgMCwgMCksXG4gICAgcmdiYSgwLCAwLCAwLCAwLjMpIDQwJSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuNSlcbiAgKTtcbiAgYm9yZGVyLXJhZGl1czogMCAwIDAuMzc1cmVtIDAuMzc1cmVtO1xufVxuXG4uRW1iZWQtdGl0bGUge1xuICBwYWRkaW5nLXRvcDogMC4ycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWF4LXdpZHRoOiAzNWVtO1xuICBmb250LWZhbWlseTogdmFyKC0taGVhZGluZy1mb250LWZhbWlseSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1oZWFkaW5nLWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDM3NXB4KSB7XG4gIC5FbWJlZDpub3QoLkVtYmVkLS1zbSkgLkVtYmVkLWNhcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDUwMHB4KSB7XG4gIC5FbWJlZC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB9XG5cbiAgLkVtYmVkLWNhcHRpb24ge1xuICAgIHBhZGRpbmc6IDEuNHJlbSAycmVtO1xuICB9XG59XG5cbi8qKlxuICogRnVsbHNjcmVlbiBtb2RlXG4gKi9cblxuLkVtYmVkLS1mdWxsc2NyZWVuIHtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBwYWRkaW5nOiAycmVtO1xuXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAzMDtcblxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuODUpO1xuICBhbmltYXRpb246IEVtYmVkLS1hcHBlYXIgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBFbWJlZC0tYXBwZWFyIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5FbWJlZC0tZnVsbHNjcmVlbi5pcy1jbG9zaW5nIHtcbiAgYW5pbWF0aW9uOiBFbWJlZC0tZGlzYXBwZWFyIDM1MG1zIDIwMG1zIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSlcbiAgICBmb3J3YXJkcztcbn1cblxuQGtleWZyYW1lcyBFbWJlZC0tZGlzYXBwZWFyIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5FbWJlZC1jbG9zZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAtMjtcbn1cblxuLkVtYmVkLWNyb3NzIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBwYWRkaW5nOiAxcmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMnJlbTtcbiAgcmlnaHQ6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODEsIDgxLCA4MSwgMCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTgwbXMgdmFyKC0tZWFzZS1vdXQpO1xufVxuXG4uRW1iZWQtY3Jvc3M6OmJlZm9yZSxcbi5FbWJlZC1jcm9zczo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDFyZW07XG4gIHRvcDogNTAlO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG59XG5cbi5FbWJlZC1jcm9zczo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4uRW1iZWQtY3Jvc3M6OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbn1cblxuLkVtYmVkLWNsb3NlOmhvdmVyIC5FbWJlZC1jcm9zcyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODEsIDgxLCA4MSwgMSk7XG59XG5cbi5FbWJlZC13cmFwcGVyIHtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogODglO1xuICBtYXgtd2lkdGg6IHZhcigtLWRvY3VtZW50LW1heC13aWR0aCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICB6LWluZGV4OiAtMTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5FbWJlZC13cmFwcGVyIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG59XG5cbi5FbWJlZC1pZnJhbWUge1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMTAwJSAqICg5IC8gMTYpKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBib3gtc2hhZG93OiAwIDAgMTByZW0gcmdiYSgwLCAwLCAwLCAwLjIpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cblxuLkVtYmVkLS1mdWxsc2NyZWVuLmlzLWNsb3NpbmcgLkVtYmVkLWlmcmFtZSB7XG4gIGFuaW1hdGlvbjogRW1iZWQtaWZyYW1lLS1kaXNhcHBlYXIgMjUwbXMgY3ViaWMtYmV6aWVyKDAuMzMsIDAuODksIDAuNjIsIDEpXG4gICAgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgRW1iZWQtaWZyYW1lLS1kaXNhcHBlYXIge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MHZoKTtcbiAgfVxufVxuXG4uRW1iZWQtaWZyYW1lIGlmcmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuXG4uRW1iZWQtLWZ1bGxzY3JlZW4gLkVtYmVkLWlmcmFtZSBpZnJhbWUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGFuaW1hdGlvbjogRW1iZWQtY29udGVudC0tYXBwZWFyIDBtcyA2NTBtcyBsaW5lYXIgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgRW1iZWQtY29udGVudC0tYXBwZWFyIHtcbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL2Jhc2UnO1xuXG4vKiBAZGVmaW5lIENhcmQgKi9cbjpyb290IHtcbiAgLS1DYXJkLWFzcGVjdDogY2FsYygxMCAvIDEyKTtcbiAgLS1DYXJkLXRpbHRYOiAwO1xuICAtLUNhcmQtdGlsdFk6IDA7XG59XG5cbi5DYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6IHJnYih2YXIoLS1jdXJyZW50LWNvbG9yKSk7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC5DYXJkIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbn1cblxuLkNhcmQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiAxLiBHZXQgYSB6LWluZGV4IHRvIHB1dCBvbnRvcCBvZiBob3ZlciBzaGFkaW5nXG4gKi9cblxuLkNhcmQtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogMSAqL1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzNnJlbTtcbn1cblxuLkNhcmQtLWltYWdlIC5DYXJkLWJvZHkge1xuICBtYXJnaW4tdG9wOiAxLjM3NXJlbTtcbn1cblxuLkNhcmQtYm9keSBhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIHZhcigtLWVhc2Utb3V0KTtcbn1cblxuLkNhcmQtYm9keSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDEuNXB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMTRlbTtcbn1cblxuLkNhcmQtYm9keSBhOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLkNhcmQtbWV0YSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1ZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1tdXRlZCkpO1xufVxuXG4uQ2FyZC10aXRsZSB7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIG1heC13aWR0aDogNDByZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLkNhcmQtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxufVxuXG4uQ2FyZC10ZXh0IHtcbiAgbWFyZ2luOiAwLjVyZW0gMCAwO1xufVxuXG4vKipcbiAqIEZpZ3VyZVxuICovXG5cbi5DYXJkLWZpZ3VyZSB7XG4gIG1heC1oZWlnaHQ6IDI0cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEodmFyKC0tbG9hZGluZy1jb2xvcikpO1xufVxuXG4uQ2FyZC1maWd1cmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLXRvcDogY2FsYygxMDAlICogdmFyKC0tQ2FyZC1hc3BlY3QpKTtcbn1cblxuLkNhcmQtZmlndXJlSWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLkNhcmQtZmlndXJlSWNvbiB7XG4gICAgd2lkdGg6IDY3cHg7XG4gICAgaGVpZ2h0OiA2N3B4O1xuICB9XG59XG5cbi5DYXJkLWltYWdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG59XG5cbkBzdXBwb3J0cyAob2JqZWN0LWZpdDogY292ZXIpIHtcbiAgLkNhcmQgLkNhcmQtaW1hZ2Uge1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLyoqXG4gKiBMaW5rXG4gKi9cblxuLkNhcmQtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci10dXJxdW9pc2UpKTtcbiAgcGFkZGluZzogMC4xZW0gMC4zZW07XG4gIG1hcmdpbjogMC41cmVtIC0wLjNlbSAtMC4xZW0gLTAuM2VtO1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgdmFyKC0tZWFzZS1vdXQpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMS41cHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xNGVtO1xuICBtYXgtd2lkdGg6IDMycmVtO1xufVxuXG4uQ2FyZC1saW5rOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG5cbi5DYXJkLWxpbms6YWN0aXZlIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4uQ2FyZC1saW5rOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1jb2xvci1ibHVlKSwgMC4wNSk7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuLyoqIEBkZWZpbmUgVGV4dCAqL1xuLlRleHQge1xuICBjb2xvcjogcmdiKHZhcigtLWN1cnJlbnQtY29sb3IpKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWRlZmF1bHQtZm9udC1mYW1pbHkpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tZGVmYXVsdC1saW5lLWhlaWdodCk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItbWVkaXVtLXdpZHRoKTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5UZXh0LS1tdXRlZCxcbi5UZXh0LW11dGVkIHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1tdXRlZCkpO1xufVxuXG4uVGV4dC0tc21hbGwsXG4uVGV4dC1zbWFsbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLlRleHQtLWxhcmdlLFxuLlRleHQtbGFyZ2Uge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbi5UZXh0LS1sZWZ0IHtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzUwcHgpIHtcbiAgLlRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cblxuICAuVGV4dC0tc21hbGwsXG4gIC5UZXh0LXNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxuXG4gIC5UZXh0LS1sYXJnZSxcbiAgLlRleHQtbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODAwcHgpIGFuZCAobWluLWhlaWdodDogNDAwcHgpIHtcbiAgLlRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgfVxuXG4gIC5UZXh0LS1zbWFsbCxcbiAgLlRleHQtc21hbGwge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuXG4gIC5UZXh0LS1sYXJnZSxcbiAgLlRleHQtbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmxpbmUgZWxlbWVudHNcbiAqL1xuXG4uVGV4dCBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG5cbi5UZXh0IGE6bm90KC5FbWJlZC1saW5rKSB7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItbGluaykpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMS41cHg7XG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xNGVtO1xuICBwYWRkaW5nOiAwLjFlbSAwLjNlbTtcbiAgbWFyZ2luOiAtMC4xZW0gLTAuM2VtO1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgdmFyKC0tZWFzZS1vdXQpO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxLjVweDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjE0ZW07XG59XG5cbi5UZXh0IGE6bm90KC5FbWJlZC1saW5rKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tY29sb3ItbGluayksIDAuMDUpO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uVGV4dCBhOm5vdCguRW1iZWQtbGluayk6YWN0aXZlIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4vKipcbiAqIEJsb2NrIGVsZW1lbnRzXG4gKi9cblxuLlRleHQgcCxcbi5UZXh0IHVsLFxuLlRleHQgb2wsXG4uVGV4dCBoMSxcbi5UZXh0IGgyLFxuLlRleHQgaDMsXG4uVGV4dCBoNCxcbi5UZXh0IGg1LFxuLlRleHQgaDYge1xuICBtYXJnaW46IDAuOGVtIDA7XG59XG5cbi5UZXh0IHA6Zmlyc3QtY2hpbGQsXG4uVGV4dCB1bDpmaXJzdC1jaGlsZCxcbi5UZXh0IG9sOmZpcnN0LWNoaWxkLFxuLlRleHQgaDE6Zmlyc3QtY2hpbGQsXG4uVGV4dCBoMjpmaXJzdC1jaGlsZCxcbi5UZXh0IGgzOmZpcnN0LWNoaWxkLFxuLlRleHQgaDQ6Zmlyc3QtY2hpbGQsXG4uVGV4dCBoNTpmaXJzdC1jaGlsZCxcbi5UZXh0IGg2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLlRleHQgcDpsYXN0LWNoaWxkLFxuLlRleHQgdWw6bGFzdC1jaGlsZCxcbi5UZXh0IG9sOmxhc3QtY2hpbGQsXG4uVGV4dCBoMTpsYXN0LWNoaWxkLFxuLlRleHQgaDI6bGFzdC1jaGlsZCxcbi5UZXh0IGgzOmxhc3QtY2hpbGQsXG4uVGV4dCBoNDpsYXN0LWNoaWxkLFxuLlRleHQgaDU6bGFzdC1jaGlsZCxcbi5UZXh0IGg2Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uVGV4dCBpbWc6bm90KC5FbWJlZC1pbWFnZSkge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAyLjJlbSAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLlRleHQgaW1nOm5vdCguRW1iZWQtaW1hZ2UpIHtcbiAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgfVxufVxuXG4uVGV4dC1jYXB0aW9uIHtcbiAgbWFyZ2luOiAtMS4yZW0gMCAxLjZlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItbXV0ZWQpKTtcbn1cblxuLlRleHQtY2FwdGlvbjplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtaW4taGVpZ2h0OiA0MDBweCkge1xuICAuVGV4dCBpbWc6bm90KC5FbWJlZC1pbWFnZSkge1xuICAgIG1hcmdpbjogNGVtIDA7XG4gIH1cblxuICAuVGV4dC1jYXB0aW9uIHtcbiAgICBtYXJnaW46IC0yLjVlbSAwIDIuNWVtO1xuICB9XG59XG5cbi5UZXh0IHByZSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbiAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgcGFkZGluZzogMXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLyoqXG4gKiBMaXN0c1xuICovXG5cbi5UZXh0IHVsLFxuLlRleHQgb2wge1xuICBtYXJnaW46IDA7XG59XG5cbi5UZXh0IHVsOm5vdCg6Zmlyc3QtY2hpbGQpLFxuLlRleHQgb2w6bm90KDpmaXJzdC1jaGlsZCkge1xuICBtYXJnaW4tdG9wOiBjYWxjKDEuMmVtIC0gMC41ZW0pO1xufVxuXG4uVGV4dCB1bDpub3QoOmxhc3QtY2hpbGQpLFxuLlRleHQgb2w6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbjogMS4yZW07XG59XG5cbi5UZXh0IHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4uVGV4dCBvbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgcGFkZGluZy1sZWZ0OiAxLjdlbTtcbn1cblxuLlRleHQgdWwgPiBsaSB7XG4gIHBhZGRpbmctbGVmdDogMS4yZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLlRleHQgb2wgPiBsaSB7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG59XG5cbi5UZXh0IHVsID4gbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogY2FsYygwLjVlbSArIDAuNmVtKTtcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xufVxuXG4uVGV4dCBsaSB7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbn1cblxuLyoqXG4gKiBIZWFkaW5nc1xuICovXG5cbi5UZXh0IGgxLFxuLlRleHQgaDIsXG4uVGV4dCBoMyxcbi5UZXh0IGg0LFxuLlRleHQgaDUsXG4uVGV4dCBoNixcbi5UZXh0IC5UZXh0LWgxLFxuLlRleHQgLlRleHQtaDIsXG4uVGV4dCAuVGV4dC1oMyxcbi5UZXh0IC5UZXh0LWg0LFxuLlRleHQgLlRleHQtaDUsXG4uVGV4dCAuVGV4dC1oNiB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4uVGV4dCBoMSxcbi5UZXh0IC5UZXh0LWgxIHtcbiAgZm9udC1zaXplOiAxLjU1ZW07XG59XG5cbi5UZXh0IGgyLFxuLlRleHQgLlRleHQtaDIge1xuICBmb250LXNpemU6IDEuMzNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBtYXJnaW4tdG9wOiAyZW07XG59XG5cbi5UZXh0IGgzLFxuLlRleHQgLlRleHQtaDMge1xuICBtYXJnaW46IDAgMCAtMC40ZW0gMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5UZXh0IGgyLFxuICAuVGV4dCAuVGV4dC1oMiB7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gIH1cblxuICAuVGV4dCBoMyxcbiAgLlRleHQgLlRleHQtaDMge1xuICAgIG1hcmdpbjogMC44ZW0gMDtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgLlRleHQgaDIsXG4gIC5UZXh0IC5UZXh0LWgyIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgfVxuXG4gIC5UZXh0LS1zbWFsbCBoMixcbiAgLlRleHQtLXNtYWxsIC5UZXh0LWgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICB9XG59XG5cbi5UZXh0IGg0LFxuLlRleHQgLlRleHQtaDQge1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogMS40ZW07XG59XG5cbi5UZXh0IGg1LFxuLlRleHQgLlRleHQtaDUge1xuICBmb250LXNpemU6IDAuOWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uVGV4dCBoNixcbi5UZXh0IC5UZXh0LWg2IHtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEodmFyKC0tY29sb3ItbXV0ZWQpKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSBhbmQgKG1pbi1oZWlnaHQ6IDQwMHB4KSB7XG4gIC5UZXh0IGgxLFxuICAuVGV4dCAuVGV4dC1oMSB7XG4gICAgZm9udC1zaXplOiAyLjFlbTtcbiAgfVxufVxuXG4uVGV4dC0tY2VudGVyT25seUNoaWxkSGVhZGluZyBoMTpvbmx5LWNoaWxkLFxuLlRleHQtLWNlbnRlck9ubHlDaGlsZEhlYWRpbmcgaDI6b25seS1jaGlsZCxcbi5UZXh0LS1jZW50ZXJPbmx5Q2hpbGRIZWFkaW5nIGgzOm9ubHktY2hpbGQsXG4uVGV4dC0tY2VudGVyT25seUNoaWxkSGVhZGluZyBoNDpvbmx5LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uVGV4dC1udW1iZXIge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMy41cmVtO1xuICBmb250LXNpemU6IDIuMjVyZW07XG4gIGJhY2tncm91bmQ6IHBpbms7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6ICMxMTAwNDY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLlRleHQtbnVtYmVyIHtcbiAgICB3aWR0aDogNC41cmVtO1xuICAgIGhlaWdodDogNC41cmVtO1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgfVxufVxuXG4uVGV4dC1zbWFsbCAuU3ltYm9sIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLlRleHQgLkVtYmVkIHtcbiAgbWFyZ2luOiAzcmVtIDA7XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuLyogQGRlZmluZSBQZXJzb24gKi9cbi5QZXJzb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uUGVyc29uLWZpZ3VyZSB7XG4gIGZsZXg6IDAgMCAyNHZ3O1xuICBtYXgtd2lkdGg6IDE4MHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIuMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7XG59XG5cbi5QZXJzb24tLXNtYWxsIC5QZXJzb24tZmlndXJlIHtcbiAgbWF4LXdpZHRoOiA0cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAuUGVyc29uLS1zbWFsbCAuUGVyc29uLWZpZ3VyZSB7XG4gICAgbWF4LXdpZHRoOiAzcmVtO1xuICB9XG59XG5cbi5QZXJzb24tZmlndXJlOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAxMDAlO1xufVxuXG4uUGVyc29uLWltYWdlIHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWdyYXkpKTtcbn1cblxuQHN1cHBvcnRzIChvYmplY3QtZml0OiBjb3Zlcikge1xuICAuUGVyc29uLWltYWdlIHtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5QZXJzb24uaXMtbG9hZGluZyAuUGVyc29uLWltYWdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSh2YXIoLS1sb2FkaW5nLWNvbG9yKSk7XG59XG5cbi5QZXJzb24taW5mbyB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4uUGVyc29uLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjJlbTtcbiAgbWFyZ2luLXRvcDogMC4xZW07XG59XG5cbi5QZXJzb24tLXNtYWxsIC5QZXJzb24tdGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5MDBweCkge1xuICAuUGVyc29uLXRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiAwLjdyZW07XG4gIH1cbn1cblxuLlBlcnNvbi0tc21hbGwgLlBlcnNvbi10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5QZXJzb24taW5mbyBhOm5vdCguUGVyc29uLWxpbmspOmhvdmVyIHtcbiAgY29sb3I6IHJnYih2YXIoLS1kb2N1bWVudC1jb2xvcikpO1xufVxuXG4uUGVyc29uLWxpbmssXG4uUGVyc29uLXRleHQgYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDEuNXB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMTRlbTtcbiAgcGFkZGluZzogMC4xZW0gMC4zZW07XG4gIG1hcmdpbjogMCAtMC4zZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci10dXJxdW9pc2UpKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCA0MDBtcyB2YXIoLS1lYXNlLW91dCk7XG59XG5cbi5QZXJzb24tbGluazpob3Zlcixcbi5QZXJzb24tdGV4dCBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1jb2xvci10dXJxdW9pc2UpLCAwLjA1KTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLlBlcnNvbi1saW5rOmFjdGl2ZSxcbi5QZXJzb24tdGV4dCBhOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLlBlcnNvbi10ZXh0IHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1tdXRlZCkpO1xuICBtYXJnaW46IDAuM2VtIDA7XG59XG5cbi5QZXJzb24tLXNtYWxsIC5QZXJzb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuIiwiQGltcG9ydCAnLi4vYmFzZSc7XG5cbi8qIEBkZWZpbmUgRm9vdGVyICovXG4uRm9vdGVyLW5hdmlnYXRpb24ge1xuICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tY29sb3ItZ3JheSkpO1xuICBwYWRkaW5nOiAzcmVtIDAgMi41cmVtO1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gIC5Gb290ZXItbmF2aWdhdGlvbiB7XG4gICAgcGFkZGluZzogNHJlbSAwIDMuNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIC5Gb290ZXItbmF2aWdhdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IDEuOHJlbTtcbiAgfVxufVxuXG4uRm9vdGVyLS1uZXdzbGV0dGVyOm5vdCguRm9vdGVyLS1hbHQpIC5Gb290ZXItbmF2aWdhdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAxNnJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gIC5Gb290ZXItLW5ld3NsZXR0ZXI6bm90KC5Gb290ZXItLWFsdCkgLkZvb3Rlci1uYXZpZ2F0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMTNyZW07XG4gIH1cbn1cblxuLkZvb3Rlci1tZW51IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDAgLTAuNHJlbTtcbn1cblxuLkZvb3Rlci1saXN0IHtcbiAgbWFyZ2luOiAwLjhyZW0gMDtcbn1cblxuLkZvb3Rlci1zZWN0aW9uLkZvb3Rlci1zZWN0aW9uIHtcbiAgZmxleC1iYXNpczogNTAlO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLkZvb3Rlci1zZWN0aW9uLkZvb3Rlci1zZWN0aW9uIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uRm9vdGVyLWl0ZW0ge1xuICBtYXJnaW46IDAuNHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuXG4uRm9vdGVyLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjNyZW07XG4gIG1hcmdpbjogLTAuMXJlbSAtMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgdmFyKC0tZWFzZS1vdXQpO1xufVxuXG4uRm9vdGVyLWxpbms6bGluazpob3Zlcixcbi5Gb290ZXItbGluazpsaW5rOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tY29sb3ItYmx1ZSksIDAuMDUpO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uRm9vdGVyLWxpbmstLXByaW1hcnkge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgLkZvb3Rlci1saW5rLS1wcmltYXJ5IHtcbiAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICB9XG5cbiAgLkZvb3Rlci1pdGVtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5Gb290ZXItc2VjdGlvbiB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlO1xuICB9XG5cbiAgLkZvb3Rlci10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gIC5Gb290ZXItc2VjdGlvbiB7XG4gICAgZmxleC1iYXNpczogMjUlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLkZvb3Rlci1zZWN0aW9uIHtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NiU7XG4gIH1cbn1cblxuLyoqXG4gKiBOZXdzbGV0dGVyXG4gKi9cblxuLkZvb3Rlci1uZXdzbGV0dGVyIHtcbiAgcGFkZGluZzogM3JlbSAxLjVyZW0gMnJlbTtcbiAgbWFyZ2luOiAtOS41cmVtIDAgMDtcbiAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5Gb290ZXItbmV3c2xldHRlciB7XG4gICAgbWFyZ2luLXRvcDogLTRyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuRm9vdGVyLW5ld3NsZXR0ZXIge1xuICAgIG1hcmdpbi10b3A6IC0zcmVtO1xuICB9XG59XG5cbi5Gb290ZXItZm9ybSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDJyZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uRm9vdGVyLWVtYWlsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxZW0gMS4yNWVtO1xuICBib3JkZXI6IDA7XG4gIG1heC13aWR0aDogMzByZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpO1xuICBib3JkZXItcmFkaXVzOiAwLjE4NzVyZW07XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLkZvb3Rlci1lbWFpbDpmb2N1cy12aXNpYmxlLFxuLkZvb3Rlci1lbWFpbDpmb2N1cyB7XG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5Gb290ZXItbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4uRm9vdGVyLWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDAuNWVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgLkZvb3Rlci1uZXdzbGV0dGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMy41cmVtO1xuICB9XG5cbiAgLkZvb3Rlci1uZXdzbGV0dGVyIHAge1xuICAgIG1heC13aWR0aDogMzJlbTtcbiAgfVxuXG4gIC5Gb290ZXItZm9ybSB7XG4gICAgZmxleDogMCAxIDQ1ZW07XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAuRm9vdGVyLW5ld3NsZXR0ZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4uRm9vdGVyLWNvbnRhY3Qge1xuICBtYXgtd2lkdGg6IDMwcmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gIC5Gb290ZXItY29udGFjdCB7XG4gICAgbWF4LXdpZHRoOiA0OHJlbTtcbiAgfVxufVxuXG4vKipcbiAqIE1ldGEgc2VjdGlvblxuICovXG5cbi5Gb290ZXItbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uRm9vdGVyLWhvbWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA2LjhyZW07XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbn1cblxuLkZvb3Rlci1sb2dvIHtcbiAgd2lkdGg6IDguNXJlbTtcbn1cblxuLkZvb3Rlci1jb3B5IHtcbiAgb3BhY2l0eTogMC41O1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAuRm9vdGVyLW1ldGEge1xuICAgIG1hcmdpbjogMnJlbSAwIDFyZW07XG4gIH1cblxuICAuRm9vdGVyLWNvcHkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLkZvb3Rlci1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG5cbiAgLkZvb3Rlci1tZXRhIC5Gb290ZXItbG9nbyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG9yZGVyOiAxO1xuICB9XG5cbiAgLkZvb3Rlci1tZXRhIC5Gb290ZXItc2VjdGlvbiB7XG4gICAgb3JkZXI6IDI7XG4gIH1cblxuICAuRm9vdGVyLW1ldGEgLkZvb3Rlci1jb3B5IHtcbiAgICBvcmRlcjogMztcbiAgfVxuXG4gIC5Gb290ZXItbWV0YSAuRm9vdGVyLWxpc3QsXG4gIC5Gb290ZXItbWV0YSAuRm9vdGVyLWNvcHksXG4gIC5Gb290ZXItbWV0YSAuRm9vdGVyLWl0ZW0sXG4gIC5Gb290ZXItbWV0YSAuRm9vdGVyLWhvbWUge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG4vKipcbiAqIEFsdGVybmF0aXZlIHZlcnNpb25cbiAqIFVzZWQgd2hlbiB0aGUgZm9vdGVyIGlzIHVzZWQgYXMgbW9iaWxlIG5hdmlnYXRpb25cbiAqL1xuXG5AbWVkaWEgKG1heC13aWR0aDogNzk5cHgpIHtcbiAgLkZvb3Rlci0tYWx0IC5Gb290ZXItbmF2aWdhdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDVyZW07XG4gICAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWdyYXkpKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIH1cblxuICAuRm9vdGVyLS1hbHQgLkZvb3Rlci1uZXdzbGV0dGVyLFxuICAuRm9vdGVyLS1hbHQgLkZvb3Rlci1jb250YWN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLkZvb3Rlci0tYWx0IC5Gb290ZXItbWV0YSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5Gb290ZXItbGlzdCB7XG4gICAgbWFyZ2luOiAwLjRyZW0gMCAxLjhyZW07XG4gIH1cblxuICAuRm9vdGVyLS1hbHQgLkZvb3Rlci1tZW51IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG5cbiAgLkZvb3Rlci0tYWx0IC5Gb290ZXItbGluay0tcHJpbWFyeSB7XG4gICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgfVxuXG4gIC5Gb290ZXItLWFsdCAuRm9vdGVyLWNvcHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuRm9vdGVyLS1hbHQgLkZvb3Rlci1tZW51IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgLkZvb3Rlci0tYWx0IC5Gb290ZXItbWV0YSB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgbWFyZ2luOiAxLjNyZW0gMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLkZvb3Rlci0tYWx0IC5Gb290ZXItbmF2aWdhdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDdyZW07XG4gIH1cbn1cbiIsIkBpbXBvcnQgJy4uL2Jhc2UnO1xuXG4vKiBAZGVmaW5lIEZhY3RzICovXG4uRmFjdHMge1xuICBwYWRkaW5nOiAzcmVtIHZhcigtLWRvY3VtZW50LW1hcmdpbik7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1jb2xvci1ncmF5KSk7XG59XG5cbi5GYWN0cy1oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSBhbmQgKG1pbi1oZWlnaHQ6IDQwMHB4KSB7XG4gIC5GYWN0cyB7XG4gICAgcGFkZGluZzogM3JlbSAxLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSBhbmQgKG1pbi1oZWlnaHQ6IDQwMHB4KSB7XG4gIC5GYWN0cyB7XG4gICAgcGFkZGluZzogNHJlbSAzLjI1cmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5MDBweCkge1xuICAuRmFjdHMtYm9keSB7XG4gICAgY29sdW1uLWNvdW50OiAyO1xuICAgIGNvbHVtbi1nYXA6IDNyZW07XG4gIH1cbn1cblxuLkZhY3RzLWJvZHkgbGksXG4uRmFjdHMtYm9keSBwIHtcbiAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuLyogQGRlZmluZSBQYXJ0bmVycyAqL1xuXG4uUGFydG5lcnMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogNHJlbSAtMXJlbSAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLlBhcnRuZXJzLWl0ZW0ge1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLlBhcnRuZXJzLWxvZ28ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDIuN3JlbTtcbiAgbWF4LXdpZHRoOiA3LjVyZW07XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLlBhcnRuZXJzIHtcbiAgICBtYXJnaW46IDRyZW0gLTFyZW0gMDtcbiAgfVxuXG4gIC5QYXJ0bmVycy1pdGVtIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtO1xuICB9XG5cbiAgLlBhcnRuZXJzLWxvZ28ge1xuICAgIG1heC1oZWlnaHQ6IDQuNXJlbTtcbiAgICBtYXgtd2lkdGg6IDEycmVtO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLlBhcnRuZXJzIHtcbiAgICBtYXJnaW46IDUuNXJlbSAtMXJlbSAwO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuLyogQGRlZmluZSBRdW90ZSAqL1xuLlF1b3RlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLlF1b3RlLXN5bWJvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLXR1cnF1b2lzZSkpO1xuICB3aWR0aDogM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLlF1b3RlLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1tZWRpdW0td2lkdGgpO1xuICBtYXJnaW46IDAgYXV0bztcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLlF1b3RlIGZpZ2NhcHRpb24ge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uUXVvdGUgZW0ge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuOnJvb3Qge1xuICAtLUhlYWRlci1oZWlnaHQ6IDRyZW07XG59XG5cbi8qIEBkZWZpbmUgSGVhZGVyICovXG4uSGVhZGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDtcbiAgaGVpZ2h0OiB2YXIoLS1IZWFkZXItaGVpZ2h0KTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLWJsdWUpKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5IZWFkZXItY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgOnJvb3Qge1xuICAgIC0tSGVhZGVyLWhlaWdodDogNXJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAwMHB4KSB7XG4gIDpyb290IHtcbiAgICAtLUhlYWRlci1oZWlnaHQ6IDdyZW07XG4gIH1cbn1cblxuLyoqXG4gKiBMb2dvXG4gKi9cblxuLkhlYWRlci1ob21lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMC4xcmVtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uSGVhZGVyLWhvbWU6YWN0aXZlIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4uSGVhZGVyLWxvZ28ge1xuICB3aWR0aDogOC41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLkhlYWRlci1ob21lIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cblxuICAuSGVhZGVyLWxvZ28ge1xuICAgIHdpZHRoOiAxMXJlbTtcbiAgfVxufVxuXG4uSGVhZGVyLWxpbmsuaXMtYWN0aXZlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyoqXG4gKiBEZXNrdG9wIG5hdmlnYXRpb25cbiAqL1xuXG4uSGVhZGVyLWxpc3Qge1xuICBkaXNwbGF5OiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLkhlYWRlci1tZW51IHtcbiAgICBtYXJnaW4tdG9wOiAwLjZyZW07XG4gIH1cblxuICAuSGVhZGVyLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gIH1cblxuICAuSGVhZGVyLWl0ZW0ge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuSGVhZGVyLWxpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMC42cmVtIDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xuICB9XG5cbiAgLkhlYWRlci1saW5rOmhvdmVyIC5IZWFkZXItbGFiZWwge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDEuNXB4O1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xNGVtO1xuICB9XG5cbiAgLkhlYWRlci1saW5rOmFjdGl2ZSAuSGVhZGVyLWxhYmVsLFxuICAuSGVhZGVyLWxpbms6YWN0aXZlIC5IZWFkZXItdGl0bGUge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuXG4gIC5IZWFkZXItbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC5IZWFkZXItaXRlbS0tZHJvcGRvd24gLkhlYWRlci1saW5rIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjdyZW07XG4gIH1cblxuICAuSGVhZGVyLWRyb3Bkb3duIHtcbiAgICB3aWR0aDogMTZyZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMnJlbTtcbiAgICB0b3A6IGNhbGMoMTAwJSAtIDFweCk7XG4gICAgei1pbmRleDogMTAyO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBjb2xvcjogcmdiYSh2YXIoLS1jb2xvci1tdXRlZCkpO1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjAyKSxcbiAgICAgIDAgMzBweCAxMDBweCAtMjBweCByZ2JhKDUwLCA1MCwgOTMsIDAuMiksXG4gICAgICAwIDMwcHggNjBweCAtMzBweCByZ2JhKDAsIDAsIDAsIDAuMiksXG4gICAgICAwIC0xOHB4IDMwcHggLTEwcHggcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICB0cmFuc2l0aW9uOiAxMDBtcyB2YXIoLS1lYXNlLWluKTtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXJlbSk7XG4gIH1cblxuICAuSGVhZGVyLWRyb3Bkb3duIC5IZWFkZXItbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMC44cmVtIDFyZW07XG4gICAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XG4gIH1cblxuICAuSGVhZGVyLWRyb3Bkb3duIC5IZWFkZXItaXRlbTpmaXJzdC1jaGlsZCAuSGVhZGVyLWxpbms6OmJlZm9yZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW0gMC4zNzVyZW0gMCAwO1xuICB9XG5cbiAgLkhlYWRlci1kcm9wZG93biAuSGVhZGVyLWl0ZW06bGFzdC1jaGlsZCAuSGVhZGVyLWxpbms6OmJlZm9yZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDAuMzc1cmVtIDAuMzc1cmVtO1xuICB9XG5cbiAgLkhlYWRlci1kcm9wZG93biAuSGVhZGVyLWxpbmsgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAuSGVhZGVyLWRyb3Bkb3duIC5IZWFkZXItbGluazo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyB2YXIoLS1lYXNlLW91dCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgdG8gcmlnaHQsXG4gICAgICByZ2JhKHZhcigtLWNvbG9yLWdyYXkpLCAwLjQpLFxuICAgICAgcmdiYSh2YXIoLS1jb2xvci1ncmF5KSwgMC44KSAzMCUsXG4gICAgICByZ2JhKHZhcigtLWNvbG9yLWdyYXkpLCAxKSA3MCUsXG4gICAgICByZ2JhKHZhcigtLWNvbG9yLWdyYXkpLCAwLjQpXG4gICAgKTtcbiAgfVxuXG4gIC5IZWFkZXItZHJvcGRvd24gLkhlYWRlci1saW5rOmhvdmVyOjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC5IZWFkZXItdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMTVyZW07XG4gICAgY29sb3I6IHJnYih2YXIoLS1kb2N1bWVudC1jb2xvcikpO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIH1cblxuICAuSGVhZGVyOm5vdCguaXMtbmF2aWdhdGluZykgLkhlYWRlci1saW5rOmhvdmVyICsgLkhlYWRlci1kcm9wZG93bixcbiAgLkhlYWRlcjpub3QoLmlzLW5hdmlnYXRpbmcpIC5IZWFkZXItZHJvcGRvd246Zm9jdXMtd2l0aGluLFxuICAuSGVhZGVyOm5vdCguaXMtbmF2aWdhdGluZykgLkhlYWRlci1kcm9wZG93bjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogMzAwbXMgNzBtcyB2YXIoLS1lYXNlLW91dCk7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuSGVhZGVyLW1lbnUge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIH1cbn1cblxuLyoqXG4gKiBUb2dnbGUgYnV0dG9uXG4gKi9cblxuLkhlYWRlci10b2dnbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogNDhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogLTEzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAuMTg3NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5IZWFkZXItdG9nZ2xlIHtcbiAgICByaWdodDogLTE1cHg7XG4gIH1cbn1cblxuLkhlYWRlci10b2dnbGU6YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgLkhlYWRlci10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLkhlYWRlci1maWd1cmUge1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBtYXJnaW46IC0xMHB4IDAgMCAtOXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjVweDtcbiAgbGVmdDogMjNweDtcbn1cblxuLkhlYWRlci1saW5lczo6YWZ0ZXIsXG4uSGVhZGVyLWxpbmVzOjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbn1cblxuLkhlYWRlci1saW5lcyxcbi5IZWFkZXItbGluZXM6OmFmdGVyLFxuLkhlYWRlci1saW5lczo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAycHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyB2YXIoLS1lYXNlKTtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5IZWFkZXItbGluZXMge1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xufVxuXG4uSGVhZGVyLWxpbmVzOjpiZWZvcmUge1xuICB0b3A6IC04cHg7XG4gIHRyYW5zaXRpb246IHRvcCAyMDBtcyBlYXNlIDAuMTJzLCBvcGFjaXR5IDIwMG1zIGVhc2U7XG59XG5cbi5IZWFkZXItbGluZXM6OmFmdGVyIHtcbiAgYm90dG9tOiAtOHB4O1xuICB0cmFuc2l0aW9uOiBib3R0b20gMjAwbXMgZWFzZSAwLjEycyxcbiAgICB0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG59XG5cbi8qKlxuICogT3BlbiBzdGF0ZVxuICovXG5AbWVkaWEgKG1heC13aWR0aDogNzk5cHgpIHtcbiAgLkhlYWRlci5pcy1vcGVuIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgYmFja2dyb3VuZDogcmdiKHZhcigtLWNvbG9yLWdyYXkpKTtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG5cbiAgLkhlYWRlci5pcy1vcGVuIC5IZWFkZXItbG9nbyB7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLkhlYWRlci5pcy1vcGVuIC5IZWFkZXItbGluZXMge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIH1cblxuICAuSGVhZGVyLmlzLW9wZW4gLkhlYWRlci1saW5lczo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDIwMG1zIGVhc2UsIG9wYWNpdHkgMjAwbXMgZWFzZSAwLjEycztcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgLkhlYWRlci5pcy1vcGVuIC5IZWFkZXItbGluZXM6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gMjAwbXMgZWFzZSxcbiAgICAgIHRyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSAwLjEycztcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG59XG4iLCJAaW1wb3J0ICcuLi9iYXNlJztcblxuLyogQGRlZmluZSBIZXJvICovXG4uSGVybyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDVyZW0gMCAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItYmx1ZSkpO1xuICBtYXJnaW4tYm90dG9tOiA4dmg7XG4gIHBhZGRpbmctYm90dG9tOiA4dmg7XG59XG5cbi5IZXJvOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogLTE7XG4gIGxlZnQ6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAodmFyKC0tZG9jdW1lbnQtbWFyZ2luKSAqIDIpKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMyk7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1kb2N1bWVudC1tYXJnaW4pICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tZG9jdW1lbnQtbWFyZ2luKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNTAlIC0gdmFyKC0tZG9jdW1lbnQtbWFyZ2luKSkpO1xufVxuXG4uSGVyby0tcHVsbCB7XG4gIG1hcmdpbi1ib3R0b206IC0yLjZyZW07XG59XG5cbi5IZXJvLS1wdWxsOjphZnRlciB7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MDBweCkgYW5kIChtaW4taGVpZ2h0OiA0MDBweCkge1xuICAuSGVyby0tcHVsbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTRyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG5Ac3VwcG9ydHMgKHBhZGRpbmctbGVmdDogY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LWxlZnQpKSB7XG4gIC51LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoXG4gICAgICB2YXIoLS1kb2N1bWVudC1tYXJnaW4pICsgY29uc3RhbnQoc2FmZS1hcmVhLWluc2V0LWxlZnQpXG4gICAgKSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogY2FsYyhcbiAgICAgIHZhcigtLWRvY3VtZW50LW1hcmdpbikgKyBjb25zdGFudChzYWZlLWFyZWEtaW5zZXQtcmlnaHQpXG4gICAgKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5IZXJvOjpiZWZvcmUge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMTR2aDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5IZXJvOjpiZWZvcmUge1xuICAgIGhlaWdodDogMjJ2aDtcbiAgfVxufVxuXG4uSGVyby1ib2R5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgbWF4LXdpZHRoOiA3NXJlbTtcbn1cblxuLkhlcm8tLWNlbnRlciAuSGVyby1ib2R5IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItbWVkaXVtLXdpZHRoKTtcbn1cblxuLkhlcm8tYm9keSBwIHtcbiAgbWF4LXdpZHRoOiAzMmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLkhlcm8tYm9keSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAuSGVyby1ib2R5IHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIH1cbn1cblxuLkhlcm8tbGFiZWwge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG1hcmdpbi1ib3R0b206IDEuM3JlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gIC5IZXJvLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gIH1cbn1cblxuLkhlcm8tYm9keSBhOm5vdChbY2xhc3NdKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxLjVweDtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAwLjE0ZW07XG4gIHBhZGRpbmc6IDAuMDhlbSAwLjJlbTtcbiAgbWFyZ2luOiAtMC4wOGVtIC0wLjJlbTtcbiAgYm9yZGVyLXJhZGl1czogMC4xODc1cmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQwMG1zIHZhcigtLWVhc2Utb3V0KTtcbn1cblxuLkhlcm8tYm9keSBhOm5vdChbY2xhc3NdKTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tY29sb3ItYmx1ZSksIDAuMDUpO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uSGVyby1ib2R5IGE6bm90KFtjbGFzc10pOmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLkhlcm8tYm9keSBoMSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1heC13aWR0aDogMTdlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIC5IZXJvLWJvZHkgaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5MDBweCkge1xuICAuSGVyby1ib2R5IGgxIHtcbiAgICBmb250LXNpemU6IDNyZW07XG4gIH1cblxuICAuSGVyby1ib2R5IGE6bm90KFtjbGFzc10pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAzcHg7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDE0MDBweCkge1xuICAuSGVybzpub3QoLkhlcm8tLWNlbnRlcikgLkhlcm8tYm9keSBoMSB7XG4gICAgZm9udC1zaXplOiAzLjc1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cbn1cblxuLyoqXG4gKiBCbG9iXG4gKi9cblxuLkhlcm8tYmxvYiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1waW5rKSk7XG59XG5cbi5IZXJvLWJsb2ItLTEge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMzUlO1xufVxuXG4uSGVyby1ibG9iLS0yIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAlKTtcbiAgd2lkdGg6IDglO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5IZXJvLWJsb2ItLTEge1xuICAgIHdpZHRoOiAzMCU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBtb3ZlLWluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uSGVyby1tb3Zpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3ItcGluaykpO1xuICBvcGFjaXR5OiAwO1xuICBhbmltYXRpb246IG1vdmUtaW4gNjAwbXMgdmFyKC0tZWFzZS1vdXQpIGZvcndhcmRzO1xufVxuXG4uSGVyby1tb3ZpbmctLXNtYWxsIHtcbiAgd2lkdGg6IDIwdnc7XG4gIGxlZnQ6IDQlO1xuICB0b3A6IDU1JTtcbiAgYW5pbWF0aW9uLWRlbGF5OiAzMDBtcztcbn1cblxuLkhlcm8tbW92aW5nLS1tZWRpdW0ge1xuICB3aWR0aDogMzR2dztcbiAgcmlnaHQ6IDEwJTtcbiAgdG9wOiA4JTtcbiAgYW5pbWF0aW9uLWRlbGF5OiA1MDBtcztcbn1cblxuLkhlcm8tbW92aW5nLS1sYXJnZSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDYwJTtcbiAgcmlnaHQ6IC03cmVtO1xuICB0b3A6IDE2JTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAuSGVyby1tb3ZpbmctLXNtYWxsIHtcbiAgICB3aWR0aDogOHZ3O1xuICAgIGxlZnQ6IDEzJTtcbiAgICBib3R0b206IDQlO1xuICB9XG5cbiAgLkhlcm8tbW92aW5nLS1tZWRpdW0ge1xuICAgIHdpZHRoOiAxOHZ3O1xuICAgIHJpZ2h0OiAyNyU7XG4gICAgdG9wOiAxMSU7XG4gIH1cblxuICAuSGVyby1tb3ZpbmctLWxhcmdlIHtcbiAgICBoZWlnaHQ6IDY5JTtcbiAgICByaWdodDogLTVyZW07XG4gICAgdG9wOiAyMCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuSGVyby1tb3ZpbmctLXNtYWxsIHtcbiAgICB3aWR0aDogNC41dnc7XG4gICAgbGVmdDogMTIlO1xuICAgIGJvdHRvbTogNiU7XG4gIH1cblxuICAuSGVyby1tb3ZpbmctLW1lZGl1bSB7XG4gICAgd2lkdGg6IDh2dztcbiAgICByaWdodDogMzAlO1xuICAgIHRvcDogMTUlO1xuICB9XG5cbiAgLkhlcm8tbW92aW5nLS1sYXJnZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiA3NSU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAxNyU7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGVtZXNcbiAqL1xuXG4uSGVyby0tZ3JheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1jb2xvci1ncmF5KSk7XG59XG5cbi5IZXJvLS1ncmF5OjphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbi5IZXJvLS1ncmF5IC5IZXJvLWJsb2IsXG4uSGVyby0tZ3JheSAuSGVyby1tb3Zpbmcge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uSGVyby0teWVsbG93IC5IZXJvLWJsb2IsXG4uSGVyby0teWVsbG93IC5IZXJvLW1vdmluZyB7XG4gIGNvbG9yOiByZ2IodmFyKC0tY29sb3IteWVsbG93KSk7XG59XG5cbi5IZXJvLS1vcmFuZ2UgLkhlcm8tYmxvYixcbi5IZXJvLS1vcmFuZ2UgLkhlcm8tbW92aW5nIHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1vcmFuZ2UpKTtcbn1cblxuLkhlcm8tLXR1cnF1b2lzZSAuSGVyby1ibG9iLFxuLkhlcm8tLXR1cnF1b2lzZSAuSGVyby1tb3Zpbmcge1xuICBjb2xvcjogcmdiKHZhcigtLWNvbG9yLXR1cnF1b2lzZSkpO1xufVxuXG4uSGVyby0tcGluayAuSGVyby1ibG9iLFxuLkhlcm8tLXBpbmsgLkhlcm8tbW92aW5nIHtcbiAgY29sb3I6IHJnYih2YXIoLS1jb2xvci1waW5rKSk7XG59XG4iXX0= */