/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0; }

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

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

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent; }

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */ }

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

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

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%; }

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none; }

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible; }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none; }

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em; }

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */ }

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

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto; }

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block; }

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item; }

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none; }

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

h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5 {
  font-family: "sofia-pro", sans-serif;
  line-height: 1.2;
  font-weight: 600; }

h1,
.h1 {
  font-size: 2rem;
  letter-spacing: 0.16rem;
  line-height: 1.4;
  text-align: center;
  padding-bottom: 3rem;
  margin-bottom: 3rem;
  background: url("../img/shape-heading.svg") center bottom no-repeat; }

h2,
.h2 {
  color: #A6CFB7;
  font-size: 1.5rem;
  text-transform: uppercase; }

h3,
.h3 {
  font-size: 1.8rem; }

h4,
.h4 {
  font-size: 1.5rem; }

h5,
.h5 {
  font-size: 1.3rem;
  font-weight: 300;
  letter-spacing: .1rem; }

p {
  margin: 1rem 0; }

a,
a:hover,
a:active,
a:focus,
a:visited {
  color: #4D4C46; }

hr {
  height: 1rem;
  border: none;
  background: url("../img/shape-hr.svg") center center no-repeat;
  background-size: cover;
  margin: 2rem 0; }
  .row:nth-child(2n) hr {
    background-image: url("../img/shape-hr-2.svg");
    height: 1.4rem; }

.entry-content img {
  margin: 0 0 1.5em 0; }

.alignleft,
img.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em; }

.alignright,
img.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em; }

.aligncenter,
img.aligncenter {
  display: block;
  clear: both;
  margin-right: auto;
  margin-left: auto; }

.wp-caption {
  margin-bottom: 1.5em;
  text-align: center; }

.wp-caption img {
  margin: 0;
  padding: 0;
  border: 0 none; }

.wp-caption p.wp-caption-text {
  margin: 0; }

.wp-smiley {
  max-height: 1em;
  margin: 0 !important; }

.gallery dl {
  margin: 0; }

.gallery-caption {
  margin: -1.5em 0 0 0; }

blockquote.left {
  float: left;
  width: 33%;
  margin-right: 20px;
  margin-left: 0;
  text-align: right; }

blockquote.right {
  float: right;
  width: 33%;
  margin-right: 0;
  margin-left: 20px;
  text-align: left; }

.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  z-index: 600; }

.header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1.4rem 0; }

.logo {
  margin: 0; }
  .logo a, .logo img {
    display: block;
    margin: 0 auto; }

.header__links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-transition: all .3s ease;
  transition: all .3s ease; }

.navigation {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; }
  .navigation ul {
    list-style: none;
    margin: 0;
    padding: 0 2rem 0 4rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
  .navigation li {
    display: inline-block;
    margin: 0 .6rem; }
    .navigation li:nth-child(1).current-menu-item a, .navigation li:nth-child(1) a:hover {
      background-image: url("../img/shape-menu-1.svg"); }
    .navigation li:nth-child(2).current-menu-item a, .navigation li:nth-child(2) a:hover {
      background-image: url("../img/shape-menu-2.svg"); }
    .navigation li:nth-child(3).current-menu-item a, .navigation li:nth-child(3) a:hover {
      background-image: url("../img/shape-menu-3.svg"); }
    .navigation li:nth-child(4).current-menu-item a, .navigation li:nth-child(4) a:hover {
      background-image: url("../img/shape-menu-4.svg"); }
    .navigation li:nth-child(5).current-menu-item a, .navigation li:nth-child(5) a:hover {
      background-image: url("../img/shape-menu-5.svg"); }
    .navigation li:nth-child(6).current-menu-item a, .navigation li:nth-child(6) a:hover {
      background-image: url("../img/shape-menu-6.svg"); }
  .navigation a {
    text-transform: lowercase;
    font-weight: 600;
    letter-spacing: .16rem;
    background-repeat: no-repeat;
    background-position: center bottom;
    display: inline-block;
    padding: .4rem 0; }
    .navigation a:link, .navigation a:visited, .navigation a:hover, .navigation a:active {
      color: #4D4C46;
      text-decoration: none; }

.header__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center; }
  .header__actions img {
    display: block;
    margin: 0; }
  .header__actions a {
    display: inline-block;
    margin-left: 1.6rem; }
    .header__actions a:link, .header__actions a:visited, .header__actions a:hover, .header__actions a:active {
      text-decoration: none; }
  .header__actions .button {
    margin-left: 3rem; }

.toggle-menu {
  position: fixed;
  right: 2rem;
  top: 2rem;
  display: none;
  width: 3rem;
  height: 3rem;
  background: url("../img/icon-menu.svg") center top no-repeat; }
  .is-menu-active .toggle-menu {
    background: url("../img/icon-close.svg") center top no-repeat; }

.footer {
  background: #F8F7F9;
  padding: 3rem 2rem;
  margin-top: auto; }
  .footer .container__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }

.footer__logo {
  margin-right: 3.5rem; }
  .footer__logo img {
    width: 20rem;
    height: auto; }

.footer__address p {
  margin-top: 0;
  letter-spacing: 0.16rem;
  font-weight: 600; }

.footer__languages {
  margin-left: auto; }

.container {
  width: 122rem;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
  padding: 0; }

.container__inner {
  padding: 0; }
  .container__inner::after {
    clear: both;
    content: "";
    display: block; }

.main {
  margin-top: 6.3rem; }

.article {
  width: 104rem;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
  padding: 6rem 2rem;
  letter-spacing: 0.12rem; }
  .article:first-of-type {
    padding-top: 3rem; }

.row {
  margin-left: -60px;
  margin-right: -60px;
  width: calc(100% + 120px); }
  .row::after {
    clear: both;
    content: "";
    display: block; }

.row__main {
  width: calc(58.33333% - 95px);
  float: left;
  margin-left: 60px; }

.row__aside {
  width: calc(41.66667% - 85px);
  float: left;
  margin-left: 60px;
  position: relative;
  min-height: 1px; }
  .row__aside a:link, .row__aside a:visited, .row__aside a:hover, .row__aside a:active {
    color: #A6CFB7;
    text-decoration: none; }
  .row__aside a:hover {
    text-decoration: underline; }

.visual-01 {
  padding-bottom: 16rem; }
  .visual-01::after {
    position: absolute;
    right: -12rem;
    bottom: 0;
    background: url("../img/visual-01.png") center center no-repeat;
    width: 64rem;
    height: 70rem;
    content: '';
    z-index: -1; }

.visual-02 {
  padding-bottom: 16rem; }
  .visual-02::after {
    position: absolute;
    left: -12rem;
    bottom: 0;
    background: url("../img/visual-02.png") center center no-repeat;
    width: 37rem;
    height: 67rem;
    content: '';
    z-index: -1; }

.visual-03 {
  padding-bottom: 10rem; }
  .visual-03::after {
    position: absolute;
    left: -10rem;
    bottom: -6rem;
    background: url("../img/visual-03.png") center center no-repeat;
    width: 15rem;
    height: 30rem;
    content: '';
    z-index: -1; }

