@charset "UTF-8";
/**
 * @license
 * MyFonts Webfont Build ID 3425517, 2017-07-20T11:58:46-0400
 *
 * The fonts listed in this notice are subject to the End User License
 * Agreement(s) entered into by the website owner. All other parties are
 * explicitly restricted from using the Licensed Webfonts(s).
 *
 * You may obtain a valid license at the URLs below.
 *
 * Webfont: FF Tibere Web Medium by FontFont
 * URL: https://www.myfonts.com/fonts/fontfont/tibere/ot-medium/
 *
 * Webfont: FF Tibere Web Light by FontFont
 * URL: https://www.myfonts.com/fonts/fontfont/tibere/ot-light/
 *
 * Webfont: FF Tibere Web Italic by FontFont
 * URL: https://www.myfonts.com/fonts/fontfont/tibere/ot-italic/
 *
 * Webfont: FF Tibere Web Light Italic by FontFont
 * URL: https://www.myfonts.com/fonts/fontfont/tibere/ot-light-italic/
 *
 * Webfont: FF Tibere Web Bold by FontFont
 * URL: https://www.myfonts.com/fonts/fontfont/tibere/ot-bold/
 *
 * Webfont: Tibere Ornaments Banded by FontFont
 * URL: https://www.myfonts.com/fonts/fontfont/tibere/ornaments-banded/
 *
 * Webfont: FF Tibere Web by FontFont
 * URL: https://www.myfonts.com/fonts/fontfont/tibere/ot/
 *
 *
 * License: https://www.myfonts.com/viewlicense?type=web&buildid=3425517
 * Licensed pageviews: 500,000
 * Webfonts copyright: 2010 Albert Boton published by FSI FontShop International GmbH
 *
 * © 2017 MyFonts Inc
*/
/* @import must be at top of file, otherwise CSS will not work */
@import url("//hello.myfonts.net/count/3444ed");
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700");
@font-face {
  font-family: "FF Tibere";
  font-style: normal;
  font-weight: 300;
  src: url("../fonts/3444ED_1_0.eot?#iefix") format("embedded-opentype"), url("../fonts/3444ED_1_0.woff2") format("woff2"), url("../fonts/3444ED_1_0.woff") format("woff"), url("../fonts/3444ED_1_0.ttf") format("truetype"); }

@font-face {
  font-family: "FF Tibere";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/3444ED_6_0.eot?#iefix") format("embedded-opentype"), url("../fonts/3444ED_6_0.woff2") format("woff2"), url("../fonts/3444ED_6_0.woff") format("woff"), url("../fonts/3444ED_6_0.ttf") format("truetype"); }

@font-face {
  font-family: "FF Tibere";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/3444ED_4_0.eot?#iefix") format("embedded-opentype"), url("../fonts/3444ED_4_0.woff2") format("woff2"), url("../fonts/3444ED_4_0.woff") format("woff"), url("../fonts/3444ED_4_0.ttf") format("truetype"); }

.radios .option__input, .checkboxes .option__input {
  position: absolute;
  left: -625rem;
  top: auto;
  width: 0.0625rem;
  height: 0.0625rem;
  margin: 0 !important;
  overflow: hidden; }

label, .radios legend, .checkboxes legend {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  cursor: pointer; }

/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  /* 1 */
  display: block; }

/**
 * Add the correct display in IE 9-.
 */
audio,
canvas,
progress,
video {
  display: inline-block; }

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline; }

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */
template,
[hidden] {
  display: none; }

/* Links
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */ }

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the bottom border in Firefox 39-.
 * 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 */ }

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit; }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic; }

/**
 * 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; }

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000; }

/**
 * 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; }

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 2.5rem; }

/**
 * 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 */ }

/* Forms
   ========================================================================== */
/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
select,
textarea {
  font: inherit;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Restore the font weight unset by the previous rule.
 */
optgroup {
  font-weight: bold; }

/**
 * 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; }

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */ }

/**
 * 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: 0.0625rem dotted ButtonText; }

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 0.0625rem solid #c0c0c0;
  margin: 0 0.125rem;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 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 */ }

/**
 * Remove the default vertical scrollbar in IE.
 */
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: -0.125rem;
  /* 2 */ }

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54; }

/**
 * 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 */ }

* {
  box-sizing: border-box; }

body {
  font: 400 0.875rem/1.5 "Open Sans", Helvetica, Arial, sans-serif;
  color: #181919;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
  @media (min-width: 40rem) {
    body {
      font: 400 1rem/1.5 "Open Sans", Helvetica, Arial, sans-serif; } }
  @media (min-width: 64rem) {
    body {
      font: 400 1.1875rem/1.5 "Open Sans", Helvetica, Arial, sans-serif; } }
  body:before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    background-color: rgba(24, 25, 25, 0.25);
    opacity: 0;
    transition: opacity 300ms cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0; }
  body.clipped {
    overflow-y: hidden; }
    body.clipped:before {
      width: 100%;
      height: 100%;
      opacity: 1;
      z-index: 10; }
  @media (max-width: 63.9375rem) {
    body.clipped--mobile {
      overflow-y: hidden; } }
  @media (max-width: 63.9375rem) {
    body.clipped--mobile:before {
      width: 100%;
      height: 100%;
      opacity: 1;
      z-index: 10; } }

