/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.tweet__composer {
  display: none;
  position: absolute;
  width: 6.77966%;
  right: 11.97966%;
  z-index: 2; }
  .tweet__composer--logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
  .tweet__composer a {
    text-decoration: none; }
  .tweet__composer svg {
    width: 20px;
    height: 20px;
    fill: #1DA1F2; }
  .tweet__composer--text {
    padding-left: 0.75rem; }
  .tweet__composer.open {
    display: none; }
    @media (min-width: 768px) {
      .tweet__composer.open {
        display: block; } }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.embedded-tweet {
  position: relative;
  height: 15.75rem; }
  .embedded-tweet .embedded-tweet__loader {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    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;
    opacity: 1;
    pointer-events: none; }
  .embedded-tweet .embedded-tweet__container {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    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;
    opacity: 0; }
    .embedded-tweet .embedded-tweet__container iframe {
      height: auto;
      margin: 0 !important;
      border-radius: 0.25rem; }
  .embedded-tweet .embedded-tweet__deleted {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    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;
    opacity: 0;
    pointer-events: none; }
    .embedded-tweet .embedded-tweet__deleted .deleted-tweet {
      padding-bottom: 0; }
      .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__header {
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        padding-bottom: 0; }
        .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__header .tweet__logo {
          width: 1.5rem;
          height: 1.5rem; }
          .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__header .tweet__logo svg {
            width: 1.5rem;
            height: 1.5rem;
            fill: #CCD6DD; }
      .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__copy {
        text-align: center;
        padding-top: 2.25rem;
        padding-bottom: 5.25rem; }
        .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__copy:hover {
          cursor: default; }
        @media (min-width: 768px) {
          .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__copy {
            font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
            font-weight: 700;
            font-size: 2.25rem;
            line-height: 2.25rem;
            letter-spacing: -0.025rem;
            margin: 0;
            padding: 0 0 0rem 0;
            padding-top: 3rem;
            padding-bottom: 6rem; } }
      .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__logo {
        display: block;
        margin-right: 0;
        margin-left: auto; }
        .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__logo a {
          text-decoration: none; }
          .embedded-tweet .embedded-tweet__deleted .deleted-tweet .tweet__logo a svg {
            width: 1.5rem;
            height: 1.5rem;
            fill: #1DA1F2; }

.embedded-authoring__hint {
  text-align: center; }
@charset "UTF-8";
/**
 * CSS for the RTE is a bit different than the CSS for regular components.
 * The RTE can't be customized easily, for example it's hard to add a CSS
 * class "theme--color" to a link. Instead of adding the class, we address
 * the <a> tag directly – without a CSS class.
 *
 * The RTE allows to create text wrapped in the following HTML tags:
 *  <p>
 *  <a>
 *  <h2>, <h3> (not h1, h4, h5)
 *  <ol>, <ul>, <li>
 *  <span.inline-code>
 */
/**
 * The styles in this file are shared across bl13-rich-text-editor and
 * bl25-blog-migration-html. If a style is only used by one component,
 * move the appropriate CSS to the component, and remove it from this file.
 */
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
/* Helvetica Neue LT W06_57 Cond */
@font-face {
  font-family: "Helvetica Neue LT Cond";
  src: url("https://fonts.twitter.com/helvetica_neue/897ea951-7ec6-47f4-9da3-7d0619b46d04.eot?#iefix");
  src: url("https://fonts.twitter.com/helvetica_neue/897ea951-7ec6-47f4-9da3-7d0619b46d04.eot?#iefix") format("eot"), url("https://fonts.twitter.com/helvetica_neue/033b54db-b1ce-4da7-861b-61d059c1c9b8.woff2") format("woff2"), url("https://fonts.twitter.com/helvetica_neue/d9c842f8-b37a-414f-be86-97ea9c61d3d7.woff") format("woff"), url("https://fonts.twitter.com/helvetica_neue/84a2cc09-f02d-4c1d-a5a9-2ab456439c73.svg#84a2cc09-f02d-4c1d-a5a9-2ab456439c73") format("svg"); }

/* Helvetica Neue LT W06_75 Bold */
@font-face {
  font-family: "Helvetica Neue LT";
  font-weight: 700;
  font-style: normal;
  src: url("https://fonts.twitter.com/helvetica_neue/3aeaeb1d-1dea-4e9b-9e83-52adc5a87209.eot?#iefix");
  src: url("https://fonts.twitter.com/helvetica_neue/3aeaeb1d-1dea-4e9b-9e83-52adc5a87209.eot?#iefix") format("eot"), url("https://fonts.twitter.com/helvetica_neue/d9122e8d-bf26-4f1c-bab9-c06599397b59.woff2") format("woff2"), url("https://fonts.twitter.com/helvetica_neue/db0cec12-a947-40fe-a115-c5ce22ee79f6.woff") format("woff"), url("https://fonts.twitter.com/helvetica_neue/024411ef-26bf-4536-aea4-ec953846eda7.svg#024411ef-26bf-4536-aea4-ec953846eda7") format("svg"); }

/* Helvetica Neue LT W06_85 Heavy */
@font-face {
  font-family: "Helvetica Neue LT";
  font-weight: 900;
  font-style: normal;
  src: url("https://fonts.twitter.com/helvetica_neue/8a90a2ba-1276-4b3f-bc1c-8526172b27f4.eot?#iefix");
  src: url("https://fonts.twitter.com/helvetica_neue/8a90a2ba-1276-4b3f-bc1c-8526172b27f4.eot?#iefix") format("eot"), url("https://fonts.twitter.com/helvetica_neue/c415f3fd-ff27-40fe-af94-8b4a54b4b4e4.woff2") format("woff2"), url("https://fonts.twitter.com/helvetica_neue/a1da20c7-4dc9-4af5-bd6f-9ebe50b6788d.woff") format("woff"), url("https://fonts.twitter.com/helvetica_neue/acd8d6df-9696-4092-bf23-5370c63ca9fb.svg#acd8d6df-9696-4092-bf23-5370c63ca9fb") format("svg"); }

/* Helvetica Neue LT W06_56 It */
@font-face {
  font-family: "Helvetica Neue LT";
  font-weight: 400;
  font-style: italic;
  src: url("https://fonts.twitter.com/helvetica_neue/7df39325-0e0e-4635-a717-59033a026fc5.eot?#iefix");
  src: url("https://fonts.twitter.com/helvetica_neue/7df39325-0e0e-4635-a717-59033a026fc5.eot?#iefix") format("eot"), url("https://fonts.twitter.com/helvetica_neue/6acb9b26-7e8e-46b4-b68b-631ab07d6ed7.woff2") format("woff2"), url("https://fonts.twitter.com/helvetica_neue/2914a90e-d766-4cf8-97b9-04c5fe897f06.woff") format("woff"), url("https://fonts.twitter.com/helvetica_neue/b85ea5b3-8dc8-4989-a982-f461bc9655f8.svg#b85ea5b3-8dc8-4989-a982-f461bc9655f8") format("svg"); }

/* Helvetica Neue LT W06_45 Light */
@font-face {
  font-family: "Helvetica Neue LT";
  font-weight: 300;
  font-style: normal;
  src: url("https://fonts.twitter.com/helvetica_neue/2023e7d1-9f0a-4cac-8e80-22321db918dd.eot?#iefix");
  src: url("https://fonts.twitter.com/helvetica_neue/2023e7d1-9f0a-4cac-8e80-22321db918dd.eot?#iefix") format("eot"), url("https://fonts.twitter.com/helvetica_neue/198fd78b-3655-4768-89c4-31caf65ea363.woff2") format("woff2"), url("https://fonts.twitter.com/helvetica_neue/49631ce8-9201-47a8-8874-45371417c35f.woff") format("woff"), url("https://fonts.twitter.com/helvetica_neue/9ac3d424-8521-46cf-8878-7324762db7b4.svg#9ac3d424-8521-46cf-8878-7324762db7b4") format("svg"); }

/* Helvetica Neue LT W06_55 Roman */
@font-face {
  font-family: "Helvetica Neue LT";
  font-weight: 400;
  font-style: normal;
  src: url("https://fonts.twitter.com/helvetica_neue/8b3b0133-222d-4ffc-9d6e-565dd879690c.eot?#iefix");
  src: url("https://fonts.twitter.com/helvetica_neue/8b3b0133-222d-4ffc-9d6e-565dd879690c.eot?#iefix") format("eot"), url("https://fonts.twitter.com/helvetica_neue/1a14dcac-7c9e-471c-8039-33c730f871f2.woff2") format("woff2"), url("https://fonts.twitter.com/helvetica_neue/558ed534-0c60-42cf-8b94-d0a16eb70d37.woff") format("woff"), url("https://fonts.twitter.com/helvetica_neue/6513e804-e03e-41a1-8385-d5e0971f2009.svg#6513e804-e03e-41a1-8385-d5e0971f2009") format("svg"); }

/* Helvetica Neue LT W06_35 Thin */
@font-face {
  font-family: "Helvetica Neue LT";
  font-weight: 200;
  font-style: normal;
  src: url("https://fonts.twitter.com/helvetica_neue/2a129142-7c50-4728-9227-1eebf2d9f16d.eot?#iefix");
  src: url("https://fonts.twitter.com/helvetica_neue/2a129142-7c50-4728-9227-1eebf2d9f16d.eot?#iefix") format("eot"), url("https://fonts.twitter.com/helvetica_neue/2192a26c-de1c-4c50-88d1-e5136033c15a.woff2") format("woff2"), url("https://fonts.twitter.com/helvetica_neue/0212d203-ce3f-42e2-862a-edf988621728.woff") format("woff"), url("https://fonts.twitter.com/helvetica_neue/552c43a3-6cc7-47b9-8b81-398b961b5167.svg#552c43a3-6cc7-47b9-8b81-398b961b5167") format("svg"); }

.theme--orange .bl13-rich-text-editor a {
  color: #F45D22;
  text-decoration: none;
  transition: color 0.3s ease-in-out; }

.theme--orange .bl13-rich-text-editor a:active,
.theme--orange .bl13-rich-text-editor a:hover {
  color: #D82E18;
  cursor: pointer; }

.theme--orange .bl13-rich-text-editor ol li::before,
.theme--orange .bl13-rich-text-editor ul li::before {
  color: #F45D22; }

.theme--orange .bl13-rich-text-editor *::-moz-selection {
  background-color: #FFBE78;
  color: inherit; }

.theme--orange .bl13-rich-text-editor *::selection {
  background-color: #FFBE78;
  color: inherit; }

.theme--yellow .bl13-rich-text-editor a {
  color: #FFAD1F;
  text-decoration: none;
  transition: color 0.3s ease-in-out; }

.theme--yellow .bl13-rich-text-editor a:active,
.theme--yellow .bl13-rich-text-editor a:hover {
  color: #F98E00;
  cursor: pointer; }

.theme--yellow .bl13-rich-text-editor ol li::before,
.theme--yellow .bl13-rich-text-editor ul li::before {
  color: #FFAD1F; }

.theme--yellow .bl13-rich-text-editor *::-moz-selection {
  background-color: #FFE76E;
  color: inherit; }

.theme--yellow .bl13-rich-text-editor *::selection {
  background-color: #FFE76E;
  color: inherit; }

.theme--green .bl13-rich-text-editor a {
  color: #1FB650;
  text-decoration: none;
  transition: color 0.3s ease-in-out; }

.theme--green .bl13-rich-text-editor a:active,
.theme--green .bl13-rich-text-editor a:hover {
  color: #008951;
  cursor: pointer; }

.theme--green .bl13-rich-text-editor ol li::before,
.theme--green .bl13-rich-text-editor ul li::before {
  color: #1FB650; }

.theme--green .bl13-rich-text-editor *::-moz-selection {
  background-color: #A5F2AA;
  color: inherit; }

.theme--green .bl13-rich-text-editor *::selection {
  background-color: #A5F2AA;
  color: inherit; }

.theme--blue .bl13-rich-text-editor a {
  color: #1DA1F2;
  text-decoration: none;
  transition: color 0.3s ease-in-out; }

.theme--blue .bl13-rich-text-editor a:active,
.theme--blue .bl13-rich-text-editor a:hover {
  color: #005FD1;
  cursor: pointer; }

.theme--blue .bl13-rich-text-editor ol li::before,
.theme--blue .bl13-rich-text-editor ul li::before {
  color: #1DA1F2; }

.theme--blue .bl13-rich-text-editor *::-moz-selection {
  background-color: #97E3FF;
  color: inherit; }

.theme--blue .bl13-rich-text-editor *::selection {
  background-color: #97E3FF;
  color: inherit; }

.theme--purple .bl13-rich-text-editor a {
  color: #794BC4;
  text-decoration: none;
  transition: color 0.3s ease-in-out; }

.theme--purple .bl13-rich-text-editor a:active,
.theme--purple .bl13-rich-text-editor a:hover {
  color: #4F0299;
  cursor: pointer; }

.theme--purple .bl13-rich-text-editor ol li::before,
.theme--purple .bl13-rich-text-editor ul li::before {
  color: #794BC4; }

.theme--purple .bl13-rich-text-editor *::-moz-selection {
  background-color: #C7B4FA;
  color: inherit; }

.theme--purple .bl13-rich-text-editor *::selection {
  background-color: #C7B4FA;
  color: inherit; }

.theme--pink .bl13-rich-text-editor a {
  color: #E0245E;
  text-decoration: none;
  transition: color 0.3s ease-in-out; }

.theme--pink .bl13-rich-text-editor a:active,
.theme--pink .bl13-rich-text-editor a:hover {
  color: #A01744;
  cursor: pointer; }

.theme--pink .bl13-rich-text-editor ol li::before,
.theme--pink .bl13-rich-text-editor ul li::before {
  color: #E0245E; }

.theme--pink .bl13-rich-text-editor *::-moz-selection {
  background-color: #FFB8C2;
  color: inherit; }

.theme--pink .bl13-rich-text-editor *::selection {
  background-color: #FFB8C2;
  color: inherit; }

.bl13-rich-text-editor {
  /**
      Style changes to ".code-inline" and ".footnote" should be reflected here as well:
      core-twitter-project/core-twitter-jcr-modules/core-twitter-view/src/content/jcr_root/etc/designs/core-twitter/clientlib-editor/css/bl13-rich-text-editor.css
      So the styles will be applied in full screen editing mode as well.
    */ }
  .bl13-rich-text-editor h2 {
    font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.5rem;
    letter-spacing: 0rem;
    margin: 0;
    padding: 0 0 0rem 0;
    color: #14171A;
    margin-left: -1px;
    padding-bottom: 2.25rem;
    padding-top: 2.25rem; }
  .bl13-rich-text-editor h3 {
    color: #14171A; }
  .bl13-rich-text-editor h3 + ol,
  .bl13-rich-text-editor h3 + ul {
    padding-top: 0.75rem; }
  .bl13-rich-text-editor p {
    padding-bottom: 1.5rem; }
  .bl13-rich-text-editor p + ol,
  .bl13-rich-text-editor p + ul {
    padding-top: 1.5rem; }
  .bl13-rich-text-editor p + h3 {
    padding-top: 0.75rem; }
  .bl13-rich-text-editor ol,
  .bl13-rich-text-editor ul {
    list-style: none;
    padding-bottom: 3rem; }
  .bl13-rich-text-editor ol + h2,
  .bl13-rich-text-editor ul + h2 {
    padding-top: 1.5rem; }
  .bl13-rich-text-editor ol li,
  .bl13-rich-text-editor ul li {
    padding-bottom: 0.75rem; }
    .bl13-rich-text-editor ol li:last-child,
    .bl13-rich-text-editor ul li:last-child {
      padding-bottom: 0; }
  .bl13-rich-text-editor ol {
    counter-reset: item; }
    .bl13-rich-text-editor ol li {
      padding-left: 2.25rem; }
    .bl13-rich-text-editor ol li::before {
      content: counter(item);
      counter-increment: item;
      display: inline-block;
      font-size: 1.35rem;
      font-weight: 300;
      line-height: 0.75rem;
      margin-left: -2.25rem;
      position: relative;
      top: -4px;
      vertical-align: text-bottom;
      width: 2.25rem; }
  .bl13-rich-text-editor ul li {
    padding-left: 1.4rem; }
    .bl13-rich-text-editor ul li::before {
      content: "\2022";
      display: inline-block;
      font-size: 1.125rem;
      line-height: 0.75rem;
      margin-left: -1.5rem;
      width: 1.5rem; }
  .bl13-rich-text-editor > *:last-child {
    padding-bottom: 3.75rem; }
  .bl13-rich-text-editor i {
    font-style: italic; }
  .bl13-rich-text-editor u {
    text-decoration: underline; }
  .bl13-rich-text-editor b {
    font-weight: 700; }
  .bl13-rich-text-editor .code-inline {
    -webkit-box-decoration-break: clone;
            box-decoration-break: clone;
    background-color: #657786;
    border-radius: 0.24975rem;
    color: #FFFFFF;
    font-size: 0.95em;
    letter-spacing: 0.75px;
    padding-bottom: 0.1875rem;
    padding-left: 0.24975rem;
    padding-top: 0.1245rem;
    padding-right: 0.24975rem; }
  .bl13-rich-text-editor .footnote {
    font-size: 0.75rem; }

.bl13-rich-text-editor .tweet-error-text {
  display: none; }

.bl13-rich-text-editor + .bl18-single-tweet .tweet {
  margin-top: 2.25rem; }

.bl13-rich-text-editor p + .bl18-single-tweet .tweet {
  margin-top: 2.25rem; }

.bl13-rich-text-editor .bl13-tweet {
  border: solid 1px #CCD6DD;
  border-radius: 0.25rem;
  padding-bottom: 0px !important;
  margin-bottom: 2.25rem;
  margin-top: 0.75rem; }

.bl13-tweet-template {
  display: none; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.bl14-image .image {
  margin-bottom: 3.75rem; }
  .bl14-image .image__container {
    background-size: cover;
    background-position: center;
    height: 12rem; }
    @media (min-width: 768px) {
      .bl14-image .image__container {
        height: 22.5rem; } }
  .bl14-image .image--single {
    width: 100%; }
    .bl14-image .image--single img {
      max-width: 100%;
      height: auto;
      display: block;
      margin: auto; }
  .bl14-image .image--twelve-column {
    max-width: 89.6%;
    position: absolute;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto; }
    @media (min-width: 768px) {
      .bl14-image .image--twelve-column .image__container {
        height: 39.75rem; } }
  .bl14-image .image--two-column {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; }
    @media (min-width: 768px) {
      .bl14-image .image--two-column {
        width: 100%;
        float: left;
        margin-left: 0;
        margin-right: 0;
        margin-left: -68.96552%; } }
    .bl14-image .image--two-column:last-child {
      width: 100%;
      float: left;
      margin-left: 0;
      margin-right: 0; }
      @media (min-width: 768px) {
        .bl14-image .image--two-column:last-child {
          width: 100%;
          float: left;
          margin-left: 0;
          margin-right: 0;
          margin-left: 34.48276%;
          float: none; } }
  .bl14-image .image--full-bleed {
    margin-bottom: 3.75rem;
    max-width: 1600px;
    position: absolute;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto; }
    @media (min-width: 768px) {
      .bl14-image .image--full-bleed {
        margin-bottom: 6rem;
        margin-top: 2.25rem; }
        .bl14-image .image--full-bleed .image__container {
          height: 39.75rem; } }
  .bl14-image .image__footer {
    padding: 1.5rem 0;
    border-bottom-style: solid;
    border-bottom-width: 1px; }
  .bl14-image .image__caption {
    line-height: 1rem; }
    @media (min-width: 768px) {
      .bl14-image .image__caption {
        line-height: 1.5rem; } }

.bl14-image .image__placeholder {
  height: 26.25rem; }
  @media (min-width: 768px) {
    .bl14-image .image__placeholder {
      height: 39.75rem; } }

.bl14-image::after {
  content: " ";
  display: block;
  clear: both; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.bl16-quote {
  padding-bottom: 3rem;
  padding-left: 45px;
  position: relative; }
  @media (max-width: 479px) {
    .bl16-quote {
      padding-left: 0; } }
  .bl16-quote blockquote .quote-copy {
    line-height: 1.5em;
    margin-left: 0;
    padding-bottom: 3rem; }
  .bl16-quote blockquote.quotes .quote-copy {
    margin-left: 0; }
    @media (max-width: 479px) {
      .bl16-quote blockquote.quotes .quote-copy {
        padding-top: 3rem;
        position: relative; } }
    .bl16-quote blockquote.quotes .quote-copy::before, .bl16-quote blockquote.quotes .quote-copy::after {
      font-weight: 700;
      font-size: 6rem;
      line-height: 6rem;
      color: #CCD6DD; }
    @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
      .bl16-quote blockquote.quotes .quote-copy::after {
        bottom: 58%; } }
    .bl16-quote blockquote.quotes .quote-copy::before {
      content: "\201C";
      position: absolute;
      left: -4px;
      top: -18px; }
      @media (max-width: 479px) {
        .bl16-quote blockquote.quotes .quote-copy::before {
          left: -5px;
          top: 0; } }
      @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
        .bl16-quote blockquote.quotes .quote-copy::before {
          top: 18px; } }
    .bl16-quote blockquote.quotes .quote-copy::after {
      content: "\201D";
      position: absolute; }
      @media (max-width: 479px) {
        .bl16-quote blockquote.quotes .quote-copy::after {
          margin-top: -3rem;
          right: 0;
          top: calc(100% - 5px); } }

@media (max-width: 479px) and (max-width: 479px) {
  .bl16-quote .author {
    padding-left: 45px; } }
  .bl16-quote.no-quotes .author {
    position: relative;
    left: 22px; }
    .bl16-quote.no-quotes .author__name::before {
      left: -25px; }
  .bl16-quote .author__name {
    padding-bottom: 0.75rem; }
    .bl16-quote .author__name::before {
      content: "\2014";
      position: absolute;
      left: 0; }
  .bl16-quote .author__handle {
    text-decoration: none; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.bl17-code-snippet {
  padding-top: 3rem; }
  .bl17-code-snippet code[class*="language"] {
    margin-top: -1.5rem;
    max-height: 22.3125rem; }
  .bl17-code-snippet pre[class*="language-"] {
    max-height: 22.3125rem; }
    .bl17-code-snippet pre[class*="language-"].line-numbers code {
      padding-left: 1.5rem; }
/**
 * prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML
 * Based on https://github.com/tshedor/workshop-wp-theme (Example: http://workshop.kansan.com/category/sessions/basics or http://workshop.timshedor.com/category/sessions/basics);
 * @author Tim  Shedor
 */

code[class*="language-"],
pre[class*="language-"] {
	color: black;
	background: none;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
	position: relative;
	margin: .5em 0;
	-webkit-box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf;
	-moz-box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf;
	box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf;
	border-left: 10px solid #358ccb;
	background-color: #fdfdfd;
	background-image: -webkit-linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
	background-image: -moz-linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
	background-image: -ms-linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
	background-image: -o-linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
	background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
	background-size: 3em 3em;
	background-origin: content-box;
	overflow: visible;
	padding: 0;
}

code[class*="language"] {
	max-height: inherit;
	height: 100%;
	padding: 0 1em;
	display: block;
	overflow: auto;
}

/* Margin bottom to accomodate shadow */
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background-color: #fdfdfd;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	margin-bottom: 1em;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	position: relative;
	padding: .2em;
	-webkit-border-radius: 0.3em;
	-moz-border-radius: 0.3em;
	-ms-border-radius: 0.3em;
	-o-border-radius: 0.3em;
	border-radius: 0.3em;
	color: #c92c2c;
	border: 1px solid rgba(0, 0, 0, 0.1);
	display: inline;
	white-space: normal;
}

pre[class*="language-"]:before,
pre[class*="language-"]:after {
	content: '';
	z-index: -2;
	display: block;
	position: absolute;
	bottom: 0.75em;
	left: 0.18em;
	width: 40%;
	height: 20%;
	max-height: 13em;
	-webkit-box-shadow: 0px 13px 8px #979797;
	-moz-box-shadow: 0px 13px 8px #979797;
	box-shadow: 0px 13px 8px #979797;
	-webkit-transform: rotate(-2deg);
	-moz-transform: rotate(-2deg);
	-ms-transform: rotate(-2deg);
	-o-transform: rotate(-2deg);
	transform: rotate(-2deg);
}

:not(pre) > code[class*="language-"]:after,
pre[class*="language-"]:after {
	right: 0.75em;
	left: auto;
	-webkit-transform: rotate(2deg);
	-moz-transform: rotate(2deg);
	-ms-transform: rotate(2deg);
	-o-transform: rotate(2deg);
	transform: rotate(2deg);
}

.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #7D8B99;
}

.token.punctuation {
	color: #5F6364;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.function-name,
.token.constant,
.token.symbol,
.token.deleted {
	color: #c92c2c;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.function,
.token.builtin,
.token.inserted {
	color: #2f9c0a;
}

.token.operator,
.token.entity,
.token.url,
.token.variable {
	color: #a67f59;
	background: rgba(255, 255, 255, 0.5);
}

.token.atrule,
.token.attr-value,
.token.keyword,
.token.class-name {
	color: #1990b8;
}

.token.regex,
.token.important {
	color: #e90;
}

.language-css .token.string,
.style .token.string {
	color: #a67f59;
	background: rgba(255, 255, 255, 0.5);
}

.token.important {
	font-weight: normal;
}

.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

.namespace {
	opacity: .7;
}

@media screen and (max-width: 767px) {
	pre[class*="language-"]:before,
	pre[class*="language-"]:after {
		bottom: 14px;
		-webkit-box-shadow: none;
		-moz-box-shadow: none;
		box-shadow: none;
	}

}

/* Plugin styles */
.token.tab:not(:empty):before,
.token.cr:before,
.token.lf:before {
	color: #e0d7d1;
}

/* Plugin styles: Line Numbers */
pre[class*="language-"].line-numbers {
	padding-left: 0;
}

pre[class*="language-"].line-numbers code {
	padding-left: 3.8em;
}

pre[class*="language-"].line-numbers .line-numbers-rows {
	left: 0;
}

/* Plugin styles: Line Highlight */
pre[class*="language-"][data-line] {
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 0;
}
pre[data-line] code {
	position: relative;
	padding-left: 4em;
}
pre .line-highlight {
	margin-top: 0;
}
pre.line-numbers {
	position: relative;
	padding-left: 3.8em;
	counter-reset: linenumber;
}

pre.line-numbers > code {
	position: relative;
}

.line-numbers .line-numbers-rows {
	position: absolute;
	pointer-events: none;
	top: 0;
	font-size: 100%;
	left: -3.8em;
	width: 3em; /* works for line-numbers below 1000 lines */
	letter-spacing: -1px;
	border-right: 1px solid #999;

	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;

}

	.line-numbers-rows > span {
		pointer-events: none;
		display: block;
		counter-increment: linenumber;
	}

		.line-numbers-rows > span:before {
			content: counter(linenumber);
			color: #999;
			display: block;
			padding-right: 0.8em;
			text-align: right;
		}/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.bl18-tweet {
  margin-bottom: 2.25rem;
  overflow: visible; }
  .bl18-tweet .embedded-tweet iframe {
    border: solid 1px #CCD6DD !important; }
  .bl18-tweet[data-tweet-style="default"] .embedded-tweet iframe {
    border: none !important; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.bl19-tweet-gallery {
  margin-bottom: 2.25rem; }

.bl19 {
  min-height: 47.25rem; }
  .bl19:after {
    content: " ";
    display: block;
    clear: both; }

.bl19-gallery {
  min-height: 47.25rem;
  max-width: 1600px;
  position: absolute;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto; }

.bl19-columns {
  opacity: 0;
  padding-top: 2.25rem; }

.bl19-column__left {
  width: 100%;
  float: left;
  margin-left: 0;
  margin-right: 0; }
  @media (min-width: 768px) {
    .bl19-column__left {
      width: 49.15254%;
      float: left;
      margin-right: 1.69492%; } }

.bl19-column__right {
  width: 100%;
  float: left;
  margin-left: 0;
  margin-right: 0; }
  @media (min-width: 768px) {
    .bl19-column__right {
      width: 49.15254%;
      float: right;
      margin-right: 0; } }

.bl19-tweet {
  margin-bottom: 2.25rem;
  opacity: 0; }

.bl19-tweet-template {
  display: none; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.bl20-curated-tweet-billboard .billboard-carousel {
  position: absolute;
  width: 100vw;
  max-width: 100%;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3.75rem; }
  .bl20-curated-tweet-billboard .billboard-carousel .billboard {
    margin-bottom: 2.25rem; }
  .bl20-curated-tweet-billboard .billboard-carousel--standalone .swiper-slide {
    padding-bottom: 0; }
  .bl20-curated-tweet-billboard .billboard-carousel--standalone .swiper-pagination {
    display: none; }

.bl20-curated-tweet-billboard .billboard {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-position: center center;
  background-size: cover;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  margin-top: 2.25rem;
  padding-bottom: 6rem;
  padding-top: 6rem;
  height: 37.5rem;
  position: relative;
  box-sizing: border-box; }
  @media (max-width: 479px) {
    .bl20-curated-tweet-billboard .billboard {
      height: 13.5rem;
      padding-bottom: 0rem;
      padding-top: 0rem; } }
  .bl20-curated-tweet-billboard .billboard svg {
    fill: #FFFFFF; }
  .bl20-curated-tweet-billboard .billboard.deleted-bb {
    padding-top: 9rem;
    padding-bottom: 9rem; }
    @media (max-width: 479px) {
      .bl20-curated-tweet-billboard .billboard.deleted-bb {
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
        margin-top: 1.5rem;
        margin-bottom: 1.5rem; } }
  .bl20-curated-tweet-billboard .billboard .tweet {
    border-color: #FFFFFF;
    border-radius: 8px;
    border-style: solid;
    border-width: 3px;
    color: #FFFFFF;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 100%;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-left: auto;
    margin-right: auto;
    max-width: 1600px;
    padding: 1.875rem 1.875rem 1.5rem 1.875rem;
    position: relative;
    text-decoration: none;
    width: 66.10169%;
    z-index: 2; }
    @media (max-width: 479px) {
      .bl20-curated-tweet-billboard .billboard .tweet {
        width: 100%;
        float: left;
        margin-left: 0;
        margin-right: 0;
        border-width: 0;
        padding: 0.9375rem 0.75rem 0.9375rem 0.75rem; } }
    .bl20-curated-tweet-billboard .billboard .tweet .tweet-account,
    .bl20-curated-tweet-billboard .billboard .tweet .tweet-meta {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
    .bl20-curated-tweet-billboard .billboard .tweet.deleted-tweet {
      border-color: #FFFFFF;
      display: block;
      padding-top: 1.5rem;
      padding-bottom: 0;
      height: auto; }
      .bl20-curated-tweet-billboard .billboard .tweet.deleted-tweet .tweet-account {
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        padding-bottom: 0; }
      .bl20-curated-tweet-billboard .billboard .tweet.deleted-tweet .tweet-copy {
        text-align: center;
        font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-weight: 700;
        font-size: 1.5rem;
        line-height: 1.5rem;
        letter-spacing: 0rem;
        margin: 0;
        padding: 0 0 0rem 0;
        padding-top: 2.25rem;
        padding-bottom: 3.75rem; }
        .bl20-curated-tweet-billboard .billboard .tweet.deleted-tweet .tweet-copy:hover {
          cursor: default; }
        @media (min-width: 768px) {
          .bl20-curated-tweet-billboard .billboard .tweet.deleted-tweet .tweet-copy {
            font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
            font-weight: 700;
            font-size: 3rem;
            line-height: 3rem;
            letter-spacing: -0.025rem;
            margin: 0;
            padding: 0 0 0rem 0;
            padding-top: 4.5rem;
            padding-bottom: 9rem; } }
      @media (max-width: 479px) {
        .bl20-curated-tweet-billboard .billboard .tweet.deleted-tweet {
          border-width: 0;
          padding-top: 0.75rem; } }
  .bl20-curated-tweet-billboard .billboard .tweet-account {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-bottom: 1.5rem; }
    @media (max-width: 479px) {
      .bl20-curated-tweet-billboard .billboard .tweet-account {
        padding-bottom: 0.75rem; } }
    .bl20-curated-tweet-billboard .billboard .tweet-account__name {
      line-height: 1rem;
      padding-bottom: 0.25rem; }
      @media (max-width: 479px) {
        .bl20-curated-tweet-billboard .billboard .tweet-account__name {
          font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
          font-weight: 700;
          font-size: 0.87rem;
          line-height: 1.5rem;
          letter-spacing: 0.03rem;
          margin: 0;
          padding: 0 0 0rem 0;
          line-height: 1rem; } }
    .bl20-curated-tweet-billboard .billboard .tweet-account__handle {
      line-height: 1rem; }
      @media (max-width: 479px) {
        .bl20-curated-tweet-billboard .billboard .tweet-account__handle {
          font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
          font-weight: 400;
          font-size: 0.87rem;
          line-height: 1.5rem;
          letter-spacing: 0.025rem;
          margin: 0;
          padding: 0 0 0rem 0;
          line-height: 1rem; } }
    .bl20-curated-tweet-billboard .billboard .tweet-account__twitter-logo {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
    .bl20-curated-tweet-billboard .billboard .tweet-account__twitter-logo svg {
      height: 2.25rem;
      width: 2.25rem; }
      @media (max-width: 479px) {
        .bl20-curated-tweet-billboard .billboard .tweet-account__twitter-logo svg {
          height: 2rem;
          width: 2rem; } }
    .bl20-curated-tweet-billboard .billboard .tweet-account a {
      text-decoration: none;
      color: #FFFFFF; }
  .bl20-curated-tweet-billboard .billboard .js-textfit-parent {
    overflow: hidden;
    /* adds whitespace above and below tweet text per twitter styleguide */
    /* uses px to avoid breaking if baseline values change */
    margin: 12px 0 24px 0; }
    .bl20-curated-tweet-billboard .billboard .js-textfit-parent.mobile {
      display: none; }
  .bl20-curated-tweet-billboard .billboard .tweet-copy__text {
    color: #FFFFFF;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: -0.025rem;
    line-height: 1em;
    margin-bottom: 1.5rem;
    word-break: break-word; }
    @media (max-width: 479px) {
      .bl20-curated-tweet-billboard .billboard .tweet-copy__text {
        margin-bottom: 0.75rem; } }
  .bl20-curated-tweet-billboard .billboard .tweet-copy__text--mobile {
    display: none;
    font-size: 2.25rem; }
  .bl20-curated-tweet-billboard .billboard .tweet-box-link {
    width: 100%;
    height: 100%;
    display: block;
    color: inherit;
    font-size: inherit;
    text-decoration: none; }
  @media (max-width: 479px) {
    .bl20-curated-tweet-billboard .billboard .tweet-copy__text--desktop {
      display: none; }
    .bl20-curated-tweet-billboard .billboard .tweet-copy__text--mobile {
      display: block; }
    .bl20-curated-tweet-billboard .billboard .js-textfit-parent.mobile {
      display: block;
      margin: 4px 0; }
    .bl20-curated-tweet-billboard .billboard .js-textfit-parent.desktop {
      display: none; }
    .bl20-curated-tweet-billboard .billboard .tweet-meta__date {
      font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 700;
      font-size: 0.87rem;
      line-height: 1.5rem;
      letter-spacing: 0.03rem;
      margin: 0;
      padding: 0 0 0rem 0; } }
  .bl20-curated-tweet-billboard .billboard .tweet-meta {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    line-height: 0; }
  .bl20-curated-tweet-billboard .billboard .tweet-meta__cta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
  .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--"] {
    margin-right: 28px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; }
    @media (max-width: 479px) {
      .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--"] {
        margin-right: 20px; } }
    .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--"] a {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      text-decoration: none; }
    .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--"] svg {
      height: 1.25rem;
      width: 1.25rem; }
      @media (max-width: 479px) {
        .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--"] svg {
          height: 0.9375rem;
          width: 0.9375rem; } }
    .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--"] .tweet-meta__tweet-count {
      color: #FFFFFF; }
      @media (max-width: 479px) {
        .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--"] .tweet-meta__tweet-count {
          font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
          font-weight: 700;
          font-size: 0.87rem;
          line-height: 1.5rem;
          letter-spacing: 0.03rem;
          margin: 0;
          padding: 0 0 0rem 0; } }
  .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--retweet"] svg {
    height: 1.5rem;
    width: 1.5rem; }
    @media (max-width: 479px) {
      .bl20-curated-tweet-billboard .billboard div[class*="tweet-meta__cta--retweet"] svg {
        height: 1.125rem;
        width: 1.125rem; } }
  .bl20-curated-tweet-billboard .billboard div[class*="background__tint--"] {
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1; }
  .bl20-curated-tweet-billboard .billboard .background__tint--low {
    background-color: rgba(20, 23, 26, 0.1); }
  .bl20-curated-tweet-billboard .billboard .background__tint--medium {
    background-color: rgba(20, 23, 26, 0.2); }
  .bl20-curated-tweet-billboard .billboard .background__tint--high {
    background-color: rgba(20, 23, 26, 0.3); }

.bl20-curated-tweet-billboard .swiper-slide {
  padding-bottom: 2.25rem; }

.bl20-curated-tweet-billboard .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background-color: #CCD6DD; }

.bl20-curated-tweet-billboard .billboard-placeholder {
  height: 45.75rem; }
  @media (max-width: 479px) {
    .bl20-curated-tweet-billboard .billboard-placeholder {
      height: 19.5rem; } }

.theme--orange .billboard-carousel .swiper-pagination-bullet-active {
  background-color: #F45D22 !important;
  transition: background-color 1s ease-in-out; }

.theme--yellow .billboard-carousel .swiper-pagination-bullet-active {
  background-color: #FFAD1F !important;
  transition: background-color 1s ease-in-out; }

.theme--green .billboard-carousel .swiper-pagination-bullet-active {
  background-color: #1FB650 !important;
  transition: background-color 1s ease-in-out; }

.theme--blue .billboard-carousel .swiper-pagination-bullet-active {
  background-color: #1DA1F2 !important;
  transition: background-color 1s ease-in-out; }

.theme--purple .billboard-carousel .swiper-pagination-bullet-active {
  background-color: #794BC4 !important;
  transition: background-color 1s ease-in-out; }

.theme--pink .billboard-carousel .swiper-pagination-bullet-active {
  background-color: #E0245E !important;
  transition: background-color 1s ease-in-out; }
/**
 * Swiper 3.4.1
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * 
 * http://www.idangero.us/swiper/
 * 
 * Copyright 2016, Vladimir Kharlampidi
 * The iDangero.us
 * http://www.idangero.us/
 * 
 * Licensed under MIT
 * 
 * Released on: December 13, 2016
 */
.swiper-container {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  /* Fix of Webkit flickering */
  z-index: 1;
}
.swiper-container-no-flexbox .swiper-slide {
  float: left;
}
.swiper-container-vertical > .swiper-wrapper {
  -webkit-box-orient: vertical;
  -moz-box-orient: vertical;
  -ms-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}
.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-transition-property: -webkit-transform;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.swiper-container-android .swiper-slide,
.swiper-wrapper {
  -webkit-transform: translate3d(0px, 0, 0);
  -moz-transform: translate3d(0px, 0, 0);
  -o-transform: translate(0px, 0px);
  -ms-transform: translate3d(0px, 0, 0);
  transform: translate3d(0px, 0, 0);
}
.swiper-container-multirow > .swiper-wrapper {
  -webkit-box-lines: multiple;
  -moz-box-lines: multiple;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}
.swiper-container-free-mode > .swiper-wrapper {
  -webkit-transition-timing-function: ease-out;
  -moz-transition-timing-function: ease-out;
  -ms-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
  margin: 0 auto;
}
.swiper-slide {
  -webkit-flex-shrink: 0;
  -ms-flex: 0 0 auto;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
}
/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
  -webkit-box-align: start;
  -ms-flex-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-transition-property: -webkit-transform, height;
  -moz-transition-property: -moz-transform;
  -o-transition-property: -o-transform;
  -ms-transition-property: -ms-transform;
  transition-property: transform, height;
}
/* a11y */
.swiper-container .swiper-notification {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  opacity: 0;
  z-index: -1000;
}
/* IE10 Windows Phone 8 Fixes */
.swiper-wp8-horizontal {
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}
.swiper-wp8-vertical {
  -ms-touch-action: pan-x;
  touch-action: pan-x;
}
/* Arrows */
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  width: 27px;
  height: 44px;
  margin-top: -22px;
  z-index: 10;
  cursor: pointer;
  -moz-background-size: 27px 44px;
  -webkit-background-size: 27px 44px;
  background-size: 27px 44px;
  background-position: center;
  background-repeat: no-repeat;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  cursor: auto;
  pointer-events: none;
}
.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  left: 10px;
  right: auto;
}
.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
  right: 10px;
  left: auto;
}
.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
/* Pagination Styles */
.swiper-pagination {
  position: absolute;
  text-align: center;
  -webkit-transition: 300ms;
  -moz-transition: 300ms;
  -o-transition: 300ms;
  transition: 300ms;
  -webkit-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%;
}
/* Bullets */
.swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  display: inline-block;
  border-radius: 100%;
  background: #000;
  opacity: 0.2;
}
button.swiper-pagination-bullet {
  border: none;
  margin: 0;
  padding: 0;
  box-shadow: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}
.swiper-pagination-white .swiper-pagination-bullet {
  background: #fff;
}
.swiper-pagination-bullet-active {
  opacity: 1;
  background: #007aff;
}
.swiper-pagination-white .swiper-pagination-bullet-active {
  background: #fff;
}
.swiper-pagination-black .swiper-pagination-bullet-active {
  background: #000;
}
.swiper-container-vertical > .swiper-pagination-bullets {
  right: 10px;
  top: 50%;
  -webkit-transform: translate3d(0px, -50%, 0);
  -moz-transform: translate3d(0px, -50%, 0);
  -o-transform: translate(0px, -50%);
  -ms-transform: translate3d(0px, -50%, 0);
  transform: translate3d(0px, -50%, 0);
}
.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 5px 0;
  display: block;
}
.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0 5px;
}
/* Progress */
.swiper-pagination-progress {
  background: rgba(0, 0, 0, 0.25);
  position: absolute;
}
.swiper-pagination-progress .swiper-pagination-progressbar {
  background: #007aff;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
  -webkit-transform-origin: left top;
  -moz-transform-origin: left top;
  -ms-transform-origin: left top;
  -o-transform-origin: left top;
  transform-origin: left top;
}
.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
  -webkit-transform-origin: right top;
  -moz-transform-origin: right top;
  -ms-transform-origin: right top;
  -o-transform-origin: right top;
  transform-origin: right top;
}
.swiper-container-horizontal > .swiper-pagination-progress {
  width: 100%;
  height: 4px;
  left: 0;
  top: 0;
}
.swiper-container-vertical > .swiper-pagination-progress {
  width: 4px;
  height: 100%;
  left: 0;
  top: 0;
}
.swiper-pagination-progress.swiper-pagination-white {
  background: rgba(255, 255, 255, 0.5);
}
.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
  background: #fff;
}
.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
  background: #000;
}
/* 3D Container */
.swiper-container-3d {
  -webkit-perspective: 1200px;
  -moz-perspective: 1200px;
  -o-perspective: 1200px;
  perspective: 1200px;
}
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 16+, IE10, Opera 12.50+ */
}
.swiper-container-3d .swiper-slide-shadow-right {
  background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 16+, IE10, Opera 12.50+ */
}
.swiper-container-3d .swiper-slide-shadow-top {
  background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 16+, IE10, Opera 12.50+ */
}
.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
  /* Safari 4+, Chrome */
  background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Chrome 10+, Safari 5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 3.6-15 */
  background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Opera 11.10-12.00 */
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  /* Firefox 16+, IE10, Opera 12.50+ */
}
/* Coverflow */
.swiper-container-coverflow .swiper-wrapper,
.swiper-container-flip .swiper-wrapper {
  /* Windows 8 IE 10 fix */
  -ms-perspective: 1200px;
}
/* Cube + Flip */
.swiper-container-cube,
.swiper-container-flip {
  overflow: visible;
}
.swiper-container-cube .swiper-slide,
.swiper-container-flip .swiper-slide {
  pointer-events: none;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
  z-index: 1;
}
.swiper-container-cube .swiper-slide .swiper-slide,
.swiper-container-flip .swiper-slide .swiper-slide {
  pointer-events: none;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-flip .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}
.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
.swiper-container-flip .swiper-slide-shadow-bottom,
.swiper-container-cube .swiper-slide-shadow-left,
.swiper-container-flip .swiper-slide-shadow-left,
.swiper-container-cube .swiper-slide-shadow-right,
.swiper-container-flip .swiper-slide-shadow-right {
  z-index: 0;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
}
/* Cube */
.swiper-container-cube .swiper-slide {
  visibility: hidden;
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
  width: 100%;
  height: 100%;
}
.swiper-container-cube.swiper-container-rtl .swiper-slide {
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
.swiper-container-cube .swiper-slide-next + .swiper-slide {
  pointer-events: auto;
  visibility: visible;
}
.swiper-container-cube .swiper-cube-shadow {
  position: absolute;
  left: 0;
  bottom: 0px;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.6;
  -webkit-filter: blur(50px);
  filter: blur(50px);
  z-index: 0;
}
/* Fade */
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  -webkit-transition-timing-function: ease-out;
  -moz-transition-timing-function: ease-out;
  -ms-transition-timing-function: ease-out;
  -o-transition-timing-function: ease-out;
  transition-timing-function: ease-out;
}
.swiper-container-fade .swiper-slide {
  pointer-events: none;
  -webkit-transition-property: opacity;
  -moz-transition-property: opacity;
  -o-transition-property: opacity;
  transition-property: opacity;
}
.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}
.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}
.swiper-zoom-container {
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -moz-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-box-align: center;
  -moz-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
  text-align: center;
}
.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
/* Scrollbar */
.swiper-scrollbar {
  border-radius: 10px;
  position: relative;
  -ms-touch-action: none;
  background: rgba(0, 0, 0, 0.1);
}
.swiper-container-horizontal > .swiper-scrollbar {
  position: absolute;
  left: 1%;
  bottom: 3px;
  z-index: 50;
  height: 5px;
  width: 98%;
}
.swiper-container-vertical > .swiper-scrollbar {
  position: absolute;
  right: 3px;
  top: 1%;
  z-index: 50;
  width: 5px;
  height: 98%;
}
.swiper-scrollbar-drag {
  height: 100%;
  width: 100%;
  position: relative;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
  left: 0;
  top: 0;
}
.swiper-scrollbar-cursor-drag {
  cursor: move;
}
/* Preloader */
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  -webkit-transform-origin: 50%;
  -moz-transform-origin: 50%;
  transform-origin: 50%;
  -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;
  animation: swiper-preloader-spin 1s steps(12, end) infinite;
}
.swiper-lazy-preloader:after {
  display: block;
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  background-position: 50%;
  -webkit-background-size: 100%;
  background-size: 100%;
  background-repeat: no-repeat;
}
.swiper-lazy-preloader-white:after {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
@-webkit-keyframes swiper-preloader-spin {
  100% {
    -webkit-transform: rotate(360deg);
  }
}
@keyframes swiper-preloader-spin {
  100% {
    transform: rotate(360deg);
  }
}
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.twitter-moments {
  margin-bottom: 3rem; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.bl31-introduction p {
  font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
  margin-bottom: 3.75rem; }

/**
 * The following CSS is used to format the inline editor in edit mode.
 */
.bl31-introduction p {
  transition: color 1s cubic-bezier(1, 0, 0.95, 0); }

.bl31-introduction p.is-invalid {
  color: #e14132;
  transition: color 0s; }

.bl31-introduction .cq-placeholder {
  height: auto;
  min-height: 2.875rem; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.c04-image-carousel > .container {
  margin: 0; }

.c04-image-carousel .swiper-container {
  width: 100vw;
  max-width: 1600px;
  position: absolute;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3.75rem; }

.c04-image-carousel .image {
  margin-bottom: 2.25rem; }
  @media (min-width: 768px) {
    .c04-image-carousel .image {
      margin-top: 2.25rem;
      margin-bottom: 3.75rem; } }
  .c04-image-carousel .image__container {
    background-size: cover;
    background-position: center;
    position: relative;
    height: 12rem; }
    @media (min-width: 768px) {
      .c04-image-carousel .image__container {
        height: 30rem; } }
  .c04-image-carousel .image__footer {
    margin-top: 1.5rem; }
    @media (min-width: 768px) {
      .c04-image-carousel .image__footer.container {
        margin-left: 0;
        margin-right: 0; } }
  .c04-image-carousel .image__caption {
    line-height: 1rem; }
    @media (min-width: 768px) {
      .c04-image-carousel .image__caption {
        line-height: 1.5rem; } }

.c04-image-carousel .swiper-slide {
  width: 100vw;
  padding-bottom: 2rem; }
  @media (min-width: 768px) {
    .c04-image-carousel .swiper-slide {
      width: 74.4%;
      margin-left: 3.8%;
      margin-right: 3.8%; } }

.c04-image-carousel .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background-color: #CCD6DD; }

.c04-image-carousel .image-carousel-placeholder {
  height: 40.5rem; }
  @media (min-width: 768px) {
    .c04-image-carousel .image-carousel-placeholder {
      height: 19.5rem; } }

.theme--orange .c04-image-carousel .swiper-pagination-bullet-active {
  background-color: #F45D22 !important;
  transition: background-color 1s ease-in-out; }

.theme--yellow .c04-image-carousel .swiper-pagination-bullet-active {
  background-color: #FFAD1F !important;
  transition: background-color 1s ease-in-out; }

.theme--green .c04-image-carousel .swiper-pagination-bullet-active {
  background-color: #1FB650 !important;
  transition: background-color 1s ease-in-out; }

.theme--blue .c04-image-carousel .swiper-pagination-bullet-active {
  background-color: #1DA1F2 !important;
  transition: background-color 1s ease-in-out; }

.theme--purple .c04-image-carousel .swiper-pagination-bullet-active {
  background-color: #794BC4 !important;
  transition: background-color 1s ease-in-out; }

.theme--pink .c04-image-carousel .swiper-pagination-bullet-active {
  background-color: #E0245E !important;
  transition: background-color 1s ease-in-out; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.c05-video .video_player {
  margin-bottom: 4.5rem;
  color: #FFFFFF;
  position: relative; }
  .c05-video .video_player video {
    width: 100%;
    margin-right: auto;
    margin-left: auto; }
  .c05-video .video_player .plyrCustomControls {
    display: none; }
  .c05-video .video_player__wrapper {
    width: 100%;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    overflow: hidden; }
    .c05-video .video_player__wrapper:hover .plyr--video .plyr__controls {
      bottom: 0; }
  .c05-video .video_player.twelve {
    width: 89.6%;
    max-width: 1600px;
    position: absolute;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    position: absolute; }
    .c05-video .video_player.twelve__wrapper {
      height: 39.75rem; }
      .c05-video .video_player.twelve__wrapper .plyr {
        position: absolute;
        top: 0;
        left: 0; }
  .c05-video .video_player.six {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0;
    position: relative; }

.c05-video .plyr--video .plyr__controls {
  transition: all 0.25s ease;
  height: 4.5rem;
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.3) 100%);
  padding: 1.5rem; }

.c05-video .plyr__controls .plyr__progress,
.c05-video .plyr--video .plyr__controls button {
  padding: 0;
  margin-left: 0;
  margin-right: 1.5rem; }

.c05-video .plyr--video .plyr__controls button svg {
  width: 30px;
  height: 30px;
  margin-left: -10px; }

.c05-video .plyr__controls > button:first-child,
.c05-video .plyr__controls > button:nth-child(2) {
  margin-right: 18px; }

.c05-video .plyr__controls .plyr__time {
  margin-left: 0;
  margin-right: 0.375rem;
  vertical-align: bottom; }

.c05-video .plyr__controls .plyr__time:nth-of-type(2) {
  margin-right: 0.375rem; }

.c05-video .plyr__progress--played,
.c05-video .plyr__volume--display {
  color: #FFFFFF; }

.c05-video .plyr__progress--buffer,
.c05-video .plyr__progress--played,
.c05-video .plyr__volume--display {
  height: 2px;
  margin: 0; }

.c05-video .plyr__time span {
  font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 700;
  font-size: 0.87rem;
  line-height: 1.5rem;
  letter-spacing: 0.03rem;
  margin: 0;
  padding: 0 0 0rem 0;
  color: #FFFFFF; }
  @media (min-width: 768px) {
    .c05-video .plyr__time span {
      font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
      font-weight: 700;
      font-size: 0.87rem;
      line-height: 1.5rem;
      letter-spacing: 0.03rem;
      margin: 0;
      padding: 0 0 0rem 0; } }

.c05-video .plyr__time + .plyr__time {
  vertical-align: baseline; }

.c05-video .plyr__time + .plyr__time::before {
  color: #FFFFFF;
  margin-right: 0.375rem; }

.c05-video .plyr__controls .plyr__time {
  margin-left: 0;
  margin-right: 0; }

.c05-video .plyr--video .plyr__controls button.fullscreen {
  width: 26px;
  margin-right: -8px;
  margin-left: 0; }

.c05-video .plyr .volWrap {
  color: #FFFFFF;
  margin-left: 15px;
  margin-right: 19px;
  padding-top: 10px;
  padding-bottom: 10px; }
  .c05-video .plyr .volWrap:hover {
    margin-bottom: 0px; }
  .c05-video .plyr .volWrap button {
    width: 31px;
    margin-right: 0;
    margin-left: -2px; }
    .c05-video .plyr .volWrap button svg {
      margin-left: 0; }
  .c05-video .plyr .volWrap .plyr__volume {
    display: none;
    max-width: 3rem;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    position: absolute;
    right: 56px;
    bottom: 75px; }
  .c05-video .plyr .volWrap:hover .plyr__volume {
    display: block; }
    .c05-video .plyr .volWrap:hover .plyr__volume:hover {
      display: block; }

.c05-video .plyr.plyr--muted .plyr__volume {
  display: none; }

.c05-video .plyr__play-large {
  border: 0;
  box-shadow: 0 0 0 transparent; }
  .c05-video .plyr__play-large svg {
    width: 130px;
    height: 130px; }

.c05-video .plyr--audio .plyr__controls button.tab-focus:focus,
.c05-video .plyr--audio .plyr__controls button:hover,
.c05-video .plyr__play-large,
.c05-video .plyr__play-large .plyr--video .button.tab-focus:focus,
.c05-video .plyr--video .plyr__controls button:hover {
  background: none; }

.c05-video .video__placeholder {
  height: 26.25rem; }
  @media (min-width: 768px) {
    .c05-video .video__placeholder {
      height: 39.75rem; } }

.c05-video::after {
  content: " ";
  display: block;
  clear: both; }

.c05-video .hide {
  display: none;
  visibility: hidden; }

.plyr input[type=range]::-webkit-slider-thumb {
  width: 0px;
  height: 0px;
  opacity: 0; }

.plyr input[type=range]::-moz-range-thumb {
  width: 0px;
  height: 0px;
  opacity: 0; }

.plyr input[type=range]::-ms-thumb {
  width: 0px;
  height: 0px;
  opacity: 0; }

.plyr input[type=range]:active::-webkit-slider-thumb {
  width: 0px;
  height: 0px;
  opacity: 0; }

.plyr input[type=range]:active::-moz-range-thumb {
  width: 0px;
  height: 0px;
  opacity: 0; }

.plyr input[type=range]:active::-ms-thumb {
  width: 0px;
  height: 0px;
  opacity: 0; }
.plyr input[type=range]:focus,.plyr:focus{outline:0}.plyr .plyr__video-embed iframe,.plyr__tooltip{pointer-events:none}@keyframes plyr-progress{to{background-position:25px 0}}.plyr{position:relative;max-width:100%;min-width:200px;font-family:Avenir,'Avenir Next','Helvetica Neue','Segoe UI',Helvetica,Arial,sans-serif;direction:ltr}.plyr,.plyr *,.plyr ::after,.plyr ::before{box-sizing:border-box}.plyr a,.plyr button,.plyr input,.plyr label{-ms-touch-action:manipulation;touch-action:manipulation}.plyr audio,.plyr video{width:100%;height:auto;vertical-align:middle;border-radius:inherit}.plyr input[type=range]{display:block;height:20px;width:100%;margin:0;padding:0;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;border:none;background:0 0}.plyr input[type=range]::-webkit-slider-runnable-track{height:8px;background:0 0;border:0;border-radius:4px;-webkit-user-select:none;user-select:none}.plyr input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-4px;position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box}.plyr input[type=range]::-moz-range-track{height:8px;background:0 0;border:0;border-radius:4px;-moz-user-select:none;user-select:none}.plyr input[type=range]::-moz-range-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box}.plyr input[type=range]::-ms-track{height:8px;background:0 0;border:0;color:transparent}.plyr input[type=range]::-ms-fill-upper{height:8px;background:0 0;border:0;border-radius:4px;-ms-user-select:none;user-select:none}.plyr input[type=range]::-ms-fill-lower{height:8px;border:0;border-radius:4px;-ms-user-select:none;user-select:none;background:#3498db}.plyr input[type=range]::-ms-thumb{position:relative;height:16px;width:16px;background:#fff;border:2px solid transparent;border-radius:100%;transition:background .2s ease,border .2s ease,transform .2s ease;box-shadow:0 1px 1px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.15);box-sizing:border-box;margin-top:0}.plyr input[type=range]::-ms-tooltip{display:none}.plyr input[type=range]::-moz-focus-outer{border:0}.plyr input[type=range].tab-focus:focus{outline-offset:3px}.plyr input[type=range]:active::-webkit-slider-thumb{background:#3498db;border-color:#fff;transform:scale(1.25)}.plyr input[type=range]:active::-moz-range-thumb{background:#3498db;border-color:#fff;transform:scale(1.25)}.plyr input[type=range]:active::-ms-thumb{background:#3498db;border-color:#fff;transform:scale(1.25)}.plyr--video input[type=range].tab-focus:focus{outline:rgba(255,255,255,.5) dotted 1px}.plyr--audio input[type=range].tab-focus:focus{outline:rgba(86,93,100,.5) dotted 1px}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;position:absolute!important;padding:0!important;border:0!important;height:1px!important;width:1px!important}.plyr__video-wrapper{position:relative;background:#000;border-radius:inherit}.plyr__video-embed{padding-bottom:56.25%;height:0;border-radius:inherit;overflow:hidden;z-index:0}.plyr__video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plyr__video-embed>div{position:relative;padding-bottom:200%;transform:translateY(-35.95%)}.plyr video::-webkit-media-text-track-container{display:none}.plyr__captions{display:none;position:absolute;bottom:0;left:0;width:100%;padding:20px;transform:translateY(-40px);transition:transform .3s ease;color:#fff;font-size:16px;text-align:center;font-weight:400}.plyr__captions span{border-radius:2px;padding:3px 10px;background:rgba(0,0,0,.7);-webkit-box-decoration-break:clone;box-decoration-break:clone;line-height:150%}.plyr__captions span:empty{display:none}@media (min-width:768px){.plyr__captions{font-size:24px}}.plyr--captions-active .plyr__captions{display:block}.plyr--hide-controls .plyr__captions{transform:translateY(-15px)}@media (min-width:1024px){.plyr--fullscreen-active .plyr__captions{font-size:32px}}.plyr ::-webkit-media-controls{display:none}.plyr__controls{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;line-height:1;text-align:center}.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>button{margin-left:5px}.plyr__controls .plyr__progress:first-child,.plyr__controls .plyr__time:first-child,.plyr__controls>button:first-child{margin-left:0}.plyr__controls .plyr__volume{margin-left:5px}.plyr__controls [data-plyr=pause]{margin-left:0}.plyr__controls button{position:relative;display:inline-block;-ms-flex-negative:0;flex-shrink:0;overflow:visible;vertical-align:middle;padding:7px;border:0;background:0 0;border-radius:3px;cursor:pointer;transition:background .3s ease,color .3s ease,opacity .3s ease;color:inherit}.plyr__controls button svg{width:18px;height:18px;display:block;fill:currentColor}.plyr__controls button:focus{outline:0}.plyr__controls .icon--captions-on,.plyr__controls .icon--exit-fullscreen,.plyr__controls .icon--muted{display:none}@media (min-width:480px){.plyr__controls .plyr__progress,.plyr__controls .plyr__time,.plyr__controls>button{margin-left:10px}}.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none}.plyr--video .plyr__controls{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:50px 10px 10px;background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.5));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;color:#fff;transition:opacity .3s ease}.plyr--video .plyr__controls button.tab-focus:focus,.plyr--video .plyr__controls button:hover{background:#3498db;color:#fff}.plyr--audio .plyr__controls{padding:10px;border-radius:inherit;background:#fff;border:1px solid #dbe3e8;color:#565D64}.plyr--audio .plyr__controls button.tab-focus:focus,.plyr--audio .plyr__controls button:hover,.plyr__play-large{background:#3498db;color:#fff}.plyr__play-large{display:none;position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);padding:10px;border:4px solid currentColor;border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.15);transition:all .3s ease}.plyr__play-large svg{position:relative;left:2px;width:20px;height:20px;display:block;fill:currentColor}.plyr__play-large:focus{outline:rgba(255,255,255,.5) dotted 1px}.plyr .plyr__play-large{display:inline-block}.plyr--audio .plyr__play-large,.plyr--playing .plyr__controls [data-plyr=play],.plyr__controls [data-plyr=pause]{display:none}.plyr--playing .plyr__play-large{opacity:0;visibility:hidden}.plyr--playing .plyr__controls [data-plyr=pause]{display:inline-block}.plyr--captions-active .plyr__controls .icon--captions-on,.plyr--fullscreen-active .icon--exit-fullscreen,.plyr--muted .plyr__controls .icon--muted{display:block}.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr--captions-active .plyr__controls .icon--captions-on+svg,.plyr--fullscreen-active .icon--exit-fullscreen+svg,.plyr--muted .plyr__controls .icon--muted+svg{display:none}.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen]{display:inline-block}.plyr__tooltip{position:absolute;z-index:2;bottom:100%;margin-bottom:10px;padding:5px 7.5px;opacity:0;background:rgba(0,0,0,.7);border-radius:3px;color:#fff;font-size:14px;line-height:1.3;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s .1s ease,opacity .2s .1s ease}.plyr__tooltip::before{content:'';position:absolute;width:0;height:0;left:50%;transform:translateX(-50%);bottom:-4px;border-right:4px solid transparent;border-top:4px solid rgba(0,0,0,.7);border-left:4px solid transparent;z-index:2}.plyr button.tab-focus:focus .plyr__tooltip,.plyr button:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%,0) scale(1)}.plyr button:hover .plyr__tooltip{z-index:3}.plyr__controls button:first-child .plyr__tooltip{left:0;transform:translate(0,10px) scale(.8);transform-origin:0 100%}.plyr__controls button:first-child .plyr__tooltip::before{left:16px}.plyr__controls button:last-child .plyr__tooltip{right:0;transform:translate(0,10px) scale(.8);transform-origin:100% 100%}.plyr__controls button:last-child .plyr__tooltip::before{left:auto;right:16px;transform:translateX(50%)}.plyr__controls button:first-child .plyr__tooltip--visible,.plyr__controls button:first-child.tab-focus:focus .plyr__tooltip,.plyr__controls button:first-child:hover .plyr__tooltip,.plyr__controls button:last-child .plyr__tooltip--visible,.plyr__controls button:last-child.tab-focus:focus .plyr__tooltip,.plyr__controls button:last-child:hover .plyr__tooltip{transform:translate(0,0) scale(1)}.plyr__progress{position:relative;display:none;-ms-flex:1;flex:1}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress input[type=range]::-webkit-slider-runnable-track{background:0 0}.plyr__progress input[type=range]::-moz-range-track{background:0 0}.plyr__progress input[type=range]::-ms-fill-upper{background:0 0}.plyr__progress .plyr__tooltip{left:0}.plyr .plyr__progress{display:inline-block}.plyr__progress--buffer,.plyr__progress--played,.plyr__volume--display{position:absolute;left:0;top:50%;width:100%;height:8px;margin:-4px 0 0;padding:0;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:100px}.plyr__progress--buffer::-webkit-progress-bar,.plyr__progress--played::-webkit-progress-bar,.plyr__volume--display::-webkit-progress-bar{background:0 0}.plyr__progress--buffer::-webkit-progress-value,.plyr__progress--played::-webkit-progress-value,.plyr__volume--display::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-moz-progress-bar,.plyr__progress--played::-moz-progress-bar,.plyr__volume--display::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:8px}.plyr__progress--buffer::-ms-fill,.plyr__progress--played::-ms-fill,.plyr__volume--display::-ms-fill{border-radius:100px}.plyr__progress--played,.plyr__volume--display{z-index:1;color:#3498db;background:0 0;transition:none}.plyr__progress--played::-webkit-progress-value,.plyr__volume--display::-webkit-progress-value{min-width:8px;max-width:99%;border-top-right-radius:0;border-bottom-right-radius:0;transition:none}.plyr__progress--played::-moz-progress-bar,.plyr__volume--display::-moz-progress-bar{min-width:8px;max-width:99%;border-top-right-radius:0;border-bottom-right-radius:0;transition:none}.plyr__progress--played::-ms-fill,.plyr__volume--display::-ms-fill{display:none}.plyr__progress--buffer::-webkit-progress-value{transition:width .2s ease}.plyr__progress--buffer::-moz-progress-bar{transition:width .2s ease}.plyr__progress--buffer::-ms-fill{transition:width .2s ease}.plyr--video .plyr__progress--buffer,.plyr--video .plyr__volume--display{background:rgba(255,255,255,.25)}.plyr--video .plyr__progress--buffer{color:rgba(255,255,255,.25)}.plyr--audio .plyr__progress--buffer,.plyr--audio .plyr__volume--display{background:rgba(198,214,219,.66)}.plyr--audio .plyr__progress--buffer{color:rgba(198,214,219,.66)}.plyr--loading .plyr__progress--buffer{animation:plyr-progress 1s linear infinite;background-size:25px 25px;background-repeat:repeat-x;background-image:linear-gradient(-45deg,rgba(0,0,0,.15) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.15) 75%,transparent 75%,transparent);color:transparent}.plyr--video.plyr--loading .plyr__progress--buffer{background-color:rgba(255,255,255,.25)}.plyr--audio.plyr--loading .plyr__progress--buffer{background-color:rgba(198,214,219,.66)}.plyr__time{display:inline-block;vertical-align:middle;font-size:14px}.plyr__time+.plyr__time{display:none}@media (min-width:768px){.plyr__time+.plyr__time{display:inline-block}}.plyr__time+.plyr__time::before{content:'\2044';margin-right:10px}.plyr__volume{display:none}.plyr .plyr__volume{-ms-flex:1;flex:1;position:relative}.plyr .plyr__volume input[type=range]{position:relative;z-index:2}@media (min-width:480px){.plyr .plyr__volume{display:block;max-width:60px}}@media (min-width:768px){.plyr .plyr__volume{max-width:100px}}.plyr--is-ios .plyr__volume,.plyr--is-ios [data-plyr=mute]{display:none!important}.plyr--fullscreen-active{position:fixed;top:0;left:0;right:0;bottom:0;height:100%;width:100%;z-index:10000000;background:#000;border-radius:0!important}.plyr--fullscreen-active video{height:100%}.plyr--fullscreen-active .plyr__video-wrapper{height:100%;width:100%}.plyr--fullscreen-active .plyr__video-embed{overflow:visible}.plyr--fullscreen-active .plyr__controls{position:absolute;bottom:0;left:0;right:0}.plyr--fullscreen-active.plyr--vimeo .plyr__video-wrapper{height:0;top:50%;transform:translateY(-50%)}/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.c12-account-card {
  margin-top: 3.75rem;
  margin-bottom: 3.75rem;
  width: 100%;
  float: left;
  margin-left: 0;
  margin-right: 0; }
  @media (min-width: 768px) {
    .c12-account-card {
      width: 49.15254%;
      float: left;
      margin-right: 1.69492%;
      margin-left: 33.89831%; } }
  .c12-account-card__account {
    float: none;
    margin-bottom: 3rem;
    padding-top: 0; }
    .c12-account-card__account img {
      width: 23.72881%;
      float: left;
      margin-right: 1.69492%;
      width: 108px;
      height: auto;
      margin-right: 1.125rem;
      border-radius: 0.225rem;
      background-clip: padding-box;
      /* stops bg color from leaking outside the border: */ }
    .c12-account-card__accountname, .c12-account-card__accounthandle, .c12-account-card__accountdescription {
      display: block;
      color: #657786;
      margin-left: 126px; }
    .c12-account-card__account a {
      text-decoration: none;
      color: #14171A; }
    .c12-account-card__accountname {
      margin-bottom: 0.5rem; }
    .c12-account-card__accounthandle {
      margin-bottom: 0.75rem; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.color--neutral-black--has-hover {
  color: #14171A;
  transition: opacity 0.3s ease-in-out; }
  .color--neutral-black--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .color--neutral-black--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.bg-color--neutral-black--has-hover {
  background-color: #14171A;
  transition: opacity 0.3s ease-in-out; }
  .bg-color--neutral-black--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .bg-color--neutral-black--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.fill-color--neutral-black--has-hover {
  fill: #14171A;
  transition: opacity 0.3s ease-in-out; }
  .fill-color--neutral-black--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .fill-color--neutral-black--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.border-color--neutral-black--has-hover {
  border-color: #14171A;
  transition: opacity 0.3s ease-in-out; }
  .border-color--neutral-black--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .border-color--neutral-black--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.color--neutral-dark-gray--has-hover {
  color: #657786;
  transition: color 0.3s ease-in-out; }
  .color--neutral-dark-gray--has-hover:hover {
    color: #14171A;
    cursor: pointer; }
  .color--neutral-dark-gray--has-hover:active {
    color: #14171A;
    cursor: pointer; }

.bg-color--neutral-dark-gray--has-hover {
  background-color: #657786;
  transition: color 0.3s ease-in-out; }
  .bg-color--neutral-dark-gray--has-hover:hover {
    color: #14171A;
    cursor: pointer; }
  .bg-color--neutral-dark-gray--has-hover:active {
    color: #14171A;
    cursor: pointer; }

.fill-color--neutral-dark-gray--has-hover {
  fill: #657786;
  transition: color 0.3s ease-in-out; }
  .fill-color--neutral-dark-gray--has-hover:hover {
    color: #14171A;
    cursor: pointer; }
  .fill-color--neutral-dark-gray--has-hover:active {
    color: #14171A;
    cursor: pointer; }

.border-color--neutral-dark-gray--has-hover {
  border-color: #657786;
  transition: color 0.3s ease-in-out; }
  .border-color--neutral-dark-gray--has-hover:hover {
    color: #14171A;
    cursor: pointer; }
  .border-color--neutral-dark-gray--has-hover:active {
    color: #14171A;
    cursor: pointer; }

.color--neutral-light-gray--has-hover {
  color: #AAB8C2;
  transition: opacity 0.3s ease-in-out; }
  .color--neutral-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .color--neutral-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.bg-color--neutral-light-gray--has-hover {
  background-color: #AAB8C2;
  transition: opacity 0.3s ease-in-out; }
  .bg-color--neutral-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .bg-color--neutral-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.fill-color--neutral-light-gray--has-hover {
  fill: #AAB8C2;
  transition: opacity 0.3s ease-in-out; }
  .fill-color--neutral-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .fill-color--neutral-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.border-color--neutral-light-gray--has-hover {
  border-color: #AAB8C2;
  transition: opacity 0.3s ease-in-out; }
  .border-color--neutral-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .border-color--neutral-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.color--neutral-extra-light-gray--has-hover {
  color: #CCD6DD;
  transition: opacity 0.3s ease-in-out; }
  .color--neutral-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .color--neutral-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.bg-color--neutral-extra-light-gray--has-hover {
  background-color: #CCD6DD;
  transition: opacity 0.3s ease-in-out; }
  .bg-color--neutral-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .bg-color--neutral-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.fill-color--neutral-extra-light-gray--has-hover {
  fill: #CCD6DD;
  transition: opacity 0.3s ease-in-out; }
  .fill-color--neutral-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .fill-color--neutral-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.border-color--neutral-extra-light-gray--has-hover {
  border-color: #CCD6DD;
  transition: opacity 0.3s ease-in-out; }
  .border-color--neutral-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .border-color--neutral-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.color--neutral-extra-extra-light-gray--has-hover {
  color: #F5F8FA;
  transition: opacity 0.3s ease-in-out; }
  .color--neutral-extra-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .color--neutral-extra-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.bg-color--neutral-extra-extra-light-gray--has-hover {
  background-color: #F5F8FA;
  transition: opacity 0.3s ease-in-out; }
  .bg-color--neutral-extra-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .bg-color--neutral-extra-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.fill-color--neutral-extra-extra-light-gray--has-hover {
  fill: #F5F8FA;
  transition: opacity 0.3s ease-in-out; }
  .fill-color--neutral-extra-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .fill-color--neutral-extra-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.border-color--neutral-extra-extra-light-gray--has-hover {
  border-color: #F5F8FA;
  transition: opacity 0.3s ease-in-out; }
  .border-color--neutral-extra-extra-light-gray--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .border-color--neutral-extra-extra-light-gray--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.color--neutral-white--has-hover {
  color: #FFFFFF;
  transition: opacity 0.3s ease-in-out; }
  .color--neutral-white--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .color--neutral-white--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.bg-color--neutral-white--has-hover {
  background-color: #FFFFFF;
  transition: opacity 0.3s ease-in-out; }
  .bg-color--neutral-white--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .bg-color--neutral-white--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.fill-color--neutral-white--has-hover {
  fill: #FFFFFF;
  transition: opacity 0.3s ease-in-out; }
  .fill-color--neutral-white--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .fill-color--neutral-white--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

.border-color--neutral-white--has-hover {
  border-color: #FFFFFF;
  transition: opacity 0.3s ease-in-out; }
  .border-color--neutral-white--has-hover:hover {
    opacity: 0.6;
    cursor: pointer; }
  .border-color--neutral-white--has-hover:active {
    opacity: 0.6;
    cursor: pointer; }

/*
  Color Hover Utility Classes:
  Creates a class for each category and color combination based on the interaction
  logic of the system (hover goes to one shade darker, active and hover are the same).

  .bg-color--dark-blue--hover {
    transition: background-color $transitionTiming $transitionEasing;
    &:hover {
      background-color: #005FD1;
    }
    &:active {
      background-color: #005FD1;
    }
  }


  Properties: color, background-color (bg-color), fill (fill-color), border-color
  Categories: extra-dark, dark, light, extra-light, neutral
  Colors: orange, yellow, green, blue, purple, pink

  .{property}--{category}-{color}--hover {
    transition: {property} $transitionTiming $transitionEasing;
    &:hover {
      {property}: {hoverColor};
    }
    &:active {
      {property}: {activeColor};
    }
  }

  Note: the background-color property uses bg-color in the classname.
  All others use the same class name as the CSS property they set.

*/
.color--extra-light-orange--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-light-orange--hover:hover {
    color: #FF8D57;
    cursor: pointer; }
  .color--extra-light-orange--hover:active {
    color: #FF8D57;
    cursor: pointer; }

.bg-color--extra-light-orange--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-light-orange--hover:hover {
    background-color: #FF8D57;
    cursor: pointer; }
  .bg-color--extra-light-orange--hover:active {
    background-color: #FF8D57;
    cursor: pointer; }

.fill-color--extra-light-orange--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-light-orange--hover:hover {
    fill: #FF8D57;
    cursor: pointer; }
  .fill-color--extra-light-orange--hover:active {
    fill: #FF8D57;
    cursor: pointer; }

.border-color--extra-light-orange--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-light-orange--hover:hover {
    border-color: #FF8D57;
    cursor: pointer; }
  .border-color--extra-light-orange--hover:active {
    border-color: #FF8D57;
    cursor: pointer; }

.color--extra-light-yellow--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-light-yellow--hover:hover {
    color: #FFD03F;
    cursor: pointer; }
  .color--extra-light-yellow--hover:active {
    color: #FFD03F;
    cursor: pointer; }

.bg-color--extra-light-yellow--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-light-yellow--hover:hover {
    background-color: #FFD03F;
    cursor: pointer; }
  .bg-color--extra-light-yellow--hover:active {
    background-color: #FFD03F;
    cursor: pointer; }

.fill-color--extra-light-yellow--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-light-yellow--hover:hover {
    fill: #FFD03F;
    cursor: pointer; }
  .fill-color--extra-light-yellow--hover:active {
    fill: #FFD03F;
    cursor: pointer; }

.border-color--extra-light-yellow--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-light-yellow--hover:hover {
    border-color: #FFD03F;
    cursor: pointer; }
  .border-color--extra-light-yellow--hover:active {
    border-color: #FFD03F;
    cursor: pointer; }

.color--extra-light-green--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-light-green--hover:hover {
    color: #68E090;
    cursor: pointer; }
  .color--extra-light-green--hover:active {
    color: #68E090;
    cursor: pointer; }

.bg-color--extra-light-green--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-light-green--hover:hover {
    background-color: #68E090;
    cursor: pointer; }
  .bg-color--extra-light-green--hover:active {
    background-color: #68E090;
    cursor: pointer; }

.fill-color--extra-light-green--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-light-green--hover:hover {
    fill: #68E090;
    cursor: pointer; }
  .fill-color--extra-light-green--hover:active {
    fill: #68E090;
    cursor: pointer; }

.border-color--extra-light-green--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-light-green--hover:hover {
    border-color: #68E090;
    cursor: pointer; }
  .border-color--extra-light-green--hover:active {
    border-color: #68E090;
    cursor: pointer; }

.color--extra-light-blue--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-light-blue--hover:hover {
    color: #71C9F8;
    cursor: pointer; }
  .color--extra-light-blue--hover:active {
    color: #71C9F8;
    cursor: pointer; }

.bg-color--extra-light-blue--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-light-blue--hover:hover {
    background-color: #71C9F8;
    cursor: pointer; }
  .bg-color--extra-light-blue--hover:active {
    background-color: #71C9F8;
    cursor: pointer; }

.fill-color--extra-light-blue--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-light-blue--hover:hover {
    fill: #71C9F8;
    cursor: pointer; }
  .fill-color--extra-light-blue--hover:active {
    fill: #71C9F8;
    cursor: pointer; }

.border-color--extra-light-blue--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-light-blue--hover:hover {
    border-color: #71C9F8;
    cursor: pointer; }
  .border-color--extra-light-blue--hover:active {
    border-color: #71C9F8;
    cursor: pointer; }

.color--extra-light-purple--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-light-purple--hover:hover {
    color: #A37CED;
    cursor: pointer; }
  .color--extra-light-purple--hover:active {
    color: #A37CED;
    cursor: pointer; }

.bg-color--extra-light-purple--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-light-purple--hover:hover {
    background-color: #A37CED;
    cursor: pointer; }
  .bg-color--extra-light-purple--hover:active {
    background-color: #A37CED;
    cursor: pointer; }

.fill-color--extra-light-purple--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-light-purple--hover:hover {
    fill: #A37CED;
    cursor: pointer; }
  .fill-color--extra-light-purple--hover:active {
    fill: #A37CED;
    cursor: pointer; }

.border-color--extra-light-purple--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-light-purple--hover:hover {
    border-color: #A37CED;
    cursor: pointer; }
  .border-color--extra-light-purple--hover:active {
    border-color: #A37CED;
    cursor: pointer; }

.color--extra-light-pink--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-light-pink--hover:hover {
    color: #F6809A;
    cursor: pointer; }
  .color--extra-light-pink--hover:active {
    color: #F6809A;
    cursor: pointer; }

.bg-color--extra-light-pink--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-light-pink--hover:hover {
    background-color: #F6809A;
    cursor: pointer; }
  .bg-color--extra-light-pink--hover:active {
    background-color: #F6809A;
    cursor: pointer; }

.fill-color--extra-light-pink--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-light-pink--hover:hover {
    fill: #F6809A;
    cursor: pointer; }
  .fill-color--extra-light-pink--hover:active {
    fill: #F6809A;
    cursor: pointer; }

.border-color--extra-light-pink--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-light-pink--hover:hover {
    border-color: #F6809A;
    cursor: pointer; }
  .border-color--extra-light-pink--hover:active {
    border-color: #F6809A;
    cursor: pointer; }

.color--light-orange--hover {
  transition: color 0.3s ease-in-out; }
  .color--light-orange--hover:hover {
    color: #F45D22;
    cursor: pointer; }
  .color--light-orange--hover:active {
    color: #F45D22;
    cursor: pointer; }

.bg-color--light-orange--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--light-orange--hover:hover {
    background-color: #F45D22;
    cursor: pointer; }
  .bg-color--light-orange--hover:active {
    background-color: #F45D22;
    cursor: pointer; }

.fill-color--light-orange--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--light-orange--hover:hover {
    fill: #F45D22;
    cursor: pointer; }
  .fill-color--light-orange--hover:active {
    fill: #F45D22;
    cursor: pointer; }

.border-color--light-orange--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--light-orange--hover:hover {
    border-color: #F45D22;
    cursor: pointer; }
  .border-color--light-orange--hover:active {
    border-color: #F45D22;
    cursor: pointer; }

.color--light-yellow--hover {
  transition: color 0.3s ease-in-out; }
  .color--light-yellow--hover:hover {
    color: #FFAD1F;
    cursor: pointer; }
  .color--light-yellow--hover:active {
    color: #FFAD1F;
    cursor: pointer; }

.bg-color--light-yellow--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--light-yellow--hover:hover {
    background-color: #FFAD1F;
    cursor: pointer; }
  .bg-color--light-yellow--hover:active {
    background-color: #FFAD1F;
    cursor: pointer; }

.fill-color--light-yellow--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--light-yellow--hover:hover {
    fill: #FFAD1F;
    cursor: pointer; }
  .fill-color--light-yellow--hover:active {
    fill: #FFAD1F;
    cursor: pointer; }

.border-color--light-yellow--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--light-yellow--hover:hover {
    border-color: #FFAD1F;
    cursor: pointer; }
  .border-color--light-yellow--hover:active {
    border-color: #FFAD1F;
    cursor: pointer; }

.color--light-green--hover {
  transition: color 0.3s ease-in-out; }
  .color--light-green--hover:hover {
    color: #1FB650;
    cursor: pointer; }
  .color--light-green--hover:active {
    color: #1FB650;
    cursor: pointer; }

.bg-color--light-green--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--light-green--hover:hover {
    background-color: #1FB650;
    cursor: pointer; }
  .bg-color--light-green--hover:active {
    background-color: #1FB650;
    cursor: pointer; }

.fill-color--light-green--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--light-green--hover:hover {
    fill: #1FB650;
    cursor: pointer; }
  .fill-color--light-green--hover:active {
    fill: #1FB650;
    cursor: pointer; }

.border-color--light-green--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--light-green--hover:hover {
    border-color: #1FB650;
    cursor: pointer; }
  .border-color--light-green--hover:active {
    border-color: #1FB650;
    cursor: pointer; }

.color--light-blue--hover {
  transition: color 0.3s ease-in-out; }
  .color--light-blue--hover:hover {
    color: #1DA1F2;
    cursor: pointer; }
  .color--light-blue--hover:active {
    color: #1DA1F2;
    cursor: pointer; }

.bg-color--light-blue--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--light-blue--hover:hover {
    background-color: #1DA1F2;
    cursor: pointer; }
  .bg-color--light-blue--hover:active {
    background-color: #1DA1F2;
    cursor: pointer; }

.fill-color--light-blue--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--light-blue--hover:hover {
    fill: #1DA1F2;
    cursor: pointer; }
  .fill-color--light-blue--hover:active {
    fill: #1DA1F2;
    cursor: pointer; }

.border-color--light-blue--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--light-blue--hover:hover {
    border-color: #1DA1F2;
    cursor: pointer; }
  .border-color--light-blue--hover:active {
    border-color: #1DA1F2;
    cursor: pointer; }

.color--light-purple--hover {
  transition: color 0.3s ease-in-out; }
  .color--light-purple--hover:hover {
    color: #794BC4;
    cursor: pointer; }
  .color--light-purple--hover:active {
    color: #794BC4;
    cursor: pointer; }

.bg-color--light-purple--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--light-purple--hover:hover {
    background-color: #794BC4;
    cursor: pointer; }
  .bg-color--light-purple--hover:active {
    background-color: #794BC4;
    cursor: pointer; }

.fill-color--light-purple--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--light-purple--hover:hover {
    fill: #794BC4;
    cursor: pointer; }
  .fill-color--light-purple--hover:active {
    fill: #794BC4;
    cursor: pointer; }

.border-color--light-purple--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--light-purple--hover:hover {
    border-color: #794BC4;
    cursor: pointer; }
  .border-color--light-purple--hover:active {
    border-color: #794BC4;
    cursor: pointer; }

.color--light-pink--hover {
  transition: color 0.3s ease-in-out; }
  .color--light-pink--hover:hover {
    color: #E0245E;
    cursor: pointer; }
  .color--light-pink--hover:active {
    color: #E0245E;
    cursor: pointer; }

.bg-color--light-pink--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--light-pink--hover:hover {
    background-color: #E0245E;
    cursor: pointer; }
  .bg-color--light-pink--hover:active {
    background-color: #E0245E;
    cursor: pointer; }

.fill-color--light-pink--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--light-pink--hover:hover {
    fill: #E0245E;
    cursor: pointer; }
  .fill-color--light-pink--hover:active {
    fill: #E0245E;
    cursor: pointer; }

.border-color--light-pink--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--light-pink--hover:hover {
    border-color: #E0245E;
    cursor: pointer; }
  .border-color--light-pink--hover:active {
    border-color: #E0245E;
    cursor: pointer; }

.color--dark-orange--hover {
  transition: color 0.3s ease-in-out; }
  .color--dark-orange--hover:hover {
    color: #D82E18;
    cursor: pointer; }
  .color--dark-orange--hover:active {
    color: #D82E18;
    cursor: pointer; }

.bg-color--dark-orange--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--dark-orange--hover:hover {
    background-color: #D82E18;
    cursor: pointer; }
  .bg-color--dark-orange--hover:active {
    background-color: #D82E18;
    cursor: pointer; }

.fill-color--dark-orange--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--dark-orange--hover:hover {
    fill: #D82E18;
    cursor: pointer; }
  .fill-color--dark-orange--hover:active {
    fill: #D82E18;
    cursor: pointer; }

.border-color--dark-orange--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--dark-orange--hover:hover {
    border-color: #D82E18;
    cursor: pointer; }
  .border-color--dark-orange--hover:active {
    border-color: #D82E18;
    cursor: pointer; }

.color--dark-yellow--hover {
  transition: color 0.3s ease-in-out; }
  .color--dark-yellow--hover:hover {
    color: #F98E00;
    cursor: pointer; }
  .color--dark-yellow--hover:active {
    color: #F98E00;
    cursor: pointer; }

.bg-color--dark-yellow--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--dark-yellow--hover:hover {
    background-color: #F98E00;
    cursor: pointer; }
  .bg-color--dark-yellow--hover:active {
    background-color: #F98E00;
    cursor: pointer; }

.fill-color--dark-yellow--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--dark-yellow--hover:hover {
    fill: #F98E00;
    cursor: pointer; }
  .fill-color--dark-yellow--hover:active {
    fill: #F98E00;
    cursor: pointer; }

.border-color--dark-yellow--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--dark-yellow--hover:hover {
    border-color: #F98E00;
    cursor: pointer; }
  .border-color--dark-yellow--hover:active {
    border-color: #F98E00;
    cursor: pointer; }

.color--dark-green--hover {
  transition: color 0.3s ease-in-out; }
  .color--dark-green--hover:hover {
    color: #008951;
    cursor: pointer; }
  .color--dark-green--hover:active {
    color: #008951;
    cursor: pointer; }

.bg-color--dark-green--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--dark-green--hover:hover {
    background-color: #008951;
    cursor: pointer; }
  .bg-color--dark-green--hover:active {
    background-color: #008951;
    cursor: pointer; }

.fill-color--dark-green--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--dark-green--hover:hover {
    fill: #008951;
    cursor: pointer; }
  .fill-color--dark-green--hover:active {
    fill: #008951;
    cursor: pointer; }

.border-color--dark-green--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--dark-green--hover:hover {
    border-color: #008951;
    cursor: pointer; }
  .border-color--dark-green--hover:active {
    border-color: #008951;
    cursor: pointer; }

.color--dark-blue--hover {
  transition: color 0.3s ease-in-out; }
  .color--dark-blue--hover:hover {
    color: #005FD1;
    cursor: pointer; }
  .color--dark-blue--hover:active {
    color: #005FD1;
    cursor: pointer; }

.bg-color--dark-blue--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--dark-blue--hover:hover {
    background-color: #005FD1;
    cursor: pointer; }
  .bg-color--dark-blue--hover:active {
    background-color: #005FD1;
    cursor: pointer; }

.fill-color--dark-blue--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--dark-blue--hover:hover {
    fill: #005FD1;
    cursor: pointer; }
  .fill-color--dark-blue--hover:active {
    fill: #005FD1;
    cursor: pointer; }

.border-color--dark-blue--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--dark-blue--hover:hover {
    border-color: #005FD1;
    cursor: pointer; }
  .border-color--dark-blue--hover:active {
    border-color: #005FD1;
    cursor: pointer; }

.color--dark-purple--hover {
  transition: color 0.3s ease-in-out; }
  .color--dark-purple--hover:hover {
    color: #4F0299;
    cursor: pointer; }
  .color--dark-purple--hover:active {
    color: #4F0299;
    cursor: pointer; }

.bg-color--dark-purple--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--dark-purple--hover:hover {
    background-color: #4F0299;
    cursor: pointer; }
  .bg-color--dark-purple--hover:active {
    background-color: #4F0299;
    cursor: pointer; }

.fill-color--dark-purple--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--dark-purple--hover:hover {
    fill: #4F0299;
    cursor: pointer; }
  .fill-color--dark-purple--hover:active {
    fill: #4F0299;
    cursor: pointer; }

.border-color--dark-purple--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--dark-purple--hover:hover {
    border-color: #4F0299;
    cursor: pointer; }
  .border-color--dark-purple--hover:active {
    border-color: #4F0299;
    cursor: pointer; }

.color--dark-pink--hover {
  transition: color 0.3s ease-in-out; }
  .color--dark-pink--hover:hover {
    color: #A01744;
    cursor: pointer; }
  .color--dark-pink--hover:active {
    color: #A01744;
    cursor: pointer; }

.bg-color--dark-pink--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--dark-pink--hover:hover {
    background-color: #A01744;
    cursor: pointer; }
  .bg-color--dark-pink--hover:active {
    background-color: #A01744;
    cursor: pointer; }

.fill-color--dark-pink--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--dark-pink--hover:hover {
    fill: #A01744;
    cursor: pointer; }
  .fill-color--dark-pink--hover:active {
    fill: #A01744;
    cursor: pointer; }

.border-color--dark-pink--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--dark-pink--hover:hover {
    border-color: #A01744;
    cursor: pointer; }
  .border-color--dark-pink--hover:active {
    border-color: #A01744;
    cursor: pointer; }

.color--extra-dark-orange--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-dark-orange--hover:hover {
    color: #F45D22;
    cursor: pointer; }
  .color--extra-dark-orange--hover:active {
    color: #F45D22;
    cursor: pointer; }

.bg-color--extra-dark-orange--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-dark-orange--hover:hover {
    background-color: #F45D22;
    cursor: pointer; }
  .bg-color--extra-dark-orange--hover:active {
    background-color: #F45D22;
    cursor: pointer; }

.fill-color--extra-dark-orange--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-dark-orange--hover:hover {
    fill: #F45D22;
    cursor: pointer; }
  .fill-color--extra-dark-orange--hover:active {
    fill: #F45D22;
    cursor: pointer; }

.border-color--extra-dark-orange--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-dark-orange--hover:hover {
    border-color: #F45D22;
    cursor: pointer; }
  .border-color--extra-dark-orange--hover:active {
    border-color: #F45D22;
    cursor: pointer; }

.color--extra-dark-yellow--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-dark-yellow--hover:hover {
    color: #FFAD1F;
    cursor: pointer; }
  .color--extra-dark-yellow--hover:active {
    color: #FFAD1F;
    cursor: pointer; }

.bg-color--extra-dark-yellow--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-dark-yellow--hover:hover {
    background-color: #FFAD1F;
    cursor: pointer; }
  .bg-color--extra-dark-yellow--hover:active {
    background-color: #FFAD1F;
    cursor: pointer; }

.fill-color--extra-dark-yellow--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-dark-yellow--hover:hover {
    fill: #FFAD1F;
    cursor: pointer; }
  .fill-color--extra-dark-yellow--hover:active {
    fill: #FFAD1F;
    cursor: pointer; }

.border-color--extra-dark-yellow--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-dark-yellow--hover:hover {
    border-color: #FFAD1F;
    cursor: pointer; }
  .border-color--extra-dark-yellow--hover:active {
    border-color: #FFAD1F;
    cursor: pointer; }

.color--extra-dark-green--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-dark-green--hover:hover {
    color: #1FB650;
    cursor: pointer; }
  .color--extra-dark-green--hover:active {
    color: #1FB650;
    cursor: pointer; }

.bg-color--extra-dark-green--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-dark-green--hover:hover {
    background-color: #1FB650;
    cursor: pointer; }
  .bg-color--extra-dark-green--hover:active {
    background-color: #1FB650;
    cursor: pointer; }

.fill-color--extra-dark-green--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-dark-green--hover:hover {
    fill: #1FB650;
    cursor: pointer; }
  .fill-color--extra-dark-green--hover:active {
    fill: #1FB650;
    cursor: pointer; }

.border-color--extra-dark-green--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-dark-green--hover:hover {
    border-color: #1FB650;
    cursor: pointer; }
  .border-color--extra-dark-green--hover:active {
    border-color: #1FB650;
    cursor: pointer; }

.color--extra-dark-blue--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-dark-blue--hover:hover {
    color: #1DA1F2;
    cursor: pointer; }
  .color--extra-dark-blue--hover:active {
    color: #1DA1F2;
    cursor: pointer; }

.bg-color--extra-dark-blue--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-dark-blue--hover:hover {
    background-color: #1DA1F2;
    cursor: pointer; }
  .bg-color--extra-dark-blue--hover:active {
    background-color: #1DA1F2;
    cursor: pointer; }

.fill-color--extra-dark-blue--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-dark-blue--hover:hover {
    fill: #1DA1F2;
    cursor: pointer; }
  .fill-color--extra-dark-blue--hover:active {
    fill: #1DA1F2;
    cursor: pointer; }

.border-color--extra-dark-blue--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-dark-blue--hover:hover {
    border-color: #1DA1F2;
    cursor: pointer; }
  .border-color--extra-dark-blue--hover:active {
    border-color: #1DA1F2;
    cursor: pointer; }

.color--extra-dark-purple--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-dark-purple--hover:hover {
    color: #794BC4;
    cursor: pointer; }
  .color--extra-dark-purple--hover:active {
    color: #794BC4;
    cursor: pointer; }

.bg-color--extra-dark-purple--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-dark-purple--hover:hover {
    background-color: #794BC4;
    cursor: pointer; }
  .bg-color--extra-dark-purple--hover:active {
    background-color: #794BC4;
    cursor: pointer; }

.fill-color--extra-dark-purple--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-dark-purple--hover:hover {
    fill: #794BC4;
    cursor: pointer; }
  .fill-color--extra-dark-purple--hover:active {
    fill: #794BC4;
    cursor: pointer; }

.border-color--extra-dark-purple--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-dark-purple--hover:hover {
    border-color: #794BC4;
    cursor: pointer; }
  .border-color--extra-dark-purple--hover:active {
    border-color: #794BC4;
    cursor: pointer; }

.color--extra-dark-pink--hover {
  transition: color 0.3s ease-in-out; }
  .color--extra-dark-pink--hover:hover {
    color: #E0245E;
    cursor: pointer; }
  .color--extra-dark-pink--hover:active {
    color: #E0245E;
    cursor: pointer; }

.bg-color--extra-dark-pink--hover {
  transition: background-color 0.3s ease-in-out; }
  .bg-color--extra-dark-pink--hover:hover {
    background-color: #E0245E;
    cursor: pointer; }
  .bg-color--extra-dark-pink--hover:active {
    background-color: #E0245E;
    cursor: pointer; }

.fill-color--extra-dark-pink--hover {
  transition: fill 0.3s ease-in-out; }
  .fill-color--extra-dark-pink--hover:hover {
    fill: #E0245E;
    cursor: pointer; }
  .fill-color--extra-dark-pink--hover:active {
    fill: #E0245E;
    cursor: pointer; }

.border-color--extra-dark-pink--hover {
  transition: border-color 0.3s ease-in-out; }
  .border-color--extra-dark-pink--hover:hover {
    border-color: #E0245E;
    cursor: pointer; }
  .border-color--extra-dark-pink--hover:active {
    border-color: #E0245E;
    cursor: pointer; }

/*
  Theme Color Utility Classes:
  Creates a class for each category and color combination.

  .theme--blue .theme-bg-color--dark--hover {
    &:hover {
      background-color: #005FD1;
    }
    &:active {
      background-color: #005FD1;
    }
  }
}

  Properties: color, background-color (bg-color), (fill) fill-color, border-color
  Categories: extra-dark, dark, light, extra-light, neutral
  Colors: orange, yellow, green, blue, purple, pink

  .theme--{color} .theme-{property}--{category}--hover {
    &:hover {
      {property}: {hoverColor}
    }
    &:active {
      {property}: {activeColor}
    }
  }

  Note: the background-color property uses bg-color in the classname.
  All others use the same class name as the CSS property they set.

*/
.theme--orange .theme-color--extra-light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--orange .theme-color--extra-light--hover:hover {
    color: #FF8D57;
    cursor: pointer; }
  .theme--orange .theme-color--extra-light--hover:active {
    color: #FF8D57;
    cursor: pointer; }

.theme--orange .theme-bg-color--extra-light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--orange .theme-bg-color--extra-light--hover:hover {
    background-color: #FF8D57;
    cursor: pointer; }
  .theme--orange .theme-bg-color--extra-light--hover:active {
    background-color: #FF8D57;
    cursor: pointer; }

.theme--orange .theme-fill-color--extra-light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--orange .theme-fill-color--extra-light--hover:hover {
    fill: #FF8D57;
    cursor: pointer; }
  .theme--orange .theme-fill-color--extra-light--hover:active {
    fill: #FF8D57;
    cursor: pointer; }

.theme--orange .theme-border-color--extra-light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--orange .theme-border-color--extra-light--hover:hover {
    border-color: #FF8D57;
    cursor: pointer; }
  .theme--orange .theme-border-color--extra-light--hover:active {
    border-color: #FF8D57;
    cursor: pointer; }

.theme--yellow .theme-color--extra-light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--yellow .theme-color--extra-light--hover:hover {
    color: #FFD03F;
    cursor: pointer; }
  .theme--yellow .theme-color--extra-light--hover:active {
    color: #FFD03F;
    cursor: pointer; }

.theme--yellow .theme-bg-color--extra-light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--yellow .theme-bg-color--extra-light--hover:hover {
    background-color: #FFD03F;
    cursor: pointer; }
  .theme--yellow .theme-bg-color--extra-light--hover:active {
    background-color: #FFD03F;
    cursor: pointer; }

.theme--yellow .theme-fill-color--extra-light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--yellow .theme-fill-color--extra-light--hover:hover {
    fill: #FFD03F;
    cursor: pointer; }
  .theme--yellow .theme-fill-color--extra-light--hover:active {
    fill: #FFD03F;
    cursor: pointer; }

.theme--yellow .theme-border-color--extra-light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--yellow .theme-border-color--extra-light--hover:hover {
    border-color: #FFD03F;
    cursor: pointer; }
  .theme--yellow .theme-border-color--extra-light--hover:active {
    border-color: #FFD03F;
    cursor: pointer; }

.theme--green .theme-color--extra-light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--green .theme-color--extra-light--hover:hover {
    color: #68E090;
    cursor: pointer; }
  .theme--green .theme-color--extra-light--hover:active {
    color: #68E090;
    cursor: pointer; }

.theme--green .theme-bg-color--extra-light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--green .theme-bg-color--extra-light--hover:hover {
    background-color: #68E090;
    cursor: pointer; }
  .theme--green .theme-bg-color--extra-light--hover:active {
    background-color: #68E090;
    cursor: pointer; }

.theme--green .theme-fill-color--extra-light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--green .theme-fill-color--extra-light--hover:hover {
    fill: #68E090;
    cursor: pointer; }
  .theme--green .theme-fill-color--extra-light--hover:active {
    fill: #68E090;
    cursor: pointer; }

.theme--green .theme-border-color--extra-light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--green .theme-border-color--extra-light--hover:hover {
    border-color: #68E090;
    cursor: pointer; }
  .theme--green .theme-border-color--extra-light--hover:active {
    border-color: #68E090;
    cursor: pointer; }

.theme--blue .theme-color--extra-light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--blue .theme-color--extra-light--hover:hover {
    color: #71C9F8;
    cursor: pointer; }
  .theme--blue .theme-color--extra-light--hover:active {
    color: #71C9F8;
    cursor: pointer; }

.theme--blue .theme-bg-color--extra-light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--blue .theme-bg-color--extra-light--hover:hover {
    background-color: #71C9F8;
    cursor: pointer; }
  .theme--blue .theme-bg-color--extra-light--hover:active {
    background-color: #71C9F8;
    cursor: pointer; }

.theme--blue .theme-fill-color--extra-light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--blue .theme-fill-color--extra-light--hover:hover {
    fill: #71C9F8;
    cursor: pointer; }
  .theme--blue .theme-fill-color--extra-light--hover:active {
    fill: #71C9F8;
    cursor: pointer; }

.theme--blue .theme-border-color--extra-light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--blue .theme-border-color--extra-light--hover:hover {
    border-color: #71C9F8;
    cursor: pointer; }
  .theme--blue .theme-border-color--extra-light--hover:active {
    border-color: #71C9F8;
    cursor: pointer; }

.theme--purple .theme-color--extra-light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--purple .theme-color--extra-light--hover:hover {
    color: #A37CED;
    cursor: pointer; }
  .theme--purple .theme-color--extra-light--hover:active {
    color: #A37CED;
    cursor: pointer; }

.theme--purple .theme-bg-color--extra-light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--purple .theme-bg-color--extra-light--hover:hover {
    background-color: #A37CED;
    cursor: pointer; }
  .theme--purple .theme-bg-color--extra-light--hover:active {
    background-color: #A37CED;
    cursor: pointer; }

.theme--purple .theme-fill-color--extra-light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--purple .theme-fill-color--extra-light--hover:hover {
    fill: #A37CED;
    cursor: pointer; }
  .theme--purple .theme-fill-color--extra-light--hover:active {
    fill: #A37CED;
    cursor: pointer; }

.theme--purple .theme-border-color--extra-light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--purple .theme-border-color--extra-light--hover:hover {
    border-color: #A37CED;
    cursor: pointer; }
  .theme--purple .theme-border-color--extra-light--hover:active {
    border-color: #A37CED;
    cursor: pointer; }

.theme--pink .theme-color--extra-light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--pink .theme-color--extra-light--hover:hover {
    color: #F6809A;
    cursor: pointer; }
  .theme--pink .theme-color--extra-light--hover:active {
    color: #F6809A;
    cursor: pointer; }

.theme--pink .theme-bg-color--extra-light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--pink .theme-bg-color--extra-light--hover:hover {
    background-color: #F6809A;
    cursor: pointer; }
  .theme--pink .theme-bg-color--extra-light--hover:active {
    background-color: #F6809A;
    cursor: pointer; }

.theme--pink .theme-fill-color--extra-light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--pink .theme-fill-color--extra-light--hover:hover {
    fill: #F6809A;
    cursor: pointer; }
  .theme--pink .theme-fill-color--extra-light--hover:active {
    fill: #F6809A;
    cursor: pointer; }

.theme--pink .theme-border-color--extra-light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--pink .theme-border-color--extra-light--hover:hover {
    border-color: #F6809A;
    cursor: pointer; }
  .theme--pink .theme-border-color--extra-light--hover:active {
    border-color: #F6809A;
    cursor: pointer; }

.theme--orange .theme-color--light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--orange .theme-color--light--hover:hover {
    color: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-color--light--hover:active {
    color: #F45D22;
    cursor: pointer; }

.theme--orange .theme-bg-color--light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--orange .theme-bg-color--light--hover:hover {
    background-color: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-bg-color--light--hover:active {
    background-color: #F45D22;
    cursor: pointer; }

.theme--orange .theme-fill-color--light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--orange .theme-fill-color--light--hover:hover {
    fill: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-fill-color--light--hover:active {
    fill: #F45D22;
    cursor: pointer; }

.theme--orange .theme-border-color--light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--orange .theme-border-color--light--hover:hover {
    border-color: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-border-color--light--hover:active {
    border-color: #F45D22;
    cursor: pointer; }

.theme--yellow .theme-color--light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--yellow .theme-color--light--hover:hover {
    color: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-color--light--hover:active {
    color: #FFAD1F;
    cursor: pointer; }

.theme--yellow .theme-bg-color--light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--yellow .theme-bg-color--light--hover:hover {
    background-color: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-bg-color--light--hover:active {
    background-color: #FFAD1F;
    cursor: pointer; }

.theme--yellow .theme-fill-color--light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--yellow .theme-fill-color--light--hover:hover {
    fill: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-fill-color--light--hover:active {
    fill: #FFAD1F;
    cursor: pointer; }

.theme--yellow .theme-border-color--light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--yellow .theme-border-color--light--hover:hover {
    border-color: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-border-color--light--hover:active {
    border-color: #FFAD1F;
    cursor: pointer; }

.theme--green .theme-color--light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--green .theme-color--light--hover:hover {
    color: #1FB650;
    cursor: pointer; }
  .theme--green .theme-color--light--hover:active {
    color: #1FB650;
    cursor: pointer; }

.theme--green .theme-bg-color--light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--green .theme-bg-color--light--hover:hover {
    background-color: #1FB650;
    cursor: pointer; }
  .theme--green .theme-bg-color--light--hover:active {
    background-color: #1FB650;
    cursor: pointer; }

.theme--green .theme-fill-color--light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--green .theme-fill-color--light--hover:hover {
    fill: #1FB650;
    cursor: pointer; }
  .theme--green .theme-fill-color--light--hover:active {
    fill: #1FB650;
    cursor: pointer; }

.theme--green .theme-border-color--light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--green .theme-border-color--light--hover:hover {
    border-color: #1FB650;
    cursor: pointer; }
  .theme--green .theme-border-color--light--hover:active {
    border-color: #1FB650;
    cursor: pointer; }

.theme--blue .theme-color--light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--blue .theme-color--light--hover:hover {
    color: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-color--light--hover:active {
    color: #1DA1F2;
    cursor: pointer; }

.theme--blue .theme-bg-color--light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--blue .theme-bg-color--light--hover:hover {
    background-color: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-bg-color--light--hover:active {
    background-color: #1DA1F2;
    cursor: pointer; }

.theme--blue .theme-fill-color--light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--blue .theme-fill-color--light--hover:hover {
    fill: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-fill-color--light--hover:active {
    fill: #1DA1F2;
    cursor: pointer; }

.theme--blue .theme-border-color--light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--blue .theme-border-color--light--hover:hover {
    border-color: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-border-color--light--hover:active {
    border-color: #1DA1F2;
    cursor: pointer; }

.theme--purple .theme-color--light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--purple .theme-color--light--hover:hover {
    color: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-color--light--hover:active {
    color: #794BC4;
    cursor: pointer; }

.theme--purple .theme-bg-color--light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--purple .theme-bg-color--light--hover:hover {
    background-color: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-bg-color--light--hover:active {
    background-color: #794BC4;
    cursor: pointer; }

.theme--purple .theme-fill-color--light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--purple .theme-fill-color--light--hover:hover {
    fill: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-fill-color--light--hover:active {
    fill: #794BC4;
    cursor: pointer; }

.theme--purple .theme-border-color--light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--purple .theme-border-color--light--hover:hover {
    border-color: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-border-color--light--hover:active {
    border-color: #794BC4;
    cursor: pointer; }

.theme--pink .theme-color--light--hover {
  transition: color 0.3s ease-in-out; }
  .theme--pink .theme-color--light--hover:hover {
    color: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-color--light--hover:active {
    color: #E0245E;
    cursor: pointer; }

.theme--pink .theme-bg-color--light--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--pink .theme-bg-color--light--hover:hover {
    background-color: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-bg-color--light--hover:active {
    background-color: #E0245E;
    cursor: pointer; }

.theme--pink .theme-fill-color--light--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--pink .theme-fill-color--light--hover:hover {
    fill: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-fill-color--light--hover:active {
    fill: #E0245E;
    cursor: pointer; }

.theme--pink .theme-border-color--light--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--pink .theme-border-color--light--hover:hover {
    border-color: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-border-color--light--hover:active {
    border-color: #E0245E;
    cursor: pointer; }

.theme--orange .theme-color--dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--orange .theme-color--dark--hover:hover {
    color: #D82E18;
    cursor: pointer; }
  .theme--orange .theme-color--dark--hover:active {
    color: #D82E18;
    cursor: pointer; }

.theme--orange .theme-bg-color--dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--orange .theme-bg-color--dark--hover:hover {
    background-color: #D82E18;
    cursor: pointer; }
  .theme--orange .theme-bg-color--dark--hover:active {
    background-color: #D82E18;
    cursor: pointer; }

.theme--orange .theme-fill-color--dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--orange .theme-fill-color--dark--hover:hover {
    fill: #D82E18;
    cursor: pointer; }
  .theme--orange .theme-fill-color--dark--hover:active {
    fill: #D82E18;
    cursor: pointer; }

.theme--orange .theme-border-color--dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--orange .theme-border-color--dark--hover:hover {
    border-color: #D82E18;
    cursor: pointer; }
  .theme--orange .theme-border-color--dark--hover:active {
    border-color: #D82E18;
    cursor: pointer; }

.theme--yellow .theme-color--dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--yellow .theme-color--dark--hover:hover {
    color: #F98E00;
    cursor: pointer; }
  .theme--yellow .theme-color--dark--hover:active {
    color: #F98E00;
    cursor: pointer; }

.theme--yellow .theme-bg-color--dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--yellow .theme-bg-color--dark--hover:hover {
    background-color: #F98E00;
    cursor: pointer; }
  .theme--yellow .theme-bg-color--dark--hover:active {
    background-color: #F98E00;
    cursor: pointer; }

.theme--yellow .theme-fill-color--dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--yellow .theme-fill-color--dark--hover:hover {
    fill: #F98E00;
    cursor: pointer; }
  .theme--yellow .theme-fill-color--dark--hover:active {
    fill: #F98E00;
    cursor: pointer; }

.theme--yellow .theme-border-color--dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--yellow .theme-border-color--dark--hover:hover {
    border-color: #F98E00;
    cursor: pointer; }
  .theme--yellow .theme-border-color--dark--hover:active {
    border-color: #F98E00;
    cursor: pointer; }

.theme--green .theme-color--dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--green .theme-color--dark--hover:hover {
    color: #008951;
    cursor: pointer; }
  .theme--green .theme-color--dark--hover:active {
    color: #008951;
    cursor: pointer; }

.theme--green .theme-bg-color--dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--green .theme-bg-color--dark--hover:hover {
    background-color: #008951;
    cursor: pointer; }
  .theme--green .theme-bg-color--dark--hover:active {
    background-color: #008951;
    cursor: pointer; }

.theme--green .theme-fill-color--dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--green .theme-fill-color--dark--hover:hover {
    fill: #008951;
    cursor: pointer; }
  .theme--green .theme-fill-color--dark--hover:active {
    fill: #008951;
    cursor: pointer; }

.theme--green .theme-border-color--dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--green .theme-border-color--dark--hover:hover {
    border-color: #008951;
    cursor: pointer; }
  .theme--green .theme-border-color--dark--hover:active {
    border-color: #008951;
    cursor: pointer; }

.theme--blue .theme-color--dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--blue .theme-color--dark--hover:hover {
    color: #005FD1;
    cursor: pointer; }
  .theme--blue .theme-color--dark--hover:active {
    color: #005FD1;
    cursor: pointer; }

.theme--blue .theme-bg-color--dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--blue .theme-bg-color--dark--hover:hover {
    background-color: #005FD1;
    cursor: pointer; }
  .theme--blue .theme-bg-color--dark--hover:active {
    background-color: #005FD1;
    cursor: pointer; }

.theme--blue .theme-fill-color--dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--blue .theme-fill-color--dark--hover:hover {
    fill: #005FD1;
    cursor: pointer; }
  .theme--blue .theme-fill-color--dark--hover:active {
    fill: #005FD1;
    cursor: pointer; }

.theme--blue .theme-border-color--dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--blue .theme-border-color--dark--hover:hover {
    border-color: #005FD1;
    cursor: pointer; }
  .theme--blue .theme-border-color--dark--hover:active {
    border-color: #005FD1;
    cursor: pointer; }

.theme--purple .theme-color--dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--purple .theme-color--dark--hover:hover {
    color: #4F0299;
    cursor: pointer; }
  .theme--purple .theme-color--dark--hover:active {
    color: #4F0299;
    cursor: pointer; }

.theme--purple .theme-bg-color--dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--purple .theme-bg-color--dark--hover:hover {
    background-color: #4F0299;
    cursor: pointer; }
  .theme--purple .theme-bg-color--dark--hover:active {
    background-color: #4F0299;
    cursor: pointer; }

.theme--purple .theme-fill-color--dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--purple .theme-fill-color--dark--hover:hover {
    fill: #4F0299;
    cursor: pointer; }
  .theme--purple .theme-fill-color--dark--hover:active {
    fill: #4F0299;
    cursor: pointer; }

.theme--purple .theme-border-color--dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--purple .theme-border-color--dark--hover:hover {
    border-color: #4F0299;
    cursor: pointer; }
  .theme--purple .theme-border-color--dark--hover:active {
    border-color: #4F0299;
    cursor: pointer; }

.theme--pink .theme-color--dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--pink .theme-color--dark--hover:hover {
    color: #A01744;
    cursor: pointer; }
  .theme--pink .theme-color--dark--hover:active {
    color: #A01744;
    cursor: pointer; }

.theme--pink .theme-bg-color--dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--pink .theme-bg-color--dark--hover:hover {
    background-color: #A01744;
    cursor: pointer; }
  .theme--pink .theme-bg-color--dark--hover:active {
    background-color: #A01744;
    cursor: pointer; }

.theme--pink .theme-fill-color--dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--pink .theme-fill-color--dark--hover:hover {
    fill: #A01744;
    cursor: pointer; }
  .theme--pink .theme-fill-color--dark--hover:active {
    fill: #A01744;
    cursor: pointer; }

.theme--pink .theme-border-color--dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--pink .theme-border-color--dark--hover:hover {
    border-color: #A01744;
    cursor: pointer; }
  .theme--pink .theme-border-color--dark--hover:active {
    border-color: #A01744;
    cursor: pointer; }

.theme--orange .theme-color--extra-dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--orange .theme-color--extra-dark--hover:hover {
    color: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-color--extra-dark--hover:active {
    color: #F45D22;
    cursor: pointer; }

.theme--orange .theme-bg-color--extra-dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--orange .theme-bg-color--extra-dark--hover:hover {
    background-color: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-bg-color--extra-dark--hover:active {
    background-color: #F45D22;
    cursor: pointer; }

.theme--orange .theme-fill-color--extra-dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--orange .theme-fill-color--extra-dark--hover:hover {
    fill: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-fill-color--extra-dark--hover:active {
    fill: #F45D22;
    cursor: pointer; }

.theme--orange .theme-border-color--extra-dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--orange .theme-border-color--extra-dark--hover:hover {
    border-color: #F45D22;
    cursor: pointer; }
  .theme--orange .theme-border-color--extra-dark--hover:active {
    border-color: #F45D22;
    cursor: pointer; }

.theme--yellow .theme-color--extra-dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--yellow .theme-color--extra-dark--hover:hover {
    color: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-color--extra-dark--hover:active {
    color: #FFAD1F;
    cursor: pointer; }

.theme--yellow .theme-bg-color--extra-dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--yellow .theme-bg-color--extra-dark--hover:hover {
    background-color: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-bg-color--extra-dark--hover:active {
    background-color: #FFAD1F;
    cursor: pointer; }

.theme--yellow .theme-fill-color--extra-dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--yellow .theme-fill-color--extra-dark--hover:hover {
    fill: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-fill-color--extra-dark--hover:active {
    fill: #FFAD1F;
    cursor: pointer; }

.theme--yellow .theme-border-color--extra-dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--yellow .theme-border-color--extra-dark--hover:hover {
    border-color: #FFAD1F;
    cursor: pointer; }
  .theme--yellow .theme-border-color--extra-dark--hover:active {
    border-color: #FFAD1F;
    cursor: pointer; }

.theme--green .theme-color--extra-dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--green .theme-color--extra-dark--hover:hover {
    color: #1FB650;
    cursor: pointer; }
  .theme--green .theme-color--extra-dark--hover:active {
    color: #1FB650;
    cursor: pointer; }

.theme--green .theme-bg-color--extra-dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--green .theme-bg-color--extra-dark--hover:hover {
    background-color: #1FB650;
    cursor: pointer; }
  .theme--green .theme-bg-color--extra-dark--hover:active {
    background-color: #1FB650;
    cursor: pointer; }

.theme--green .theme-fill-color--extra-dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--green .theme-fill-color--extra-dark--hover:hover {
    fill: #1FB650;
    cursor: pointer; }
  .theme--green .theme-fill-color--extra-dark--hover:active {
    fill: #1FB650;
    cursor: pointer; }

.theme--green .theme-border-color--extra-dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--green .theme-border-color--extra-dark--hover:hover {
    border-color: #1FB650;
    cursor: pointer; }
  .theme--green .theme-border-color--extra-dark--hover:active {
    border-color: #1FB650;
    cursor: pointer; }

.theme--blue .theme-color--extra-dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--blue .theme-color--extra-dark--hover:hover {
    color: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-color--extra-dark--hover:active {
    color: #1DA1F2;
    cursor: pointer; }

.theme--blue .theme-bg-color--extra-dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--blue .theme-bg-color--extra-dark--hover:hover {
    background-color: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-bg-color--extra-dark--hover:active {
    background-color: #1DA1F2;
    cursor: pointer; }

.theme--blue .theme-fill-color--extra-dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--blue .theme-fill-color--extra-dark--hover:hover {
    fill: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-fill-color--extra-dark--hover:active {
    fill: #1DA1F2;
    cursor: pointer; }

.theme--blue .theme-border-color--extra-dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--blue .theme-border-color--extra-dark--hover:hover {
    border-color: #1DA1F2;
    cursor: pointer; }
  .theme--blue .theme-border-color--extra-dark--hover:active {
    border-color: #1DA1F2;
    cursor: pointer; }

.theme--purple .theme-color--extra-dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--purple .theme-color--extra-dark--hover:hover {
    color: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-color--extra-dark--hover:active {
    color: #794BC4;
    cursor: pointer; }

.theme--purple .theme-bg-color--extra-dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--purple .theme-bg-color--extra-dark--hover:hover {
    background-color: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-bg-color--extra-dark--hover:active {
    background-color: #794BC4;
    cursor: pointer; }

.theme--purple .theme-fill-color--extra-dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--purple .theme-fill-color--extra-dark--hover:hover {
    fill: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-fill-color--extra-dark--hover:active {
    fill: #794BC4;
    cursor: pointer; }

.theme--purple .theme-border-color--extra-dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--purple .theme-border-color--extra-dark--hover:hover {
    border-color: #794BC4;
    cursor: pointer; }
  .theme--purple .theme-border-color--extra-dark--hover:active {
    border-color: #794BC4;
    cursor: pointer; }

.theme--pink .theme-color--extra-dark--hover {
  transition: color 0.3s ease-in-out; }
  .theme--pink .theme-color--extra-dark--hover:hover {
    color: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-color--extra-dark--hover:active {
    color: #E0245E;
    cursor: pointer; }

.theme--pink .theme-bg-color--extra-dark--hover {
  transition: background-color 0.3s ease-in-out; }
  .theme--pink .theme-bg-color--extra-dark--hover:hover {
    background-color: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-bg-color--extra-dark--hover:active {
    background-color: #E0245E;
    cursor: pointer; }

.theme--pink .theme-fill-color--extra-dark--hover {
  transition: fill 0.3s ease-in-out; }
  .theme--pink .theme-fill-color--extra-dark--hover:hover {
    fill: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-fill-color--extra-dark--hover:active {
    fill: #E0245E;
    cursor: pointer; }

.theme--pink .theme-border-color--extra-dark--hover {
  transition: border-color 0.3s ease-in-out; }
  .theme--pink .theme-border-color--extra-dark--hover:hover {
    border-color: #E0245E;
    cursor: pointer; }
  .theme--pink .theme-border-color--extra-dark--hover:active {
    border-color: #E0245E;
    cursor: pointer; }

.c14-media-download {
  overflow: auto; }
  .c14-media-download__content {
    border-radius: 0.1875rem;
    background-clip: padding-box;
    /* stops bg color from leaking outside the border: */
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0;
    min-height: 4.5rem;
    margin-bottom: 3.75rem;
    padding-bottom: 1.5rem;
    padding-top: 0.75rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem; }
    .c14-media-download__content--filename {
      margin-bottom: 0.75rem; }
      .c14-media-download__content--filename a {
        color: #FFFFFF;
        text-decoration: none; }
    .c14-media-download__content--description {
      margin-bottom: 1.5rem;
      min-height: 1.5rem; }
    .c14-media-download__content--type {
      width: 100%;
      float: left;
      margin-left: 0;
      margin-right: 0;
      text-align: right;
      margin-bottom: 1.5rem; }
      @media (min-width: 768px) {
        .c14-media-download__content--type {
          margin-bottom: 0.75rem; } }
    .c14-media-download__content button {
      background-color: #FFFFFF;
      padding-top: 0.375rem;
      padding-bottom: 0.375rem;
      padding-left: 0.9375rem;
      padding-right: 0.9375rem;
      border-radius: 0.375rem;
      background-clip: padding-box;
      /* stops bg color from leaking outside the border: */
      border: 1px solid #FFFFFF;
      transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out; }
      .c14-media-download__content button:hover, .c14-media-download__content button:active, .c14-media-download__content button:focus {
        background-color: transparent;
        outline: none;
        color: #FFFFFF; }
  .c14-media-download .neutral.c14-media-download__content {
    background-color: #F5F8FA; }
    .c14-media-download .neutral.c14-media-download__content .c14-media-download__content--type,
    .c14-media-download .neutral.c14-media-download__content .c14-media-download__content--description {
      color: #CCD6DD; }
    .c14-media-download .neutral.c14-media-download__content .c14-media-download__content--filename a {
      color: #14171A; }

.theme--orange .c14-media-download__content {
  background-color: #F45D22; }
  .theme--orange .c14-media-download__content button {
    color: #F45D22; }

.theme--orange .neutral.c14-media-download__content button {
  background-color: #F45D22;
  color: #FFFFFF; }

.theme--yellow .c14-media-download__content {
  background-color: #FFAD1F; }
  .theme--yellow .c14-media-download__content button {
    color: #FFAD1F; }

.theme--yellow .neutral.c14-media-download__content button {
  background-color: #FFAD1F;
  color: #FFFFFF; }

.theme--green .c14-media-download__content {
  background-color: #1FB650; }
  .theme--green .c14-media-download__content button {
    color: #1FB650; }

.theme--green .neutral.c14-media-download__content button {
  background-color: #1FB650;
  color: #FFFFFF; }

.theme--blue .c14-media-download__content {
  background-color: #1DA1F2; }
  .theme--blue .c14-media-download__content button {
    color: #1DA1F2; }

.theme--blue .neutral.c14-media-download__content button {
  background-color: #1DA1F2;
  color: #FFFFFF; }

.theme--purple .c14-media-download__content {
  background-color: #794BC4; }
  .theme--purple .c14-media-download__content button {
    color: #794BC4; }

.theme--purple .neutral.c14-media-download__content button {
  background-color: #794BC4;
  color: #FFFFFF; }

.theme--pink .c14-media-download__content {
  background-color: #E0245E; }
  .theme--pink .c14-media-download__content button {
    color: #E0245E; }

.theme--pink .neutral.c14-media-download__content button {
  background-color: #E0245E;
  color: #FFFFFF; }

.theme--orange .c14-media-download__content .c14-media-download__content--type,
.theme--orange .c14-media-download__content .c14-media-download__content--description {
  color: #FFBE78; }

.theme--yellow .c14-media-download__content .c14-media-download__content--type,
.theme--yellow .c14-media-download__content .c14-media-download__content--description {
  color: #FFE76E; }

.theme--green .c14-media-download__content .c14-media-download__content--type,
.theme--green .c14-media-download__content .c14-media-download__content--description {
  color: #A5F2AA; }

.theme--blue .c14-media-download__content .c14-media-download__content--type,
.theme--blue .c14-media-download__content .c14-media-download__content--description {
  color: #97E3FF; }

.theme--purple .c14-media-download__content .c14-media-download__content--type,
.theme--purple .c14-media-download__content .c14-media-download__content--description {
  color: #C7B4FA; }

.theme--pink .c14-media-download__content .c14-media-download__content--type,
.theme--pink .c14-media-download__content .c14-media-download__content--description {
  color: #FFB8C2; }
/*

font mixin
$key: type style key (ex. bold-24 or roman-24). See typography.json for options.
$breakpoint: (optional) breakpoint key (ex. full or tablet). See breakpoints.json for options.

@include font(bold-24);

When used without a breakpoint specified this mixin will produce font properties
wrapped in media queries. It's a simple way to apply fully responsive type styles
to a class or element.

@include font(bold-24, full);

If a breakpoint is specified there will be only a single set of font properties
that are NOT wrapped in any media queries.

*/
/*

  color(yellow) single argument defaults to dark colors
  color(light, yellow) returns light yellow

*/
/* rounded corners
  usage: border-radius( baseline( n ) )
*/
/*

https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/

The mixin assumes you'll be nesting an element with the class of content inside your initial block

<div class="sixteen-nine">
  <div class="content">
    insert content here
    this will maintain a 16:9 aspect ratio
  </div>
</div>

*/
.c18-page-share .post__key-line {
  border-top: 1px solid #AAB8C2; }

.c18-page-share .post {
  padding: 3rem 0; }
  @media (min-width: 768px) {
    .c18-page-share .post {
      width: 49.15254%;
      float: left;
      margin-right: 1.69492%;
      margin-left: 33.89831%; } }
  .c18-page-share .post__share--title {
    font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.5rem;
    letter-spacing: 0rem;
    margin: 0;
    padding: 0 0 0rem 0;
    padding-bottom: 1.5rem;
    color: #14171A; }
    @media (min-width: 768px) {
      .c18-page-share .post__share--title {
        float: left;
        font-family: "Helvetica Neue LT", "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-weight: 700;
        font-size: 0.87rem;
        line-height: 1.5rem;
        letter-spacing: 0.03rem;
        margin: 0;
        padding: 0 0 0rem 0;
        color: #657786;
        white-space: nowrap;
        padding-bottom: 0;
        padding-right: 1.5rem; } }
  .c18-page-share .post__share--icons {
    position: relative; }
    .c18-page-share .post__share--icons a {
      padding-right: 2.745rem;
      text-decoration: none;
      display: -webkit-inline-box;
      display: -ms-inline-flexbox;
      display: inline-flex;
      vertical-align: middle; }
      .c18-page-share .post__share--icons a > svg {
        width: 24px;
        height: 24px;
        fill: #AAB8C2;
        transition: fill 0.3s ease-in-out; }
        @media (min-width: 768px) {
          .c18-page-share .post__share--icons a > svg {
            width: 16px;
            height: 16px; } }
      .c18-page-share .post__share--icons a:last-child {
        padding-right: 0; }
      .c18-page-share .post__share--icons a:hover > svg, .c18-page-share .post__share--icons a:active > svg {
        fill: #657786; }
      @media (min-width: 768px) {
        .c18-page-share .post__share--icons a {
          padding-right: 0.625rem; } }
  .c18-page-share .post::after {
    content: " ";
    display: block;
    clear: both; }
  .c18-page-share .post__share--copy-link {
    position: relative; }
  .c18-page-share .post__share--copy-link-popup {
    opacity: 0;
    visibility: hidden;
    position: absolute;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    min-width: 200px;
    border-radius: 0.125rem;
    height: 2.25rem;
    padding: 0 0.75rem;
    text-align: center;
    color: #657786;
    transition: all 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
    box-shadow: 0 0 2px 2px #CCD6DD; }
    .c18-page-share .post__share--copy-link-popup.show {
      opacity: 1;
      visibility: visible; }
    .c18-page-share .post__share--copy-link-popup svg {
      position: absolute;
      bottom: -15px;
      width: 20px;
      height: 20px;
      right: 50%;
      -webkit-filter: drop-shadow(0 2px 0 #CCD6DD);
              filter: drop-shadow(0 2px 0 #CCD6DD); }
      .c18-page-share .post__share--copy-link-popup svg path {
        fill: #FFFFFF; }
  .c18-page-share .post__share--copy-link-popup-content {
    -ms-flex-item-align: center;
        align-self: center;
    white-space: nowrap; }

@media (min-width: 768px) {
  .archive-page .c18-page-share .post {
    width: 49.15254%;
    float: left;
    margin-right: 1.69492%;
    margin-left: 25.42373%; } }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay93ZWJwYWNrL2NvcmUvc3R5bGUvX21peGluLnNjc3M/ZDI4NCoiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxMS1zaGFyaW5nLXBvc3QtZXhjZXJwdC93ZWJwYWNrL2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svd2VicGFjay9+L3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX3NwYW4uc2Nzcz9iMjBlKiIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvdmFyaWFibGVzL2NvbG9ycy5qc29uP2JkZWIqIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svfi9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19icmVha3BvaW50LXBsdWdpbi5zY3NzPzNmNDgqIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9yZXNvdXJjZS9lbWJlZGRlZC10d2VldC93ZWJwYWNrL2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3ZhcmlhYmxlcy90eXBvZ3JhcGh5Lmpzb24/MGY2NyoiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxMy1yaWNoLXRleHQtZWRpdG9yL3dlYnBhY2svaW5kZXguc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9ibDEzLXJpY2gtdGV4dC1lZGl0b3Ivd2VicGFjay9pbmRleC5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svY29yZS9jb21wb25lbnRzL2Jsb2ctYm9keS5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svY29yZS9zdHlsZS9fdHlwZS5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvcmUvdmFyaWFibGVzL21vdGlvbi5qc29uPzljMWQqIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2JsMTQtaW1hZ2Uvd2VicGFjay9pbmRleC5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svfi9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fcmVtLnNjc3M/Y2Y3MSoiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svd2VicGFjay9+L3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zaGFyZWQvX2RpcmVjdGlvbi5zY3NzPzE4ZWMqIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svfi9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19tYXJnaW5zLnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxNi1xdW90ZS93ZWJwYWNrL2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxNy1jb2RlLXNuaXBwZXQvd2VicGFjay9pbmRleC5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3dlYnBhY2svfi9wcmlzbWpzL3RoZW1lcy9wcmlzbS1jb3kuY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL3dlYnBhY2svfi9wcmlzbWpzL3BsdWdpbnMvbGluZS1udW1iZXJzL3ByaXNtLWxpbmUtbnVtYmVycy5jc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxOC1zaW5nbGUtdHdlZXQvd2VicGFjay9pbmRleC5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2JsMTktdHdlZXQtZ2FsbGVyeS93ZWJwYWNrL2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svd2VicGFjay9+L3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2d1dHRlcnMuc2Nzcz8yODVjKiIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9ibDIwLWN1cmF0ZWQtdHdlZXQtYmlsbGJvYXJkL3dlYnBhY2svaW5kZXguc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy93ZWJwYWNrL34vc3dpcGVyL2Rpc3QvY3NzL3N3aXBlci5jc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwyOS10d2l0dGVyLW1vbWVudHMvd2VicGFjay9pbmRleC5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2JsMzEtaW50cm9kdWN0aW9uL3dlYnBhY2svaW5kZXguc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9jMDQtaW1hZ2UtY2Fyb3VzZWwvd2VicGFjay9pbmRleC5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2MwNS12aWRlby93ZWJwYWNrL2luZGV4LnNjc3MiLCJ3ZWJwYWNrOi8vL3dlYnBhY2s6Ly8vd2VicGFjay9+L3BseXIvZGlzdC9wbHlyLmNzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9jMTItYWNjb3VudC1jYXJkL3dlYnBhY2svaW5kZXguc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay93ZWJwYWNrL2NvcmUvc3R5bGUvdXRpbGl0eS9faG92ZXIuc2NzcyIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb3JlL3ZhcmlhYmxlcy9jb2xvcnMuanNvbiIsIndlYnBhY2s6Ly8vd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9jMTQtbWVkaWEtZG93bmxvYWQvd2VicGFjay9pbmRleC5zY3NzIiwid2VicGFjazovLy93ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2MxOC1wYWdlLXNoYXJlL3dlYnBhY2svaW5kZXguc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBeUJGOzs7OztFQUtFO0FBYUY7O0VBRUU7QUFPRjs7Ozs7Ozs7Ozs7OztFQWFFO0FDakhGO0VBQ0UsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixnQkNvSnNCO0VEbkp0QixpQkFBVztFQUNYLFdBQVcsRUFzQlo7RUEzQkQ7SUFPSSxxQkFBYztJQUFkLHFCQUFjO0lBQWQsY0FBYztJQUNkLDBCQUFvQjtRQUFwQix1QkFBb0I7WUFBcEIsb0JBQW9CLEVBQ3JCO0VBVEg7SUFXSSxzQkFBc0IsRUFDdkI7RUFaSDtJQWNJLFlBQVk7SUFDWixhQUFhO0lBQ2IsY0VwQmtMLEVGcUJuTDtFQWpCSDtJQW1CSSxzQkREbUIsRUNFcEI7RUFwQkg7SUFzQkksY0FBYyxFQUlmO0lHb0JDO01IOUNKO1FBd0JNLGVBQWUsRUFFbEI7QURLSDs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUF5QkY7Ozs7O0VBS0U7QUFhRjs7RUFFRTtBQU9GOzs7Ozs7Ozs7Ozs7O0VBYUU7QUs5R0Y7RUFDRSxtQkFBbUI7RUFDbkIsaUJMYXFCLEVLbUZ0QjtFQWxHRDtJQUtJLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osYUFBYTtJQUNiLE9BQU87SUFDUCxRQUFRO0lBRVIscUJBQWM7SUFBZCxxQkFBYztJQUFkLGNBQWM7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QUFrQjtJQUNsQixtQkFBbUIsRUFNcEI7SVJjRDtNUS9DSjtRQThCVSxpQlpYYSxFWVlkO0VBL0JUO0lDZ0JJLFlYd0lvQjtJV3hJcEIsWUNBNEQ7SURBNUQsZVgrRXFCO0lXL0VyQixnQlhrRm9CLEVVbERuQjtJUkREO01RL0NKO1FDZ0JJLFlYd0lvQjtRV3hJcEIsWUNBNEQ7UURBNUQsZVgrRXFCO1FXL0VyQixnQlhrRm9CO1FXbEZwQix3QkV5Q3VELEVIVHREO0lBaERMO01DZ0JJLFlYd0lvQjtNV3hJcEIsWUNBNEQ7TURBNUQsZVgrRXFCO01XL0VyQixnQlhrRm9CLEVVbkRqQjtNUkFIO1FRL0NKO1VDZ0JJLFlYd0lvQjtVV3hJcEIsWUNBNEQ7VURBNUQsZVgrRXFCO1VXL0VyQixnQlhrRm9CO1VXbEZwQix1Qlh3SW9CO1VVM0dkLFlBQVksRUFFZjtFQS9DUDtJQWtETSx1QlovQmlCO0lZZ0NqQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLFFBQVE7SUFDUixTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLG1CQUFtQixFQVFwQjtJUmpCRDtNUS9DSjtRQTZEUSxvQloxQ2U7UVkyQ2Ysb0JaM0NlLEVZNkNsQjtRQWhFTDtVQTJEVSxpQlp4Q2EsRVl5Q2Q7RUE1RFQ7SUFrRU0sa0JBQXNCO0lBQ3RCLDJCQUEyQjtJQUMzQix5QkFBeUIsRUFDMUI7RUFyRUw7SUF1RU0sa0JacERpQixFWXdEbEI7SVI1QkQ7TVEvQ0o7UUF5RVEsb0JadERlLEVZd0RsQjs7QUEzRUw7RUE4RUksaUJaM0RtQixFWStEcEI7RVJuQ0M7SVEvQ0o7TUFnRk0saUJaN0RpQixFWStEcEI7O0FBbEZIO0VBb0ZJLGFBQWE7RUFDYixlQUFlO0VBQ2YsWUFBWSxFQUNiO0FadkRIOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQXlCRjs7Ozs7RUFLRTtBQWFGOztFQUVFO0FBT0Y7Ozs7Ozs7Ozs7Ozs7RUFhRTtBZ0JoSEY7RUFDRSxxQmhCZ0JxQjtFZ0JmckIsbUJBQW1CO0VBQ25CLG1CQUFtQixFQWlHcEI7RVp2REc7SVk3Q0o7TUFNSSxn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LEVvQjZKcEQ7RUFaRDtJQUlJLGNDckptUDtJRHNKblAsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKbVA7SUQySm5QLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKbVA7SURzSm5QLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUptUDtJRDJKblAsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySmtRO0lEc0psUSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUprUTtJRDJKbFEsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDckprUTtJRHNKbFEsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSmtRO0lEMkpsUSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKa1E7SURzSmxRLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSmtRO0lEMkpsUSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySmtRO0lEc0psUSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKa1E7SUQySmxRLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGVDckpnUjtJRHNKaFIsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQzFKZ1I7SUQySmhSLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLDBCQ3JKZ1I7SURzSmhSLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDMUpnUjtJRDJKaFIsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksY0NySmdSO0lEc0poUixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDMUpnUjtJRDJKaFIsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksc0JDckpnUjtJRHNKaFIsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkMxSmdSO0lEMkpoUixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxlQ3JKZ1M7SURzSmhTLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUMxSmdTO0lEMkpoUyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSwwQkNySmdTO0lEc0poUyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQzFKZ1M7SUQySmhTLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGNDckpnUztJRHNKaFMsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKZ1M7SUQySmhTLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKZ1M7SURzSmhTLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUpnUztJRDJKaFMsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySjhTO0lEc0o5UyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUo4UztJRDJKOVMsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDcko4UztJRHNKOVMsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSjhTO0lEMko5UyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKOFM7SURzSjlTLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSjhTO0lEMko5UyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySjhTO0lEc0o5UyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKOFM7SUQySjlTLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGVDckorSDtJRHNKL0gsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQzFKK0g7SUQySi9ILGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLDBCQ3JKK0g7SURzSi9ILGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDMUorSDtJRDJKL0gsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksY0NySitIO0lEc0ovSCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDMUorSDtJRDJKL0gsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksc0JDckorSDtJRHNKL0gsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkMxSitIO0lEMkovSCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxlQ3JKK0k7SURzSi9JLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUMxSitJO0lEMkovSSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSwwQkNySitJO0lEc0ovSSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQzFKK0k7SUQySi9JLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGNDckorSTtJRHNKL0ksZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKK0k7SUQySi9JLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKK0k7SURzSi9JLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUorSTtJRDJKL0ksZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySjhKO0lEc0o5SixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUo4SjtJRDJKOUosZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDcko4SjtJRHNKOUosZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSjhKO0lEMko5SixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKOEo7SURzSjlKLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSjhKO0lEMko5SixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySjhKO0lEc0o5SixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKOEo7SUQySjlKLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGVDcko0SztJRHNKNUssZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQzFKNEs7SUQySjVLLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLDBCQ3JKNEs7SURzSjVLLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDMUo0SztJRDJKNUssZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksY0NySjRLO0lEc0o1SyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDMUo0SztJRDJKNUssZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksc0JDcko0SztJRHNKNUssZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkMxSjRLO0lEMko1SyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxlQ3JKNEw7SURzSjVMLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUMxSjRMO0lEMko1TCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSwwQkNySjRMO0lEc0o1TCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQzFKNEw7SUQySjVMLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGNDcko0TDtJRHNKNUwsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKNEw7SUQySjVMLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKNEw7SURzSjVMLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUo0TDtJRDJKNUwsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySjBNO0lEc0oxTSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUowTTtJRDJKMU0sZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDckowTTtJRHNKMU0sZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSjBNO0lEMkoxTSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKME07SURzSjFNLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSjBNO0lEMkoxTSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySjBNO0lEc0oxTSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKME07SUQySjFNLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGVDcko0QjtJRHNKNUIsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQzFKNEI7SUQySjVCLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLDBCQ3JKNEI7SURzSjVCLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDMUo0QjtJRDJKNUIsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksY0NySjRCO0lEc0o1QixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDMUo0QjtJRDJKNUIsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksc0JDcko0QjtJRHNKNUIsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkMxSjRCO0lEMko1QixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxlQ3JKNEM7SURzSjVDLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUMxSjRDO0lEMko1QyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSwwQkNySjRDO0lEc0o1QyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQzFKNEM7SUQySjVDLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGNDcko0QztJRHNKNUMsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKNEM7SUQySjVDLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKNEM7SURzSjVDLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUo0QztJRDJKNUMsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySjJEO0lEc0ozRCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUoyRDtJRDJKM0QsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDckoyRDtJRHNKM0QsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSjJEO0lEMkozRCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKMkQ7SURzSjNELGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSjJEO0lEMkozRCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySjJEO0lEc0ozRCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKMkQ7SUQySjNELGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGVDckp5RTtJRHNKekUsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQzFKeUU7SUQySnpFLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLDBCQ3JKeUU7SURzSnpFLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDMUp5RTtJRDJKekUsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksY0NySnlFO0lEc0p6RSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDMUp5RTtJRDJKekUsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksc0JDckp5RTtJRHNKekUsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkMxSnlFO0lEMkp6RSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxlQ3JKeUY7SURzSnpGLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUMxSnlGO0lEMkp6RixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSwwQkNySnlGO0lEc0p6RixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQzFKeUY7SUQySnpGLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGNDckp5RjtJRHNKekYsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKeUY7SUQySnpGLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKeUY7SURzSnpGLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUp5RjtJRDJKekYsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySnVHO0lEc0p2RyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUp1RztJRDJKdkcsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDckp1RztJRHNKdkcsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSnVHO0lEMkp2RyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKdUc7SURzSnZHLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSnVHO0lEMkp2RyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySnVHO0lEc0p2RyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKdUc7SUQySnZHLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGVDckorSDtJRHNKL0gsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQzFKK0g7SUQySi9ILGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLDBCQ3JKK0g7SURzSi9ILGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDMUorSDtJRDJKL0gsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksY0NySitIO0lEc0ovSCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDMUorSDtJRDJKL0gsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksc0JDckorSDtJRHNKL0gsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkMxSitIO0lEMkovSCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxlQ3JKK0k7SURzSi9JLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUMxSitJO0lEMkovSSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSwwQkNySitJO0lEc0ovSSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQzFKK0k7SUQySi9JLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGNDckorSTtJRHNKL0ksZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKK0k7SUQySi9JLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKK0k7SURzSi9JLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUorSTtJRDJKL0ksZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySjhKO0lEc0o5SixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUo4SjtJRDJKOUosZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDcko4SjtJRHNKOUosZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSjhKO0lEMko5SixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKOEo7SURzSjlKLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSjhKO0lEMko5SixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySjhKO0lEc0o5SixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKOEo7SUQySjlKLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGVDcko0SztJRHNKNUssZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQzFKNEs7SUQySjVLLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLDBCQ3JKNEs7SURzSjVLLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDMUo0SztJRDJKNUssZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksY0NySjRLO0lEc0o1SyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDMUo0SztJRDJKNUssZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksc0JDcko0SztJRHNKNUssZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkMxSjRLO0lEMko1SyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxlQ3JKNEw7SURzSjVMLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUMxSjRMO0lEMko1TCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSwwQkNySjRMO0lEc0o1TCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQzFKNEw7SUQySjVMLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLGNDcko0TDtJRHNKNUwsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQzFKNEw7SUQySjVMLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJsSm1ELEVvQjZKcEQ7RUFaRDtJQUlJLHNCQ3JKNEw7SURzSjVMLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDMUo0TDtJRDJKNUwsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksZUNySjBNO0lEc0oxTSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDMUowTTtJRDJKMU0sZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQmxKbUQsRW9CNkpwRDtFQVpEO0lBSUksMEJDckowTTtJRHNKMU0sZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkMxSjBNO0lEMkoxTSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxjQ3JKME07SURzSjFNLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0MxSjBNO0lEMkoxTSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCbEptRCxFb0I2SnBEO0VBWkQ7SUFJSSxzQkNySjBNO0lEc0oxTSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQzFKME07SUQySjFNLGdCQUFnQixFQUNqQjs7QUFPVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBOEJFO0FBTUk7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNbU87SUQ0TW5PLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTm1PO0lEaU5uTyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTW1PO0lENE1uTyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hObU87SURpTm5PLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM01tTztJRDRNbk8sZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hObU87SURpTm5PLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNbU87SUQ0TW5PLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE5tTztJRGlObk8sZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTW1QO0lENE1uUCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE5tUDtJRGlOblAsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM01tUDtJRDRNblAsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTm1QO0lEaU5uUCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNbVA7SUQ0TW5QLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTm1QO0lEaU5uUCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTW1QO0lENE1uUCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hObVA7SURpTm5QLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM01rUTtJRDRNbFEsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOa1E7SURpTmxRLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNa1E7SUQ0TWxRLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE5rUTtJRGlObFEsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTWtRO0lENE1sUSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE5rUTtJRGlObFEsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM01rUTtJRDRNbFEsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTmtRO0lEaU5sUSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNZ1I7SUQ0TWhSLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTmdSO0lEaU5oUixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTWdSO0lENE1oUixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hOZ1I7SURpTmhSLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM01nUjtJRDRNaFIsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hOZ1I7SURpTmhSLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNZ1I7SUQ0TWhSLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE5nUjtJRGlOaFIsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTWdTO0lENE1oUyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE5nUztJRGlOaFMsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM01nUztJRDRNaFMsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTmdTO0lEaU5oUyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNZ1M7SUQ0TWhTLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTmdTO0lEaU5oUyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTWdTO0lENE1oUyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hOZ1M7SURpTmhTLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM004UztJRDRNOVMsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOOFM7SURpTjlTLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNOFM7SUQ0TTlTLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE44UztJRGlOOVMsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTThTO0lENE05UyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE44UztJRGlOOVMsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM004UztJRDRNOVMsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTjhTO0lEaU45UyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNK0g7SUQ0TS9ILGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTitIO0lEaU4vSCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTStIO0lENE0vSCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hOK0g7SURpTi9ILGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM00rSDtJRDRNL0gsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hOK0g7SURpTi9ILGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNK0g7SUQ0TS9ILGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE4rSDtJRGlOL0gsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTStJO0lENE0vSSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE4rSTtJRGlOL0ksZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM00rSTtJRDRNL0ksZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTitJO0lEaU4vSSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNK0k7SUQ0TS9JLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTitJO0lEaU4vSSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTStJO0lENE0vSSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hOK0k7SURpTi9JLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM004SjtJRDRNOUosZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOOEo7SURpTjlKLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNOEo7SUQ0TTlKLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE44SjtJRGlOOUosZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTThKO0lENE05SixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE44SjtJRGlOOUosZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM004SjtJRDRNOUosZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTjhKO0lEaU45SixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNNEs7SUQ0TTVLLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTjRLO0lEaU41SyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTTRLO0lENE01SyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hONEs7SURpTjVLLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM000SztJRDRNNUssZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hONEs7SURpTjVLLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNNEs7SUQ0TTVLLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE40SztJRGlONUssZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTTRMO0lENE01TCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE40TDtJRGlONUwsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM000TDtJRDRNNUwsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTjRMO0lEaU41TCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNNEw7SUQ0TTVMLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTjRMO0lEaU41TCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTTRMO0lENE01TCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hONEw7SURpTjVMLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM00wTTtJRDRNMU0sZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOME07SURpTjFNLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNME07SUQ0TTFNLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE4wTTtJRGlOMU0sZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTTBNO0lENE0xTSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE4wTTtJRGlOMU0sZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM00wTTtJRDRNMU0sZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTjBNO0lEaU4xTSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNNEI7SUQ0TTVCLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTjRCO0lEaU41QixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTTRCO0lENE01QixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hONEI7SURpTjVCLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM000QjtJRDRNNUIsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hONEI7SURpTjVCLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNNEI7SUQ0TTVCLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE40QjtJRGlONUIsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTTRDO0lENE01QyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE40QztJRGlONUMsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM000QztJRDRNNUMsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTjRDO0lEaU41QyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNNEM7SUQ0TTVDLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTjRDO0lEaU41QyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTTRDO0lENE01QyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hONEM7SURpTjVDLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM00yRDtJRDRNM0QsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOMkQ7SURpTjNELGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNMkQ7SUQ0TTNELGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE4yRDtJRGlOM0QsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTTJEO0lENE0zRCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE4yRDtJRGlOM0QsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM00yRDtJRDRNM0QsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTjJEO0lEaU4zRCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNeUU7SUQ0TXpFLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTnlFO0lEaU56RSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTXlFO0lENE16RSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hOeUU7SURpTnpFLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM015RTtJRDRNekUsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hOeUU7SURpTnpFLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNeUU7SUQ0TXpFLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE55RTtJRGlOekUsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTXlGO0lENE16RixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE55RjtJRGlOekYsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM015RjtJRDRNekYsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTnlGO0lEaU56RixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNeUY7SUQ0TXpGLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTnlGO0lEaU56RixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTXlGO0lENE16RixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hOeUY7SURpTnpGLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM011RztJRDRNdkcsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOdUc7SURpTnZHLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNdUc7SUQ0TXZHLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE51RztJRGlOdkcsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTXVHO0lENE12RyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE51RztJRGlOdkcsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM011RztJRDRNdkcsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTnVHO0lEaU52RyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNK0g7SUQ0TS9ILGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTitIO0lEaU4vSCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTStIO0lENE0vSCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hOK0g7SURpTi9ILGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM00rSDtJRDRNL0gsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hOK0g7SURpTi9ILGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNK0g7SUQ0TS9ILGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE4rSDtJRGlOL0gsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTStJO0lENE0vSSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE4rSTtJRGlOL0ksZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM00rSTtJRDRNL0ksZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTitJO0lEaU4vSSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNK0k7SUQ0TS9JLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTitJO0lEaU4vSSxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTStJO0lENE0vSSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hOK0k7SURpTi9JLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM004SjtJRDRNOUosZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOOEo7SURpTjlKLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNOEo7SUQ0TTlKLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE44SjtJRGlOOUosZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTThKO0lENE05SixnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE44SjtJRGlOOUosZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM004SjtJRDRNOUosZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTjhKO0lEaU45SixnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxtQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxlQzNNNEs7SUQ0TTVLLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksZUNoTjRLO0lEaU41SyxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSw4Q3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSwwQkMzTTRLO0lENE01SyxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLDBCQ2hONEs7SURpTjVLLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLGtDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGNDM000SztJRDRNNUssZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxjQ2hONEs7SURpTjVLLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDBDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLHNCQzNNNEs7SUQ0TTVLLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksc0JDaE40SztJRGlONUssZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsbUNwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksZUMzTTRMO0lENE01TCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGVDaE40TDtJRGlONUwsZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsOENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksMEJDM000TDtJRDRNNUwsZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSwwQkNoTjRMO0lEaU41TCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSxrQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxjQzNNNEw7SUQ0TTVMLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksY0NoTjRMO0lEaU41TCxnQkFBZ0IsRUFDakI7O0FBWEg7RUFDRSwwQ3BCeE1tRCxFb0JtTnBEO0VBWkQ7SUFJSSxzQkMzTTRMO0lENE01TCxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLHNCQ2hONEw7SURpTjVMLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLG1DcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLGVDM00wTTtJRDRNMU0sZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxlQ2hOME07SURpTjFNLGdCQUFnQixFQUNqQjs7QUFYSDtFQUNFLDhDcEJ4TW1ELEVvQm1OcEQ7RUFaRDtJQUlJLDBCQzNNME07SUQ0TTFNLGdCQUFnQixFQUNqQjtFQU5IO0lBU0ksMEJDaE4wTTtJRGlOMU0sZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0Usa0NwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksY0MzTTBNO0lENE0xTSxnQkFBZ0IsRUFDakI7RUFOSDtJQVNJLGNDaE4wTTtJRGlOMU0sZ0JBQWdCLEVBQ2pCOztBQVhIO0VBQ0UsMENwQnhNbUQsRW9CbU5wRDtFQVpEO0lBSUksc0JDM00wTTtJRDRNMU0sZ0JBQWdCLEVBQ2pCO0VBTkg7SUFTSSxzQkNoTjBNO0lEaU4xTSxnQkFBZ0IsRUFDakI7O0FFMU1UO0VBQ0UsZUFBZSxFQTREaEI7RUE3REQ7SWpDNEZFLHlCQTlFcUI7SUErRXJCLDZCQUE2QjtJQUFHLHFEQUFxRDtJYWxGbkYsWVh3SW9CO0lXeElwQixZQ0E0RDtJREE1RCxlWCtFcUI7SVcvRXJCLGdCWGtGb0I7SStCeEZwQixtQmpDU21CO0lpQ1JuQix1QmpDUW1CO0lpQ1BuQix1QmpDT21CO0lpQ05uQixxQmpDTW1CO0lpQ0xuQixxQmpDS21CO0lpQ0puQixzQmpDSW1CLEVpQ2lDcEI7SUEvQ0g7TUFZTSx1QmpDRWlCLEVpQ0dsQjtNQWpCTDtRQWNRLGVEdEJvaUI7UUN1QnBpQixzQkFBc0IsRUFDdkI7SUFoQlA7TUFtQk0sc0JqQ0xpQjtNaUNNakIsbUJqQ05pQixFaUNPbEI7SUFyQkw7TXBCV0ksWVh3SW9CO01XeElwQixZQ0E0RDtNREE1RCxlWCtFcUI7TVcvRXJCLGdCWGtGb0I7TStCckVsQixrQkFBa0I7TUFDbEIsc0JqQ1hpQixFaUNlbEI7TTdCYUQ7UTZCMUNKO1VBMkJRLHVCakNiZSxFaUNlbEI7SUE3Qkw7TUErQk0sMEJEdkNzaUI7TUN3Q3RpQixzQmpDbEJpQjtNaUNtQmpCLHlCakNuQmlCO01pQ29CakIsd0JqQ3BCaUI7TWlDcUJqQix5QmpDckJpQjtNQThFckIsd0JBOUVxQjtNQStFckIsNkJBQTZCO01BQUcscURBQXFEO01pQ3hEakYsMEJEN0NzaUI7TUM4Q3RpQixzRXRC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Z0JsQ3hEaUI7SWtDeURqQixtQmxDekRpQjtJa0MwRGpCLG1CQUFtQjtJQUNuQixlL0JqRnljO0krQmtGemMsd0RBQWlDO0lBQ2pDLGdDL0JuRnVmLEUrQm1HeGY7SUExRkw7TUE0RVEsV0FBVztNQUNYLG9CQUFvQixFQUNyQjtJQTlFUDtNQWdGUSxtQkFBbUI7TUFDbkIsY0FBYztNQUNkLFlBQVk7TUFDWixhQUFhO01BQ2IsV0FBVztNQUNYLDZDQUFtQjtjQUFuQixxQ0FBbUIsRUFJcEI7TUF6RlA7UUF1RlUsYy9CaEdraUIsRStCaUduaUI7RUF4RlQ7SUE0Rk0sNEJBQW1CO1FBQW5CLG1CQUFtQjtJQUNuQixvQkFBb0IsRUFDckI7O0E5QnJERDtFOEJ5REo7SXJCeEZJLGlCWHdJb0I7SVd4SXBCLFlDQTREO0lEQTVELHVCUzREd0I7SVQ1RHhCLHVCWHdJb0IsRWdDekNuQiIsImZpbGUiOiJjc3MvY29udGVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi92YXJpYWJsZXMvYnJlYWtwb2ludHMuanNvbic7XG5AaW1wb3J0ICcuLi92YXJpYWJsZXMvdHlwb2dyYXBoeS5qc29uJztcbkBpbXBvcnQgJy4uL3ZhcmlhYmxlcy9jb2xvcnMuanNvbic7XG5cbkBpbXBvcnQgJy4vZ3JpZCc7XG5cbi8vJGJhc2VsaW5lVW5pdDogbWFwLWdldChtYXAtZ2V0KCRncmlkLCBkZXNrdG9wKSwgYmFzZWxpbmUpO1xuJGJhc2VsaW5lVW5pdDogMC43NXJlbTsgLy8gMTJweFxuXG5AbWl4aW4gcmVzcG9uZC10bygkc2l6ZSkge1xuICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKSkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIHZlcnRpY2FsLWFsaWduIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG5AZnVuY3Rpb24gYmFzZWxpbmUoJG11bHRpcGxpZXI6IDEpIHtcbiAgQHJldHVybiAkYmFzZWxpbmVVbml0ICogJG11bHRpcGxpZXI7XG59XG5cbkBtaXhpbiB0eXBlU3R5bGVzKCR0eXBlZmFjZSkge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZSBMVFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiBtYXAtZ2V0KCR0eXBlZmFjZSwgd2VpZ2h0KTtcbiAgZm9udC1zaXplOiBiYXNlbGluZShtYXAtZ2V0KCR0eXBlZmFjZSwgc2l6ZSkpO1xuICBsaW5lLWhlaWdodDogYmFzZWxpbmUobWFwLWdldCgkdHlwZWZhY2UsIGxpbmUtaGVpZ2h0KSk7XG4gIGxldHRlci1zcGFjaW5nOiAje21hcC1nZXQoJHR5cGVmYWNlLCB0cmFja2luZykgLyAxMDAwfXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDAgYmFzZWxpbmUobWFwLWdldCgkdHlwZWZhY2UsIG1hcmdpbi1ib3R0b20pKSAwO1xufVxuXG4vKlxuXG5mb250IG1peGluXG4ka2V5OiB0eXBlIHN0eWxlIGtleSAoZXguIGJvbGQtMjQgb3Igcm9tYW4tMjQpLiBTZWUgdHlwb2dyYXBoeS5qc29uIGZvciBvcHRpb25zLlxuJGJyZWFrcG9pbnQ6IChvcHRpb25hbCkgYnJlYWtwb2ludCBrZXkgKGV4LiBmdWxsIG9yIHRhYmxldCkuIFNlZSBicmVha3BvaW50cy5qc29uIGZvciBvcHRpb25zLlxuXG5AaW5jbHVkZSBmb250KGJvbGQtMjQpO1xuXG5XaGVuIHVzZWQgd2l0aG91dCBhIGJyZWFrcG9pbnQgc3BlY2lmaWVkIHRoaXMgbWl4aW4gd2lsbCBwcm9kdWNlIGZvbnQgcHJvcGVydGllc1xud3JhcHBlZCBpbiBtZWRpYSBxdWVyaWVzLiBJdCdzIGEgc2ltcGxlIHdheSB0byBhcHBseSBmdWxseSByZXNwb25zaXZlIHR5cGUgc3R5bGVzXG50byBhIGNsYXNzIG9yIGVsZW1lbnQuXG5cbkBpbmNsdWRlIGZvbnQoYm9sZC0yNCwgZnVsbCk7XG5cbklmIGEgYnJlYWtwb2ludCBpcyBzcGVjaWZpZWQgdGhlcmUgd2lsbCBiZSBvbmx5IGEgc2luZ2xlIHNldCBvZiBmb250IHByb3BlcnRpZXNcbnRoYXQgYXJlIE5PVCB3cmFwcGVkIGluIGFueSBtZWRpYSBxdWVyaWVzLlxuXG4qL1xuXG5AbWl4aW4gZm9udCgka2V5LCAkYnJlYWtwb2ludDogbnVsbCkge1xuICBAaWYgJGJyZWFrcG9pbnQge1xuICAgIEBpZiBtYXAtaGFzLWtleShtYXAtZ2V0KCR0eXBvZ3JhcGh5LCByZXNwb25zaXZlKSwgJGJyZWFrcG9pbnQpIHtcbiAgICAgICRyZXNwb25zaXZlVHlwZTogbWFwLWdldChtYXAtZ2V0KG1hcC1nZXQoJHR5cG9ncmFwaHksIHJlc3BvbnNpdmUpLCAkYnJlYWtwb2ludCksICRrZXkpO1xuICAgICAgQGluY2x1ZGUgdHlwZVN0eWxlcygkcmVzcG9uc2l2ZVR5cGUpO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHR5cGVmYWNlOiBtYXAtZ2V0KG1hcC1nZXQoJHR5cG9ncmFwaHksIGRlZmF1bHQpLCAka2V5KTtcbiAgICBAaW5jbHVkZSB0eXBlU3R5bGVzKCR0eXBlZmFjZSk7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnRLZXksICRicmVha3BvaW50VmFsIGluICRicmVha3BvaW50cyB7XG4gICAgICBAaWYgbWFwLWhhcy1rZXkobWFwLWdldCgkdHlwb2dyYXBoeSwgcmVzcG9uc2l2ZSksICRicmVha3BvaW50S2V5KSB7XG5cbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KCRicmVha3BvaW50VmFsKSB7XG4gICAgICAgICAgJHJlc3BvbnNpdmVUeXBlOiBtYXAtZ2V0KG1hcC1nZXQobWFwLWdldCgkdHlwb2dyYXBoeSwgcmVzcG9uc2l2ZSksICRicmVha3BvaW50S2V5KSwgJGtleSk7XG4gICAgICAgICAgQGluY2x1ZGUgdHlwZVN0eWxlcygkcmVzcG9uc2l2ZVR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLypcblxuICBjb2xvcih5ZWxsb3cpIHNpbmdsZSBhcmd1bWVudCBkZWZhdWx0cyB0byBkYXJrIGNvbG9yc1xuICBjb2xvcihsaWdodCwgeWVsbG93KSByZXR1cm5zIGxpZ2h0IHllbGxvd1xuXG4qL1xuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvci1jYXRlZ29yeSwgJGNvbG9yLW5hbWU6bnVsbCkge1xuICAvLyBpZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIG51bGwgdGhlcmUgc2hvdWxkIGJlIGEgY29sb3IgYXMgdGhlIGZpcnN0IGFyZ3VtZW50XG4gIEBpZiAoJGNvbG9yLW5hbWUgIT0gbnVsbCkge1xuICAgIC8vIG1hcCBpbmNlcHRpb25cbiAgICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAkY29sb3ItY2F0ZWdvcnkpLCAkY29sb3ItbmFtZSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsIGRhcmspLCAkY29sb3ItbmFtZSk7XG4gIH1cblxuICBAd2FybiBcIkNvbG9yICcjeyRjb2xvci1jYXRlZ29yeX0nICcjeyRjb2xvci1uYW1lfScgbm90IGZvdW5kIGluICRjb2xvcnNcIjtcbn1cblxuLyogcm91bmRlZCBjb3JuZXJzXG4gIHVzYWdlOiBib3JkZXItcmFkaXVzKCBiYXNlbGluZSggbiApIClcbiovXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgIC8qIHN0b3BzIGJnIGNvbG9yIGZyb20gbGVha2luZyBvdXRzaWRlIHRoZSBib3JkZXI6ICovXG59XG5cbi8qXG5cbmh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG5cblRoZSBtaXhpbiBhc3N1bWVzIHlvdSdsbCBiZSBuZXN0aW5nIGFuIGVsZW1lbnQgd2l0aCB0aGUgY2xhc3Mgb2YgY29udGVudCBpbnNpZGUgeW91ciBpbml0aWFsIGJsb2NrXG5cbjxkaXYgY2xhc3M9XCJzaXh0ZWVuLW5pbmVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICBpbnNlcnQgY29udGVudCBoZXJlXG4gICAgdGhpcyB3aWxsIG1haW50YWluIGEgMTY6OSBhc3BlY3QgcmF0aW9cbiAgPC9kaXY+XG48L2Rpdj5cblxuKi9cblxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcbiAgfVxuICA+IC5jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svY29yZS9zdHlsZS9fbWl4aW4uc2Nzc1xuICoqLyIsIkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzL2JyZWFrcG9pbnRzLmpzb24nO1xuQGltcG9ydCAnY29yZS92YXJpYWJsZXMvZ3JpZC5qc29uJztcbkBpbXBvcnQgJ2NvcmUvc3R5bGUvZ3JpZCc7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL21peGluJztcbi50d2VldF9fY29tcG9zZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiBzcGFuKDEgb2YgMTIpO1xuICByaWdodDogc3BhbigxIG9mIDEyKSArIG1hcC1nZXQobWFwLWdldCgkZ3JpZCwgZGVza3RvcCksIG1hcmdpbik7XG4gIHotaW5kZXg6IDI7XG4gICYtLWxvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgc3ZnIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgZmlsbDogY29sb3IoZGFyaywgYmx1ZSk7XG4gIH1cbiAgJi0tdGV4dCB7XG4gICAgcGFkZGluZy1sZWZ0OiBiYXNlbGluZSgxKTtcbiAgfVxuICAmLm9wZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBmdWxsKSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2JsMTEtc2hhcmluZy1wb3N0LWV4Y2VycHQvd2VicGFjay9pbmRleC5zY3NzXG4gKiovIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay93ZWJwYWNrL34vc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc3Bhbi5zY3NzXG4gKiovIiwiJGNvbG9yczogKGV4dHJhLWRhcms6IChvcmFuZ2U6ICNEODJFMTgseWVsbG93OiAjRjk4RTAwLGdyZWVuOiAjMDA4OTUxLGJsdWU6ICMwMDVGRDEscHVycGxlOiAjNEYwMjk5LHBpbms6ICNBMDE3NDQpLGRhcms6IChvcmFuZ2U6ICNGNDVEMjIseWVsbG93OiAjRkZBRDFGLGdyZWVuOiAjMUZCNjUwLGJsdWU6ICMxREExRjIscHVycGxlOiAjNzk0QkM0LHBpbms6ICNFMDI0NUUpLGxpZ2h0OiAob3JhbmdlOiAjRkY4RDU3LHllbGxvdzogI0ZGRDAzRixncmVlbjogIzY4RTA5MCxibHVlOiAjNzFDOUY4LHB1cnBsZTogI0EzN0NFRCxwaW5rOiAjRjY4MDlBKSxleHRyYS1saWdodDogKG9yYW5nZTogI0ZGQkU3OCx5ZWxsb3c6ICNGRkU3NkUsZ3JlZW46ICNBNUYyQUEsYmx1ZTogIzk3RTNGRixwdXJwbGU6ICNDN0I0RkEscGluazogI0ZGQjhDMiksbmV1dHJhbDogKGJsYWNrOiAjMTQxNzFBLGRhcmstZ3JheTogIzY1Nzc4NixsaWdodC1ncmF5OiAjQUFCOEMyLGV4dHJhLWxpZ2h0LWdyYXk6ICNDQ0Q2REQsZXh0cmEtZXh0cmEtbGlnaHQtZ3JheTogI0Y1RjhGQSx3aGl0ZTogI0ZGRkZGRikpO1xuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3ZhcmlhYmxlcy9jb2xvcnMuanNvblxuICoqLyIsIi8vIEJyZWFrcG9pbnQgSW50ZWdyYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT1cblxuJHN1c3ktbWVkaWE6ICgpICFkZWZhdWx0O1xuJHN1c3ktbWVkaWEtZmFsbGJhY2s6IGZhbHNlICFkZWZhdWx0O1xuXG4kX3N1c3ktbWVkaWEtY29udGV4dDogKCk7XG5cblxuLy8gU3VzeSBCcmVha3BvaW50XG4vLyAtLS0tLS0tLS0tLS0tLS1cbi8vIENoYW5nZSBncmlkcyBhdCBkaWZmZXJlbnQgbWVkaWEgcXVlcnkgYnJlYWtwb2ludHMuXG4vLyAtICRxdWVyeSAgICAgOiA8bWluLXdpZHRoPiBbPG1heC13aWR0aD5dIHwgPHByb3BlcnR5PiA8dmFsdWU+IHwgPG1hcD5cbi8vIC0gJGxheW91dCAgICA6IDxzZXR0aW5ncz5cbi8vIC0gJG5vLXF1ZXJ5ICA6IDxib29sZWFuPiB8IDxzZWxlY3Rvcj5cbkBtaXhpbiBzdXN5LWJyZWFrcG9pbnQoXG4gICRxdWVyeSxcbiAgJGxheW91dDogZmFsc2UsXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICBAaW5jbHVkZSBzdXN5LW1lZGlhLXJvdXRlcigkcXVlcnksICRuby1xdWVyeSkge1xuICAgIEBpZiAkbGF5b3V0IHtcbiAgICAgIEBpbmNsdWRlIHdpdGgtbGF5b3V0KCRsYXlvdXQpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTdXN5IE1lZGlhXG4vLyAtLS0tLS0tLS0tXG4vLyAtICRxdWVyeTogPG1pbi13aWR0aD4gWzxtYXgtd2lkdGg+XSB8IDxwcm9wZXJ0eT4gPHZhbHVlPlxuLy8gLSAkbm8tcXVlcnk6IDxib29sZWFuPiB8IDxzZWxlY3Rvcj5cbkBtaXhpbiBzdXN5LW1lZGlhKFxuICAkcXVlcnksXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICAkb2xkLWNvbnRleHQ6ICRfc3VzeS1tZWRpYS1jb250ZXh0O1xuICAkbmFtZTogaWYobWFwLWhhcy1rZXkoJHN1c3ktbWVkaWEsICRxdWVyeSksICRxdWVyeSwgbnVsbCk7XG4gICRxdWVyeTogc3VzeS1nZXQtbWVkaWEoJHF1ZXJ5KTtcbiAgJHF1ZXJ5OiBzdXN5LXBhcnNlLW1lZGlhKCRxdWVyeSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1jb250ZXh0KCRxdWVyeSwgJG5hbWUpO1xuXG4gIEBpZiAkbm8tcXVlcnkgYW5kIHR5cGUtb2YoJG5vLXF1ZXJ5KSAhPSBzdHJpbmcge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIHtcbiAgICBAbWVkaWEgI3tzdXN5LXJlbmRlci1tZWRpYSgkcXVlcnkpfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAaWYgdHlwZS1vZigkbm8tcXVlcnkpID09IHN0cmluZyB7XG4gICAgICAjeyRuby1xdWVyeX0gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtY29udGV4dCgkb2xkLWNvbnRleHQsICRjbGVhbjogdHJ1ZSk7XG59XG5cblxuLy8gTWVkaWEgUm91dGVyXG4vLyAtLS0tLS0tLS0tLS1cbi8vIFJvdXQgbWVkaWEgYXJndW1lbnRzIHRvIHRoZSBjb3JyZWN0IG1peGluLlxuQG1peGluIHN1c3ktbWVkaWEtcm91dGVyKFxuICAkcXVlcnksXG4gICRuby1xdWVyeTogJHN1c3ktbWVkaWEtZmFsbGJhY2tcbikge1xuICBAaWYgc3VzeS1zdXBwb3J0KGJyZWFrcG9pbnQsIChtaXhpbjogYnJlYWtwb2ludCksICR3YXJuOiBmYWxzZSkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgc3VzeS1tZWRpYSgkcXVlcnksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8gVXBkYXRlIENvbnRleHRcbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFNldCB0aGUgbmV3IG1lZGlhIGNvbnRleHRcbkBtaXhpbiBzdXN5LW1lZGlhLWNvbnRleHQoXG4gICRxdWVyeSxcbiAgJG5hbWU6IG51bGwsXG4gICRjbGVhbjogZmFsc2Vcbikge1xuICAkcXVlcnk6IG1hcC1tZXJnZSgobmFtZTogJG5hbWUpLCAkcXVlcnkpO1xuXG4gIEBpZiAkY2xlYW4ge1xuICAgICRfc3VzeS1tZWRpYS1jb250ZXh0OiAkcXVlcnkgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJF9zdXN5LW1lZGlhLWNvbnRleHQ6IG1hcC1tZXJnZSgkX3N1c3ktbWVkaWEtY29udGV4dCwgJHF1ZXJ5KSAhZ2xvYmFsO1xuICB9XG59XG5cblxuLy8gTWVkaWEgQ29udGV4dFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSBmdWxsIG1lZGlhIGNvbnRleHQsIG9yIGEgc2luZ2xlIG1lZGlhIHByb3BlcnR5IChlLmcuIG1pbi13aWR0aClcbkBmdW5jdGlvbiBzdXN5LW1lZGlhLWNvbnRleHQoXG4gICRwcm9wZXJ0eTogZmFsc2Vcbikge1xuICBAaWYgJHByb3BlcnR5IHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJF9zdXN5LW1lZGlhLWNvbnRleHQsICRwcm9wZXJ0eSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJF9zdXN5LW1lZGlhLWNvbnRleHQ7XG4gIH1cbn1cblxuXG4vLyBHZXQgTWVkaWFcbi8vIC0tLS0tLS0tLVxuLy8gUmV0dXJuIGEgbmFtZWQgbWVkaWEtcXVlcnkgZnJvbSAkc3VzeS1tZWRpYS5cbi8vIC0gJG5hbWU6IDxrZXk+XG5AZnVuY3Rpb24gc3VzeS1nZXQtbWVkaWEoXG4gICRuYW1lXG4pIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRzdXN5LW1lZGlhLCAkbmFtZSkge1xuICAgICRtYXAtdmFsdWU6IG1hcC1nZXQoJHN1c3ktbWVkaWEsICRuYW1lKTtcbiAgICBAaWYgKCRuYW1lID09ICRtYXAtdmFsdWUpIHtcbiAgICAgICRuYW1lOiAkbWFwLXZhbHVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG5hbWU6IHN1c3ktZ2V0LW1lZGlhKCRtYXAtdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5hbWU7XG59XG5cblxuLy8gUmVuZGVyIE1lZGlhXG4vLyAtLS0tLS0tLS0tLS1cbi8vIEJ1aWxkIGEgbWVkaWEtcXVlcnkgc3RyaW5nIGZyb20gdmFyaW91cyBtZWRpYSBzZXR0aW5nc1xuQGZ1bmN0aW9uIHN1c3ktcmVuZGVyLW1lZGlhKFxuICAkcXVlcnlcbikge1xuICAkb3V0cHV0OiBudWxsO1xuICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkcXVlcnkge1xuICAgICRzdHJpbmc6IG51bGw7XG5cbiAgICBAaWYgJHByb3BlcnR5ID09IG1lZGlhIHtcbiAgICAgICRzdHJpbmc6ICR2YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRzdHJpbmc6ICcoI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0pJztcbiAgICB9XG5cbiAgICAkb3V0cHV0OiBpZigkb3V0cHV0LCAnI3skb3V0cHV0fSBhbmQgI3skc3RyaW5nfScsICRzdHJpbmcpO1xuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG5cbi8vIFBhcnNlIE1lZGlhXG4vLyAtLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHBhcnNlZCBtZWRpYS1xdWVyeSBzZXR0aW5ncyBiYXNlZCBvbiBzaG9ydGhhbmRcbkBmdW5jdGlvbiBzdXN5LXBhcnNlLW1lZGlhKFxuICAkcXVlcnlcbikge1xuICAkbXE6IG51bGw7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbWFwIHtcbiAgICAkbXE6ICRxdWVyeTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIHtcbiAgICAkbXE6IChtaW4td2lkdGg6ICRxdWVyeSk7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkcXVlcnkpID09IGxpc3QgYW5kIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiB0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSBudW1iZXIge1xuICAgICAgJG1xOiAoXG4gICAgICAgIG1pbi13aWR0aDogbWluKCRxdWVyeS4uLiksXG4gICAgICAgIG1heC13aWR0aDogbWF4KCRxdWVyeS4uLiksXG4gICAgICApO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJG1xOiAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICRtcTogKG1lZGlhOiAnI3skcXVlcnl9Jyk7XG4gIH1cblxuICBAcmV0dXJuICRtcTtcbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svd2VicGFjay9+L3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2JyZWFrcG9pbnQtcGx1Z2luLnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9icmVha3BvaW50cy5qc29uJztcbkBpbXBvcnQgJ2NvcmUvc3R5bGUvZ3JpZCc7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL21peGluJztcbkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzL21vdGlvbi5qc29uJztcbiR0cmFuc2l0aW9uVGltaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItdGltaW5nKTtcbiR0cmFuc2l0aW9uRWFzaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItZWFzaW5nKTtcblxuLmVtYmVkZGVkLXR3ZWV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IGJhc2VsaW5lKDIxKTtcblxuICAuZW1iZWRkZWQtdHdlZXRfX2xvYWRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAuZW1iZWRkZWQtdHdlZXRfX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIG9wYWNpdHk6IDA7XG5cbiAgICBpZnJhbWUge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IC8vIG5lZWRzIHRvIG92ZXJyaWRlIHRoZSBpbmxpbmUgc3R5bGVzXG4gICAgICBib3JkZXItcmFkaXVzOiBiYXNlbGluZSgxLzMpO1xuICAgIH1cbiAgfVxuXG4gIC5lbWJlZGRlZC10d2VldF9fZGVsZXRlZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAuZGVsZXRlZC10d2VldCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICAgLnR3ZWV0X19oZWFkZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgLnR3ZWV0X19sb2dvIHtcbiAgICAgICAgICB3aWR0aDogYmFzZWxpbmUoMik7XG4gICAgICAgICAgaGVpZ2h0OiBiYXNlbGluZSgyKTtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGJhc2VsaW5lKDIpO1xuICAgICAgICAgICAgaGVpZ2h0OiBiYXNlbGluZSgyKTtcbiAgICAgICAgICAgIGZpbGw6IGNvbG9yKG5ldXRyYWwsIGV4dHJhLWxpZ2h0LWdyYXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLnR3ZWV0X19jb3B5IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogYmFzZWxpbmUoMyk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSg3KTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgICBAaW5jbHVkZSBmb250KGJvbGQtMzYsIGZ1bGwpO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSg0KTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogYmFzZWxpbmUoOCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnR3ZWV0X19sb2dvIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGEge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGJhc2VsaW5lKDIpO1xuICAgICAgICAgICAgaGVpZ2h0OiBiYXNlbGluZSgyKTtcbiAgICAgICAgICAgIGZpbGw6IGNvbG9yKGRhcmssIGJsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uZW1iZWRkZWQtYXV0aG9yaW5nX19oaW50IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvcmVzb3VyY2UvZW1iZWRkZWQtdHdlZXQvd2VicGFjay9pbmRleC5zY3NzXG4gKiovIiwiJHR5cG9ncmFwaHk6IChkZWZhdWx0OiAoYm9sZC0xNDQ6ICh3ZWlnaHQ6IDcwMCxzaXplOiA4LGxpbmUtaGVpZ2h0OiA4LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC05NjogKHdlaWdodDogNzAwLHNpemU6IDYsbGluZS1oZWlnaHQ6IDYsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTcyOiAod2VpZ2h0OiA3MDAsc2l6ZTogNSxsaW5lLWhlaWdodDogNSx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLHJvbWFuLTcyOiAod2VpZ2h0OiA0MDAsc2l6ZTogNSxsaW5lLWhlaWdodDogNSx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtNDg6ICh3ZWlnaHQ6IDcwMCxzaXplOiA0LGxpbmUtaGVpZ2h0OiA0LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tNDg6ICh3ZWlnaHQ6IDQwMCxzaXplOiA0LGxpbmUtaGVpZ2h0OiA0LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC0zNjogKHdlaWdodDogNzAwLHNpemU6IDMsbGluZS1oZWlnaHQ6IDMsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0zNjogKHdlaWdodDogNDAwLHNpemU6IDMsbGluZS1oZWlnaHQ6IDMsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTI0OiAod2VpZ2h0OiA3MDAsc2l6ZTogMixsaW5lLWhlaWdodDogMix0cmFja2luZzogMCxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0yNDogKHdlaWdodDogNDAwLHNpemU6IDIsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDE1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtMTY6ICh3ZWlnaHQ6IDcwMCxzaXplOiAxLjMzLGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAyNSxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0xNjogKHdlaWdodDogNDAwLHNpemU6IDEuMzMsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDI1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtMTQ6ICh3ZWlnaHQ6IDcwMCxzaXplOiAxLjE2LGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAzMCxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi0xNDogKHdlaWdodDogNDAwLHNpemU6IDEuMTYsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDI1LG1hcmdpbi1ib3R0b206IDApKSxyZXNwb25zaXZlOiAoZnVsbDogKGJvbGQtMTQ0OiAod2VpZ2h0OiA3MDAsc2l6ZTogMTIsbGluZS1oZWlnaHQ6IDEyLHRyYWNraW5nOiAtMjAwLG1hcmdpbi1ib3R0b206IDApLGJvbGQtOTY6ICh3ZWlnaHQ6IDcwMCxzaXplOiA4LGxpbmUtaGVpZ2h0OiA4LHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC03MjogKHdlaWdodDogNzAwLHNpemU6IDYsbGluZS1oZWlnaHQ6IDYsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxyb21hbi03MjogKHdlaWdodDogNDAwLHNpemU6IDYsbGluZS1oZWlnaHQ6IDYsdHJhY2tpbmc6IC0yNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTQ4OiAod2VpZ2h0OiA3MDAsc2l6ZTogNCxsaW5lLWhlaWdodDogNCx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLHJvbWFuLTQ4OiAod2VpZ2h0OiA0MDAsc2l6ZTogNCxsaW5lLWhlaWdodDogNCx0cmFja2luZzogLTI1LG1hcmdpbi1ib3R0b206IDApLGJvbGQtMzY6ICh3ZWlnaHQ6IDcwMCxzaXplOiAzLGxpbmUtaGVpZ2h0OiAzLHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMzY6ICh3ZWlnaHQ6IDQwMCxzaXplOiAzLGxpbmUtaGVpZ2h0OiAzLHRyYWNraW5nOiAtMjUsbWFyZ2luLWJvdHRvbTogMCksYm9sZC0yNDogKHdlaWdodDogNzAwLHNpemU6IDIsbGluZS1oZWlnaHQ6IDIsdHJhY2tpbmc6IDAsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMjQ6ICh3ZWlnaHQ6IDQwMCxzaXplOiAyLGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAxNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTE2OiAod2VpZ2h0OiA3MDAsc2l6ZTogMS4zMyxsaW5lLWhlaWdodDogMix0cmFja2luZzogMjUsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMTY6ICh3ZWlnaHQ6IDQwMCxzaXplOiAxLjMzLGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAyNSxtYXJnaW4tYm90dG9tOiAwKSxib2xkLTE0OiAod2VpZ2h0OiA3MDAsc2l6ZTogMS4xNixsaW5lLWhlaWdodDogMix0cmFja2luZzogMzAsbWFyZ2luLWJvdHRvbTogMCkscm9tYW4tMTQ6ICh3ZWlnaHQ6IDQwMCxzaXplOiAxLjE2LGxpbmUtaGVpZ2h0OiAyLHRyYWNraW5nOiAyNSxtYXJnaW4tYm90dG9tOiAwKSkpKTtcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy92YXJpYWJsZXMvdHlwb2dyYXBoeS5qc29uXG4gKiovIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBDU1MgZm9yIHRoZSBSVEUgaXMgYSBiaXQgZGlmZmVyZW50IHRoYW4gdGhlIENTUyBmb3IgcmVndWxhciBjb21wb25lbnRzLlxuICogVGhlIFJURSBjYW4ndCBiZSBjdXN0b21pemVkIGVhc2lseSwgZm9yIGV4YW1wbGUgaXQncyBoYXJkIHRvIGFkZCBhIENTU1xuICogY2xhc3MgXCJ0aGVtZS0tY29sb3JcIiB0byBhIGxpbmsuIEluc3RlYWQgb2YgYWRkaW5nIHRoZSBjbGFzcywgd2UgYWRkcmVzc1xuICogdGhlIDxhPiB0YWcgZGlyZWN0bHkg4oCTIHdpdGhvdXQgYSBDU1MgY2xhc3MuXG4gKlxuICogVGhlIFJURSBhbGxvd3MgdG8gY3JlYXRlIHRleHQgd3JhcHBlZCBpbiB0aGUgZm9sbG93aW5nIEhUTUwgdGFnczpcbiAqICA8cD5cbiAqICA8YT5cbiAqICA8aDI+LCA8aDM+IChub3QgaDEsIGg0LCBoNSlcbiAqICA8b2w+LCA8dWw+LCA8bGk+XG4gKiAgPHNwYW4uaW5saW5lLWNvZGU+XG4gKi9cbi8qKlxuICogVGhlIHN0eWxlcyBpbiB0aGlzIGZpbGUgYXJlIHNoYXJlZCBhY3Jvc3MgYmwxMy1yaWNoLXRleHQtZWRpdG9yIGFuZFxuICogYmwyNS1ibG9nLW1pZ3JhdGlvbi1odG1sLiBJZiBhIHN0eWxlIGlzIG9ubHkgdXNlZCBieSBvbmUgY29tcG9uZW50LFxuICogbW92ZSB0aGUgYXBwcm9wcmlhdGUgQ1NTIHRvIHRoZSBjb21wb25lbnQsIGFuZCByZW1vdmUgaXQgZnJvbSB0aGlzIGZpbGUuXG4gKi9cbi8qXG5cbmZvbnQgbWl4aW5cbiRrZXk6IHR5cGUgc3R5bGUga2V5IChleC4gYm9sZC0yNCBvciByb21hbi0yNCkuIFNlZSB0eXBvZ3JhcGh5Lmpzb24gZm9yIG9wdGlvbnMuXG4kYnJlYWtwb2ludDogKG9wdGlvbmFsKSBicmVha3BvaW50IGtleSAoZXguIGZ1bGwgb3IgdGFibGV0KS4gU2VlIGJyZWFrcG9pbnRzLmpzb24gZm9yIG9wdGlvbnMuXG5cbkBpbmNsdWRlIGZvbnQoYm9sZC0yNCk7XG5cbldoZW4gdXNlZCB3aXRob3V0IGEgYnJlYWtwb2ludCBzcGVjaWZpZWQgdGhpcyBtaXhpbiB3aWxsIHByb2R1Y2UgZm9udCBwcm9wZXJ0aWVzXG53cmFwcGVkIGluIG1lZGlhIHF1ZXJpZXMuIEl0J3MgYSBzaW1wbGUgd2F5IHRvIGFwcGx5IGZ1bGx5IHJlc3BvbnNpdmUgdHlwZSBzdHlsZXNcbnRvIGEgY2xhc3Mgb3IgZWxlbWVudC5cblxuQGluY2x1ZGUgZm9udChib2xkLTI0LCBmdWxsKTtcblxuSWYgYSBicmVha3BvaW50IGlzIHNwZWNpZmllZCB0aGVyZSB3aWxsIGJlIG9ubHkgYSBzaW5nbGUgc2V0IG9mIGZvbnQgcHJvcGVydGllc1xudGhhdCBhcmUgTk9UIHdyYXBwZWQgaW4gYW55IG1lZGlhIHF1ZXJpZXMuXG5cbiovXG4vKlxuXG4gIGNvbG9yKHllbGxvdykgc2luZ2xlIGFyZ3VtZW50IGRlZmF1bHRzIHRvIGRhcmsgY29sb3JzXG4gIGNvbG9yKGxpZ2h0LCB5ZWxsb3cpIHJldHVybnMgbGlnaHQgeWVsbG93XG5cbiovXG4vKiByb3VuZGVkIGNvcm5lcnNcbiAgdXNhZ2U6IGJvcmRlci1yYWRpdXMoIGJhc2VsaW5lKCBuICkgKVxuKi9cbi8qXG5cbmh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG5cblRoZSBtaXhpbiBhc3N1bWVzIHlvdSdsbCBiZSBuZXN0aW5nIGFuIGVsZW1lbnQgd2l0aCB0aGUgY2xhc3Mgb2YgY29udGVudCBpbnNpZGUgeW91ciBpbml0aWFsIGJsb2NrXG5cbjxkaXYgY2xhc3M9XCJzaXh0ZWVuLW5pbmVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICBpbnNlcnQgY29udGVudCBoZXJlXG4gICAgdGhpcyB3aWxsIG1haW50YWluIGEgMTY6OSBhc3BlY3QgcmF0aW9cbiAgPC9kaXY+XG48L2Rpdj5cblxuKi9cbi8qXG5cbmZvbnQgbWl4aW5cbiRrZXk6IHR5cGUgc3R5bGUga2V5IChleC4gYm9sZC0yNCBvciByb21hbi0yNCkuIFNlZSB0eXBvZ3JhcGh5Lmpzb24gZm9yIG9wdGlvbnMuXG4kYnJlYWtwb2ludDogKG9wdGlvbmFsKSBicmVha3BvaW50IGtleSAoZXguIGZ1bGwgb3IgdGFibGV0KS4gU2VlIGJyZWFrcG9pbnRzLmpzb24gZm9yIG9wdGlvbnMuXG5cbkBpbmNsdWRlIGZvbnQoYm9sZC0yNCk7XG5cbldoZW4gdXNlZCB3aXRob3V0IGEgYnJlYWtwb2ludCBzcGVjaWZpZWQgdGhpcyBtaXhpbiB3aWxsIHByb2R1Y2UgZm9udCBwcm9wZXJ0aWVzXG53cmFwcGVkIGluIG1lZGlhIHF1ZXJpZXMuIEl0J3MgYSBzaW1wbGUgd2F5IHRvIGFwcGx5IGZ1bGx5IHJlc3BvbnNpdmUgdHlwZSBzdHlsZXNcbnRvIGEgY2xhc3Mgb3IgZWxlbWVudC5cblxuQGluY2x1ZGUgZm9udChib2xkLTI0LCBmdWxsKTtcblxuSWYgYSBicmVha3BvaW50IGlzIHNwZWNpZmllZCB0aGVyZSB3aWxsIGJlIG9ubHkgYSBzaW5nbGUgc2V0IG9mIGZvbnQgcHJvcGVydGllc1xudGhhdCBhcmUgTk9UIHdyYXBwZWQgaW4gYW55IG1lZGlhIHF1ZXJpZXMuXG5cbiovXG4vKlxuXG4gIGNvbG9yKHllbGxvdykgc2luZ2xlIGFyZ3VtZW50IGRlZmF1bHRzIHRvIGRhcmsgY29sb3JzXG4gIGNvbG9yKGxpZ2h0LCB5ZWxsb3cpIHJldHVybnMgbGlnaHQgeWVsbG93XG5cbiovXG4vKiByb3VuZGVkIGNvcm5lcnNcbiAgdXNhZ2U6IGJvcmRlci1yYWRpdXMoIGJhc2VsaW5lKCBuICkgKVxuKi9cbi8qXG5cbmh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG5cblRoZSBtaXhpbiBhc3N1bWVzIHlvdSdsbCBiZSBuZXN0aW5nIGFuIGVsZW1lbnQgd2l0aCB0aGUgY2xhc3Mgb2YgY29udGVudCBpbnNpZGUgeW91ciBpbml0aWFsIGJsb2NrXG5cbjxkaXYgY2xhc3M9XCJzaXh0ZWVuLW5pbmVcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICBpbnNlcnQgY29udGVudCBoZXJlXG4gICAgdGhpcyB3aWxsIG1haW50YWluIGEgMTY6OSBhc3BlY3QgcmF0aW9cbiAgPC9kaXY+XG48L2Rpdj5cblxuKi9cbi8qIEhlbHZldGljYSBOZXVlIExUIFcwNl81NyBDb25kICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFQgQ29uZFwiO1xuICBzcmM6IHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvODk3ZWE5NTEtN2VjNi00N2Y0LTlkYTMtN2QwNjE5YjQ2ZDA0LmVvdD8jaWVmaXhcIik7XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS84OTdlYTk1MS03ZWM2LTQ3ZjQtOWRhMy03ZDA2MTliNDZkMDQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvMDMzYjU0ZGItYjFjZS00ZGE3LTg2MWItNjFkMDU5YzFjOWI4LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlL2Q5Yzg0MmY4LWIzN2EtNDE0Zi1iZTg2LTk3ZWE5YzYxZDNkNy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvODRhMmNjMDktZjAyZC00YzFkLWE1YTktMmFiNDU2NDM5YzczLnN2ZyM4NGEyY2MwOS1mMDJkLTRjMWQtYTVhOS0yYWI0NTY0MzljNzNcIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbi8qIEhlbHZldGljYSBOZXVlIExUIFcwNl83NSBCb2xkICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFRcIjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6IHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvM2FlYWViMWQtMWRlYS00ZTliLTllODMtNTJhZGM1YTg3MjA5LmVvdD8jaWVmaXhcIik7XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS8zYWVhZWIxZC0xZGVhLTRlOWItOWU4My01MmFkYzVhODcyMDkuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvZDkxMjJlOGQtYmYyNi00ZjFjLWJhYjktYzA2NTk5Mzk3YjU5LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlL2RiMGNlYzEyLWE5NDctNDBmZS1hMTE1LWM1Y2UyMmVlNzlmNi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvMDI0NDExZWYtMjZiZi00NTM2LWFlYTQtZWM5NTM4NDZlZGE3LnN2ZyMwMjQ0MTFlZi0yNmJmLTQ1MzYtYWVhNC1lYzk1Mzg0NmVkYTdcIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbi8qIEhlbHZldGljYSBOZXVlIExUIFcwNl84NSBIZWF2eSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlIExUXCI7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzhhOTBhMmJhLTEyNzYtNGIzZi1iYzFjLTg1MjYxNzJiMjdmNC5lb3Q/I2llZml4XCIpO1xuICBzcmM6IHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvOGE5MGEyYmEtMTI3Ni00YjNmLWJjMWMtODUyNjE3MmIyN2Y0LmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlL2M0MTVmM2ZkLWZmMjctNDBmZS1hZjk0LThiNGE1NGI0YjRlNC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS9hMWRhMjBjNy00ZGM5LTRhZjUtYmQ2Zi05ZWJlNTBiNjc4OGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlL2FjZDhkNmRmLTk2OTYtNDA5Mi1iZjIzLTUzNzBjNjNjYTlmYi5zdmcjYWNkOGQ2ZGYtOTY5Ni00MDkyLWJmMjMtNTM3MGM2M2NhOWZiXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG4vKiBIZWx2ZXRpY2EgTmV1ZSBMVCBXMDZfNTYgSXQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZSBMVFwiO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS83ZGYzOTMyNS0wZTBlLTQ2MzUtYTcxNy01OTAzM2EwMjZmYzUuZW90PyNpZWZpeFwiKTtcbiAgc3JjOiB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzdkZjM5MzI1LTBlMGUtNDYzNS1hNzE3LTU5MDMzYTAyNmZjNS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS82YWNiOWIyNi03ZThlLTQ2YjQtYjY4Yi02MzFhYjA3ZDZlZDcud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvMjkxNGE5MGUtZDc2Ni00Y2Y4LTk3YjktMDRjNWZlODk3ZjA2LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS9iODVlYTViMy04ZGM4LTQ5ODktYTk4Mi1mNDYxYmM5NjU1Zjguc3ZnI2I4NWVhNWIzLThkYzgtNDk4OS1hOTgyLWY0NjFiYzk2NTVmOFwiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuLyogSGVsdmV0aWNhIE5ldWUgTFQgVzA2XzQ1IExpZ2h0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFRcIjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6IHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvMjAyM2U3ZDEtOWYwYS00Y2FjLThlODAtMjIzMjFkYjkxOGRkLmVvdD8jaWVmaXhcIik7XG4gIHNyYzogdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS8yMDIzZTdkMS05ZjBhLTRjYWMtOGU4MC0yMjMyMWRiOTE4ZGQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksIHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvMTk4ZmQ3OGItMzY1NS00NzY4LTg5YzQtMzFjYWY2NWVhMzYzLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzQ5NjMxY2U4LTkyMDEtNDdhOC04ODc0LTQ1MzcxNDE3YzM1Zi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvOWFjM2Q0MjQtODUyMS00NmNmLTg4NzgtNzMyNDc2MmRiN2I0LnN2ZyM5YWMzZDQyNC04NTIxLTQ2Y2YtODg3OC03MzI0NzYyZGI3YjRcIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbi8qIEhlbHZldGljYSBOZXVlIExUIFcwNl81NSBSb21hbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlIExUXCI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzhiM2IwMTMzLTIyMmQtNGZmYy05ZDZlLTU2NWRkODc5NjkwYy5lb3Q/I2llZml4XCIpO1xuICBzcmM6IHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvOGIzYjAxMzMtMjIyZC00ZmZjLTlkNmUtNTY1ZGQ4Nzk2OTBjLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzFhMTRkY2FjLTdjOWUtNDcxYy04MDM5LTMzYzczMGY4NzFmMi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS81NThlZDUzNC0wYzYwLTQyY2YtOGI5NC1kMGExNmViNzBkMzcud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzY1MTNlODA0LWUwM2UtNDFhMS04Mzg1LWQ1ZTA5NzFmMjAwOS5zdmcjNjUxM2U4MDQtZTAzZS00MWExLTgzODUtZDVlMDk3MWYyMDA5XCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG4vKiBIZWx2ZXRpY2EgTmV1ZSBMVCBXMDZfMzUgVGhpbiAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlIExUXCI7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzJhMTI5MTQyLTdjNTAtNDcyOC05MjI3LTFlZWJmMmQ5ZjE2ZC5lb3Q/I2llZml4XCIpO1xuICBzcmM6IHVybChcImh0dHBzOi8vZm9udHMudHdpdHRlci5jb20vaGVsdmV0aWNhX25ldWUvMmExMjkxNDItN2M1MC00NzI4LTkyMjctMWVlYmYyZDlmMTZkLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzIxOTJhMjZjLWRlMWMtNGM1MC04OGQxLWU1MTM2MDMzYzE1YS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZS8wMjEyZDIwMy1jZTNmLTQyZTItODYyYS1lZGY5ODg2MjE3Mjgud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJodHRwczovL2ZvbnRzLnR3aXR0ZXIuY29tL2hlbHZldGljYV9uZXVlLzU1MmM0M2EzLTZjYzctNDdiOS04YjgxLTM5OGI5NjFiNTE2Ny5zdmcjNTUyYzQzYTMtNmNjNy00N2I5LThiODEtMzk4Yjk2MWI1MTY3XCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG4udGhlbWUtLW9yYW5nZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGEge1xuICBjb2xvcjogI0Y0NUQyMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0OyB9XG5cbi50aGVtZS0tb3JhbmdlIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgYTphY3RpdmUsXG4udGhlbWUtLW9yYW5nZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGE6aG92ZXIge1xuICBjb2xvcjogI0Q4MkUxODtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi50aGVtZS0tb3JhbmdlIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3Igb2wgbGk6OmJlZm9yZSxcbi50aGVtZS0tb3JhbmdlIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgdWwgbGk6OmJlZm9yZSB7XG4gIGNvbG9yOiAjRjQ1RDIyOyB9XG5cbi50aGVtZS0tb3JhbmdlIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgKjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGQkU3ODtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuLnRoZW1lLS15ZWxsb3cgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBhIHtcbiAgY29sb3I6ICNGRkFEMUY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDsgfVxuXG4udGhlbWUtLXllbGxvdyAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGE6YWN0aXZlLFxuLnRoZW1lLS15ZWxsb3cgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBhOmhvdmVyIHtcbiAgY29sb3I6ICNGOThFMDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4udGhlbWUtLXllbGxvdyAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIG9sIGxpOjpiZWZvcmUsXG4udGhlbWUtLXllbGxvdyAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIHVsIGxpOjpiZWZvcmUge1xuICBjb2xvcjogI0ZGQUQxRjsgfVxuXG4udGhlbWUtLXllbGxvdyAuYmwxMy1yaWNoLXRleHQtZWRpdG9yICo6OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkU3NkU7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG5cbi50aGVtZS0tZ3JlZW4gLmJsMTMtcmljaC10ZXh0LWVkaXRvciBhIHtcbiAgY29sb3I6ICMxRkI2NTA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDsgfVxuXG4udGhlbWUtLWdyZWVuIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgYTphY3RpdmUsXG4udGhlbWUtLWdyZWVuIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgYTpob3ZlciB7XG4gIGNvbG9yOiAjMDA4OTUxO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnRoZW1lLS1ncmVlbiAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIG9sIGxpOjpiZWZvcmUsXG4udGhlbWUtLWdyZWVuIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgdWwgbGk6OmJlZm9yZSB7XG4gIGNvbG9yOiAjMUZCNjUwOyB9XG5cbi50aGVtZS0tZ3JlZW4gLmJsMTMtcmljaC10ZXh0LWVkaXRvciAqOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTVGMkFBO1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4udGhlbWUtLWJsdWUgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBhIHtcbiAgY29sb3I6ICMxREExRjI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDsgfVxuXG4udGhlbWUtLWJsdWUgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBhOmFjdGl2ZSxcbi50aGVtZS0tYmx1ZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGE6aG92ZXIge1xuICBjb2xvcjogIzAwNUZEMTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi50aGVtZS0tYmx1ZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIG9sIGxpOjpiZWZvcmUsXG4udGhlbWUtLWJsdWUgLmJsMTMtcmljaC10ZXh0LWVkaXRvciB1bCBsaTo6YmVmb3JlIHtcbiAgY29sb3I6ICMxREExRjI7IH1cblxuLnRoZW1lLS1ibHVlIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgKjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3RTNGRjtcbiAgY29sb3I6IGluaGVyaXQ7IH1cblxuLnRoZW1lLS1wdXJwbGUgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBhIHtcbiAgY29sb3I6ICM3OTRCQzQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDsgfVxuXG4udGhlbWUtLXB1cnBsZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGE6YWN0aXZlLFxuLnRoZW1lLS1wdXJwbGUgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBhOmhvdmVyIHtcbiAgY29sb3I6ICM0RjAyOTk7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4udGhlbWUtLXB1cnBsZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIG9sIGxpOjpiZWZvcmUsXG4udGhlbWUtLXB1cnBsZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIHVsIGxpOjpiZWZvcmUge1xuICBjb2xvcjogIzc5NEJDNDsgfVxuXG4udGhlbWUtLXB1cnBsZSAuYmwxMy1yaWNoLXRleHQtZWRpdG9yICo6OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDN0I0RkE7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG5cbi50aGVtZS0tcGluayAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGEge1xuICBjb2xvcjogI0UwMjQ1RTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0OyB9XG5cbi50aGVtZS0tcGluayAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGE6YWN0aXZlLFxuLnRoZW1lLS1waW5rIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgYTpob3ZlciB7XG4gIGNvbG9yOiAjQTAxNzQ0O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLnRoZW1lLS1waW5rIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3Igb2wgbGk6OmJlZm9yZSxcbi50aGVtZS0tcGluayAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIHVsIGxpOjpiZWZvcmUge1xuICBjb2xvcjogI0UwMjQ1RTsgfVxuXG4udGhlbWUtLXBpbmsgLmJsMTMtcmljaC10ZXh0LWVkaXRvciAqOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZCOEMyO1xuICBjb2xvcjogaW5oZXJpdDsgfVxuXG4uYmwxMy1yaWNoLXRleHQtZWRpdG9yIHtcbiAgLyoqXG4gICAgICBTdHlsZSBjaGFuZ2VzIHRvIFwiLmNvZGUtaW5saW5lXCIgYW5kIFwiLmZvb3Rub3RlXCIgc2hvdWxkIGJlIHJlZmxlY3RlZCBoZXJlIGFzIHdlbGw6XG4gICAgICBjb3JlLXR3aXR0ZXItcHJvamVjdC9jb3JlLXR3aXR0ZXItamNyLW1vZHVsZXMvY29yZS10d2l0dGVyLXZpZXcvc3JjL2NvbnRlbnQvamNyX3Jvb3QvZXRjL2Rlc2lnbnMvY29yZS10d2l0dGVyL2NsaWVudGxpYi1lZGl0b3IvY3NzL2JsMTMtcmljaC10ZXh0LWVkaXRvci5jc3NcbiAgICAgIFNvIHRoZSBzdHlsZXMgd2lsbCBiZSBhcHBsaWVkIGluIGZ1bGwgc2NyZWVuIGVkaXRpbmcgbW9kZSBhcyB3ZWxsLlxuICAgICovIH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBoMiB7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogMHJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwIDByZW0gMDtcbiAgICBjb2xvcjogIzE0MTcxQTtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMi4yNXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMi4yNXJlbTsgfVxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGgzIHtcbiAgICBjb2xvcjogIzE0MTcxQTsgfVxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGgzICsgb2wsXG4gIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgaDMgKyB1bCB7XG4gICAgcGFkZGluZy10b3A6IDAuNzVyZW07IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtOyB9XG4gIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgcCArIG9sLFxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIHAgKyB1bCB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbTsgfVxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIHAgKyBoMyB7XG4gICAgcGFkZGluZy10b3A6IDAuNzVyZW07IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBvbCxcbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfVxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIG9sICsgaDIsXG4gIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgdWwgKyBoMiB7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbTsgfVxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIG9sIGxpLFxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIHVsIGxpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTsgfVxuICAgIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3Igb2wgbGk6bGFzdC1jaGlsZCxcbiAgICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIHVsIGxpOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBvbCB7XG4gICAgY291bnRlci1yZXNldDogaXRlbTsgfVxuICAgIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3Igb2wgbGkge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjI1cmVtOyB9XG4gICAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBvbCBsaTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IGNvdW50ZXIoaXRlbSk7XG4gICAgICBjb3VudGVyLWluY3JlbWVudDogaXRlbTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBsaW5lLWhlaWdodDogMC43NXJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMi4yNXJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTRweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgIHdpZHRoOiAyLjI1cmVtOyB9XG4gIC5ibDEzLXJpY2gtdGV4dC1lZGl0b3IgdWwgbGkge1xuICAgIHBhZGRpbmctbGVmdDogMS40cmVtOyB9XG4gICAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciB1bCBsaTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuNzVyZW07XG4gICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgICAgIHdpZHRoOiAxLjVyZW07IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciA+ICo6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciBpIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciB1IHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYmwxMy1yaWNoLXRleHQtZWRpdG9yIGIge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciAuY29kZS1pbmxpbmUge1xuICAgIGJveC1kZWNvcmF0aW9uLWJyZWFrOiBjbG9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjU3Nzg2O1xuICAgIGJvcmRlci1yYWRpdXM6IDAuMjQ5NzVyZW07XG4gICAgY29sb3I6ICNGRkZGRkY7XG4gICAgZm9udC1zaXplOiAwLjk1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNzVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC4xODc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC4yNDk3NXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMC4xMjQ1cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuMjQ5NzVyZW07IH1cbiAgLmJsMTMtcmljaC10ZXh0LWVkaXRvciAuZm9vdG5vdGUge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuXG4uYmwxMy1yaWNoLXRleHQtZWRpdG9yIC50d2VldC1lcnJvci10ZXh0IHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uYmwxMy1yaWNoLXRleHQtZWRpdG9yICsgLmJsMTgtc2luZ2xlLXR3ZWV0IC50d2VldCB7XG4gIG1hcmdpbi10b3A6IDIuMjVyZW07IH1cblxuLmJsMTMtcmljaC10ZXh0LWVkaXRvciBwICsgLmJsMTgtc2luZ2xlLXR3ZWV0IC50d2VldCB7XG4gIG1hcmdpbi10b3A6IDIuMjVyZW07IH1cblxuLmJsMTMtcmljaC10ZXh0LWVkaXRvciAuYmwxMy10d2VldCB7XG4gIGJvcmRlcjogc29saWQgMXB4ICNDQ0Q2REQ7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMi4yNXJlbTtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTsgfVxuXG4uYmwxMy10d2VldC10ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxMy1yaWNoLXRleHQtZWRpdG9yL3dlYnBhY2svaW5kZXguc2Nzc1xuICoqLyIsIi8qKlxuICogQ1NTIGZvciB0aGUgUlRFIGlzIGEgYml0IGRpZmZlcmVudCB0aGFuIHRoZSBDU1MgZm9yIHJlZ3VsYXIgY29tcG9uZW50cy5cbiAqIFRoZSBSVEUgY2FuJ3QgYmUgY3VzdG9taXplZCBlYXNpbHksIGZvciBleGFtcGxlIGl0J3MgaGFyZCB0byBhZGQgYSBDU1NcbiAqIGNsYXNzIFwidGhlbWUtLWNvbG9yXCIgdG8gYSBsaW5rLiBJbnN0ZWFkIG9mIGFkZGluZyB0aGUgY2xhc3MsIHdlIGFkZHJlc3NcbiAqIHRoZSA8YT4gdGFnIGRpcmVjdGx5IOKAkyB3aXRob3V0IGEgQ1NTIGNsYXNzLlxuICpcbiAqIFRoZSBSVEUgYWxsb3dzIHRvIGNyZWF0ZSB0ZXh0IHdyYXBwZWQgaW4gdGhlIGZvbGxvd2luZyBIVE1MIHRhZ3M6XG4gKiAgPHA+XG4gKiAgPGE+XG4gKiAgPGgyPiwgPGgzPiAobm90IGgxLCBoNCwgaDUpXG4gKiAgPG9sPiwgPHVsPiwgPGxpPlxuICogIDxzcGFuLmlubGluZS1jb2RlPlxuICovXG5cbkBpbXBvcnQgJ2NvcmUvY29tcG9uZW50cy9ibG9nLWJvZHknO1xuXG5AaW5jbHVkZSBjb21wb25lbnRCbG9nQm9keShcIi5ibDEzLXJpY2gtdGV4dC1lZGl0b3JcIik7XG5cbi5ibDEzLXJpY2gtdGV4dC1lZGl0b3Ige1xuXG4gIC50d2VldC1lcnJvci10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICsgLmJsMTgtc2luZ2xlLXR3ZWV0IHtcbiAgICAudHdlZXQge1xuICAgICAgbWFyZ2luLXRvcDogYmFzZWxpbmUoMyk7XG4gICAgfVxuICB9XG4gIHAgKyAuYmwxOC1zaW5nbGUtdHdlZXQge1xuICAgIC50d2VldCB7XG4gICAgICBtYXJnaW4tdG9wOiBiYXNlbGluZSgzKTtcbiAgICB9XG4gIH1cblxuICAuYmwxMy10d2VldCB7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggY29sb3IobmV1dHJhbCwgZXh0cmEtbGlnaHQtZ3JheSk7XG4gICAgYm9yZGVyLXJhZGl1czogYmFzZWxpbmUoMS8zKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoMyk7XG4gICAgbWFyZ2luLXRvcDogYmFzZWxpbmUoMSk7XG4gIH1cbn1cblxuLmJsMTMtdHdlZXQtdGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9ibDEzLXJpY2gtdGV4dC1lZGl0b3Ivd2VicGFjay9pbmRleC5zY3NzXG4gKiovIiwiLyoqXG4gKiBUaGUgc3R5bGVzIGluIHRoaXMgZmlsZSBhcmUgc2hhcmVkIGFjcm9zcyBibDEzLXJpY2gtdGV4dC1lZGl0b3IgYW5kXG4gKiBibDI1LWJsb2ctbWlncmF0aW9uLWh0bWwuIElmIGEgc3R5bGUgaXMgb25seSB1c2VkIGJ5IG9uZSBjb21wb25lbnQsXG4gKiBtb3ZlIHRoZSBhcHByb3ByaWF0ZSBDU1MgdG8gdGhlIGNvbXBvbmVudCwgYW5kIHJlbW92ZSBpdCBmcm9tIHRoaXMgZmlsZS5cbiAqL1xuXG5AaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9jb2xvcnMuanNvbic7XG5AaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9tb3Rpb24uanNvbic7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuQGltcG9ydCAnY29yZS9zdHlsZS9taXhpbic7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL3R5cGUnO1xuXG5AbWl4aW4gY29tcG9uZW50QmxvZ0JvZHkoJGNvbXBvbmVudENsYXNzKSB7XG4gICR0cmFuc2l0aW9uRWFzaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItZWFzaW5nKTtcbiAgJHRyYW5zaXRpb25UaW1pbmc6IG1hcC1nZXQoJHRyYW5zaXRpb25zLCBob3Zlci10aW1pbmcpO1xuXG4gIEBlYWNoICRjb2xvcktleSwgJGNvbG9yIGluIG1hcC1nZXQoJGNvbG9ycywgZGFyaykge1xuICAgIC50aGVtZS0tI3skY29sb3JLZXl9ICN7JGNvbXBvbmVudENsYXNzfSB7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICN7JGNvbG9yfTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvblRpbWluZyAkdHJhbnNpdGlvbkVhc2luZztcbiAgICAgIH1cbiAgICAgIGE6YWN0aXZlLFxuICAgICAgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgZXh0cmEtZGFyayksICRjb2xvcktleSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgb2wgbGk6OmJlZm9yZSxcbiAgICAgIHVsIGxpOjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogI3skY29sb3J9O1xuICAgICAgfVxuICAgICAgKjo6c2VsZWN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldChtYXAtZ2V0KCRjb2xvcnMsIGV4dHJhLWxpZ2h0KSwgJGNvbG9yS2V5KTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI3skY29tcG9uZW50Q2xhc3N9IHtcbiAgICBoMiB7XG4gICAgICAka2V5OiBcImJvbGQtMjRcIjtcbiAgICAgICR0eXBlZmFjZTogbWFwLWdldChtYXAtZ2V0KCR0eXBvZ3JhcGh5LCBkZWZhdWx0KSwgJGtleSk7XG4gICAgICBAaW5jbHVkZSB0eXBlU3R5bGVzKCR0eXBlZmFjZSk7XG5cbiAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBibGFjayk7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDsgIC8vIE1vdmluZyBoZWFkaW5nIGJ5IDFweCB0byBpbXByb3ZlIGFsaWdubWVudCB3aXRoIHRleHQgdmlzdWFsbHlcbiAgICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSgzKTtcbiAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgzKTtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgYmxhY2spO1xuICAgIH1cblxuICAgIGgzICsgb2wsXG4gICAgaDMgKyB1bCB7XG4gICAgICBwYWRkaW5nLXRvcDogYmFzZWxpbmUoMSk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogYmFzZWxpbmUoMik7XG4gICAgfVxuXG4gICAgcCArIG9sLFxuICAgIHAgKyB1bCB7XG4gICAgICBwYWRkaW5nLXRvcDogYmFzZWxpbmUoMik7XG4gICAgfVxuXG4gICAgcCArIGgzIHtcbiAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgxKTtcbiAgICB9XG5cbiAgICBvbCxcbiAgICB1bCB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKDQpO1xuICAgIH1cblxuICAgIG9sICsgaDIsXG4gICAgdWwgKyBoMiB7XG4gICAgICBwYWRkaW5nLXRvcDogYmFzZWxpbmUoMik7XG4gICAgfVxuXG4gICAgb2wgbGksXG4gICAgdWwgbGkge1xuICAgICAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKDEpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICBjb3VudGVyLXJlc2V0OiBpdGVtO1xuXG4gICAgICBsaSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogYmFzZWxpbmUoMyk7XG4gICAgICB9XG5cbiAgICAgIGxpOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBjb3VudGVyKGl0ZW0pO1xuICAgICAgICBjb3VudGVyLWluY3JlbWVudDogaXRlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IGJhc2VsaW5lKDEuOCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBiYXNlbGluZSgxKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGJhc2VsaW5lKC0zKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IC00cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgd2lkdGg6IGJhc2VsaW5lKDMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVsIGxpIHtcbiAgICAgIC8vIFRoaXMgcGFkZGluZyBtdXN0IGJlIGZpbmUtdHVuZWQgdG8gbG9vayBnb29kIHdpdGggdGhlIG1hcmdpbi1yaWdodCBwcm9wZXJ0eSBvZiB0aGUgOjpiZWZvcmUgcHNldWRvLWVsZW1lbnQuXG4gICAgICAvLyBJZiB5b3UgY2hhbmdlIHRoaXMsIG1ha2Ugc3VyZSB0byBhbHNvIHRlc3QgdGhlIGNoYW5nZSB3aXRoIGFuIGxpIGVsZW1lbnQgdGhhdCBoYXMgc2V2ZXJhbCBsaW5lcyBvZiB0ZXh0IVxuICAgICAgcGFkZGluZy1sZWZ0OiAxLjRyZW07XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1zaXplOiBiYXNlbGluZSgxLjUpO1xuICAgICAgICBsaW5lLWhlaWdodDogYmFzZWxpbmUoMSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICAgICAgICB3aWR0aDogYmFzZWxpbmUoMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKDUpO1xuICAgIH1cblxuICAgIGkge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIHUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICAgIFxuICAgIGIge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgIFN0eWxlIGNoYW5nZXMgdG8gXCIuY29kZS1pbmxpbmVcIiBhbmQgXCIuZm9vdG5vdGVcIiBzaG91bGQgYmUgcmVmbGVjdGVkIGhlcmUgYXMgd2VsbDpcbiAgICAgIGNvcmUtdHdpdHRlci1wcm9qZWN0L2NvcmUtdHdpdHRlci1qY3ItbW9kdWxlcy9jb3JlLXR3aXR0ZXItdmlldy9zcmMvY29udGVudC9qY3Jfcm9vdC9ldGMvZGVzaWducy9jb3JlLXR3aXR0ZXIvY2xpZW50bGliLWVkaXRvci9jc3MvYmwxMy1yaWNoLXRleHQtZWRpdG9yLmNzc1xuICAgICAgU28gdGhlIHN0eWxlcyB3aWxsIGJlIGFwcGxpZWQgaW4gZnVsbCBzY3JlZW4gZWRpdGluZyBtb2RlIGFzIHdlbGwuXG4gICAgKi9cbiAgICAuY29kZS1pbmxpbmUge1xuICAgICAgYm94LWRlY29yYXRpb24tYnJlYWs6IGNsb25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IobmV1dHJhbCwgZGFyay1ncmF5KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGJhc2VsaW5lKDAuMzMzKTtcbiAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCB3aGl0ZSk7XG4gICAgICBmb250LXNpemU6IDAuOTVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjc1cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogYmFzZWxpbmUoMC4yNSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGJhc2VsaW5lKDAuMzMzKTtcbiAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgwLjE2Nik7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBiYXNlbGluZSgwLjMzMyk7XG4gICAgfVxuXG4gICAgLmZvb3Rub3RlIHtcbiAgICAgIGZvbnQtc2l6ZTogYmFzZWxpbmUoMSk7XG4gICAgfVxuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svY29yZS9jb21wb25lbnRzL2Jsb2ctYm9keS5zY3NzXG4gKiovIiwiQGltcG9ydCAnLi9taXhpbic7XG5cbiRmb250U2VydmVyOiAnaHR0cHM6Ly9mb250cy50d2l0dGVyLmNvbS9oZWx2ZXRpY2FfbmV1ZSc7XG5cbi8qIEhlbHZldGljYSBOZXVlIExUIFcwNl81NyBDb25kICovXG5AZm9udC1mYWNle1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZSBMVCBDb25kXCI7XG4gIHNyYzp1cmwoXCIjeyRmb250U2VydmVyfS84OTdlYTk1MS03ZWM2LTQ3ZjQtOWRhMy03ZDA2MTliNDZkMDQuZW90PyNpZWZpeFwiKTtcbiAgc3JjOnVybChcIiN7JGZvbnRTZXJ2ZXJ9Lzg5N2VhOTUxLTdlYzYtNDdmNC05ZGEzLTdkMDYxOWI0NmQwNC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzAzM2I1NGRiLWIxY2UtNGRhNy04NjFiLTYxZDA1OWMxYzliOC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9L2Q5Yzg0MmY4LWIzN2EtNDE0Zi1iZTg2LTk3ZWE5YzYxZDNkNy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gICAgICB1cmwoXCIjeyRmb250U2VydmVyfS84NGEyY2MwOS1mMDJkLTRjMWQtYTVhOS0yYWI0NTY0MzljNzMuc3ZnIzg0YTJjYzA5LWYwMmQtNGMxZC1hNWE5LTJhYjQ1NjQzOWM3M1wiKSBmb3JtYXQoXCJzdmdcIik7XG59XG4vKiBIZWx2ZXRpY2EgTmV1ZSBMVCBXMDZfNzUgQm9sZCAqL1xuQGZvbnQtZmFjZXtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFRcIjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6dXJsKFwiI3skZm9udFNlcnZlcn0vM2FlYWViMWQtMWRlYS00ZTliLTllODMtNTJhZGM1YTg3MjA5LmVvdD8jaWVmaXhcIik7XG4gIHNyYzp1cmwoXCIjeyRmb250U2VydmVyfS8zYWVhZWIxZC0xZGVhLTRlOWItOWU4My01MmFkYzVhODcyMDkuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksXG4gIHVybChcIiN7JGZvbnRTZXJ2ZXJ9L2Q5MTIyZThkLWJmMjYtNGYxYy1iYWI5LWMwNjU5OTM5N2I1OS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgdXJsKFwiI3skZm9udFNlcnZlcn0vZGIwY2VjMTItYTk0Ny00MGZlLWExMTUtYzVjZTIyZWU3OWY2LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgdXJsKFwiI3skZm9udFNlcnZlcn0vMDI0NDExZWYtMjZiZi00NTM2LWFlYTQtZWM5NTM4NDZlZGE3LnN2ZyMwMjQ0MTFlZi0yNmJmLTQ1MzYtYWVhNC1lYzk1Mzg0NmVkYTdcIikgZm9ybWF0KFwic3ZnXCIpO1xufVxuLyogSGVsdmV0aWNhIE5ldWUgTFQgVzA2Xzg1IEhlYXZ5ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFRcIjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6IHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzhhOTBhMmJhLTEyNzYtNGIzZi1iYzFjLTg1MjYxNzJiMjdmNC5lb3Q/I2llZml4XCIpO1xuICBzcmM6IHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzhhOTBhMmJhLTEyNzYtNGIzZi1iYzFjLTg1MjYxNzJiMjdmNC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9L2M0MTVmM2ZkLWZmMjctNDBmZS1hZjk0LThiNGE1NGI0YjRlNC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICB1cmwoXCIjeyRmb250U2VydmVyfS9hMWRhMjBjNy00ZGM5LTRhZjUtYmQ2Zi05ZWJlNTBiNjc4OGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9L2FjZDhkNmRmLTk2OTYtNDA5Mi1iZjIzLTUzNzBjNjNjYTlmYi5zdmcjYWNkOGQ2ZGYtOTY5Ni00MDkyLWJmMjMtNTM3MGM2M2NhOWZiXCIpIGZvcm1hdChcInN2Z1wiKTtcbn1cbi8qIEhlbHZldGljYSBOZXVlIExUIFcwNl81NiBJdCAqL1xuQGZvbnQtZmFjZXtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFRcIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBzcmM6dXJsKFwiI3skZm9udFNlcnZlcn0vN2RmMzkzMjUtMGUwZS00NjM1LWE3MTctNTkwMzNhMDI2ZmM1LmVvdD8jaWVmaXhcIik7XG4gIHNyYzp1cmwoXCIjeyRmb250U2VydmVyfS83ZGYzOTMyNS0wZTBlLTQ2MzUtYTcxNy01OTAzM2EwMjZmYzUuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlb3RcIiksXG4gICAgICB1cmwoXCIjeyRmb250U2VydmVyfS82YWNiOWIyNi03ZThlLTQ2YjQtYjY4Yi02MzFhYjA3ZDZlZDcud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksXG4gICAgICB1cmwoXCIjeyRmb250U2VydmVyfS8yOTE0YTkwZS1kNzY2LTRjZjgtOTdiOS0wNGM1ZmU4OTdmMDYud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgdXJsKFwiI3skZm9udFNlcnZlcn0vYjg1ZWE1YjMtOGRjOC00OTg5LWE5ODItZjQ2MWJjOTY1NWY4LnN2ZyNiODVlYTViMy04ZGM4LTQ5ODktYTk4Mi1mNDYxYmM5NjU1ZjhcIikgZm9ybWF0KFwic3ZnXCIpO1xufVxuLyogSGVsdmV0aWNhIE5ldWUgTFQgVzA2XzQ1IExpZ2h0ICovXG5AZm9udC1mYWNle1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZSBMVFwiO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHNyYzp1cmwoXCIjeyRmb250U2VydmVyfS8yMDIzZTdkMS05ZjBhLTRjYWMtOGU4MC0yMjMyMWRiOTE4ZGQuZW90PyNpZWZpeFwiKTtcbiAgc3JjOnVybChcIiN7JGZvbnRTZXJ2ZXJ9LzIwMjNlN2QxLTlmMGEtNGNhYy04ZTgwLTIyMzIxZGI5MThkZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzE5OGZkNzhiLTM2NTUtNDc2OC04OWM0LTMxY2FmNjVlYTM2My53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzQ5NjMxY2U4LTkyMDEtNDdhOC04ODc0LTQ1MzcxNDE3YzM1Zi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gICAgICB1cmwoXCIjeyRmb250U2VydmVyfS85YWMzZDQyNC04NTIxLTQ2Y2YtODg3OC03MzI0NzYyZGI3YjQuc3ZnIzlhYzNkNDI0LTg1MjEtNDZjZi04ODc4LTczMjQ3NjJkYjdiNFwiKSBmb3JtYXQoXCJzdmdcIik7XG59XG4vKiBIZWx2ZXRpY2EgTmV1ZSBMVCBXMDZfNTUgUm9tYW4gKi9cbkBmb250LWZhY2V7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlIExUXCI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOnVybChcIiN7JGZvbnRTZXJ2ZXJ9LzhiM2IwMTMzLTIyMmQtNGZmYy05ZDZlLTU2NWRkODc5NjkwYy5lb3Q/I2llZml4XCIpO1xuICBzcmM6dXJsKFwiI3skZm9udFNlcnZlcn0vOGIzYjAxMzMtMjIyZC00ZmZjLTlkNmUtNTY1ZGQ4Nzk2OTBjLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW90XCIpLFxuICAgICAgdXJsKFwiI3skZm9udFNlcnZlcn0vMWExNGRjYWMtN2M5ZS00NzFjLTgwMzktMzNjNzMwZjg3MWYyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgICAgdXJsKFwiI3skZm9udFNlcnZlcn0vNTU4ZWQ1MzQtMGM2MC00MmNmLThiOTQtZDBhMTZlYjcwZDM3LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzY1MTNlODA0LWUwM2UtNDFhMS04Mzg1LWQ1ZTA5NzFmMjAwOS5zdmcjNjUxM2U4MDQtZTAzZS00MWExLTgzODUtZDVlMDk3MWYyMDA5XCIpIGZvcm1hdChcInN2Z1wiKTtcbn1cbi8qIEhlbHZldGljYSBOZXVlIExUIFcwNl8zNSBUaGluICovXG5AZm9udC1mYWNle1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZSBMVFwiO1xuICBmb250LXdlaWdodDogMjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHNyYzp1cmwoXCIjeyRmb250U2VydmVyfS8yYTEyOTE0Mi03YzUwLTQ3MjgtOTIyNy0xZWViZjJkOWYxNmQuZW90PyNpZWZpeFwiKTtcbiAgc3JjOnVybChcIiN7JGZvbnRTZXJ2ZXJ9LzJhMTI5MTQyLTdjNTAtNDcyOC05MjI3LTFlZWJmMmQ5ZjE2ZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzIxOTJhMjZjLWRlMWMtNGM1MC04OGQxLWU1MTM2MDMzYzE1YS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgIHVybChcIiN7JGZvbnRTZXJ2ZXJ9LzAyMTJkMjAzLWNlM2YtNDJlMi04NjJhLWVkZjk4ODYyMTcyOC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gICAgICB1cmwoXCIjeyRmb250U2VydmVyfS81NTJjNDNhMy02Y2M3LTQ3YjktOGI4MS0zOThiOTYxYjUxNjcuc3ZnIzU1MmM0M2EzLTZjYzctNDdiOS04YjgxLTM5OGI5NjFiNTE2N1wiKSBmb3JtYXQoXCJzdmdcIik7XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svY29yZS9zdHlsZS9fdHlwZS5zY3NzXG4gKiovIiwiJHRyYW5zaXRpb25zOiAoaG92ZXItdGltaW5nOiAwLjNzLGhvdmVyLWVhc2luZzogZWFzZS1pbi1vdXQsY29sb3ItY2hhbmdlLXRpbWluZzogMXMsY29sb3ItY2hhbmdlLWVhc2luZzogZWFzZS1pbi1vdXQsbG9hZGVyLWJpcmQtdGltaW5nOiAwLjNzLGxvYWRlci1iaXJkLWVhc2luZzogZWFzZS1pbik7XG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb3JlL3ZhcmlhYmxlcy9tb3Rpb24uanNvblxuICoqLyIsIkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzL2JyZWFrcG9pbnRzLmpzb24nO1xuQGltcG9ydCAnY29yZS9zdHlsZS9ncmlkJztcbkBpbXBvcnQgJ2NvcmUvc3R5bGUvbWl4aW4nO1xuLmJsMTQtaW1hZ2Uge1xuICAuaW1hZ2Uge1xuICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDUpO1xuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IGJhc2VsaW5lKDE2KTtcbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgaGVpZ2h0OiBiYXNlbGluZSgzMCk7XG4gICAgICB9XG4gICAgfVxuICAgICYtLXNpbmdsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgICAmLS10d2VsdmUtY29sdW1uIHtcbiAgICAgIG1heC13aWR0aDogODkuNiU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgLmltYWdlX19jb250YWluZXIge1xuICAgICAgICAgIGhlaWdodDogYmFzZWxpbmUoNTMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYtLXR3by1jb2x1bW4ge1xuICAgICAgQGluY2x1ZGUgc3BhbigxMiBvZiAxMik7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oNiBvZiA2KTtcbiAgICAgICAgQGluY2x1ZGUgcHVsbCg0IG9mIDYpO1xuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgQGluY2x1ZGUgc3BhbigxMiBvZiAxMik7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuKDYgb2YgNik7XG4gICAgICAgICAgQGluY2x1ZGUgcHVzaCgyIG9mIDYpO1xuICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYtLWZ1bGwtYmxlZWQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoNSk7XG4gICAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBmdWxsKSkge1xuICAgICAgICAuaW1hZ2VfX2NvbnRhaW5lciB7XG4gICAgICAgICAgaGVpZ2h0OiBiYXNlbGluZSg1Myk7XG4gICAgICAgIH1cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoOCk7XG4gICAgICAgIG1hcmdpbi10b3A6IGJhc2VsaW5lKDMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmX19mb290ZXIge1xuICAgICAgcGFkZGluZzogYmFzZWxpbmUoMikgMDtcbiAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuICAgIH1cbiAgICAmX19jYXB0aW9uIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiBiYXNlbGluZSg0LzMpO1xuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBmdWxsKSkge1xuICAgICAgICBsaW5lLWhlaWdodDogYmFzZWxpbmUoMik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5pbWFnZV9fcGxhY2Vob2xkZXIge1xuICAgIGhlaWdodDogYmFzZWxpbmUoMzUpO1xuICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgIGhlaWdodDogYmFzZWxpbmUoNTMpO1xuICAgIH1cbiAgfVxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxNC1pbWFnZS93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCIvLyByZW0gU3VwcG9ydFxuLy8gPT09PT09PT09PT1cblxuLy8gcmVtXG4vLyAtLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBvdXRwdXQgZGlyZWN0bHkuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1yZW0oXG4gICRwcm9wLFxuICAkdmFsXG4pIHtcbiAgJF9yZXFzOiAoXG4gICAgdmFyaWFibGU6IHJoeXRobS11bml0IHJlbS13aXRoLXB4LWZhbGxiYWNrLFxuICAgIG1peGluOiByZW0sXG4gICk7XG4gIEBpZiBzdXN5LXN1cHBvcnQocmVtLCAkX3JlcXMsICR3YXJuOiBmYWxzZSkgYW5kICRyaHl0aG0tdW5pdCA9PSByZW0ge1xuICAgIEBpbmNsdWRlIHJlbSgkcHJvcCwgJHZhbCk7XG4gIH0gQGVsc2Uge1xuICAgICN7JHByb3B9OiAkdmFsO1xuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svfi9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc3VwcG9ydC9fcmVtLnNjc3NcbiAqKi8iLCIvLyBEaXJlY3Rpb24gSGVscGVyc1xuLy8gPT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBGbG93IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGZsb3c6IGx0cixcbikpO1xuXG4vLyBHZXQgRGlyZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBvciAndG8nIGRpcmVjdGlvbiBvZiBhIGx0ciBvciBydGwgZmxvdy5cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbi8vIC0gWyRrZXldICAgOiBmcm9tIHwgdG9cbkBmdW5jdGlvbiBnZXQtZGlyZWN0aW9uKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdyksXG4gICRrZXk6IGZyb21cbikge1xuICAkcmV0dXJuOiBpZigkZmxvdyA9PSBydGwsIChmcm9tOiByaWdodCwgdG86IGxlZnQpLCAoZnJvbTogbGVmdCwgdG86IHJpZ2h0KSk7XG4gIEByZXR1cm4gbWFwLWdldCgkcmV0dXJuLCAka2V5KTtcbn1cblxuLy8gVG9cbi8vIC0tXG4vLyBSZXR1cm4gdGhlICd0bycgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIHRvKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIHRvKTtcbn1cblxuLy8gRnJvbVxuLy8gLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIGZyb20oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgZnJvbSk7XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL3dlYnBhY2svfi9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvc2hhcmVkL19kaXJlY3Rpb24uc2Nzc1xuICoqLyIsIi8vIE1hcmdpbiBTeW50YXhcbi8vID09PT09PT09PT09PT1cblxuLy8gUHJlXG4vLyAtLS1cbi8vIEFkZCBzcGFubmluZy1tYXJnaW5zIGJlZm9yZSBhbiBlbGVtZW50LlxuLy8gLSAkc3BhbiAgOiA8c3Bhbj5cbkBtaXhpbiBwcmUoXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbiAgIDogbWFwLW1lcmdlKChzcHJlYWQ6IHdpZGUpLCBwYXJzZS1zcGFuKCRzcGFuKSk7XG4gICRmbG93ICAgOiBzdXN5LWdldChmbG93LCAkc3Bhbik7XG4gICRzcGxpdCAgOiBpZihzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKSA9PSBzcGxpdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZ3V0dGVyIDogZ3V0dGVyKCRzcGFuKTtcbiAgJHNwYW4gICA6IHNwYW4oJHNwYW4pO1xuICAkd2lkdGggIDogaWYoJHNwbGl0IGFuZCAkZ3V0dGVyLCAkc3BhbiArICRndXR0ZXIsICRzcGFuKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHJlLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIG1hcmdpbi1vdXRwdXQoJHdpZHRoLCBudWxsLCAkZmxvdyk7XG59XG5cbi8vIFBvc3Rcbi8vIC0tLS1cbi8vIEFkZCBzcGFubmluZy1tYXJnaW5zIGFmdGVyIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHBvc3QoXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3QgIDogJHNwYW47XG4gICRzcGFuICAgICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3Bhbigkc3BhbikpO1xuICAkZmxvdyAgICAgOiBzdXN5LWdldChmbG93LCAkc3Bhbik7XG4gICRzcGxpdCAgICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pID09IHNwbGl0LCB0cnVlLCBmYWxzZSk7XG4gICR3aWR0aCAgICA6IGlmKCRzcGxpdCwgc3Bhbigkc3BhbikgKyBndXR0ZXIoJHNwYW4pLCBzcGFuKCRzcGFuKSk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHBvc3QsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgbWFyZ2luLW91dHB1dChudWxsLCAkd2lkdGgsICRmbG93KTtcbn1cblxuLy8gUHVzaFxuLy8gLS0tLVxuLy8gU2ltcGxlIHN5bm9ueW1uIGZvciBwcmUuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHB1c2goXG4gICRzcGFuXG4pIHtcbiAgQGluY2x1ZGUgcHJlKCRzcGFuKTtcbn1cblxuLy8gUHVsbFxuLy8gLS0tLVxuLy8gQWRkIG5lZ2F0aXZlIHNwYW5uaW5nLW1hcmdpbnMgYmVmb3JlIGFuIGVsZW1lbnQuXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHB1bGwoXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3QgIDogJHNwYW47XG4gICRzcGFuICAgICA6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3Bhbigkc3BhbikpO1xuICAkZmxvdyAgICAgOiBzdXN5LWdldChmbG93LCAkc3Bhbik7XG4gICRzcGxpdCAgICA6IGlmKHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pID09IHNwbGl0LCB0cnVlLCBmYWxzZSk7XG4gICR3aWR0aCAgICA6IGlmKCRzcGxpdCwgMCAtIHNwYW4oJHNwYW4pICsgZ3V0dGVyKCRzcGFuKSwgMCAtIHNwYW4oJHNwYW4pKTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QocHVsbCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCR3aWR0aCwgbnVsbCwgJGZsb3cpO1xufVxuXG4vLyBTcXVpc2hcbi8vIC0tLS0tLVxuLy8gQWRkIHNwYW5uaW5nLW1hcmdpbnMgYmVmb3JlIGFuZCBhZnRlciBhbiBlbGVtZW50LlxuLy8gLSAkcHJlICAgICA6IDxzcGFuPlxuLy8gLSBbJHBvc3RdICA6IDxzcGFuPlxuQG1peGluIHNxdWlzaChcbiAgJHByZSxcbiAgJHBvc3Q6IGZhbHNlXG4pIHtcbiAgJGluc3BlY3QgICAgICA6ICgkcHJlLCAkcG9zdCk7XG4gICRwcmUgICAgICAgICAgOiBtYXAtbWVyZ2UoKHNwcmVhZDogd2lkZSksIHBhcnNlLXNwYW4oJHByZSkpO1xuXG4gIEBpZiAkcG9zdCB7XG4gICAgJHBvc3Q6IG1hcC1tZXJnZSgoc3ByZWFkOiB3aWRlKSwgcGFyc2Utc3BhbigkcG9zdCkpO1xuICB9IEBlbHNlIHtcbiAgICAkc3Bhbjogc3VzeS1nZXQoc3BhbiwgJHByZSk7XG4gICAgQGlmIGxlbmd0aCgkc3BhbikgPiAxIHtcbiAgICAgICRwcmU6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAxKSkpO1xuICAgICAgJHBvc3Q6IG1hcC1tZXJnZSgkcHJlLCAoc3BhbjogbnRoKCRzcGFuLCAyKSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHBvc3Q6ICRwcmU7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KHNxdWlzaCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBwcmUoJHByZSk7XG4gIEBpbmNsdWRlIHBvc3QoJHBvc3QpO1xufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay93ZWJwYWNrL34vc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fbWFyZ2lucy5zY3NzXG4gKiovIiwiQGltcG9ydCAnY29yZS92YXJpYWJsZXMvY29sb3JzLmpzb24nO1xuQGltcG9ydCAnY29yZS9zdHlsZS9ncmlkJztcblxuQGltcG9ydCAnY29yZS9zdHlsZS9taXhpbic7XG5cbi5ibDE2LXF1b3RlIHtcbiAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKDQpO1xuICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBibG9ja3F1b3RlIHtcbiAgICAucXVvdGUtY29weSB7XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSg0KTtcbiAgICB9XG5cbiAgICAmLnF1b3RlcyB7XG4gICAgICAucXVvdGUtY29weSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgbW9iaWxlKSkge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSg0KTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogNnJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogNnJlbTtcbiAgICAgICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgZXh0cmEtbGlnaHQtZ3JheSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogNTglO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogXCJcXDAyMDFDXCI7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IC00cHg7XG4gICAgICAgICAgdG9wOiAtMThweDtcblxuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgbW9iaWxlKSkge1xuICAgICAgICAgICAgbGVmdDogLTVweDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgICAgICAgICAgIHRvcDogMThweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6IFwiXFwwMjAxRFwiO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgbW9iaWxlKSkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogYmFzZWxpbmUoLTQpO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDVweCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtb2JpbGUpKSB7XG4gICAgLmF1dGhvciB7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0NXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubm8tcXVvdGVzIHtcbiAgICAuYXV0aG9yIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IDIycHg7XG4gICAgICAmX19uYW1lIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAtMjVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hdXRob3JfX25hbWUge1xuICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSgxKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcMDIwMTRcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLmF1dGhvcl9faGFuZGxlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYmwxNi1xdW90ZS93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuXG5AaW1wb3J0ICdjb3JlL3N0eWxlL21peGluJztcblxuLmJsMTctY29kZS1zbmlwcGV0e1xuICBwYWRkaW5nLXRvcDogYmFzZWxpbmUoNCk7XG4gIGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2VcIl0gIHtcbiAgICBtYXJnaW4tdG9wOiAtMS41cmVtO1xuICAgIG1heC1oZWlnaHQ6IGJhc2VsaW5lKDI5Ljc1KTtcbiAgfVxuICBwcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcbiAgICBtYXgtaGVpZ2h0OiBiYXNlbGluZSgyOS43NSk7XG4gICAgJi5saW5lLW51bWJlcnMge1xuICAgICAgY29kZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogYmFzZWxpbmUoMik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2JsMTctY29kZS1zbmlwcGV0L3dlYnBhY2svaW5kZXguc2Nzc1xuICoqLyIsIi8qKlxuICogcHJpc20uanMgQ295IHRoZW1lIGZvciBKYXZhU2NyaXB0LCBDb2ZmZWVTY3JpcHQsIENTUyBhbmQgSFRNTFxuICogQmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3RzaGVkb3Ivd29ya3Nob3Atd3AtdGhlbWUgKEV4YW1wbGU6IGh0dHA6Ly93b3Jrc2hvcC5rYW5zYW4uY29tL2NhdGVnb3J5L3Nlc3Npb25zL2Jhc2ljcyBvciBodHRwOi8vd29ya3Nob3AudGltc2hlZG9yLmNvbS9jYXRlZ29yeS9zZXNzaW9ucy9iYXNpY3MpO1xuICogQGF1dGhvciBUaW0gIFNoZWRvclxuICovXG5cbmNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLFxucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSB7XG5cdGNvbG9yOiBibGFjaztcblx0YmFja2dyb3VuZDogbm9uZTtcblx0Zm9udC1mYW1pbHk6IENvbnNvbGFzLCBNb25hY28sICdBbmRhbGUgTW9ubycsICdVYnVudHUgTW9ubycsIG1vbm9zcGFjZTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0d2hpdGUtc3BhY2U6IHByZTtcblx0d29yZC1zcGFjaW5nOiBub3JtYWw7XG5cdHdvcmQtYnJlYWs6IG5vcm1hbDtcblx0d29yZC13cmFwOiBub3JtYWw7XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG5cblx0LW1vei10YWItc2l6ZTogNDtcblx0LW8tdGFiLXNpemU6IDQ7XG5cdHRhYi1zaXplOiA0O1xuXG5cdC13ZWJraXQtaHlwaGVuczogbm9uZTtcblx0LW1vei1oeXBoZW5zOiBub25lO1xuXHQtbXMtaHlwaGVuczogbm9uZTtcblx0aHlwaGVuczogbm9uZTtcbn1cblxuLyogQ29kZSBibG9ja3MgKi9cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogLjVlbSAwO1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IC0xcHggMHB4IDBweCAwcHggIzM1OGNjYiwgMHB4IDBweCAwcHggMXB4ICNkZmRmZGY7XG5cdC1tb3otYm94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjMzU4Y2NiLCAwcHggMHB4IDBweCAxcHggI2RmZGZkZjtcblx0Ym94LXNoYWRvdzogLTFweCAwcHggMHB4IDBweCAjMzU4Y2NiLCAwcHggMHB4IDBweCAxcHggI2RmZGZkZjtcblx0Ym9yZGVyLWxlZnQ6IDEwcHggc29saWQgIzM1OGNjYjtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZDtcblx0YmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgNTAlLCByZ2JhKDY5LCAxNDIsIDIwOSwgMC4wNCkgNTAlKTtcblx0YmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgNTAlLCByZ2JhKDY5LCAxNDIsIDIwOSwgMC4wNCkgNTAlKTtcblx0YmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0cmFuc3BhcmVudCA1MCUsIHJnYmEoNjksIDE0MiwgMjA5LCAwLjA0KSA1MCUpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgNTAlLCByZ2JhKDY5LCAxNDIsIDIwOSwgMC4wNCkgNTAlKTtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50IDUwJSwgcmdiYSg2OSwgMTQyLCAyMDksIDAuMDQpIDUwJSk7XG5cdGJhY2tncm91bmQtc2l6ZTogM2VtIDNlbTtcblx0YmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuXHRvdmVyZmxvdzogdmlzaWJsZTtcblx0cGFkZGluZzogMDtcbn1cblxuY29kZVtjbGFzcyo9XCJsYW5ndWFnZVwiXSB7XG5cdG1heC1oZWlnaHQ6IGluaGVyaXQ7XG5cdGhlaWdodDogMTAwJTtcblx0cGFkZGluZzogMCAxZW07XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuLyogTWFyZ2luIGJvdHRvbSB0byBhY2NvbW9kYXRlIHNoYWRvdyAqL1xuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZkZmRmZDtcblx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLyogSW5saW5lIGNvZGUgKi9cbjpub3QocHJlKSA+IGNvZGVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiAuMmVtO1xuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDAuM2VtO1xuXHQtbW96LWJvcmRlci1yYWRpdXM6IDAuM2VtO1xuXHQtbXMtYm9yZGVyLXJhZGl1czogMC4zZW07XG5cdC1vLWJvcmRlci1yYWRpdXM6IDAuM2VtO1xuXHRib3JkZXItcmFkaXVzOiAwLjNlbTtcblx0Y29sb3I6ICNjOTJjMmM7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcblx0ZGlzcGxheTogaW5saW5lO1xuXHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOmJlZm9yZSxcbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06YWZ0ZXIge1xuXHRjb250ZW50OiAnJztcblx0ei1pbmRleDogLTI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvdHRvbTogMC43NWVtO1xuXHRsZWZ0OiAwLjE4ZW07XG5cdHdpZHRoOiA0MCU7XG5cdGhlaWdodDogMjAlO1xuXHRtYXgtaGVpZ2h0OiAxM2VtO1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDBweCAxM3B4IDhweCAjOTc5Nzk3O1xuXHQtbW96LWJveC1zaGFkb3c6IDBweCAxM3B4IDhweCAjOTc5Nzk3O1xuXHRib3gtc2hhZG93OiAwcHggMTNweCA4cHggIzk3OTc5Nztcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgtMmRlZyk7XG5cdC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTJkZWcpO1xuXHQtbXMtdHJhbnNmb3JtOiByb3RhdGUoLTJkZWcpO1xuXHQtby10cmFuc2Zvcm06IHJvdGF0ZSgtMmRlZyk7XG5cdHRyYW5zZm9ybTogcm90YXRlKC0yZGVnKTtcbn1cblxuOm5vdChwcmUpID4gY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06YWZ0ZXIsXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdOmFmdGVyIHtcblx0cmlnaHQ6IDAuNzVlbTtcblx0bGVmdDogYXV0bztcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyZGVnKTtcblx0LW1vei10cmFuc2Zvcm06IHJvdGF0ZSgyZGVnKTtcblx0LW1zLXRyYW5zZm9ybTogcm90YXRlKDJkZWcpO1xuXHQtby10cmFuc2Zvcm06IHJvdGF0ZSgyZGVnKTtcblx0dHJhbnNmb3JtOiByb3RhdGUoMmRlZyk7XG59XG5cbi50b2tlbi5jb21tZW50LFxuLnRva2VuLmJsb2NrLWNvbW1lbnQsXG4udG9rZW4ucHJvbG9nLFxuLnRva2VuLmRvY3R5cGUsXG4udG9rZW4uY2RhdGEge1xuXHRjb2xvcjogIzdEOEI5OTtcbn1cblxuLnRva2VuLnB1bmN0dWF0aW9uIHtcblx0Y29sb3I6ICM1RjYzNjQ7XG59XG5cbi50b2tlbi5wcm9wZXJ0eSxcbi50b2tlbi50YWcsXG4udG9rZW4uYm9vbGVhbixcbi50b2tlbi5udW1iZXIsXG4udG9rZW4uZnVuY3Rpb24tbmFtZSxcbi50b2tlbi5jb25zdGFudCxcbi50b2tlbi5zeW1ib2wsXG4udG9rZW4uZGVsZXRlZCB7XG5cdGNvbG9yOiAjYzkyYzJjO1xufVxuXG4udG9rZW4uc2VsZWN0b3IsXG4udG9rZW4uYXR0ci1uYW1lLFxuLnRva2VuLnN0cmluZyxcbi50b2tlbi5jaGFyLFxuLnRva2VuLmZ1bmN0aW9uLFxuLnRva2VuLmJ1aWx0aW4sXG4udG9rZW4uaW5zZXJ0ZWQge1xuXHRjb2xvcjogIzJmOWMwYTtcbn1cblxuLnRva2VuLm9wZXJhdG9yLFxuLnRva2VuLmVudGl0eSxcbi50b2tlbi51cmwsXG4udG9rZW4udmFyaWFibGUge1xuXHRjb2xvcjogI2E2N2Y1OTtcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuXG4udG9rZW4uYXRydWxlLFxuLnRva2VuLmF0dHItdmFsdWUsXG4udG9rZW4ua2V5d29yZCxcbi50b2tlbi5jbGFzcy1uYW1lIHtcblx0Y29sb3I6ICMxOTkwYjg7XG59XG5cbi50b2tlbi5yZWdleCxcbi50b2tlbi5pbXBvcnRhbnQge1xuXHRjb2xvcjogI2U5MDtcbn1cblxuLmxhbmd1YWdlLWNzcyAudG9rZW4uc3RyaW5nLFxuLnN0eWxlIC50b2tlbi5zdHJpbmcge1xuXHRjb2xvcjogI2E2N2Y1OTtcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuXG4udG9rZW4uaW1wb3J0YW50IHtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnRva2VuLmJvbGQge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbi50b2tlbi5pdGFsaWMge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi50b2tlbi5lbnRpdHkge1xuXHRjdXJzb3I6IGhlbHA7XG59XG5cbi5uYW1lc3BhY2Uge1xuXHRvcGFjaXR5OiAuNztcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcblx0cHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXTpiZWZvcmUsXG5cdHByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl06YWZ0ZXIge1xuXHRcdGJvdHRvbTogMTRweDtcblx0XHQtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG5cdFx0LW1vei1ib3gtc2hhZG93OiBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cblxufVxuXG4vKiBQbHVnaW4gc3R5bGVzICovXG4udG9rZW4udGFiOm5vdCg6ZW1wdHkpOmJlZm9yZSxcbi50b2tlbi5jcjpiZWZvcmUsXG4udG9rZW4ubGY6YmVmb3JlIHtcblx0Y29sb3I6ICNlMGQ3ZDE7XG59XG5cbi8qIFBsdWdpbiBzdHlsZXM6IExpbmUgTnVtYmVycyAqL1xucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXS5saW5lLW51bWJlcnMge1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbnByZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0ubGluZS1udW1iZXJzIGNvZGUge1xuXHRwYWRkaW5nLWxlZnQ6IDMuOGVtO1xufVxuXG5wcmVbY2xhc3MqPVwibGFuZ3VhZ2UtXCJdLmxpbmUtbnVtYmVycyAubGluZS1udW1iZXJzLXJvd3Mge1xuXHRsZWZ0OiAwO1xufVxuXG4vKiBQbHVnaW4gc3R5bGVzOiBMaW5lIEhpZ2hsaWdodCAqL1xucHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXVtkYXRhLWxpbmVdIHtcblx0cGFkZGluZy10b3A6IDA7XG5cdHBhZGRpbmctYm90dG9tOiAwO1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG59XG5wcmVbZGF0YS1saW5lXSBjb2RlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLWxlZnQ6IDRlbTtcbn1cbnByZSAubGluZS1oaWdobGlnaHQge1xuXHRtYXJnaW4tdG9wOiAwO1xufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy93ZWJwYWNrL34vcHJpc21qcy90aGVtZXMvcHJpc20tY295LmNzc1xuICoqLyIsInByZS5saW5lLW51bWJlcnMge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctbGVmdDogMy44ZW07XG5cdGNvdW50ZXItcmVzZXQ6IGxpbmVudW1iZXI7XG59XG5cbnByZS5saW5lLW51bWJlcnMgPiBjb2RlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubGluZS1udW1iZXJzIC5saW5lLW51bWJlcnMtcm93cyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdHRvcDogMDtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHRsZWZ0OiAtMy44ZW07XG5cdHdpZHRoOiAzZW07IC8qIHdvcmtzIGZvciBsaW5lLW51bWJlcnMgYmVsb3cgMTAwMCBsaW5lcyAqL1xuXHRsZXR0ZXItc3BhY2luZzogLTFweDtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzk5OTtcblxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG59XG5cblx0LmxpbmUtbnVtYmVycy1yb3dzID4gc3BhbiB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Y291bnRlci1pbmNyZW1lbnQ6IGxpbmVudW1iZXI7XG5cdH1cblxuXHRcdC5saW5lLW51bWJlcnMtcm93cyA+IHNwYW46YmVmb3JlIHtcblx0XHRcdGNvbnRlbnQ6IGNvdW50ZXIobGluZW51bWJlcik7XG5cdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMC44ZW07XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy93ZWJwYWNrL34vcHJpc21qcy9wbHVnaW5zL2xpbmUtbnVtYmVycy9wcmlzbS1saW5lLW51bWJlcnMuY3NzXG4gKiovIiwiQGltcG9ydCAnY29yZS92YXJpYWJsZXMvYnJlYWtwb2ludHMuanNvbic7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuQGltcG9ydCAnY29yZS9zdHlsZS9taXhpbic7XG5AaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9tb3Rpb24uanNvbic7XG5cbiR0cmFuc2l0aW9uVGltaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItdGltaW5nKTtcbiR0cmFuc2l0aW9uRWFzaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItZWFzaW5nKTtcblxuLmJsMTgtdHdlZXQge1xuICBtYXJnaW4tYm90dG9tOiBiYXNlbGluZSgzKTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC5lbWJlZGRlZC10d2VldCBpZnJhbWUge1xuICAgIGJvcmRlcjogc29saWQgMXB4IGNvbG9yKG5ldXRyYWwsIGV4dHJhLWxpZ2h0LWdyYXkpICFpbXBvcnRhbnQ7IC8vIGltcG9ydGFudCB0byBvdmVycmlkZSB0aGUgaWZyYW1lIGlubGluZSBzdHlsZVxuICB9XG5cbiAgJltkYXRhLXR3ZWV0LXN0eWxlPVwiZGVmYXVsdFwiXSB7XG4gICAgLmVtYmVkZGVkLXR3ZWV0IGlmcmFtZSB7XG4gICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsgLy8gaW1wb3J0YW50IHRvIG92ZXJyaWRlIHRoZSBwcmV2aW91cyBzdHlsZVxuICAgIH1cbiAgfVxufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9ibDE4LXNpbmdsZS10d2VldC93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuQGltcG9ydCAnY29yZS9zdHlsZS9taXhpbic7XG5cbiRtaW5Db2x1bW5IZWlnaHQ6IGJhc2VsaW5lKDIxICogMyk7IC8vIG1pbiBoZWlnaHQgb2YgYSB0d2VldCBpcyBhYm91dCAyMUJMLiBNaW4gMyB0d2VldHMgcGVyIGNvbHVtbi5cblxuLmJsMTktdHdlZXQtZ2FsbGVyeSB7XG4gIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDMpO1xufVxuXG4uYmwxOSB7XG4gIG1pbi1oZWlnaHQ6ICRtaW5Db2x1bW5IZWlnaHQ7XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLmJsMTktZ2FsbGVyeSB7XG4gIG1pbi1oZWlnaHQ6ICRtaW5Db2x1bW5IZWlnaHQ7XG4gIG1heC13aWR0aDogMTYwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uYmwxOS1jb2x1bW5zIHtcbiAgb3BhY2l0eTogMDtcbiAgcGFkZGluZy10b3A6IGJhc2VsaW5lKDMpO1xufVxuXG4uYmwxOS1jb2x1bW5fX2xlZnQge1xuICBAaW5jbHVkZSBzcGFuKDEyKTtcblxuICBAaW5jbHVkZSByZXNwb25kLXRvKGZ1bGwpIHtcbiAgICBAaW5jbHVkZSBzcGFuKDYpO1xuICB9XG59XG5cbi5ibDE5LWNvbHVtbl9fcmlnaHQge1xuICBAaW5jbHVkZSBzcGFuKDEyKTtcbiAgXG4gIEBpbmNsdWRlIHJlc3BvbmQtdG8oZnVsbCkge1xuICAgIEBpbmNsdWRlIHNwYW4oNiBsYXN0KTtcbiAgfVxufVxuXG4uYmwxOS10d2VldCB7XG4gIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDMpO1xuICBvcGFjaXR5OiAwO1xufVxuXG4uYmwxOS10d2VldC10ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2JsMTktdHdlZXQtZ2FsbGVyeS93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCIvLyBHdXR0ZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09XG5cblxuLy8gR3V0dGVyc1xuLy8gLS0tLS0tLVxuLy8gU2V0IGd1dHRlcnMgb24gYW4gZWxlbWVudC5cbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxuQG1peGluIGd1dHRlcnMoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzIDogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuXG4gICRfb3V0cHV0OiAoXG4gICAgYmVmb3JlOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSxcbiAgICBhZnRlcjogbWFwLWdldCgkX2d1dHRlcnMsIGFmdGVyKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkc3BhbiksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGd1dHRlcnMsICRpbnNwZWN0KTtcblxuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQoJF9vdXRwdXQuLi4pO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfVxufVxuXG5AbWl4aW4gZ3V0dGVyKFxuICAkc3BhbjogJHN1c3lcbikge1xuICBAaW5jbHVkZSBndXR0ZXJzKCRzcGFuKTtcbn1cblxuXG4vLyBHdXR0ZXJcbi8vIC0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIGd1dHRlci5cbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgJHNwYW46IHBhcnNlLWd1dHRlcnMoJHNwYW4pO1xuXG4gICRfZ3V0dGVyczogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuICAkX2d1dHRlcnM6IG1hcC1nZXQoJF9ndXR0ZXJzLCBiZWZvcmUpIG9yIG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlcik7XG5cbiAgQHJldHVybiAkX2d1dHRlcnM7XG59XG5cbkBmdW5jdGlvbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICBAcmV0dXJuIGd1dHRlcigkc3Bhbik7XG59XG5cblxuLy8gR2V0IEd1dHRlciBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGd1dHRlciB3aWR0aC5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlci13aWR0aChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3V0dGVycygkY29udGV4dCk7XG5cbiAgJF9ndXR0ZXJzIDogc3VzeS1nZXQoZ3V0dGVycywgJGNvbnRleHQpO1xuICAkX2d1dHRlciAgOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRjb250ZXh0KTtcblxuICBAaWYgJF9ndXR0ZXJzIGFuZCAoJF9ndXR0ZXJzID4gMCkgYW5kIG5vdCgkX2d1dHRlcikge1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRjb250ZXh0KTtcbiAgICAkX21hdGg6IGd1dHRlci1tYXRoKCRjb250ZXh0KTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkX2d1dHRlcjogJF9ndXR0ZXJzICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkY29udGV4dCk7XG4gICAgICAkX3NwcmVhZCAgOiBpZihpcy1zcGxpdCgkY29udGV4dCksIHdpZGUsIHN1c3ktZ2V0KHNwcmVhZCwgJGNvbnRleHQpKTtcbiAgICAgICRfZ3V0dGVyICA6IHBlcmNlbnRhZ2UoJF9ndXR0ZXJzIC8gc3VzeS1zdW0oJF9jb2x1bW5zLCAkX2d1dHRlcnMsICRfc3ByZWFkKSk7XG4gICAgfVxuICB9XG5cbiAgJF9ndXR0ZXI6IGlmKCRfZ3V0dGVyID09ICduby1ndXR0ZXJzJyBvciAkX2d1dHRlciA9PSAnbm8tZ3V0dGVyJywgbnVsbCwgJF9ndXR0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXI7XG59XG5cblxuLy8gR2V0IEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gYmVmb3JlIGFuZCBhZnRlciBndXR0ZXIgdmFsdWVzLlxuLy8gLSBbJGNvbnRleHRdOiA8Y29udGV4dD5cbkBmdW5jdGlvbiBnZXQtZ3V0dGVycyhcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGNvbnRleHQgICAgICAgICAgICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVyLXBvc2l0aW9uICAgOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgICAgICAgICAgICA6IGdldC1ndXR0ZXItd2lkdGgoJGNvbnRleHQpO1xuXG4gICRfcmV0dXJuICAgICAgICAgICAgOiAoYmVmb3JlOiBudWxsLCBhZnRlcjogbnVsbCk7XG5cbiAgQGlmIGlzLXNwbGl0KCRjb250ZXh0KSBhbmQgJF9ndXR0ZXIge1xuICAgICRfZ3V0dGVyOiAkX2d1dHRlciAvIDI7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGJlZm9yZTogJF9ndXR0ZXIsIGFmdGVyOiAkX2d1dHRlcikpO1xuICB9IEBlbHNlIHtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoJF9ndXR0ZXItcG9zaXRpb246ICRfZ3V0dGVyKSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIElzIEluc2lkZVxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgaW5zaWRlLlxuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGlzLWluc2lkZShcbiAgJGNvbnRleHRcbikge1xuICAkX2luc2lkZTogaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfaW5zaWRlLCAkX2d1dHRlci1wb3NpdGlvbiksIHRydWUsIGZhbHNlKTtcbn1cblxuXG4vLyBJcyBTcGxpdFxuLy8gLS0tLS0tLS1cbi8vIFJldHVybnMgdHJ1ZSBpZiBndXR0ZXJzIGFyZSBzcGxpdC5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1zcGxpdChcbiAgJGNvbnRleHRcbikge1xuICAkX3NwbGl0OiBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYztcbiAgJF9ndXR0ZXItcG9zaXRpb246IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuXG4gIEByZXR1cm4gaWYoaW5kZXgoJF9zcGxpdCwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gR3V0dGVyIE1hdGhcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIG1hdGggdG8gdXNlIGZvciBndXR0ZXIgY2FsY3VsYXRpb25zXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ3V0dGVyLW1hdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRfcmV0dXJuICA6IHN1c3ktZ2V0KG1hdGgsICRjb250ZXh0KTtcbiAgJF9yZXR1cm4gIDogaWYoc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCkgPT0gaW5zaWRlLXN0YXRpYywgc3RhdGljLCAkX3JldHVybik7XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svd2VicGFjay9+L3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2d1dHRlcnMuc2Nzc1xuICoqLyIsIkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzL2JyZWFrcG9pbnRzLmpzb24nO1xuQGltcG9ydCAnY29yZS9zdHlsZS9ncmlkJztcbkBpbXBvcnQgJ2NvcmUvc3R5bGUvbWl4aW4nO1xuXG4uYmwyMC1jdXJhdGVkLXR3ZWV0LWJpbGxib2FyZCB7XG4gIC5iaWxsYm9hcmQtY2Fyb3VzZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDUpO1xuICAgIC5iaWxsYm9hcmQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoMyk7XG4gICAgfVxuICAgICYtLXN0YW5kYWxvbmUge1xuICAgICAgLnN3aXBlci1zbGlkZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgfVxuICAgICAgLnN3aXBlci1wYWdpbmF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmJpbGxib2FyZCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbi10b3A6IGJhc2VsaW5lKDMpO1xuICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSg4KTtcbiAgICBwYWRkaW5nLXRvcDogYmFzZWxpbmUoOCk7XG4gICAgaGVpZ2h0OiBiYXNlbGluZSg1MCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtb2JpbGUpKSB7XG4gICAgICBoZWlnaHQ6IGJhc2VsaW5lKDE4KTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSgwKTtcbiAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgwKTtcbiAgICB9XG4gICAgc3ZnIHtcbiAgICAgIGZpbGw6IGNvbG9yKG5ldXRyYWwsIHdoaXRlKTtcbiAgICB9XG4gICAgJi5kZWxldGVkLWJiIHtcbiAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgxMik7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogYmFzZWxpbmUoMTIpO1xuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtb2JpbGUpKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgyKTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKDIpO1xuICAgICAgICBtYXJnaW4tdG9wOiBiYXNlbGluZSgyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoMik7XG4gICAgICB9XG4gICAgfVxuICAgIC50d2VldCB7XG4gICAgICBib3JkZXItY29sb3I6IGNvbG9yKG5ldXRyYWwsIHdoaXRlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDNweDtcbiAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCB3aGl0ZSk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gICAgICBwYWRkaW5nOiBiYXNlbGluZSgyLjUpIGJhc2VsaW5lKDIuNSkgYmFzZWxpbmUoMikgYmFzZWxpbmUoMi41KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHdpZHRoOiBzcGFuKDggb2YgMTIpO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgbW9iaWxlKSkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuKGZ1bGwpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IGJhc2VsaW5lKDEuMjUpIGJhc2VsaW5lKDEpIGJhc2VsaW5lKDUvNCkgYmFzZWxpbmUoMSk7XG4gICAgICB9XG4gICAgICAudHdlZXQtYWNjb3VudCxcbiAgICAgIC50d2VldC1tZXRhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgICAgICYuZGVsZXRlZC10d2VldCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZy10b3A6IGJhc2VsaW5lKDIpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAudHdlZXQtYWNjb3VudCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAudHdlZXQtY29weSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIEBpbmNsdWRlIHR5cGVTdHlsZXMobWFwLWdldChtYXAtZ2V0KCR0eXBvZ3JhcGh5LCBkZWZhdWx0KSwgYm9sZC0yNCkpO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgzKTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogYmFzZWxpbmUoNSk7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHR5cGVTdHlsZXMobWFwLWdldChtYXAtZ2V0KCR0eXBvZ3JhcGh5LCBkZWZhdWx0KSwgYm9sZC00OCkpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IGJhc2VsaW5lKDYpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKDEyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtb2JpbGUpKSB7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICAgIHBhZGRpbmctdG9wOiBiYXNlbGluZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAudHdlZXQtYWNjb3VudCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBwYWRkaW5nLWJvdHRvbTogYmFzZWxpbmUoMik7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKDEpO1xuICAgICAgfVxuICAgICAgJl9fbmFtZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBiYXNlbGluZSg0LzMpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtb2JpbGUpKSB7XG4gICAgICAgICAgQGluY2x1ZGUgdHlwZVN0eWxlcyhtYXAtZ2V0KG1hcC1nZXQoJHR5cG9ncmFwaHksIGRlZmF1bHQpLCBib2xkLTE0KSk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGJhc2VsaW5lKDQvMyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZfX2hhbmRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBiYXNlbGluZSg0LzMpO1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICAgICAgICBAaW5jbHVkZSB0eXBlU3R5bGVzKG1hcC1nZXQobWFwLWdldCgkdHlwb2dyYXBoeSwgZGVmYXVsdCksIHJvbWFuLTE0KSk7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGJhc2VsaW5lKDQvMyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICZfX3R3aXR0ZXItbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgICAmX190d2l0dGVyLWxvZ28gc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBiYXNlbGluZSgzKTtcbiAgICAgICAgd2lkdGg6IGJhc2VsaW5lKDMpO1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICAgICAgICBoZWlnaHQ6IGJhc2VsaW5lKDgvMyk7XG4gICAgICAgICAgd2lkdGg6IGJhc2VsaW5lKDgvMyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCB3aGl0ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIC5qcy10ZXh0Zml0LXBhcmVudCB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgLyogYWRkcyB3aGl0ZXNwYWNlIGFib3ZlIGFuZCBiZWxvdyB0d2VldCB0ZXh0IHBlciB0d2l0dGVyIHN0eWxlZ3VpZGUgKi9cbiAgICAgIC8qIHVzZXMgcHggdG8gYXZvaWQgYnJlYWtpbmcgaWYgYmFzZWxpbmUgdmFsdWVzIGNoYW5nZSAqL1xuICAgICAgbWFyZ2luOiAxMnB4IDAgMjRweCAwO1xuICAgICAgJi5tb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAudHdlZXQtY29weV9fdGV4dCB7XG4gICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZvbnQtc2l6ZTogYmFzZWxpbmUoNCk7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNXJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiBiYXNlbGluZSgyKTtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoMSk7XG4gICAgICB9XG4gICAgfVxuICAgIC50d2VldC1jb3B5X190ZXh0LS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogYmFzZWxpbmUoMyk7XG4gICAgfVxuICAgIC50d2VldC1ib3gtbGluayB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgbW9iaWxlKSkge1xuICAgICAgLnR3ZWV0LWNvcHlfX3RleHQtLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgLnR3ZWV0LWNvcHlfX3RleHQtLW1vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmpzLXRleHRmaXQtcGFyZW50IHtcbiAgICAgICAgJi5tb2JpbGUge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogNHB4IDA7XG4gICAgICAgIH1cbiAgICAgICAgJi5kZXNrdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudHdlZXQtbWV0YV9fZGF0ZSB7XG4gICAgICAgIEBpbmNsdWRlIHR5cGVTdHlsZXMobWFwLWdldChtYXAtZ2V0KCR0eXBvZ3JhcGh5LCBkZWZhdWx0KSwgYm9sZC0xNCkpO1xuICAgICAgfVxuICAgIH1cbiAgICAudHdlZXQtbWV0YSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICB9XG4gICAgLnR3ZWV0LW1ldGFfX2N0YSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgICBkaXZbY2xhc3MqPVwidHdlZXQtbWV0YV9fY3RhLS1cIl0ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIH1cbiAgICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogYmFzZWxpbmUoNS8zKTtcbiAgICAgICAgd2lkdGg6IGJhc2VsaW5lKDUvMyk7XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgbW9iaWxlKSkge1xuICAgICAgICAgIGhlaWdodDogYmFzZWxpbmUoMS4yNSk7XG4gICAgICAgICAgd2lkdGg6IGJhc2VsaW5lKDEuMjUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAudHdlZXQtbWV0YV9fdHdlZXQtY291bnQge1xuICAgICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIG1vYmlsZSkpIHtcbiAgICAgICAgICBAaW5jbHVkZSB0eXBlU3R5bGVzKG1hcC1nZXQobWFwLWdldCgkdHlwb2dyYXBoeSwgZGVmYXVsdCksIGJvbGQtMTQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBkaXZbY2xhc3MqPVwidHdlZXQtbWV0YV9fY3RhLS1yZXR3ZWV0XCJdIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogYmFzZWxpbmUoMik7XG4gICAgICAgIHdpZHRoOiBiYXNlbGluZSgyKTtcbiAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtb2JpbGUpKSB7XG4gICAgICAgICAgaGVpZ2h0OiBiYXNlbGluZSgxLjUpO1xuICAgICAgICAgIHdpZHRoOiBiYXNlbGluZSgxLjUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGRpdltjbGFzcyo9XCJiYWNrZ3JvdW5kX190aW50LS1cIl0ge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG4gICAgLmJhY2tncm91bmRfX3RpbnQtLWxvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGNvbG9yKG5ldXRyYWwsIGJsYWNrKSwgMC4xKTtcbiAgICB9XG4gICAgLmJhY2tncm91bmRfX3RpbnQtLW1lZGl1bSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKGNvbG9yKG5ldXRyYWwsIGJsYWNrKSwgMC4yKTtcbiAgICB9XG4gICAgLmJhY2tncm91bmRfX3RpbnQtLWhpZ2gge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYShjb2xvcihuZXV0cmFsLCBibGFjayksIDAuMyk7XG4gICAgfVxuICB9XG4gIC5zd2lwZXItc2xpZGUge1xuICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSgzKTtcbiAgfVxuICAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IobmV1dHJhbCwgZXh0cmEtbGlnaHQtZ3JheSk7XG4gIH1cbiAgLmJpbGxib2FyZC1wbGFjZWhvbGRlciB7XG4gICAgaGVpZ2h0OiBiYXNlbGluZSg2MSk7XG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBtb2JpbGUpKSB7XG4gICAgICBoZWlnaHQ6IGJhc2VsaW5lKDI2KTtcbiAgICB9XG4gIH1cbn1cblxuQGVhY2ggJGNvbG9yS2V5LFxuJGNvbG9yIGluIG1hcC1nZXQoJGNvbG9ycywgZGFyaykge1xuICAudGhlbWUtLSN7JGNvbG9yS2V5fSAuYmlsbGJvYXJkLWNhcm91c2VsIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjeyRjb2xvcn0gIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDFzIGVhc2UtaW4tb3V0O1xuICB9XG59XG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9ibDIwLWN1cmF0ZWQtdHdlZXQtYmlsbGJvYXJkL3dlYnBhY2svaW5kZXguc2Nzc1xuICoqLyIsIi8qKlxuICogU3dpcGVyIDMuNC4xXG4gKiBNb3N0IG1vZGVybiBtb2JpbGUgdG91Y2ggc2xpZGVyIGFuZCBmcmFtZXdvcmsgd2l0aCBoYXJkd2FyZSBhY2NlbGVyYXRlZCB0cmFuc2l0aW9uc1xuICogXG4gKiBodHRwOi8vd3d3LmlkYW5nZXJvLnVzL3N3aXBlci9cbiAqIFxuICogQ29weXJpZ2h0IDIwMTYsIFZsYWRpbWlyIEtoYXJsYW1waWRpXG4gKiBUaGUgaURhbmdlcm8udXNcbiAqIGh0dHA6Ly93d3cuaWRhbmdlcm8udXMvXG4gKiBcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVFxuICogXG4gKiBSZWxlYXNlZCBvbjogRGVjZW1iZXIgMTMsIDIwMTZcbiAqL1xuLnN3aXBlci1jb250YWluZXIge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIEZpeCBvZiBXZWJraXQgZmxpY2tlcmluZyAqL1xuICB6LWluZGV4OiAxO1xufVxuLnN3aXBlci1jb250YWluZXItbm8tZmxleGJveCAuc3dpcGVyLXNsaWRlIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uc3dpcGVyLWNvbnRhaW5lci12ZXJ0aWNhbCA+IC5zd2lwZXItd3JhcHBlciB7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIC1tb3otYm94LW9yaWVudDogdmVydGljYWw7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uc3dpcGVyLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHotaW5kZXg6IDE7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiAtbW96LXRyYW5zZm9ybTtcbiAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW8tdHJhbnNmb3JtO1xuICAtbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1zLXRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWFuZHJvaWQgLnN3aXBlci1zbGlkZSxcbi5zd2lwZXItd3JhcHBlciB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDBweCwgMCwgMCk7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1tdWx0aXJvdyA+IC5zd2lwZXItd3JhcHBlciB7XG4gIC13ZWJraXQtYm94LWxpbmVzOiBtdWx0aXBsZTtcbiAgLW1vei1ib3gtbGluZXM6IG11bHRpcGxlO1xuICAtbXMtZmxleC13cmFwOiB3cmFwO1xuICAtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnN3aXBlci1jb250YWluZXItZnJlZS1tb2RlID4gLnN3aXBlci13cmFwcGVyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtbXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG4uc3dpcGVyLXNsaWRlIHtcbiAgLXdlYmtpdC1mbGV4LXNocmluazogMDtcbiAgLW1zLWZsZXg6IDAgMCBhdXRvO1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLyogQXV0byBIZWlnaHQgKi9cbi5zd2lwZXItY29udGFpbmVyLWF1dG9oZWlnaHQsXG4uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0IC5zd2lwZXItc2xpZGUge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uc3dpcGVyLWNvbnRhaW5lci1hdXRvaGVpZ2h0IC5zd2lwZXItd3JhcHBlciB7XG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcbiAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiAtd2Via2l0LXRyYW5zZm9ybSwgaGVpZ2h0O1xuICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IC1tb3otdHJhbnNmb3JtO1xuICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiAtby10cmFuc2Zvcm07XG4gIC1tcy10cmFuc2l0aW9uLXByb3BlcnR5OiAtbXMtdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGhlaWdodDtcbn1cbi8qIGExMXkgKi9cbi5zd2lwZXItY29udGFpbmVyIC5zd2lwZXItbm90aWZpY2F0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAtMTAwMDtcbn1cbi8qIElFMTAgV2luZG93cyBQaG9uZSA4IEZpeGVzICovXG4uc3dpcGVyLXdwOC1ob3Jpem9udGFsIHtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG4uc3dpcGVyLXdwOC12ZXJ0aWNhbCB7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi14O1xuICB0b3VjaC1hY3Rpb246IHBhbi14O1xufVxuLyogQXJyb3dzICovXG4uc3dpcGVyLWJ1dHRvbi1wcmV2LFxuLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAyN3B4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIG1hcmdpbi10b3A6IC0yMnB4O1xuICB6LWluZGV4OiAxMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtbW96LWJhY2tncm91bmQtc2l6ZTogMjdweCA0NHB4O1xuICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogMjdweCA0NHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDI3cHggNDRweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnN3aXBlci1idXR0b24tcHJldi5zd2lwZXItYnV0dG9uLWRpc2FibGVkLFxuLnN3aXBlci1idXR0b24tbmV4dC5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC4zNTtcbiAgY3Vyc29yOiBhdXRvO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tbmV4dCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMCUyQzIyTDIyJTJDMGwyLjElMkMyLjFMNC4yJTJDMjJsMTkuOSUyQzE5LjlMMjIlMkM0NEwwJTJDMjJMMCUyQzIyTDAlMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuICBsZWZ0OiAxMHB4O1xuICByaWdodDogYXV0bztcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLXByZXYuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1uZXh0LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTAlMkMyMkwyMiUyQzBsMi4xJTJDMi4xTDQuMiUyQzIybDE5LjklMkMxOS45TDIyJTJDNDRMMCUyQzIyTDAlMkMyMkwwJTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1ydGwgLnN3aXBlci1idXR0b24tcHJldiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHhtbG5zJTNEJ2h0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyclMjB2aWV3Qm94JTNEJzAlMjAwJTIwMjclMjA0NCclM0UlM0NwYXRoJTIwZCUzRCdNMjclMkMyMkwyNyUyQzIyTDUlMkM0NGwtMi4xLTIuMUwyMi44JTJDMjJMMi45JTJDMi4xTDUlMkMwTDI3JTJDMjJMMjclMkMyMnonJTIwZmlsbCUzRCclMjMwMDdhZmYnJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuICByaWdodDogMTBweDtcbiAgbGVmdDogYXV0bztcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi1ibGFjayxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzMDAwMDAwJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi5zd2lwZXItYnV0dG9uLW5leHQuc3dpcGVyLWJ1dHRvbi13aGl0ZSxcbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLWJ1dHRvbi1wcmV2LnN3aXBlci1idXR0b24td2hpdGUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmclMjB4bWxucyUzRCdodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmcnJTIwdmlld0JveCUzRCcwJTIwMCUyMDI3JTIwNDQnJTNFJTNDcGF0aCUyMGQlM0QnTTI3JTJDMjJMMjclMkMyMkw1JTJDNDRsLTIuMS0yLjFMMjIuOCUyQzIyTDIuOSUyQzIuMUw1JTJDMEwyNyUyQzIyTDI3JTJDMjJ6JyUyMGZpbGwlM0QnJTIzZmZmZmZmJyUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbi8qIFBhZ2luYXRpb24gU3R5bGVzICovXG4uc3dpcGVyLXBhZ2luYXRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAzMDBtcztcbiAgLW1vei10cmFuc2l0aW9uOiAzMDBtcztcbiAgLW8tdHJhbnNpdGlvbjogMzAwbXM7XG4gIHRyYW5zaXRpb246IDMwMG1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB6LWluZGV4OiAxMDtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi5zd2lwZXItcGFnaW5hdGlvbi1oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xufVxuLyogQ29tbW9uIFN0eWxlcyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLWZyYWN0aW9uLFxuLnN3aXBlci1wYWdpbmF0aW9uLWN1c3RvbSxcbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyB7XG4gIGJvdHRvbTogMTBweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4vKiBCdWxsZXRzICovXG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMC4yO1xufVxuYnV0dG9uLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2hhZG93OiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tY2xpY2thYmxlIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24td2hpdGUgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0LWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6ICMwMDdhZmY7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24td2hpdGUgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLWJsYWNrIC5zd2lwZXItcGFnaW5hdGlvbi1idWxsZXQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMge1xuICByaWdodDogMTBweDtcbiAgdG9wOiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIC01MCUsIDApO1xuICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAtNTAlLCAwKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTAlKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAtNTAlLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIC01MCUsIDApO1xufVxuLnN3aXBlci1jb250YWluZXItdmVydGljYWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0cyAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgbWFyZ2luOiA1cHggMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1ob3Jpem9udGFsID4gLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldHMgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldCB7XG4gIG1hcmdpbjogMCA1cHg7XG59XG4vKiBQcm9ncmVzcyAqL1xuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzIC5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzc2JhciB7XG4gIGJhY2tncm91bmQ6ICMwMDdhZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDApO1xuICAtby10cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG4gIC1vLXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3MgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgdG9wO1xuICAtby10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCB0b3A7XG4gIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IHRvcDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWhvcml6b250YWwgPiAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Mge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzIHtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Muc3dpcGVyLXBhZ2luYXRpb24td2hpdGUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG59XG4uc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3Muc3dpcGVyLXBhZ2luYXRpb24td2hpdGUgLnN3aXBlci1wYWdpbmF0aW9uLXByb2dyZXNzYmFyIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5zd2lwZXItcGFnaW5hdGlvbi1wcm9ncmVzcy5zd2lwZXItcGFnaW5hdGlvbi1ibGFjayAuc3dpcGVyLXBhZ2luYXRpb24tcHJvZ3Jlc3NiYXIge1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuLyogM0QgQ29udGFpbmVyICovXG4uc3dpcGVyLWNvbnRhaW5lci0zZCB7XG4gIC13ZWJraXQtcGVyc3BlY3RpdmU6IDEyMDBweDtcbiAgLW1vei1wZXJzcGVjdGl2ZTogMTIwMHB4O1xuICAtby1wZXJzcGVjdGl2ZTogMTIwMHB4O1xuICBwZXJzcGVjdGl2ZTogMTIwMHB4O1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci13cmFwcGVyLFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZSxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSxcbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItY3ViZS1zaGFkb3cge1xuICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIC1tb3otdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgLW1zLXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LFxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDEwO1xufVxuLnN3aXBlci1jb250YWluZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHJnYmEoMCwgMCwgMCwgMC41KSksIHRvKHJnYmEoMCwgMCwgMCwgMCkpKTtcbiAgLyogU2FmYXJpIDQrLCBDaHJvbWUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIENocm9tZSAxMCssIFNhZmFyaSA1LjErLCBpT1MgNSsgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQocmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMy42LTE1ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChyaWdodCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogT3BlcmEgMTEuMTAtMTIuMDAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMTYrLCBJRTEwLCBPcGVyYSAxMi41MCsgKi9cbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIHJpZ2h0IHRvcCwgbGVmdCB0b3AsIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICAvKiBTYWZhcmkgNCssIENocm9tZSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBDaHJvbWUgMTArLCBTYWZhcmkgNS4xKywgaU9TIDUrICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMy42LTE1ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBPcGVyYSAxMS4xMC0xMi4wMCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIEZpcmVmb3ggMTYrLCBJRTEwLCBPcGVyYSAxMi41MCsgKi9cbn1cbi5zd2lwZXItY29udGFpbmVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiYSgwLCAwLCAwLCAwLjUpKSwgdG8ocmdiYSgwLCAwLCAwLCAwKSkpO1xuICAvKiBTYWZhcmkgNCssIENocm9tZSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIC8qIENocm9tZSAxMCssIFNhZmFyaSA1LjErLCBpT1MgNSsgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoYm90dG9tLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBPcGVyYSAxMS4xMC0xMi4wMCAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBGaXJlZm94IDE2KywgSUUxMCwgT3BlcmEgMTIuNTArICovXG59XG4uc3dpcGVyLWNvbnRhaW5lci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBmcm9tKHJnYmEoMCwgMCwgMCwgMC41KSksIHRvKHJnYmEoMCwgMCwgMCwgMCkpKTtcbiAgLyogU2FmYXJpIDQrLCBDaHJvbWUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICAvKiBDaHJvbWUgMTArLCBTYWZhcmkgNS4xKywgaU9TIDUrICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAzLjYtMTUgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogT3BlcmEgMTEuMTAtMTIuMDAgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgLyogRmlyZWZveCAxNissIElFMTAsIE9wZXJhIDEyLjUwKyAqL1xufVxuLyogQ292ZXJmbG93ICovXG4uc3dpcGVyLWNvbnRhaW5lci1jb3ZlcmZsb3cgLnN3aXBlci13cmFwcGVyLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXdyYXBwZXIge1xuICAvKiBXaW5kb3dzIDggSUUgMTAgZml4ICovXG4gIC1tcy1wZXJzcGVjdGl2ZTogMTIwMHB4O1xufVxuLyogQ3ViZSArIEZsaXAgKi9cbi5zd2lwZXItY29udGFpbmVyLWN1YmUsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDE7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUgLnN3aXBlci1zbGlkZSxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmxpcCAuc3dpcGVyLXNsaWRlLWFjdGl2ZSxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1hY3RpdmUgLnN3aXBlci1zbGlkZS1hY3RpdmUsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtYWN0aXZlIC5zd2lwZXItc2xpZGUtYWN0aXZlIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctdG9wLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLWZsaXAgLnN3aXBlci1zbGlkZS1zaGFkb3ctbGVmdCxcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsXG4uc3dpcGVyLWNvbnRhaW5lci1mbGlwIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0IHtcbiAgei1pbmRleDogMDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBDdWJlICovXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZS5zd2lwZXItY29udGFpbmVyLXJ0bCAuc3dpcGVyLXNsaWRlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG4gIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLXNsaWRlLW5leHQsXG4uc3dpcGVyLWNvbnRhaW5lci1jdWJlIC5zd2lwZXItc2xpZGUtcHJldixcbi5zd2lwZXItY29udGFpbmVyLWN1YmUgLnN3aXBlci1zbGlkZS1uZXh0ICsgLnN3aXBlci1zbGlkZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuLnN3aXBlci1jb250YWluZXItY3ViZSAuc3dpcGVyLWN1YmUtc2hhZG93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgb3BhY2l0eTogMC42O1xuICAtd2Via2l0LWZpbHRlcjogYmx1cig1MHB4KTtcbiAgZmlsdGVyOiBibHVyKDUwcHgpO1xuICB6LWluZGV4OiAwO1xufVxuLyogRmFkZSAqL1xuLnN3aXBlci1jb250YWluZXItZmFkZS5zd2lwZXItY29udGFpbmVyLWZyZWUtbW9kZSAuc3dpcGVyLXNsaWRlIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtbXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAtby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHk7XG4gIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbn1cbi5zd2lwZXItY29udGFpbmVyLWZhZGUgLnN3aXBlci1zbGlkZSAuc3dpcGVyLXNsaWRlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc3dpcGVyLWNvbnRhaW5lci1mYWRlIC5zd2lwZXItc2xpZGUtYWN0aXZlLFxuLnN3aXBlci1jb250YWluZXItZmFkZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSAuc3dpcGVyLXNsaWRlLWFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnN3aXBlci16b29tLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuICAtbW96LWJveC1wYWNrOiBjZW50ZXI7XG4gIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG4gIC1tb3otYm94LWFsaWduOiBjZW50ZXI7XG4gIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnN3aXBlci16b29tLWNvbnRhaW5lciA+IGltZyxcbi5zd2lwZXItem9vbS1jb250YWluZXIgPiBzdmcsXG4uc3dpcGVyLXpvb20tY29udGFpbmVyID4gY2FudmFzIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLyogU2Nyb2xsYmFyICovXG4uc3dpcGVyLXNjcm9sbGJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnN3aXBlci1jb250YWluZXItaG9yaXpvbnRhbCA+IC5zd2lwZXItc2Nyb2xsYmFyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxJTtcbiAgYm90dG9tOiAzcHg7XG4gIHotaW5kZXg6IDUwO1xuICBoZWlnaHQ6IDVweDtcbiAgd2lkdGg6IDk4JTtcbn1cbi5zd2lwZXItY29udGFpbmVyLXZlcnRpY2FsID4gLnN3aXBlci1zY3JvbGxiYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAzcHg7XG4gIHRvcDogMSU7XG4gIHotaW5kZXg6IDUwO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDk4JTtcbn1cbi5zd2lwZXItc2Nyb2xsYmFyLWRyYWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnN3aXBlci1zY3JvbGxiYXItY3Vyc29yLWRyYWcge1xuICBjdXJzb3I6IG1vdmU7XG59XG4vKiBQcmVsb2FkZXIgKi9cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXIge1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMjFweDtcbiAgbWFyZ2luLXRvcDogLTIxcHg7XG4gIHotaW5kZXg6IDEwO1xuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJTtcbiAgLXdlYmtpdC1hbmltYXRpb246IHN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbiAgLW1vei1hbmltYXRpb246IHN3aXBlci1wcmVsb2FkZXItc3BpbiAxcyBzdGVwcygxMiwgZW5kKSBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uOiBzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgc3RlcHMoMTIsIGVuZCkgaW5maW5pdGU7XG59XG4uc3dpcGVyLWxhenktcHJlbG9hZGVyOmFmdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxMjAlMjAxMjAnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHhtbG5zJTNBeGxpbmslM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmsnJTNFJTNDZGVmcyUzRSUzQ2xpbmUlMjBpZCUzRCdsJyUyMHgxJTNEJzYwJyUyMHgyJTNEJzYwJyUyMHkxJTNEJzcnJTIweTIlM0QnMjcnJTIwc3Ryb2tlJTNEJyUyMzZjNmM2YyclMjBzdHJva2Utd2lkdGglM0QnMTEnJTIwc3Ryb2tlLWxpbmVjYXAlM0Qncm91bmQnJTJGJTNFJTNDJTJGZGVmcyUzRSUzQ2clM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg2MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoOTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDEyMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTUwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMzcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxODAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy40NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDIxMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjU2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjQwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNjYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy43NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjg1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzMwJTIwNjAlMkM2MCknJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlci13aGl0ZTphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyUyMHZpZXdCb3glM0QnMCUyMDAlMjAxMjAlMjAxMjAnJTIweG1sbnMlM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJyUyMHhtbG5zJTNBeGxpbmslM0QnaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmsnJTNFJTNDZGVmcyUzRSUzQ2xpbmUlMjBpZCUzRCdsJyUyMHgxJTNEJzYwJyUyMHgyJTNEJzYwJyUyMHkxJTNEJzcnJTIweTIlM0QnMjcnJTIwc3Ryb2tlJTNEJyUyM2ZmZiclMjBzdHJva2Utd2lkdGglM0QnMTEnJTIwc3Ryb2tlLWxpbmVjYXAlM0Qncm91bmQnJTJGJTNFJTNDJTJGZGVmcyUzRSUzQ2clM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMjcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSg2MCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoOTAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy4yNyclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDEyMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjI3JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMTUwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuMzcnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgxODAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy40NiclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDIxMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjU2JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMjQwJTIwNjAlMkM2MCknJTJGJTNFJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJyUyM2wnJTIwb3BhY2l0eSUzRCcuNjYnJTIwdHJhbnNmb3JtJTNEJ3JvdGF0ZSgyNzAlMjA2MCUyQzYwKSclMkYlM0UlM0N1c2UlMjB4bGluayUzQWhyZWYlM0QnJTIzbCclMjBvcGFjaXR5JTNEJy43NSclMjB0cmFuc2Zvcm0lM0Qncm90YXRlKDMwMCUyMDYwJTJDNjApJyUyRiUzRSUzQ3VzZSUyMHhsaW5rJTNBaHJlZiUzRCclMjNsJyUyMG9wYWNpdHklM0QnLjg1JyUyMHRyYW5zZm9ybSUzRCdyb3RhdGUoMzMwJTIwNjAlMkM2MCknJTJGJTNFJTNDJTJGZyUzRSUzQyUyRnN2ZyUzRVwiKTtcbn1cbkAtd2Via2l0LWtleWZyYW1lcyBzd2lwZXItcHJlbG9hZGVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3dpcGVyLXByZWxvYWRlci1zcGluIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy93ZWJwYWNrL34vc3dpcGVyL2Rpc3QvY3NzL3N3aXBlci5jc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuXG5AaW1wb3J0ICdjb3JlL3N0eWxlL21peGluJztcblxuLnR3aXR0ZXItbW9tZW50cyB7XG4gIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDQpO1xufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9ibDI5LXR3aXR0ZXItbW9tZW50cy93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3N0eWxlL21peGluJztcblxuLmJsMzEtaW50cm9kdWN0aW9uIHtcbiAgcCB7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWUgTFRcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDUpO1xuICB9XG59XG5cbi8qKlxuICogVGhlIGZvbGxvd2luZyBDU1MgaXMgdXNlZCB0byBmb3JtYXQgdGhlIGlubGluZSBlZGl0b3IgaW4gZWRpdCBtb2RlLlxuICovXG5cbiRDb3JhbFVJUmVkOiAjZTE0MTMyO1xuXG4uYmwzMS1pbnRyb2R1Y3Rpb24ge1xuICBwIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAxcyBjdWJpYy1iZXppZXIoMSwgMCwgMC45NSwgMCk7XG4gIH1cblxuICBwLmlzLWludmFsaWQge1xuICAgIGNvbG9yOiAkQ29yYWxVSVJlZDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwcztcbiAgfVxuXG4gIC5jcS1wbGFjZWhvbGRlciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDIuODc1cmVtO1xuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2JsMzEtaW50cm9kdWN0aW9uL3dlYnBhY2svaW5kZXguc2Nzc1xuICoqLyIsIkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzL2JyZWFrcG9pbnRzLmpzb24nO1xuQGltcG9ydCAnY29yZS92YXJpYWJsZXMvY29sb3JzLmpzb24nO1xuQGltcG9ydCAnY29yZS9zdHlsZS9ncmlkJztcblxuQGltcG9ydCAnY29yZS9zdHlsZS9taXhpbic7XG4uYzA0LWltYWdlLWNhcm91c2VsIHtcbiAgPiAuY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgLnN3aXBlci1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoNSk7XG4gIH1cbiAgLmltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiBiYXNlbGluZSgzKTtcbiAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgICBtYXJnaW4tdG9wOiBiYXNlbGluZSgzKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDUpO1xuICAgIH1cbiAgICAmX19jb250YWluZXIge1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogYmFzZWxpbmUoMTYpO1xuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBmdWxsKSkge1xuICAgICAgICBoZWlnaHQ6IGJhc2VsaW5lKDQwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJl9fZm9vdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IGJhc2VsaW5lKDIpO1xuICAgICAgJi5jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICZfX2NhcHRpb24ge1xuICAgICAgbGluZS1oZWlnaHQ6IGJhc2VsaW5lKDQvMyk7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBiYXNlbGluZSgyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnN3aXBlci1zbGlkZSB7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgIHdpZHRoOiA3NC40JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzLjglO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAzLjglO1xuICAgIH1cbiAgfVxuICAuc3dpcGVyLXBhZ2luYXRpb24tYnVsbGV0IHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IobmV1dHJhbCwgZXh0cmEtbGlnaHQtZ3JheSk7XG4gIH1cbiAgLmltYWdlLWNhcm91c2VsLXBsYWNlaG9sZGVyIHtcbiAgICBoZWlnaHQ6IGJhc2VsaW5lKDU0KTtcbiAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgICAgIGhlaWdodDogYmFzZWxpbmUoMjYpO1xuICAgIH1cbiAgfVxufVxuXG5AZWFjaCAkY29sb3JLZXksXG4kY29sb3IgaW4gbWFwLWdldCgkY29sb3JzLCBkYXJrKSB7XG4gIC50aGVtZS0tI3skY29sb3JLZXl9IC5jMDQtaW1hZ2UtY2Fyb3VzZWwgLnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICN7JGNvbG9yfSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMXMgZWFzZS1pbi1vdXQ7XG4gIH1cbn1cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2MwNC1pbWFnZS1jYXJvdXNlbC93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9icmVha3BvaW50cy5qc29uJztcbkBpbXBvcnQgJ2NvcmUvc3R5bGUvZ3JpZCc7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL21peGluJztcblxuLmMwNS12aWRlbyB7XG4gIC52aWRlb19wbGF5ZXIge1xuICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDYpO1xuICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCB3aGl0ZSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZpZGVvIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICAgIC5wbHlyQ3VzdG9tQ29udHJvbHMge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJl9fd3JhcHBlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIHtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgICAmLnR3ZWx2ZSB7XG4gICAgICB3aWR0aDogODkuNiU7XG4gICAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgJl9fd3JhcHBlciB7XG4gICAgICAgIGhlaWdodDogYmFzZWxpbmUoNTMpO1xuICAgICAgICAucGx5ciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICYuc2l4IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oMTIpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgfVxuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIHtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yNXMgZWFzZTtcbiAgICBoZWlnaHQ6IGJhc2VsaW5lKDYpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwwLDAsMCkgMCUscmdiYSgwLDAsMCwwLjMpIDEwMCUpO1xuICAgIHBhZGRpbmc6IGJhc2VsaW5lKDIpIDtcbiAgfVxuICAucGx5cl9fY29udHJvbHMgLnBseXJfX3Byb2dyZXNzLFxuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbiB7XG4gICAgcGFkZGluZzowO1xuICAgIG1hcmdpbi1sZWZ0OjA7XG4gICAgbWFyZ2luLXJpZ2h0OiBiYXNlbGluZSgyKTtcbiAgfVxuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbiBzdmcge1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBtYXJnaW4tbGVmdDogLSAxMHB4O1xuICB9XG4gIC8vcGxheS9wYXVzZSBidXR0b25cbiAgLnBseXJfX2NvbnRyb2xzPmJ1dHRvbjpmaXJzdC1jaGlsZCxcbiAgLnBseXJfX2NvbnRyb2xzPmJ1dHRvbjpudGgtY2hpbGQoMikge1xuICAgIG1hcmdpbi1yaWdodDogMThweDtcbiAgfVxuICAucGx5cl9fY29udHJvbHMgLnBseXJfX3RpbWUge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogYmFzZWxpbmUoLjUpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIH1cbiAgLnBseXJfX2NvbnRyb2xzIC5wbHlyX190aW1lOm50aC1vZi10eXBlKDIpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGJhc2VsaW5lKC41KTtcbiAgfVxuICAucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZCxcbiAgLnBseXJfX3ZvbHVtZS0tZGlzcGxheSB7XG4gICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIHdoaXRlKTtcbiAgfVxuICAucGx5cl9fcHJvZ3Jlc3MtLWJ1ZmZlcixcbiAgLnBseXJfX3Byb2dyZXNzLS1wbGF5ZWQsXG4gIC5wbHlyX192b2x1bWUtLWRpc3BsYXkge1xuICAgIGhlaWdodDogMnB4O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAucGx5cl9fdGltZSB7XG4gICAgc3BhbiB7XG4gICAgICBAaW5jbHVkZSBmb250KCBib2xkLTE0ICk7XG4gICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgIH1cbiAgfVxuICAucGx5cl9fdGltZSsucGx5cl9fdGltZSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG4gIC5wbHlyX190aW1lKy5wbHlyX190aW1lOjpiZWZvcmUge1xuICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCB3aGl0ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBiYXNlbGluZSguNSk7XG4gIH1cbiAgLnBseXJfX2NvbnRyb2xzIC5wbHlyX190aW1lIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgLy9leHBhbmQgZnVsbHNjcmVlbiBidXR0b25cbiAgLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9scyBidXR0b24uZnVsbHNjcmVlbiB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG4gIC8vYWRqdXN0bWVudHMgZm9yIHNob3cvaGlkZSB2b2x1bWUgYmFyXG4gIC5wbHlyIHtcbiAgICAudm9sV3JhcCB7XG4gICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgICAgbWFyZ2luLWxlZnQ6MTVweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTlweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgfVxuICAgICAgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDMxcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5wbHlyX192b2x1bWUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IGJhc2VsaW5lKDQpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA1NnB4O1xuICAgICAgICBib3R0b206IDc1cHg7XG4gICAgICB9XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLnBseXJfX3ZvbHVtZSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAucGx5ci5wbHlyLS1tdXRlZCB7XG4gICAgLnBseXJfX3ZvbHVtZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAucGx5cl9fcGxheS1sYXJnZSAge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgcmdiYSgwLDAsMCwwKTtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxMzBweDtcbiAgICAgICAgaGVpZ2h0OiAxMzBweDtcbiAgICAgIH1cbiAgfVxuICAucGx5ci0tYXVkaW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbi50YWItZm9jdXM6Zm9jdXMsXG4gIC5wbHlyLS1hdWRpbyAucGx5cl9fY29udHJvbHMgYnV0dG9uOmhvdmVyLFxuICAucGx5cl9fcGxheS1sYXJnZSxcbiAgLnBseXJfX3BsYXktbGFyZ2UgLnBseXItLXZpZGVvIC5idXR0b24udGFiLWZvY3VzOmZvY3VzLFxuICAucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuXG5cbiAgLnZpZGVvX19wbGFjZWhvbGRlciB7XG4gICAgaGVpZ2h0OiBiYXNlbGluZSgzNSk7XG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBmdWxsKSkge1xuICAgICAgaGVpZ2h0OiBiYXNlbGluZSg1Myk7XG4gICAgfVxuICB9XG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjbGVhcjogYm90aDtcbiAgfVxuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuLy9oaWRlcyB0aHVtYiBjb250cm9sIG9uIHNsaWRlcnNcbi5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICBvcGFjaXR5OiAwO1xufVxuXG4ucGx5ciBpbnB1dFt0eXBlPXJhbmdlXTo6LW1vei1yYW5nZS10aHVtYiB7XG4gIHdpZHRoOiAwcHg7XG4gIGhlaWdodDogMHB4O1xuICBvcGFjaXR5OiAwO1xufVxuXG4ucGx5ciBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1iIHtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnBseXIgaW5wdXRbdHlwZT1yYW5nZV06YWN0aXZlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOmFjdGl2ZTo6LW1zLXRodW1iIHtcbiAgd2lkdGg6IDBweDtcbiAgaGVpZ2h0OiAwcHg7XG4gIG9wYWNpdHk6IDA7XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2MwNS12aWRlby93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCIucGx5ciBpbnB1dFt0eXBlPXJhbmdlXTpmb2N1cywucGx5cjpmb2N1c3tvdXRsaW5lOjB9LnBseXIgLnBseXJfX3ZpZGVvLWVtYmVkIGlmcmFtZSwucGx5cl9fdG9vbHRpcHtwb2ludGVyLWV2ZW50czpub25lfUBrZXlmcmFtZXMgcGx5ci1wcm9ncmVzc3t0b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjI1cHggMH19LnBseXJ7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjIwMHB4O2ZvbnQtZmFtaWx5OkF2ZW5pciwnQXZlbmlyIE5leHQnLCdIZWx2ZXRpY2EgTmV1ZScsJ1NlZ29lIFVJJyxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtkaXJlY3Rpb246bHRyfS5wbHlyLC5wbHlyICosLnBseXIgOjphZnRlciwucGx5ciA6OmJlZm9yZXtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnBseXIgYSwucGx5ciBidXR0b24sLnBseXIgaW5wdXQsLnBseXIgbGFiZWx7LW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn0ucGx5ciBhdWRpbywucGx5ciB2aWRlb3t3aWR0aDoxMDAlO2hlaWdodDphdXRvO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItcmFkaXVzOmluaGVyaXR9LnBseXIgaW5wdXRbdHlwZT1yYW5nZV17ZGlzcGxheTpibG9jaztoZWlnaHQ6MjBweDt3aWR0aDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2N1cnNvcjpwb2ludGVyO2JvcmRlcjpub25lO2JhY2tncm91bmQ6MCAwfS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3toZWlnaHQ6OHB4O2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW4tdG9wOi00cHg7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlciAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2U7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuMTUpLDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSk7Ym94LXNpemluZzpib3JkZXItYm94fS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNre2hlaWdodDo4cHg7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czo0cHg7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnBseXIgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlciAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2U7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuMTUpLDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSk7Ym94LXNpemluZzpib3JkZXItYm94fS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2t7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjb2xvcjp0cmFuc3BhcmVudH0ucGx5ciBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLWZpbGwtdXBwZXJ7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjRweDstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlcntoZWlnaHQ6OHB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NHB4Oy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7YmFja2dyb3VuZDojMzQ5OGRifS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdGh1bWJ7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjJweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlciAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2U7Ym94LXNoYWRvdzowIDFweCAxcHggcmdiYSgwLDAsMCwuMTUpLDAgMCAwIDFweCByZ2JhKDAsMCwwLC4xNSk7Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbi10b3A6MH0ucGx5ciBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRvb2x0aXB7ZGlzcGxheTpub25lfS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOjotbW96LWZvY3VzLW91dGVye2JvcmRlcjowfS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdLnRhYi1mb2N1czpmb2N1c3tvdXRsaW5lLW9mZnNldDozcHh9LnBseXIgaW5wdXRbdHlwZT1yYW5nZV06YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYntiYWNrZ3JvdW5kOiMzNDk4ZGI7Ym9yZGVyLWNvbG9yOiNmZmY7dHJhbnNmb3JtOnNjYWxlKDEuMjUpfS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYntiYWNrZ3JvdW5kOiMzNDk4ZGI7Ym9yZGVyLWNvbG9yOiNmZmY7dHJhbnNmb3JtOnNjYWxlKDEuMjUpfS5wbHlyIGlucHV0W3R5cGU9cmFuZ2VdOmFjdGl2ZTo6LW1zLXRodW1ie2JhY2tncm91bmQ6IzM0OThkYjtib3JkZXItY29sb3I6I2ZmZjt0cmFuc2Zvcm06c2NhbGUoMS4yNSl9LnBseXItLXZpZGVvIGlucHV0W3R5cGU9cmFuZ2VdLnRhYi1mb2N1czpmb2N1c3tvdXRsaW5lOnJnYmEoMjU1LDI1NSwyNTUsLjUpIGRvdHRlZCAxcHh9LnBseXItLWF1ZGlvIGlucHV0W3R5cGU9cmFuZ2VdLnRhYi1mb2N1czpmb2N1c3tvdXRsaW5lOnJnYmEoODYsOTMsMTAwLC41KSBkb3R0ZWQgMXB4fS5wbHlyX19zci1vbmx5e2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnQ7aGVpZ2h0OjFweCFpbXBvcnRhbnQ7d2lkdGg6MXB4IWltcG9ydGFudH0ucGx5cl9fdmlkZW8td3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLXJhZGl1czppbmhlcml0fS5wbHlyX192aWRlby1lbWJlZHtwYWRkaW5nLWJvdHRvbTo1Ni4yNSU7aGVpZ2h0OjA7Ym9yZGVyLXJhZGl1czppbmhlcml0O292ZXJmbG93OmhpZGRlbjt6LWluZGV4OjB9LnBseXJfX3ZpZGVvLWVtYmVkIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtib3JkZXI6MDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LnBseXJfX3ZpZGVvLWVtYmVkPmRpdntwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nLWJvdHRvbToyMDAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0zNS45NSUpfS5wbHlyIHZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVye2Rpc3BsYXk6bm9uZX0ucGx5cl9fY2FwdGlvbnN7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO3BhZGRpbmc6MjBweDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNDBweCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2U7Y29sb3I6I2ZmZjtmb250LXNpemU6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo0MDB9LnBseXJfX2NhcHRpb25zIHNwYW57Ym9yZGVyLXJhZGl1czoycHg7cGFkZGluZzozcHggMTBweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjcpOy13ZWJraXQtYm94LWRlY29yYXRpb24tYnJlYWs6Y2xvbmU7Ym94LWRlY29yYXRpb24tYnJlYWs6Y2xvbmU7bGluZS1oZWlnaHQ6MTUwJX0ucGx5cl9fY2FwdGlvbnMgc3BhbjplbXB0eXtkaXNwbGF5Om5vbmV9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5wbHlyX19jYXB0aW9uc3tmb250LXNpemU6MjRweH19LnBseXItLWNhcHRpb25zLWFjdGl2ZSAucGx5cl9fY2FwdGlvbnN7ZGlzcGxheTpibG9ja30ucGx5ci0taGlkZS1jb250cm9scyAucGx5cl9fY2FwdGlvbnN7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1cHgpfUBtZWRpYSAobWluLXdpZHRoOjEwMjRweCl7LnBseXItLWZ1bGxzY3JlZW4tYWN0aXZlIC5wbHlyX19jYXB0aW9uc3tmb250LXNpemU6MzJweH19LnBseXIgOjotd2Via2l0LW1lZGlhLWNvbnRyb2xze2Rpc3BsYXk6bm9uZX0ucGx5cl9fY29udHJvbHN7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtsaW5lLWhlaWdodDoxO3RleHQtYWxpZ246Y2VudGVyfS5wbHlyX19jb250cm9scyAucGx5cl9fcHJvZ3Jlc3MsLnBseXJfX2NvbnRyb2xzIC5wbHlyX190aW1lLC5wbHlyX19jb250cm9scz5idXR0b257bWFyZ2luLWxlZnQ6NXB4fS5wbHlyX19jb250cm9scyAucGx5cl9fcHJvZ3Jlc3M6Zmlyc3QtY2hpbGQsLnBseXJfX2NvbnRyb2xzIC5wbHlyX190aW1lOmZpcnN0LWNoaWxkLC5wbHlyX19jb250cm9scz5idXR0b246Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MH0ucGx5cl9fY29udHJvbHMgLnBseXJfX3ZvbHVtZXttYXJnaW4tbGVmdDo1cHh9LnBseXJfX2NvbnRyb2xzIFtkYXRhLXBseXI9cGF1c2Vde21hcmdpbi1sZWZ0OjB9LnBseXJfX2NvbnRyb2xzIGJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazstbXMtZmxleC1uZWdhdGl2ZTowO2ZsZXgtc2hyaW5rOjA7b3ZlcmZsb3c6dmlzaWJsZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzo3cHg7Ym9yZGVyOjA7YmFja2dyb3VuZDowIDA7Ym9yZGVyLXJhZGl1czozcHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcyBlYXNlLGNvbG9yIC4zcyBlYXNlLG9wYWNpdHkgLjNzIGVhc2U7Y29sb3I6aW5oZXJpdH0ucGx5cl9fY29udHJvbHMgYnV0dG9uIHN2Z3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2Rpc3BsYXk6YmxvY2s7ZmlsbDpjdXJyZW50Q29sb3J9LnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpmb2N1c3tvdXRsaW5lOjB9LnBseXJfX2NvbnRyb2xzIC5pY29uLS1jYXB0aW9ucy1vbiwucGx5cl9fY29udHJvbHMgLmljb24tLWV4aXQtZnVsbHNjcmVlbiwucGx5cl9fY29udHJvbHMgLmljb24tLW11dGVke2Rpc3BsYXk6bm9uZX1AbWVkaWEgKG1pbi13aWR0aDo0ODBweCl7LnBseXJfX2NvbnRyb2xzIC5wbHlyX19wcm9ncmVzcywucGx5cl9fY29udHJvbHMgLnBseXJfX3RpbWUsLnBseXJfX2NvbnRyb2xzPmJ1dHRvbnttYXJnaW4tbGVmdDoxMHB4fX0ucGx5ci0taGlkZS1jb250cm9scyAucGx5cl9fY29udHJvbHN7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9LnBseXItLXZpZGVvIC5wbHlyX19jb250cm9sc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt6LWluZGV4OjI7cGFkZGluZzo1MHB4IDEwcHggMTBweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDApLHJnYmEoMCwwLDAsLjUpKTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmluaGVyaXQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6aW5oZXJpdDtjb2xvcjojZmZmO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZX0ucGx5ci0tdmlkZW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbi50YWItZm9jdXM6Zm9jdXMsLnBseXItLXZpZGVvIC5wbHlyX19jb250cm9scyBidXR0b246aG92ZXJ7YmFja2dyb3VuZDojMzQ5OGRiO2NvbG9yOiNmZmZ9LnBseXItLWF1ZGlvIC5wbHlyX19jb250cm9sc3twYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czppbmhlcml0O2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkYmUzZTg7Y29sb3I6IzU2NUQ2NH0ucGx5ci0tYXVkaW8gLnBseXJfX2NvbnRyb2xzIGJ1dHRvbi50YWItZm9jdXM6Zm9jdXMsLnBseXItLWF1ZGlvIC5wbHlyX19jb250cm9scyBidXR0b246aG92ZXIsLnBseXJfX3BsYXktbGFyZ2V7YmFja2dyb3VuZDojMzQ5OGRiO2NvbG9yOiNmZmZ9LnBseXJfX3BsYXktbGFyZ2V7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTtwYWRkaW5nOjEwcHg7Ym9yZGVyOjRweCBzb2xpZCBjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czoxMDAlO2JveC1zaGFkb3c6MCAxcHggMXB4IHJnYmEoMCwwLDAsLjE1KTt0cmFuc2l0aW9uOmFsbCAuM3MgZWFzZX0ucGx5cl9fcGxheS1sYXJnZSBzdmd7cG9zaXRpb246cmVsYXRpdmU7bGVmdDoycHg7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtkaXNwbGF5OmJsb2NrO2ZpbGw6Y3VycmVudENvbG9yfS5wbHlyX19wbGF5LWxhcmdlOmZvY3Vze291dGxpbmU6cmdiYSgyNTUsMjU1LDI1NSwuNSkgZG90dGVkIDFweH0ucGx5ciAucGx5cl9fcGxheS1sYXJnZXtkaXNwbGF5OmlubGluZS1ibG9ja30ucGx5ci0tYXVkaW8gLnBseXJfX3BsYXktbGFyZ2UsLnBseXItLXBsYXlpbmcgLnBseXJfX2NvbnRyb2xzIFtkYXRhLXBseXI9cGxheV0sLnBseXJfX2NvbnRyb2xzIFtkYXRhLXBseXI9cGF1c2Vde2Rpc3BsYXk6bm9uZX0ucGx5ci0tcGxheWluZyAucGx5cl9fcGxheS1sYXJnZXtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW59LnBseXItLXBsYXlpbmcgLnBseXJfX2NvbnRyb2xzIFtkYXRhLXBseXI9cGF1c2Vde2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5wbHlyLS1jYXB0aW9ucy1hY3RpdmUgLnBseXJfX2NvbnRyb2xzIC5pY29uLS1jYXB0aW9ucy1vbiwucGx5ci0tZnVsbHNjcmVlbi1hY3RpdmUgLmljb24tLWV4aXQtZnVsbHNjcmVlbiwucGx5ci0tbXV0ZWQgLnBseXJfX2NvbnRyb2xzIC5pY29uLS1tdXRlZHtkaXNwbGF5OmJsb2NrfS5wbHlyIFtkYXRhLXBseXI9Y2FwdGlvbnNdLC5wbHlyIFtkYXRhLXBseXI9ZnVsbHNjcmVlbl0sLnBseXItLWNhcHRpb25zLWFjdGl2ZSAucGx5cl9fY29udHJvbHMgLmljb24tLWNhcHRpb25zLW9uK3N2ZywucGx5ci0tZnVsbHNjcmVlbi1hY3RpdmUgLmljb24tLWV4aXQtZnVsbHNjcmVlbitzdmcsLnBseXItLW11dGVkIC5wbHlyX19jb250cm9scyAuaWNvbi0tbXV0ZWQrc3Zne2Rpc3BsYXk6bm9uZX0ucGx5ci0tY2FwdGlvbnMtZW5hYmxlZCBbZGF0YS1wbHlyPWNhcHRpb25zXSwucGx5ci0tZnVsbHNjcmVlbi1lbmFibGVkIFtkYXRhLXBseXI9ZnVsbHNjcmVlbl17ZGlzcGxheTppbmxpbmUtYmxvY2t9LnBseXJfX3Rvb2x0aXB7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoyO2JvdHRvbToxMDAlO21hcmdpbi1ib3R0b206MTBweDtwYWRkaW5nOjVweCA3LjVweDtvcGFjaXR5OjA7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC43KTtib3JkZXItcmFkaXVzOjNweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuMzt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsMTBweCkgc2NhbGUoLjgpO3RyYW5zZm9ybS1vcmlnaW46NTAlIDEwMCU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIC4xcyBlYXNlLG9wYWNpdHkgLjJzIC4xcyBlYXNlfS5wbHlyX190b29sdGlwOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDowO2hlaWdodDowO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpO2JvdHRvbTotNHB4O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo0cHggc29saWQgcmdiYSgwLDAsMCwuNyk7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O3otaW5kZXg6Mn0ucGx5ciBidXR0b24udGFiLWZvY3VzOmZvY3VzIC5wbHlyX190b29sdGlwLC5wbHlyIGJ1dHRvbjpob3ZlciAucGx5cl9fdG9vbHRpcCwucGx5cl9fdG9vbHRpcC0tdmlzaWJsZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLDApIHNjYWxlKDEpfS5wbHlyIGJ1dHRvbjpob3ZlciAucGx5cl9fdG9vbHRpcHt6LWluZGV4OjN9LnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpmaXJzdC1jaGlsZCAucGx5cl9fdG9vbHRpcHtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwLDEwcHgpIHNjYWxlKC44KTt0cmFuc2Zvcm0tb3JpZ2luOjAgMTAwJX0ucGx5cl9fY29udHJvbHMgYnV0dG9uOmZpcnN0LWNoaWxkIC5wbHlyX190b29sdGlwOjpiZWZvcmV7bGVmdDoxNnB4fS5wbHlyX19jb250cm9scyBidXR0b246bGFzdC1jaGlsZCAucGx5cl9fdG9vbHRpcHtyaWdodDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwxMHB4KSBzY2FsZSguOCk7dHJhbnNmb3JtLW9yaWdpbjoxMDAlIDEwMCV9LnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpsYXN0LWNoaWxkIC5wbHlyX190b29sdGlwOjpiZWZvcmV7bGVmdDphdXRvO3JpZ2h0OjE2cHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNTAlKX0ucGx5cl9fY29udHJvbHMgYnV0dG9uOmZpcnN0LWNoaWxkIC5wbHlyX190b29sdGlwLS12aXNpYmxlLC5wbHlyX19jb250cm9scyBidXR0b246Zmlyc3QtY2hpbGQudGFiLWZvY3VzOmZvY3VzIC5wbHlyX190b29sdGlwLC5wbHlyX19jb250cm9scyBidXR0b246Zmlyc3QtY2hpbGQ6aG92ZXIgLnBseXJfX3Rvb2x0aXAsLnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpsYXN0LWNoaWxkIC5wbHlyX190b29sdGlwLS12aXNpYmxlLC5wbHlyX19jb250cm9scyBidXR0b246bGFzdC1jaGlsZC50YWItZm9jdXM6Zm9jdXMgLnBseXJfX3Rvb2x0aXAsLnBseXJfX2NvbnRyb2xzIGJ1dHRvbjpsYXN0LWNoaWxkOmhvdmVyIC5wbHlyX190b29sdGlwe3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKSBzY2FsZSgxKX0ucGx5cl9fcHJvZ3Jlc3N7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpub25lOy1tcy1mbGV4OjE7ZmxleDoxfS5wbHlyX19wcm9ncmVzcyBpbnB1dFt0eXBlPXJhbmdlXXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9LnBseXJfX3Byb2dyZXNzIGlucHV0W3R5cGU9cmFuZ2VdOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3tiYWNrZ3JvdW5kOjAgMH0ucGx5cl9fcHJvZ3Jlc3MgaW5wdXRbdHlwZT1yYW5nZV06Oi1tb3otcmFuZ2UtdHJhY2t7YmFja2dyb3VuZDowIDB9LnBseXJfX3Byb2dyZXNzIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC11cHBlcntiYWNrZ3JvdW5kOjAgMH0ucGx5cl9fcHJvZ3Jlc3MgLnBseXJfX3Rvb2x0aXB7bGVmdDowfS5wbHlyIC5wbHlyX19wcm9ncmVzc3tkaXNwbGF5OmlubGluZS1ibG9ja30ucGx5cl9fcHJvZ3Jlc3MtLWJ1ZmZlciwucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZCwucGx5cl9fdm9sdW1lLS1kaXNwbGF5e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6NTAlO3dpZHRoOjEwMCU7aGVpZ2h0OjhweDttYXJnaW46LTRweCAwIDA7cGFkZGluZzowO3ZlcnRpY2FsLWFsaWduOnRvcDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czoxMDBweH0ucGx5cl9fcHJvZ3Jlc3MtLWJ1ZmZlcjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIsLnBseXJfX3Byb2dyZXNzLS1wbGF5ZWQ6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyLC5wbHlyX192b2x1bWUtLWRpc3BsYXk6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQ6MCAwfS5wbHlyX19wcm9ncmVzcy0tYnVmZmVyOjotd2Via2l0LXByb2dyZXNzLXZhbHVlLC5wbHlyX19wcm9ncmVzcy0tcGxheWVkOjotd2Via2l0LXByb2dyZXNzLXZhbHVlLC5wbHlyX192b2x1bWUtLWRpc3BsYXk6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czoxMDBweDttaW4td2lkdGg6OHB4fS5wbHlyX19wcm9ncmVzcy0tYnVmZmVyOjotbW96LXByb2dyZXNzLWJhciwucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZDo6LW1vei1wcm9ncmVzcy1iYXIsLnBseXJfX3ZvbHVtZS0tZGlzcGxheTo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZDpjdXJyZW50Q29sb3I7Ym9yZGVyLXJhZGl1czoxMDBweDttaW4td2lkdGg6OHB4fS5wbHlyX19wcm9ncmVzcy0tYnVmZmVyOjotbXMtZmlsbCwucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZDo6LW1zLWZpbGwsLnBseXJfX3ZvbHVtZS0tZGlzcGxheTo6LW1zLWZpbGx7Ym9yZGVyLXJhZGl1czoxMDBweH0ucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZCwucGx5cl9fdm9sdW1lLS1kaXNwbGF5e3otaW5kZXg6MTtjb2xvcjojMzQ5OGRiO2JhY2tncm91bmQ6MCAwO3RyYW5zaXRpb246bm9uZX0ucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZDo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSwucGx5cl9fdm9sdW1lLS1kaXNwbGF5Ojotd2Via2l0LXByb2dyZXNzLXZhbHVle21pbi13aWR0aDo4cHg7bWF4LXdpZHRoOjk5JTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7dHJhbnNpdGlvbjpub25lfS5wbHlyX19wcm9ncmVzcy0tcGxheWVkOjotbW96LXByb2dyZXNzLWJhciwucGx5cl9fdm9sdW1lLS1kaXNwbGF5OjotbW96LXByb2dyZXNzLWJhcnttaW4td2lkdGg6OHB4O21heC13aWR0aDo5OSU7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO3RyYW5zaXRpb246bm9uZX0ucGx5cl9fcHJvZ3Jlc3MtLXBsYXllZDo6LW1zLWZpbGwsLnBseXJfX3ZvbHVtZS0tZGlzcGxheTo6LW1zLWZpbGx7ZGlzcGxheTpub25lfS5wbHlyX19wcm9ncmVzcy0tYnVmZmVyOjotd2Via2l0LXByb2dyZXNzLXZhbHVle3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2V9LnBseXJfX3Byb2dyZXNzLS1idWZmZXI6Oi1tb3otcHJvZ3Jlc3MtYmFye3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2V9LnBseXJfX3Byb2dyZXNzLS1idWZmZXI6Oi1tcy1maWxse3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2V9LnBseXItLXZpZGVvIC5wbHlyX19wcm9ncmVzcy0tYnVmZmVyLC5wbHlyLS12aWRlbyAucGx5cl9fdm9sdW1lLS1kaXNwbGF5e2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMjUpfS5wbHlyLS12aWRlbyAucGx5cl9fcHJvZ3Jlc3MtLWJ1ZmZlcntjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4yNSl9LnBseXItLWF1ZGlvIC5wbHlyX19wcm9ncmVzcy0tYnVmZmVyLC5wbHlyLS1hdWRpbyAucGx5cl9fdm9sdW1lLS1kaXNwbGF5e2JhY2tncm91bmQ6cmdiYSgxOTgsMjE0LDIxOSwuNjYpfS5wbHlyLS1hdWRpbyAucGx5cl9fcHJvZ3Jlc3MtLWJ1ZmZlcntjb2xvcjpyZ2JhKDE5OCwyMTQsMjE5LC42Nil9LnBseXItLWxvYWRpbmcgLnBseXJfX3Byb2dyZXNzLS1idWZmZXJ7YW5pbWF0aW9uOnBseXItcHJvZ3Jlc3MgMXMgbGluZWFyIGluZmluaXRlO2JhY2tncm91bmQtc2l6ZToyNXB4IDI1cHg7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoLTQ1ZGVnLHJnYmEoMCwwLDAsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDAsMCwwLC4xNSkgNTAlLHJnYmEoMCwwLDAsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtjb2xvcjp0cmFuc3BhcmVudH0ucGx5ci0tdmlkZW8ucGx5ci0tbG9hZGluZyAucGx5cl9fcHJvZ3Jlc3MtLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI1KX0ucGx5ci0tYXVkaW8ucGx5ci0tbG9hZGluZyAucGx5cl9fcHJvZ3Jlc3MtLWJ1ZmZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMTk4LDIxNCwyMTksLjY2KX0ucGx5cl9fdGltZXtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Zm9udC1zaXplOjE0cHh9LnBseXJfX3RpbWUrLnBseXJfX3RpbWV7ZGlzcGxheTpub25lfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsucGx5cl9fdGltZSsucGx5cl9fdGltZXtkaXNwbGF5OmlubGluZS1ibG9ja319LnBseXJfX3RpbWUrLnBseXJfX3RpbWU6OmJlZm9yZXtjb250ZW50OidcXDIwNDQnO21hcmdpbi1yaWdodDoxMHB4fS5wbHlyX192b2x1bWV7ZGlzcGxheTpub25lfS5wbHlyIC5wbHlyX192b2x1bWV7LW1zLWZsZXg6MTtmbGV4OjE7cG9zaXRpb246cmVsYXRpdmV9LnBseXIgLnBseXJfX3ZvbHVtZSBpbnB1dFt0eXBlPXJhbmdlXXtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjJ9QG1lZGlhIChtaW4td2lkdGg6NDgwcHgpey5wbHlyIC5wbHlyX192b2x1bWV7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6NjBweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5wbHlyIC5wbHlyX192b2x1bWV7bWF4LXdpZHRoOjEwMHB4fX0ucGx5ci0taXMtaW9zIC5wbHlyX192b2x1bWUsLnBseXItLWlzLWlvcyBbZGF0YS1wbHlyPW11dGVde2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnBseXItLWZ1bGxzY3JlZW4tYWN0aXZle3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7ei1pbmRleDoxMDAwMDAwMDtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudH0ucGx5ci0tZnVsbHNjcmVlbi1hY3RpdmUgdmlkZW97aGVpZ2h0OjEwMCV9LnBseXItLWZ1bGxzY3JlZW4tYWN0aXZlIC5wbHlyX192aWRlby13cmFwcGVye2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LnBseXItLWZ1bGxzY3JlZW4tYWN0aXZlIC5wbHlyX192aWRlby1lbWJlZHtvdmVyZmxvdzp2aXNpYmxlfS5wbHlyLS1mdWxsc2NyZWVuLWFjdGl2ZSAucGx5cl9fY29udHJvbHN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjB9LnBseXItLWZ1bGxzY3JlZW4tYWN0aXZlLnBseXItLXZpbWVvIC5wbHlyX192aWRlby13cmFwcGVye2hlaWdodDowO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9XG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy93ZWJwYWNrL34vcGx5ci9kaXN0L3BseXIuY3NzXG4gKiovIiwiQGltcG9ydCAnY29yZS92YXJpYWJsZXMvYnJlYWtwb2ludHMuanNvbic7XG5AaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9jb2xvcnMuanNvbic7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuXG5AaW1wb3J0ICdjb3JlL3N0eWxlL21peGluJztcblxuLmMxMi1hY2NvdW50LWNhcmQge1xuICBtYXJnaW4tdG9wOiBiYXNlbGluZSg1KTtcbiAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoNSk7XG4gIEBpbmNsdWRlIHNwYW4oMTIpO1xuICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgQGluY2x1ZGUgc3Bhbig2KTtcbiAgICBAaW5jbHVkZSBwdXNoKDQpO1xuICB9XG4gICZfX2FjY291bnQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IGJhc2VsaW5lKDQpO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBzcGFuKDMpO1xuICAgICAgd2lkdGg6IDEwOHB4O1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBiYXNlbGluZSgxLjUpO1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cyggYmFzZWxpbmUoLjMpICk7XG4gICAgfVxuICAgICZuYW1lLFxuICAgICZoYW5kbGUsXG4gICAgJmRlc2NyaXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIGRhcmstZ3JheSk7XG4gICAgICBtYXJnaW4tbGVmdDogMTI2cHg7XG4gICAgfVxuICAgIGEge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIGJsYWNrKTtcbiAgICB9XG4gICAgJm5hbWUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoNC82KTtcbiAgICB9XG4gICAgJmhhbmRsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBiYXNlbGluZSgxKTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2s6Ly8vY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9ibG9nLXR3aXR0ZXItcHJvamVjdC9ibG9nLXR3aXR0ZXItamNyLW1vZHVsZXMvYmxvZy10d2l0dGVyLXZpZXcvc3JjL3dlYnBhY2svY29udGVudC9qY3Jfcm9vdC9hcHBzL2NvcmUtdHdpdHRlci9jb21wb25lbnRzL2NvbnRlbnQvYzEyLWFjY291bnQtY2FyZC93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9tb3Rpb24uanNvbic7XG5AaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9jb2xvcnMuanNvbic7XG5cbkBtaXhpbiBwcmludCgkZGVjbGFyYXRpb25zKSB7XG4gIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRkZWNsYXJhdGlvbnMge1xuICAgICN7JHByb3BlcnR5fTogJHZhbHVlXG4gIH1cbn1cblxuJHRyYW5zaXRpb25UaW1pbmc6IG1hcC1nZXQoJHRyYW5zaXRpb25zLCBob3Zlci10aW1pbmcpO1xuJHRyYW5zaXRpb25FYXNpbmc6IG1hcC1nZXQoJHRyYW5zaXRpb25zLCBob3Zlci1lYXNpbmcpO1xuXG4kY29sb3JDYXRlZ29yaWVzOiAoXG4gIGV4dHJhLWxpZ2h0LFxuICBsaWdodCxcbiAgZGFyayxcbiAgZXh0cmEtZGFya1xuKTtcblxuJHByb3BlcnRpZXM6IChcbiAgY29sb3I6IGNvbG9yLFxuICBiZy1jb2xvcjogYmFja2dyb3VuZC1jb2xvcixcbiAgZmlsbC1jb2xvcjogZmlsbCxcbiAgYm9yZGVyLWNvbG9yOiBib3JkZXItY29sb3Jcbik7XG5cbiRpbnRlcmFjdGlvbjogKFxuICBob3ZlcjogKFxuICAgIGV4dHJhLWxpZ2h0OiBsaWdodCxcbiAgICBsaWdodDogZGFyayxcbiAgICBkYXJrOiBleHRyYS1kYXJrLFxuICAgIGV4dHJhLWRhcms6IGRhcmtcbiAgKSxcbiAgYWN0aXZlOiAoXG4gICAgZXh0cmEtbGlnaHQ6IGxpZ2h0LFxuICAgIGxpZ2h0OiBkYXJrLFxuICAgIGRhcms6IGV4dHJhLWRhcmssXG4gICAgZXh0cmEtZGFyazogZGFya1xuICApXG4pO1xuXG4kbmV1dHJhbENvbG9ySW50ZXJhY3Rpb246IChcbiAgaG92ZXI6IChcbiAgICBibGFjazogKFxuICAgICAgb3BhY2l0eTogMC42XG4gICAgKSxcbiAgICBkYXJrLWdyYXk6IChcbiAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBibGFjaylcbiAgICApLFxuICAgIGxpZ2h0LWdyYXk6IChcbiAgICAgIG9wYWNpdHk6IDAuNlxuICAgICksXG4gICAgZXh0cmEtbGlnaHQtZ3JheTogKFxuICAgICAgb3BhY2l0eTogMC42XG4gICAgKSxcbiAgICBleHRyYS1leHRyYS1saWdodC1ncmF5OiAoXG4gICAgICBvcGFjaXR5OiAwLjZcbiAgICApLFxuICAgIHdoaXRlOiAoXG4gICAgICBvcGFjaXR5OiAwLjZcbiAgICApXG4gICksXG4gIGFjdGl2ZTogKFxuICAgIGJsYWNrOiAoXG4gICAgICBvcGFjaXR5OiAwLjZcbiAgICApLFxuICAgIGRhcmstZ3JheTogKFxuICAgICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIGJsYWNrKVxuICAgICksXG4gICAgbGlnaHQtZ3JheTogKFxuICAgICAgb3BhY2l0eTogMC42XG4gICAgKSxcbiAgICBleHRyYS1saWdodC1ncmF5OiAoXG4gICAgICBvcGFjaXR5OiAwLjZcbiAgICApLFxuICAgIGV4dHJhLWV4dHJhLWxpZ2h0LWdyYXk6IChcbiAgICAgIG9wYWNpdHk6IDAuNlxuICAgICksXG4gICAgd2hpdGU6IChcbiAgICAgIG9wYWNpdHk6IDAuNlxuICAgIClcbiAgKVxuKTtcblxuQGVhY2ggJGNvbG9yS2V5LCAkY29sb3IgaW4gbWFwLWdldCgkY29sb3JzLCBuZXV0cmFsKSB7XG4gIEBlYWNoICRwcm9wS2V5LCAkcHJvcCBpbiAkcHJvcGVydGllcyB7XG4gICAgJGhvdmVySW50ZXJhY3RpdmVQcm9wczogbWFwLWdldChtYXAtZ2V0KCRuZXV0cmFsQ29sb3JJbnRlcmFjdGlvbiwgaG92ZXIpLCAkY29sb3JLZXkpO1xuICAgICRob3ZlckludGVyYWN0aXZlUHJvcE5hbWU6IG50aChtYXAta2V5cygkaG92ZXJJbnRlcmFjdGl2ZVByb3BzKSwgMSk7XG4gICAgJGFjdGl2ZUludGVyYWN0aXZlUHJvcHM6IG1hcC1nZXQobWFwLWdldCgkbmV1dHJhbENvbG9ySW50ZXJhY3Rpb24sIGFjdGl2ZSksICRjb2xvcktleSk7XG5cbiAgICAuI3skcHJvcEtleX0tLW5ldXRyYWwtI3skY29sb3JLZXl9LS1oYXMtaG92ZXIge1xuICAgICAgI3skcHJvcH06ICRjb2xvcjtcbiAgICAgIHRyYW5zaXRpb246ICRob3ZlckludGVyYWN0aXZlUHJvcE5hbWUgJHRyYW5zaXRpb25UaW1pbmcgJHRyYW5zaXRpb25FYXNpbmc7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBwcmludCgkaG92ZXJJbnRlcmFjdGl2ZVByb3BzKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgICAgJjphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBwcmludCgkYWN0aXZlSW50ZXJhY3RpdmVQcm9wcyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLypcbiAgQ29sb3IgSG92ZXIgVXRpbGl0eSBDbGFzc2VzOlxuICBDcmVhdGVzIGEgY2xhc3MgZm9yIGVhY2ggY2F0ZWdvcnkgYW5kIGNvbG9yIGNvbWJpbmF0aW9uIGJhc2VkIG9uIHRoZSBpbnRlcmFjdGlvblxuICBsb2dpYyBvZiB0aGUgc3lzdGVtIChob3ZlciBnb2VzIHRvIG9uZSBzaGFkZSBkYXJrZXIsIGFjdGl2ZSBhbmQgaG92ZXIgYXJlIHRoZSBzYW1lKS5cblxuICAuYmctY29sb3ItLWRhcmstYmx1ZS0taG92ZXIge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb25UaW1pbmcgJHRyYW5zaXRpb25FYXNpbmc7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1RkQxO1xuICAgIH1cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1RkQxO1xuICAgIH1cbiAgfVxuXG5cbiAgUHJvcGVydGllczogY29sb3IsIGJhY2tncm91bmQtY29sb3IgKGJnLWNvbG9yKSwgZmlsbCAoZmlsbC1jb2xvciksIGJvcmRlci1jb2xvclxuICBDYXRlZ29yaWVzOiBleHRyYS1kYXJrLCBkYXJrLCBsaWdodCwgZXh0cmEtbGlnaHQsIG5ldXRyYWxcbiAgQ29sb3JzOiBvcmFuZ2UsIHllbGxvdywgZ3JlZW4sIGJsdWUsIHB1cnBsZSwgcGlua1xuXG4gIC57cHJvcGVydHl9LS17Y2F0ZWdvcnl9LXtjb2xvcn0tLWhvdmVyIHtcbiAgICB0cmFuc2l0aW9uOiB7cHJvcGVydHl9ICR0cmFuc2l0aW9uVGltaW5nICR0cmFuc2l0aW9uRWFzaW5nO1xuICAgICY6aG92ZXIge1xuICAgICAge3Byb3BlcnR5fToge2hvdmVyQ29sb3J9O1xuICAgIH1cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB7cHJvcGVydHl9OiB7YWN0aXZlQ29sb3J9O1xuICAgIH1cbiAgfVxuXG4gIE5vdGU6IHRoZSBiYWNrZ3JvdW5kLWNvbG9yIHByb3BlcnR5IHVzZXMgYmctY29sb3IgaW4gdGhlIGNsYXNzbmFtZS5cbiAgQWxsIG90aGVycyB1c2UgdGhlIHNhbWUgY2xhc3MgbmFtZSBhcyB0aGUgQ1NTIHByb3BlcnR5IHRoZXkgc2V0LlxuXG4qL1xuXG5AZWFjaCAkY2F0ZWdvcnlLZXkgaW4gJGNvbG9yQ2F0ZWdvcmllcyB7XG4gICRjYXRlZ29yeTogbWFwLWdldCgkY29sb3JzLCAkY2F0ZWdvcnlLZXkpO1xuICBAZWFjaCAkY29sb3JLZXksICRjb2xvciBpbiAkY2F0ZWdvcnkge1xuICAgIEBlYWNoICRwcm9wS2V5LCAkcHJvcCBpbiAkcHJvcGVydGllcyB7XG4gICAgICAuI3skcHJvcEtleX0tLSN7JGNhdGVnb3J5S2V5fS0jeyRjb2xvcktleX0tLWhvdmVyIHtcbiAgICAgICAgdHJhbnNpdGlvbjogI3skcHJvcH0gJHRyYW5zaXRpb25UaW1pbmcgJHRyYW5zaXRpb25FYXNpbmc7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICRob3ZlckNhdGVnb3J5OiBtYXAtZ2V0KG1hcC1nZXQoJGludGVyYWN0aW9uLCBob3ZlciksICRjYXRlZ29yeUtleSk7XG4gICAgICAgICAgI3skcHJvcH06IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAkaG92ZXJDYXRlZ29yeSksICRjb2xvcktleSk7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAkYWN0aXZlQ2F0ZWdvcnk6IG1hcC1nZXQobWFwLWdldCgkaW50ZXJhY3Rpb24sIGFjdGl2ZSksICRjYXRlZ29yeUtleSk7XG4gICAgICAgICAgI3skcHJvcH06IG1hcC1nZXQobWFwLWdldCgkY29sb3JzLCAkYWN0aXZlQ2F0ZWdvcnkpLCAkY29sb3JLZXkpO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG5cbi8qXG4gIFRoZW1lIENvbG9yIFV0aWxpdHkgQ2xhc3NlczpcbiAgQ3JlYXRlcyBhIGNsYXNzIGZvciBlYWNoIGNhdGVnb3J5IGFuZCBjb2xvciBjb21iaW5hdGlvbi5cblxuICAudGhlbWUtLWJsdWUgLnRoZW1lLWJnLWNvbG9yLS1kYXJrLS1ob3ZlciB7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1RkQxO1xuICAgIH1cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1RkQxO1xuICAgIH1cbiAgfVxufVxuXG4gIFByb3BlcnRpZXM6IGNvbG9yLCBiYWNrZ3JvdW5kLWNvbG9yIChiZy1jb2xvciksIChmaWxsKSBmaWxsLWNvbG9yLCBib3JkZXItY29sb3JcbiAgQ2F0ZWdvcmllczogZXh0cmEtZGFyaywgZGFyaywgbGlnaHQsIGV4dHJhLWxpZ2h0LCBuZXV0cmFsXG4gIENvbG9yczogb3JhbmdlLCB5ZWxsb3csIGdyZWVuLCBibHVlLCBwdXJwbGUsIHBpbmtcblxuICAudGhlbWUtLXtjb2xvcn0gLnRoZW1lLXtwcm9wZXJ0eX0tLXtjYXRlZ29yeX0tLWhvdmVyIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHtwcm9wZXJ0eX06IHtob3ZlckNvbG9yfVxuICAgIH1cbiAgICAmOmFjdGl2ZSB7XG4gICAgICB7cHJvcGVydHl9OiB7YWN0aXZlQ29sb3J9XG4gICAgfVxuICB9XG5cbiAgTm90ZTogdGhlIGJhY2tncm91bmQtY29sb3IgcHJvcGVydHkgdXNlcyBiZy1jb2xvciBpbiB0aGUgY2xhc3NuYW1lLlxuICBBbGwgb3RoZXJzIHVzZSB0aGUgc2FtZSBjbGFzcyBuYW1lIGFzIHRoZSBDU1MgcHJvcGVydHkgdGhleSBzZXQuXG5cbiovXG5cbkBlYWNoICRjYXRlZ29yeUtleSBpbiAkY29sb3JDYXRlZ29yaWVzIHtcbiAgJGNhdGVnb3J5OiBtYXAtZ2V0KCRjb2xvcnMsICRjYXRlZ29yeUtleSk7XG4gIEBlYWNoICRjb2xvcktleSwgJGNvbG9yIGluICRjYXRlZ29yeSB7XG4gICAgQGVhY2ggJHByb3BLZXksICRwcm9wIGluICRwcm9wZXJ0aWVzIHtcbiAgICAgIC50aGVtZS0tI3skY29sb3JLZXl9IC50aGVtZS0jeyRwcm9wS2V5fS0tI3skY2F0ZWdvcnlLZXl9LS1ob3ZlciB7XG4gICAgICAgIHRyYW5zaXRpb246ICN7JHByb3B9ICR0cmFuc2l0aW9uVGltaW5nICR0cmFuc2l0aW9uRWFzaW5nO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAkaG92ZXJDYXRlZ29yeTogbWFwLWdldChtYXAtZ2V0KCRpbnRlcmFjdGlvbiwgaG92ZXIpLCAkY2F0ZWdvcnlLZXkpO1xuICAgICAgICAgICN7JHByb3B9OiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJGhvdmVyQ2F0ZWdvcnkpLCAkY29sb3JLZXkpO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgJGFjdGl2ZUNhdGVnb3J5OiBtYXAtZ2V0KG1hcC1nZXQoJGludGVyYWN0aW9uLCBhY3RpdmUpLCAkY2F0ZWdvcnlLZXkpO1xuICAgICAgICAgICN7JHByb3B9OiBtYXAtZ2V0KG1hcC1nZXQoJGNvbG9ycywgJGFjdGl2ZUNhdGVnb3J5KSwgJGNvbG9yS2V5KTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay93ZWJwYWNrL2NvcmUvc3R5bGUvdXRpbGl0eS9faG92ZXIuc2Nzc1xuICoqLyIsIiRjb2xvcnM6IChleHRyYS1kYXJrOiAob3JhbmdlOiAjRDgyRTE4LHllbGxvdzogI0Y5OEUwMCxncmVlbjogIzAwODk1MSxibHVlOiAjMDA1RkQxLHB1cnBsZTogIzRGMDI5OSxwaW5rOiAjQTAxNzQ0KSxkYXJrOiAob3JhbmdlOiAjRjQ1RDIyLHllbGxvdzogI0ZGQUQxRixncmVlbjogIzFGQjY1MCxibHVlOiAjMURBMUYyLHB1cnBsZTogIzc5NEJDNCxwaW5rOiAjRTAyNDVFKSxsaWdodDogKG9yYW5nZTogI0ZGOEQ1Nyx5ZWxsb3c6ICNGRkQwM0YsZ3JlZW46ICM2OEUwOTAsYmx1ZTogIzcxQzlGOCxwdXJwbGU6ICNBMzdDRUQscGluazogI0Y2ODA5QSksZXh0cmEtbGlnaHQ6IChvcmFuZ2U6ICNGRkJFNzgseWVsbG93OiAjRkZFNzZFLGdyZWVuOiAjQTVGMkFBLGJsdWU6ICM5N0UzRkYscHVycGxlOiAjQzdCNEZBLHBpbms6ICNGRkI4QzIpLG5ldXRyYWw6IChibGFjazogIzE0MTcxQSxkYXJrLWdyYXk6ICM2NTc3ODYsbGlnaHQtZ3JheTogI0FBQjhDMixleHRyYS1saWdodC1ncmF5OiAjQ0NENkRELGV4dHJhLWV4dHJhLWxpZ2h0LWdyYXk6ICNGNUY4RkEsd2hpdGU6ICNGRkZGRkYpKTtcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvcmUvdmFyaWFibGVzL2NvbG9ycy5qc29uXG4gKiovIiwiQGltcG9ydCAnY29yZS9zdHlsZS9ncmlkJztcbkBpbXBvcnQgJ2NvcmUvc3R5bGUvbWl4aW4nO1xuQGltcG9ydCAnY29yZS92YXJpYWJsZXMvbW90aW9uLmpzb24nO1xuQGltcG9ydCAnY29yZS9zdHlsZS91dGlsaXR5L2hvdmVyJztcblxuJHRyYW5zaXRpb25UaW1pbmc6IG1hcC1nZXQoJHRyYW5zaXRpb25zLCBob3Zlci10aW1pbmcpO1xuJHRyYW5zaXRpb25FYXNpbmc6IG1hcC1nZXQoJHRyYW5zaXRpb25zLCBob3Zlci1lYXNpbmcpO1xuXG4uYzE0LW1lZGlhLWRvd25sb2FkIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gICZfX2NvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoIGJhc2VsaW5lKC4yNSkgKTtcbiAgICBAaW5jbHVkZSBzcGFuKDEyKTtcbiAgICBtaW4taGVpZ2h0OiBiYXNlbGluZSg2KTtcbiAgICBtYXJnaW4tYm90dG9tOiBiYXNlbGluZSg1KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogYmFzZWxpbmUoMik7XG4gICAgcGFkZGluZy10b3A6IGJhc2VsaW5lKDEpO1xuICAgIHBhZGRpbmctbGVmdDogYmFzZWxpbmUoMik7XG4gICAgcGFkZGluZy1yaWdodDogYmFzZWxpbmUoMik7XG4gICAgJi0tZmlsZW5hbWUge1xuICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoMSk7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIHdoaXRlKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAmLS1kZXNjcmlwdGlvbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBiYXNlbGluZSgyKTtcbiAgICAgIG1pbi1oZWlnaHQ6IGJhc2VsaW5lKDIpO1xuICAgIH1cbiAgICAmLS10eXBlIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4oMTIpO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiBiYXNlbGluZSgyKTtcbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYmFzZWxpbmUoMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcihuZXV0cmFsLCB3aGl0ZSk7XG4gICAgICBwYWRkaW5nLXRvcDogYmFzZWxpbmUoLjUpO1xuICAgICAgcGFkZGluZy1ib3R0b206IGJhc2VsaW5lKC41KTtcbiAgICAgIHBhZGRpbmctbGVmdDogYmFzZWxpbmUoMS4yNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBiYXNlbGluZSgxLjI1KTtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoIGJhc2VsaW5lKC41KSApO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb25UaW1pbmcgJHRyYW5zaXRpb25FYXNpbmcsIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb25UaW1pbmcgJHRyYW5zaXRpb25FYXNpbmc7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjphY3RpdmUsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCB3aGl0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5ldXRyYWwge1xuICAgICYuYzE0LW1lZGlhLWRvd25sb2FkX19jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKG5ldXRyYWwsIGV4dHJhLWV4dHJhLWxpZ2h0LWdyYXkpO1xuICAgICAgLmMxNC1tZWRpYS1kb3dubG9hZF9fY29udGVudC0tdHlwZSxcbiAgICAgIC5jMTQtbWVkaWEtZG93bmxvYWRfX2NvbnRlbnQtLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgZXh0cmEtbGlnaHQtZ3JheSk7XG4gICAgICB9XG4gICAgICAuYzE0LW1lZGlhLWRvd25sb2FkX19jb250ZW50LS1maWxlbmFtZSBhIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIGJsYWNrKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy9kYXJrIHRoZW1lIGNvbG9yc1xuJGNhdGVnb3J5OiBtYXAtZ2V0KCRjb2xvcnMsIGRhcmspO1xuQGVhY2ggJGNvbG9yS2V5LCAkY29sb3IgaW4gJGNhdGVnb3J5IHtcbiAgLnRoZW1lLS0jeyRjb2xvcktleX0ge1xuICAgIC5jMTQtbWVkaWEtZG93bmxvYWRfX2NvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI3skY29sb3J9O1xuICAgICAgYnV0dG9uIHtcbiAgICAgICAgIGNvbG9yOiAjeyRjb2xvcn07XG4gICAgIH1cbiAgICB9XG4gICAgLm5ldXRyYWwge1xuICAgICAgJi5jMTQtbWVkaWEtZG93bmxvYWRfX2NvbnRlbnQge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICN7JGNvbG9yfTtcbiAgICAgICAgICBjb2xvcjogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vL2xpZ2h0IHRoZW1lIGNvbG9yc1xuJGNhdGVnb3J5OiBtYXAtZ2V0KCRjb2xvcnMsIGV4dHJhLWxpZ2h0KTtcbkBlYWNoICRjb2xvcktleSwgJGNvbG9yIGluICRjYXRlZ29yeSB7XG4gIC50aGVtZS0tI3skY29sb3JLZXl9IHtcbiAgICAuYzE0LW1lZGlhLWRvd25sb2FkX19jb250ZW50IHtcbiAgICAgIC5jMTQtbWVkaWEtZG93bmxvYWRfX2NvbnRlbnQtLXR5cGUsXG4gICAgICAuYzE0LW1lZGlhLWRvd25sb2FkX19jb250ZW50LS1kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAjeyRjb2xvcn07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrOi8vL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvYmxvZy10d2l0dGVyLXByb2plY3QvYmxvZy10d2l0dGVyLWpjci1tb2R1bGVzL2Jsb2ctdHdpdHRlci12aWV3L3NyYy93ZWJwYWNrL2NvbnRlbnQvamNyX3Jvb3QvYXBwcy9jb3JlLXR3aXR0ZXIvY29tcG9uZW50cy9jb250ZW50L2MxNC1tZWRpYS1kb3dubG9hZC93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iLCJAaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9icmVha3BvaW50cy5qc29uJztcbkBpbXBvcnQgJ2NvcmUvdmFyaWFibGVzL3R5cG9ncmFwaHkuanNvbic7XG5AaW1wb3J0ICdjb3JlL3N0eWxlL2dyaWQnO1xuQGltcG9ydCAnY29yZS9zdHlsZS9taXhpbic7XG5AaW1wb3J0ICdjb3JlL3ZhcmlhYmxlcy9tb3Rpb24uanNvbic7XG5cbiR0cmFuc2l0aW9uVGltaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItdGltaW5nKTtcbiR0cmFuc2l0aW9uRWFzaW5nOiBtYXAtZ2V0KCR0cmFuc2l0aW9ucywgaG92ZXItZWFzaW5nKTtcblxuLmMxOC1wYWdlLXNoYXJlIHtcbiAgLnBvc3RfX2tleS1saW5lIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3IobmV1dHJhbCwgbGlnaHQtZ3JheSk7XG4gIH1cbiAgLnBvc3Qge1xuICAgIHBhZGRpbmc6IGJhc2VsaW5lKDQpIDA7XG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KG1hcC1nZXQoJGJyZWFrcG9pbnRzLCBmdWxsKSkge1xuICAgICAgQGluY2x1ZGUgc3Bhbig2KTtcbiAgICAgIEBpbmNsdWRlIHB1c2goNCk7XG4gICAgfVxuICAgICZfX3NoYXJlLS10aXRsZSB7XG4gICAgICBAaW5jbHVkZSB0eXBlU3R5bGVzKG1hcC1nZXQobWFwLWdldCgkdHlwb2dyYXBoeSwgZGVmYXVsdCksIGJvbGQtMjQpKTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBiYXNlbGluZSgyKTtcbiAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBibGFjayk7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBAaW5jbHVkZSB0eXBlU3R5bGVzKG1hcC1nZXQobWFwLWdldCgkdHlwb2dyYXBoeSwgZGVmYXVsdCksIGJvbGQtMTQpKTtcbiAgICAgICAgY29sb3I6IGNvbG9yKG5ldXRyYWwsIGRhcmstZ3JheSk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBiYXNlbGluZSgyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgJl9fc2hhcmUtLWljb25zIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBiYXNlbGluZSgzLjY2KTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgPiBzdmcge1xuICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICBmaWxsOiBjb2xvcihuZXV0cmFsLCBsaWdodC1ncmF5KTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBmaWxsICR0cmFuc2l0aW9uVGltaW5nICR0cmFuc2l0aW9uRWFzaW5nO1xuICAgICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgID4gc3ZnIHtcbiAgICAgICAgICAgIGZpbGw6IGNvbG9yKG5ldXRyYWwsIGRhcmstZ3JheSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChtYXAtZ2V0KCRicmVha3BvaW50cywgZnVsbCkpIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBiYXNlbGluZSg1LzYpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgJl9fc2hhcmUtLWNvcHktbGluayB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgICZfX3NoYXJlLS1jb3B5LWxpbmstcG9wdXAge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IGJhc2VsaW5lKDEvNik7XG4gICAgICBoZWlnaHQ6IGJhc2VsaW5lKDMpO1xuICAgICAgcGFkZGluZzogMCBiYXNlbGluZSgxKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiBjb2xvcihuZXV0cmFsLCBkYXJrLWdyYXkpO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IGNvbG9yKG5ldXRyYWwsIGV4dHJhLWxpZ2h0LWdyYXkpO1xuICAgICAgJi5zaG93IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIH1cbiAgICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtMTVweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCAwIGNvbG9yKG5ldXRyYWwsIGV4dHJhLWxpZ2h0LWdyYXkpKTtcbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgZmlsbDogY29sb3IobmV1dHJhbCwgd2hpdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICZfX3NoYXJlLS1jb3B5LWxpbmstcG9wdXAtY29udGVudCB7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgfVxufVxuXG4uYXJjaGl2ZS1wYWdlIHtcbiAgLmMxOC1wYWdlLXNoYXJlIHtcbiAgICAucG9zdCB7XG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQobWFwLWdldCgkYnJlYWtwb2ludHMsIGZ1bGwpKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4oNik7XG4gICAgICAgIEBpbmNsdWRlIHB1c2goMyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjazovLy9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2Jsb2ctdHdpdHRlci1wcm9qZWN0L2Jsb2ctdHdpdHRlci1qY3ItbW9kdWxlcy9ibG9nLXR3aXR0ZXItdmlldy9zcmMvd2VicGFjay9jb250ZW50L2pjcl9yb290L2FwcHMvY29yZS10d2l0dGVyL2NvbXBvbmVudHMvY29udGVudC9jMTgtcGFnZS1zaGFyZS93ZWJwYWNrL2luZGV4LnNjc3NcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9*/