.button {
  background: #A6CFB7;
  display: inline-block;
  text-transform: uppercase;
  font-size: 1.4rem;
  padding: 1rem 2rem;
  border: 1px solid #A6CFB7;
  -webkit-transition: all .3s ease;
  transition: all .3s ease;
  font-weight: 600;
  letter-spacing: 0.16rem; }
  .button:link, .button:visited, .button:hover, .button:active {
    color: #fff;
    text-decoration: none; }
  .button:hover {
    background: #fff;
    color: #A6CFB7; }
  .hero--home .button {
    background: none;
    border-color: #fff;
    color: #fff; }
    .hero--home .button:hover {
      border-color: #A6CFB7;
      background: #A6CFB7;
      color: #fff; }

.hero {
  background-size: cover;
  background-position: center center; }
  .hero.hero--home {
    height: 100vh;
    width: 100vw;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }

.hero--home h1 {
  font-size: 3.6rem;
  color: #fff;
  max-width: 90rem;
  text-align: center;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
  letter-spacing: 3px;
  font-weight: 600;
  background: none; }

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

html {
  font-size: 10px;
  overflow-y: scroll;
  width: 100%;
  height: 100%;
  -webkit-text-size-adjust: 100%; }

body {
  font-family: "sofia-pro", sans-serif;
  font-size: 1.5rem;
  font-weight: normal;
  line-height: 1.6;
  width: 100%;
  min-height: 100%;
  color: #4D4C46; }

.wrapper {
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-height: 100vh;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

img {
  max-width: 100%;
  height: auto; }

input[type=text],
button,
select,
textarea {
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none; }

.clearfix::after {
  clear: both;
  content: "";
  display: table; }

@media only screen and (max-width: 600px) {
  body {
    /* Small */ }
    h1,
    .h1 {
      font-size: 1.8rem; }
    hr {
      background-size: contain; }
      .footer .container__inner {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column; }
    .footer__logo {
      margin-bottom: 2rem; }
      .footer__logo img {
        width: 16rem; }
    .row__main {
      width: calc(100% - 100px);
      float: left;
      margin-left: 50px; }
    .row__aside {
      width: calc(100% - 100px);
      float: left;
      margin-left: 50px; }
    .hero--home h1 {
      font-size: 2.6rem;
      line-height: 1.2;
      letter-spacing: .2rem;
      padding: 0 6rem; } }

@media only screen and (max-width: 1040px) {
  body {
    /* Medium */ }
    .header__inner {
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }
    .header__links {
      position: fixed;
      visibility: hidden;
      opacity: 0;
      top: 6.3rem;
      left: 0;
      bottom: 0;
      width: 100%;
      background: #fff;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      padding-top: 3rem; }
    .is-menu-active .header__links {
      visibility: visible;
      opacity: 1; }
    .navigation {
      -webkit-box-flex: 0;
          -ms-flex: 0;
              flex: 0; }
      .navigation ul {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        width: 100%;
        text-align: center;
        margin-bottom: 3rem;
        padding: 0; }
      .navigation li {
        display: block;
        margin: 1rem 0; }
    .header__actions {
      width: 17rem;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }
      .header__actions a {
        margin: 0 1rem; }
      .header__actions .button {
        margin: 0;
        margin-top: 6rem; }
    .toggle-menu {
      display: block; } }

@media only screen and (min-width: 1200px) {
  body {
    /* Large */ } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2Jvd2VyL25vcm1hbGl6ZS5jc3Mvbm9ybWFsaXplLmNzcyIsInN0eWxlLmNzcyIsImJhc2UvX3R5cG9ncmFwaHkuc2NzcyIsInV0aWxzL192YXJzLnNjc3MiLCJiYXNlL193cC1kZWZhdWx0LnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19mb290ZXIuc2NzcyIsInBhZ2VzL19wYWdlLnNjc3MiLCJ1dGlscy9fbWl4aW5zLnNjc3MiLCIuLi8uLi9ib3dlci9uZWF0L2NvcmUvbmVhdC9taXhpbnMvX2dyaWQtY29udGFpbmVyLnNjc3MiLCIuLi8uLi9ib3dlci9uZWF0L2NvcmUvbmVhdC9taXhpbnMvX2dyaWQtY29sbGFwc2Uuc2NzcyIsIi4uLy4uL2Jvd2VyL25lYXQvY29yZS9uZWF0L21peGlucy9fZ3JpZC1jb2x1bW4uc2NzcyIsIi4uLy4uL2Jvd2VyL25lYXQvY29yZS9uZWF0L2Z1bmN0aW9ucy9fbmVhdC1mbG9hdC1kaXJlY3Rpb24uc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9faGVyby5zY3NzIiwic3R5bGUuc2NzcyIsIi4uLy4uL2Jvd2VyL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ib3dlci9uZWF0L2NvcmUvbmVhdC9taXhpbnMvX2dyaWQtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RUFBNEU7QUFFNUU7Z0ZBQ2dGO0FBRWhGOzs7R0FHRztBQUVIO0VBQ0Usa0JBQWlCO0VBQUcsT0FBTztFQUMzQiwrQkFBOEI7RUFBRyxPQUFPLEVBQ3pDOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0UsVUFBUyxFQUNWOztBQUVEOzs7R0FHRztBQUVIO0VBQ0UsZUFBYztFQUNkLGlCQUFnQixFQUNqQjs7QUFFRDtnRkFDZ0Y7QUFFaEY7OztHQUdHO0FBRUg7RUFDRSxnQ0FBdUI7VUFB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RCxZQ3BCMkI7TURxQjNCLGtCUlhZLEVJOEJiO0lPMUNEO01BWUcsa0JBQWlCO01BQ2pCLGlCQUFnQjtNQUNoQixzQkFBcUI7TUFDckIsZ0JBQWUsRUFFaEIsRVh1QkQ7O0FjTUM7RWRsQkY7SUFNUSxZQUFZLEVBTW5CO0lFN0NEO01BTUUseUJBQXVCO1VBQXZCLHNCQUF1QjtjQUF2Qix3QkFBdUIsRUFFeEI7SUFXRDtNQU9FLGdCQUFlO01BQ2YsbUJBQWtCO01BQ2xCLFdBQVU7TUFDVixZQUFXO01BQ1gsUUFBTztNQUNQLFVBQVM7TUFDVCxZQUFXO01BQ1gsaUJGekNVO01FMENWLDZCQUFzQjtNQUF0Qiw4QkFBc0I7VUFBdEIsMkJBQXNCO2NBQXRCLHVCQUFzQjtNQUN0Qix3QkFBMkI7VUFBM0IscUJBQTJCO2NBQTNCLDRCQUEyQjtNQUMzQixrQkFBaUIsRUFVbEI7SUFOQTtNQUVFLG9CQUFtQjtNQUNuQixXQUFVLEVBRVg7SUFHRjtNQUlFLG9CQUFPO1VBQVAsWUFBTztjQUFQLFFBQU8sRUFtRlI7TUF2RkQ7UUFlRyw2QkFBc0I7UUFBdEIsOEJBQXNCO1lBQXRCLDJCQUFzQjtnQkFBdEIsdUJBQXNCO1FBQ3RCLFlBQVc7UUFDWCxtQkFBa0I7UUFDbEIsb0JBQW1CO1FBQ25CLFdBQVUsRUFFWDtNQXJCRjtRQTRCRyxlQUFjO1FBQ2QsZUFBYyxFQXNDZjtJQXNCRjtNQUtFLGFBQVk7TUFDWixvQkFBZTtVQUFmLGdCQUFlO01BQ2YseUJBQXVCO1VBQXZCLHNCQUF1QjtjQUF2Qix3QkFBdUIsRUFpQ3hCO01BeENEO1FBb0JHLGVBQWMsRUFVZjtNQTlCRjtRQW9DRyxVQUFTO1FBQ1QsaUJBQWdCLEVBRWpCO0lBR0Y7TUFjRSxlQUFjLEVBRWYsRUZ0SkE7O0FjTUM7RWRsQkY7SUFVUSxXQUFXLEVBRWxCLEVBQUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovIH1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlOyB9XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtOyB9XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtOyB9XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi8gfVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgfVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBib2R5IHtcbiAgICAvKiBTbWFsbCAqLyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDQwcHgpIHtcbiAgYm9keSB7XG4gICAgLyogTWVkaXVtICovIH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkge1xuICBib2R5IHtcbiAgICAvKiBMYXJnZSAqLyB9IH1cblxuaDEsXG4uaDEsXG5oMixcbi5oMixcbmgzLFxuLmgzLFxuaDQsXG4uaDQsXG5oNSxcbi5oNSB7XG4gIGZvbnQtZmFtaWx5OiBcInNvZmlhLXByb1wiLCBzYW5zLXNlcmlmO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbmgxLFxuLmgxIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4xNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3NoYXBlLWhlYWRpbmcuc3ZnXCIpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBoMSxcbiAgICAuaDEge1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07IH0gfVxuXG5oMixcbi5oMiB7XG4gIGNvbG9yOiAjQTZDRkI3O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG5oMyxcbi5oMyB7XG4gIGZvbnQtc2l6ZTogMS44cmVtOyB9XG5cbmg0LFxuLmg0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07IH1cblxuaDUsXG4uaDUge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4xcmVtOyB9XG5cbnAge1xuICBtYXJnaW46IDFyZW0gMDsgfVxuXG5hLFxuYTpob3ZlcixcbmE6YWN0aXZlLFxuYTpmb2N1cyxcbmE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjNEQ0QzQ2OyB9XG5cbmhyIHtcbiAgaGVpZ2h0OiAxcmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9zaGFwZS1oci5zdmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIG1hcmdpbjogMnJlbSAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBociB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IH0gfVxuICAucm93Om50aC1jaGlsZCgybikgaHIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9zaGFwZS1oci0yLnN2Z1wiKTtcbiAgICBoZWlnaHQ6IDEuNHJlbTsgfVxuXG4uZW50cnktY29udGVudCBpbWcge1xuICBtYXJnaW46IDAgMCAxLjVlbSAwOyB9XG5cbi5hbGlnbmxlZnQsXG5pbWcuYWxpZ25sZWZ0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVlbTsgfVxuXG4uYWxpZ25yaWdodCxcbmltZy5hbGlnbnJpZ2h0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi1sZWZ0OiAxLjVlbTsgfVxuXG4uYWxpZ25jZW50ZXIsXG5pbWcuYWxpZ25jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLndwLWNhcHRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi53cC1jYXB0aW9uIGltZyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwIG5vbmU7IH1cblxuLndwLWNhcHRpb24gcC53cC1jYXB0aW9uLXRleHQge1xuICBtYXJnaW46IDA7IH1cblxuLndwLXNtaWxleSB7XG4gIG1heC1oZWlnaHQ6IDFlbTtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cblxuLmdhbGxlcnkgZGwge1xuICBtYXJnaW46IDA7IH1cblxuLmdhbGxlcnktY2FwdGlvbiB7XG4gIG1hcmdpbjogLTEuNWVtIDAgMCAwOyB9XG5cbmJsb2NrcXVvdGUubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogMzMlO1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG5ibG9ja3F1b3RlLnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICB3aWR0aDogMzMlO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHotaW5kZXg6IDYwMDsgfVxuXG4uaGVhZGVyX19pbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuNHJlbSAwOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gICAgLmhlYWRlcl9faW5uZXIge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuXG4ubG9nbyB7XG4gIG1hcmdpbjogMDsgfVxuICAubG9nbyBhLCAubG9nbyBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5oZWFkZXJfX2xpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gICAgLmhlYWRlcl9fbGlua3Mge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRvcDogNi4zcmVtO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gICAgLmlzLW1lbnUtYWN0aXZlIC5oZWFkZXJfX2xpbmtzIHtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBvcGFjaXR5OiAxOyB9IH1cblxuLm5hdmlnYXRpb24ge1xuICBmbGV4OiAxOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgZmxleDogMDsgfSB9XG4gIC5uYXZpZ2F0aW9uIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDJyZW0gMCA0cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDQwcHgpIHtcbiAgICAgIC5uYXZpZ2F0aW9uIHVsIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5uYXZpZ2F0aW9uIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIC42cmVtOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDQwcHgpIHtcbiAgICAgIC5uYXZpZ2F0aW9uIGxpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwOyB9IH1cbiAgICAubmF2aWdhdGlvbiBsaTpudGgtY2hpbGQoMSkuY3VycmVudC1tZW51LWl0ZW0gYSwgLm5hdmlnYXRpb24gbGk6bnRoLWNoaWxkKDEpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NoYXBlLW1lbnUtMS5zdmdcIik7IH1cbiAgICAubmF2aWdhdGlvbiBsaTpudGgtY2hpbGQoMikuY3VycmVudC1tZW51LWl0ZW0gYSwgLm5hdmlnYXRpb24gbGk6bnRoLWNoaWxkKDIpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NoYXBlLW1lbnUtMi5zdmdcIik7IH1cbiAgICAubmF2aWdhdGlvbiBsaTpudGgtY2hpbGQoMykuY3VycmVudC1tZW51LWl0ZW0gYSwgLm5hdmlnYXRpb24gbGk6bnRoLWNoaWxkKDMpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NoYXBlLW1lbnUtMy5zdmdcIik7IH1cbiAgICAubmF2aWdhdGlvbiBsaTpudGgtY2hpbGQoNCkuY3VycmVudC1tZW51LWl0ZW0gYSwgLm5hdmlnYXRpb24gbGk6bnRoLWNoaWxkKDQpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NoYXBlLW1lbnUtNC5zdmdcIik7IH1cbiAgICAubmF2aWdhdGlvbiBsaTpudGgtY2hpbGQoNSkuY3VycmVudC1tZW51LWl0ZW0gYSwgLm5hdmlnYXRpb24gbGk6bnRoLWNoaWxkKDUpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NoYXBlLW1lbnUtNS5zdmdcIik7IH1cbiAgICAubmF2aWdhdGlvbiBsaTpudGgtY2hpbGQoNikuY3VycmVudC1tZW51LWl0ZW0gYSwgLm5hdmlnYXRpb24gbGk6bnRoLWNoaWxkKDYpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1nL3NoYXBlLW1lbnUtNi5zdmdcIik7IH1cbiAgLm5hdmlnYXRpb24gYSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMTZyZW07XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgYm90dG9tO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAuNHJlbSAwOyB9XG4gICAgLm5hdmlnYXRpb24gYTpsaW5rLCAubmF2aWdhdGlvbiBhOnZpc2l0ZWQsIC5uYXZpZ2F0aW9uIGE6aG92ZXIsIC5uYXZpZ2F0aW9uIGE6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjNEQ0QzQ2O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5oZWFkZXJfX2FjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gICAgLmhlYWRlcl9fYWN0aW9ucyB7XG4gICAgICB3aWR0aDogMTdyZW07XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG4gIC5oZWFkZXJfX2FjdGlvbnMgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7IH1cbiAgLmhlYWRlcl9fYWN0aW9ucyBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNnJlbTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSB7XG4gICAgICAuaGVhZGVyX19hY3Rpb25zIGEge1xuICAgICAgICBtYXJnaW46IDAgMXJlbTsgfSB9XG4gICAgLmhlYWRlcl9fYWN0aW9ucyBhOmxpbmssIC5oZWFkZXJfX2FjdGlvbnMgYTp2aXNpdGVkLCAuaGVhZGVyX19hY3Rpb25zIGE6aG92ZXIsIC5oZWFkZXJfX2FjdGlvbnMgYTphY3RpdmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5oZWFkZXJfX2FjdGlvbnMgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDNyZW07IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNDBweCkge1xuICAgICAgLmhlYWRlcl9fYWN0aW9ucyAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA2cmVtOyB9IH1cblxuLnRvZ2dsZS1tZW51IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMnJlbTtcbiAgdG9wOiAycmVtO1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaWNvbi1tZW51LnN2Z1wiKSBjZW50ZXIgdG9wIG5vLXJlcGVhdDsgfVxuICAuaXMtbWVudS1hY3RpdmUgLnRvZ2dsZS1tZW51IHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvaWNvbi1jbG9zZS5zdmdcIikgY2VudGVyIHRvcCBuby1yZXBlYXQ7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDQwcHgpIHtcbiAgICAudG9nZ2xlLW1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4uZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogI0Y4RjdGOTtcbiAgcGFkZGluZzogM3JlbSAycmVtO1xuICBtYXJnaW4tdG9wOiBhdXRvOyB9XG4gIC5mb290ZXIgLmNvbnRhaW5lcl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAuZm9vdGVyIC5jb250YWluZXJfX2lubmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5mb290ZXJfX2xvZ28ge1xuICBtYXJnaW4tcmlnaHQ6IDMuNXJlbTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLmZvb3Rlcl9fbG9nbyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9IH1cbiAgLmZvb3Rlcl9fbG9nbyBpbWcge1xuICAgIHdpZHRoOiAyMHJlbTtcbiAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAuZm9vdGVyX19sb2dvIGltZyB7XG4gICAgICAgIHdpZHRoOiAxNnJlbTsgfSB9XG5cbi5mb290ZXJfX2FkZHJlc3MgcCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2cmVtO1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5mb290ZXJfX2xhbmd1YWdlcyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG5cbi5jb250YWluZXIge1xuICB3aWR0aDogMTIycmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgcGFkZGluZzogMDsgfVxuXG4uY29udGFpbmVyX19pbm5lciB7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLmNvbnRhaW5lcl9faW5uZXI6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5tYWluIHtcbiAgbWFyZ2luLXRvcDogNi4zcmVtOyB9XG5cbi5hcnRpY2xlIHtcbiAgd2lkdGg6IDEwNHJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gIHBhZGRpbmc6IDZyZW0gMnJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTJyZW07IH1cbiAgLmFydGljbGU6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgcGFkZGluZy10b3A6IDNyZW07IH1cblxuLnJvdyB7XG4gIG1hcmdpbi1sZWZ0OiAtNjBweDtcbiAgbWFyZ2luLXJpZ2h0OiAtNjBweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDEyMHB4KTsgfVxuICAucm93OjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucm93X19tYWluIHtcbiAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gOTVweCk7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogNjBweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLnJvd19fbWFpbiB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogNTBweDsgfSB9XG5cbi5yb3dfX2FzaWRlIHtcbiAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gODVweCk7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogNjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIC5yb3dfX2FzaWRlIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMDBweCk7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4OyB9IH1cbiAgLnJvd19fYXNpZGUgYTpsaW5rLCAucm93X19hc2lkZSBhOnZpc2l0ZWQsIC5yb3dfX2FzaWRlIGE6aG92ZXIsIC5yb3dfX2FzaWRlIGE6YWN0aXZlIHtcbiAgICBjb2xvcjogI0E2Q0ZCNztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnJvd19fYXNpZGUgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnZpc3VhbC0wMSB7XG4gIHBhZGRpbmctYm90dG9tOiAxNnJlbTsgfVxuICAudmlzdWFsLTAxOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtMTJyZW07XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy92aXN1YWwtMDEucG5nXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHdpZHRoOiA2NHJlbTtcbiAgICBoZWlnaHQ6IDcwcmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHotaW5kZXg6IC0xOyB9XG5cbi52aXN1YWwtMDIge1xuICBwYWRkaW5nLWJvdHRvbTogMTZyZW07IH1cbiAgLnZpc3VhbC0wMjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMTJyZW07XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy92aXN1YWwtMDIucG5nXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHdpZHRoOiAzN3JlbTtcbiAgICBoZWlnaHQ6IDY3cmVtO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHotaW5kZXg6IC0xOyB9XG5cbi52aXN1YWwtMDMge1xuICBwYWRkaW5nLWJvdHRvbTogMTByZW07IH1cbiAgLnZpc3VhbC0wMzo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMTByZW07XG4gICAgYm90dG9tOiAtNnJlbTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvdmlzdWFsLTAzLnBuZ1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICB3aWR0aDogMTVyZW07XG4gICAgaGVpZ2h0OiAzMHJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICB6LWluZGV4OiAtMTsgfVxuXG4uYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogI0E2Q0ZCNztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCAjQTZDRkI3O1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE2cmVtOyB9XG4gIC5idXR0b246bGluaywgLmJ1dHRvbjp2aXNpdGVkLCAuYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY29sb3I6ICNBNkNGQjc7IH1cbiAgLmhlcm8tLWhvbWUgLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgICAuaGVyby0taG9tZSAuYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI0E2Q0ZCNztcbiAgICAgIGJhY2tncm91bmQ6ICNBNkNGQjc7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuXG4uaGVybyB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7IH1cbiAgLmhlcm8uaGVyby0taG9tZSB7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmhlcm8tLWhvbWUgaDEge1xuICBmb250LXNpemU6IDMuNnJlbTtcbiAgY29sb3I6ICNmZmY7XG4gIG1heC13aWR0aDogOTByZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgIC5oZXJvLS1ob21lIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMi42cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAuMnJlbTtcbiAgICAgIHBhZGRpbmc6IDAgNnJlbTsgfSB9XG5cbioge1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwic29maWEtcHJvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS42O1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgY29sb3I6ICM0RDRDNDY7IH1cblxuLndyYXBwZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bzsgfVxuXG5pbnB1dFt0eXBlPXRleHRdLFxuYnV0dG9uLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IHRhYmxlOyB9XG4iLCIlaGVhZGluZy10ZXh0IHtcblx0Zm9udC1mYW1pbHk6ICRoZWFkaW5nLXRleHQ7XG5cdGxpbmUtaGVpZ2h0OiAxLjI7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbmgxLFxuLmgxLFxuaDIsXG4uaDIsXG5oMyxcbi5oMyxcbmg0LFxuLmg0LFxuaDUsXG4uaDUge1xuICAgIEBleHRlbmQgJWhlYWRpbmctdGV4dDtcbn1cblxuaDEsXG4uaDEge1xuXHRmb250LXNpemU6IDJyZW07XG5cdGxldHRlci1zcGFjaW5nOiAwLjE2cmVtO1xuXHRsaW5lLWhlaWdodDogMS40O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmctYm90dG9tOiAzcmVtO1xuXHRtYXJnaW4tYm90dG9tOiAzcmVtO1xuXHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9zaGFwZS1oZWFkaW5nLnN2ZycpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0O1xuXG5cdEBpbmNsdWRlIGdyaWQtbWVkaWEoJHNtYWxsKSB7XG5cdFx0Zm9udC1zaXplOiAxLjhyZW07XG5cdH1cbn1cblxuaDIsXG4uaDIge1xuXHRjb2xvcjogJGdyZWVuO1xuXHRmb250LXNpemU6IDEuNXJlbTtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaDMsXG4uaDMge1xuXHRmb250LXNpemU6IDEuOHJlbTtcbn1cblxuaDQsXG4uaDQge1xuXHRmb250LXNpemU6IDEuNXJlbTtcbn1cblxuaDUsXG4uaDUge1xuXHRmb250LXNpemU6IDEuM3JlbTtcblx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0bGV0dGVyLXNwYWNpbmc6IC4xcmVtO1xufVxuXG5wIHtcbiAgICBtYXJnaW46IDFyZW0gMDtcbn1cblxuYSxcbmE6aG92ZXIsXG5hOmFjdGl2ZSxcbmE6Zm9jdXMsXG5hOnZpc2l0ZWQge1xuXHRjb2xvcjogJGJsYWNrO1xufVxuXG5hOmhvdmVyIHtcblxufVxuXG5ociB7XG5cdGhlaWdodDogMXJlbTtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9zaGFwZS1oci5zdmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0bWFyZ2luOiAycmVtIDA7XG5cblx0QGluY2x1ZGUgZ3JpZC1tZWRpYSgkc21hbGwpIHtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG5cdH1cblxuXHQucm93Om50aC1jaGlsZCgybikgJiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvc2hhcGUtaHItMi5zdmcnKTtcblx0XHRoZWlnaHQ6IDEuNHJlbTtcblx0fVxufVxuIiwiLy8gVmFyaWFibGVzXG4kd2hpdGU6ICNmZmY7XG4kYmxhY2s6ICM0RDRDNDY7XG5cbiRncmV5LWxpZ2h0OiAjRjhGN0Y5O1xuXG4kZ3JlZW46ICNBNkNGQjc7XG4kZ3JlZW4tZGFyazogIzc1QkI5MTtcblxuLy8gRm9udHNcbiRuYXYtdGV4dDogXCJzb2ZpYS1wcm9cIiwgc2Fucy1zZXJpZjtcbiRoZWFkaW5nLXRleHQ6IFwic29maWEtcHJvXCIsIHNhbnMtc2VyaWY7XG4kYm9keS10ZXh0OiBcInNvZmlhLXByb1wiLCBzYW5zLXNlcmlmO1xuXG4vLyBHcmlkXG4kb3V0ZXItcGFkZGluZzogMnJlbTtcbiRtYXgtd2lkdGg6IDExOHJlbSAhZGVmYXVsdDtcblxuJG5lYXQtZ3JpZDogKFxuICBjb2x1bW5zOiAxMixcbiAgZ3V0dGVyOiA2MHB4LFxuKTtcblxuLy9CcmVha3BvaW50c1xuJHNtYWxsOiAoXG4gIGNvbHVtbnM6IDEyLFxuICBndXR0ZXI6IDUwcHgsXG4gIG1lZGlhOiAnb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSdcbik7XG5cbiRtZWRpdW06IChcbiAgY29sdW1uczogMTIsXG4gIGd1dHRlcjogNTBweCxcbiAgbWVkaWE6ICdvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTA0MHB4KSdcbik7XG5cbiRsYXJnZTogKFxuICBjb2x1bW5zOiAxMixcbiAgZ3V0dGVyOiA1MHB4LFxuICBtZWRpYTogMTIwMHB4LFxuKTtcblxuYm9keSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1tZWRpYSgkc21hbGwpIHtcbiAgICAgICAgLyogU21hbGwgKi9cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBncmlkLW1lZGlhKCRtZWRpdW0pIHtcbiAgICAgICAgLyogTWVkaXVtICovXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZ3JpZC1tZWRpYSgkbGFyZ2UpIHtcbiAgICAgICAgLyogTGFyZ2UgKi9cbiAgICB9XG59XG4iLCIuZW50cnktY29udGVudCBpbWcge1xuICAgIG1hcmdpbjogMCAwIDEuNWVtIDA7XG59XG5cbi5hbGlnbmxlZnQsXG5pbWcuYWxpZ25sZWZ0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVlbTtcbn1cblxuLmFsaWducmlnaHQsXG5pbWcuYWxpZ25yaWdodCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMS41ZW07XG59XG5cbi5hbGlnbmNlbnRlcixcbmltZy5hbGlnbmNlbnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4ud3AtY2FwdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud3AtY2FwdGlvbiBpbWcge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMCBub25lO1xufVxuXG4ud3AtY2FwdGlvbiBwLndwLWNhcHRpb24tdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ud3Atc21pbGV5IHtcbiAgICBtYXgtaGVpZ2h0OiAxZW07XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5nYWxsZXJ5IGRsIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5nYWxsZXJ5LWNhcHRpb24ge1xuICAgIG1hcmdpbjogLTEuNWVtIDAgMCAwO1xufVxuXG5ibG9ja3F1b3RlLmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAzMyU7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5ibG9ja3F1b3RlLnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDMzJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbiIsIi5oZWFkZXIge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0ei1pbmRleDogNjAwO1xufVxuXG4uaGVhZGVyX19pbm5lciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHBhZGRpbmc6IDEuNHJlbSAwO1xuXG5cdEBpbmNsdWRlIGdyaWQtbWVkaWEoJG1lZGl1bSkge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG59XG5cbi5sb2dvIHtcblx0bWFyZ2luOiAwO1xuXG5cdGEsIGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cbn1cblxuLmhlYWRlcl9fbGlua3Mge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRmbGV4OiAxO1xuXHR0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7XG5cblx0QGluY2x1ZGUgZ3JpZC1tZWRpYSgkbWVkaXVtKSB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHRvcDogNi4zcmVtO1xuXHRcdGxlZnQ6IDA7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRwYWRkaW5nLXRvcDogM3JlbTtcblxuXHR9XG5cblx0LmlzLW1lbnUtYWN0aXZlICYge1xuXHRcdEBpbmNsdWRlIGdyaWQtbWVkaWEoJG1lZGl1bSkge1xuXHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXHR9XG59XG5cbi5uYXZpZ2F0aW9uIHtcblx0ZmxleDogMTtcblxuXHRAaW5jbHVkZSBncmlkLW1lZGlhKCRtZWRpdW0pIHtcblx0XHRmbGV4OiAwO1xuXHR9XG5cblx0dWwge1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6IDAgMnJlbSAwIDRyZW07XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0XHRAaW5jbHVkZSBncmlkLW1lZGlhKCRtZWRpdW0pIHtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdG1hcmdpbi1ib3R0b206IDNyZW07XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luOiAwIC42cmVtO1xuXG5cdFx0QGluY2x1ZGUgZ3JpZC1tZWRpYSgkbWVkaXVtKSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1hcmdpbjogMXJlbSAwO1xuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDEpIHtcblx0XHRcdCYuY3VycmVudC1tZW51LWl0ZW0gYSwgYTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3NoYXBlLW1lbnUtMS5zdmcnKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOm50aC1jaGlsZCgyKSB7XG5cdFx0XHQmLmN1cnJlbnQtbWVudS1pdGVtIGEsIGE6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zaGFwZS1tZW51LTIuc3ZnJyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JjpudGgtY2hpbGQoMykge1xuXHRcdFx0Ji5jdXJyZW50LW1lbnUtaXRlbSBhLCBhOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvc2hhcGUtbWVudS0zLnN2ZycpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKDQpIHtcblx0XHRcdCYuY3VycmVudC1tZW51LWl0ZW0gYSwgYTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL3NoYXBlLW1lbnUtNC5zdmcnKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOm50aC1jaGlsZCg1KSB7XG5cdFx0XHQmLmN1cnJlbnQtbWVudS1pdGVtIGEsIGE6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy9zaGFwZS1tZW51LTUuc3ZnJyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JjpudGgtY2hpbGQoNikge1xuXHRcdFx0Ji5jdXJyZW50LW1lbnUtaXRlbSBhLCBhOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvc2hhcGUtbWVudS02LnN2ZycpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGEge1xuXHRcdHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRsZXR0ZXItc3BhY2luZzogLjE2cmVtO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzogLjRyZW0gMDtcblxuXHRcdCY6bGluaywgJjp2aXNpdGVkLCAmOmhvdmVyLCAmOmFjdGl2ZSB7XG5cdFx0XHRjb2xvcjogJGJsYWNrO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXG5cdFx0fVxuXHR9XG59XG5cbi5oZWFkZXJfX2FjdGlvbnMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdEBpbmNsdWRlIGdyaWQtbWVkaWEoJG1lZGl1bSkge1xuXHRcdHdpZHRoOiAxN3JlbTtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdGEge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tbGVmdDogMS42cmVtO1xuXG5cdFx0QGluY2x1ZGUgZ3JpZC1tZWRpYSgkbWVkaXVtKSB7XG5cdFx0XHRtYXJnaW46IDAgMXJlbTtcblx0XHR9XG5cblx0XHQmOmxpbmssICY6dmlzaXRlZCwgJjpob3ZlciwgJjphY3RpdmUge1xuXHRcdCAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cblx0XHR9XG5cdH1cblxuXHQuYnV0dG9uIHtcblx0XHRtYXJnaW4tbGVmdDogM3JlbTtcblxuXHRcdEBpbmNsdWRlIGdyaWQtbWVkaWEoJG1lZGl1bSkge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0bWFyZ2luLXRvcDogNnJlbTtcblx0XHR9XG5cdH1cbn1cblxuLnRvZ2dsZS1tZW51IHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHRyaWdodDogMnJlbTtcblx0dG9wOiAycmVtO1xuXHRkaXNwbGF5OiBub25lO1xuXHR3aWR0aDogM3JlbTtcblx0aGVpZ2h0OiAzcmVtO1xuXHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9pY29uLW1lbnUuc3ZnJykgY2VudGVyIHRvcCBuby1yZXBlYXQ7XG5cblx0LmlzLW1lbnUtYWN0aXZlICYge1xuXHRcdGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2ljb24tY2xvc2Uuc3ZnJykgY2VudGVyIHRvcCBuby1yZXBlYXQ7XG5cdH1cblxuXHRAaW5jbHVkZSBncmlkLW1lZGlhKCRtZWRpdW0pIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuIiwiLmZvb3RlciB7XG5cdGJhY2tncm91bmQ6ICRncmV5LWxpZ2h0O1xuXHRwYWRkaW5nOiAzcmVtIDJyZW07XG5cdG1hcmdpbi10b3A6IGF1dG87XG5cblx0LmNvbnRhaW5lcl9faW5uZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRAaW5jbHVkZSBncmlkLW1lZGlhKCRzbWFsbCkge1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHR9XG5cdH1cbn1cblxuLmZvb3Rlcl9fbG9nbyB7XG5cdG1hcmdpbi1yaWdodDogMy41cmVtO1xuXG5cdEBpbmNsdWRlIGdyaWQtbWVkaWEoJHNtYWxsKSB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMnJlbTtcblx0fVxuXG5cdGltZyB7XG5cdFx0d2lkdGg6IDIwcmVtO1xuXHRcdGhlaWdodDogYXV0bztcblxuXHRcdEBpbmNsdWRlIGdyaWQtbWVkaWEoJHNtYWxsKSB7XG5cdFx0XHR3aWR0aDogMTZyZW07XG5cdFx0fVxuXHR9XG59XG5cbi5mb290ZXJfX2FkZHJlc3Mge1xuXHRwIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdGxldHRlci1zcGFjaW5nOiAwLjE2cmVtO1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdH1cbn1cblxuLmZvb3Rlcl9fbGFuZ3VhZ2VzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbn1cbiIsIi5jb250YWluZXIge1xuXHRAaW5jbHVkZSBvdXRlci1jb250YWluZXI7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5jb250YWluZXJfX2lubmVyIHtcblx0QGluY2x1ZGUgZ3JpZC1jb250YWluZXI7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5tYWluIHtcblx0bWFyZ2luLXRvcDogNi4zcmVtO1xufVxuXG4uYXJ0aWNsZSB7XG5cdEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDByZW0pO1xuXHRwYWRkaW5nOiA2cmVtIDJyZW07XG5cdGxldHRlci1zcGFjaW5nOiAwLjEycmVtO1xuXG5cdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0cGFkZGluZy10b3A6IDNyZW07XG5cdH1cbn1cblxuLnJvdyB7XG5cdEBpbmNsdWRlIGdyaWQtY29udGFpbmVyO1xuXHRAaW5jbHVkZSBncmlkLWNvbGxhcHNlO1xufVxuXG4ucm93X19tYWluIHtcblx0QGluY2x1ZGUgZ3JpZC1jb2x1bW4oNyk7XG5cblx0QGluY2x1ZGUgZ3JpZC1tZWRpYSgkc21hbGwpIHtcblx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG5cdH1cbn1cblxuLnJvd19fYXNpZGUge1xuXHRAaW5jbHVkZSBncmlkLWNvbHVtbig1KTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtaW4taGVpZ2h0OiAxcHg7XG5cblx0QGluY2x1ZGUgZ3JpZC1tZWRpYSgkc21hbGwpIHtcblx0XHRAaW5jbHVkZSBncmlkLWNvbHVtbigxMik7XG5cdH1cblxuXHRhIHtcblx0XHQmOmxpbmssICY6dmlzaXRlZCwgJjpob3ZlciwgJjphY3RpdmUge1xuXHRcdCAgICBjb2xvcjogJGdyZWVuO1xuXHRcdCAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cbn1cblxuLnZpc3VhbC0wMSB7XG5cdHBhZGRpbmctYm90dG9tOiAxNnJlbTtcblxuXHQmOjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAtMTJyZW07XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL3Zpc3VhbC0wMS5wbmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHR3aWR0aDogNjRyZW07XG5cdFx0aGVpZ2h0OiA3MHJlbTtcblx0XHRjb250ZW50OiAnJztcblx0XHR6LWluZGV4OiAtMTtcblx0fVxufVxuXG4udmlzdWFsLTAyIHtcblx0cGFkZGluZy1ib3R0b206IDE2cmVtO1xuXG5cdCY6OmFmdGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogLTEycmVtO1xuXHRcdGJvdHRvbTogMDtcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy92aXN1YWwtMDIucG5nJykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdFx0d2lkdGg6IDM3cmVtO1xuXHRcdGhlaWdodDogNjdyZW07XG5cdFx0Y29udGVudDogJyc7XG5cdFx0ei1pbmRleDogLTE7XG5cdH1cbn1cblxuLnZpc3VhbC0wMyB7XG5cdHBhZGRpbmctYm90dG9tOiAxMHJlbTtcblxuXHQmOjphZnRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IC0xMHJlbTtcblx0XHRib3R0b206IC02cmVtO1xuXHRcdGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL3Zpc3VhbC0wMy5wbmcnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcblx0XHR3aWR0aDogMTVyZW07XG5cdFx0aGVpZ2h0OiAzMHJlbTtcblx0XHRjb250ZW50OiAnJztcblx0XHR6LWluZGV4OiAtMTtcblx0fVxufVxuIiwiQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoLCAkbG9jYWwtb3V0ZXItcGFkZGluZzogJG91dGVyLXBhZGRpbmcpIHtcbiAgICB3aWR0aDogJGxvY2FsLW1heC13aWR0aCArICgyICogJGxvY2FsLW91dGVyLXBhZGRpbmcpO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAkbG9jYWwtb3V0ZXItcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkbG9jYWwtb3V0ZXItcGFkZGluZztcbn1cblxuQG1peGluIGZsZXgtY29udGFpbmVyKCRsb2NhbC1tYXgtd2lkdGg6ICRtYXgtd2lkdGgsICRsb2NhbC1vdXRlci1wYWRkaW5nOiAkb3V0ZXItcGFkZGluZykge1xuICAgIHdpZHRoOiAkbG9jYWwtbWF4LXdpZHRoO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRsb2NhbC1vdXRlci1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRsb2NhbC1vdXRlci1wYWRkaW5nO1xufVxuXG5AbWl4aW4gb21lZ2EtcmVzZXQoJG50aCkge1xuICAgICY6bnRoLWNoaWxkKCN7JG50aH0pIHsgbWFyZ2luLXJpZ2h0OiBmbGV4LWd1dHRlcigpOyB9XG4gICAgJjpudGgtY2hpbGQoI3skbnRofSsxKSB7IGNsZWFyOiBub25lOyB9XG59XG5cbkBtaXhpbiBzcHJlYWQtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4gaW1hZ2UtcmVwbGFjZSB7XG4gICAgdGV4dC1pbmRlbnQ6IDEwMiU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AbWl4aW4gaGlkZS12aXN1YWxseSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbn1cblxuQG1peGluIG1lZGlhLW9iamVjdCggJHN0cmV0Y2g6ICcuY29udGVudCcgKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICYgPiAjeyRzdHJldGNofSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxufVxuXG5AbWl4aW4gc3RpY2t5LWZvb3RlciggJHN0cmV0Y2g6ICcuY29udGVudCcgKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgJiA+ICN7JHN0cmV0Y2h9IHtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG59XG5cbkBtaXhpbiByYXRpby1ib3ggKCAkcmF0aW86IDEvMSwgJGlubmVyOiAnLmlubmVyJyApIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6ICgxIC8gJHJhdGlvKSAqIDEwMCU7XG4gICAgfVxuXG4gICAgJiA+ICN7JGlubmVyfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb250YWluZXIgd2l0aCBjbGVhcmZpeC5cbi8vL1xuLy8vIEBncm91cCBmZWF0dXJlc1xuLy8vXG4vLy8gQG5hbWUgR3JpZCBjb250YWluZXJcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZ3JpZC1jb250YWluZXI7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgIH1cblxuQG1peGluIGdyaWQtY29udGFpbmVyKCRncmlkOiAkbmVhdC1ncmlkKSB7XG4gIEBpZiAkZ3JpZCAhPSAkbmVhdC1ncmlkIHtcbiAgICBAd2FybiBcImBncmlkLWNvbnRhaW5lcmAgZG9lcyBub3QgdXNlIGdyaWQgcHJvcGVydGVzLlxuICAgICAgQ3VzdG9tIGdyaWRzIGRvIG5vdCBuZWVkIHRvIGJlIHBhc3NlZCBpbiB0byB0aGlzIG1peGluLlwiO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBDcmVhdGVzIGNvbGxhcHNlZCBncmlkIG9iamVjdCB0aGF0IGNvbnN1bWVzIHRoZSBndXR0ZXJzIG9mIGl0cyBjb250YWluZXIsXG4vLy8gZm9yIHVzZSBpbiBuZXN0ZWQgbGF5b3V0cy5cbi8vL1xuLy8vIEBncm91cCBmZWF0dXJlc1xuLy8vXG4vLy8gQG5hbWUgR3JpZCBjb2xsYXBzZVxuLy8vXG4vLy8gQGFyZ3VtZW50IHttYXB9ICRncmlkIFskbmVhdC1ncmlkXVxuLy8vICAgVGhlIGdyaWQgdG8gYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgY29sbGFwc2VkIGNvbnRhaW5lci5cbi8vLyAgIEJ5IGRlZmF1bHQsIHRoZSBnbG9iYWwgYCRuZWF0LWdyaWRgIHdpbGwgYmUgdXNlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZ3JpZC1jb2xsYXBzZTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogLTIwcHg7XG4vLy8gICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA0MHB4KTtcbi8vLyAgIH1cblxuQG1peGluIGdyaWQtY29sbGFwc2UoJGdyaWQ6ICRuZWF0LWdyaWQpIHtcbiAgJF9ncmlkLWd1dHRlcjogX3JldHJpZXZlLW5lYXQtc2V0dGluZygkZ3JpZCwgZ3V0dGVyKTtcblxuICBAaWYgdW5pdCgkX2dyaWQtZ3V0dGVyKSA9PSBcIiVcIiB7XG4gICAgQHdhcm4gXCJgZ3JpZC1jb2xsYXBzZWAgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBwZXJjZW50YWdlIGJhc2VkIGd1dHRlcnMuXCI7XG4gIH1cblxuICBtYXJnaW4tI3tfbmVhdC1mbG9hdC1kaXJlY3Rpb24oJGdyaWQpfTogLSgkX2dyaWQtZ3V0dGVyKTtcbiAgbWFyZ2luLSN7X25lYXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRncmlkKX06IC0oJF9ncmlkLWd1dHRlcik7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAjeygkX2dyaWQtZ3V0dGVyICogMil9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8vLyBDcmVhdGVzIGEgZ3JpZCBjb2x1bW4gb2YgcmVxdWVzdGVkIHNpemUuXG4vLy9cbi8vLyBAZ3JvdXAgZmVhdHVyZXNcbi8vL1xuLy8vIEBuYW1lIEdyaWQgY29sdW1uXG4vLy9cbi8vLyBAYXJndW1lbnQge251bWJlciAodW5pdGxlc3MpfSAkY29sdW1ucyBbbnVsbF1cbi8vLyAgIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW4gZWxlbWVudCBzaG91bGQgc3BhbiBiYXNlZCBvbiB0aGUgdG90YWxcbi8vLyAgIGNvbHVtbnMgb2YgdGhlIGdyaWQuXG4vLy9cbi8vLyAgIFRoaXMgY2FuIGFsc28gYmUgZGVmaW5lZCBpbiBhIHNob3J0aGFuZCBzeW50YXh0IHdoaWNoIGFsc28gY29udGFpbnMgdGhlXG4vLy8gICB0b3RhbCBjb2x1bW4gY291bnQgc3VjaCBhcyBgMyBvZiA1YC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bWFwfSAkZ3JpZCBbJG5lYXQtZ3JpZF1cbi8vLyAgIFRoZSBncmlkIHRvIGJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGNvbHVtbi5cbi8vLyAgIEJ5IGRlZmF1bHQsIHRoZSBnbG9iYWwgYCRuZWF0LWdyaWRgIHdpbGwgYmUgdXNlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4oMyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMjVweCk7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjBweDtcbi8vLyAgIH1cblxuQG1peGluIGdyaWQtY29sdW1uKCRjb2x1bW5zOiBudWxsLCAkZ3JpZDogJG5lYXQtZ3JpZCkge1xuICAkY29sdW1uczogX25lYXQtY29sdW1uLWRlZmF1bHQoJGdyaWQsICRjb2x1bW5zKTtcbiAgJF9ncmlkLWNvbHVtbnM6IF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsIGNvbHVtbnMpO1xuICAkX2dyaWQtZ3V0dGVyOiBfcmV0cmlldmUtbmVhdC1zZXR0aW5nKCRncmlkLCBndXR0ZXIpO1xuXG4gIHdpZHRoOiBjYWxjKCN7X25lYXQtY29sdW1uLXdpZHRoKCRncmlkLCAkY29sdW1ucyl9KTtcbiAgZmxvYXQ6IF9uZWF0LWZsb2F0LWRpcmVjdGlvbigkZ3JpZCk7XG4gIG1hcmdpbi0je19uZWF0LWZsb2F0LWRpcmVjdGlvbigkZ3JpZCl9OiAkX2dyaWQtZ3V0dGVyO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLy8vIFJldHVybiB0aGUgZmxvYXQgZGlyZWN0aW9uIG9mIHRoZSBncmlkLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHttYXB9ICRncmlkXG4vLy9cbi8vLyBAcmV0dXJuIHtzdHJpbmd9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBfbmVhdC1mbG9hdC1kaXJlY3Rpb24oJG5lYXQtZ3JpZClcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX25lYXQtZmxvYXQtZGlyZWN0aW9uKCRncmlkKSB7XG4gICRfZGlyZWN0aW9uOiBfcmV0cmlldmUtbmVhdC1zZXR0aW5nKCRncmlkLCBkaXJlY3Rpb24pO1xuICAkX2Zsb2F0LWRpcmVjdGlvbjogbnVsbDtcbiAgQGlmICRfZGlyZWN0aW9uID09IFwibHRyXCIge1xuICAgICAgJF9mbG9hdC1kaXJlY3Rpb246IGxlZnQ7XG4gIH0gQGVsc2UgaWYgJF9kaXJlY3Rpb24gPT0gXCJydGxcIiB7XG4gICAgJF9mbG9hdC1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG4gIEByZXR1cm4gJF9mbG9hdC1kaXJlY3Rpb247XG59XG4iLCIuYnV0dG9uIHtcblx0YmFja2dyb3VuZDogJGdyZWVuO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdGZvbnQtc2l6ZTogMS40cmVtO1xuXHRwYWRkaW5nOiAxcmVtIDJyZW07XG5cdGJvcmRlcjogMXB4IHNvbGlkICRncmVlbjtcblx0dHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRsZXR0ZXItc3BhY2luZzogMC4xNnJlbTtcblxuXHQmOmxpbmssICY6dmlzaXRlZCwgJjpob3ZlciwgJjphY3RpdmUge1xuXHQgICAgY29sb3I6ICR3aGl0ZTtcblx0ICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6ICR3aGl0ZTtcblx0XHRjb2xvcjogJGdyZWVuO1xuXHR9XG5cblx0Lmhlcm8tLWhvbWUgJiB7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRib3JkZXItY29sb3I6ICR3aGl0ZTtcblx0XHRjb2xvcjogJHdoaXRlO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3JkZXItY29sb3I6ICRncmVlbjtcblx0XHRcdGJhY2tncm91bmQ6ICRncmVlbjtcblx0XHRcdGNvbG9yOiAkd2hpdGU7XG5cdFx0fVxuXHR9XG59XG4iLCIuaGVybyB7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cblx0Ji5oZXJvLS1ob21lIHtcblx0XHRoZWlnaHQ6IDEwMHZoO1xuXHRcdHdpZHRoOiAxMDB2dztcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxufVxuXG4uaGVyby0taG9tZSB7XG5cdGgxIHtcblx0XHRmb250LXNpemU6IDMuNnJlbTtcblx0XHRjb2xvcjogJHdoaXRlO1xuXHRcdG1heC13aWR0aDogOTByZW07XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHRleHQtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLDAsMCwuNSk7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDNweDtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRAaW5jbHVkZSBncmlkLW1lZGlhKCRzbWFsbCkge1xuXHRcdFx0Zm9udC1zaXplOiAyLjZyZW07XG5cdFx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IC4ycmVtO1xuXHRcdFx0cGFkZGluZzogMCA2cmVtO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gSW1wb3J0c1xuQGltcG9ydCAnLi4vLi4vYm93ZXIvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2JvdXJib24nO1xuQGltcG9ydCAnLi4vLi4vYm93ZXIvbmVhdC9jb3JlL25lYXQnO1xuQGltcG9ydCAnLi4vLi4vYm93ZXIvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUnO1xuXG4vLyBWYXJpYWJsZXNcbkBpbXBvcnQgXCJ1dGlscy92YXJzXCI7XG5cbi8vIEltcG9ydHNcbkBpbXBvcnQgJ3V0aWxzL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICd1dGlscy9taXhpbnMnO1xuXG5AaW1wb3J0ICdiYXNlL3R5cG9ncmFwaHknO1xuQGltcG9ydCAnYmFzZS93cC1kZWZhdWx0JztcblxuQGltcG9ydCAnbGF5b3V0L2hlYWRlcic7XG5AaW1wb3J0ICdsYXlvdXQvZm9vdGVyJztcblxuQGltcG9ydCAncGFnZXMvcGFnZSc7XG5AaW1wb3J0ICdwYWdlcy9hcmNoaXZlJztcbkBpbXBvcnQgJ3BhZ2VzL3NpbmdsZSc7XG5AaW1wb3J0ICdwYWdlcy9ob21lJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZXJvJztcblxuLy9TaXRld2lkZSBDU1Ncbioge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgICBmb250LWZhbWlseTogJGJvZHktdGV4dDtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBjb2xvcjogJGJsYWNrO1xufVxuXG4ud3JhcHBlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbmltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuaW5wdXRbdHlwZT10ZXh0XSxcbmJ1dHRvbixcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLmNsZWFyZml4IHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vLy8gYGdyaWQtbWVkaWFgIGFsbG93cyB5b3UgdG8gY2hhbmdlIHlvdXIgbGF5b3V0IGJhc2VkIG9uIGEgbWVkaWEgcXVlcnkuXG4vLy8gRm9yIGV4YW1wbGUsIGFuIG9iamVjdCBjYW4gc3BhbiAzIGNvbHVtbnMgb24gc21hbGwgc2NyZWVucyBhbmQgNiBjb2x1bW5zXG4vLy8gb24gbGFyZ2Ugc2NyZWVucy5cbi8vL1xuLy8vIFlvdSBjYW4gdGFrZSB0aGlzIGEgc3RlcCBmdXJ0aGVyIGFuZCBzZXQgZGlmZmVyZW50IGdyaWQgYXR0cmlidXRlcyBsaWtlXG4vLy8gZ3V0dGVyIHNpemUgYW5kIHRvdGFsIGNvbHVtbiBjb3VudCBmb3IgZWFjaCBtZWRpYSBxdWVyeS4gU28sIGZvciBleGFtcGxlLFxuLy8vIHlvdSBjYW4gaGF2ZSBhIGAxcmVtYCBndXR0ZXIgb24gc21hbGwgc2NyZWVucywgYW5kIGEgYDJyZW1gIGd1dHRlciBvbiBsYXJnZVxuLy8vIHNjcmVlbnMuXG4vLy9cbi8vLyBAZ3JvdXAgZmVhdHVyZXNcbi8vL1xuLy8vIEBuYW1lIEdyaWQgbWVkaWFcbi8vL1xuLy8vIEBhcmd1bWVudCB7bWFwfSAkZ3JpZFxuLy8vICAgVGhlIGdyaWQgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoZSBibG9jay5cbi8vLyAgIFRoaXMgZ3JpZCBzaG91bGQgaW5jbHVkZSB0aGUgYG1lZGlhYCBwcm9wZXJ0eSB0byBkZXRlcm1pbmUgdGhlIGV4cHJlc3Npb25cbi8vLyAgIGZvciB0aGUgbWVkaWEgcXVlcnkuXG4vLy9cbi8vLyBAY29udGVudFxuLy8vICAgR3JpZCBtZWRpYSB3aWxsIHRlbXBvcmFyaWx5IHRoZSBvdmVycmlkZSB0aGUgZGVmYXVsdCBncmlkIHdpdGggdGhlXG4vLy8gICBhdHRyaWJ1dGVzIG9mIHRoZSBjdXN0b20gZ3JpZC4gVGhpcyBjaGFuZ2UgaXMgc2NvcGVkIHRvIHdpdGhpbiB0aGUgbWl4aW5cbi8vLyAgIGJsb2NrLCBhbmQgb25jZSB0aGUgbWl4aW4gaGFzIGVuZGVkIHRoZSBkZWZhdWx0IGdyaWQgd2lsbCByZXZlcnQgdG8gaXRzXG4vLy8gICBvcmlnaW5hbCBzdGF0ZSBhcyBkZWZpbmVkIGJ5IGAkbmVhdC1ncmlkYC4gVGhpcyBhbGxvd3MgZm9yIGRpZmZlcmVudFxuLy8vICAgZ3V0dGVyIHdpZHRoIGFuZCBjb2x1bW4gY291bnQgYmFzZWQgb24gc2NyZWVuIHNpemUgb3Igb3RoZXIgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICRjdXN0b20tbmVhdC1ncmlkOiAoXG4vLy8gICAgIGNvbHVtbnM6IDEyLFxuLy8vICAgICBndXR0ZXI6IDUwcHgsXG4vLy8gICAgIG1lZGlhOiAxMDAwcHgsXG4vLy8gICApO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDMpO1xuLy8vXG4vLy8gICAgIEBpbmNsdWRlIGdyaWQtbWVkaWEoJGN1c3RvbS1uZWF0LWdyaWQpe1xuLy8vICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMjVweCk7XG4vLy8gICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjBweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDAwcHgpIHtcbi8vLyAgICAgLmVsZW1lbnQge1xuLy8vICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDc1cHgpO1xuLy8vICAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgIG1hcmdpbi1sZWZ0OiA1MHB4O1xuLy8vICAgICB9XG4vLy8gICB9XG5cbkBtaXhpbiBncmlkLW1lZGlhKCRncmlkKSB7XG4gICRfbWVkaWE6IF9yZXRyaWV2ZS1uZWF0LXNldHRpbmcoJGdyaWQsIG1lZGlhKTtcbiAgJF9xdWVyeTogX25lYXQtcGFyc2UtbWVkaWEoJF9tZWRpYSk7XG5cbiAgQG1lZGlhICN7JF9xdWVyeX0ge1xuICAgICRfZGVmYXVsdC1uZWF0LWdyaWQ6ICRuZWF0LWdyaWQ7XG4gICAgJG5lYXQtZ3JpZDogbWFwLW1lcmdlKCRuZWF0LWdyaWQsICRncmlkKSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICAgICRuZWF0LWdyaWQ6ICRfZGVmYXVsdC1uZWF0LWdyaWQgIWdsb2JhbDtcbiAgfVxufVxuIl19 */