::-moz-selection {
  background-color: #ffbf47;
  color: #181919; }

::selection {
  background-color: #ffbf47;
  color: #181919; }

fieldset {
  padding: 0;
  margin: 0;
  border: 0; }

h1 {
  display: block;
  margin: 4rem 0 2rem;
  font: 700 2rem/1.25 "FF Tibere", Palatino, Georgia, sans-serif; }
  @media (min-width: 40rem) {
    h1 {
      margin: 6rem 0 3rem;
      font-size: 3rem; } }
  @media (min-width: 64rem) {
    h1 {
      margin: 7.75rem 0 3.875rem;
      font-size: 3.875rem; } }

h2 {
  display: block;
  margin: 3rem 0 1.5rem;
  font: 700 1.5rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    h2 {
      margin: 3.5rem 0 1.75rem;
      font-size: 1.75rem; } }
  @media (min-width: 64rem) {
    h2 {
      margin: 4rem 0 2rem;
      font-size: 2rem; } }

h3 {
  display: block;
  margin: 2.625rem 0 1.3125rem;
  font: 600 1.3125rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    h3 {
      margin: 3rem 0 1.5rem;
      font-size: 1.5rem; } }
  @media (min-width: 64rem) {
    h3 {
      margin: 3.5rem 0 1.75rem;
      font-size: 1.75rem; } }

h4 {
  display: block;
  margin: 1.75rem 0 1.1875rem;
  font: 400 1.1875rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    h4 {
      margin: 2.625rem 0 1.3125rem;
      font-size: 1.3125rem; } }
  @media (min-width: 64rem) {
    h4 {
      margin: 3rem 0 1.5rem;
      font-size: 1.5rem; } }

h5 {
  display: block;
  margin: 2rem 0 1rem;
  font: 700 1rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    h5 {
      margin: 1.75rem 0 1.1875rem;
      font-size: 1.1875rem; } }
  @media (min-width: 64rem) {
    h5 {
      margin: 2.625rem 0 1.3125rem;
      font-size: 1.3125rem; } }

h6 {
  display: block;
  margin: 1.75rem 0 0.875rem;
  font: 600 0.875rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    h6 {
      margin: 2rem 0 1rem;
      font-size: 1rem; } }
  @media (min-width: 64rem) {
    h6 {
      margin: 1.75rem 0 1.1875rem;
      font-size: 1.1875rem; } }

.h1 {
  display: block;
  margin: 4rem 0 2rem;
  font: 700 2rem/1.25 "FF Tibere", Palatino, Georgia, sans-serif; }
  @media (min-width: 40rem) {
    .h1 {
      margin: 6rem 0 3rem;
      font-size: 3rem; } }
  @media (min-width: 64rem) {
    .h1 {
      margin: 7.75rem 0 3.875rem;
      font-size: 3.875rem; } }

.h2 {
  display: block;
  margin: 3rem 0 1.5rem;
  font: 700 1.5rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    .h2 {
      margin: 3.5rem 0 1.75rem;
      font-size: 1.75rem; } }
  @media (min-width: 64rem) {
    .h2 {
      margin: 4rem 0 2rem;
      font-size: 2rem; } }

.h3 {
  display: block;
  margin: 2.625rem 0 1.3125rem;
  font: 600 1.3125rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    .h3 {
      margin: 3rem 0 1.5rem;
      font-size: 1.5rem; } }
  @media (min-width: 64rem) {
    .h3 {
      margin: 3.5rem 0 1.75rem;
      font-size: 1.75rem; } }

.h4 {
  display: block;
  margin: 1.75rem 0 1.1875rem;
  font: 400 1.1875rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    .h4 {
      margin: 2.625rem 0 1.3125rem;
      font-size: 1.3125rem; } }
  @media (min-width: 64rem) {
    .h4 {
      margin: 3rem 0 1.5rem;
      font-size: 1.5rem; } }

.h5 {
  display: block;
  margin: 2rem 0 1rem;
  font: 700 1rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    .h5 {
      margin: 1.75rem 0 1.1875rem;
      font-size: 1.1875rem; } }
  @media (min-width: 64rem) {
    .h5 {
      margin: 2.625rem 0 1.3125rem;
      font-size: 1.3125rem; } }

.h6 {
  display: block;
  margin: 1.75rem 0 0.875rem;
  font: 600 0.875rem/1.25 "Open Sans", Helvetica, Arial, sans-serif; }
  @media (min-width: 40rem) {
    .h6 {
      margin: 2rem 0 1rem;
      font-size: 1rem; } }
  @media (min-width: 64rem) {
    .h6 {
      margin: 1.75rem 0 1.1875rem;
      font-size: 1.1875rem; } }

a:link {
  color: #002f87;
  transition: color 150ms cubic-bezier(0.77, 0, 0.175, 1), background 150ms cubic-bezier(0.77, 0, 0.175, 1), box-shadow 150ms cubic-bezier(0.77, 0, 0.175, 1); }

a:visited {
  color: #4c2c92; }

a:hover {
  background-color: #f2f4f9;
  color: #0041ba; }

a:focus {
  outline: 0;
  background-color: #ffbf47;
  box-shadow: 0 0 0 0.25rem #ffbf47;
  color: #0041ba;
  z-index: 1; }

a:active {
  outline: 0;
  background-color: #ffbf47;
  box-shadow: 0 0 0 0.25rem #ffbf47;
  color: #0041ba; }

a.teaser {
  font-weight: 600; }

a[target='_blank'] {
  margin-right: -1.5rem; }
  a[target='_blank']:after {
    content: '';
    vertical-align: bottom;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
    background: #f2f4f9 url("../img/icons/i_external.svg") no-repeat 50% 50%/1rem auto;
    transform: translateX(-25%);
    opacity: 0;
    transition: opacity 150ms cubic-bezier(0.77, 0, 0.175, 1), transform 150ms cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 0; }
  a[target='_blank']:hover:after {
    transform: translateX(0%);
    opacity: 1;
    z-index: 1; }

a[href^='tel:'] {
  white-space: nowrap; }

ul {
  margin: 0 0 0.875rem; }
  @media (min-width: 40rem) {
    ul {
      margin-bottom: 1rem; } }
  @media (min-width: 64rem) {
    ul {
      margin-bottom: 1.1875rem; } }

li {
  margin-top: 0.5rem; }
  li:first-child {
    margin-top: 0; }

ol {
  margin: 0 0 0.875rem; }
  @media (min-width: 40rem) {
    ol {
      margin-bottom: 1rem; } }
  @media (min-width: 64rem) {
    ol {
      margin-bottom: 1.1875rem; } }

dl {
  margin: 0 0 1.75rem; }
  @media (min-width: 40rem) {
    dl {
      margin-bottom: 2rem; } }
  @media (min-width: 64rem) {
    dl {
      margin-bottom: 2.375rem; } }

dt {
  margin-top: 1.75rem;
  font-weight: 600; }
  @media (min-width: 40rem) {
    dt {
      margin-top: 2rem; } }
  @media (min-width: 64rem) {
    dt {
      margin-top: 2.375rem; } }
  dt:first-child {
    margin-top: 0; }

dd {
  margin: 1rem 0 0; }

img, picture {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 0.25rem; }

figure {
  margin: 0 0 1.75rem;
  border-radius: 0.25rem;
  overflow: hidden; }
  @media (min-width: 40rem) {
    figure {
      margin-bottom: 2rem; } }
  @media (min-width: 64rem) {
    figure {
      margin-bottom: 2.375rem; } }

figcaption {
  margin: 1rem 0 0;
  color: #6f777b;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-style: italic;
  font-size: 0.875rem; }

iframe, video {
  margin: 0 0 0.875rem;
  border-radius: 0.25rem;
  overflow: hidden; }
  @media (min-width: 40rem) {
    iframe, video {
      margin-bottom: 1rem; } }
  @media (min-width: 64rem) {
    iframe, video {
      margin-bottom: 1.1875rem; } }

p {
  margin: 0 0 1.75rem; }
  @media (min-width: 40rem) {
    p {
      margin-bottom: 2rem; } }
  @media (min-width: 64rem) {
    p {
      margin-bottom: 2.375rem; } }

strong {
  font-weight: 600; }

.casing--caps {
  text-transform: uppercase; }

.casing--lowercase {
  text-transform: lowercase; }

mark {
  background-color: #ffbf47;
  box-shadow: 0 0 0 0.25rem #ffbf47; }

abbr[title] {
  border-bottom: 0.0625rem dotted;
  font-variant: none;
  text-decoration: none;
  cursor: help; }

blockquote {
  padding: 0 1.75rem;
  margin: 3.5rem 0;
  border-left: 0.25rem solid #ae936c;
  font-family: "FF Tibere", Palatino, Georgia, sans-serif;
  font-size: 1.75rem;
  line-height: 1.25; }
  @media (min-width: 40rem) {
    blockquote {
      padding: 0 2rem;
      margin: 4rem 0;
      font-size: 2rem; } }
  @media (min-width: 64rem) {
    blockquote {
      padding: 0 2.375rem;
      margin: 4.75rem 0; } }
  blockquote p:before {
    content: open-quote; }
  blockquote p:after {
    content: close-quote; }
  blockquote footer {
    font-family: "Open Sans", Helvetica, Arial, sans-serif;
    font-style: normal;
    font-size: 1rem; }
    blockquote footer:before {
      content: '\2014';
      display: inline-block;
      margin-right: 0.5rem; }

hr {
  height: 0.0625rem;
  margin: 2rem 0;
  background-color: #cccfd1;
  border: 0; }

table {
  width: 100%;
  border-collapse: collapse; }

caption {
  color: #6f777b;
  text-align: left; }

tr:hover th,
tr:hover td {
  background-color: rgba(111, 119, 123, 0.05); }

thead th, thead td {
  padding: 0.5rem 0;
  border-bottom: 0.125rem solid;
  font-weight: 700;
  color: #002f87;
  text-align: left; }

tbody th, tbody td {
  padding: 0.5rem 0;
  border-top: 0.0625rem solid #181919;
  text-align: left; }

tbody th {
  font-weight: 600; }

tbody tr:first-child th,
tbody tr:first-child td {
  border-top: 0; }

select {
  width: 100%;
  height: 2.5625rem;
  padding: 0.5rem 2.5rem 0.5rem 0.5rem;
  background-image: url("../img/icons/i_caret-down.svg");
  background-repeat: no-repeat;
  background-size: 1.5rem auto;
  background-position: calc(100% - 0.5rem) 50%;
  border: 0.125rem solid #6f777b;
  border-radius: 0.25rem;
  font-size: 1rem;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: border 150ms cubic-bezier(0.77, 0, 0.175, 1), box-shadow 150ms cubic-bezier(0.77, 0, 0.175, 1); }
  @media (min-width: 40rem) {
    select {
      height: 2.75rem; } }
  @media (min-width: 64rem) {
    select {
      height: 3rem; } }
  select:hover {
    border-color: #002f87; }
  select:focus {
    border-color: #002f87;
    box-shadow: 0 0 0 0.25rem rgba(0, 47, 135, 0.16);
    outline: 0; }

.radios .option {
  position: relative; }
  .radios .option__icon {
    position: absolute;
    top: 0.0625rem;
    display: block;
    width: 1.25rem;
    height: 1.25rem;
    border: 0.125rem solid #6f777b;
    border-radius: 50%;
    transition: border 150ms cubic-bezier(0.77, 0, 0.175, 1), box-shadow 150ms cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 1; }
    @media (min-width: 40rem) {
      .radios .option__icon {
        top: 0.125rem; } }
    @media (min-width: 64rem) {
      .radios .option__icon {
        top: 0.25rem; } }
    .radios .option__icon:before {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 0.625rem;
      height: 0.625rem;
      margin: -0.3125rem 0 0 -0.3125rem;
      background-color: #002f87;
      border-radius: 50%;
      opacity: 0;
      transform: scale(0);
      transition: transform 150ms cubic-bezier(0.77, 0, 0.175, 1), opacity 150ms cubic-bezier(0.77, 0, 0.175, 1); }
  .radios .option__label {
    position: relative;
    display: inline-block;
    padding-left: 1.75rem;
    font-weight: 400;
    cursor: pointer;
    z-index: 2; }
  .radios .option__input:focus + .option__label + .option__icon {
    box-shadow: 0 0 0 0.25rem rgba(0, 47, 135, 0.16); }
    .radios .option__input:focus + .option__label + .option__icon svg path {
      stroke-dashoffset: 0; }
  .radios .option:hover .option__icon {
    border-color: #002f87;
    box-shadow: 0 0 0 0.25rem #f2f4f9; }
    .radios .option:hover .option__icon:before {
      background-color: #002f87;
      opacity: .25;
      transform: scale(0.5); }
  .radios .option__input:checked + .option__label + .option__icon {
    border-color: #002f87; }
    .radios .option__input:checked + .option__label + .option__icon:before {
      opacity: 1;
      transform: scale(1); }

.checkboxes .option {
  position: relative; }
  .checkboxes .option__icon {
    position: absolute;
    top: 0.0625rem;
    display: block;
    width: 1.25rem;
    height: 1.25rem;
    border: 0.125rem solid #6f777b;
    border-radius: 0.25rem;
    transition: box-shadow 150ms cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 1; }
    @media (min-width: 40rem) {
      .checkboxes .option__icon {
        top: 0.125rem; } }
    @media (min-width: 64rem) {
      .checkboxes .option__icon {
        top: 0.25rem; } }
    .checkboxes .option__icon svg {
      position: absolute;
      top: -0.125rem;
      left: -0.125rem;
      width: 1.25rem;
      height: 1.25rem; }
    .checkboxes .option__icon svg path {
      fill: none;
      stroke: #002f87;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-dasharray: 4.4375rem;
      stroke-dashoffset: 4.4375rem;
      transition: all 0.6s ease; }
    .checkboxes .option__icon svg polyline {
      fill: none;
      stroke: #fff;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-dasharray: 1.125rem;
      stroke-dashoffset: 1.125rem;
      transition: all 0.3s ease; }
  .checkboxes .option__label {
    position: relative;
    display: inline-block;
    padding-left: 1.75rem;
    font-weight: 400;
    cursor: pointer;
    z-index: 2; }
  .checkboxes .option__input:focus + .option__label + .option__icon {
    box-shadow: 0 0 0 0.25rem rgba(0, 47, 135, 0.16); }
    .checkboxes .option__input:focus + .option__label + .option__icon svg path {
      stroke-dashoffset: 0; }
  .checkboxes .option:hover .option__icon {
    box-shadow: 0 0 0 0.25rem #f2f4f9; }
    .checkboxes .option:hover .option__icon svg path {
      stroke-dashoffset: 0; }
  .checkboxes .option__input:checked + .option__label + .option__icon {
    border-color: #002f87; }
    .checkboxes .option__input:checked + .option__label + .option__icon svg path {
      fill: #002f87; }
    .checkboxes .option__input:checked + .option__label + .option__icon svg polyline {
      stroke-dashoffset: 0; }

input {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  padding: 0.5rem;
  border: 0.125rem solid #6f777b;
  transition: border 150ms cubic-bezier(0.77, 0, 0.175, 1), box-shadow 150ms cubic-bezier(0.77, 0, 0.175, 1); }
  input:focus {
    border-color: #002f87;
    box-shadow: 0 0 0 0.25rem rgba(0, 47, 135, 0.16);
    outline: 0; }
  input:hover {
    border-color: #002f87; }

input[type='search'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border-radius: 0; }

input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
  -webkit-appearance: none;
  appearance: none;
  margin: 0; }

textarea {
  display: block;
  width: 100%;
  min-height: 8rem;
  padding: 0.5rem;
  border: 0.125rem solid #6f777b;
  resize: vertical;
  transition: border 150ms cubic-bezier(0.77, 0, 0.175, 1), box-shadow 150ms cubic-bezier(0.77, 0, 0.175, 1); }
  textarea:focus {
    border-color: #002f87;
    box-shadow: 0 0 0 0.25rem rgba(0, 47, 135, 0.16);
    outline: 0; }
  textarea:hover {
    border-color: #002f87; }

address {
  font-style: normal;
  margin: 0 0 0.875rem; }
  @media (min-width: 40rem) {
    address {
      margin-bottom: 1rem; } }
  @media (min-width: 64rem) {
    address {
      margin-bottom: 1.1875rem; } }

@page {
  margin: 2cm; }

*,
*:before,
*:after {
  color: #000 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important; }

a,
a:visited {
  text-decoration: underline; }

a[href]:after {
  content: " (" attr(href) ")"; }

abbr[title]:after {
  content: " (" attr(title) ")"; }

a[href^='#']:after,
a[href^='javascript:']:after {
  content: ''; }

pre {
  white-space: pre-wrap !important; }

pre,
blockquote {
  border: 0.0625rem solid #999;
  page-break-inside: avoid; }

thead {
  display: table-header-group; }

tr,
img {
  page-break-inside: avoid; }

p,
h2,
h3 {
  orphans: 3;
  widows: 3; }

h2,
h3 {
  page-break-after: avoid; }

#header-container,
#footer-container,
.shortcut--main,
.shortcut--header,
.pagination,
svg,
img {
  display: none; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByaW50LmNzcyIsIjEtc2V0dGluZ3MvX3R5cG9ncmFwaHkuc2NzcyIsIjEtc2V0dGluZ3MvYm91cmJvbi9jc3MzL19mb250LWZhY2Uuc2NzcyIsIjEtc2V0dGluZ3MvYm91cmJvbi9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiMi10b29scy9fcGxhY2Vob2xkZXJzLnNjc3MiLCIzLWdlbmVyaWMvX25vcm1hbGl6ZS5zY3NzIiwiMy1nZW5lcmljL19ib3gtc2l6aW5nLnNjc3MiLCI0LWJhc2UvX2JvZHkuc2NzcyIsIjEtc2V0dGluZ3MvX2NvbG9ycy5zY3NzIiwiMi10b29scy9fbWVkaWEtcXVlcmllcy5zY3NzIiwiMS1zZXR0aW5ncy9fYW5pbWF0aW9ucy5zY3NzIiwiNC1iYXNlL19mb3Jtcy5zY3NzIiwiNC1iYXNlL19oZWFkaW5ncy5zY3NzIiwiMi10b29scy9fbWl4aW5zLnNjc3MiLCI0LWJhc2UvX2xpbmtzLnNjc3MiLCI0LWJhc2UvX2xpc3RzLnNjc3MiLCI0LWJhc2UvX21lZGlhLnNjc3MiLCIxLXNldHRpbmdzL19yYWRpdXMuc2NzcyIsIjQtYmFzZS9fcGFyYWdyYXBocy5zY3NzIiwiNC1iYXNlL19xdW90ZXMuc2NzcyIsIjQtYmFzZS9fcnVsZXMuc2NzcyIsIjQtYmFzZS9fdGFibGVzLnNjc3MiLCI0LWJhc2UvX3NlbGVjdGlvbnMuc2NzcyIsIjQtYmFzZS9faW5wdXRzLnNjc3MiLCI0LWJhc2UvX2FkZHJlc3Nlcy5zY3NzIiwicHJpbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUN5QmpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUNFO0FBR0YsaUVBQWlFO0FBQ2pFLGdEQUFZO0FBT1osaUZBQVk7QUM1RFY7RUFDRSx5QkRzRDBCO0VDckQxQixtQkFYWTtFQVlaLGlCRG9Ec0Q7RUNsRHRELDROQ2dCNkMsRUFBQTs7QURyQi9DO0VBQ0UseUJEdUQwQjtF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LEVBQUsiLCJmaWxlIjoicHJpbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBAbGljZW5zZVxuICogTXlGb250cyBXZWJmb250IEJ1aWxkIElEIDM0MjU1MTcsIDIwMTctMDctMjBUMTE6NTg6NDYtMDQwMFxuICpcbiAqIFRoZSBmb250cyBsaXN0ZWQgaW4gdGhpcyBub3RpY2UgYXJlIHN1YmplY3QgdG8gdGhlIEVuZCBVc2VyIExpY2Vuc2VcbiAqIEFncmVlbWVudChzKSBlbnRlcmVkIGludG8gYnkgdGhlIHdlYnNpdGUgb3duZXIuIEFsbCBvdGhlciBwYXJ0aWVzIGFyZVxuICogZXhwbGljaXRseSByZXN0cmljdGVkIGZyb20gdXNpbmcgdGhlIExpY2Vuc2VkIFdlYmZvbnRzKHMpLlxuICpcbiAqIFlvdSBtYXkgb2J0YWluIGEgdmFsaWQgbGljZW5zZSBhdCB0aGUgVVJMcyBiZWxvdy5cbiAqXG4gKiBXZWJmb250OiBGRiBUaWJlcmUgV2ViIE1lZGl1bSBieSBGb250Rm9udFxuICogVVJMOiBodHRwczovL3d3dy5teWZvbnRzLmNvbS9mb250cy9mb250Zm9udC90aWJlcmUvb3QtbWVkaXVtL1xuICpcbiAqIFdlYmZvbnQ6IEZGIFRpYmVyZSBXZWIgTGlnaHQgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL290LWxpZ2h0L1xuICpcbiAqIFdlYmZvbnQ6IEZGIFRpYmVyZSBXZWIgSXRhbGljIGJ5IEZvbnRGb250XG4gKiBVUkw6IGh0dHBzOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2ZvbnRmb250L3RpYmVyZS9vdC1pdGFsaWMvXG4gKlxuICogV2ViZm9udDogRkYgVGliZXJlIFdlYiBMaWdodCBJdGFsaWMgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL290LWxpZ2h0LWl0YWxpYy9cbiAqXG4gKiBXZWJmb250OiBGRiBUaWJlcmUgV2ViIEJvbGQgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL290LWJvbGQvXG4gKlxuICogV2ViZm9udDogVGliZXJlIE9ybmFtZW50cyBCYW5kZWQgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL29ybmFtZW50cy1iYW5kZWQvXG4gKlxuICogV2ViZm9udDogRkYgVGliZXJlIFdlYiBieSBGb250Rm9udFxuICogVVJMOiBodHRwczovL3d3dy5teWZvbnRzLmNvbS9mb250cy9mb250Zm9udC90aWJlcmUvb3QvXG4gKlxuICpcbiAqIExpY2Vuc2U6IGh0dHBzOi8vd3d3Lm15Zm9udHMuY29tL3ZpZXdsaWNlbnNlP3R5cGU9d2ViJmJ1aWxkaWQ9MzQyNTUxN1xuICogTGljZW5zZWQgcGFnZXZpZXdzOiA1MDAsMDAwXG4gKiBXZWJmb250cyBjb3B5cmlnaHQ6IDIwMTAgQWxiZXJ0IEJvdG9uIHB1Ymxpc2hlZCBieSBGU0kgRm9udFNob3AgSW50ZXJuYXRpb25hbCBHbWJIXG4gKlxuICogwqkgMjAxNyBNeUZvbnRzIEluY1xuKi9cbi8qIEBpbXBvcnQgbXVzdCBiZSBhdCB0b3Agb2YgZmlsZSwgb3RoZXJ3aXNlIENTUyB3aWxsIG5vdCB3b3JrICovXG5AaW1wb3J0IHVybChcIi8vaGVsbG8ubXlmb250cy5uZXQvY291bnQvMzQ0NGVkXCIpO1xuQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9T3BlbitTYW5zOjMwMCw0MDAsNjAwLDcwMFwiKTtcbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJGRiBUaWJlcmVcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzLzM0NDRFRF8xXzAuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvMzQ0NEVEXzFfMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvMzQ0NEVEXzFfMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzLzM0NDRFRF8xXzAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJGRiBUaWJlcmVcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzLzM0NDRFRF82XzAuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvMzQ0NEVEXzZfMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvMzQ0NEVEXzZfMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzLzM0NDRFRF82XzAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJGRiBUaWJlcmVcIjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzLzM0NDRFRF80XzAuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvMzQ0NEVEXzRfMC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvMzQ0NEVEXzRfMC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2ZvbnRzLzM0NDRFRF80XzAudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbi5yYWRpb3MgLm9wdGlvbl9faW5wdXQsIC5jaGVja2JveGVzIC5vcHRpb25fX2lucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTAwMDBweDtcbiAgdG9wOiBhdXRvO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxubGFiZWwsIC5yYWRpb3MgbGVnZW5kLCAuY2hlY2tib3hlcyBsZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjQuMS4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIElFIGFuZCBpT1MuXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xudGVtcGxhdGUsXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250OiBpbmhlcml0O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9udCB3ZWlnaHQgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHRleHQgc3R5bGUgb2YgcGxhY2Vob2xkZXJzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNTQ7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbioge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbmJvZHkge1xuICBmb250OiA0MDAgMTRweC8xLjUgXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMxODE5MTk7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgYm9keSB7XG4gICAgICBmb250OiA0MDAgMTZweC8xLjUgXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBib2R5IHtcbiAgICAgIGZvbnQ6IDQwMCAxOXB4LzEuNSBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9IH1cbiAgYm9keTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNCwgMjUsIDI1LCAwLjI1KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgICB6LWluZGV4OiAwOyB9XG4gIGJvZHkuY2xpcHBlZCB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuOyB9XG4gICAgYm9keS5jbGlwcGVkOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAxMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgYm9keS5jbGlwcGVkLS1tb2JpbGUge1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIGJvZHkuY2xpcHBlZC0tbW9iaWxlOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAxMDsgfSB9XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmY0NztcbiAgY29sb3I6ICMxODE5MTk7IH1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDsgfVxuXG5oMSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDY0cHggMCAzMnB4O1xuICBmb250OiA3MDAgMzJweC8xLjI1IFwiRkYgVGliZXJlXCIsIFBhbGF0aW5vLCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGgxIHtcbiAgICAgIG1hcmdpbjogOTZweCAwIDQ4cHg7XG4gICAgICBmb250LXNpemU6IDQ4cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDEge1xuICAgICAgbWFyZ2luOiAxMjRweCAwIDYycHg7XG4gICAgICBmb250LXNpemU6IDYycHg7IH0gfVxuXG5oMiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDQ4cHggMCAyNHB4O1xuICBmb250OiA3MDAgMjRweC8xLjI1IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgaDIge1xuICAgICAgbWFyZ2luOiA1NnB4IDAgMjhweDtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoMiB7XG4gICAgICBtYXJnaW46IDY0cHggMCAzMnB4O1xuICAgICAgZm9udC1zaXplOiAzMnB4OyB9IH1cblxuaDMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiA0MnB4IDAgMjFweDtcbiAgZm9udDogNjAwIDIxcHgvMS4yNSBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGgzIHtcbiAgICAgIG1hcmdpbjogNDhweCAwIDI0cHg7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDMge1xuICAgICAgbWFyZ2luOiA1NnB4IDAgMjhweDtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDsgfSB9XG5cbmg0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMjhweCAwIDE5cHg7XG4gIGZvbnQ6IDQwMCAxOXB4LzEuMjUgXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBoNCB7XG4gICAgICBtYXJnaW46IDQycHggMCAyMXB4O1xuICAgICAgZm9udC1zaXplOiAyMXB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGg0IHtcbiAgICAgIG1hcmdpbjogNDhweCAwIDI0cHg7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH0gfVxuXG5oNSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDMycHggMCAxNnB4O1xuICBmb250OiA3MDAgMTZweC8xLjI1IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgaDUge1xuICAgICAgbWFyZ2luOiAyOHB4IDAgMTlweDtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBoNSB7XG4gICAgICBtYXJnaW46IDQycHggMCAyMXB4O1xuICAgICAgZm9udC1zaXplOiAyMXB4OyB9IH1cblxuaDYge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAyOHB4IDAgMTRweDtcbiAgZm9udDogNjAwIDE0cHgvMS4yNSBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGg2IHtcbiAgICAgIG1hcmdpbjogMzJweCAwIDE2cHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaDYge1xuICAgICAgbWFyZ2luOiAyOHB4IDAgMTlweDtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDsgfSB9XG5cbi5oMSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDY0cHggMCAzMnB4O1xuICBmb250OiA3MDAgMzJweC8xLjI1IFwiRkYgVGliZXJlXCIsIFBhbGF0aW5vLCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5oMSB7XG4gICAgICBtYXJnaW46IDk2cHggMCA0OHB4O1xuICAgICAgZm9udC1zaXplOiA0OHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5oMSB7XG4gICAgICBtYXJnaW46IDEyNHB4IDAgNjJweDtcbiAgICAgIGZvbnQtc2l6ZTogNjJweDsgfSB9XG5cbi5oMiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDQ4cHggMCAyNHB4O1xuICBmb250OiA3MDAgMjRweC8xLjI1IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLmgyIHtcbiAgICAgIG1hcmdpbjogNTZweCAwIDI4cHg7XG4gICAgICBmb250LXNpemU6IDI4cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmgyIHtcbiAgICAgIG1hcmdpbjogNjRweCAwIDMycHg7XG4gICAgICBmb250LXNpemU6IDMycHg7IH0gfVxuXG4uaDMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiA0MnB4IDAgMjFweDtcbiAgZm9udDogNjAwIDIxcHgvMS4yNSBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5oMyB7XG4gICAgICBtYXJnaW46IDQ4cHggMCAyNHB4O1xuICAgICAgZm9udC1zaXplOiAyNHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5oMyB7XG4gICAgICBtYXJnaW46IDU2cHggMCAyOHB4O1xuICAgICAgZm9udC1zaXplOiAyOHB4OyB9IH1cblxuLmg0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMjhweCAwIDE5cHg7XG4gIGZvbnQ6IDQwMCAxOXB4LzEuMjUgXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICAuaDQge1xuICAgICAgbWFyZ2luOiA0MnB4IDAgMjFweDtcbiAgICAgIGZvbnQtc2l6ZTogMjFweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAuaDQge1xuICAgICAgbWFyZ2luOiA0OHB4IDAgMjRweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDsgfSB9XG5cbi5oNSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDMycHggMCAxNnB4O1xuICBmb250OiA3MDAgMTZweC8xLjI1IFwiT3BlbiBTYW5zXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgLmg1IHtcbiAgICAgIG1hcmdpbjogMjhweCAwIDE5cHg7XG4gICAgICBmb250LXNpemU6IDE5cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmg1IHtcbiAgICAgIG1hcmdpbjogNDJweCAwIDIxcHg7XG4gICAgICBmb250LXNpemU6IDIxcHg7IH0gfVxuXG4uaDYge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAyOHB4IDAgMTRweDtcbiAgZm9udDogNjAwIDE0cHgvMS4yNSBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIC5oNiB7XG4gICAgICBtYXJnaW46IDMycHggMCAxNnB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIC5oNiB7XG4gICAgICBtYXJnaW46IDI4cHggMCAxOXB4O1xuICAgICAgZm9udC1zaXplOiAxOXB4OyB9IH1cblxuYTpsaW5rIHtcbiAgY29sb3I6ICMwMDJmODc7XG4gIHRyYW5zaXRpb246IGNvbG9yIDE1MG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSksIGJhY2tncm91bmQgMTUwbXMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKSwgYm94LXNoYWRvdyAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpOyB9XG5cbmE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjNGMyYzkyOyB9XG5cbmE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmNGY5O1xuICBjb2xvcjogIzAwNDFiYTsgfVxuXG5hOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmY0NztcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICNmZmJmNDc7XG4gIGNvbG9yOiAjMDA0MWJhO1xuICB6LWluZGV4OiAxOyB9XG5cbmE6YWN0aXZlIHtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmY0NztcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICNmZmJmNDc7XG4gIGNvbG9yOiAjMDA0MWJhOyB9XG5cbmEudGVhc2VyIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG5hW3RhcmdldD0nX2JsYW5rJ10ge1xuICBtYXJnaW4tcmlnaHQ6IC0yNHB4OyB9XG4gIGFbdGFyZ2V0PSdfYmxhbmsnXTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmMmY0ZjkgdXJsKFwiLi4vaW1nL2ljb25zL2lfZXh0ZXJuYWwuc3ZnXCIpIG5vLXJlcGVhdCA1MCUgNTAlLzE2cHggYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDE1MG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSksIHRyYW5zZm9ybSAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xuICAgIHotaW5kZXg6IDA7IH1cbiAgYVt0YXJnZXQ9J19ibGFuayddOmhvdmVyOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogMTsgfVxuXG5hW2hyZWZePSd0ZWw6J10ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbnVsIHtcbiAgbWFyZ2luOiAwIDAgMTRweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICB1bCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIHVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE5cHg7IH0gfVxuXG5saSB7XG4gIG1hcmdpbi10b3A6IDhweDsgfVxuICBsaTpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG5vbCB7XG4gIG1hcmdpbjogMCAwIDE0cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgb2wge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBvbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOXB4OyB9IH1cblxuZGwge1xuICBtYXJnaW46IDAgMCAyOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGRsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgZGwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzhweDsgfSB9XG5cbmR0IHtcbiAgbWFyZ2luLXRvcDogMjhweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBkdCB7XG4gICAgICBtYXJnaW4tdG9wOiAzMnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGR0IHtcbiAgICAgIG1hcmdpbi10b3A6IDM4cHg7IH0gfVxuICBkdDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG5kZCB7XG4gIG1hcmdpbjogMTZweCAwIDA7IH1cblxuaW1nLCBwaWN0dXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiA0cHg7IH1cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAwIDAgMjhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgIGZpZ3VyZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGZpZ3VyZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzOHB4OyB9IH1cblxuZmlnY2FwdGlvbiB7XG4gIG1hcmdpbjogMTZweCAwIDA7XG4gIGNvbG9yOiAjNmY3NzdiO1xuICBmb250LWZhbWlseTogXCJPcGVuIFNhbnNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDE0cHg7IH1cblxuaWZyYW1lLCB2aWRlbyB7XG4gIG1hcmdpbjogMCAwIDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBpZnJhbWUsIHZpZGVvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgaWZyYW1lLCB2aWRlbyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOXB4OyB9IH1cblxucCB7XG4gIG1hcmdpbjogMCAwIDI4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIHAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzhweDsgfSB9XG5cbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLmNhc2luZy0tY2FwcyB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLmNhc2luZy0tbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmY0NztcbiAgYm94LXNoYWRvdzogMCAwIDAgNHB4ICNmZmJmNDc7IH1cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xuICBmb250LXZhcmlhbnQ6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbmJsb2NrcXVvdGUge1xuICBwYWRkaW5nOiAwIDI4cHg7XG4gIG1hcmdpbjogNTZweCAwO1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNhZTkzNmM7XG4gIGZvbnQtZmFtaWx5OiBcIkZGIFRpYmVyZVwiLCBQYWxhdGlubywgR2VvcmdpYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyOHB4O1xuICBsaW5lLWhlaWdodDogMS4yNTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIHBhZGRpbmc6IDAgMzJweDtcbiAgICAgIG1hcmdpbjogNjRweCAwO1xuICAgICAgZm9udC1zaXplOiAzMnB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgIGJsb2NrcXVvdGUge1xuICAgICAgcGFkZGluZzogMCAzOHB4O1xuICAgICAgbWFyZ2luOiA3NnB4IDA7IH0gfVxuICBibG9ja3F1b3RlIHA6YmVmb3JlIHtcbiAgICBjb250ZW50OiBvcGVuLXF1b3RlOyB9XG4gIGJsb2NrcXVvdGUgcDphZnRlciB7XG4gICAgY29udGVudDogY2xvc2UtcXVvdGU7IH1cbiAgYmxvY2txdW90ZSBmb290ZXIge1xuICAgIGZvbnQtZmFtaWx5OiBcIk9wZW4gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgICBibG9ja3F1b3RlIGZvb3RlcjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ1xcMjAxNCc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG5ociB7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IDMycHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2ZkMTtcbiAgYm9yZGVyOiAwOyB9XG5cbnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IH1cblxuY2FwdGlvbiB7XG4gIGNvbG9yOiAjNmY3NzdiO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbnRyOmhvdmVyIHRoLFxudHI6aG92ZXIgdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExMSwgMTE5LCAxMjMsIDAuMDUpOyB9XG5cbnRoZWFkIHRoLCB0aGVhZCB0ZCB7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjMDAyZjg3O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbnRib2R5IHRoLCB0Ym9keSB0ZCB7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzE4MTkxOTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG50Ym9keSB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxudGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGgsXG50Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci10b3A6IDA7IH1cblxuc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDFweDtcbiAgcGFkZGluZzogOHB4IDQwcHggOHB4IDhweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL2ljb25zL2lfY2FyZXQtZG93bi5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMjRweCBhdXRvO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSA4cHgpIDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgIzZmNzc3YjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHRyYW5zaXRpb246IGJvcmRlciAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpLCBib3gtc2hhZG93IDE1MG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gICAgc2VsZWN0IHtcbiAgICAgIGhlaWdodDogNDRweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICBzZWxlY3Qge1xuICAgICAgaGVpZ2h0OiA0OHB4OyB9IH1cbiAgc2VsZWN0OmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDJmODc7IH1cbiAgc2VsZWN0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDJmODc7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMCwgNDcsIDEzNSwgMC4xNik7XG4gICAgb3V0bGluZTogMDsgfVxuXG4ucmFkaW9zIC5vcHRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnJhZGlvcyAub3B0aW9uX19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM2Zjc3N2I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlciAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpLCBib3gtc2hhZG93IDE1MG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gICAgei1pbmRleDogMTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAgICAgLnJhZGlvcyAub3B0aW9uX19pY29uIHtcbiAgICAgICAgdG9wOiAycHg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5yYWRpb3MgLm9wdGlvbl9faWNvbiB7XG4gICAgICAgIHRvcDogNHB4OyB9IH1cbiAgICAucmFkaW9zIC5vcHRpb25fX2ljb246YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIG1hcmdpbjogLTVweCAwIDAgLTVweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDJmODc7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpLCBvcGFjaXR5IDE1MG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7IH1cbiAgLnJhZGlvcyAub3B0aW9uX19sYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogMjsgfVxuICAucmFkaW9zIC5vcHRpb25fX2lucHV0OmZvY3VzICsgLm9wdGlvbl9fbGFiZWwgKyAub3B0aW9uX19pY29uIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCA0NywgMTM1LCAwLjE2KTsgfVxuICAgIC5yYWRpb3MgLm9wdGlvbl9faW5wdXQ6Zm9jdXMgKyAub3B0aW9uX19sYWJlbCArIC5vcHRpb25fX2ljb24gc3ZnIHBhdGgge1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH1cbiAgLnJhZGlvcyAub3B0aW9uOmhvdmVyIC5vcHRpb25fX2ljb24ge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmY4NztcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggI2YyZjRmOTsgfVxuICAgIC5yYWRpb3MgLm9wdGlvbjpob3ZlciAub3B0aW9uX19pY29uOmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyZjg3O1xuICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOyB9XG4gIC5yYWRpb3MgLm9wdGlvbl9faW5wdXQ6Y2hlY2tlZCArIC5vcHRpb25fX2xhYmVsICsgLm9wdGlvbl9faWNvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAyZjg3OyB9XG4gICAgLnJhZGlvcyAub3B0aW9uX19pbnB1dDpjaGVja2VkICsgLm9wdGlvbl9fbGFiZWwgKyAub3B0aW9uX19pY29uOmJlZm9yZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuXG4uY2hlY2tib3hlcyAub3B0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jaGVja2JveGVzIC5vcHRpb25fX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDFweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzZmNzc3YjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICAgIC5jaGVja2JveGVzIC5vcHRpb25fX2ljb24ge1xuICAgICAgICB0b3A6IDJweDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAgICAgLmNoZWNrYm94ZXMgLm9wdGlvbl9faWNvbiB7XG4gICAgICAgIHRvcDogNHB4OyB9IH1cbiAgICAuY2hlY2tib3hlcyAub3B0aW9uX19pY29uIHN2ZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IC0ycHg7XG4gICAgICBsZWZ0OiAtMnB4O1xuICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICBoZWlnaHQ6IDIwcHg7IH1cbiAgICAuY2hlY2tib3hlcyAub3B0aW9uX19pY29uIHN2ZyBwYXRoIHtcbiAgICAgIGZpbGw6IG5vbmU7XG4gICAgICBzdHJva2U6ICMwMDJmODc7XG4gICAgICBzdHJva2Utd2lkdGg6IDI7XG4gICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogNzFweDtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiA3MXB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZTsgfVxuICAgIC5jaGVja2JveGVzIC5vcHRpb25fX2ljb24gc3ZnIHBvbHlsaW5lIHtcbiAgICAgIGZpbGw6IG5vbmU7XG4gICAgICBzdHJva2U6ICNmZmY7XG4gICAgICBzdHJva2Utd2lkdGg6IDI7XG4gICAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMThweDtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAxOHB4O1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsgfVxuICAuY2hlY2tib3hlcyAub3B0aW9uX19sYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgei1pbmRleDogMjsgfVxuICAuY2hlY2tib3hlcyAub3B0aW9uX19pbnB1dDpmb2N1cyArIC5vcHRpb25fX2xhYmVsICsgLm9wdGlvbl9faWNvbiB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMCwgNDcsIDEzNSwgMC4xNik7IH1cbiAgICAuY2hlY2tib3hlcyAub3B0aW9uX19pbnB1dDpmb2N1cyArIC5vcHRpb25fX2xhYmVsICsgLm9wdGlvbl9faWNvbiBzdmcgcGF0aCB7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMDsgfVxuICAuY2hlY2tib3hlcyAub3B0aW9uOmhvdmVyIC5vcHRpb25fX2ljb24ge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAjZjJmNGY5OyB9XG4gICAgLmNoZWNrYm94ZXMgLm9wdGlvbjpob3ZlciAub3B0aW9uX19pY29uIHN2ZyBwYXRoIHtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9XG4gIC5jaGVja2JveGVzIC5vcHRpb25fX2lucHV0OmNoZWNrZWQgKyAub3B0aW9uX19sYWJlbCArIC5vcHRpb25fX2ljb24ge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmY4NzsgfVxuICAgIC5jaGVja2JveGVzIC5vcHRpb25fX2lucHV0OmNoZWNrZWQgKyAub3B0aW9uX19sYWJlbCArIC5vcHRpb25fX2ljb24gc3ZnIHBhdGgge1xuICAgICAgZmlsbDogIzAwMmY4NzsgfVxuICAgIC5jaGVja2JveGVzIC5vcHRpb25fX2lucHV0OmNoZWNrZWQgKyAub3B0aW9uX19sYWJlbCArIC5vcHRpb25fX2ljb24gc3ZnIHBvbHlsaW5lIHtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9XG5cbmlucHV0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM2Zjc3N2I7XG4gIHRyYW5zaXRpb246IGJvcmRlciAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpLCBib3gtc2hhZG93IDE1MG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7IH1cbiAgaW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmY4NztcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCA0NywgMTM1LCAwLjE2KTtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIGlucHV0OmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDJmODc7IH1cblxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG5cbmlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7IH1cblxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEyOHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM2Zjc3N2I7XG4gIHJlc2l6ZTogdmVydGljYWw7XG4gIHRyYW5zaXRpb246IGJvcmRlciAxNTBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpLCBib3gtc2hhZG93IDE1MG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7IH1cbiAgdGV4dGFyZWE6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMmY4NztcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCA0NywgMTM1LCAwLjE2KTtcbiAgICBvdXRsaW5lOiAwOyB9XG4gIHRleHRhcmVhOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDJmODc7IH1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbWFyZ2luOiAwIDAgMTRweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgICBhZGRyZXNzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgYWRkcmVzcyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOXB4OyB9IH1cblxuQHBhZ2Uge1xuICBtYXJnaW46IDJjbTsgfVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmEsXG5hOnZpc2l0ZWQge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG5hW2hyZWZdOmFmdGVyIHtcbiAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7IH1cblxuYWJiclt0aXRsZV06YWZ0ZXIge1xuICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cblxuYVtocmVmXj0nIyddOmFmdGVyLFxuYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnOyB9XG5cbnByZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50OyB9XG5cbnByZSxcbmJsb2NrcXVvdGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxudGhlYWQge1xuICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxudHIsXG5pbWcge1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxucCxcbmgyLFxuaDMge1xuICBvcnBoYW5zOiAzO1xuICB3aWRvd3M6IDM7IH1cblxuaDIsXG5oMyB7XG4gIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiNoZWFkZXItY29udGFpbmVyLFxuI2Zvb3Rlci1jb250YWluZXIsXG4uc2hvcnRjdXQtLW1haW4sXG4uc2hvcnRjdXQtLWhlYWRlcixcbi5wYWdpbmF0aW9uLFxuc3ZnLFxuaW1nIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuIiwiLy8gVHlwZWZhY2VzXG4vL1xuLy8gQ29sbGVjdGlvbiBvZiBhbGwgYXBwcm92ZWQgdHlwZWZhY2VzIHRvIGNvbXBseSB3aXRoIGJyYW5kaW5nLlxuLy9cbi8vIDx1bCBjbGFzcz1cInN0eWxlZ3VpZGUgdHlwZWZhY2VzXCI+XG4vLyAgIDxsaSBjbGFzcz1cInR5cGVmYWNlXCI+XG4vLyAgICAgPGg1PkZGIFRpYmVyZTwvaDU+XG4vLyAgICAgPHAgc3R5bGU9XCJmb250LWZhbWlseTogJ0ZGIFRpYmVyZSc7XCI+XG4vLyAgICAgPHNwYW4+QWE8L3NwYW4+PGJyPlxuLy8gICAgIEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaPGJyPlxuLy8gICAgIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6PGJyPlxuLy8gICAgIDAxMjM0NTY3ODk8L3A+XG4vLyAgIDwvbGk+XG4vLyAgIDxsaSBjbGFzcz1cInR5cGVmYWNlXCI+XG4vLyAgICAgPGg1Pk9wZW4gU2FuczwvaDU+XG4vLyAgICAgPHAgc3R5bGU9XCJmb250LWZhbWlseTogJ09wZW4gU2Fucyc7XCI+XG4vLyAgICAgPHNwYW4+QWE8L3NwYW4+PGJyPlxuLy8gICAgIEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaPGJyPlxuLy8gICAgIGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6PGJyPlxuLy8gICAgIDAxMjM0NTY3ODk8L3A+XG4vLyAgIDwvbGk+XG4vLyA8L3VsPlxuLy9cbi8vIFN0eWxlZ3VpZGUgQnJhbmRpbmcgLSBUeXBlZmFjZXNcblxuLyoqXG4gKiBAbGljZW5zZVxuICogTXlGb250cyBXZWJmb250IEJ1aWxkIElEIDM0MjU1MTcsIDIwMTctMDctMjBUMTE6NTg6NDYtMDQwMFxuICpcbiAqIFRoZSBmb250cyBsaXN0ZWQgaW4gdGhpcyBub3RpY2UgYXJlIHN1YmplY3QgdG8gdGhlIEVuZCBVc2VyIExpY2Vuc2VcbiAqIEFncmVlbWVudChzKSBlbnRlcmVkIGludG8gYnkgdGhlIHdlYnNpdGUgb3duZXIuIEFsbCBvdGhlciBwYXJ0aWVzIGFyZVxuICogZXhwbGljaXRseSByZXN0cmljdGVkIGZyb20gdXNpbmcgdGhlIExpY2Vuc2VkIFdlYmZvbnRzKHMpLlxuICpcbiAqIFlvdSBtYXkgb2J0YWluIGEgdmFsaWQgbGljZW5zZSBhdCB0aGUgVVJMcyBiZWxvdy5cbiAqXG4gKiBXZWJmb250OiBGRiBUaWJlcmUgV2ViIE1lZGl1bSBieSBGb250Rm9udFxuICogVVJMOiBodHRwczovL3d3dy5teWZvbnRzLmNvbS9mb250cy9mb250Zm9udC90aWJlcmUvb3QtbWVkaXVtL1xuICpcbiAqIFdlYmZvbnQ6IEZGIFRpYmVyZSBXZWIgTGlnaHQgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL290LWxpZ2h0L1xuICpcbiAqIFdlYmZvbnQ6IEZGIFRpYmVyZSBXZWIgSXRhbGljIGJ5IEZvbnRGb250XG4gKiBVUkw6IGh0dHBzOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2ZvbnRmb250L3RpYmVyZS9vdC1pdGFsaWMvXG4gKlxuICogV2ViZm9udDogRkYgVGliZXJlIFdlYiBMaWdodCBJdGFsaWMgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL290LWxpZ2h0LWl0YWxpYy9cbiAqXG4gKiBXZWJmb250OiBGRiBUaWJlcmUgV2ViIEJvbGQgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL290LWJvbGQvXG4gKlxuICogV2ViZm9udDogVGliZXJlIE9ybmFtZW50cyBCYW5kZWQgYnkgRm9udEZvbnRcbiAqIFVSTDogaHR0cHM6Ly93d3cubXlmb250cy5jb20vZm9udHMvZm9udGZvbnQvdGliZXJlL29ybmFtZW50cy1iYW5kZWQvXG4gKlxuICogV2ViZm9udDogRkYgVGliZXJlIFdlYiBieSBGb250Rm9udFxuICogVVJMOiBodHRwczovL3d3dy5teWZvbnRzLmNvbS9mb250cy9mb250Zm9udC90aWJlcmUvb3QvXG4gKlxuICpcbiAqIExpY2Vuc2U6IGh0dHBzOi8vd3d3Lm15Zm9udHMuY29tL3ZpZXdsaWNlbnNlP3R5cGU9d2ViJmJ1aWxkaWQ9MzQyNTUxN1xuICogTGljZW5zZWQgcGFnZXZpZXdzOiA1MDAsMDAwXG4gKiBXZWJmb250cyBjb3B5cmlnaHQ6IDIwMTAgQWxiZXJ0IEJvdG9uIHB1Ymxpc2hlZCBieSBGU0kgRm9udFNob3AgSW50ZXJuYXRpb25hbCBHbWJIXG4gKlxuICogwqkgMjAxNyBNeUZvbnRzIEluY1xuKi9cblxuXG4vKiBAaW1wb3J0IG11c3QgYmUgYXQgdG9wIG9mIGZpbGUsIG90aGVyd2lzZSBDU1Mgd2lsbCBub3Qgd29yayAqL1xuQGltcG9ydCB1cmwoJy8vaGVsbG8ubXlmb250cy5uZXQvY291bnQvMzQ0NGVkJyk7XG5cbkBpbmNsdWRlIGZvbnQtZmFjZSgnRkYgVGliZXJlJywgJy4uL2ZvbnRzLzM0NDRFRF8xXzAnLCAzMDAsICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0Zik7XG5AaW5jbHVkZSBmb250LWZhY2UoJ0ZGIFRpYmVyZScsICcuLi9mb250cy8zNDQ0RURfNl8wJywgNTAwLCAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYpO1xuQGluY2x1ZGUgZm9udC1mYWNlKCdGRiBUaWJlcmUnLCAnLi4vZm9udHMvMzQ0NEVEXzRfMCcsIDcwMCwgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmKTtcblxuXG5AaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PU9wZW4rU2FuczozMDAsNDAwLDYwMCw3MDAnKTtcblxuXG4vLyBGb250IEZhbWlsaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGZvbnQtcHJpbWFyeTogJ0ZGIFRpYmVyZScsIFBhbGF0aW5vLCBHZW9yZ2lhLCBzYW5zLXNlcmlmO1xuJGZvbnQtc2Vjb25kYXJ5OiAnT3BlbiBTYW5zJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbi8vICRiYXNlLWZvbnQtZmFtaWx5OiAnQ2hyb25pY2xlIFRleHQgRzIgQScsICdDaHJvbmljbGUgVGV4dCBHMiBCJywgJGdlb3JnaWE7XG4vLyAkYnJhbmQtZm9udC1mYW1pbHktYm9vazogJ0F2ZW5pciA0NSBCb29rJywgJGhlbHZldGljYTtcbi8vICRicmFuZC1mb250LWZhbWlseS1tZWRpdW06ICdBdmVuaXIgNjUgTWVkaXVtJywgJGhlbHZldGljYTtcbi8vICRicmFuZC1mb250LWZhbWlseS1ibGFjazogJ0F2ZW5pciA5NSBCbGFjaycsICRoZWx2ZXRpY2E7XG5cbi8vIEZvbnQgU2l6ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAkYmFzZS1mb250LXNpemU6IHJlbSgxOCk7XG5cbi8vIExpbmUgSGVpZ2h0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vICRiYXNlLWxpbmUtaGVpZ2h0OiAxLjU7XG4vLyAkaGVhZGluZy1saW5lLWhlaWdodDogMS4yO1xuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtdXJsLXByZWZpeGVyYCBpcyBkZXByZWNhdGVkIGFuZCBcIiArXG4gICAgXCJ3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZm9udC1zb3VyY2UtZGVjbGFyYXRpb25gIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiJWxpbmtzX190aXRsZSB7XG4gIG1hcmdpbjogMCAwIDE2cHg7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1zZWNvbmRhcnk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcblxuICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgbWFyZ2luOiAwIDAgMzJweDtcbiAgICBmb250LXNpemU6IDE5cHg7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgfVxufVxuXG4lbGlua3NfX2l0ZW0ge1xuICBtYXJnaW46IDE2cHggMCAwO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cblxuJXNpZGViYXJfX3RpdGxlIHtcbiAgQGV4dGVuZCAlbGlua3NfX3RpdGxlO1xufVxuXG4lc2lkZWJhcl9faXRlbSB7XG4gIEBleHRlbmQgJWxpbmtzX19pdGVtO1xufVxuXG4laGlkZS1vZmYtc2NyZWVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTAwMDBweDtcbiAgdG9wOiBhdXRvO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbiVkaXNhYmxlLWRyYWcge1xuICB1c2VyLWRyYWc6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4lY2xlYXJmaXgge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4lbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbiVvdmVybGF5IHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGNvbG9yKHByaW1hcnksIGJsYWNrKSwgLjkpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAqIDUgJGJhc2UtYW5pbWF0aW9uLWVhc2luZztcbiAgei1pbmRleDogMjtcblxuICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4lc29jaWFsLWxpc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogNDBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBtYXJnaW4tdG9wOiAtMTZweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDI0cHg7XG4gIH1cbn1cblxuJWZvb3Rlci10b2dnbGUtdGl0bGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNnB4IDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoY29sb3IocHJpbWFyeSwgYmxhY2spLCAuMSk7XG4gIGNvbG9yOiBjb2xvcihwcmltYXJ5LCBibGFjayk7XG5cbiAgLy8gaWNvblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbi10b3A6IC0xMnB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2ljb25zL2lfY2FyZXQtZG93bi5zdmcnKSBuby1yZXBlYXQgNTAlIDUwJSAvIDI0cHggYXV0bztcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJGJhc2UtYW5pbWF0aW9uLXNwZWVkICRiYXNlLWFuaW1hdGlvbi1lYXNpbmc7XG4gIH1cblxuICAvLyBob3ZlciBzdGF0ZVxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGNvbG9yKHByaW1hcnksIGdyYXkpLCAuMDUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKGNvbG9yKHByaW1hcnksIGJsYWNrKSwgLjIpO1xuICAgIGNvbG9yOiBsaWdodGVuKGNvbG9yKHByaW1hcnksIGJsdWUpLCAxMCUpO1xuICB9XG5cbiAgLy8gaW5hY3RpdmUgc3RhdGVcbiAgJlthcmlhLWV4cGFuZGVkPSdmYWxzZSddOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuXG4gIC8vIGFjdGl2ZSBzdGF0ZVxuICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgfVxufVxuXG4lZm9vdGVyLXRvZ2dsZS1jb250ZW50IHtcbiAgLy8gaW5hY3RpdmUgc3RhdGVcbiAgJlthcmlhLWhpZGRlbj0ndHJ1ZSddIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gYWN0aXZlIHN0YXRlXG4gICZbYXJpYS1oaWRkZW49J2ZhbHNlJ10ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMzJweCAwO1xuICB9XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2NC4xLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBJRSBhbmQgaU9TLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBIVE1MNSBkaXNwbGF5IGRlZmluaXRpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZGV0YWlscywgLyogMSAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbm1haW4sIC8qIDIgKi9cbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7IC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUsIC8qIDEgKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gKiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lLXdpZHRoOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9udCB3ZWlnaHQgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxub3B0Z3JvdXAge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cblxuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgdGV4dCBzdHlsZSBvZiBwbGFjZWhvbGRlcnMgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAwLjU0O1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cbiIsIi8vIEV4dGVuZCBub3JtYWxpemUuY3NzIHdpdGggYm9yZGVyLWJveCBydWxlc2V0LlxuKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiIsIi8vIEdsb2JhbCBodG1sIGFuZCBib2R5XG5ib2R5IHtcbiAgZm9udDogNDAwIDE0cHggLyAxLjUgJGZvbnQtc2Vjb25kYXJ5O1xuICBjb2xvcjogY29sb3IocHJpbWFyeSwgYmxhY2spO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBmb250OiA0MDAgMTZweCAvIDEuNSAkZm9udC1zZWNvbmRhcnk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgZm9udDogNDAwIDE5cHggLyAxLjUgJGZvbnQtc2Vjb25kYXJ5O1xuICB9XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShjb2xvcihwcmltYXJ5LCBibGFjayksIC4yNSk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAqIDIgJGJhc2UtYW5pbWF0aW9uLWVhc2luZztcbiAgICB6LWluZGV4OiAwO1xuICB9XG5cbiAgLy8gY2xpcHBlZFxuICAmLmNsaXBwZWQge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNsaXBwZWRcbiAgJi5jbGlwcGVkLS1tb2JpbGUge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29udGVudCBzZWxlY3Rpb25zXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHNlY29uZGFyeSwgZ29sZCk7XG4gIGNvbG9yOiBjb2xvcihwcmltYXJ5LCBibGFjayk7XG59XG4iLCIvLyBDb2xvcnNcbi8vXG4vLyBTdHlsZWd1aWRlIEJyYW5kaW5nIC0gQ29sb3JzXG5cbi8vIFByaW1hcnkgQ29sb3JzXG4vL1xuLy8gUHJvbWluZW50IGNvbG9yIHBhbGV0dGUgdGhhdCBleHByZXNzZXMgdGhlIGJyYW5kIGFuZCBmb3VuZGF0aW9uLiBVc2UgPGNvZGU+Y29sb3IocHJpbWFyeSwgJGNvbG9yKTwvY29kZT4uXG4vL1xuLy8gPHVsIGNsYXNzPVwic3dhdGNoZXNcIj5cbi8vICAgPGxpIGNsYXNzPVwic3dhdGNoXCI+XG4vLyAgICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMwMDJmODc7XCI+PC9kaXY+XG4vLyAgICAgPGg1PkJsdWU8L2g1PlxuLy8gICAgIDx1bD5cbi8vICAgICAgIDxsaT4jMDAyZjg3PC9saT5cbi8vICAgICAgIDxsaT48Y29kZT5jb2xvcihwcmltYXJ5LCBibHVlKTwvY29kZT48L2xpPlxuLy8gICAgIDwvdWw+XG4vLyAgIDwvbGk+XG4vLyAgIDxsaSBjbGFzcz1cInN3YXRjaFwiPlxuLy8gICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjYWU5MzZjO1wiPjwvZGl2PlxuLy8gICAgIDxoNT5Hb2xkPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+I2FlOTM2YzwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3IocHJpbWFyeSwgZ29sZCk8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gICA8bGkgY2xhc3M9XCJzd2F0Y2hcIj5cbi8vICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzE4MTkxOTtcIj48L2Rpdj5cbi8vICAgICA8aDU+QmxhY2s8L2g1PlxuLy8gICAgIDx1bD5cbi8vICAgICAgIDxsaT4jMTgxOTE5PC9saT5cbi8vICAgICAgIDxsaT48Y29kZT5jb2xvcihwcmltYXJ5LCBibGFjayk8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gICA8bGkgY2xhc3M9XCJzd2F0Y2hcIj5cbi8vICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzZmNzc3YjtcIj48L2Rpdj5cbi8vICAgICA8aDU+R3JheTwvaDU+XG4vLyAgICAgPHVsPlxuLy8gICAgICAgPGxpPiM2Zjc3N2I8L2xpPlxuLy8gICAgICAgPGxpPjxjb2RlPmNvbG9yKHByaW1hcnksIGdyYXkpPC9jb2RlPjwvbGk+XG4vLyAgICAgPC91bD5cbi8vICAgPC9saT5cbi8vICAgPGxpIGNsYXNzPVwic3dhdGNoXCI+XG4vLyAgICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjY7XCI+PC9kaXY+XG4vLyAgICAgPGg1Pk9mZiBXaGl0ZTwvaDU+XG4vLyAgICAgPHVsPlxuLy8gICAgICAgPGxpPiNmNmY2ZjY8L2xpPlxuLy8gICAgICAgPGxpPjxjb2RlPmNvbG9yKHByaW1hcnksIG9mZi13aGl0ZSk8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gICA8bGkgY2xhc3M9XCJzd2F0Y2hcIj5cbi8vICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcIj48L2Rpdj5cbi8vICAgICA8aDU+V2hpdGU8L2g1PlxuLy8gICAgIDx1bD5cbi8vICAgICAgIDxsaT4jZmZmZmZmPC9saT5cbi8vICAgICAgIDxsaT48Y29kZT5jb2xvcihwcmltYXJ5LCB3aGl0ZSk8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gPC91bD5cbi8vXG4vLyBTdHlsZWd1aWRlIEJyYW5kaW5nIC0gQ29sb3JzIC0gUHJpbWFyeSBDb2xvcnNcblxuLy8gU2Vjb25kYXJ5IENvbG9yc1xuLy9cbi8vIFN1cHBsZW1lbnRhbCBhY2NlbnQgY29sb3JzIHRvIGVtcGhhc2l6ZSBlbGVtZW50cy4gVXNlIDxjb2RlPmNvbG9yKHNlY29uZGFyeSwgJGNvbG9yKTwvY29kZT4uXG4vL1xuLy8gPHVsIGNsYXNzPVwic3dhdGNoZXMgc2Vjb25kYXJ5XCI+XG4vLyAgIDxsaSBjbGFzcz1cInN3YXRjaFwiPlxuLy8gICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMTQ3N2E5O1wiPjwvZGl2PlxuLy8gICAgIDxoNT5DeWFuPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+IzE0NzdhOTwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3Ioc2Vjb25kYXJ5LCBjeWFuKTwvY29kZT48L2xpPlxuLy8gICAgIDwvdWw+XG4vLyAgIDwvbGk+XG4vLyAgIDxsaSBjbGFzcz1cInN3YXRjaFwiPlxuLy8gICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjNGMyYzkyO1wiPjwvZGl2PlxuLy8gICAgIDxoNT5QdXJwbGU8L2g1PlxuLy8gICAgIDx1bD5cbi8vICAgICAgIDxsaT4jNGMyYzkyPC9saT5cbi8vICAgICAgIDxsaT48Y29kZT5jb2xvcihzZWNvbmRhcnksIHB1cnBsZSk8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gICA8bGkgY2xhc3M9XCJzd2F0Y2hcIj5cbi8vICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2ZmYmY0NztcIj48L2Rpdj5cbi8vICAgICA8aDU+R29sZDwvaDU+XG4vLyAgICAgPHVsPlxuLy8gICAgICAgPGxpPiNmZmJmNDc8L2xpPlxuLy8gICAgICAgPGxpPjxjb2RlPmNvbG9yKHNlY29uZGFyeSwgZ29sZCk8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gICA8bGkgY2xhc3M9XCJzd2F0Y2hcIj5cbi8vICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2RjMmEyYTtcIj48L2Rpdj5cbi8vICAgICA8aDU+UmVkPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+I2RjMmEyYTwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3Ioc2Vjb25kYXJ5LCByZWQpPC9jb2RlPjwvbGk+XG4vLyAgICAgPC91bD5cbi8vICAgPC9saT5cbi8vICAgPGxpIGNsYXNzPVwic3dhdGNoXCI+XG4vLyAgICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICMwMDgwODA7XCI+PC9kaXY+XG4vLyAgICAgPGg1PkdyZWVuPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+IzAwODA4MDwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3Ioc2Vjb25kYXJ5LCBncmVlbik8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gICA8bGkgY2xhc3M9XCJzd2F0Y2hcIj5cbi8vICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzA5MmIzYztcIj48L2Rpdj5cbi8vICAgICA8aDU+RGFyayBCbHVlPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+IzA5MmIzYzwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3Ioc2Vjb25kYXJ5LCBkYXJrLWJsdWUpPC9jb2RlPjwvbGk+XG4vLyAgICAgPC91bD5cbi8vICAgPC9saT5cbi8vICAgPGxpIGNsYXNzPVwic3dhdGNoXCI+XG4vLyAgICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNmMmY0Zjk7XCI+PC9kaXY+XG4vLyAgICAgPGg1Pk9mZiBCbHVlPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+I2YyZjRmOTwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3Ioc2Vjb25kYXJ5LCBvZmYtYmx1ZSk8L2NvZGU+PC9saT5cbi8vICAgICA8L3VsPlxuLy8gICA8L2xpPlxuLy8gPC91bD5cbi8vXG4vLyBTdHlsZWd1aWRlIEJyYW5kaW5nIC0gQ29sb3JzIC0gU2Vjb25kYXJ5IENvbG9yc1xuXG4vLyBTb2NpYWwgQ29sb3JzXG4vL1xuLy8gTGlzdCBvZiBicmFuZCBjb2xvcnMgZm9yIHNvY2lhbCBtZWRpYSBwbGF0Zm9ybXMuIFVzZSA8Y29kZT5jb2xvcihzb2NpYWwsICRjb2xvcik8L2NvZGU+LlxuLy9cbi8vIDx1bCBjbGFzcz1cInN3YXRjaGVzIHNlY29uZGFyeVwiPlxuLy8gICA8bGkgY2xhc3M9XCJzd2F0Y2hcIj5cbi8vICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogIzNiNTk5ODtcIj48L2Rpdj5cbi8vICAgICA8aDU+RmFjZWJvb2s8L2g1PlxuLy8gICAgIDx1bD5cbi8vICAgICAgIDxsaT4jM2I1OTk4PC9saT5cbi8vICAgICAgIDxsaT48Y29kZT5jb2xvcihzb2NpYWwsIGZhY2Vib29rKTwvY29kZT48L2xpPlxuLy8gICAgIDwvdWw+XG4vLyAgIDwvbGk+XG4vLyAgIDxsaSBjbGFzcz1cInN3YXRjaFwiPlxuLy8gICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDBiNmYxO1wiPjwvZGl2PlxuLy8gICAgIDxoNT5Ud2l0dGVyPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+IzAwYjZmMTwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3Ioc29jaWFsLCB0d2l0dGVyKTwvY29kZT48L2xpPlxuLy8gICAgIDwvdWw+XG4vLyAgIDwvbGk+XG4vLyAgIDxsaSBjbGFzcz1cInN3YXRjaFwiPlxuLy8gICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjYjMxMjE3O1wiPjwvZGl2PlxuLy8gICAgIDxoNT5Zb3V0dWJlPC9oNT5cbi8vICAgICA8dWw+XG4vLyAgICAgICA8bGk+I2IzMTIxNzwvbGk+XG4vLyAgICAgICA8bGk+PGNvZGU+Y29sb3Ioc29jaWFsLCB5b3V0dWJlKTwvY29kZT48L2xpPlxuLy8gICAgIDwvdWw+XG4vLyAgIDwvbGk+XG4vLyAgIDxsaSBjbGFzcz1cInN3YXRjaFwiPlxuLy8gICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmI2O1wiPjwvZGl2PlxuLy8gICAgIDxoNT5MaW5rZWRJbjwvaDU+XG4vLyAgICAgPHVsPlxuLy8gICAgICAgPGxpPiMwMDdiYjY8L2xpPlxuLy8gICAgICAgPGxpPjxjb2RlPmNvbG9yKHNvY2lhbCwgbGlua2VkaW4pPC9jb2RlPjwvbGk+XG4vLyAgICAgPC91bD5cbi8vICAgPC9saT5cbi8vIDwvdWw+XG4vL1xuLy8gU3R5bGVndWlkZSBCcmFuZGluZyAtIENvbG9ycyAtIFNvY2lhbCBDb2xvcnNcblxuJGNvbG9yczogKFxuICBwcmltYXJ5ICAgICA6IChcbiAgICBibHVlICAgICAgOiAjMDAyZjg3LFxuICAgIGdvbGQgICAgICA6ICNhZTkzNmMsXG4gICAgd2hpdGUgICAgIDogI2ZmZixcbiAgICBncmF5ICAgICAgOiAjNmY3NzdiLFxuICAgIG9mZi13aGl0ZSA6ICNmNmY2ZjYsXG4gICAgYmxhY2sgICAgIDogIzE4MTkxOSxcbiAgKSxcbiAgc2Vjb25kYXJ5ICAgOiAoXG4gICAgY3lhbiAgICAgIDogIzE0NzdhOSxcbiAgICBwdXJwbGUgICAgOiAjNGMyYzkyLFxuICAgIGdvbGQgICAgICA6ICNmZmJmNDcsXG4gICAgcmVkICAgICAgIDogI2RjMTQzYyxcbiAgICBncmVlbiAgICAgOiAjMDA4MDgwLFxuICAgIGRhcmstYmx1ZSA6ICMwNzIyMzUsXG4gICAgb2ZmLWJsdWUgIDogI2YyZjRmOVxuICApLFxuICBzb2NpYWwgICAgICA6IChcbiAgICBmYWNlYm9vayAgOiAjM2I1OTk4LFxuICAgIHR3aXR0ZXIgICA6ICMwMGI2ZjEsXG4gICAgeW91dHViZSAgIDogI2IzMTIxNyxcbiAgICBsaW5rZWRpbiAgOiAjMDA3YmI2XG4gIClcbik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgIH1cblxuICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAkZGlnaXRzOiAxO1xuICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG4gICAgJF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gQW5pbWF0aW9ucyAmIFRyYW5zaXRpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGJhc2UtYW5pbWF0aW9uLXNwZWVkOiAxNTBtcztcbiRiYXNlLWFuaW1hdGlvbi1lYXNpbmc6IGN1YmljLWJlemllciguNzcsIDAsIC4xNzUsIDEpO1xuJGJvdW5jZS1hbmltYXRpb24tZWFzaW5nOiBjdWJpYy1iZXppZXIoLjY4LCAtLjU1LCAuMjY1LCAxLjU1KTtcbiIsIi8vIEZvcm1cbi8vXG4vLyBTdHlsZWd1aWRlIEVsZW1lbnRzIC0gRm9ybVxuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG5cbi8vIExhYmVsXG4vL1xuLy8gVGhlIEhUTUwgPGNvZGU+bGFiZWw8L2NvZGU+IGVsZW1lbnQgcmVwcmVzZW50cyBhIGNhcHRpb24gZm9yIGFuIGl0ZW0gaW4gYSB1c2VyIGludGVyZmFjZS5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8bGFiZWwgZm9yPVwiaW5wdXRJRFwiPkxhYmVsPC9sYWJlbD5cbi8vXG4vLyBTdHlsZWd1aWRlIEVsZW1lbnRzIC0gRm9ybSAtIExhYmVsXG5cbmxhYmVsIHtcbiAgQGV4dGVuZCAlbGFiZWw7XG59XG4iLCIvLyBIZWFkaW5nXG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIEhlYWRpbmdcblxuXG4vLyBEZWZhdWx0XG4vL1xuLy8gU3RhbmRhcmQgaGVhZGluZ3MgZm9yIGhpZXJhcmNoaWNhbCBjb250ZW50LlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxoMT5IZWFkaW5nIDE8L2gxPlxuLy8gPGgyPkhlYWRpbmcgMjwvaDI+XG4vLyA8aDM+SGVhZGluZyAzPC9oMz5cbi8vIDxoND5IZWFkaW5nIDQ8L2g0PlxuLy8gPGg1PkhlYWRpbmcgNTwvaDU+XG4vLyA8aDY+SGVhZGluZyA2PC9oNj5cbi8vXG4vLyBTdHlsZWd1aWRlIEVsZW1lbnRzIC0gSGVhZGluZyAtIERlZmF1bHRcblxuaDEgeyBAaW5jbHVkZSBoZWFkaW5nKGgxKTsgfVxuaDIgeyBAaW5jbHVkZSBoZWFkaW5nKGgyKTsgfVxuaDMgeyBAaW5jbHVkZSBoZWFkaW5nKGgzKTsgfVxuaDQgeyBAaW5jbHVkZSBoZWFkaW5nKGg0KTsgfVxuaDUgeyBAaW5jbHVkZSBoZWFkaW5nKGg1KTsgfVxuaDYgeyBAaW5jbHVkZSBoZWFkaW5nKGg2KTsgfVxuXG5cbi8vIE1pbWljXG4vL1xuLy8gQWxsb3cgbm9uLXNlbWFudGljIGVsZW1lbnRzIHRvIGxvb2sgbGlrZSBzdGFuZGFyZCBoZWFkaW5ncy5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8ZGl2IGNsYXNzPVwiaDFcIj5IZWFkaW5nIDE8L2Rpdj5cbi8vIDxkaXYgY2xhc3M9XCJoMlwiPkhlYWRpbmcgMjwvZGl2PlxuLy8gPGRpdiBjbGFzcz1cImgzXCI+SGVhZGluZyAzPC9kaXY+XG4vLyA8ZGl2IGNsYXNzPVwiaDRcIj5IZWFkaW5nIDQ8L2Rpdj5cbi8vIDxkaXYgY2xhc3M9XCJoNVwiPkhlYWRpbmcgNTwvZGl2PlxuLy8gPGRpdiBjbGFzcz1cImg2XCI+SGVhZGluZyA2PC9kaXY+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIEhlYWRpbmcgLSBNaW1pY1xuXG4uaDEgeyBAaW5jbHVkZSBoZWFkaW5nKGgxKTsgfVxuLmgyIHsgQGluY2x1ZGUgaGVhZGluZyhoMik7IH1cbi5oMyB7IEBpbmNsdWRlIGhlYWRpbmcoaDMpOyB9XG4uaDQgeyBAaW5jbHVkZSBoZWFkaW5nKGg0KTsgfVxuLmg1IHsgQGluY2x1ZGUgaGVhZGluZyhoNSk7IH1cbi5oNiB7IEBpbmNsdWRlIGhlYWRpbmcoaDYpOyB9XG4iLCIvLyBIaWRlIE9mZiBTY3JlZW5cbi8vXG4vLyBQb3NpdGlvbiBhbiBlbGVtZW50IG9mZi1zY3JlZW4gZm9yIHNjcmVlbi1yZWFkZXJzLlxuLy9cbi8vIE1hcmt1cDpcbi8vIC8vXG4vLyAvLyBNaXhpbjogSGlkZSBPZmYgU2NyZWVuXG4vLyAvLyBAaW5jbHVkZSBoaWRlLW9mZi1zY3JlZW4oKTtcbi8vIC8vXG4vLyAvLyBubyBwYXJhbWV0ZXJzIGF2YWlsYWJsZVxuLy8gLy9cbi8vIC5lbGVtZW50IHsgQGluY2x1ZGUgaGlkZS1vZmYtc2NyZWVuOyB9XG4vL1xuLy8gU3R5bGVndWlkZSBGdW5jdGlvbnMgLSBIaWRlIE9mZiBTY3JlZW5cblxuQG1peGluIGhpZGUtb2ZmLXNjcmVlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTEwMDAwcHg7XG4gIHRvcDogYXV0bztcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG4vLyBTaG93IE9uIFNjcmVlblxuLy9cbi8vIFJlc2V0IGEgcHJldmlvdXNseSBoaWRkZW4gb2JqZWN0IHZpYSBAbWl4aW4gaGlkZS1vZmYtc2NyZWVuXG4vL1xuLy8gTWFya3VwOlxuLy8gLy9cbi8vIC8vIE1peGluOiBTaG93IE9uIFNjcmVlblxuLy8gLy8gQGluY2x1ZGUgc2hvdy1vbi1zY3JlZW4oKTtcbi8vIC8vXG4vLyAvLyBubyBwYXJhbWV0ZXJzIGF2YWlsYWJsZVxuLy8gLy9cbi8vIC5lbGVtZW50IHsgQGluY2x1ZGUgc2hvdy1vbi1zY3JlZW47IH1cbi8vXG4vLyBTdHlsZWd1aWRlIEZ1bmN0aW9ucyAtIFNob3cgT24gU2NyZWVuXG5cbkBtaXhpbiBzaG93LW9uLXNjcmVlbiB7XG4gIHBvc2l0aW9uOiBpbmhlcml0O1xuICBsZWZ0OiBpbmhlcml0O1xuICB0b3A6IGluaGVyaXQ7XG4gIHdpZHRoOiBpbmhlcml0O1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIG92ZXJmbG93OiBpbmhlcml0O1xufVxuXG5cblxuLy8gQWJzb2x1dGUgQ2VudGVyXG4vL1xuLy8gUG9zaXRpb24gYW4gZWxlbWVudCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkgY2VudGVyZWQuXG4vL1xuLy8gTWFya3VwOlxuLy8gLy9cbi8vIC8vIE1peGluOiBBYnNvbHV0ZSBDZW50ZXJcbi8vIC8vIEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcigpO1xuLy8gLy9cbi8vIC8vIG5vIHBhcmFtZXRlcnMgYXZhaWxhYmxlXG4vLyAvLyBOb3RlOiBwYXJlbnQgZWxlbWVudCBzaG91bGQgdXNlIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vIC8vXG4vLyAuZWxlbWVudCB7IEBpbmNsdWRlIGFic29sdXRlLWNlbnRlcjsgfVxuLy9cbi8vIFN0eWxlZ3VpZGUgRnVuY3Rpb25zIC0gQWJzb2x1dGUgQ2VudGVyXG5cbkBtaXhpbiBhYnNvbHV0ZS1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5cbi8vIFZlcnRpY2FsIENlbnRlclxuLy9cbi8vIFBvc2l0aW9uIGFuIGVsZW1lbnQgdmVydGljYWxseSBjZW50ZXJlZC5cbi8vXG4vLyBNYXJrdXA6XG4vLyAvL1xuLy8gLy8gTWl4aW46IFZlcnRpY2FsIENlbnRlclxuLy8gLy8gQGluY2x1ZGUgdmVydGljYWwtY2VudGVyKCk7XG4vLyAvL1xuLy8gLy8gbm8gcGFyYW1ldGVycyBhdmFpbGFibGVcbi8vIC8vIE5vdGU6IHBhcmVudCBlbGVtZW50IHNob3VsZCB1c2UgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gLy9cbi8vIC5lbGVtZW50IHsgQGluY2x1ZGUgdmVydGljYWwtY2VudGVyOyB9XG4vL1xuLy8gU3R5bGVndWlkZSBGdW5jdGlvbnMgLSBWZXJ0aWNhbCBDZW50ZXJcblxuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuXG4vLyBIb3Jpem9udGFsIENlbnRlclxuLy9cbi8vIFBvc2l0aW9uIGFuIGVsZW1lbnQgdmVydGljYWxseSBjZW50ZXJlZC5cbi8vXG4vLyBNYXJrdXA6XG4vLyAvL1xuLy8gLy8gTWl4aW46IEhvcml6b250YWwgQ2VudGVyXG4vLyAvLyBAaW5jbHVkZSBob3Jpem9udGFsLWNlbnRlcigpO1xuLy8gLy9cbi8vIC8vIG5vIHBhcmFtZXRlcnMgYXZhaWxhYmxlXG4vLyAvLyBOb3RlOiBwYXJlbnQgZWxlbWVudCBzaG91bGQgdXNlIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vIC8vXG4vLyAuZWxlbWVudCB7IEBpbmNsdWRlIGhvcml6b250YWwtY2VudGVyOyB9XG4vL1xuLy8gU3R5bGVndWlkZSBGdW5jdGlvbnMgLSBIb3Jpem9udGFsIENlbnRlclxuXG5AbWl4aW4gaG9yaXpvbnRhbC1jZW50ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG5cbi8vIFJlc2V0IEJ1dHRvblxuLy9cbi8vIFplcm8gb3V0IGJ1dHRvbiBwcm9wZXJ0aWVzLlxuLy9cbi8vIE1hcmt1cDpcbi8vIC8vXG4vLyAvLyBNaXhpbjogUmVzZXQgQnV0dG9uXG4vLyAvLyBAaW5jbHVkZSByZXNldC1idXR0b24oKTtcbi8vIC8vXG4vLyAvLyBubyBwYXJhbWV0ZXJzIGF2YWlsYWJsZVxuLy8gLy9cbi8vIC5lbGVtZW50IHsgQGluY2x1ZGUgcmVzZXQtYnV0dG9uOyB9XG4vL1xuLy8gU3R5bGVndWlkZSBGdW5jdGlvbnMgLSBSZXNldCBCdXR0b25cblxuQG1peGluIHJlc2V0LWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cblxuLy8gUmVzZXQgTGlzdFxuLy9cbi8vIFplcm8gb3V0IGxpc3QgcHJvcGVydGllcy5cbi8vXG4vLyBNYXJrdXA6XG4vLyAvL1xuLy8gLy8gTWl4aW46IFJlc2V0IExpc3Rcbi8vIC8vIEBpbmNsdWRlIHJlc2V0LWxpc3QoKTtcbi8vIC8vXG4vLyAvLyBubyBwYXJhbWV0ZXJzIGF2YWlsYWJsZVxuLy8gLy9cbi8vIC5lbGVtZW50IHsgQGluY2x1ZGUgcmVzZXQtbGlzdDsgfVxuLy9cbi8vIFN0eWxlZ3VpZGUgRnVuY3Rpb25zIC0gUmVzZXQgTGlzdFxuXG5AbWl4aW4gcmVzZXQtbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuXG4vLyBSZXNldCBDb2x1bW5cbi8vXG4vLyBSZXNldHMgYSBjb2x1bW4ncyBndXR0ZXIgbWFyZ2luLlxuLy9cbi8vIE1hcmt1cDpcbi8vIC8vXG4vLyAvLyBNaXhpbjogUmVzZXQgQ29sdW1uXG4vLyAvLyBAaW5jbHVkZSByZXNldC1jb2x1bW4oKTtcbi8vIC8vXG4vLyAvLyBubyBwYXJhbWV0ZXJzIGF2YWlsYWJsZVxuLy8gLy9cbi8vIC5lbGVtZW50IHsgQGluY2x1ZGUgcmVzZXQtY29sdW1uOyB9XG4vL1xuLy8gU3R5bGVndWlkZSBGdW5jdGlvbnMgLSBSZXNldCBDb2x1bW5cblxuQG1peGluIHJlc2V0LWNvbHVtbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5cbi8vIFNwYW4gQ29sdW1uXG4vL1xuLy8gR3JpZCBzaXplIGZvciBzcGVjaWZpYyBjb2x1bW5zLlxuLy9cbi8vIE1hcmt1cDpcbi8vIC8vXG4vLyAvLyBNaXhpbjogU3BhbiBDb2x1bW5cbi8vIC8vIEBpbmNsdWRlIHNwYW4tY29sdW1uKCAkc3BhbiwgJHRvdGFsICk7XG4vLyAvL1xuLy8gLy8gJHNwYW46ICAgJ251bWJlcicgIHJlcXVpcmVkLiBob3cgbWFueSBjb2x1bW5zP1xuLy8gLy8gJHRvdGFsOiAgJ251bWJlcicgIG9wdGlvbmFsLiBkZWZhdWx0cyB0byAxMi5cbi8vIC8vXG4vLyAuZWxlbWVudCB7IEBpbmNsdWRlIHNwYW4tY29sdW1uKDYpOyB9XG4vL1xuLy8gU3R5bGVndWlkZSBGdW5jdGlvbnMgLSBTcGFuIENvbHVtblxuXG5AbWl4aW4gc3Bhbi1jb2x1bW4oJHNwYW4sICR0b3RhbDogMTIpIHtcblxuICAvLyBCYXNlIHNldHRpbmdzXG4gICRjb2x1bW4tYmFzZSAgOiA4NTsgLy8gaW4gcGl4ZWxzXG4gICRndXR0ZXItYmFzZSAgOiAyNDsgLy8gaW4gcGl4ZWxzXG5cbiAgLy8gQ2FsY3VsYXRlZCBzaXplc1xuICAkc3Bhbi1zaXplICA6ICgkY29sdW1uLWJhc2UgKiAkc3BhbikgKyAoJGd1dHRlci1iYXNlICogKCRzcGFuIC0gMSkpO1xuICAkdG90YWwtc2l6ZSA6ICgkY29sdW1uLWJhc2UgKiAkdG90YWwpICsgKCRndXR0ZXItYmFzZSAqICgkdG90YWwgLSAxKSk7XG5cbiAgd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc2l6ZSAvICR0b3RhbC1zaXplKTtcbiAgbWFyZ2luLWxlZnQ6IHBlcmNlbnRhZ2UoKCRndXR0ZXItYmFzZSkgLyAkdG90YWwtc2l6ZSk7XG5cbn1cblxuXG4vLyBTaGlmdCBDb2x1bW5cbi8vXG4vLyBPZmZzZXQgZWxlbWVudCBieSBjb2x1bW5zLlxuLy9cbi8vIE1hcmt1cDpcbi8vIC8vXG4vLyAvLyBNaXhpbjogU2hpZnQgQ29sdW1uXG4vLyAvLyBAaW5jbHVkZSBzaGlmdC1jb2x1bW4oICRzcGFuLCAkdG90YWwsICRkaXJlY3Rpb24pO1xuLy8gLy9cbi8vIC8vICRzcGFuOiAgICAgICdudW1iZXInICByZXF1aXJlZC4gaG93IG1hbnkgY29sdW1ucz9cbi8vIC8vICR0b3RhbDogICAgICdudW1iZXInICBvcHRpb25hbC4gZGVmYXVsdHMgdG8gMTIuXG4vLyAvLyAkZGlyZWN0aW9uOiAnc3RyaW5nJyAgb3B0aW9uYWwuIGRlZmF1bHRzIHRvIGxlZnRcbi8vIC8vXG4vLyAuZWxlbWVudCB7IEBpbmNsdWRlIHNoaWZ0LWNvbHVtbigxLCAxMiwgbGVmdCk7IH1cbi8vXG4vLyBTdHlsZWd1aWRlIEZ1bmN0aW9ucyAtIFNoaWZ0IENvbHVtblxuXG5AbWl4aW4gc2hpZnQtY29sdW1uKCRzcGFuLCAkdG90YWw6IDEyLCAkZGlyZWN0aW9uOiAnbGVmdCcpIHtcblxuICAvLyBCYXNlIHNldHRpbmdzXG4gICRjb2x1bW4tYmFzZSAgOiA4NTsgLy8gaW4gcGl4ZWxzXG4gICRndXR0ZXItYmFzZSAgOiAyNDsgLy8gaW4gcGl4ZWxzXG5cbiAgLy8gQ2FsY3VsYXRlZCBzaXplc1xuICAkc3Bhbi1zaXplICA6ICgkY29sdW1uLWJhc2UgKiAkc3BhbikgKyAoJGd1dHRlci1iYXNlICogKCRzcGFuIC0gMSkpO1xuICAkdG90YWwtc2l6ZSA6ICgkY29sdW1uLWJhc2UgKiAkdG90YWwpICsgKCRndXR0ZXItYmFzZSAqICgkdG90YWwgLSAxKSk7XG4gICRndXR0ZXItb3JpZzogcGVyY2VudGFnZSgkZ3V0dGVyLWJhc2UgLyAkdG90YWwtc2l6ZSk7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gJ3JpZ2h0JyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkZ3V0dGVyLW9yaWcgKyBwZXJjZW50YWdlKCRzcGFuLXNpemUgLyAkdG90YWwtc2l6ZSk7XG4gIH0gQGVsc2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAoJGd1dHRlci1vcmlnICogMikgKyBwZXJjZW50YWdlKCRzcGFuLXNpemUgLyAkdG90YWwtc2l6ZSk7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAkZ3V0dGVyLW9yaWcgKyBwZXJjZW50YWdlKCRzcGFuLXNpemUgLyAkdG90YWwtc2l6ZSk7XG4gICAgfVxuICB9XG5cbn1cblxuXG4vLyBSZXNldCBGb290ZXIgVGl0bGVcbi8vXG4vLyBDb252ZXJ0IGNvbGxhcHNlIHRpdGxlcyB0byBzdGFuZGFyZCBmb3IgdGFibGV0cysuXG4vL1xuLy8gTWFya3VwOlxuLy8gLy9cbi8vIC8vIE1peGluOiBSZXNldCBGb290ZXIgVGl0bGVcbi8vIC8vIEBpbmNsdWRlIHJlc2V0LWZvb3Rlci10aXRsZSgpO1xuLy8gLy9cbi8vIC5lbGVtZW50IHsgQGluY2x1ZGUgcmVzZXQtZm9vdGVyLXRpdGxlKCk7IH1cbi8vXG4vLyBTdHlsZWd1aWRlIEZ1bmN0aW9ucyAtIFJlc2V0IEZvb3RlciBUaXRsZVxuXG5AbWl4aW4gcmVzZXQtZm9vdGVyLXRpdGxlKCkge1xuICAucGFuZWxfX3RpdGxlIGEge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIEljb24gTGlua1xuLy9cbi8vIENyZWF0ZSBsaW5rIGJsb2NrIHdpdGggY3VzdG9tIGljb24uXG4vL1xuLy8gTWFya3VwOlxuLy8gLy9cbi8vIC8vIE1peGluOiBJY29uIExpbmtcbi8vIC8vIEBpbmNsdWRlIGljb24tbGluayggJGNvbG9yICk7XG4vLyAvL1xuLy8gLy8gJGNvbG9yOiAnc3RyaW5nJyAgb3B0aW9uYWwgY29sb3IgdmFsdWUgdG8gZmlsbCBpY29uXG4vLyAvL1xuLy8gLmVsZW1lbnQgeyBAaW5jbHVkZSBpY29uLWxpbmsoICNjMDAgKTsgfVxuLy9cbi8vIFN0eWxlZ3VpZGUgRnVuY3Rpb25zIC0gSWNvbiBMaW5rXG5cbkBtaXhpbiBpY29uLWxpbmsoJGNvbG9yOm51bGwpIHtcbiAgaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICBpID4gKiB7XG4gICAgQGluY2x1ZGUgYWJzb2x1dGUtY2VudGVyO1xuICAgIG1heC13aWR0aDogMjRweDtcbiAgfVxuXG4gIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgc3ZnICogeyBmaWxsOiAkY29sb3I7IH1cbiAgfVxuICBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG5cbi8vIEhlYWRpbmdcbi8vXG4vLyBBcHBseSBzdHlsZXMgdG8gYSBzcGVjaWZpYyBoZWFkaW5nIHNpemUuXG4vL1xuLy8gTWFya3VwOlxuLy8gLy9cbi8vIC8vIE1peGluOiBIZWFkaW5nXG4vLyAvLyBAaW5jbHVkZSBoZWFkaW5nKCAkbGV2ZWwgKTtcbi8vIC8vXG4vLyAvLyAkbGV2ZWw6ICdzdHJpbmcnXG4vLyAvL1xuLy8gLmVsZW1lbnQgeyBAaW5jbHVkZSBoZWFkaW5nKCBoMSApOyB9XG4vL1xuLy8gU3R5bGVndWlkZSBGdW5jdGlvbnMgLSBIZWFkaW5nXG5cbkBtaXhpbiBoZWFkaW5nKCRsZXZlbCkge1xuXG4gIC8vIEhlYWRpbmcgMVxuICBAaWYgJGxldmVsID09ICdoMScge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogNjRweCAwIDMycHg7XG4gICAgZm9udDogNzAwIDMycHggLyAxLjI1ICRmb250LXByaW1hcnk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICBtYXJnaW46IDk2cHggMCA0OHB4O1xuICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICBtYXJnaW46IDEyNHB4IDAgNjJweDtcbiAgICAgIGZvbnQtc2l6ZTogNjJweDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIDJcbiAgQGlmICRsZXZlbCA9PSAnaDInIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDQ4cHggMCAyNHB4O1xuICAgIGZvbnQ6IDcwMCAyNHB4IC8gMS4yNSAkZm9udC1zZWNvbmRhcnk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICBtYXJnaW46IDU2cHggMCAyOHB4O1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICBtYXJnaW46IDY0cHggMCAzMnB4O1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgM1xuICBAaWYgJGxldmVsID09ICdoMycge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogNDJweCAwIDIxcHg7XG4gICAgZm9udDogNjAwIDIxcHggLyAxLjI1ICRmb250LXNlY29uZGFyeTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgIG1hcmdpbjogNDhweCAwIDI0cHg7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgIG1hcmdpbjogNTZweCAwIDI4cHg7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyA0XG4gIEBpZiAkbGV2ZWwgPT0gJ2g0JyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAyOHB4IDAgMTlweDtcbiAgICBmb250OiA0MDAgMTlweCAvIDEuMjUgJGZvbnQtc2Vjb25kYXJ5O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgbWFyZ2luOiA0MnB4IDAgMjFweDtcbiAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgbWFyZ2luOiA0OHB4IDAgMjRweDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIDVcbiAgQGlmICRsZXZlbCA9PSAnaDUnIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDMycHggMCAxNnB4O1xuICAgIGZvbnQ6IDcwMCAxNnB4IC8gMS4yNSAkZm9udC1zZWNvbmRhcnk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICBtYXJnaW46IDI4cHggMCAxOXB4O1xuICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICBtYXJnaW46IDQycHggMCAyMXB4O1xuICAgICAgZm9udC1zaXplOiAyMXB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlYWRpbmcgNlxuICBAaWYgJGxldmVsID09ICdoNicge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMjhweCAwIDE0cHg7XG4gICAgZm9udDogNjAwIDE0cHggLyAxLjI1ICRmb250LXNlY29uZGFyeTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgIG1hcmdpbjogMzJweCAwIDE2cHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgIG1hcmdpbjogMjhweCAwIDE5cHg7XG4gICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgfVxuICB9XG5cbn1cbiIsIi8vIExpbmtcbi8vXG4vLyBUaGUgYSBlbGVtZW50IGlzIHVzdWFsbHkgcmVmZXJyZWQgdG8gYXMgYSBsaW5rLlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxhIGNsYXNzPVwie3ttb2RpZmllcl9jbGFzc319XCIgaHJlZj1cIiNcIiB0aXRsZT1cImxpbmsgdGl0bGVcIj5UZXh0IGxpbms8L2E+XG4vL1xuLy8gLnRlYXNlciAgIC0gSW5jcmVhc2VkIHdlaWdodCBmb3IgdGVhc2VyIGxpbmtzXG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIExpbmtcblxuYSB7XG5cbiAgLy8gZGVmYXVsdCBsaW5rcywgbm90IHZpc2l0ZWRcbiAgJjpsaW5rIHtcbiAgICBjb2xvcjogY29sb3IocHJpbWFyeSwgYmx1ZSk7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIGNvbG9yICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nLFxuICAgICAgYmFja2dyb3VuZCAkYmFzZS1hbmltYXRpb24tc3BlZWQgJGJhc2UtYW5pbWF0aW9uLWVhc2luZyxcbiAgICAgIGJveC1zaGFkb3cgJGJhc2UtYW5pbWF0aW9uLXNwZWVkICRiYXNlLWFuaW1hdGlvbi1lYXNpbmc7XG4gIH1cblxuICAvLyBsaW5rcyB0aGF0IGhhdmUgYmVlbiB2aXNpdGVkXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6IGNvbG9yKHNlY29uZGFyeSwgcHVycGxlKTtcbiAgfVxuXG4gIC8vIGxpbmtzIHRoYXQgYXJlIGhvdmVyZWRcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Ioc2Vjb25kYXJ5LCBvZmYtYmx1ZSk7XG4gICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IocHJpbWFyeSwgYmx1ZSksIDEwJSk7XG4gIH1cblxuICAvLyBsaW5rcyB0aGF0IGFyZSBpbiBmb2N1c1xuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHNlY29uZGFyeSwgZ29sZCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IGNvbG9yKHNlY29uZGFyeSwgZ29sZCk7XG4gICAgY29sb3I6IGxpZ2h0ZW4oY29sb3IocHJpbWFyeSwgYmx1ZSksIDEwJSk7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC8vIGxpbmtzIHRoYXQgYXJlIGFjdGl2ZWx5IGNsaWNrZWRcbiAgJjphY3RpdmUge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Ioc2Vjb25kYXJ5LCBnb2xkKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggY29sb3Ioc2Vjb25kYXJ5LCBnb2xkKTtcbiAgICBjb2xvcjogbGlnaHRlbihjb2xvcihwcmltYXJ5LCBibHVlKSwgMTAlKTtcbiAgfVxuXG5cbiAgLy8gdGVhc2VyIGxpbmtcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICYudGVhc2VyIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cblxuICAvLyBleHRlcm5hbCBsaW5rc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJlt0YXJnZXQ9J19ibGFuayddIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yNHB4O1xuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogMjRweDtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICAgIGJhY2tncm91bmQ6IGNvbG9yKHNlY29uZGFyeSwgb2ZmLWJsdWUpIHVybCgnLi4vaW1nL2ljb25zL2lfZXh0ZXJuYWwuc3ZnJykgbm8tcmVwZWF0IDUwJSA1MCUgLyAxNnB4IGF1dG87XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSAkYmFzZS1hbmltYXRpb24tc3BlZWQgJGJhc2UtYW5pbWF0aW9uLWVhc2luZyxcbiAgICAgICAgdHJhbnNmb3JtICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nO1xuICAgICAgei1pbmRleDogMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIHRlbCBsaW5rc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJltocmVmXj0ndGVsOiddIHsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG59XG4iLCIvLyBMaXN0XG4vL1xuLy8gRWxlbWVudCB0aGF0IGdyb3VwcyByZWxhdGVkIGNvbnRlbnQgdG9nZXRoZXIuIFRoZXkncmUgcGFydCBvZiBldmVyeWRheSBsaWZlIGFuZCBjb21lIGluIG11bHRpcGxlIGZvcm1hdHMuXG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIExpc3RcblxuXG4vLyBVbm9yZGVyZWQgTGlzdFxuLy9cbi8vIFRoZSB1bCBlbGVtZW50LCB0aGUgbmFtZSBmb3Igd2hpY2ggaXMgYW4gYWJicmV2aWF0aW9uIG9mIHVub3JkZXJlZCBsaXN0LCBpcyB1c2VkIHRvIGdyb3VwIGEgY29sbGVjdGlvbiBvZiBpdGVtcyB0b2dldGhlciBpbiBhIGxpc3QsIGJ1dCBpbiBhIHdheSB0aGF0IGRvZXNu4oCZdCBzdWdnZXN0IGFuIG9yZGVyIG9mIHByZWNlZGVuY2Ugb3IgaW1wb3J0YW5jZS5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8dWw+XG4vLyAgICAgPGxpPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0PC9saT5cbi8vICAgICA8bGk+Q29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0PC9saT5cbi8vICAgICA8bGk+SW50ZWdlciBtb2xlc3RpZSBsb3JlbSBhdCBtYXNzYTwvbGk+XG4vLyA8L3VsPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBMaXN0IC0gVW5vcmRlcmVkIExpc3RcblxudWwge1xuICBtYXJnaW46IDAgMCAxNHB4O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIG1hcmdpbi1ib3R0b206IDE5cHg7XG4gIH1cbn1cblxubGkge1xuICBtYXJnaW4tdG9wOiA4cHg7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxufVxuXG5cbi8vIE9yZGVyZWQgTGlzdFxuLy9cbi8vIFRoZSBvbCBlbGVtZW50IGlzIHNpbWlsYXIgdG8gdGhlIHVsIGVsZW1lbnQgaW4gdGhhdCBpdOKAmXMgdXNlZCB0byBncm91cCBhIGNvbGxlY3Rpb24gb2YgaXRlbXMgdG9nZXRoZXIgaW4gYSBsaXN0LlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxvbD5cbi8vICAgICA8bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ8L2xpPlxuLy8gICAgIDxsaT5Db25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQ8L2xpPlxuLy8gICAgIDxsaT5JbnRlZ2VyIG1vbGVzdGllIGxvcmVtIGF0IG1hc3NhPC9saT5cbi8vIDwvb2w+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIExpc3QgLSBPcmRlcmVkIExpc3Rcblxub2wge1xuICBtYXJnaW46IDAgMCAxNHB4O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIG1hcmdpbi1ib3R0b206IDE5cHg7XG4gIH1cbn1cblxuXG4vLyBEZWZpbml0aW9uIExpc3Rcbi8vXG4vLyBJZiB5b3Ugd2FudCB0byBsaXN0IGEgc2VyaWVzIG9mIGl0ZW1zIHRoYXQgZXNzZW50aWFsbHkgaGF2ZSBhIHRpdGxlIGFuZCBhIGRlc2NyaXB0aW9uIG9mIHNvbWUga2luZCAodGhhdCBpcywgZWFjaCBpdGVtIGhhcyB0d28gcGFydHMpLCB1c2UgdGhlIGRlZmluaXRpb24gbGlzdCBkbCBlbGVtZW50LlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxkbD5cbi8vICAgICA8ZHQ+RGVmaW5pdGlvbiBMaXN0PC9kdD5cbi8vICAgICA8ZGQ+QSBudW1iZXIgb2YgY29ubmVjdGVkIGl0ZW1zIG9yIG5hbWVzIHdyaXR0ZW4gb3IgcHJpbnRlZCBjb25zZWN1dGl2ZWx5LCB0eXBpY2FsbHkgb25lIGJlbG93IHRoZSBvdGhlci48L2RkPlxuLy8gICAgIDxkdD5UaGlzIGlzIGEgdGVybS48L2R0PlxuLy8gICAgIDxkZD5UaGlzIGlzIHRoZSBkZWZpbml0aW9uIG9mIHRoYXQgdGVybSwgd2hpY2ggYm90aCBsaXZlIGluIGEgZGwuPC9kZD5cbi8vICAgICA8ZHQ+SGVyZSBpcyBhbm90aGVyIHRlcm0uPC9kdD5cbi8vICAgICA8ZGQ+QW5kIGl0IGdldHMgYSBkZWZpbml0aW9uIHRvbywgd2hpY2ggaXMgdGhpcyBsaW5lLjwvZGQ+XG4vLyAgICAgPGR0PkhlcmUgaXMgdGVybSB0aGF0IHNoYXJlcyBhIGRlZmluaXRpb24gd2l0aCB0aGUgdGVybSBiZWxvdy48L2R0PlxuLy8gICAgIDxkZD5BbmQgaXQgZ2V0cyBhIGRlZmluaXRpb24gdG9vLCB3aGljaCBpcyB0aGlzIGxpbmUuPC9kZD5cbi8vIDwvZGw+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIExpc3QgLSBEZWZpbml0aW9uIExpc3RcblxuZGwge1xuICBtYXJnaW46IDAgMCAyOHB4O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIG1hcmdpbi1ib3R0b206IDM4cHg7XG4gIH1cbn1cblxuZHQge1xuICBtYXJnaW4tdG9wOiAyOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIG1hcmdpbi10b3A6IDM4cHg7XG4gIH1cblxuICAmOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXRvcDogMDsgfVxufVxuXG5kZCB7XG4gIG1hcmdpbjogMTZweCAwIDA7XG59XG4iLCIvLyBJbWFnZVxuLy9cbi8vIERpc3BsYXkgYSBwaG90b2dyYXBoL2dyYXBoaWMgaW4gdGhlIGNvbnRlbnQuIFlvdSBjYW4gb3B0aW9uYWxseSBjb25maWd1cmUgaW1hZ2Ugc291cmNlcyBmb3IgbXVsdGktZGV2aWNlIHN1cHBvcnQuXG4vL1xuLy8gTWFya3VwOlxuLy8gPGltZyBzcmM9XCJodHRwczovL3Vuc3BsYXNoLml0LzE0NDAvOTAwXCIgYWx0PVwiU2NlbmljIHZpZXcgb2YgbW91bnRhaW5zIGFuZCBvY2VhblwiIC8+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIEltYWdlXG5cbmltZywgcGljdHVyZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogcmFkaXVzKGJhc2UpO1xufVxuXG5cbi8vIEZpZ3VyZVxuLy9cbi8vIFRoZSBIVE1MIDxjb2RlPmZpZ3VyZTwvY29kZT4gZWxlbWVudCByZXByZXNlbnRzIHNlbGYtY29udGFpbmVkIGNvbnRlbnQsIGZyZXF1ZW50bHkgd2l0aCBhIGNhcHRpb24gKDxjb2RlPmZpZ2NhcHRpb248L2NvZGU+KSwgYW5kIGlzIHR5cGljYWxseSByZWZlcmVuY2VkIGFzIGEgc2luZ2xlIHVuaXQuXG4vL1xuLy8gTWFya3VwOlxuLy8gPGZpZ3VyZT5cbi8vICAgPGltZyBzcmM9XCJodHRwczovL3Vuc3BsYXNoLml0LzE0NDAvOTAwXCIgYWx0PVwiRGVzY3JpcHRpb24gYWJvdXQgdGhlIGZpZ3VyZVwiIC8+XG4vLyAgIDxmaWdjYXB0aW9uPkN1dGUga2l0dGVuIGxvb2tpbmcgcmlnaHQgYXQgeW91PC9maWdjYXB0aW9uPlxuLy8gPC9maWd1cmU+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIEZpZ3VyZVxuXG5maWd1cmUge1xuICBtYXJnaW46IDAgMCAyOHB4O1xuICBib3JkZXItcmFkaXVzOiByYWRpdXMoYmFzZSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzhweDtcbiAgfVxufVxuXG5maWdjYXB0aW9uIHtcbiAgbWFyZ2luOiAxNnB4IDAgMDtcbiAgY29sb3I6IGNvbG9yKHByaW1hcnksIGdyYXkpO1xuICBmb250LWZhbWlseTogJGZvbnQtc2Vjb25kYXJ5O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuXG4vLyBWaWRlb1xuLy9cbi8vIDxzcGFuIGNsYXNzPVwic2ctZmxhZyBzZy1mbGFnLWpzXCI+SlM8L3NwYW4+IERpc3BsYXlzIGEgdmlkZW8gZnJvbSBhbiBleHRlcm5hbCBzb3VyY2UsIHN1Y2ggYXMgWW91VHViZSBvciBWaW1lbywgd2l0aG91dCBmb3JjaW5nIHRoZSB1c2VyIHRvIGxlYXZlIHRoZSBjdXJyZW50IHdlYiBwYWdlLiBWaWRlb3MgcmVxdWlyZSB0aGUgPGNvZGU+Rml0VmlkczwvY29kZT4gbGlicmFyeSBhbmQgbmVlZCB0byBiZSBpbml0aWFsaXplZCB3aXRoIHRoZSA8Y29kZT4kKCdpZnJhbWVbc3JjKj1cInlvdXR1YmVcIl0nKS5wYXJlbnQoKS5maXRWaWRzKCk7PC9jb2RlPiBzY3JpcHQuXG4vL1xuLy8gTWFya3VwOlxuLy8gPGlmcmFtZSB3aWR0aD1cIjU2MFwiIGhlaWdodD1cIjMxNVwiIHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLzNLdTZzNGRjSlA4XCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBWaWRlb1xuXG5pZnJhbWUsIHZpZGVvIHtcbiAgbWFyZ2luOiAwIDAgMTRweDtcbiAgYm9yZGVyLXJhZGl1czogcmFkaXVzKGJhc2UpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIG1hcmdpbi1ib3R0b206IDE5cHg7XG4gIH1cbn1cbiIsIiRyYWRpdXM6IChcbiAgbm9uZTogMCxcbiAgYmFzZTogNHB4LFxuICBmdWxsOiA1MCUsXG4gIHBpbGw6IDk5OXB4XG4pO1xuIiwiLy8gUGFyYWdyYXBoXG4vL1xuLy8gVGhlIHAgZWxlbWVudCBpcyBvbmUgb2YgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBidWlsZGluZyBibG9ja3Mgb2YgSFRNTC5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8cD5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBOdWxsYW0gZWdlc3RhcyBvZGlvIHRvcnRvciwgc2VkIHZlaGljdWxhIG51bmMgbG9ib3J0aXMgcnV0cnVtLiBDcmFzIHVsdHJpY2VzIGx1Y3R1cyBwdXJ1cyBub24gbWFsZXN1YWRhLiBNb3JiaSBhY2N1bXNhbiwganVzdG8gdXQgdmVuZW5hdGlzIGFsaXF1ZXQsIHJpc3VzIGVsaXQgc29sbGljaXR1ZGluIHRlbGx1cywgZXUgdmVzdGlidWx1bSB2ZWxpdCBvZGlvIGEganVzdG8uPC9wPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBQYXJhZ3JhcGhcblxucCB7XG4gIG1hcmdpbjogMCAwIDI4cHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzhweDtcbiAgfVxufVxuXG5cbi8vIFN0cm9uZ1xuLy9cbi8vIFRoZSBIVE1MIDxjb2RlPnN0cm9uZzwvY29kZT4gZWxlbWVudCBnaXZlcyB0ZXh0IHN0cm9uZyBpbXBvcnRhbmNlLCBhbmQgaXMgdHlwaWNhbGx5IGRpc3BsYXllZCBpbiBib2xkLlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxwPldoZW4gZG9pbmcgeCBpdCBpcyA8c3Ryb25nPmltcGVyYXRpdmU8L3N0cm9uZz4gdG8gZG8geSBiZWZvcmUgcHJvY2VlZGluZy48L3A+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIFN0cm9uZ1xuXG5zdHJvbmcgeyBmb250LXdlaWdodDogNjAwOyB9XG5cblxuLy8gQ2FzaW5nXG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIENhc2luZ1xuXG4vLyBBbGwgY2Fwc1xuLy9cbi8vIENvbnZlcnQgYW55IHN0cmluZyBvZiB0ZXh0IGludG8gYWxsLWNhcHMgZ3JhY2VmdWxseSB3aXRob3V0IGltcGFjdGluZyBhY2Nlc3NpYmlsaXR5LlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxzcGFuIGNsYXNzPVwiY2FzaW5nLS1jYXBzXCI+U29tZSB0ZXh0IGxhYmVsPC9zcGFuPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBDYXNpbmcgLSBBbGwgY2Fwc1xuXG4uY2FzaW5nLS1jYXBzIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG5cbi8vIExvd2VyY2FzZVxuLy9cbi8vIENvbnZlcnQgYW55IHN0cmluZyBvZiB0ZXh0IGludG8gbG93ZXJjYXNlIGdyYWNlZnVsbHkgd2l0aG91dCBpbXBhY3RpbmcgYWNjZXNzaWJpbGl0eS5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8c3BhbiBjbGFzcz1cImNhc2luZy0tbG93ZXJjYXNlXCI+U29tZSB0ZXh0IGxhYmVsPC9zcGFuPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBDYXNpbmcgLSBMb3dlcmNhc2VcblxuLmNhc2luZy0tbG93ZXJjYXNlIHsgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuXG5cbi8vIE1hcmtcbi8vXG4vLyBUaGUgSFRNTCA8Y29kZT5tYXJrPC9jb2RlPiBlbGVtZW50IHJlcHJlc2VudHMgaGlnaGxpZ2h0ZWQgdGV4dCwgaS5lLiwgYSBydW4gb2YgdGV4dCBtYXJrZWQgZm9yIHJlZmVyZW5jZSBwdXJwb3NlLCBkdWUgdG8gaXRzIHJlbGV2YW5jZSBpbiBhIHBhcnRpY3VsYXIgY29udGV4dC5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8cD5XaGVuIGRvaW5nIHggaXQgaXMgPG1hcms+aW1wZXJhdGl2ZTwvbWFyaz4gdG8gZG8geSBiZWZvcmUgcHJvY2VlZGluZy48L3A+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIE1hcmtcblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHNlY29uZGFyeSwgZ29sZCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvcihzZWNvbmRhcnksIGdvbGQpO1xufVxuXG5cbi8vIEFiYnJldmlhdGlvblxuLy9cbi8vIFRoZSBIVE1MIDxjb2RlPmFiYnI8L2NvZGU+IGVsZW1lbnQgcmVwcmVzZW50cyBhbiBhYmJyZXZpYXRpb24gYW5kIG9wdGlvbmFsbHkgcHJvdmlkZXMgYSBmdWxsIGRlc2NyaXB0aW9uIGZvciBpdC4gSWYgcHJlc2VudCwgdGhlIHRpdGxlIGF0dHJpYnV0ZSBtdXN0IGNvbnRhaW4gdGhpcyBmdWxsIGRlc2NyaXB0aW9uIGFuZCBub3RoaW5nIGVsc2UuXG4vL1xuLy8gTWFya3VwOlxuLy8gPGFiYnIgdGl0bGU9XCJMYXVnaCBPdXQgTG91ZFwiPkxPTDwvYWJicj5cbi8vXG4vLyBTdHlsZWd1aWRlIEVsZW1lbnRzIC0gQWJicmV2aWF0aW9uXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbiAgZm9udC12YXJpYW50OiBub25lO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogaGVscDtcbn1cbiIsIi8vIEJsb2NrcXVvdGVcbi8vXG4vLyBUaGUgYmxvY2txdW90ZSBlbGVtZW50IGlzIGEgbWVjaGFuaXNtIGZvciBtYXJraW5nIHVwIGEgYmxvY2sgb2YgdGV4dCBxdW90ZWQgZnJvbSBhIHBlcnNvbiBvciBhbm90aGVyIGRvY3VtZW50IG9yIHNvdXJjZS5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8YmxvY2txdW90ZT5cbi8vICAgPHA+RGVzaWduIGlzIG5vdCBqdXN0IHdoYXQgaXQgbG9va3MgbGlrZSBhbmQgZmVlbHMgbGlrZS4gRGVzaWduIGlzIGhvdyBpdCB3b3Jrcy48L3A+XG4vLyAgIDxmb290ZXI+XG4vLyAgICAgU3RldmUgSm9ic1xuLy8gICA8L2Zvb3Rlcj5cbi8vIDwvYmxvY2txdW90ZT5cbi8vXG4vLyBTdHlsZWd1aWRlIEVsZW1lbnRzIC0gQmxvY2txdW90ZVxuXG5ibG9ja3F1b3RlIHtcbiAgcGFkZGluZzogMCAyOHB4O1xuICBtYXJnaW46IDU2cHggMDtcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCBjb2xvcihwcmltYXJ5LCBnb2xkKTtcbiAgZm9udC1mYW1pbHk6ICRmb250LXByaW1hcnk7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIHBhZGRpbmc6IDAgMzJweDtcbiAgICBtYXJnaW46IDY0cHggMDtcbiAgICBmb250LXNpemU6IDMycHg7XG4gIH1cbiAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIHBhZGRpbmc6IDAgMzhweDtcbiAgICBtYXJnaW46IDc2cHggMDtcbiAgfVxuXG4gIHAge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogY2xvc2UtcXVvdGU7XG4gICAgfVxuICB9XG5cbiAgLy8gY2l0YXRpb25cbiAgZm9vdGVyIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtc2Vjb25kYXJ5O1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDE2cHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDE0JztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxuXG59XG4iLCIvLyBMaW5lIFJ1bGVcbi8vXG4vLyBUaGUgaHIgZWxlbWVudCBjcmVhdGVzIGluIHRoZSBkb2N1bWVudCBhIGhpZ2hseSB2aXNpYmxlIGJyZWFrIHRoYXQgcmVuZGVycyBhcyBhIHNsaW0gaG9yaXpvbnRhbCBsaW5lIHJ1bm5pbmcgdGhlIHdpZHRoIG9mIHRoZSBhcmVhIHRvIHdoaWNoIGl04oCZcyBhcHBsaWVkLlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxociAvPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBMaW5lIFJ1bGVcblxuaHIge1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAzMnB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oY29sb3IocHJpbWFyeSwgZ3JheSksIDM1JSk7XG4gIGJvcmRlcjogMDtcbn1cbiIsIi8vIFRhYmxlXG4vL1xuLy8gQSB0YWJsZSBkaXNwbGF5cyBhIGNvbGxlY3Rpb25zIG9mIGRhdGEgZ3JvdXBlZCBpbnRvIHJvd3MuIEl0IGlzIE5PVCBtZWFudCB0byBiZSB1c2VkIGZvciBsYXlvdXQgY29tcG9zaXRpb24uXG4vL1xuLy8gTWFya3VwOlxuLy8gPHRhYmxlIGNsYXNzPVwie3ttb2RpZmllcl9jbGFzc319XCI+XG4vLyAgICAgPGNhcHRpb24+U2hlbGx5J3MgRGF1Z2h0ZXJzPC9jYXB0aW9uPlxuLy8gICAgIDx0aGVhZD5cbi8vICAgICAgICAgPHRyPlxuLy8gICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+TmFtZTwvdGg+XG4vLyAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5BZ2U8L3RoPlxuLy8gICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+QmlydGhkYXk8L3RoPlxuLy8gICAgICAgICA8L3RyPlxuLy8gICAgIDwvdGhlYWQ+XG4vLyAgICAgPHRib2R5PlxuLy8gICAgICAgICA8dHI+XG4vLyAgICAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5KYWNraWU8L3RoPlxuLy8gICAgICAgICAgICAgPHRkPjU8L3RkPlxuLy8gICAgICAgICAgICAgPHRkPkFwcmlsIDU8L3RkPlxuLy8gICAgICAgICA8L3RyPlxuLy8gICAgICAgICA8dHI+XG4vLyAgICAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5CZXRoPC90aD5cbi8vICAgICAgICAgICAgIDx0ZD44PC90ZD5cbi8vICAgICAgICAgICAgIDx0ZD5KYW51YXJ5IDE0PC90ZD5cbi8vICAgICAgICAgPC90cj5cbi8vICAgICA8L3Rib2R5PlxuLy8gPC90YWJsZT5cbi8vXG4vLyBTdHlsZWd1aWRlIEVsZW1lbnRzIC0gVGFibGVcblxuLy8gR2xvYmFsXG50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG5jYXB0aW9uIHtcbiAgY29sb3I6IGNvbG9yKHByaW1hcnksIGdyYXkpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50cjpob3ZlciB0aCxcbnRyOmhvdmVyIHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShjb2xvcihwcmltYXJ5LCBncmF5KSwgLjA1KTtcbn1cblxuLy8gSGVhZGVyXG50aGVhZCB7XG4gIHRoLCB0ZCB7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGNvbG9yKHByaW1hcnksIGN5YW4pO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IGNvbG9yKHByaW1hcnksIGJsdWUpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuLy8gQm9keVxudGJvZHkge1xuICB0aCwgdGQge1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcihwcmltYXJ5LCBibGFjayk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIHRoIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gIHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICB9XG59XG4iLCIvLyBTZWxlY3QgQm94XG4vL1xuLy8gVGhlIEhUTUwgPGNvZGU+c2VsZWN0PC9jb2RlPiBlbGVtZW50IHJlcHJlc2VudHMgYSBjb250cm9sIHRoYXQgcHJvdmlkZXMgYSBtZW51IG9mIG9wdGlvbnMuXG4vL1xuLy8gTWFya3VwOlxuLy8gPHNlbGVjdCBpZD1cInNlbGVjdElEXCIgbmFtZT1cInNlbGVjdElEXCI+XG4vLyAgIDxvcHRpb24gdmFsdWU9XCJvcHRpb25OYW1lXCI+U2VsZWN0IGFuIG9wdGlvbjwvb3B0aW9uPlxuLy8gICA8b3B0aW9uIHZhbHVlPVwib3B0aW9uTmFtZVwiPlJlZDwvb3B0aW9uPlxuLy8gICA8b3B0aW9uIHZhbHVlPVwib3B0aW9uTmFtZVwiPkJsdWU8L29wdGlvbj5cbi8vICAgPG9wdGlvbiB2YWx1ZT1cIm9wdGlvbk5hbWVcIj5QdXJwbGU8L29wdGlvbj5cbi8vIDwvc2VsZWN0PlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBGb3JtIC0gU2VsZWN0IEJveFxuXG5zZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0MXB4O1xuICBwYWRkaW5nOiA4cHggNDBweCA4cHggOHB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9pY29ucy9pX2NhcmV0LWRvd24uc3ZnJyk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMjRweCBhdXRvO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSA4cHgpIDUwJTtcbiAgYm9yZGVyOiAycHggc29saWQgY29sb3IocHJpbWFyeSwgZ3JheSk7XG4gIGJvcmRlci1yYWRpdXM6IHJhZGl1cyhiYXNlKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB0cmFuc2l0aW9uOlxuICAgIGJvcmRlciAkYmFzZS1hbmltYXRpb24tc3BlZWQgJGJhc2UtYW5pbWF0aW9uLWVhc2luZyxcbiAgICBib3gtc2hhZG93ICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICB9XG5cbiAgLy8gaG92ZXIgc3RhdGVcbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvcihwcmltYXJ5LCBibHVlKTtcbiAgfVxuXG4gIC8vIGZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3IocHJpbWFyeSwgYmx1ZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoY29sb3IocHJpbWFyeSwgYmx1ZSksIC4xNik7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG5cbi8vIFJhZGlvc1xuLy9cbi8vIFJhZGlvcyBtdXN0IHVzZSB0aGUgPGNvZGU+ZmllbGRzZXQ8L2NvZGU+IHRhZyBhbmQgc2hvdWxkIGluY2x1ZGUgPGNvZGU+JGlucHV0PC9jb2RlPiwgPGNvZGU+JGxhYmVsPC9jb2RlPiwgYW5kIDxjb2RlPiRpY29uPC9jb2RlPiBmaWVsZHMgZm9yIGVhY2ggb3B0aW9uLlxuLy9cbi8vIE1hcmt1cDpcbi8vIDxmaWVsZHNldCBjbGFzcz1cImZvcm1ibG9jayByYWRpb3NcIj5cbi8vICAgPGxlZ2VuZCBjbGFzcz1cImZvcm1ibG9ja19fbGFiZWxcIj5DaG9vc2UgWW91ciBGYXZvcml0ZTwvbGVnZW5kPlxuLy8gICA8ZGl2IGNsYXNzPVwiZm9ybWJsb2NrX19maWVsZFwiPlxuLy8gICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIj5cbi8vICAgICAgIDxpbnB1dCBjbGFzcz1cIm9wdGlvbl9faW5wdXRcIiBpZD1cInJhZGlvMVwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvcHRpb25zXCIgdmFsdWU9XCJ2YWx1ZTFcIj5cbi8vICAgICAgIDxsYWJlbCBjbGFzcz1cIm9wdGlvbl9fbGFiZWxcIiBmb3I9XCJyYWRpbzFcIj5SYWRpbyAxPC9sYWJlbD5cbi8vICAgICAgIDxpIGNsYXNzPVwib3B0aW9uX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuLy8gICAgIDwvZGl2PlxuLy8gICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIj5cbi8vICAgICAgIDxpbnB1dCBjbGFzcz1cIm9wdGlvbl9faW5wdXRcIiBpZD1cInJhZGlvMlwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvcHRpb25zXCIgdmFsdWU9XCJ2YWx1ZTJcIj5cbi8vICAgICAgIDxsYWJlbCBjbGFzcz1cIm9wdGlvbl9fbGFiZWxcIiBmb3I9XCJyYWRpbzJcIj5SYWRpbyAyPC9sYWJlbD5cbi8vICAgICAgIDxpIGNsYXNzPVwib3B0aW9uX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuLy8gICAgIDwvZGl2PlxuLy8gICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIj5cbi8vICAgICAgIDxpbnB1dCBjbGFzcz1cIm9wdGlvbl9faW5wdXRcIiBpZD1cInJhZGlvM1wiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvcHRpb25zXCIgdmFsdWU9XCJ2YWx1ZTNcIj5cbi8vICAgICAgIDxsYWJlbCBjbGFzcz1cIm9wdGlvbl9fbGFiZWxcIiBmb3I9XCJyYWRpbzNcIj5SYWRpbyAzPC9sYWJlbD5cbi8vICAgICAgIDxpIGNsYXNzPVwib3B0aW9uX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuLy8gICAgIDwvZGl2PlxuLy8gICA8L2Rpdj5cbi8vIDwvZmllbGRzZXQ+XG4vL1xuLy8gU3R5bGVndWlkZSBFbGVtZW50cyAtIEZvcm0gLSBSYWRpb3NcblxuLnJhZGlvcyB7XG5cbiAgLy8gbGVnZW5kXG4gIGxlZ2VuZCB7IEBleHRlbmQgJWxhYmVsOyB9XG5cbiAgLy8gb3B0aW9uc1xuICAub3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBvcHRpb24gaW5wdXRcbiAgICAmX19pbnB1dCB7IEBleHRlbmQgJWhpZGUtb2ZmLXNjcmVlbjsgfVxuXG4gICAgLy8gb3B0aW9uIGljb25cbiAgICAmX19pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGNvbG9yKHByaW1hcnksIGdyYXkpO1xuICAgICAgYm9yZGVyLXJhZGl1czogcmFkaXVzKGZ1bGwpO1xuICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgYm9yZGVyICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nLFxuICAgICAgICBib3gtc2hhZG93ICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nO1xuICAgICAgei1pbmRleDogMTtcblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICB0b3A6IDJweDtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICB0b3A6IDRweDtcbiAgICAgIH1cblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBtYXJnaW46IC01cHggMCAwIC01cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHByaW1hcnksIGJsdWUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiByYWRpdXMoZnVsbCk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICB0cmFuc2Zvcm0gJGJhc2UtYW5pbWF0aW9uLXNwZWVkICRiYXNlLWFuaW1hdGlvbi1lYXNpbmcsXG4gICAgICAgICBvcGFjaXR5ICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gb3B0aW9uIGxhYmVsXG4gICAgJl9fbGFiZWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLy8gZm9jdXMgc3RhdGVcbiAgICAmX19pbnB1dDpmb2N1cyArIC5vcHRpb25fX2xhYmVsICsgLm9wdGlvbl9faWNvbiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYShjb2xvcihwcmltYXJ5LCBibHVlKSwgLjE2KTtcblxuICAgICAgc3ZnIHBhdGgge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3aGVuIGhvdmVyZWRcbiAgICAmOmhvdmVyIC5vcHRpb25fX2ljb24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvcihwcmltYXJ5LCBibHVlKTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvcihzZWNvbmRhcnksIG9mZi1ibHVlKTtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihwcmltYXJ5LCBibHVlKTtcbiAgICAgICAgb3BhY2l0eTogLjI1O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC41KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3aGVuIGNoZWNrZWRcbiAgICAmX19pbnB1dDpjaGVja2VkICsgLm9wdGlvbl9fbGFiZWwgKyAub3B0aW9uX19pY29uIHtcbiAgICAgIGJvcmRlci1jb2xvcjogY29sb3IocHJpbWFyeSwgYmx1ZSk7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5cbi8vIENoZWNrYm94ZXNcbi8vXG4vLyBDaGVja2JveGVzIG11c3QgdXNlIHRoZSA8Y29kZT5maWVsZHNldDwvY29kZT4gdGFnIGFuZCBzaG91bGQgaW5jbHVkZSA8Y29kZT4kaW5wdXQ8L2NvZGU+LCA8Y29kZT4kbGFiZWw8L2NvZGU+LCBhbmQgPGNvZGU+JGljb248L2NvZGU+IGZpZWxkcyBmb3IgZWFjaCBvcHRpb24uXG4vL1xuLy8gTWFya3VwOlxuLy8gPGZpZWxkc2V0IGNsYXNzPVwiZm9ybWJsb2NrIGNoZWNrYm94ZXNcIj5cbi8vICAgPGxlZ2VuZCBjbGFzcz1cImZvcm1ibG9ja19fbGFiZWxcIj5DaGVjayB0aGVzZSBvdXQ8L2xlZ2VuZD5cbi8vICAgPGRpdiBjbGFzcz1cImZvcm1ibG9ja19fZmllbGRcIj5cbi8vICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uXCI+XG4vLyAgICAgICA8aW5wdXQgY2xhc3M9XCJvcHRpb25fX2lucHV0XCIgaWQ9XCJjaGVja2JveDFcIiB0eXBlPVwiY2hlY2tib3hcIj5cbi8vICAgICAgIDxsYWJlbCBjbGFzcz1cIm9wdGlvbl9fbGFiZWxcIiBmb3I9XCJjaGVja2JveDFcIj5DaGVja2JveCAxPC9sYWJlbD5cbi8vICAgICAgIDxpIGNsYXNzPVwib3B0aW9uX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4vLyAgICAgICAgIDxzdmcgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbi8vICAgICAgICAgICA8cGF0aCBkPVwiTTMsMSBMMTcsMSBMMTcsMSBDMTguMTA0NTY5NSwxIDE5LDEuODk1NDMwNSAxOSwzIEwxOSwxNyBMMTksMTcgQzE5LDE4LjEwNDU2OTUgMTguMTA0NTY5NSwxOSAxNywxOSBMMywxOSBMMywxOSBDMS44OTU0MzA1LDE5IDEsMTguMTA0NTY5NSAxLDE3IEwxLDMgTDEsMyBDMSwxLjg5NTQzMDUgMS44OTU0MzA1LDEgMywxIFpcIj48L3BhdGg+XG4vLyAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz1cIjQgMTEgOCAxNSAxNiA2XCI+PC9wb2x5bGluZT5cbi8vICAgICAgICAgPC9zdmc+XG4vLyAgICAgICA8L2k+XG4vLyAgICAgPC9kaXY+XG4vLyAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiPlxuLy8gICAgICAgPGlucHV0IGNsYXNzPVwib3B0aW9uX19pbnB1dFwiIGlkPVwiY2hlY2tib3gyXCIgdHlwZT1cImNoZWNrYm94XCI+XG4vLyAgICAgICA8bGFiZWwgY2xhc3M9XCJvcHRpb25fX2xhYmVsXCIgZm9yPVwiY2hlY2tib3gyXCI+Q2hlY2tib3ggMjwvbGFiZWw+XG4vLyAgICAgICA8aSBjbGFzcz1cIm9wdGlvbl9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuLy8gICAgICAgICA8c3ZnIHdpZHRoPVwiMjBweFwiIGhlaWdodD1cIjIwcHhcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+XG4vLyAgICAgICAgICAgPHBhdGggZD1cIk0zLDEgTDE3LDEgTDE3LDEgQzE4LjEwNDU2OTUsMSAxOSwxLjg5NTQzMDUgMTksMyBMMTksMTcgTDE5LDE3IEMxOSwxOC4xMDQ1Njk1IDE4LjEwNDU2OTUsMTkgMTcsMTkgTDMsMTkgTDMsMTkgQzEuODk1NDMwNSwxOSAxLDE4LjEwNDU2OTUgMSwxNyBMMSwzIEwxLDMgQzEsMS44OTU0MzA1IDEuODk1NDMwNSwxIDMsMSBaXCI+PC9wYXRoPlxuLy8gICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCI0IDExIDggMTUgMTYgNlwiPjwvcG9seWxpbmU+XG4vLyAgICAgICAgIDwvc3ZnPlxuLy8gICAgICAgPC9pPlxuLy8gICAgIDwvZGl2PlxuLy8gICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIj5cbi8vICAgICAgIDxpbnB1dCBjbGFzcz1cIm9wdGlvbl9faW5wdXRcIiBpZD1cImNoZWNrYm94M1wiIHR5cGU9XCJjaGVja2JveFwiPlxuLy8gICAgICAgPGxhYmVsIGNsYXNzPVwib3B0aW9uX19sYWJlbFwiIGZvcj1cImNoZWNrYm94M1wiPkNoZWNrYm94IDM8L2xhYmVsPlxuLy8gICAgICAgPGkgY2xhc3M9XCJvcHRpb25fX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbi8vICAgICAgICAgPHN2ZyB3aWR0aD1cIjIwcHhcIiBoZWlnaHQ9XCIyMHB4XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuLy8gICAgICAgICAgIDxwYXRoIGQ9XCJNMywxIEwxNywxIEwxNywxIEMxOC4xMDQ1Njk1LDEgMTksMS44OTU0MzA1IDE5LDMgTDE5LDE3IEwxOSwxNyBDMTksMTguMTA0NTY5NSAxOC4xMDQ1Njk1LDE5IDE3LDE5IEwzLDE5IEwzLDE5IEMxLjg5NTQzMDUsMTkgMSwxOC4xMDQ1Njk1IDEsMTcgTDEsMyBMMSwzIEMxLDEuODk1NDMwNSAxLjg5NTQzMDUsMSAzLDEgWlwiPjwvcGF0aD5cbi8vICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiNCAxMSA4IDE1IDE2IDZcIj48L3BvbHlsaW5lPlxuLy8gICAgICAgICA8L3N2Zz5cbi8vICAgICAgIDwvaT5cbi8vICAgICA8L2Rpdj5cbi8vICAgPC9kaXY+XG4vLyA8L2ZpZWxkc2V0PlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBGb3JtIC0gQ2hlY2tib3hlc1xuXG4uY2hlY2tib3hlcyB7XG5cbiAgLy8gbGVnZW5kXG4gIGxlZ2VuZCB7IEBleHRlbmQgJWxhYmVsOyB9XG5cbiAgLy8gb3B0aW9uc1xuICAub3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBvcHRpb24gaW5wdXRcbiAgICAmX19pbnB1dCB7IEBleHRlbmQgJWhpZGUtb2ZmLXNjcmVlbjsgfVxuXG4gICAgLy8gb3B0aW9uIGljb25cbiAgICAmX19pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMXB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGNvbG9yKHByaW1hcnksIGdyYXkpO1xuICAgICAgYm9yZGVyLXJhZGl1czogcmFkaXVzKGJhc2UpO1xuICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkYmFzZS1hbmltYXRpb24tc3BlZWQgJGJhc2UtYW5pbWF0aW9uLWVhc2luZztcbiAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgdG9wOiAycHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICBsZWZ0OiAtMnB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgICBzdmcgcGF0aCB7XG4gICAgICAgIGZpbGw6IG5vbmU7XG4gICAgICAgIHN0cm9rZTogY29sb3IocHJpbWFyeSwgYmx1ZSk7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMjtcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuICAgICAgICBzdHJva2UtZGFzaGFycmF5OiA3MXB4O1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogNzFweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuNnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgc3ZnIHBvbHlsaW5lIHtcbiAgICAgICAgZmlsbDogbm9uZTtcbiAgICAgICAgc3Ryb2tlOiBjb2xvcihwcmltYXJ5LCB3aGl0ZSk7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMjtcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuICAgICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAxOHB4O1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMThweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBvcHRpb24gbGFiZWxcbiAgICAmX19sYWJlbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgei1pbmRleDogMjtcbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvLyBmb2N1cyBzdGF0ZVxuICAgICZfX2lucHV0OmZvY3VzICsgLm9wdGlvbl9fbGFiZWwgKyAub3B0aW9uX19pY29uIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKGNvbG9yKHByaW1hcnksIGJsdWUpLCAuMTYpO1xuXG4gICAgICBzdmcgcGF0aCB7XG4gICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGhvdmVyIHN0YXRlXG4gICAgJjpob3ZlciAub3B0aW9uX19pY29uIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvcihzZWNvbmRhcnksIG9mZi1ibHVlKTtcblxuICAgICAgc3ZnIHBhdGgge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjaGVja2VkIHN0YXRlXG4gICAgJl9faW5wdXQ6Y2hlY2tlZCArIC5vcHRpb25fX2xhYmVsICsgLm9wdGlvbl9faWNvbiB7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yKHByaW1hcnksIGJsdWUpO1xuXG4gICAgICBzdmcgcGF0aCB7XG4gICAgICAgIGZpbGw6IGNvbG9yKHByaW1hcnksIGJsdWUpO1xuICAgICAgfVxuXG4gICAgICBzdmcgcG9seWxpbmUge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG59XG4iLCIvLyBJbnB1dFxuLy9cbi8vIFRoZSBIVE1MIDxjb2RlPmlucHV0PC9jb2RlPiBlbGVtZW50IGlzIHVzZWQgdG8gY3JlYXRlIGludGVyYWN0aXZlIGNvbnRyb2xzIGZvciB3ZWItYmFzZWQgZm9ybXMgaW4gb3JkZXIgdG8gYWNjZXB0IGRhdGEgZnJvbSB0aGUgdXNlci5cbi8vXG4vLyBNYXJrdXA6XG4vLyA8aW5wdXQgdHlwZT1cInRleHRcIiBpZD1cImlucHV0SURcIiBuYW1lPVwiaW5wdXRJRFwiIHBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXIuLi5cIiAvPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBGb3JtIC0gSW5wdXRcblxuaW5wdXQge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyOiAycHggc29saWQgY29sb3IocHJpbWFyeSwgZ3JheSk7XG4gIHRyYW5zaXRpb246XG4gICAgYm9yZGVyICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nLFxuICAgIGJveC1zaGFkb3cgJGJhc2UtYW5pbWF0aW9uLXNwZWVkICRiYXNlLWFuaW1hdGlvbi1lYXNpbmc7XG5cbiAgLy8gZm9jdXMgc3RhdGVcbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvcihwcmltYXJ5LCBibHVlKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYShjb2xvcihwcmltYXJ5LCBibHVlKSwgLjE2KTtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5cbiAgLy8gaG92ZXIgc3RhdGVcbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvcihwcmltYXJ5LCBibHVlKTtcbiAgfVxufVxuXG4vLyBEaXNhYmxlIGJ1aWx0LWluIHNlYXJjaCBpbnB1dCBmb3JtYXRzIGZvciBzdXBwb3J0ZWQgYnJvd3NlcnNcbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLy8gRGlzYWJsZSBidWlsdC1pbiBzcGlubmVyIGNvbnRyb2wgZm9yIHN1cHBvcnRlZCBicm93c2Vyc1xuaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cblxuXG4vLyBUZXh0YXJlYVxuLy9cbi8vIFRoZSBIVE1MIDxjb2RlPnRleHRhcmVhPC9jb2RlPiBlbGVtZW50IHJlcHJlc2VudHMgYSBtdWx0aS1saW5lIHBsYWluLXRleHQgZWRpdGluZyBjb250cm9sLlxuLy9cbi8vIE1hcmt1cDpcbi8vIDx0ZXh0YXJlYSBpZD1cImlucHV0SURcIiBuYW1lPVwiaW5wdXRJRFwiIHBsYWNlaG9sZGVyPVwicGxhY2Vob2xkZXIuLi5cIj48L3RleHRhcmVhPlxuLy9cbi8vIFN0eWxlZ3VpZGUgRWxlbWVudHMgLSBGb3JtIC0gVGV4dGFyZWFcblxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEyOHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIGNvbG9yKHByaW1hcnksIGdyYXkpO1xuICByZXNpemU6IHZlcnRpY2FsO1xuICB0cmFuc2l0aW9uOlxuICAgIGJvcmRlciAkYmFzZS1hbmltYXRpb24tc3BlZWQgJGJhc2UtYW5pbWF0aW9uLWVhc2luZyxcbiAgICBib3gtc2hhZG93ICRiYXNlLWFuaW1hdGlvbi1zcGVlZCAkYmFzZS1hbmltYXRpb24tZWFzaW5nO1xuXG4gIC8vIGZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3IocHJpbWFyeSwgYmx1ZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoY29sb3IocHJpbWFyeSwgYmx1ZSksIC4xNik7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC8vIGhvdmVyIHN0YXRlXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogY29sb3IocHJpbWFyeSwgYmx1ZSk7XG4gIH1cbn1cbiIsImFkZHJlc3Mge1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIG1hcmdpbjogMCAwIDE0cHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTlweDtcbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDEgLSBTRVRUSU5HU1xuLy8gR2xvYmFsIHZhcmlhYmxlcywgc2l0ZS13aWRlIHNldHRpbmdzLCBjb25maWcgc3dpdGNoZXMsIGV0Yy5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0ICcxLXNldHRpbmdzL2JvdXJib24vYm91cmJvbic7XG5AaW1wb3J0ICcxLXNldHRpbmdzL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJzEtc2V0dGluZ3MvY29sb3JzJztcbkBpbXBvcnQgJzEtc2V0dGluZ3MvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICcxLXNldHRpbmdzL2FuaW1hdGlvbnMnO1xuQGltcG9ydCAnMS1zZXR0aW5ncy9yYWRpdXMnO1xuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAyIC0gVE9PTFNcbi8vIFNpdGUtd2lkZSBtaXhpbnMgYW5kIGZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBvcnQgJzItdG9vbHMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJzItdG9vbHMvbWl4aW5zJztcbkBpbXBvcnQgJzItdG9vbHMvbWVkaWEtcXVlcmllcyc7XG5AaW1wb3J0ICcyLXRvb2xzL3BsYWNlaG9sZGVycyc7XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDMgLSBHRU5FUklDXG4vLyBMb3ctc3BlY2lmaWNpdHksIGZhci1yZWFjaGluZyBydWxlc2V0cyAoZS5nLiByZXNldHMpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQGltcG9ydCAnMy1nZW5lcmljL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICczLWdlbmVyaWMvYm94LXNpemluZyc7XG5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIDQgLSBCQVNFXG4vLyBVbmNsYXNzZWQgSFRNTCBlbGVtZW50cyAoZS5nLiBhIHt9LCBibG9ja3F1b3RlIHt9LCBhZGRyZXNzIHt9KVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBpbXBvcnQgJzQtYmFzZS9ib2R5JztcbkBpbXBvcnQgJzQtYmFzZS9mb3Jtcyc7XG5AaW1wb3J0ICc0LWJhc2UvaGVhZGluZ3MnO1xuQGltcG9ydCAnNC1iYXNlL2xpbmtzJztcbkBpbXBvcnQgJzQtYmFzZS9saXN0cyc7XG5AaW1wb3J0ICc0LWJhc2UvbWVkaWEnO1xuQGltcG9ydCAnNC1iYXNlL3BhcmFncmFwaHMnO1xuQGltcG9ydCAnNC1iYXNlL3F1b3Rlcyc7XG5AaW1wb3J0ICc0LWJhc2UvcnVsZXMnO1xuQGltcG9ydCAnNC1iYXNlL3RhYmxlcyc7XG5AaW1wb3J0ICc0LWJhc2Uvc2VsZWN0aW9ucyc7XG5AaW1wb3J0ICc0LWJhc2UvaW5wdXRzJztcbkBpbXBvcnQgJzQtYmFzZS9hZGRyZXNzZXMnO1xuXG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyA1IC0gUEFHRSBTRVRUSU5HU1xuLy8gRGVmYXVsdCBwYWdlIHNldHRpbmdzIGZvciBwcmludGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBwYWdlIHsgbWFyZ2luOiAyY207IH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuYSxcbmE6dmlzaXRlZCB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5hW2hyZWZdOmFmdGVyIHtcbiAgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJztcbn1cblxuYWJiclt0aXRsZV06YWZ0ZXIge1xuICBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJztcbn1cblxuYVtocmVmXj0nIyddOmFmdGVyLFxuYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG5wcmUge1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDtcbn1cbnByZSxcbmJsb2NrcXVvdGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG59XG5cbnRoZWFkIHtcbiAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xufVxuXG50cixcbmltZyB7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cblxucCxcbmgyLFxuaDMge1xuICBvcnBoYW5zOiAzO1xuICB3aWRvd3M6IDM7XG59XG5cbmgyLFxuaDMge1xuICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gNSAtIENVU1RPTSBQUklOVCBSVUxFU1xuLy8gVW5pcXVlIHNldHRpbmdzIHRvIG9wdGltaXplIHBhZ2VzIGZvciBwcmludGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuI2hlYWRlci1jb250YWluZXIsXG4jZm9vdGVyLWNvbnRhaW5lcixcbi5zaG9ydGN1dC0tbWFpbixcbi5zaG9ydGN1dC0taGVhZGVyLFxuLnBhZ2luYXRpb24sXG5zdmcsXG5pbWcgeyBkaXNwbGF5OiBub25lOyB9XG4iXX0= */
