@charset "UTF-8";
@import url(foundation/resources/intranet-components/styles/vendor/fontello/css/fontello.css);
@import url(foundation/resources/intranet-components/styles/vendor/fontello/css/fontello-ie7.css);
@import url(foundation/resources/intranet-components/styles/vendor/lightbox.css);
@import url(foundation/resources/intranet-components/styles/vendor/fancybox/source/jquery.fancybox.css);
@import url(foundation/resources/intranet-components/styles/vendor/Swiper@2.7.6/dist/idangerous.swiper.css);
/*! Avalanche | MIT License | @colourgarden */
/*------------------------------------*    SETTINGS
\*------------------------------------*/
/*------------------------------------*    LOGIC aka THE MAGIC
\*------------------------------------*/
/*------------------------------------*    GRID LAYOUT
\*------------------------------------*/
.grid {
  display: block;
  list-style: none;
  padding: 0;
  margin: 0;
  margin-left: -20px;
  font-size: 0rem; }

.grid__cell {
  box-sizing: border-box;
  display: inline-block;
  width: 100%;
  padding: 0;
  padding-left: 20px;
  margin: 0;
  vertical-align: top;
  font-size: 1rem; }

.grid--center {
  text-align: center; }
  .grid--center > .grid__cell {
    text-align: left; }

.grid__cell--center {
  display: block;
  margin: 0 auto; }

.grid--right {
  text-align: right; }
  .grid--right > .grid__cell {
    text-align: left; }

.grid--middle > .grid__cell {
  vertical-align: middle; }

.grid--flush {
  margin-left: 0; }
  .grid--flush > .grid__cell {
    padding-left: 0; }

/*------------------------------------*    GRID WIDTHS
\*------------------------------------*/
.\31\/2, .\32\/4, .\33\/6, .\36\/12 {
  width: 50%; }

.\31\/3, .\32\/6, .\34\/12 {
  width: 33.33333%; }

.\32\/3, .\34\/6, .\38\/12 {
  width: 66.66667%; }

.\31\/4, .\33\/12 {
  width: 25%; }

.\33\/4, .\39\/12 {
  width: 75%; }

.\31\/5 {
  width: 20%; }

.\32\/5 {
  width: 40%; }

.\33\/5 {
  width: 60%; }

.\34\/5 {
  width: 80%; }

.\31\/6, .\32\/12 {
  width: 16.66667%; }

.\35\/6, .\31\30\/12 {
  width: 83.33333%; }

.\31\/12 {
  width: 8.33333%; }

.\35\/12 {
  width: 41.66667%; }

.\37\/12 {
  width: 58.33333%; }

.\31\31\/12 {
  width: 91.66667%; }

@media screen and (max-width: 479px) {
  .\31\/2--mobile-down, .\32\/4--mobile-down, .\33\/6--mobile-down, .\36\/12--mobile-down {
    width: 50%; }
  .\31\/3--mobile-down, .\32\/6--mobile-down, .\34\/12--mobile-down {
    width: 33.33333%; }
  .\32\/3--mobile-down, .\34\/6--mobile-down, .\38\/12--mobile-down {
    width: 66.66667%; }
  .\31\/4--mobile-down, .\33\/12--mobile-down {
    width: 25%; }
  .\33\/4--mobile-down, .\39\/12--mobile-down {
    width: 75%; }
  .\31\/5--mobile-down {
    width: 20%; }
  .\32\/5--mobile-down {
    width: 40%; }
  .\33\/5--mobile-down {
    width: 60%; }
  .\34\/5--mobile-down {
    width: 80%; }
  .\31\/6--mobile-down, .\32\/12--mobile-down {
    width: 16.66667%; }
  .\35\/6--mobile-down, .\31\30\/12--mobile-down {
    width: 83.33333%; }
  .\31\/12--mobile-down {
    width: 8.33333%; }
  .\35\/12--mobile-down {
    width: 41.66667%; }
  .\37\/12--mobile-down {
    width: 58.33333%; }
  .\31\31\/12--mobile-down {
    width: 91.66667%; } }

@media screen and (min-width: 480px) {
  .\31\/2--mobile-up, .\32\/4--mobile-up, .\33\/6--mobile-up, .\36\/12--mobile-up {
    width: 50%; }
  .\31\/3--mobile-up, .\32\/6--mobile-up, .\34\/12--mobile-up {
    width: 33.33333%; }
  .\32\/3--mobile-up, .\34\/6--mobile-up, .\38\/12--mobile-up {
    width: 66.66667%; }
  .\31\/4--mobile-up, .\33\/12--mobile-up {
    width: 25%; }
  .\33\/4--mobile-up, .\39\/12--mobile-up {
    width: 75%; }
  .\31\/5--mobile-up {
    width: 20%; }
  .\32\/5--mobile-up {
    width: 40%; }
  .\33\/5--mobile-up {
    width: 60%; }
  .\34\/5--mobile-up {
    width: 80%; }
  .\31\/6--mobile-up, .\32\/12--mobile-up {
    width: 16.66667%; }
  .\35\/6--mobile-up, .\31\30\/12--mobile-up {
    width: 83.33333%; }
  .\31\/12--mobile-up {
    width: 8.33333%; }
  .\35\/12--mobile-up {
    width: 41.66667%; }
  .\37\/12--mobile-up {
    width: 58.33333%; }
  .\31\31\/12--mobile-up {
    width: 91.66667%; } }

@media screen and (max-width: 767px) {
  .\31\/2--tablet-down, .\32\/4--tablet-down, .\33\/6--tablet-down, .\36\/12--tablet-down {
    width: 50%; }
  .\31\/3--tablet-down, .\32\/6--tablet-down, .\34\/12--tablet-down {
    width: 33.33333%; }
  .\32\/3--tablet-down, .\34\/6--tablet-down, .\38\/12--tablet-down {
    width: 66.66667%; }
  .\31\/4--tablet-down, .\33\/12--tablet-down {
    width: 25%; }
  .\33\/4--tablet-down, .\39\/12--tablet-down {
    width: 75%; }
  .\31\/5--tablet-down {
    width: 20%; }
  .\32\/5--tablet-down {
    width: 40%; }
  .\33\/5--tablet-down {
    width: 60%; }
  .\34\/5--tablet-down {
    width: 80%; }
  .\31\/6--tablet-down, .\32\/12--tablet-down {
    width: 16.66667%; }
  .\35\/6--tablet-down, .\31\30\/12--tablet-down {
    width: 83.33333%; }
  .\31\/12--tablet-down {
    width: 8.33333%; }
  .\35\/12--tablet-down {
    width: 41.66667%; }
  .\37\/12--tablet-down {
    width: 58.33333%; }
  .\31\31\/12--tablet-down {
    width: 91.66667%; } }

@media screen and (min-width: 768px) {
  .\31\/2--tablet-up, .\32\/4--tablet-up, .\33\/6--tablet-up, .\36\/12--tablet-up {
    width: 50%; }
  .\31\/3--tablet-up, .\32\/6--tablet-up, .\34\/12--tablet-up {
    width: 33.33333%; }
  .\32\/3--tablet-up, .\34\/6--tablet-up, .\38\/12--tablet-up {
    width: 66.66667%; }
  .\31\/4--tablet-up, .\33\/12--tablet-up {
    width: 25%; }
  .\33\/4--tablet-up, .\39\/12--tablet-up {
    width: 75%; }
  .\31\/5--tablet-up {
    width: 20%; }
  .\32\/5--tablet-up {
    width: 40%; }
  .\33\/5--tablet-up {
    width: 60%; }
  .\34\/5--tablet-up {
    width: 80%; }
  .\31\/6--tablet-up, .\32\/12--tablet-up {
    width: 16.66667%; }
  .\35\/6--tablet-up, .\31\30\/12--tablet-up {
    width: 83.33333%; }
  .\31\/12--tablet-up {
    width: 8.33333%; }
  .\35\/12--tablet-up {
    width: 41.66667%; }
  .\37\/12--tablet-up {
    width: 58.33333%; }
  .\31\31\/12--tablet-up {
    width: 91.66667%; } }

@media screen and (min-width: 980px) {
  .\31\/2--sm-desk-up, .\32\/4--sm-desk-up, .\33\/6--sm-desk-up, .\36\/12--sm-desk-up {
    width: 50%; }
  .\31\/3--sm-desk-up, .\32\/6--sm-desk-up, .\34\/12--sm-desk-up {
    width: 33.33333%; }
  .\32\/3--sm-desk-up, .\34\/6--sm-desk-up, .\38\/12--sm-desk-up {
    width: 66.66667%; }
  .\31\/4--sm-desk-up, .\33\/12--sm-desk-up {
    width: 25%; }
  .\33\/4--sm-desk-up, .\39\/12--sm-desk-up {
    width: 75%; }
  .\31\/5--sm-desk-up {
    width: 20%; }
  .\32\/5--sm-desk-up {
    width: 40%; }
  .\33\/5--sm-desk-up {
    width: 60%; }
  .\34\/5--sm-desk-up {
    width: 80%; }
  .\31\/6--sm-desk-up, .\32\/12--sm-desk-up {
    width: 16.66667%; }
  .\35\/6--sm-desk-up, .\31\30\/12--sm-desk-up {
    width: 83.33333%; }
  .\31\/12--sm-desk-up {
    width: 8.33333%; }
  .\35\/12--sm-desk-up {
    width: 41.66667%; }
  .\37\/12--sm-desk-up {
    width: 58.33333%; }
  .\31\31\/12--sm-desk-up {
    width: 91.66667%; } }

@media screen and (max-width: 979px) {
  .\31\/2--sm-desk-down, .\32\/4--sm-desk-down, .\33\/6--sm-desk-down, .\36\/12--sm-desk-down {
    width: 50%; }
  .\31\/3--sm-desk-down, .\32\/6--sm-desk-down, .\34\/12--sm-desk-down {
    width: 33.33333%; }
  .\32\/3--sm-desk-down, .\34\/6--sm-desk-down, .\38\/12--sm-desk-down {
    width: 66.66667%; }
  .\31\/4--sm-desk-down, .\33\/12--sm-desk-down {
    width: 25%; }
  .\33\/4--sm-desk-down, .\39\/12--sm-desk-down {
    width: 75%; }
  .\31\/5--sm-desk-down {
    width: 20%; }
  .\32\/5--sm-desk-down {
    width: 40%; }
  .\33\/5--sm-desk-down {
    width: 60%; }
  .\34\/5--sm-desk-down {
    width: 80%; }
  .\31\/6--sm-desk-down, .\32\/12--sm-desk-down {
    width: 16.66667%; }
  .\35\/6--sm-desk-down, .\31\30\/12--sm-desk-down {
    width: 83.33333%; }
  .\31\/12--sm-desk-down {
    width: 8.33333%; }
  .\35\/12--sm-desk-down {
    width: 41.66667%; }
  .\37\/12--sm-desk-down {
    width: 58.33333%; }
  .\31\31\/12--sm-desk-down {
    width: 91.66667%; } }

@media screen and (min-width: 1300px) {
  .\31\/2--lg-desk-up, .\32\/4--lg-desk-up, .\33\/6--lg-desk-up, .\36\/12--lg-desk-up {
    width: 50%; }
  .\31\/3--lg-desk-up, .\32\/6--lg-desk-up, .\34\/12--lg-desk-up {
    width: 33.33333%; }
  .\32\/3--lg-desk-up, .\34\/6--lg-desk-up, .\38\/12--lg-desk-up {
    width: 66.66667%; }
  .\31\/4--lg-desk-up, .\33\/12--lg-desk-up {
    width: 25%; }
  .\33\/4--lg-desk-up, .\39\/12--lg-desk-up {
    width: 75%; }
  .\31\/5--lg-desk-up {
    width: 20%; }
  .\32\/5--lg-desk-up {
    width: 40%; }
  .\33\/5--lg-desk-up {
    width: 60%; }
  .\34\/5--lg-desk-up {
    width: 80%; }
  .\31\/6--lg-desk-up, .\32\/12--lg-desk-up {
    width: 16.66667%; }
  .\35\/6--lg-desk-up, .\31\30\/12--lg-desk-up {
    width: 83.33333%; }
  .\31\/12--lg-desk-up {
    width: 8.33333%; }
  .\35\/12--lg-desk-up {
    width: 41.66667%; }
  .\37\/12--lg-desk-up {
    width: 58.33333%; }
  .\31\31\/12--lg-desk-up {
    width: 91.66667%; } }

/* This file is intended for development use only. It is not optimised for production */
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-back-to-top {
  background-color: #fff;
  padding: 8px 10px;
  font-size: 12px;
  position: fixed;
  border: 1px solid #ccc; }
  .usyd-back-to-top i {
    font-size: 1.1em;
    color: #e64626; }
    .usyd-back-to-top i:focus {
      outline: none; }
  .usyd-back-to-top a {
    text-decoration: none; }
    .usyd-back-to-top a span:hover {
      text-decoration: underline; }
    .usyd-back-to-top a:visited {
      color: #195b98; }
  .usyd-back-to-top.usyd-hide {
    display: none; }
  .csstransforms3d .usyd-back-to-top {
    -webkit-transition-property: -webkit-transform;
    -moz-transition-property: -moz-transform;
    -o-transition-property: -o-transform;
    transition-property: transform;
    -webkit-transition-duration: 0.2s;
    -moz-transition-duration: 0.2s;
    -o-transition-duration: 0.2s;
    transition-duration: 0.2s;
    -webkit-transition-timing-function: ease;
    -moz-transition-timing-function: ease;
    -o-transition-timing-function: ease;
    transition-timing-function: ease; }
    .csstransforms3d .usyd-back-to-top.usyd-hide {
      display: block;
      -webkit-transform:  rotateZ(90deg) translateX(5px);
      -moz-transform:  rotateZ(90deg) translateX(5px);
      -ms-transform:  rotateZ(90deg) translateX(5px);
      -o-transform:  rotateZ(90deg) translateX(5px);
      transform:  rotateZ(90deg) translateX(5px); }

.csstransforms3d .usyd-back-to-top.usyd-hide {
  display: block;
  -webkit-transform: rotate(90deg) translate(100px, 100px);
  -moz-transform: rotate(90deg) translate(100px, 100px);
  -o-transform: rotate(90deg) translate(100px, 100px);
  -ms-transform: rotate(90deg) translate(100px, 100px);
  transform: rotate(90deg) translate(100px, 100px); }

@media (min-width: 768px) {
  .usyd-back-to-top {
    bottom: -1px;
    *border-bottom: 0;
    -webkit-border-radius: 3px 3px 0 0;
    -moz-border-radius: 3px 3px 0 0;
    -ms-border-radius: 3px 3px 0 0;
    -o-border-radius: 3px 3px 0 0;
    border-radius: 3px 3px 0 0; }
    .usyd-back-to-top i {
      margin-right: 5px; } }

@media (max-width: 767px) {
  .usyd-back-to-top {
    bottom: 40px;
    -webkit-border-radius: 3px 0 0 3px;
    -moz-border-radius: 3px 0 0 3px;
    -ms-border-radius: 3px 0 0 3px;
    -o-border-radius: 3px 0 0 3px;
    border-radius: 3px 0 0 3px;
    font-size: 25px;
    margin-right: -1px; }
    .usyd-back-to-top i {
      margin-right: 0px; }
    .usyd-back-to-top span {
      display: none; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 1; }

ol, ul {
  list-style: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

.pull-right {
  float: right; }

.pull-left {
  float: left; }

.hide {
  display: none; }

.show {
  display: block; }

.invisible {
  visibility: hidden; }

html {
  font: normal 62.5% Arial,sans-serif;
  color: black;
  background: #fff;
  font-size: 12px; }

a {
  color: #195b98; }
  a:hover {
    text-decoration: none; }
  a:visited {
    color: #6e219e; }
  a:active {
    color: #2176c3;
    background-color: transparent; }

h1, h2, h3, h4, h5, h6, .usyd-h1, .usyd-h2, .usyd-h3, .usyd-h5, .usyd-h5, .usyd-h6 {
  margin-top: 10px;
  margin-bottom: 10px; }
  h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, .usyd-h1 a, .usyd-h2 a, .usyd-h3 a, .usyd-h5 a, .usyd-h5 a, .usyd-h6 a {
    text-decoration: none; }
    h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, .usyd-h1 a:hover, .usyd-h2 a:hover, .usyd-h3 a:hover, .usyd-h5 a:hover, .usyd-h5 a:hover, .usyd-h6 a:hover {
      text-decoration: underline; }

h1, .usyd-h1 {
  font-size: 22px;
  font-weight: bold; }

h2, .usyd-h2 {
  font-size: 20px;
  font-weight: bold; }

h3, .usyd-h3 {
  font-size: 18px;
  font-weight: bold; }

h4, .usyd-h4 {
  font-size: 16px;
  font-weight: bold; }

h5, .usyd-h5 {
  font-size: 14px;
  font-weight: bold; }

h6, .usyd-h6 {
  font-size: 12px;
  font-weight: bold; }

p {
  line-height: 1.4em;
  margin: 0.8em 0; }

label {
  font-size: 12px; }

strong, b {
  font-weight: bold; }

em, i {
  font-style: italic; }

sup {
  vertical-align: super;
  font-size: smaller; }

sub {
  vertical-align: sub;
  font-size: smaller; }

img {
  background: #f7f7f7; }

img, object, embed {
  max-width: 100%; }

small {
  font-size: smaller; }

hr {
  background: white;
  height: 1px;
  border: none;
  border-top: 1px solid #e6e6e6;
  margin: 20px 60px; }
  hr.usyd-full-width {
    margin: 20px 0; }

dl {
  margin-top: 0.8em; }
  dl dt, dl dd {
    font-size: 12px; }
  dl dt {
    font-weight: bold; }
  dl dd {
    margin-bottom: 0.8em; }

.usyd-ui-more-link {
  border-top: 1px solid #666666;
  text-align: center;
  margin: 17px 0 17px 0;
  height: 0; }
  .usyd-ui-more-link a {
    position: relative;
    top: -9px;
    background: white;
    padding: 0 10px; }

.usyd-ui-spoken, .usyd-js-hide, .usyd-ui-full .usyd-js-hide-full, .usyd-ui-compact .usyd-js-hide-compact {
  position: absolute;
  left: -999em; }

.usyd-ui-hide, .usyd-ui-full .usyd-hide-full, .usyd-ui-compact .usyd-hide-compact {
  position: absolute;
  left: -999em;
  display: none;
  visibility: hidden; }

.usyd-ui-required {
  color: red; }

/*
	Elements with .usyd-js-hide[-*] are to be hidden post-load by their respective scripts.
	If JS is unavailable the .no-js rules will reset these hidden elements.
	Widgets with these classes will have them automatically removed post-load by bootstrap.js
*/
/*
Used by WASM auth manager to approripately show and hide views for authenticated an unauthenticated user.
.usyd-wasm-user-unauthed Should be added when the user is not authenticated. Will hide information for authenticated users.
.usyd-wasm-user-authed Should be added when the user is authenticated. Will hide information for unauthenticated users.
*/
.usyd-wasm-component.usyd-wasm-user-unauthed .usyd-wasm-authed-view {
  display: none !important; }

.usyd-wasm-component.usyd-wasm-user-authed .usyd-wasm-unauthed-view {
  display: none !important; }

.usyd-ui-detabbed {
  outline: none; }

.usyd-alignable {
  position: relative;
  z-index: 0; }

.no-js .usyd-js-only, .no-js .usyd-js-only-compact, .no-js .usyd-js-only-full {
  position: absolute;
  left: -999em;
  display: none;
  visibility: hidden; }

.no-js .usyd-js-hide, .no-js .usyd-ui-full .usyd-js-hide-full, .usyd-ui-full .no-js .usyd-js-hide-full, .no-js .usyd-ui-compact .usyd-js-hide-compact, .usyd-ui-compact .no-js .usyd-js-hide-compact, .no-js .usyd-js-hide-compact, .no-js .usyd-js-hide-full {
  visibility: inherit;
  position: inherit; }

.usyd-sans-margin, .usyd-sans-white-space {
  margin: 0 !important; }

.usyd-sans-padding, .usyd-sans-white-space {
  padding: 0 !important; }

a.skip-main {
  left: -999px;
  position: absolute;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: -999; }
  a.skip-main:focus, a.skip-main:active {
    color: #fff;
    background-color: #363636;
    left: auto;
    top: auto;
    width: auto;
    height: auto;
    overflow: auto;
    border: 0px solid #363636;
    text-align: center;
    z-index: 999;
    margin: 9px 25px 7px 0px;
    font-family: Arial,sans-serif;
    font-size: 12px;
    text-decoration: none; }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-card {
  position: relative;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  border: 1px solid #e6e6e6; }
  .usyd-card:hover, .usyd-card:focus {
    -webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);
    -moz-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);
    border-color: #999999; }
  .usyd-card.usyd-card-alt {
    background: #fafafa; }
  .usyd-card .usyd-card-body {
    padding: 1.5em; }
    .usyd-card .usyd-card-body > p:first-child {
      margin-top: 0; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-social-card-signature {
  font-size: 12px; }

.usyd-social-card-real-name {
  display: block;
  font-weight: bold; }

.usyd-social-card-screen-name {
  color: #666; }

.usyd-social-card-media {
  width: 100%; }

.usyd-social-card {
  position: relative;
  padding-top: 175px; }
  .usyd-social-card .usyd-card-body {
    background: white; }
  .usyd-social-card .usyd-social-card-icon {
    position: absolute;
    top: 115px;
    left: 10px;
    text-align: left;
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
    font-size: 7em; }
  .usyd-social-card.usyd-social-card-facebook {
    background-color: #3b5998; }
    .usyd-social-card.usyd-social-card-facebook .usyd-social-card-icon {
      color: white; }
  .usyd-social-card.usyd-social-card-twitter {
    background-color: #55acee; }
    .usyd-social-card.usyd-social-card-twitter .usyd-social-card-icon {
      color: white; }
  .usyd-social-card.usyd-social-card-yammer {
    background-color: #0072c6; }
    .usyd-social-card.usyd-social-card-yammer .usyd-social-card-icon {
      color: white; }
  .usyd-social-card.usyd-social-card-compact {
    padding-top: 0;
    overflow: hidden;
    background-color: transparent; }
    .usyd-social-card.usyd-social-card-compact .usyd-social-card-icon {
      position: absolute;
      bottom: -15px;
      right: 10px;
      top: auto;
      left: auto;
      text-align: right;
      color: black;
      font-size: 10em;
      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=10);
      opacity: 0.1; }

.usyd-class-codes .usyd-class-codes-loading {
  display: block;
  width: 100px;
  margin-top: 1.5em; }
  .usyd-class-codes .usyd-class-codes-loading span {
    margin-left: 25px; }

.usyd-class-codes-form {
  margin-top: 20px; }
  .usyd-class-codes-form .usyd-ui-form-line {
    margin: 1em 0 1em 0; }

.usyd-class-codes-results {
  width: 100%; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.mce-content-body {
  margin: 1em; }

.no-boxsizing .usyd-ui-input-expandable {
  float: left;
  width: 89.5%;
  margin-right: 0.5em; }

.usyd-classifieds-card {
  margin: 0 0 10px 0;
  padding: 10px;
  overflow: hidden; }

@media (min-width: 1300px) {
  .usyd-classifieds-card-description {
    width: 628px; } }

@media (min-width: 980px) and (max-width: 1299px) {
  .usyd-classifieds-card-description {
    width: 448px; } }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-classifieds-card-description {
    width: 291px; } }

@media (min-width: 768px) {
  .usyd-classifieds-card-description {
    float: left; }
    .usyd-classifieds-card-description .usyd-title {
      margin-top: 0; }
  .usyd-classifieds-card-details {
    float: right;
    width: 220px;
    margin-left: 10px; } }

@media (max-width: 767px) {
  .usyd-classifieds-card-details {
    margin-left: 50px; } }

.usyd-classifieds-feed {
  margin-bottom: 28px; }

.usyd-classifieds-mobile-menu {
  display: none; }

.usyd-listing-icon {
  color: #bfbfbf;
  text-align: center;
  display: block; }

.usyd-classifieds-user-actions {
  float: right; }

.usyd-ui-input input {
  min-width: 30em; }

.usyd-menu .badge {
  position: absolute;
  top: auto;
  bottom: auto;
  right: 1em; }

.usyd-row-actions {
  text-align: right; }
  .usyd-row-actions .usyd-action {
    white-space: nowrap;
    margin-left: 1em;
    display: inline-block; }
    .usyd-row-actions .usyd-action .usyd-icon {
      margin-top: -3px;
      margin-right: 0; }

.usyd-classifieds-existing-photos {
  overflow: hidden;
  margin-bottom: 1em; }
  .usyd-classifieds-existing-photos .usyd-classifieds-listing-photo {
    float: left;
    margin-right: 1em;
    height: 250px; }
    .usyd-classifieds-existing-photos .usyd-classifieds-listing-photo img {
      margin: 0 0 0.25em 0;
      max-width: none; }
    .usyd-classifieds-existing-photos .usyd-classifieds-listing-photo .usyd-classifieds-photo-remove {
      display: block;
      font-size: 1.2em; }

.usyd-classifieds-pending-photo-remove {
  font-size: 1.2em; }

.usyd-classifieds-photo-removed:after {
  content: 'Removed';
  display: block;
  font-size: 12px; }

.usyd-classifieds-item-photos {
  overflow: hidden; }
  .usyd-classifieds-item-photos .usyd-classifieds-item-photo {
    float: left;
    margin: 0 1em 1em 0; }
    .usyd-classifieds-item-photos .usyd-classifieds-item-photo img {
      max-width: none; }

.usyd-search-form {
  margin: 0 0 2em;
  padding: 11px 11px 0 11px; }
  .usyd-search-form .usyd-ui-form-line {
    display: table;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 11px; }
  .usyd-search-form .usyd-ui-input {
    display: table-cell;
    padding-right: 10px; }
  .usyd-search-form .usyd-controls {
    display: table-cell;
    width: 7.5em; }

@media (min-width: 768px) {
  .usyd-classifieds-item-actions {
    float: right; } }

@media (max-width: 767px) {
  .usyd-classifieds-mobile-menu {
    display: block;
    margin-bottom: 2em; }
    .usyd-classifieds-mobile-menu .usyd-menu-expander {
      width: 90%;
      margin: 0 auto;
      display: block !important;
      text-align: center;
      margin-bottom: 5px; }
  .usyd-user-listing-table tr {
    margin-bottom: 10px;
    border-top: 2px solid #4d4d4d; }
    .usyd-user-listing-table tr:nth-of-type(odd) {
      background: #f7f7f7; }
  .usyd-user-listing-table td {
    position: relative;
    padding-left: 40%;
    display: block;
    border-bottom: 0px; }
    .usyd-user-listing-table td:before {
      float: left;
      padding-right: 10px;
      white-space: nowrap;
      font-weight: bold;
      text-align: right; }
    .usyd-user-listing-table td:nth-of-type(1):before {
      content: " "; }
    .usyd-user-listing-table td:nth-of-type(2):before {
      content: "Title"; }
    .usyd-user-listing-table td:nth-of-type(3):before {
      content: "Category"; }
    .usyd-user-listing-table td:nth-of-type(4):before {
      content: "Expiry date"; }
  .usyd-user-listing-table thead {
    display: none; }
  .usyd-user-listing-table td:first-child {
    display: none; } }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-body-content {
  min-height: 30px; }

.usyd-content-page .usyd-main {
  border-top: 2px solid #e64626; }

/*
Generic grouping of content in various contexts (content body, asides, etc)

.usyd-ui-emphasis-none - Normal content
.usyd-ui-emphasis-mild - Content to be slightly emphasised
.usyd-ui-emphasis-strong - Content to be strongly emphasised

Styleguide 1.0
*/
.usyd-ui-content-group {
  clear: both;
  margin-bottom: 20px;
  border-top: 2px solid #e64626;
  padding-top: 18px; }
  .usyd-ui-content-group.usyd-ui-sans-border, .usyd-ui-content-group.usyd-ui-emphasis-none {
    border: none; }
  .usyd-ui-content-group img {
    margin: 10px 0; }
    .usyd-ui-content-group img.usyd-ui-align-left {
      margin-right: 10px; }
    .usyd-ui-content-group img.usyd-ui-align-right {
      margin-left: 10px; }
    .usyd-ui-content-group img.usyd-ui-align-center {
      margin: 10px auto;
      display: block; }
    .usyd-ui-content-group img.usyd-ui-sans-white-space {
      margin: 0;
      padding: 0; }
  .usyd-ui-content-group.usyd-ui-emphasis-none {
    background: white; }
  .usyd-ui-content-group.usyd-ui-emphasis-mildest, .usyd-ui-content-group.usyd-ui-emphasis-mild, .usyd-ui-content-group.usyd-ui-emphasis-strong, .usyd-ui-content-group.usyd-ui-emphasis-strongest, .usyd-ui-content-group.usyd-ui-emphasis-none {
    padding: 1em;
    border-top: none; }
    .usyd-ui-content-group.usyd-ui-emphasis-mildest h1, .usyd-ui-content-group.usyd-ui-emphasis-mildest h2, .usyd-ui-content-group.usyd-ui-emphasis-mildest h3, .usyd-ui-content-group.usyd-ui-emphasis-mildest h4, .usyd-ui-content-group.usyd-ui-emphasis-mildest h5, .usyd-ui-content-group.usyd-ui-emphasis-mildest h6, .usyd-ui-content-group.usyd-ui-emphasis-mild h1, .usyd-ui-content-group.usyd-ui-emphasis-mild h2, .usyd-ui-content-group.usyd-ui-emphasis-mild h3, .usyd-ui-content-group.usyd-ui-emphasis-mild h4, .usyd-ui-content-group.usyd-ui-emphasis-mild h5, .usyd-ui-content-group.usyd-ui-emphasis-mild h6, .usyd-ui-content-group.usyd-ui-emphasis-strong h1, .usyd-ui-content-group.usyd-ui-emphasis-strong h2, .usyd-ui-content-group.usyd-ui-emphasis-strong h3, .usyd-ui-content-group.usyd-ui-emphasis-strong h4, .usyd-ui-content-group.usyd-ui-emphasis-strong h5, .usyd-ui-content-group.usyd-ui-emphasis-strong h6, .usyd-ui-content-group.usyd-ui-emphasis-strongest h1, .usyd-ui-content-group.usyd-ui-emphasis-strongest h2, .usyd-ui-content-group.usyd-ui-emphasis-strongest h3, .usyd-ui-content-group.usyd-ui-emphasis-strongest h4, .usyd-ui-content-group.usyd-ui-emphasis-strongest h5, .usyd-ui-content-group.usyd-ui-emphasis-strongest h6, .usyd-ui-content-group.usyd-ui-emphasis-none h1, .usyd-ui-content-group.usyd-ui-emphasis-none h2, .usyd-ui-content-group.usyd-ui-emphasis-none h3, .usyd-ui-content-group.usyd-ui-emphasis-none h4, .usyd-ui-content-group.usyd-ui-emphasis-none h5, .usyd-ui-content-group.usyd-ui-emphasis-none h6 {
      margin-top: 0; }
  .usyd-ui-content-group.usyd-ui-emphasis-strongest a {
    color: white; }
    .usyd-ui-content-group.usyd-ui-emphasis-strongest a:visited, .usyd-ui-content-group.usyd-ui-emphasis-strongest a:hover {
      color: white; }
  .usyd-ui-content-group > h1:first-child, .usyd-ui-content-group > h2:first-child, .usyd-ui-content-group > h3:first-child, .usyd-ui-content-group > h4:first-child, .usyd-ui-content-group > h5:first-child, .usyd-ui-content-group > h6:first-child {
    margin-top: 10px; }

.usyd-ui-table-container {
  overflow: auto; }

.usyd-ui-embedded-map, .usyd-map {
  border: 1px solid #b3b3b3;
  margin: 1em auto 0.5em;
  display: block; }

.usyd-content-divider {
  border-color: black;
  margin-left: 0;
  margin-right: 0; }

.usyd-ui-content-group.usyd-group-system-logins.b-box--default-top:not(.usyd-ui-sans-border), .usyd-ui-content-group.usyd-group-related-links.b-box--default-top:not(.usyd-ui-sans-border) {
  position: relative;
  padding-top: 36px; }
  .usyd-ui-content-group.usyd-group-system-logins.b-box--default-top:not(.usyd-ui-sans-border):before, .usyd-ui-content-group.usyd-group-related-links.b-box--default-top:not(.usyd-ui-sans-border):before {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #fff;
    width: 100%;
    height: 18px;
    content: ""; }

@media (min-width: 768px) {
  .b-insights-portal-page .b-zone--2 .usyd-grid-wrap {
    margin-left: 20px; } }

.b-insights-portal-page .b-zone--3 .usyd-grid-wrap {
  margin-left: 0; }

@media (min-width: 768px) {
  .b-insights-portal-page .b-zone--2 .usyd-small {
    width: 541px; } }

@media (min-width: 980px) {
  .b-insights-portal-page .b-zone--2 .usyd-small {
    width: 340px; } }

@media (min-width: 1300px) {
  .b-insights-portal-page .b-zone--2 .usyd-small {
    width: 430px; } }

@media (min-width: 768px) {
  .b-insights-portal-page .b-zone--2 .usyd-xlarge {
    width: 511px; } }

@media (min-width: 980px) {
  .b-insights-portal-page .b-zone--2 .usyd-xlarge {
    width: 700px; } }

@media (min-width: 1300px) {
  .b-insights-portal-page .b-zone--2 .usyd-xlarge {
    width: 880px; } }

.b-insights-portal-page .b-zone--4 .usyd-xlarge.usyd-group-system-logins.b-box--default-top {
  padding-left: 20px;
  padding-right: 20px; }
  @media (min-width: 480px) {
    .b-insights-portal-page .b-zone--4 .usyd-xlarge.usyd-group-system-logins.b-box--default-top .row {
      margin-left: -20px; } }
  .b-insights-portal-page .b-zone--4 .usyd-xlarge.usyd-group-system-logins.b-box--default-top .usyd-ui-more-link {
    margin-top: 10px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-clipping img {
  width: 100%;
  margin-bottom: 13px;
  display: block;
  max-width: 100%;
  height: auto; }

.usyd-clipping h1, .usyd-clipping h2, .usyd-clipping h3, .usyd-clipping h4, .usyd-clipping h5, .usyd-clipping h6 {
  margin-top: 0;
  margin-bottom: 15px; }

.usyd-clipping.usyd-clipping-hero {
  margin-left: 0;
  position: relative;
  margin-bottom: 40px; }
  @media (max-width: 767px) {
    .usyd-clipping.usyd-clipping-hero {
      margin-bottom: 20px; } }
  .usyd-clipping.usyd-clipping-hero h1, .usyd-clipping.usyd-clipping-hero h2, .usyd-clipping.usyd-clipping-hero h3, .usyd-clipping.usyd-clipping-hero h4, .usyd-clipping.usyd-clipping-hero h5, .usyd-clipping.usyd-clipping-hero h6 {
    margin-bottom: 0; }

@media (min-width: 1300px) {
  .usyd-clipping-heroimg {
    display: block;
    direction: rtl; }
  .usyd-clipping-heroimg img {
    width: auto;
    max-width: none; } }

.usyd-clipping-category {
  color: #e64626;
  font-size: 12px;
  display: inline-block;
  margin: 0 0 6px 0; }

.usyd-clipping-hero p,
.usyd-clipping-desc {
  margin: 0; }

.usyd-clipping-row .usyd-ui-content-group {
  clear: none; }

.usyd-clipping-row .usyd-clipping h1, .usyd-clipping-row .usyd-clipping h2, .usyd-clipping-row .usyd-clipping h3, .usyd-clipping-row .usyd-clipping h4, .usyd-clipping-row .usyd-clipping h5, .usyd-clipping-row .usyd-clipping h6 {
  margin-bottom: 0; }

.usyd-clipping-row .component-reference {
  float: left; }

.usyd-clipping-row .row {
  position: relative; }
  .usyd-clipping-row .row .usyd-carousel-button {
    position: absolute;
    top: 33%;
    height: 65px;
    width: 32px;
    background: #FFF;
    cursor: pointer; }
  .usyd-clipping-row .row .usyd-carousel-prev {
    left: 0;
    -webkit-border-radius: 0 65px 65px 0;
    -moz-border-radius: 0 65px 65px 0;
    -ms-border-radius: 0 65px 65px 0;
    -o-border-radius: 0 65px 65px 0;
    border-radius: 0 65px 65px 0; }
    .usyd-clipping-row .row .usyd-carousel-prev::before {
      content: "";
      font-family: fontello;
      speak: none;
      font-variant: normal;
      text-transform: none;
      font-style: normal !important;
      *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe893;&nbsp;');
      font-size: 19px;
      position: absolute;
      top: 22px;
      left: 2px; }
  .usyd-clipping-row .row .usyd-carousel-next {
    -webkit-border-radius: 65px 0 0 65px;
    -moz-border-radius: 65px 0 0 65px;
    -ms-border-radius: 65px 0 0 65px;
    -o-border-radius: 65px 0 0 65px;
    border-radius: 65px 0 0 65px;
    right: 0; }
    .usyd-clipping-row .row .usyd-carousel-next::before {
      content: "";
      font-family: fontello;
      speak: none;
      font-variant: normal;
      text-transform: none;
      font-style: normal !important;
      *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe894;&nbsp;');
      font-size: 19px;
      position: absolute;
      top: 23px;
      right: 3px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-external-link:after, .usyd-external-link > .ie-after {
  display: inline-block;
  margin-left: 3px;
  text-decoration: none;
  content: "";
  font-family: fontello;
  speak: none;
  font-variant: normal;
  text-transform: none;
  font-style: normal !important;
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe82e;&nbsp;'); }

.usyd-external-link {
  /* ::after polyfill - creates <i class="ie-after"></i> */
  zoom: expressionthis; }

.usyd-download-link:after, .usyd-download-link > .ie-after {
  display: inline-block;
  margin-left: 3px;
  text-decoration: none;
  content: "";
  font-family: fontello;
  speak: none;
  font-variant: normal;
  text-transform: none;
  font-style: normal !important;
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe842;&nbsp;'); }

.usyd-download-link {
  /* ::after polyfill - creates <i class="ie-after"></i> */
  zoom: expressionthis; }

.usyd-email-link:after, .usyd-email-link > .ie-after {
  display: inline-block;
  margin-left: 3px;
  text-decoration: none;
  content: "";
  font-family: fontello;
  speak: none;
  font-variant: normal;
  text-transform: none;
  font-style: normal !important;
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe804;&nbsp;'); }

.usyd-email-link {
  /* ::after polyfill - creates <i class="ie-after"></i> */
  zoom: expressionthis; }

.usyd-section-title {
  text-transform: uppercase;
  font-weight: normal;
  line-height: 125%; }
  .usyd-section-title a {
    color: black;
    text-decoration: none; }
    .usyd-section-title a:hover, .usyd-section-title a:visited {
      color: black;
      text-decoration: none; }

.usyd-section-banner .usyd-section-title {
  float: left;
  margin-top: 1px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-nav-tools {
  margin: 18px 10px 0 0;
  float: left; }
  .usyd-nav-tools > ul > li {
    z-index: 600;
    display: block;
    position: relative;
    float: left;
    margin: 0; }
  .usyd-nav-tools .usyd-nav-button {
    display: block;
    position: relative;
    padding: 5px 7px 5px 5px;
    width: 25px;
    *padding: 5px 5px 8px 5px;
    text-decoration: none;
    z-index: 220;
    *border-style: solid;
    *border-width: 1px 1px 0 1px;
    *border-color: transparent; }
  .usyd-nav-tools > ul > li.usyd-show .usyd-nav-button, .usyd-nav-tools > ul > li:hover .usyd-nav-button {
    background-color: white;
    *border-color: #e6e6e6;
    color: black; }
    .usyd-nav-tools > ul > li.usyd-show .usyd-nav-button + .usyd-dropdown-content, .usyd-nav-tools > ul > li:hover .usyd-nav-button + .usyd-dropdown-content {
      display: block;
      *z-index: 200; }
    .usyd-nav-tools > ul > li.usyd-show .usyd-nav-button:after, .usyd-nav-tools > ul > li:hover .usyd-nav-button:after {
      content: " ";
      display: block;
      height: 5px;
      background-color: white;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 230; }
  .usyd-nav-tools .usyd-dropdown-content {
    display: none;
    -webkit-box-shadow: #4d4d4d 0 0 5px;
    -moz-box-shadow: #4d4d4d 0 0 5px;
    box-shadow: #4d4d4d 0 0 5px;
    position: absolute;
    top: 100%;
    right: 0;
    padding: 5px 0;
    background-color: white;
    color: black;
    min-width: 200px;
    float: left;
    z-index: 210; }
    .usyd-nav-tools .usyd-dropdown-content li {
      margin: 0;
      *zoom: 1; }
      .usyd-nav-tools .usyd-dropdown-content li.usyd-divider {
        margin: 5px 0; }
      .usyd-nav-tools .usyd-dropdown-content li:hover {
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none; }
        .usyd-nav-tools .usyd-dropdown-content li:hover:after {
          content: none;
          display: none; }
    .usyd-nav-tools .usyd-dropdown-content .usyd-ui-active-menu-item a {
      color: white;
      background-color: #195b98; }
      .usyd-nav-tools .usyd-dropdown-content .usyd-ui-active-menu-item a:visited {
        color: white; }
    .usyd-nav-tools .usyd-dropdown-content a {
      text-decoration: none;
      color: #195b98;
      padding: 5px 10px;
      display: block;
      width: auto; }
      .usyd-nav-tools .usyd-dropdown-content a:visited {
        color: #195b98;
        padding: 5px 10px;
        display: block; }
      .usyd-nav-tools .usyd-dropdown-content a:hover {
        color: white;
        background-color: #195b98;
        display: block; }
  .usyd-nav-tools form {
    padding: 5px 10px;
    background-color: transparent; }
  .usyd-nav-tools input {
    width: 100%;
    *width: 166px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }
  .usyd-nav-tools .usyd-dropdown-filter .usyd-nav-button-clear {
    padding: 0 4px;
    *padding: 0 2px 0 4px;
    height: 18px;
    line-height: 18px;
    color: white;
    display: inline-block;
    position: absolute;
    top: 9px;
    *top: 12px;
    right: 14px; }
    .usyd-nav-tools .usyd-dropdown-filter .usyd-nav-button-clear:hover {
      background-color: #e64626; }
  .usyd-nav-tools .usyd-divider {
    display: block;
    height: 1px;
    width: 100%;
    margin: 5px 0;
    overflow: hidden;
    background-color: #e6e6e6;
    font-size: 0;
    line-height: 0; }
    .usyd-nav-tools .usyd-divider:hover {
      background-color: #e6e6e6; }
  .usyd-nav-tools .usyd-text-only, .usyd-nav-tools h2 {
    padding: 5px 10px;
    display: block; }
  .usyd-nav-tools .icon-sort-down {
    position: absolute;
    top: 4px;
    right: 0;
    color: gray;
    display: block; }
  .usyd-nav-tools h2 {
    margin: 0;
    font-size: 12px; }
  .usyd-nav-tools .usyd-intranets-dropdown .icon-ok {
    color: black; }
  .usyd-nav-tools .usyd-intranets-dropdown .icon-home {
    color: black; }
  .usyd-nav-tools .usyd-intranets-dropdown a:hover .icon-ok {
    color: white; }
  .usyd-nav-tools .usyd-intranets-dropdown a:hover .icon-home {
    color: white; }

@media \0screen {
  .usyd-dropdown-content {
    border: 1px solid #e6e6e6; }
  .usyd-dropdown input {
    height: 27px; }
  .usyd-dropdown > ul > li .usyd-nav-button {
    border-style: solid;
    border-width: 1px 1px 0 1px;
    border-color: transparent; }
  .usyd-dropdown > ul > li:hover .usyd-nav-button {
    border-color: #e6e6e6; }
    .usyd-dropdown > ul > li:hover .usyd-nav-button:after {
      bottom: -1px;
      left: 0px;
      right: 0px; } }

@media (max-width: 767px) {
  .usyd-nav-tools {
    margin: 0;
    float: none;
    position: absolute;
    top: 17px;
    right: 10px; }
    .usyd-nav-tools > ul {
      border-radius: 5px;
      border: 1px solid transparent; }
    .usyd-nav-tools > ul > li {
      margin-right: 1px; }
    .usyd-nav-tools .usyd-nav-button {
      background-color: #424242;
      border: 1px solid transparent; }
      .usyd-nav-tools .usyd-nav-button.usyd-nav-search-toggle {
        text-align: center; }
    .usyd-nav-tools .usyd-dropdown-content li {
      background-color: transparent;
      margin-right: 0; }
    .usyd-nav-tools .usyd-dropdown-content .usyd-divider {
      background-color: #e6e6e6; } }

.usyd-ui-loud {
  font-size: 1.4em; }

.usyd-ui-quiet, .usyd-ui-note, .usyd-ui-date {
  color: #757575; }

.usyd-ui-highlight {
  background-color: #fff200;
  font-weight: normal !important; }

.usyd-support-text {
  color: #666666; }
  .usyd-support-text a {
    color: #666666; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-group-related-links {
  background-color: #feefce;
  padding: 10px; }
  .usyd-group-related-links .usyd-ui-more-link a {
    background: #feefce; }
  .usyd-group-related-links .content {
    font-size: 12px; }

.usyd-group-general {
  border-top: 2px #e64626 solid;
  padding-top: 18px; }
  .usyd-group-general .content {
    font-size: 12px; }

.usyd-group-title {
  margin-top: 0; }

.usyd-group-system-logins {
  background: #f1f1f1;
  box-sizing: border-box;
  padding: 15px 10px 10px;
  position: relative; }
  .usyd-group-system-logins .usyd-ui-more-link {
    margin-top: 40px; }
    @media (max-width: 768px) {
      .usyd-group-system-logins .usyd-ui-more-link {
        margin-bottom: -10px; } }
    .usyd-group-system-logins .usyd-ui-more-link a {
      background: #f1f1f1; }
  .usyd-group-system-logins h1, .usyd-group-system-logins h2, .usyd-group-system-logins h3, .usyd-group-system-logins h4, .usyd-group-system-logins h5, .usyd-group-system-logins h6 {
    margin-top: 0; }

@media (max-width: 979px) {
  .usyd-group-system-logins {
    min-height: 0;
    padding: 15px 10px 30px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-feedback {
  border-style: dotted;
  border-color: #e6e6e6;
  border-width: 1px 0 1px 0; }

strong {
  font-weight: bold; }

.usyd-feedback-form {
  margin-bottom: 0; }
  .usyd-feedback-form legend {
    color: #e64626;
    font-size: 16px;
    top: 10px;
    border-bottom: none;
    margin-bottom: 10px;
    line-height: 100%; }

.usyd-feedback-msg {
  float: left;
  width: 100%; }
  .usyd-feedback-msg legend.usyd-ui-message, .usyd-feedback-msg legend.usyd-ui-message-loading, .usyd-feedback-msg legend.usyd-ui-message-success, .usyd-feedback-msg legend.usyd-ui-message-error {
    font-size: 12px;
    color: #000;
    line-height: 24px;
    margin-bottom: 0px; }

.usyd-feedback-question .usyd-feedback-useful-btns {
  float: left; }
  .usyd-feedback-question .usyd-feedback-useful-btns input {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    text-align: center; }
  .usyd-feedback-question .usyd-feedback-useful-btns label {
    position: relative;
    left: 30px;
    z-index: -10;
    width: 0;
    margin-right: 0; }

.usyd-feedback-question {
  padding: 10px 0; }
  .usyd-feedback-question label {
    display: inline-block;
    margin: 7px 10px 5px 0; }
  .usyd-feedback-question .usyd-ui-button {
    background-color: #e64626;
    color: white;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    -ms-border-radius: 2px;
    -o-border-radius: 2px;
    border-radius: 2px;
    font-weight: bold;
    font-size: 1.1em;
    text-transform: uppercase;
    border: none;
    padding: 0 10px;
    margin: 0 2px;
    cursor: pointer;
    vertical-align: middle;
    height: 28px;
    overflow: visible;
    text-decoration: none;
    display: inline-block;
    line-height: 29px;
    /* IE8 */
    *line-height: 28px;
    /* IE7 */
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
    -webkit-appearance: none;
    font-size: 1.15em;
    min-width: 5.5em; }
    .usyd-feedback-question .usyd-ui-button:not([dummy]) {
      line-height: auto;
      /* NOT IE7/IE8 */ }
    .usyd-feedback-question .usyd-ui-button a {
      color: white; }
    .usyd-feedback-question .usyd-ui-button span {
      line-height: 28px;
      vertical-align: top; }
    .usyd-feedback-question .usyd-ui-button:hover {
      background: -owg-linear-gradient(#ea6146, #d03718);
      background: -webkit-linear-gradient(#ea6146, #d03718);
      background: -moz-linear-gradient(#ea6146, #d03718);
      background: -o-linear-gradient(#ea6146, #d03718);
      -pie-background: -pie-linear-gradient(#ea6146, #d03718);
      background: linear-gradient(#ea6146, #d03718);
      background: #e64626\9;
      -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
      -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
      box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
      display: inline-block; }
    .usyd-feedback-question .usyd-ui-button:active {
      -webkit-box-shadow: none;
      -moz-box-shadow: none;
      box-shadow: none;
      display: inline-block; }
    .usyd-feedback-question .usyd-ui-button:visited, .usyd-feedback-question .usyd-ui-button:link {
      color: white; }
    .usyd-feedback-question .usyd-ui-button[disabled] {
      background: white;
      color: #757575;
      -webkit-box-shadow: none;
      -moz-box-shadow: none;
      box-shadow: none;
      text-shadow: none;
      cursor: default;
      border: 1px solid #eee;
      line-height: 28px; }
    .usyd-feedback-question .usyd-ui-button:hover {
      background-color: #e64626;
      color: white; }
      .usyd-feedback-question .usyd-ui-button:hover:hover {
        background: -owg-linear-gradient(#ea6146, #d03718);
        background: -webkit-linear-gradient(#ea6146, #d03718);
        background: -moz-linear-gradient(#ea6146, #d03718);
        background: -o-linear-gradient(#ea6146, #d03718);
        -pie-background: -pie-linear-gradient(#ea6146, #d03718);
        background: linear-gradient(#ea6146, #d03718);
        background: #e64626\9;
        -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
        -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
        box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
        display: inline-block; }
      .usyd-feedback-question .usyd-ui-button:hover:active {
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
        display: inline-block; }
      .usyd-feedback-question .usyd-ui-button:hover:visited, .usyd-feedback-question .usyd-ui-button:hover:link {
        color: white; }
      .usyd-feedback-question .usyd-ui-button:hover[disabled] {
        background: white;
        color: #757575;
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
        text-shadow: none;
        cursor: default;
        border: 1px solid #eee;
        line-height: 28px; }
    .usyd-feedback-question .usyd-ui-button.usyd-ui-selected, .usyd-feedback-question .usyd-ui-button:hover.usyd-ui-selected {
      background-image: url(foundation/resources/intranet-components/assets/img/icons/checkbox-alpha.png);
      background-repeat: no-repeat;
      background-position: 20% center;
      padding-left: 30px; }

.frm-do-not-submit {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: horizontal;
  -moz-box-orient: horizontal;
  -webkit-box-direction: normal;
  -moz-box-direction: normal;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row; }
  .frm-do-not-submit label {
    padding-left: 5px; }

#frm-contact {
  padding-left: 5px; }

.usyd-feedback-detail {
  padding: 10px;
  background: #f7f7f7; }
  .usyd-feedback-detail .usyd-ui-supporting-text {
    margin-bottom: 20px; }
  .usyd-feedback-detail .usyd-ui-form-line {
    width: 90%;
    margin-left: auto;
    margin-right: auto; }
  .usyd-feedback-detail input[type=email], .usyd-feedback-detail input[type=text], .usyd-feedback-detail textarea {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    width: 100%; }

.usyd-feedback-frame {
  position: absolute;
  visibility: hidden;
  width: 1px;
  height: 1px;
  left: -999; }

.usyd-ui-message, .usyd-ui-message-loading, .usyd-ui-message-success, .usyd-ui-message-error {
  display: inline-block;
  margin: 6px 10px 0 0;
  background: transparent no-repeat left center; }

.usyd-ui-message-loading {
  margin-left: 15px !important;
  position: relative; }
  .usyd-ui-message-loading .usyd-ui-spinner {
    top: 7px !important;
    left: -15px !important; }

.usyd-ui-message-success {
  padding-left: 25px;
  background-image: url(foundation/resources/intranet-components/assets/img/icons/check.png); }

.usyd-ui-message-error {
  padding-left: 25px;
  background-image: url(foundation/resources/intranet-components/assets/img/icons/alert.png); }

.usyd-feedback-actions {
  margin-top: 20px;
  text-align: right; }
  .usyd-feedback-actions label {
    display: none; }

@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
  .usyd-feedback-form .usyd-feedback-question .usyd-ui-button.usyd-ui-selected {
    background-image: url(foundation/resources/intranet-components/assets/img/icons/checkbox-alpha@2x.png);
    background-size: 16px 16px; }
  .usyd-feedback .usyd-ui-message-success {
    background-image: url(foundation/resources/intranet-components/assets/img/icons/check@2x.png);
    background-size: 16px 16px; }
  .usyd-feedback .usyd-ui-message-error {
    background-image: url(foundation/resources/intranet-components/assets/img/icons/alert@2x.png);
    background-size: 16px 16px; } }

.b-insights-portal-page + .usyd-feedback-question {
  text-align: center; }

.b-insights-portal-page + .usyd-feedback-question .usyd-ui-message, .b-insights-portal-page + .usyd-feedback-question .usyd-ui-message-loading, .b-insights-portal-page + .usyd-feedback-question .usyd-ui-message-success, .b-insights-portal-page + .usyd-feedback-question .usyd-ui-message-error {
  box-sizing: border-box;
  padding-left: 20px;
  padding-right: 20px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-figure.usyd-figure-with-border {
  border: 1px solid #e6e6e6; }

.usyd-figure.usyd-align-left {
  float: left;
  margin-right: 20px;
  margin-bottom: 20px; }

.usyd-figure.usyd-align-right {
  float: right;
  margin-left: 20px;
  margin-bottom: 20px; }

.usyd-figure.usyd-align-centre {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px; }

.usyd-figure-image {
  width: 100%;
  vertical-align: middle; }

.usyd-figure-small {
  width: 33%; }

.usyd-figure-medium {
  width: 50%; }

.usyd-figure-large {
  width: 100%; }

.usyd-figure-caption {
  padding-bottom: 10px;
  color: #333333;
  font-size: 12px;
  font-style: italic; }
  .usyd-figure.usyd-figure-with-border .usyd-figure-caption {
    padding-left: 10px;
    padding-right: 10px; }

@media (max-width: 767px) {
  .usyd-figure.usyd-align-left, .usyd-figure.usyd-align-right {
    float: none;
    margin-left: 0;
    margin-right: 0; }
  .usyd-figure.usyd-figure-small, .usyd-figure.usyd-figure-medium {
    width: auto; } }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-footer {
  *zoom: 1;
  margin-top: 3.2em;
  font-size: 12px;
  margin-bottom: 2em;
  border-top: 1px solid black;
  padding-top: 1em; }
  .usyd-ui-footer:before, .usyd-ui-footer:after {
    display: table;
    content: ""; }
  .usyd-ui-footer:after {
    clear: both; }
  .usyd-ui-footer .usyd-ui-footer-nav {
    text-align: right; }
  .usyd-ui-footer p {
    margin: 0; }

.usyd-ui-copyright {
  float: left; }

.usyd-ui-footer-nav {
  float: right; }

@media (max-width: 767px) {
  .usyd-ui-footer .usyd-ui-copyright, .usyd-ui-footer .usyd-ui-footer-nav {
    margin-left: 20px;
    margin-right: 20px;
    float: none;
    display: block; }
  .usyd-ui-footer .usyd-ui-footer-nav {
    text-align: left;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dotted #e6e6e6; }
  .usyd-ui-footer .usyd-ui-footer-nav > a {
    white-space: nowrap; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-footnotes {
  position: absolute;
  left: -999em;
  display: none;
  visibility: hidden; }

.usyd-ui-footnote {
  position: absolute;
  left: -999em;
  display: none;
  visibility: hidden; }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
form {
  margin: 0 0 18px; }

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

legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 27px;
  font-size: 19.5px;
  line-height: 36px;
  color: #333;
  border: 0; }
  legend small {
    font-size: 13.5px;
    color: #999; }

label, input, button, select, textarea {
  font-size: 13px;
  font-weight: normal;
  line-height: 18px; }

input, button, select, textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }

label {
  display: block;
  margin-bottom: 5px;
  color: #333; }

input, textarea, select, .uneditable-input {
  display: inline-block;
  width: 210px;
  height: 18px;
  padding: 4px;
  margin-bottom: 9px;
  font-size: 13px;
  line-height: 18px;
  color: #555;
  background-color: #fff;
  border: 1px solid #ccc;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px; }

.uneditable-textarea {
  width: auto;
  height: auto; }

label input, label textarea, label select {
  display: block; }

input[type="image"], input[type="checkbox"], input[type="radio"] {
  width: auto;
  height: auto;
  padding: 0;
  margin: 3px 0;
  *margin-top: 0;
  /* IE7 */
  line-height: normal;
  cursor: pointer;
  background-color: transparent;
  border: 0 \9;
  /* IE9 and down */
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0; }

input[type="image"] {
  border: 0; }

input[type="file"] {
  width: auto;
  padding: initial;
  line-height: initial;
  background-color: #fff;
  background-color: initial;
  border: initial;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }

input[type="button"], input[type="reset"], input[type="submit"] {
  width: auto;
  height: auto; }

select, input[type="file"] {
  height: 28px;
  /* In IE7, the height of the select element cannot be changed by height, only font-size */
  *margin-top: 4px;
  /* For IE7, add top margin to align select with labels */
  line-height: 28px; }

input[type="file"] {
  line-height: 18px \9; }

select {
  width: 220px;
  background-color: #fff; }

select[multiple], select[size] {
  height: auto; }

input[type="image"] {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }

textarea {
  height: auto; }

input[type="hidden"] {
  display: none; }

.radio, .checkbox {
  min-height: 18px;
  padding-left: 18px; }

.radio input[type="radio"], .checkbox input[type="checkbox"] {
  float: left;
  margin-left: -18px; }

.controls > .radio:first-child, .controls > .checkbox:first-child {
  padding-top: 5px; }

.radio.inline, .checkbox.inline {
  display: inline-block;
  padding-top: 5px;
  margin-bottom: 0;
  vertical-align: middle; }

.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline {
  margin-left: 10px; }

input, textarea {
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border linear .2s, box-shadow linear .2s;
  -moz-transition: border linear .2s, box-shadow linear .2s;
  -ms-transition: border linear .2s, box-shadow linear .2s;
  -o-transition: border linear .2s, box-shadow linear .2s;
  transition: border linear .2s, box-shadow linear .2s; }

input:focus, textarea:focus {
  border-color: rgba(82, 168, 236, 0.8);
  outline: 0;
  outline: thin dotted \9;
  /* IE6-9 */
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); }

input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus, select:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none; }

.input-mini {
  width: 60px; }

.input-small {
  width: 90px; }

.input-medium {
  width: 150px; }

.input-large {
  width: 210px; }

.input-xlarge {
  width: 270px; }

.input-xxlarge {
  width: 530px; }

input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input[class*="span"],
.row-fluid input[class*="span"], .row-fluid select[class*="span"], .row-fluid textarea[class*="span"], .row-fluid .uneditable-input[class*="span"] {
  float: none;
  margin-left: 0; }

input, textarea, .uneditable-input {
  margin-left: 0; }

input.span1, textarea.span1, .uneditable-input.span1 {
  width: 50px; }

input.span2, textarea.span2, .uneditable-input.span2 {
  width: 130px; }

input.span3, textarea.span3, .uneditable-input.span3 {
  width: 210px; }

input.span4, textarea.span4, .uneditable-input.span4 {
  width: 290px; }

input.span5, textarea.span5, .uneditable-input.span5 {
  width: 370px; }

input.span6, textarea.span6, .uneditable-input.span6 {
  width: 450px; }

input.span7, textarea.span7, .uneditable-input.span7 {
  width: 530px; }

input.span8, textarea.span8, .uneditable-input.span8 {
  width: 610px; }

input.span9, textarea.span9, .uneditable-input.span9 {
  width: 690px; }

input.span10, textarea.span10, .uneditable-input.span10 {
  width: 770px; }

input.span11, textarea.span11, .uneditable-input.span11 {
  width: 850px; }

input.span12, textarea.span12, .uneditable-input.span12 {
  width: 930px; }

input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] {
  cursor: not-allowed;
  background-color: #eee;
  border-color: #ddd; }

input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"][readonly], input[type="checkbox"][readonly] {
  background-color: transparent; }

.control-group.warning > label, .control-group.warning .help-block, .control-group.warning .help-inline {
  color: #bc5200; }

.control-group.warning input, .control-group.warning select, .control-group.warning textarea {
  color: #bc5200;
  border-color: #bc5200; }
  .control-group.warning input:focus, .control-group.warning select:focus, .control-group.warning textarea:focus {
    border-color: #893c00;
    -webkit-box-shadow: 0 0 6px #ff8323;
    -moz-box-shadow: 0 0 6px #ff8323;
    box-shadow: 0 0 6px #ff8323; }

.control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on {
  color: #bc5200;
  background-color: #fffbf2;
  border-color: #bc5200; }

.control-group.error > label, .control-group.error .help-block, .control-group.error .help-inline {
  color: #ce1126; }

.control-group.error input, .control-group.error select, .control-group.error textarea {
  color: #ce1126;
  border-color: #ce1126; }
  .control-group.error input:focus, .control-group.error select:focus, .control-group.error textarea:focus {
    border-color: #9f0d1d;
    -webkit-box-shadow: 0 0 6px #f15466;
    -moz-box-shadow: 0 0 6px #f15466;
    box-shadow: 0 0 6px #f15466; }

.control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on {
  color: #ce1126;
  background-color: #fdf3f4;
  border-color: #ce1126; }

.control-group.success > label, .control-group.success .help-block, .control-group.success .help-inline {
  color: #3e5712; }

.control-group.success input, .control-group.success select, .control-group.success textarea {
  color: #3e5712;
  border-color: #3e5712; }
  .control-group.success input:focus, .control-group.success select:focus, .control-group.success textarea:focus {
    border-color: #202d09;
    -webkit-box-shadow: 0 0 6px #7aac23;
    -moz-box-shadow: 0 0 6px #7aac23;
    box-shadow: 0 0 6px #7aac23; }

.control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on {
  color: #3e5712;
  background-color: #f5f7f3;
  border-color: #3e5712; }

input:focus:required:invalid, textarea:focus:required:invalid, select:focus:required:invalid {
  color: #b94a48;
  border-color: #ee5f5b; }
  input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, select:focus:required:invalid:focus {
    border-color: #e9322d;
    -webkit-box-shadow: 0 0 6px #f8b9b7;
    -moz-box-shadow: 0 0 6px #f8b9b7;
    box-shadow: 0 0 6px #f8b9b7; }

.form-actions {
  padding: 17px 20px 18px;
  margin-top: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  *zoom: 1; }
  .form-actions:before, .form-actions:after {
    display: table;
    content: ""; }
  .form-actions:after {
    clear: both; }

.uneditable-input {
  overflow: hidden;
  white-space: nowrap;
  cursor: not-allowed;
  background-color: #fff;
  border-color: #eee;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); }

:-moz-placeholder {
  color: #999; }

::-webkit-input-placeholder {
  color: #999; }

.help-block, .help-inline {
  color: #555; }

.help-block {
  display: block;
  margin-bottom: 9px; }

.help-inline {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  vertical-align: middle;
  padding-left: 5px; }

.input-prepend, .input-append {
  margin-bottom: 5px; }
  .input-prepend input, .input-prepend select, .input-prepend .uneditable-input, .input-append input, .input-append select, .input-append .uneditable-input {
    position: relative;
    margin-bottom: 0;
    *margin-left: 0;
    vertical-align: middle;
    -webkit-border-radius: 0 3px 3px 0;
    -moz-border-radius: 0 3px 3px 0;
    border-radius: 0 3px 3px 0; }
    .input-prepend input:focus, .input-prepend select:focus, .input-prepend .uneditable-input:focus, .input-append input:focus, .input-append select:focus, .input-append .uneditable-input:focus {
      z-index: 2; }
  .input-prepend .uneditable-input, .input-append .uneditable-input {
    border-left-color: #ccc; }
  .input-prepend .add-on, .input-append .add-on {
    display: inline-block;
    width: auto;
    height: 18px;
    min-width: 16px;
    padding: 4px 5px;
    font-weight: normal;
    line-height: 18px;
    text-align: center;
    text-shadow: 0 1px 0 #fff;
    vertical-align: middle;
    background-color: #eee;
    border: 1px solid #ccc; }
  .input-prepend .add-on, .input-prepend .btn, .input-append .add-on, .input-append .btn {
    margin-left: -1px;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0; }
  .input-prepend .active, .input-append .active {
    background-color: #a9dba9;
    border-color: #46a546; }

.input-prepend .add-on, .input-prepend .btn {
  margin-right: -1px; }

.input-prepend .add-on:first-child, .input-prepend .btn:first-child {
  -webkit-border-radius: 3px 0 0 3px;
  -moz-border-radius: 3px 0 0 3px;
  border-radius: 3px 0 0 3px; }

.input-append input, .input-append select, .input-append .uneditable-input {
  -webkit-border-radius: 3px 0 0 3px;
  -moz-border-radius: 3px 0 0 3px;
  border-radius: 3px 0 0 3px; }

.input-append .uneditable-input {
  border-right-color: #ccc;
  border-left-color: #eee; }

.input-append .add-on:last-child, .input-append .btn:last-child {
  -webkit-border-radius: 0 3px 3px 0;
  -moz-border-radius: 0 3px 3px 0;
  border-radius: 0 3px 3px 0; }

.input-prepend.input-append input, .input-prepend.input-append select, .input-prepend.input-append .uneditable-input {
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0; }

.input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child {
  margin-right: -1px;
  -webkit-border-radius: 3px 0 0 3px;
  -moz-border-radius: 3px 0 0 3px;
  border-radius: 3px 0 0 3px; }

.input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child {
  margin-left: -1px;
  -webkit-border-radius: 0 3px 3px 0;
  -moz-border-radius: 0 3px 3px 0;
  border-radius: 0 3px 3px 0; }

.search-query {
  padding-right: 14px;
  padding-right: 4px \9;
  padding-left: 14px;
  padding-left: 4px \9;
  /* IE7-8 doesn't have border-radius, so don't indent the padding */
  margin-bottom: 0;
  -webkit-border-radius: 14px;
  -moz-border-radius: 14px;
  border-radius: 14px; }

.form-search input, .form-search textarea, .form-search select, .form-search .help-inline, .form-search .uneditable-input, .form-search .input-prepend, .form-search .input-append, .form-inline input, .form-inline textarea, .form-inline select, .form-inline .help-inline, .form-inline .uneditable-input, .form-inline .input-prepend, .form-inline .input-append, .form-horizontal input, .form-horizontal textarea, .form-horizontal select, .form-horizontal .help-inline, .form-horizontal .uneditable-input, .form-horizontal .input-prepend, .form-horizontal .input-append {
  display: inline-block;
  *display: inline;
  /* IE7 inline-block hack */
  *zoom: 1;
  margin-bottom: 0; }

.form-search .hide, .form-inline .hide, .form-horizontal .hide {
  display: none; }

.form-search label, .form-inline label {
  display: inline-block; }

.form-search .input-append, .form-inline .input-append, .form-search .input-prepend, .form-inline .input-prepend {
  margin-bottom: 0; }

.form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox {
  padding-left: 0;
  margin-bottom: 0;
  vertical-align: middle; }

.form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] {
  float: left;
  margin-right: 3px;
  margin-left: 0; }

.control-group {
  margin-bottom: 9px; }

legend + .control-group {
  margin-top: 18px;
  -webkit-margin-top-collapse: separate; }

.form-horizontal .control-group {
  margin-bottom: 18px;
  *zoom: 1; }
  .form-horizontal .control-group:before, .form-horizontal .control-group:after {
    display: table;
    content: ""; }
  .form-horizontal .control-group:after {
    clear: both; }

.form-horizontal .control-label {
  float: left;
  width: 140px;
  padding-top: 5px;
  text-align: right; }

.form-horizontal .controls {
  *display: inline-block;
  *padding-left: 20px;
  margin-left: 160px;
  *margin-left: 0; }
  .form-horizontal .controls:first-child {
    *padding-left: 160px; }

.form-horizontal .help-block {
  margin-top: 9px;
  margin-bottom: 0; }

.form-horizontal .form-actions {
  padding-left: 160px; }

/*
Buttons

.usyd-ui-primary - The primary action button for a particular instance (i.e. submit)
.usyd-ui-secondary - A secondary action button for a particular instance (i.e. back or reset)
*/
.usyd-ui-button {
  background-color: #eee;
  color: black;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px;
  font-weight: bold;
  font-size: 1.1em;
  text-transform: uppercase;
  border: none;
  padding: 0 10px;
  margin: 0 2px;
  cursor: pointer;
  vertical-align: middle;
  height: 28px;
  overflow: visible;
  text-decoration: none;
  display: inline-block;
  line-height: 29px;
  /* IE8 */
  *line-height: 28px;
  /* IE7 */
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
  -webkit-appearance: none;
  text-transform: none; }
  .usyd-ui-button:not([dummy]) {
    line-height: auto;
    /* NOT IE7/IE8 */ }
  .usyd-ui-button a {
    color: black; }
  .usyd-ui-button span {
    line-height: 28px;
    vertical-align: top; }
  .usyd-ui-button:hover {
    background: -owg-linear-gradient(white, gainsboro);
    background: -webkit-linear-gradient(white, gainsboro);
    background: -moz-linear-gradient(white, gainsboro);
    background: -o-linear-gradient(white, gainsboro);
    -pie-background: -pie-linear-gradient(white, gainsboro);
    background: linear-gradient(white, gainsboro);
    background: #eee\9;
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    display: inline-block; }
  .usyd-ui-button:active {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: inline-block; }
  .usyd-ui-button:visited, .usyd-ui-button:link {
    color: black; }
  .usyd-ui-button[disabled] {
    background: white;
    color: #757575;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    text-shadow: none;
    cursor: default;
    border: 1px solid #eee;
    line-height: 28px; }
  .usyd-ui-button .usyd-icon-small {
    line-height: 7px; }

.usyd-button-group {
  *zoom: 1; }
  .usyd-button-group:before, .usyd-button-group:after {
    display: table;
    content: ""; }
  .usyd-button-group:after {
    clear: both; }
  .usyd-button-group .usyd-ui-button, .usyd-button-group .usyd-ui-button-primary, .usyd-button-group .usyd-ui-button-secondary {
    text-transform: uppercase;
    margin: 0;
    float: left;
    border-left: 1px solid #d9d9d9;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    -ms-border-radius: 0;
    -o-border-radius: 0;
    border-radius: 0; }
    .usyd-button-group .usyd-ui-button:first-child, .usyd-button-group .usyd-ui-button-primary:first-child, .usyd-button-group .usyd-ui-button-secondary:first-child {
      -webkit-border-radius: 3px 0 0 3px;
      -moz-border-radius: 3px 0 0 3px;
      -ms-border-radius: 3px 0 0 3px;
      -o-border-radius: 3px 0 0 3px;
      border-radius: 3px 0 0 3px;
      border-left: none; }
    .usyd-button-group .usyd-ui-button:last-child, .usyd-button-group .usyd-ui-button.usyd-ui-last-child, .usyd-button-group .usyd-ui-button-primary:last-child, .usyd-button-group .usyd-ui-button-primary.usyd-ui-last-child, .usyd-button-group .usyd-ui-button-secondary:last-child, .usyd-button-group .usyd-ui-button-secondary.usyd-ui-last-child {
      -webkit-border-radius: 0 3px 3px 0;
      -moz-border-radius: 0 3px 3px 0;
      -ms-border-radius: 0 3px 3px 0;
      -o-border-radius: 0 3px 3px 0;
      border-radius: 0 3px 3px 0; }

.usyd-ui-button-primary {
  background-color: #e64626;
  color: #fff;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px;
  font-weight: bold;
  font-size: 1.1em;
  text-transform: uppercase;
  border: none;
  padding: 0 10px;
  margin: 0 2px;
  cursor: pointer;
  vertical-align: middle;
  height: 28px;
  overflow: visible;
  text-decoration: none;
  display: inline-block;
  line-height: 29px;
  /* IE8 */
  *line-height: 28px;
  /* IE7 */
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
  -webkit-appearance: none; }
  .usyd-ui-button-primary:not([dummy]) {
    line-height: auto;
    /* NOT IE7/IE8 */ }
  .usyd-ui-button-primary a {
    color: #fff; }
  .usyd-ui-button-primary span {
    line-height: 28px;
    vertical-align: top; }
  .usyd-ui-button-primary:hover {
    background: -owg-linear-gradient(#ea6146, #d03718);
    background: -webkit-linear-gradient(#ea6146, #d03718);
    background: -moz-linear-gradient(#ea6146, #d03718);
    background: -o-linear-gradient(#ea6146, #d03718);
    -pie-background: -pie-linear-gradient(#ea6146, #d03718);
    background: linear-gradient(#ea6146, #d03718);
    background: #e64626\9;
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    display: inline-block; }
  .usyd-ui-button-primary:active {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: inline-block; }
  .usyd-ui-button-primary:visited, .usyd-ui-button-primary:link {
    color: #fff; }
  .usyd-ui-button-primary[disabled] {
    background: white;
    color: #757575;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    text-shadow: none;
    cursor: default;
    border: 1px solid #eee;
    line-height: 28px; }

a.usyd-ui-button-primary:active {
  background-color: #e64626; }

.usyd-ui-button-secondary {
  background-color: #12416C;
  color: #fff;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px;
  font-weight: bold;
  font-size: 1.1em;
  text-transform: uppercase;
  border: none;
  padding: 0 10px;
  margin: 0 2px;
  cursor: pointer;
  vertical-align: middle;
  height: 28px;
  overflow: visible;
  text-decoration: none;
  display: inline-block;
  line-height: 29px;
  /* IE8 */
  *line-height: 28px;
  /* IE7 */
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
  -webkit-appearance: none; }
  .usyd-ui-button-secondary:not([dummy]) {
    line-height: auto;
    /* NOT IE7/IE8 */ }
  .usyd-ui-button-secondary a {
    color: #fff; }
  .usyd-ui-button-secondary span {
    line-height: 28px;
    vertical-align: top; }
  .usyd-ui-button-secondary:hover {
    background: -owg-linear-gradient(#17538b, #0d2f4d);
    background: -webkit-linear-gradient(#17538b, #0d2f4d);
    background: -moz-linear-gradient(#17538b, #0d2f4d);
    background: -o-linear-gradient(#17538b, #0d2f4d);
    -pie-background: -pie-linear-gradient(#17538b, #0d2f4d);
    background: linear-gradient(#17538b, #0d2f4d);
    background: #12416C\9;
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    display: inline-block; }
  .usyd-ui-button-secondary:active {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: inline-block; }
  .usyd-ui-button-secondary:visited, .usyd-ui-button-secondary:link {
    color: #fff; }
  .usyd-ui-button-secondary[disabled] {
    background: white;
    color: #757575;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    text-shadow: none;
    cursor: default;
    border: 1px solid #eee;
    line-height: 28px; }

.usyd-button-large {
  font-size: 18px;
  text-transform: none;
  padding: 5px 14px; }

.usyd-button-wide {
  width: 100%;
  box-sizing: border-box;
  text-align: center;
  height: auto; }

.help-block {
  font-size: 12px; }

.control-label {
  font-weight: bold; }

/*
Text input
*/
input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=search], input[type=number] {
  color: black;
  height: 22px;
  padding: 4px 6px 0;
  vertical-align: middle;
  border: 1px solid #666666;
  -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
  box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
  border-radius: 0; }
  input[type=text]:not([dummy]), input[type=password]:not([dummy]), input[type=email]:not([dummy]), input[type=url]:not([dummy]), input[type=tel]:not([dummy]), input[type=search]:not([dummy]), input[type=number]:not([dummy]) {
    /* Code for NOT IE7/IE8 */
    padding: 0 6px;
    height: 26px; }
  input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, input[type=url]:focus, input[type=tel]:focus, input[type=search]:focus, input[type=number]:focus {
    border: 1px solid #146ab8;
    outline: none; }

/*
Select box
*/
select {
  color: black;
  vertical-align: middle;
  height: 28px;
  /* != IE7 */
  *height: auto;
  /* IE7 */
  overflow: visible;
  border: 1px solid #4d4d4d;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;
  -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
  *padding: 0 0 0 3px;
  /* IE7 */
  padding: 4px 2px 4px 4px;
  /* IE8 */ }
  select:not([dummy]) {
    padding: 4px 2px 2px 4px;
    /* NOT IE7/IE8 */ }
  select[multiple] {
    height: auto; }
  select:focus {
    border: 1px solid #0f4f8a;
    background: -owg-linear-gradient(#fefefe, #f5faff);
    background: -webkit-linear-gradient(#fefefe, #f5faff);
    background: -moz-linear-gradient(#fefefe, #f5faff);
    background: -o-linear-gradient(#fefefe, #f5faff);
    -pie-background: -pie-linear-gradient(#fefefe, #f5faff);
    background: linear-gradient(#fefefe, #f5faff); }

/*
Textarea
*/
textarea {
  padding: 6px;
  vertical-align: middle;
  border: 1px solid #666666;
  -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
  box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.3);
  width: 80%;
  height: 6em;
  border-radius: 0; }
  textarea:focus {
    border: 1px solid #146ab8;
    outline: none; }

/*
Radio and checkbox input
*/
input[type=radio], input[type=checkbox] {
  font-weight: normal; }

/*
Form label
*/
.usyd-ui-form-label {
  display: block;
  margin-bottom: 5px;
  font-weight: bold;
  font-size: 1.2em; }
  .usyd-ui-form-label.usyd-inline {
    display: inline; }

.usyd-ui-form-actions {
  text-align: right;
  margin-top: 2em; }

/* Adds a red asterisk after the field */
.usyd-required:after {
  color: #E40B0B;
  margin-left: 0.5em;
  font-weight: normal;
  font-size: 0.8em;
  vertical-align: bottom;
  font-family: "fontello";
  content: '\e902';
  /* asterisk icon */ }

.usyd-ui-small-print {
  border: 1px solid #e6e6e6;
  overflow: auto;
  background: #fcfcfc;
  padding: 10px; }
  .usyd-ui-small-print :first-child {
    margin-top: 0; }
  .usyd-ui-small-print :last-child {
    margin-bottom: 0; }
  .usyd-ui-small-print.usyd-ui-fixed-height {
    height: 20em; }

.usyd-form-heading {
  color: #e64626;
  font-size: 16px;
  font-weight: normal;
  margin: 0.5em 0;
  display: block;
  clear: both; }

.usyd-form-actions {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid #e6e6e6; }

/*
Form

.usyd-ui-form-compact - A smaller, more compact form layout
.usyd-ui-form-oneliner - A form meant to be shown on a single line (removes inter-row padding etc)
*/
.usyd-form {
  background: #f7f7f7;
  padding: 1em; }
  .usyd-form fieldset {
    padding-top: 1px; }
  .usyd-form legend {
    color: #e64626;
    font-size: 1.6em; }
  .usyd-form hr {
    display: block;
    border-style: none;
    border-bottom: 1px solid white;
    border-top: 1px solid #e6e6e6;
    background-color: transparent;
    height: 0;
    margin: 10px 0; }

.boxsizing .usyd-ui-input-expandable {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  width: 100%; }

.no-boxsizing .usyd-ui-input-expandable {
  width: 97%;
  *width: 95%; }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-navbar {
  background: #333333;
  margin: 0;
  color: white;
  min-height: 57px;
  *zoom: 1; }
  .usyd-ui-navbar:before, .usyd-ui-navbar:after {
    display: table;
    content: ""; }
  .usyd-ui-navbar:after {
    clear: both; }
  .usyd-ui-navbar a {
    color: white; }

.usyd-header-title {
  display: block;
  float: left;
  margin: 17px 0 0 30px;
  font-weight: normal; }

.usyd-ui-common-nav {
  font-size: 10px;
  *zoom: 1;
  margin: 2.8em 0; }
  .usyd-ui-common-nav:before, .usyd-ui-common-nav:after {
    display: table;
    content: ""; }
  .usyd-ui-common-nav:after {
    clear: both; }

.usyd-ui-breadcrumbs {
  margin: 0 0 20px 0; }

.usyd-ui-logo {
  margin: 0;
  padding: 13px; }
  .usyd-ui-logo a {
    font: 0/0 a;
    color: transparent;
    text-shadow: none;
    background-color: transparent;
    border: 0;
    letter-spacing: normal;
    text-decoration: none;
    display: block;
    width: 240px;
    height: 31px;
    background: transparent no-repeat left top;
    background-size: 240px 31px;
    background-image: url(foundation/resources/intranet-components/assets/img/sydney-logo-horizontal.png); }
  @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
    .usyd-ui-logo a {
      background-image: url(foundation/resources/intranet-components/assets/img/sydney-logo-horizontal@2x.png); } }

.usyd-ui-breadcrumb {
  margin-top: 2em;
  font-size: 1em;
  color: #666666; }
  .usyd-ui-breadcrumb a {
    color: #666666;
    text-decoration: none; }
    .usyd-ui-breadcrumb a:hover {
      text-decoration: underline; }

.usyd-section-banner {
  *zoom: 1;
  margin-top: 1em;
  padding-bottom: 1em;
  border-bottom: 2px solid #e64626; }
  .usyd-section-banner:before, .usyd-section-banner:after {
    display: table;
    content: ""; }
  .usyd-section-banner:after {
    clear: both; }

.usyd-section-title {
  margin-top: 0; }

.usyd-global-search {
  margin-bottom: 0; }
  .usyd-global-search .usyd-global-search-label {
    color: white;
    font-weight: bold; }
  .usyd-global-search input[type=text] {
    margin-bottom: 0; }

body.usyd-notifier-open {
  position: relative; }

.usyd-ui-global-heading {
  display: none; }

@media (min-width: 768px) {
  body::before {
    height: 67px; }
  .usyd-ui-logo {
    float: left; }
  .usyd-global-search {
    float: left;
    margin-right: 10px;
    margin-top: 14px; }
    .usyd-global-search .usyd-global-search-label {
      display: -moz-inline-stack;
      display: inline-block;
      vertical-align: middle;
      *vertical-align: auto;
      zoom: 1;
      *display: inline;
      vertical-align: bottom;
      margin-right: 10px; }
    .usyd-global-search .usyd-global-search-controls {
      display: -moz-inline-stack;
      display: inline-block;
      vertical-align: middle;
      *vertical-align: auto;
      zoom: 1;
      *display: inline;
      font-size: 10px; }
  .usyd-ui-header {
    padding: 0.1px 0 0 0;
    *zoom: 1; }
  .usyd-ui-no-tabs .usyd-ui-header {
    border-bottom: 1px solid black; }
  .usyd-ui-global-heading {
    font-weight: bold;
    float: left;
    font-size: 22px;
    margin-top: 0; }
    .usyd-ui-global-heading:link, .usyd-ui-global-heading:visited {
      color: black;
      text-decoration: none; }
    .usyd-ui-global-heading:hover {
      text-decoration: none; }
    .usyd-ui-global-heading:active {
      color: #2176c3; }
  .usyd-header-tools {
    float: right; } }

@media (max-width: 979px) {
  body::before {
    height: 67px; }
  body::after {
    content: '';
    position: absolute;
    top: 66px;
    height: 31px;
    width: 100%;
    background: #333;
    z-index: -1; }
  .usyd-header-title {
    display: none; }
  .usyd-ui-logo a {
    background-image: url(foundation/resources/intranet-components/assets/img/sydney-logo-standard-inverted.png);
    background-size: 116px 40px;
    width: 116px;
    height: 40px; } }

@media only screen and (max-width: 979px) and (-webkit-min-device-pixel-ratio: 1.5), only screen and (max-width: 979px) and (min-resolution: 144dpi) {
  .usyd-ui-logo a {
    background-image: url(foundation/resources/intranet-components/assets/img/sydney-logo-standard-inverted@2x.png); } }

@media (max-width: 979px) {
  .usyd-ui-global-heading {
    float: left;
    display: block;
    width: 50%;
    padding: 8px 10px 7px 10px;
    font-size: 1.2em;
    color: #ddd;
    font-weight: bold;
    text-align: center;
    box-sizing: border-box;
    border-right: 1px solid #2F2F2F; }
    .usyd-ui-global-heading:hover {
      background-color: #e64626;
      color: #fff; }
      .usyd-ui-global-heading:hover + nav > h2 + ul {
        display: block; }
    .usyd-ui-global-heading:link, .usyd-ui-global-heading:hover, .usyd-ui-global-heading:active, .usyd-ui-global-heading:visited {
      color: white;
      text-decoration: none; }
    .usyd-ui-global-heading .usyd-icon {
      font-size: 0.8em;
      margin-left: 5px;
      position: relative;
      bottom: 1px; }
  .usyd-ui-navbar {
    margin-bottom: 0;
    position: relative; }
  .usyd-ui-breadcrumbs {
    margin: 20px 20px 20px; }
  .usyd-ui-common-nav {
    color: white;
    background: #444;
    margin: 0 0 20px 0; }
  .usyd-ui-global-heading .usyd-icon, .usyd-ui-common-nav .usyd-icon {
    margin-right: 5px;
    display: inline; } }

@media (min-width: 768px) and (max-width: 979px) {
  body::after {
    content: '';
    position: absolute;
    height: 30px;
    width: 100%;
    background: #444;
    z-index: -1;
    top: 66px; }
  .usyd-ui-common-nav {
    position: absolute;
    top: 66px;
    width: 50%;
    left: 0; }
    .usyd-ui-common-nav .usyd-ui-global-heading {
      width: 100%; }
  .usyd-ui-navbar {
    margin-bottom: 52px; } }

@media (max-width: 767px) {
  .usyd-section-banner {
    margin-left: 20px;
    margin-right: 20px; }
  .usyd-global-search {
    overflow: hidden;
    background: #424242;
    max-height: 0;
    -webkit-transition: max-height 0.25s;
    -moz-transition: max-height 0.25s;
    -ms-transition: max-height 0.25s;
    -o-transition: max-height 0.25s;
    transition: max-height 0.25s;
    -webkit-box-shadow: inset 0 1px 8px #1c1c1c;
    -moz-box-shadow: inset 0 1px 8px #1c1c1c;
    box-shadow: inset 0 1px 8px #1c1c1c; }
    .usyd-global-search .usyd-global-search-label {
      position: absolute;
      left: -999em; }
    .usyd-global-search .usyd-global-search-controls {
      padding: 10px;
      font-size: 10px; }
    .usyd-global-search input[type=text] {
      width: calc(100% - 45px);
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      -ms-box-sizing: border-box;
      box-sizing: border-box; }
    .usyd-global-search.usyd-show {
      max-height: 50px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-block-nav {
  background: transparent;
  position: relative; }
  .usyd-block-nav > ul {
    padding: 0;
    margin: 0;
    display: block;
    font-size: 0; }
    .usyd-block-nav > ul > li {
      display: inline-block;
      margin: 0;
      background: none;
      list-style: none;
      border-left: 1px solid #e64626;
      text-align: center;
      font-size: 12px; }
      .usyd-block-nav > ul > li:first-child {
        border: none; }
      .usyd-block-nav > ul > li:last-child a {
        margin-right: 0; }
      .usyd-block-nav > ul > li > i {
        display: none; }
    .usyd-block-nav > ul > li > a {
      display: block;
      color: black;
      text-decoration: none;
      padding: 6px 10px;
      margin: 0 5px; }
      .usyd-block-nav > ul > li > a:hover {
        text-decoration: underline; }
    .usyd-block-nav > ul > li:hover,
    .usyd-block-nav > ul .usyd-active {
      z-index: 90; }
      .usyd-block-nav > ul > li:hover > a,
      .usyd-block-nav > ul .usyd-active > a {
        color: white;
        background: #e64626;
        padding-left: 10px;
        padding-right: 10px; }
        .usyd-block-nav > ul > li:hover > a:hover,
        .usyd-block-nav > ul .usyd-active > a:hover {
          text-decoration: none; }
          .usyd-block-nav > ul > li:hover > a:hover span,
          .usyd-block-nav > ul .usyd-active > a:hover span {
            display: block; }
      .usyd-block-nav > ul > li:hover span,
      .usyd-block-nav > ul .usyd-active span {
        display: block;
        margin: 0 auto;
        width: 0;
        height: 0;
        border-style: solid;
        border-color: transparent;
        border-width: 5px;
        border-top-color: #e64626;
        position: relative;
        margin-bottom: -10px; }
    .usyd-block-nav > ul .usyd-block-subnav {
      position: absolute;
      left: 0;
      top: 26px;
      z-index: 100; }
    .usyd-block-nav > ul > li:hover > a {
      background: #f1f1f1;
      color: #000; }
    .usyd-block-nav > ul > li:hover span {
      border-top-color: #f1f1f1; }
    .usyd-block-nav > ul > li:hover .usyd-block-subnav {
      display: block; }
    .usyd-block-nav > ul > li:hover span {
      z-index: 120; }
    .usyd-block-nav > ul > .usyd-active:hover > a {
      background: #e64626;
      color: #FFF; }
    .usyd-block-nav > ul > .usyd-active:hover span {
      border-top-color: #e64626; }

.usyd-block-subnav {
  display: none;
  width: 100%;
  text-align: left;
  background: #f1f1f1;
  padding: 30px 16px 55px;
  -webkit-box-shadow: 0px 15px 15px 0px rgba(0, 0, 0, 0.24);
  -moz-box-shadow: 0px 15px 15px 0px rgba(0, 0, 0, 0.24);
  box-shadow: 0px 15px 15px 0px rgba(0, 0, 0, 0.24); }

.usyd-block-subnav-item {
  width: 23.5%;
  display: inline-block;
  font-size: 14px; }

.usyd-block-subnav-link:link,
.usyd-block-subnav-link:visited {
  color: #000;
  text-decoration: none; }

.usyd-block-subnav-link:hover {
  text-decoration: underline; }

.usyd-subnav-active {
  display: block;
  position: relative;
  margin-top: 40px;
  background: #FFF;
  padding-top: 15px; }
  .usyd-subnav-active h2 {
    color: #e64626;
    margin: 0 16px 10px;
    font-size: 18px; }
  .usyd-subnav-active::before {
    content: '';
    width: 100%;
    height: 2px;
    background: #e64626;
    display: block;
    position: absolute;
    top: -13px;
    left: 0; }
  .usyd-subnav-active .usyd-block-subnav-items {
    background: #f1f1f1;
    padding: 10px 8px 0; }
  .usyd-subnav-active .usyd-block-subnav-item {
    width: auto;
    font-size: 12px;
    margin: 0;
    padding: 8px 8px 13px; }
  .usyd-subnav-active .usyd-subnav-current {
    background: #FFF; }

.usyd-block-nav-vertical > ul > li {
  float: none;
  border-left: none;
  display: block;
  text-align: left;
  /*
		Overriding some things specified by the assumed default horizontal nav so that the vertical nav still works as before.
		This is a bit of a last-minute hack and undoing these shouldn't be necessary, since the styles should be being applied to horizontal
		navs by some imaginary usyd-block-nav-horizontal class, rather than from the default block-nav class.
		If you want to write said class and remove this stuff, feel free. - Greg
		*/ }
  .usyd-block-nav-vertical > ul > li > a {
    display: inline-block;
    position: relative;
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0; }
  .usyd-block-nav-vertical > ul > li.usyd-active span {
    display: block;
    width: 0;
    height: 0;
    border: 5px solid transparent;
    border-left: 5px solid #e64626;
    position: absolute;
    top: 50%;
    right: -10px;
    left: auto;
    margin-top: -5px; }
  .usyd-block-nav-vertical > ul > li:hover > a {
    padding-left: 0;
    padding-right: 0;
    background-color: transparent; }
    .usyd-block-nav-vertical > ul > li:hover > a, .usyd-block-nav-vertical > ul > li:hover > a:hover {
      text-decoration: underline; }
  .usyd-block-nav-vertical > ul > li:hover.usyd-active > a {
    padding-left: 10px;
    padding-right: 10px; }
  .usyd-block-nav-vertical > ul > li:hover.usyd-active span {
    border-top-color: transparent;
    border-left-color: #e64626; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-block-nav > h2 {
  display: none; }

@media (max-width: 979px) {
  .usyd-ui-global-heading {
    display: block; }
  .usyd-global-nav {
    background: transparent;
    margin: 0;
    padding: 0;
    border: 0;
    width: 100%; }
    .usyd-global-nav > ul .usyd-active > a:link,
    .usyd-global-nav > ul .usyd-active > a {
      color: #000;
      font-weight: bold;
      background: #f1f1f1; }
    .usyd-global-nav > ul {
      text-align: left;
      position: absolute;
      -webkit-box-shadow: 0 0 10px #333;
      -moz-box-shadow: 0 0 10px #333;
      box-shadow: 0 0 10px #333;
      padding: 10px 15px;
      background: #f1f1f1;
      margin: 30px 0 0 -8px;
      z-index: 2;
      width: 83vw;
      float: none;
      clear: both;
      display: none;
      max-height: 65vh;
      overflow-y: scroll; }
      .usyd-global-nav > ul:hover {
        display: block; }
      .usyd-global-nav > ul li {
        float: none;
        border: none;
        border-top: 1px solid #FFF;
        display: block;
        text-align: left; }
        .usyd-global-nav > ul li:first-child {
          border-top: none; }
        .usyd-global-nav > ul li > a {
          padding: 9px 10px;
          margin: 0; }
          .usyd-global-nav > ul li > a:hover {
            background: #e64626;
            color: #fff;
            text-decoration: none; }
        .usyd-global-nav > ul li li {
          margin: 0; }
          .usyd-global-nav > ul li li a {
            padding: 9px 0 9px 27px;
            display: block; }
          .usyd-global-nav > ul li li:first-child {
            border-top: 1px solid #FFF; }
      .usyd-global-nav > ul > ul {
        width: 85%; }
        .usyd-global-nav > ul > ul > li {
          width: 100%; }
          .usyd-global-nav > ul > ul > li > span {
            display: none; }
      .usyd-global-nav > ul .usyd-active span {
        display: none; }
      .usyd-global-nav > ul .usyd-active > a {
        margin: 0; }
      .usyd-global-nav > ul .usyd-block-subnav {
        position: static; }
        .usyd-global-nav > ul .usyd-block-subnav h2 {
          display: none; }
      .usyd-global-nav > ul .usyd-block-subnav-items {
        position: static;
        display: block;
        box-shadow: none;
        margin: 0;
        padding: 0;
        width: 100%; }
      .usyd-global-nav > ul .usyd-block-subnav-item {
        width: auto;
        font-size: 12px; }
        .usyd-global-nav > ul .usyd-block-subnav-item:before {
          top: 12px;
          left: 28px;
          font-size: 9px; }
      .usyd-global-nav > ul > li > i {
        float: left;
        display: block;
        color: #e64626;
        padding: 6px 4px 5px 4px;
        background: #DCDCDC;
        margin: 5px 8px 0 4px;
        font-size: 11px; }
      .usyd-global-nav > ul > li:hover .usyd-block-subnav {
        display: none; }
      .usyd-global-nav > ul > li:hover a:hover,
      .usyd-global-nav > ul > li:hover a {
        background: none;
        color: #000; }
      .usyd-global-nav > ul > li:hover > span {
        display: none; }
      .usyd-global-nav > ul .usyd-block-subnav {
        display: none;
        position: static;
        padding: 0;
        box-shadow: none; }
      .usyd-global-nav > ul > li.usyd-show i.icon-plus:before {
        content: '\e822'; }
      .usyd-global-nav > ul > li.usyd-show .usyd-block-subnav {
        display: block; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-hero {
  position: relative;
  height: 200px;
  overflow: hidden;
  margin-bottom: 20px; }
  .usyd-hero.usyd-light {
    background-color: #fff;
    color: black; }
    .usyd-hero.usyd-light .usyd-hero-content {
      background-color: #fff; }
    .usyd-hero.usyd-light .usyd-hero-content-body {
      padding-right: 20px; }
      .usyd-hero.usyd-light .usyd-hero-content-body > h2 {
        margin-top: 0; }
    .usyd-hero.usyd-light a {
      color: black; }
  .usyd-hero.usyd-dark {
    background-color: #333333;
    color: #fff; }
    .usyd-hero.usyd-dark .usyd-hero-content-body {
      padding: 20px;
      position: absolute;
      bottom: 0;
      left: 0; }
    .usyd-hero.usyd-dark a {
      color: #fff; }

.usyd-hero-content {
  float: left;
  position: relative;
  height: 200px;
  width: 240px; }

.usyd-hero-media {
  overflow: hidden;
  display: block; }
  .usyd-hero-media img {
    max-width: none;
    min-height: 200px;
    vertical-align: top; }

@media (max-width: 979px) {
  .usyd-hero {
    height: auto;
    position: relative; }
    .usyd-hero.usyd-dark .usyd-hero-content-body {
      padding: 10px;
      position: static; }
  .usyd-hero-content {
    float: none;
    width: auto;
    height: auto; }
  .usyd-hero-media img {
    width: 100%;
    height: auto;
    min-height: 0; } }

@media (min-width: 1300px) {
  .usyd-hero-content {
    width: 300px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-survey-content.ui-tip-container.ui-tip-container {
  width: auto; }

.usyd-survey-content.ui-tip-container .ui-tip-body {
  -webkit-box-shadow: 0 0 50px #000;
  -moz-box-shadow: 0 0 50px #000;
  box-shadow: 0 0 50px #000;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px; }

.usyd-survey-content.ui-tip-container .ui-tip-content {
  padding: 1.3em 1.8em; }

.usyd-survey-content.ui-tip-container h2 {
  margin: 0.2em 0 0.5em; }

.usyd-survey-content.ui-tip-container p, .usyd-survey-content.ui-tip-container li {
  font-size: 13px;
  font-size: 1.3rem; }
  .usyd-survey-content.ui-tip-container p + p, .usyd-survey-content.ui-tip-container li + p {
    margin-top: 1em; }

.usyd-survey-content.ui-tip-container .usyd-survey-choices {
  text-align: center;
  margin: 2em 0 0; }
  .usyd-survey-content.ui-tip-container .usyd-survey-choices button {
    margin: 0 2em 1.5em;
    font-weight: normal;
    text-transform: none; }

.usyd-survey-content.ui-tip-container .usyd-survey-ctrl-close {
  display: block;
  line-height: 28px;
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
  opacity: 0.6;
  text-decoration: none;
  cursor: pointer; }
  .usyd-survey-content.ui-tip-container .usyd-survey-ctrl-close:hover, .usyd-survey-content.ui-tip-container .usyd-survey-ctrl-close:focus {
    text-decoration: underline;
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
    -webkit-transition: opacity 0.25s ease;
    -moz-transition: opacity 0.25s ease false;
    -o-transition: opacity 0.25s ease false;
    transition: opacity 0.25s ease; }

@media (min-width: 1300px) {
  .usyd-survey-content.ui-tip-container {
    width: 40em; }
    .usyd-survey-content.ui-tip-container .ui-tip-body {
      outline: none;
      max-width: 60em; } }

@media (max-width: 767px) {
  .usyd-survey-content.ui-tip-container {
    width: 94%; }
    .usyd-survey-content.ui-tip-container .ui-tip-body {
      max-width: 100%; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
@media (min-width: 980px) and (max-width: 1299px) {
  .usyd-column-left {
    float: left;
    width: 47%;
    margin-right: 3%; }
  .usyd-column-right {
    float: left;
    width: 50%; } }

/*
Styles for the homepage's favourites container. Relates to USYD/Apps/Intranet/Favourites.
*/
.usyd-intranet-favourites .usyd-ui-accordion-title {
  font-size: 14px;
  font-weight: bold;
  margin: 0 !important;
  padding: 5px 0;
  border-bottom: 1px solid #e6e6e6;
  cursor: pointer; }
  .usyd-intranet-favourites .usyd-ui-accordion-title.usyd-ui-closed {
    border-top: none; }
    .usyd-intranet-favourites .usyd-ui-accordion-title.usyd-ui-closed .usyd-ui-action-edit {
      opacity: 0;
      display: none; }
  .usyd-intranet-favourites .usyd-ui-accordion-title.usyd-ui-open .usyd-ui-action-edit {
    display: block;
    opacity: 1; }
  .usyd-intranet-favourites .usyd-ui-accordion-title.usyd-ui-disabled {
    color: #bfbfbf; }
  .usyd-intranet-favourites .usyd-ui-accordion-title .usyd-ui-action-help {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1; }
  .usyd-intranet-favourites .usyd-ui-accordion-title .usyd-ui-action-edit {
    -webkit-transition: opacity 0.5s false;
    -moz-transition: opacity 0.5s false false;
    -o-transition: opacity 0.5s false false;
    transition: opacity 0.5s; }
  .usyd-intranet-favourites .usyd-ui-accordion-title .usyd-action-icon {
    float: right; }
    .usyd-intranet-favourites .usyd-ui-accordion-title .usyd-action-icon + .usyd-action-icon {
      margin-right: 0.6em; }

.usyd-intranet-favourites .usyd-action-icon {
  background-color: white\9; }

.usyd-intranet-favourites .usyd-favourites-title, .usyd-intranet-favourites .usyd-favourites-user-title, .usyd-intranet-favourites .usyd-favourites-logins-title, .usyd-intranet-favourites .usyd-favourites-popular-title {
  padding-left: 6px;
  padding-right: 5px; }
  .usyd-intranet-favourites .usyd-favourites-title .usyd-icon, .usyd-intranet-favourites .usyd-favourites-user-title .usyd-icon, .usyd-intranet-favourites .usyd-favourites-logins-title .usyd-icon, .usyd-intranet-favourites .usyd-favourites-popular-title .usyd-icon {
    min-width: 16px;
    text-align: center;
    margin-right: 2px; }
  .usyd-intranet-favourites .usyd-favourites-title:hover, .usyd-intranet-favourites .usyd-favourites-user-title:hover, .usyd-intranet-favourites .usyd-favourites-logins-title:hover, .usyd-intranet-favourites .usyd-favourites-popular-title:hover, .usyd-intranet-favourites .usyd-favourites-title:focus, .usyd-intranet-favourites .usyd-favourites-user-title:focus, .usyd-intranet-favourites .usyd-favourites-logins-title:focus, .usyd-intranet-favourites .usyd-favourites-popular-title:focus {
    background-color: #e6e6e6;
    outline: none; }
    .usyd-intranet-favourites .usyd-favourites-title:hover .usyd-icon, .usyd-intranet-favourites .usyd-favourites-user-title:hover .usyd-icon, .usyd-intranet-favourites .usyd-favourites-logins-title:hover .usyd-icon, .usyd-intranet-favourites .usyd-favourites-popular-title:hover .usyd-icon, .usyd-intranet-favourites .usyd-favourites-title:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-user-title:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-logins-title:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-popular-title:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-title:focus .usyd-icon, .usyd-intranet-favourites .usyd-favourites-user-title:focus .usyd-icon, .usyd-intranet-favourites .usyd-favourites-logins-title:focus .usyd-icon, .usyd-intranet-favourites .usyd-favourites-popular-title:focus .usyd-icon, .usyd-intranet-favourites .usyd-favourites-title:focus .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-user-title:focus .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-logins-title:focus .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-popular-title:focus .usyd-action-icon {
      background-color: #e6e6e6 \9; }
  .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title {
    background-color: #f2f2f2; }
    .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open:hover, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title:hover, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title:hover, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title:hover, .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open:focus, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title:focus, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title:focus, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title:focus {
      background-color: #e6e6e6; }
      .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open:hover .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title:hover .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title:hover .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title:hover .usyd-icon, .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title:hover .usyd-action-icon, .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open:focus .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title:focus .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title:focus .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title:focus .usyd-icon, .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open:focus .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title:focus .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title:focus .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title:focus .usyd-action-icon {
        background-color: #e6e6e6 \9; }
    .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title .usyd-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title .usyd-icon, .usyd-intranet-favourites .usyd-favourites-title.usyd-ui-open .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-user-title .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-logins-title .usyd-action-icon, .usyd-intranet-favourites .usyd-ui-open.usyd-favourites-popular-title .usyd-action-icon {
      background-color: #f2f2f2 \9; }

.usyd-intranet-favourites.usyd-loading .usyd-action-favourite {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
  opacity: 0.5; }

.usyd-intranet-favourites.usyd-wasm-user-unauthed .usyd-action-favourite {
  display: none; }

.usyd-intranet-favourites .usyd-ui-accordion-panel.usyd-ui-open {
  border-bottom: 1px solid #e6e6e6; }

.usyd-intranet-favourites .usyd-ui-accordion-panel.usyd-ui-closed {
  display: none; }

.usyd-intranet-favourites #usyd-intranet-favourites-logins .usyd-action-favourite, .usyd-intranet-favourites #usyd-intranet-favourites-popular .usyd-action-favourite {
  position: absolute;
  top: 0;
  right: 0; }

.usyd-intranet-favourites .usyd-action-delete {
  position: absolute;
  top: 0;
  right: 0; }

.usyd-intranet-favourites .usyd-favourites-link {
  width: 16em; }

.usyd-intranet-favourites .usyd-favourites-changed {
  background-color: #ffff80; }

.usyd-intranet-favourites .usyd-link-list li {
  position: relative;
  padding-right: 2em; }

.usyd-intranet-favourites .usyd-system-logins li {
  box-sizing: border-box;
  width: 48%;
  position: relative;
  display: inline-block;
  vertical-align: top;
  margin-top: 0.3em; }
  .usyd-intranet-favourites .usyd-system-logins li .usyd-action-icon {
    position: absolute;
    right: 0;
    top: 0;
    color: #c6c6c6; }
  .usyd-intranet-favourites .usyd-system-logins li:nth-child(2n+1) {
    margin-right: 2.5%; }
  @media (max-width: 390px) {
    .usyd-intranet-favourites .usyd-system-logins li {
      width: auto;
      display: block; }
      .usyd-intranet-favourites .usyd-system-logins li:nth-child(2n+1) {
        margin-right: 0; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-icon-xsmall {
  text-align: center;
  display: inline-block;
  font-size: 16px;
  min-width: 16px;
  min-height: 16px; }

.usyd-icon-small {
  text-align: center;
  display: inline-block;
  font-size: 24px;
  min-width: 24px;
  min-height: 24px; }

.usyd-icon-medium {
  text-align: center;
  display: inline-block;
  font-size: 32px;
  min-width: 32px;
  min-height: 32px; }

.usyd-icon-large {
  text-align: center;
  display: inline-block;
  font-size: 48px;
  min-width: 48px;
  min-height: 48px; }

.usyd-icon-xlarge {
  text-align: center;
  display: inline-block;
  font-size: 64px;
  min-width: 64px;
  min-height: 64px; }

.usyd-labelled-icon .usyd-icon {
  display: inline-block;
  text-align: center;
  vertical-align: middle;
  margin-right: 5px; }
  .usyd-labelled-icon .usyd-icon.usyd-icon-xsmall {
    min-width: 16px; }
  .usyd-labelled-icon .usyd-icon.usyd-icon-small {
    min-width: 24px; }
  .usyd-labelled-icon .usyd-icon.usyd-icon-medium {
    min-width: 32px; }
  .usyd-labelled-icon .usyd-icon.usyd-icon-large {
    min-width: 48px; }
  .usyd-labelled-icon .usyd-icon.usyd-icon-xlarge {
    min-width: 64px; }

a.usyd-labelled-icon {
  text-decoration: none; }
  a.usyd-labelled-icon:hover {
    text-decoration: none; }
    a.usyd-labelled-icon:hover .usyd-icon-text {
      text-decoration: underline; }

.usyd-date-icon {
  text-align: center;
  font-weight: bold;
  min-width: 35px; }
  .usyd-date-icon .usyd-date-day {
    display: block;
    font-size: 20px; }
  .usyd-date-icon .usyd-date-month {
    text-transform: uppercase;
    display: block;
    font-size: 10px; }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

.container, .usyd-page {
  margin-right: auto;
  margin-left: auto;
  *zoom: 1; }
  .container:before, .usyd-page:before, .container:after, .usyd-page:after {
    display: table;
    content: ""; }
  .container:after, .usyd-page:after {
    clear: both; }

.container-fluid {
  padding-right: 20px;
  padding-left: 20px;
  *zoom: 1; }
  .container-fluid:before, .container-fluid:after {
    display: table;
    content: ""; }
  .container-fluid:after {
    clear: both; }

.row {
  margin-left: -20px;
  *zoom: 1; }
  .row:before, .row:after {
    display: table;
    content: ""; }
  .row:after {
    clear: both; }

[class*="span"] {
  float: left;
  margin-left: 20px; }

.container, .usyd-page, .navbar-fixed-top .container, .navbar-fixed-top .usyd-page, .navbar-fixed-bottom .container, .navbar-fixed-bottom .usyd-page {
  width: 940px; }

.span1 {
  width: 60px; }

.span2 {
  width: 140px; }

.span3 {
  width: 220px; }

.span4 {
  width: 300px; }

.span5 {
  width: 380px; }

.span6 {
  width: 460px; }

.span7 {
  width: 540px; }

.span8 {
  width: 620px; }

.span9 {
  width: 700px; }

.span10 {
  width: 780px; }

.span11 {
  width: 860px; }

.span12 {
  width: 940px; }

.offset1 {
  margin-left: 100px; }

.offset2 {
  margin-left: 180px; }

.offset3 {
  margin-left: 260px; }

.offset4 {
  margin-left: 340px; }

.offset5 {
  margin-left: 420px; }

.offset6 {
  margin-left: 500px; }

.offset7 {
  margin-left: 580px; }

.offset8 {
  margin-left: 660px; }

.offset9 {
  margin-left: 740px; }

.offset10 {
  margin-left: 820px; }

.offset11 {
  margin-left: 900px; }

.offset12 {
  margin-left: 980px; }

.row-fluid {
  width: 100%;
  *zoom: 1; }
  .row-fluid:before, .row-fluid:after {
    display: table;
    content: ""; }
  .row-fluid:after {
    clear: both; }
  .row-fluid [class*="span"] {
    display: block;
    width: 100%;
    min-height: 28px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    float: left;
    margin-left: 2.12766%;
    *margin-left: 2.07447%; }
  .row-fluid [class*="span"]:first-child {
    margin-left: 0; }
  .row-fluid .span1 {
    width: 6.38298%;
    *width: 6.32979%; }
  .row-fluid .span2 {
    width: 14.89362%;
    *width: 14.84043%; }
  .row-fluid .span3 {
    width: 23.40426%;
    *width: 23.35106%; }
  .row-fluid .span4 {
    width: 31.91489%;
    *width: 31.8617%; }
  .row-fluid .span5 {
    width: 40.42553%;
    *width: 40.37234%; }
  .row-fluid .span6 {
    width: 48.93617%;
    *width: 48.88298%; }
  .row-fluid .span7 {
    width: 57.44681%;
    *width: 57.39362%; }
  .row-fluid .span8 {
    width: 65.95745%;
    *width: 65.90426%; }
  .row-fluid .span9 {
    width: 74.46809%;
    *width: 74.41489%; }
  .row-fluid .span10 {
    width: 82.97872%;
    *width: 82.92553%; }
  .row-fluid .span11 {
    width: 91.48936%;
    *width: 91.43617%; }
  .row-fluid .span12 {
    width: 100.0%;
    *width: 99.94681%; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.hidden {
  display: none;
  visibility: hidden; }

.visible-phone {
  display: none !important; }

.visible-tablet {
  display: none !important; }

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

@media (max-width: 767px) {
  .visible-phone {
    display: inherit !important; }
  .hidden-phone {
    display: none !important; }
  .hidden-desktop {
    display: inherit !important; }
  .visible-desktop {
    display: none !important; } }

@media (min-width: 768px) and (max-width: 979px) {
  .visible-tablet {
    display: inherit !important; }
  .hidden-tablet {
    display: none !important; }
  .hidden-desktop {
    display: inherit !important; }
  .visible-desktop {
    display: none !important; } }

@media (max-width: 480px) {
  .nav-collapse {
    -webkit-transform: translate3d(0, 0, 0); }
  .page-header h1 small {
    display: block;
    line-height: 18px; }
  input[type="checkbox"], input[type="radio"] {
    border: 1px solid #ccc; }
  .form-horizontal .control-group > label {
    float: none;
    width: auto;
    padding-top: 0;
    text-align: left; }
  .form-horizontal .controls {
    margin-left: 0; }
  .form-horizontal .control-list {
    padding-top: 0; }
  .form-horizontal .form-actions {
    padding-left: 10px;
    padding-right: 10px; }
  .modal {
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    width: auto;
    margin: 0; }
    .modal.fade.in {
      top: auto; }
  .modal-header .close {
    padding: 10px;
    margin: -10px; }
  .carousel-caption {
    position: static;
    font-style: italic; } }

@media (max-width: 768px) {
  body {
    padding-left: 20px;
    padding-right: 20px; }
  .navbar-fixed-top, .navbar-fixed-bottom {
    margin-left: -20px;
    margin-right: -20px; }
  .container-fluid {
    padding: 0; }
  .dl-horizontal dt {
    float: none;
    clear: none;
    width: auto;
    text-align: left; }
  .dl-horizontal dd {
    margin-left: 0; }
  .container, .usyd-page {
    width: auto; }
  .row-fluid {
    width: 100%; }
  .row, .thumbnails {
    margin-left: 0; }
  [class*="span"], .row-fluid [class*="span"] {
    float: none;
    display: block;
    width: auto;
    margin-left: 0; }
  .input-large, .input-xlarge, .input-xxlarge, input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input {
    display: block;
    width: 100%;
    min-height: 28px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box; }
  .input-prepend input, .input-append input, .input-prepend input[class*="span"], .input-append input[class*="span"] {
    display: inline-block;
    width: auto; } }

@media (min-width: 768px) and (max-width: 979px) {
  .row {
    margin-left: -15px;
    *zoom: 1; }
    .row:before, .row:after {
      display: table;
      content: ""; }
    .row:after {
      clear: both; }
  [class*="span"] {
    float: left;
    margin-left: 15px; }
  .container, .usyd-page, .navbar-fixed-top .container, .navbar-fixed-top .usyd-page, .navbar-fixed-bottom .container, .navbar-fixed-bottom .usyd-page {
    width: 729px; }
  .span1 {
    width: 47px; }
  .span2 {
    width: 109px; }
  .span3 {
    width: 171px; }
  .span4 {
    width: 233px; }
  .span5 {
    width: 295px; }
  .span6 {
    width: 357px; }
  .span7 {
    width: 419px; }
  .span8 {
    width: 481px; }
  .span9 {
    width: 543px; }
  .span10 {
    width: 605px; }
  .span11 {
    width: 667px; }
  .span12 {
    width: 729px; }
  .offset1 {
    margin-left: 77px; }
  .offset2 {
    margin-left: 139px; }
  .offset3 {
    margin-left: 201px; }
  .offset4 {
    margin-left: 263px; }
  .offset5 {
    margin-left: 325px; }
  .offset6 {
    margin-left: 387px; }
  .offset7 {
    margin-left: 449px; }
  .offset8 {
    margin-left: 511px; }
  .offset9 {
    margin-left: 573px; }
  .offset10 {
    margin-left: 635px; }
  .offset11 {
    margin-left: 697px; }
  .offset12 {
    margin-left: 759px; }
  .row-fluid {
    width: 100%;
    *zoom: 1; }
    .row-fluid:before, .row-fluid:after {
      display: table;
      content: ""; }
    .row-fluid:after {
      clear: both; }
    .row-fluid [class*="span"] {
      display: block;
      width: 100%;
      min-height: 28px;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      -ms-box-sizing: border-box;
      box-sizing: border-box;
      float: left;
      margin-left: 2.76243%;
      *margin-left: 2.70924%; }
    .row-fluid [class*="span"]:first-child {
      margin-left: 0; }
    .row-fluid .span1 {
      width: 5.8011%;
      *width: 5.74791%; }
    .row-fluid .span2 {
      width: 14.36464%;
      *width: 14.31145%; }
    .row-fluid .span3 {
      width: 22.92818%;
      *width: 22.87499%; }
    .row-fluid .span4 {
      width: 31.49171%;
      *width: 31.43852%; }
    .row-fluid .span5 {
      width: 40.05525%;
      *width: 40.00206%; }
    .row-fluid .span6 {
      width: 48.61878%;
      *width: 48.56559%; }
    .row-fluid .span7 {
      width: 57.18232%;
      *width: 57.12913%; }
    .row-fluid .span8 {
      width: 65.74586%;
      *width: 65.69266%; }
    .row-fluid .span9 {
      width: 74.30939%;
      *width: 74.2562%; }
    .row-fluid .span10 {
      width: 82.87293%;
      *width: 82.81974%; }
    .row-fluid .span11 {
      width: 91.43646%;
      *width: 91.38327%; }
    .row-fluid .span12 {
      width: 100.0%;
      *width: 99.94681%; }
  input, textarea, .uneditable-input {
    margin-left: 0; }
  input.span1, textarea.span1, .uneditable-input.span1 {
    width: 37px; }
  input.span2, textarea.span2, .uneditable-input.span2 {
    width: 99px; }
  input.span3, textarea.span3, .uneditable-input.span3 {
    width: 161px; }
  input.span4, textarea.span4, .uneditable-input.span4 {
    width: 223px; }
  input.span5, textarea.span5, .uneditable-input.span5 {
    width: 285px; }
  input.span6, textarea.span6, .uneditable-input.span6 {
    width: 347px; }
  input.span7, textarea.span7, .uneditable-input.span7 {
    width: 409px; }
  input.span8, textarea.span8, .uneditable-input.span8 {
    width: 471px; }
  input.span9, textarea.span9, .uneditable-input.span9 {
    width: 533px; }
  input.span10, textarea.span10, .uneditable-input.span10 {
    width: 595px; }
  input.span11, textarea.span11, .uneditable-input.span11 {
    width: 657px; }
  input.span12, textarea.span12, .uneditable-input.span12 {
    width: 719px; } }

@media (max-width: 979px) {
  body {
    padding-top: 0; }
  .navbar-fixed-top {
    position: static;
    margin-bottom: 18px; }
  .navbar-fixed-top .navbar-inner {
    padding: 5px; }
  .navbar .container, .navbar .usyd-page {
    width: auto;
    padding: 0; }
  .navbar .brand {
    padding-left: 10px;
    padding-right: 10px;
    margin: 0 0 0 -5px; }
  .nav-collapse {
    clear: both; }
  .nav-collapse .nav {
    float: none;
    margin: 0 0 9px; }
  .nav-collapse .nav > li {
    float: none; }
  .nav-collapse .nav > li > a {
    margin-bottom: 2px; }
  .nav-collapse .nav > .divider-vertical {
    display: none; }
  .nav-collapse .nav .nav-header {
    color: #999;
    text-shadow: none; }
  .nav-collapse .nav > li > a, .nav-collapse .dropdown-menu a {
    padding: 6px 15px;
    font-weight: bold;
    color: #999;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px; }
  .nav-collapse .btn {
    padding: 4px 10px 4px;
    font-weight: normal;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px; }
  .nav-collapse .dropdown-menu li + li a {
    margin-bottom: 2px; }
  .nav-collapse .nav > li > a:hover, .nav-collapse .dropdown-menu a:hover {
    background-color: #222; }
  .nav-collapse.in .btn-group {
    margin-top: 5px;
    padding: 0; }
  .nav-collapse .dropdown-menu {
    position: static;
    top: auto;
    left: auto;
    float: none;
    display: block;
    max-width: none;
    margin: 0 15px;
    padding: 0;
    background-color: transparent;
    border: none;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none; }
  .nav-collapse .dropdown-menu:before, .nav-collapse .dropdown-menu:after {
    display: none; }
  .nav-collapse .dropdown-menu .divider {
    display: none; }
  .nav-collapse .navbar-form, .nav-collapse .navbar-search {
    float: none;
    padding: 9px 15px;
    margin: 9px 0;
    border-top: 1px solid #222;
    border-bottom: 1px solid #222;
    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); }
  .navbar .nav-collapse .nav.pull-right {
    float: none;
    margin-left: 0; }
  .nav-collapse, .nav-collapse.collapse {
    overflow: hidden;
    height: 0; }
  .navbar .btn-navbar {
    display: block; }
  .navbar-static .navbar-inner {
    padding-left: 10px;
    padding-right: 10px; } }

@media (min-width: 980px) {
  .nav-collapse.collapse {
    height: auto !important;
    overflow: visible !important; } }

@media (min-width: 1300px) {
  .row {
    margin-left: -20px;
    *zoom: 1; }
    .row:before, .row:after {
      display: table;
      content: ""; }
    .row:after {
      clear: both; }
  [class*="span"] {
    float: left;
    margin-left: 20px; }
  .container, .usyd-page, .navbar-fixed-top .container, .navbar-fixed-top .usyd-page, .navbar-fixed-bottom .container, .navbar-fixed-bottom .usyd-page {
    width: 1180px; }
  .span1 {
    width: 80px; }
  .span2 {
    width: 180px; }
  .span3 {
    width: 280px; }
  .span4 {
    width: 380px; }
  .span5 {
    width: 480px; }
  .span6 {
    width: 580px; }
  .span7 {
    width: 680px; }
  .span8 {
    width: 780px; }
  .span9 {
    width: 880px; }
  .span10 {
    width: 980px; }
  .span11 {
    width: 1080px; }
  .span12 {
    width: 1180px; }
  .offset1 {
    margin-left: 120px; }
  .offset2 {
    margin-left: 220px; }
  .offset3 {
    margin-left: 320px; }
  .offset4 {
    margin-left: 420px; }
  .offset5 {
    margin-left: 520px; }
  .offset6 {
    margin-left: 620px; }
  .offset7 {
    margin-left: 720px; }
  .offset8 {
    margin-left: 820px; }
  .offset9 {
    margin-left: 920px; }
  .offset10 {
    margin-left: 1020px; }
  .offset11 {
    margin-left: 1120px; }
  .offset12 {
    margin-left: 1220px; }
  .row-fluid {
    width: 100%;
    *zoom: 1; }
    .row-fluid:before, .row-fluid:after {
      display: table;
      content: ""; }
    .row-fluid:after {
      clear: both; }
    .row-fluid [class*="span"] {
      display: block;
      width: 100%;
      min-height: 28px;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      -ms-box-sizing: border-box;
      box-sizing: border-box;
      float: left;
      margin-left: 2.5641%;
      *margin-left: 2.51091%; }
    .row-fluid [class*="span"]:first-child {
      margin-left: 0; }
    .row-fluid .span1 {
      width: 5.98291%;
      *width: 5.92971%; }
    .row-fluid .span2 {
      width: 14.52991%;
      *width: 14.47672%; }
    .row-fluid .span3 {
      width: 23.07692%;
      *width: 23.02373%; }
    .row-fluid .span4 {
      width: 31.62393%;
      *width: 31.57074%; }
    .row-fluid .span5 {
      width: 40.17094%;
      *width: 40.11775%; }
    .row-fluid .span6 {
      width: 48.71795%;
      *width: 48.66476%; }
    .row-fluid .span7 {
      width: 57.26496%;
      *width: 57.21177%; }
    .row-fluid .span8 {
      width: 65.81197%;
      *width: 65.75877%; }
    .row-fluid .span9 {
      width: 74.35897%;
      *width: 74.30578%; }
    .row-fluid .span10 {
      width: 82.90598%;
      *width: 82.85279%; }
    .row-fluid .span11 {
      width: 91.45299%;
      *width: 91.3998%; }
    .row-fluid .span12 {
      width: 100%;
      *width: 99.94681%; }
  input, textarea, .uneditable-input {
    margin-left: 0; }
  input.span1, textarea.span1, .uneditable-input.span1 {
    width: 70px; }
  input.span2, textarea.span2, .uneditable-input.span2 {
    width: 170px; }
  input.span3, textarea.span3, .uneditable-input.span3 {
    width: 270px; }
  input.span4, textarea.span4, .uneditable-input.span4 {
    width: 370px; }
  input.span5, textarea.span5, .uneditable-input.span5 {
    width: 470px; }
  input.span6, textarea.span6, .uneditable-input.span6 {
    width: 570px; }
  input.span7, textarea.span7, .uneditable-input.span7 {
    width: 670px; }
  input.span8, textarea.span8, .uneditable-input.span8 {
    width: 770px; }
  input.span9, textarea.span9, .uneditable-input.span9 {
    width: 870px; }
  input.span10, textarea.span10, .uneditable-input.span10 {
    width: 970px; }
  input.span11, textarea.span11, .uneditable-input.span11 {
    width: 1070px; }
  input.span12, textarea.span12, .uneditable-input.span12 {
    width: 1170px; }
  .thumbnails {
    margin-left: -20px; }
  .thumbnails > li {
    margin-left: 20px; }
  .row-fluid .thumbnails {
    margin-left: 0; } }

/*
	Defines the common structural elements to most pages, based primarily on bootstrap grid structure.

	body: wraps the primary content section of any page and is essentially
	a grid row container.

		menu-aside: contains the left-hand menu

		main: contains the content body

		feature-aside: contains feature panels etc
*/
.usyd-clear {
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0; }

.usyd-stack {
  display: block;
  margin: 10px 0; }

.usyd-body {
  *zoom: 1; }
  .usyd-body:before, .usyd-body:after {
    display: table;
    content: ""; }
  .usyd-body:after {
    clear: both; }

.usyd-no-aside .usyd-feature-aside {
  display: none; }

.usyd-no-menu .usyd-menu-aside {
  display: none; }

@media (max-width: 768px) {
  body {
    padding-left: 0;
    padding-right: 0; } }

@media (max-width: 767px) {
  body {
    padding-left: 0;
    padding-right: 0; }
  .usyd-body {
    padding-left: 20px;
    padding-right: 20px; }
  .usyd-menu-aside {
    display: none; }
  .usyd-grid-wrap {
    float: none; }
  .usyd-grid-wrap-img-gallery {
    float: none; } }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-body {
    margin-left: -15px;
    *zoom: 1; }
    .usyd-body:before, .usyd-body:after {
      display: table;
      content: ""; }
    .usyd-body:after {
      clear: both; }
  .usyd-grid-wrap .usyd-grid-wrap-img-gallery {
    margin-left: 0px; }
  .usyd-grid-wrap, .usyd-inline-wrap {
    margin-left: 15px; }
  .usyd-grid-wrap-img-gallery, .usyd-inline-wrap {
    margin-left: 15px; }
  .usyd-aside {
    float: left;
    margin-left: 15px;
    width: 171px; }
  .usyd-main {
    float: left;
    margin-left: 15px;
    width: 357px; }
  .usyd-main {
    float: left;
    margin-left: 15px;
    width: 357px; }
    .usyd-no-menu .usyd-main, .usyd-no-aside .usyd-main {
      float: left;
      margin-left: 15px;
      width: 543px; }
    .usyd-no-menu.usyd-no-aside .usyd-main {
      float: left;
      margin-left: 15px;
      width: 729px; }
  .usyd-content-page .usyd-main {
    float: left;
    margin-left: 15px;
    width: 543px; }
    .usyd-no-aside .usyd-content-page .usyd-main {
      float: left;
      margin-left: 15px;
      width: 729px; }
  .usyd-content-page .usyd-menu-aside {
    display: none; }
  .usyd-xsmall {
    float: left;
    margin-left: 15px;
    width: 171px; }
  .usyd-small {
    float: left;
    margin-left: 15px;
    width: 357px; }
  .usyd-large {
    float: left;
    margin-left: 15px;
    width: 543px; }
  .usyd-xlarge {
    float: left;
    margin-left: 15px;
    width: 729px; } }

@media (min-width: 980px) and (max-width: 1299px) {
  .usyd-body {
    margin-left: -20px;
    *zoom: 1; }
    .usyd-body:before, .usyd-body:after {
      display: table;
      content: ""; }
    .usyd-body:after {
      clear: both; }
  .usyd-grid-wrap .usyd-grid-wrap-img-gallery {
    margin-left: 0px; }
  .usyd-grid-wrap, .usyd-inline-wrap {
    margin-left: 20px; }
  .usyd-grid-wrap-img-gallery, .usyd-inline-wrap {
    margin-left: 20px; }
  .usyd-aside {
    float: left;
    margin-left: 20px;
    width: 220px; }
  .usyd-main {
    float: left;
    margin-left: 20px;
    width: 460px; }
    .usyd-no-menu .usyd-main, .usyd-no-aside .usyd-main {
      float: left;
      margin-left: 20px;
      width: 700px; }
    .usyd-no-menu.usyd-no-aside .usyd-main {
      float: left;
      margin-left: 20px;
      width: 940px; }
  .usyd-xsmall {
    float: left;
    margin-left: 20px;
    width: 220px; }
  .usyd-small {
    float: left;
    margin-left: 20px;
    width: 460px; }
  .usyd-large {
    float: left;
    margin-left: 20px;
    width: 700px; }
  .usyd-xlarge {
    float: left;
    margin-left: 20px;
    width: 940px; } }

@media (min-width: 1300px) {
  .usyd-body {
    margin-left: -20px;
    *zoom: 1; }
    .usyd-body:before, .usyd-body:after {
      display: table;
      content: ""; }
    .usyd-body:after {
      clear: both; }
  .usyd-grid-wrap .usyd-grid-wrap-img-gallery {
    margin-left: 0px; }
  .usyd-grid-wrap, .usyd-inline-wrap {
    margin-left: 20px; }
  .usyd-grid-wrap-img-gallery, .usyd-inline-wrap {
    margin-left: 20px; }
  .usyd-aside {
    float: left;
    margin-left: 20px;
    width: 280px; }
  .usyd-main {
    float: left;
    margin-left: 20px;
    width: 580px; }
    .usyd-no-menu .usyd-main, .usyd-no-aside .usyd-main {
      float: left;
      margin-left: 20px;
      width: 880px; }
    .usyd-no-menu.usyd-no-aside .usyd-main {
      float: left;
      margin-left: 20px;
      width: 1180px; }
  .usyd-xsmall {
    float: left;
    margin-left: 20px;
    width: 280px; }
  .usyd-small {
    float: left;
    margin-left: 20px;
    width: 580px; }
  .usyd-large {
    float: left;
    margin-left: 20px;
    width: 880px; }
  .usyd-xlarge {
    float: left;
    margin-left: 20px;
    width: 1180px; } }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
@media (min-width: 768px) {
  .usyd-grid-wrap-clear.cq-Editable-dom + div:not(.usyd-grid-wrap-clear) {
    clear: both; }
  .usyd-grid-wrap {
    margin-bottom: 20px;
    float: left; }
    .usyd-grid-wrap > *[class*=span], .usyd-grid-wrap .usyd-xsmall, .usyd-grid-wrap .usyd-small, .usyd-grid-wrap .usyd-large, .usyd-grid-wrap .usyd-xlarge {
      margin-left: 0;
      float: none; }
    .usyd-grid-wrap > :first-child {
      margin-bottom: 0; }
    .usyd-aside .usyd-grid-wrap {
      float: none; } }

@media (max-width: 767px) {
  .usyd-grid-wrap {
    margin-bottom: 20px; } }

.usyd-column > .usyd-grid-wrap, .usyd-column > .usyd-inline-wrap {
  margin-left: 0;
  float: none; }

.usyd-no-wrap {
  *zoom: 1; }
  .usyd-no-wrap:before, .usyd-no-wrap:after {
    display: table;
    content: ""; }
  .usyd-no-wrap:after {
    clear: both; }

.usyd-line-break {
  *zoom: 1;
  clear: both; }
  .usyd-line-break:before, .usyd-line-break:after {
    display: table;
    content: ""; }
  .usyd-line-break:after {
    clear: both; }

.usyd-ui-sans-padding .usyd-ui-sans-border, .usyd-ui-sans-padding .usyd-ui-content-group.usyd-ui-emphasis-none {
  padding-top: 0; }
  .usyd-ui-sans-padding .usyd-ui-sans-border .usyd-clipping img, .usyd-ui-sans-padding .usyd-ui-content-group.usyd-ui-emphasis-none .usyd-clipping img {
    margin-top: 0; }

.cq-wcm-edit.usyd-no-aside .usyd-feature-aside {
  display: block; }

.cq-wcm-edit.usyd-no-menu .usyd-menu-aside {
  display: block; }

@media (min-width: 768px) and (max-width: 979px) {
  .cq-wcm-edit.usyd-no-aside .usyd-feature-aside {
    float: left;
    margin-left: 201px;
    width: 543px; }
  .cq-wcm-edit.usyd-no-menu .usyd-menu-aside {
    float: left;
    margin-left: 15px;
    width: 729px; }
  .cq-wcm-edit.usyd-no-aside.usyd-no-menu .usyd-feature-aside {
    float: left;
    margin-left: 15px;
    width: 729px; } }

@media (min-width: 980px) and (max-width: 1299px) {
  .cq-wcm-edit.usyd-no-aside .usyd-feature-aside {
    float: left;
    margin-left: 260px;
    width: 700px; }
  .cq-wcm-edit.usyd-no-menu .usyd-menu-aside {
    float: left;
    margin-left: 20px;
    width: 940px; }
  .cq-wcm-edit.usyd-no-aside.usyd-no-menu .usyd-feature-aside {
    float: left;
    margin-left: 20px;
    width: 940px; } }

@media (min-width: 1300px) {
  .cq-wcm-edit.usyd-no-aside .usyd-feature-aside {
    float: left;
    margin-left: 320px;
    width: 880px; }
  .cq-wcm-edit.usyd-no-menu .usyd-menu-aside {
    float: left;
    margin-left: 20px;
    width: 1180px; }
  .cq-wcm-edit.usyd-no-aside.usyd-no-menu .usyd-feature-aside {
    float: left;
    margin-left: 20px;
    width: 1180px; } }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-local-heading {
  font-size: 18px;
  padding: 26px 0 10px 0;
  border-top: 2px solid #e64626; }
  .usyd-local-heading a:link,
  .usyd-local-heading a:visited {
    color: #e64626; }

.usyd-home-page .usyd-local-heading {
  margin-bottom: 10px; }

.usyd-home-page .usyd-horizontal-line {
  margin: 20px 0;
  border-top-color: #e64626;
  background: #e64626; }

@media (max-width: 979px) {
  .usyd-local-heading {
    padding: 0 0 10px;
    border: none; }
  .usyd-skinned-page .usyd-tabs > h2 {
    top: -60px; }
  .usyd-skinned-page .usyd-ui-common-nav {
    margin-bottom: 0; }
  .usyd-skinned-page .usyd-local-heading {
    margin-bottom: 20px; } }

.usyd-local-main {
  background-color: #F1F1F1; }
  .usyd-local-main .usyd-horizontal-line {
    width: 100%;
    margin: 0;
    border-top-color: #e64626; }
  .usyd-local-main .usyd-ui-more-link {
    margin-bottom: 0; }
    .usyd-local-main .usyd-ui-more-link a {
      background-color: #f1f1f1; }

@media (max-width: 767px) {
  .usyd-local-heading {
    padding-left: 19px; }
  .usyd-local-main {
    margin-bottom: 20px;
    padding: 20px; } }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-local-main {
    padding: 15px;
    margin: 0 -20px 20px;
    /*.usyd-xsmall {
			width: span-width(3, $gridColumnWidthTablet, $gridGutterWidthTablet) - ($gridGutterWidthTablet * 2);
		}

		.usyd-small {
			width: span-width(6, $gridColumnWidthTablet, $gridGutterWidthTablet) - ($gridGutterWidthTablet * 2);
		}

		.usyd-large {
			width: span-width(9, $gridColumnWidthTablet, $gridGutterWidthTablet) - ($gridGutterWidthTablet * 2);
		}

		.usyd-xlarge {
			width: span-width(12, $gridColumnWidthTablet, $gridGutterWidthTablet) - ($gridGutterWidthTablet * 2);
		}*/ } }

@media (min-width: 980px) and (max-width: 1299px) {
  .usyd-local-main {
    padding: 20px;
    margin: 0 -20px 20px;
    /*.usyd-xsmall {
			width: span-width(3, $gridColumnWidth, $gridGutterWidth) - ($gridGutterWidth * 2);
		}

		.usyd-small {
			width: span-width(6, $gridColumnWidth, $gridGutterWidth) - ($gridGutterWidth * 2);
		}

		.usyd-large {
			width: span-width(9, $gridColumnWidth, $gridGutterWidth) - ($gridGutterWidth * 2);
		}

		.usyd-xlarge {
			width: span-width(12, $gridColumnWidth, $gridGutterWidth) - ($gridGutterWidth * 2);
		}*/ } }

@media (min-width: 1300px) {
  .usyd-local-main {
    padding: 40px 40px 20px;
    margin: 0 -40px 54px;
    /*.usyd-xsmall {
			width: span-width(3, $gridColumnWidthLarge, $gridGutterWidthLarge) - ($gridGutterWidthLarge * 2);
		}

		.usyd-small {
			width: span-width(6, $gridColumnWidthLarge, $gridGutterWidthLarge) - ($gridGutterWidthLarge * 2);
		}

		.usyd-large {
			width: span-width(9, $gridColumnWidthLarge, $gridGutterWidthLarge) - ($gridGutterWidthLarge * 2);
		}

		.usyd-xlarge {
			width: span-width(12, $gridColumnWidthLarge, $gridGutterWidthLarge) - ($gridGutterWidthLarge * 2);
		}*/ } }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-columns {
  *zoom: 1;
  margin-left: -20px;
  margin-bottom: 20px; }
  .usyd-columns:before, .usyd-columns:after {
    display: table;
    content: ""; }
  .usyd-columns:after {
    clear: both; }
  .usyd-columns .usyd-column {
    box-sizing: border-box;
    float: left;
    padding-left: 20px; }
    .usyd-columns .usyd-column.usyd-column-last {
      padding-right: 0; }
  .usyd-columns.usyd-columns-2 .usyd-column {
    width: 50%; }
  .usyd-columns.usyd-columns-3 .usyd-column {
    width: 33.3%; }
  .usyd-columns.usyd-columns-4 .usyd-column {
    width: 25%; }
  .usyd-columns.usyd-columns-5 .usyd-column {
    width: 20%; }

@media (max-width: 767px) {
  .usyd-columns {
    margin-left: -20px;
    margin-bottom: 20px; }
    .usyd-columns > .usyd-column {
      padding-left: 20px; }
    .usyd-columns.usyd-columns-2 .usyd-column {
      width: 100%; } }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-columns {
    margin-left: -15px;
    margin-bottom: 15px; }
    .usyd-columns .usyd-columns-2 .usyd-column {
      width: 100%; }
    .usyd-columns > .usyd-column {
      padding-left: 15px; } }

@media (min-width: 980px) and (max-width: 1299px) {
  .usyd-columns {
    margin-left: -20px;
    margin-bottom: 20px; }
    .usyd-columns > .usyd-column {
      padding-left: 20px; } }

@media (min-width: 980px) and (max-width: 1299px) {
  .usyd-columns {
    margin-left: -20px;
    margin-bottom: 20px; }
    .usyd-columns > .usyd-column {
      padding-left: 20px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Ordered and unordered lists

Styleguide 1.1
*/
ul, ol {
  margin: 0;
  padding: 0; }
  ul li, ol li {
    font-size: 12px;
    margin: 0.75em 0; }

/*
Standard unordered content lists with 3 levels of supported nesting
*/
.usyd-ui-standard-list, .usyd-body-content ul, .usyd-aside-content ul {
  margin: 1em 0;
  list-style: none; }
  .usyd-ui-standard-list > li, .usyd-body-content ul > li, .usyd-aside-content ul > li {
    background: url(foundation/resources/intranet-components/assets/img/ndash-red.png) no-repeat 6px 3px;
    padding-left: 25px; }
  .usyd-ui-standard-list ul > li, .usyd-body-content ul ul > li, .usyd-aside-content ul ul > li {
    background: url(foundation/resources/intranet-components/assets/img/dash-red.png) no-repeat 11px 3px;
    padding-left: 25px; }
  .usyd-ui-standard-list ul ul > li, .usyd-body-content ul ul ul > li, .usyd-aside-content ul ul ul > li {
    background: url(foundation/resources/intranet-components/assets/img/dot-red.png) no-repeat 11px 3px;
    padding-left: 25px; }
  .usyd-ui-standard-list > ul, .usyd-body-content ul > ul, .usyd-aside-content ul > ul {
    margin-left: 2.3em; }
    .usyd-ui-standard-list > ul > ul, .usyd-body-content ul > ul > ul, .usyd-aside-content ul > ul > ul {
      margin-left: 2.3em; }

.usyd-ui-ordered-list, .usyd-body-content ol, .usyd-aside-content ol, .usyd-clause-list, .usyd-clause-list ol, .usyd-clause-list ol ol, .usyd-clause-list ol ol ol {
  list-style: decimal outside;
  margin-left: 2.5em; }
  .usyd-ui-ordered-list.usyd-alpha-list, .usyd-body-content ol.usyd-alpha-list, .usyd-aside-content ol.usyd-alpha-list, .usyd-alpha-list.usyd-clause-list, .usyd-clause-list ol, .usyd-clause-list ol ol, .usyd-clause-list ol ol ol {
    list-style: lower-alpha outside; }
  .usyd-ui-ordered-list.usyd-roman-list, .usyd-body-content ol.usyd-roman-list, .usyd-aside-content ol.usyd-roman-list, .usyd-roman-list.usyd-clause-list, .usyd-clause-list ol.usyd-roman-list, .usyd-clause-list ol ol, .usyd-clause-list ol ol ol {
    list-style: lower-roman outside; }
  .usyd-ui-ordered-list.usyd-upper-alpha-list, .usyd-body-content ol.usyd-upper-alpha-list, .usyd-aside-content ol.usyd-upper-alpha-list, .usyd-upper-alpha-list.usyd-clause-list, .usyd-clause-list ol.usyd-upper-alpha-list, .usyd-clause-list ol ol ol {
    list-style: upper-alpha outside; }
  .usyd-ui-ordered-list.usyd-upper-roman-list, .usyd-body-content ol.usyd-upper-roman-list, .usyd-aside-content ol.usyd-upper-roman-list, .usyd-upper-roman-list.usyd-clause-list, .usyd-clause-list ol.usyd-upper-roman-list {
    list-style: upper-roman outside; }
  .usyd-ui-ordered-list > li, .usyd-body-content ol > li, .usyd-aside-content ol > li, .usyd-clause-list > li, .usyd-clause-list ol > li, .usyd-clause-list ol ol > li, .usyd-clause-list ol ol ol > li {
    background: transparent;
    padding-left: 0; }

/*
List of unordered links
*/
.usyd-link-list > li {
  padding-left: 15px;
  position: relative; }
  .usyd-link-list > li:before, .usyd-link-list > li > .ie-before {
    content: "";
    font-family: fontello;
    speak: none;
    font-variant: normal;
    text-transform: none;
    font-style: normal !important;
    *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe894;&nbsp;');
    font-size: 8px;
    position: absolute;
    left: 0;
    top: 3px;
    color: #e64626; }
  .usyd-link-list > li {
    /* ::before polyfill - creates <i class="ie-before"></i> */
    zoom: expressionthis; }

.usyd-icon-list > li {
  margin-bottom: 10px; }

.usyd-inline-list > li {
  display: inline-block;
  margin-right: 5px; }

.usyd-inline-list.pull-right > li {
  margin-left: 5px;
  margin-right: 0; }

.usyd-inline-list.usyd-icon-list > li {
  margin-bottom: 5px; }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-ui-compact-list li {
    width: auto;
    padding: 0 0 0 30px; } }

@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
  .usyd-ui-standard-list > li, .usyd-body-content ul > li, .usyd-aside-content ul > li {
    background-image: url(foundation/resources/intranet-components/assets/img/ndash-red@2x.png);
    background-size: 8px 8px; }
    .usyd-ui-standard-list > li ul > li, .usyd-body-content ul > li ul > li, .usyd-aside-content ul > li ul > li {
      background-image: url(foundation/resources/intranet-components/assets/img/dash-red@2x.png);
      background-size: 8px 8px; }
    .usyd-ui-standard-list > li ul ul > li, .usyd-body-content ul > li ul ul > li, .usyd-aside-content ul > li ul ul > li {
      background-image: url(foundation/resources/intranet-components/assets/img/dot-red@2x.png);
      background-size: 8px 8px; } }

/*
Column support for various types of list
*/
.usyd-list-2-columns, .usyd-list-3-columns, .usyd-list-4-columns {
  *zoom: 1; }
  .usyd-list-2-columns:before, .usyd-list-2-columns:after, .usyd-list-3-columns:before, .usyd-list-3-columns:after, .usyd-list-4-columns:before, .usyd-list-4-columns:after {
    display: table;
    content: ""; }
  .usyd-list-2-columns:after, .usyd-list-3-columns:after, .usyd-list-4-columns:after {
    clear: both; }
  .usyd-list-2-columns > li, .usyd-list-3-columns > li, .usyd-list-4-columns > li {
    box-sizing: border-box;
    float: left;
    display: block;
    padding-right: 10px; }

.usyd-list-2-columns > li {
  width: 50%; }
  .usyd-list-2-columns > li:nth-child(2n + 1) {
    clear: left; }

.usyd-list-3-columns > li {
  width: 33.3%; }
  .usyd-list-3-columns > li:nth-child(3n + 1) {
    clear: left; }

.usyd-list-4-columns > li {
  width: 25%; }
  .usyd-list-4-columns > li:nth-child(4n + 1) {
    clear: left; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-labelled-list, dl {
  font-size: 12px;
  overflow: hidden;
  margin-bottom: 10px; }

dt, .usyd-item-label {
  color: #757575;
  float: left;
  margin-right: 10px;
  margin-top: 5px;
  clear: left; }
  dt:first-child, .usyd-item-label:first-child {
    margin-top: 0; }

dd, .usyd-item-detail {
  display: block;
  overflow: hidden;
  margin-top: 5px; }
  dt:first-child + dd, .usyd-item-label:first-child + dd, dt:first-child + .usyd-item-detail, .usyd-item-label:first-child + .usyd-item-detail {
    margin-top: 0; }

@media (max-width: 767px) {
  .usyd-labelled-list dt, .usyd-labelled-list .usyd-item-label, dl dt, dl .usyd-item-label {
    float: none;
    width: auto;
    clear: none;
    margin-top: 10px;
    display: block; }
  .usyd-labelled-list dd, .usyd-labelled-list .usyd-item-detail, dl dd, dl .usyd-item-detail {
    margin-left: 0;
    margin-bottom: 0; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-title-highlighted {
  font-weight: normal; }

.usyd-ui-highlight {
  font-weight: bold; }

.usyd-ui-result-list {
  border: none; }

.usyd-ui-result-item {
  margin-bottom: 3em; }
  .usyd-ui-result-item h3 {
    margin-top: 0; }
  .usyd-ui-result-item.usyd-ui-alt {
    background-color: #f7f7f7; }

/*
Used to mark up an item of metadata such as the date of an event or the location. Text could potentially be accompanied by an icon.
*/
.usyd-metadata {
  font-size: 12px;
  color: #737373; }
  .usyd-metadata a:link, .usyd-metadata a:visited {
    color: #737373; }
  .usyd-metadata a:active {
    color: #404040; }

.usyd-ui-result-metadata {
  margin: 0; }

.usyd-ui-result-url {
  color: #4B9450; }
  .usyd-ui-result-url a {
    color: #4B9450;
    text-decoration: none; }
    .usyd-ui-result-url a:hover {
      text-decoration: underline; }

@media (min-width: 1300px) {
  .usyd-ui-result-row {
    margin: 0; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-mask {
  z-index: 500;
  position: fixed;
  background-color: #000;
  top: 0;
  left: 0; }

.usyd-ui-unmasked, .usyd-ui-mask-window {
  z-index: 500; }

.usyd-ui-mask-window {
  -webkit-box-shadow: 0 0 100px #000;
  -moz-box-shadow: 0 0 100px #000;
  box-shadow: 0 0 100px #000;
  background: white; }

.usyd-ui-mask-window-title {
  margin: 0 0 1em 0; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-menu a {
  display: block;
  padding: 5px; }
  .usyd-menu a:link {
    text-decoration: none;
    color: black; }
  .usyd-menu a.page-heading {
    padding: 5px 0px 5px 0px; }
  .usyd-menu a:hover, .usyd-menu a:focus {
    background-color: #f7f7f7;
    text-decoration: underline; }
  .usyd-menu a:visited {
    text-decoration: none;
    color: black; }
  .usyd-menu a:active {
    background-color: black;
    color: #fff;
    text-decoration: none; }

.usyd-menu div.usyd-active {
  background-color: #f7f7f7; }

.usyd-menu li {
  border-color: #e6e6e6;
  border-width: 1px 0 0 0;
  border-style: solid;
  margin: 0;
  background: none;
  position: relative;
  padding: 0; }
  .usyd-menu li.usyd-active > a {
    font-weight: bold;
    background-color: #f7f7f7; }
    .usyd-menu li.usyd-active > a:active {
      background-color: black;
      color: #fff;
      text-decoration: none; }

@media (min-width: 980px) {
  .usyd-nav-menu {
    margin-top: 10px; }
    .usyd-nav-menu li > a {
      padding: 5px 25px 5px 20px;
      background: url(foundation/resources/intranet-components/assets/img/arrow-red.png) no-repeat 5px 8px; } }
    @media only screen and (min-width: 980px) and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-width: 980px) and (min-resolution: 144dpi) {
      .usyd-nav-menu li > a {
        background-image: url(foundation/resources/intranet-components/assets/img/arrow-red@2x.png);
        background-size: 8px 8px; } }

@media (min-width: 980px) {
    .usyd-nav-menu li > .usyd-activator {
      background-color: #e64626;
      color: #fff;
      -webkit-border-radius: 2px;
      -moz-border-radius: 2px;
      -ms-border-radius: 2px;
      -o-border-radius: 2px;
      border-radius: 2px;
      font-weight: bold;
      font-size: 1.1em;
      text-transform: uppercase;
      border: none;
      padding: 0 10px;
      margin: 0 2px;
      cursor: pointer;
      vertical-align: middle;
      height: 28px;
      overflow: visible;
      text-decoration: none;
      display: inline-block;
      line-height: 29px;
      /* IE8 */
      *line-height: 28px;
      /* IE7 */
      text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
      -webkit-appearance: none;
      width: 16px;
      height: 16px;
      padding: 0;
      margin: -20px 5px 0 0;
      position: absolute;
      right: 0;
      top: 24px;
      font-weight: normal;
      text-align: center;
      line-height: 15px;
      color: white;
      cursor: pointer; }
      .usyd-nav-menu li > .usyd-activator:not([dummy]) {
        line-height: auto;
        /* NOT IE7/IE8 */ }
      .usyd-nav-menu li > .usyd-activator a {
        color: #fff; }
      .usyd-nav-menu li > .usyd-activator span {
        line-height: 28px;
        vertical-align: top; }
      .usyd-nav-menu li > .usyd-activator:hover {
        background: -owg-linear-gradient(#ea6146, #d03718);
        background: -webkit-linear-gradient(#ea6146, #d03718);
        background: -moz-linear-gradient(#ea6146, #d03718);
        background: -o-linear-gradient(#ea6146, #d03718);
        -pie-background: -pie-linear-gradient(#ea6146, #d03718);
        background: linear-gradient(#ea6146, #d03718);
        background: #e64626\9;
        -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
        -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
        box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
        display: inline-block; }
      .usyd-nav-menu li > .usyd-activator:active {
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
        display: inline-block; }
      .usyd-nav-menu li > .usyd-activator:visited, .usyd-nav-menu li > .usyd-activator:link {
        color: #fff; }
      .usyd-nav-menu li > .usyd-activator[disabled] {
        background: white;
        color: #757575;
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
        text-shadow: none;
        cursor: default;
        border: 1px solid #eee;
        line-height: 28px; }
      .usyd-nav-menu li > .usyd-activator:hover {
        text-decoration: none; }
    .usyd-nav-menu .usyd-nav-submenu ul {
      padding-left: 20px;
      overflow: hidden;
      -webkit-transition: max-height 0.5s false;
      -moz-transition: max-height 0.5s false false;
      -o-transition: max-height 0.5s false false;
      transition: max-height 0.5s; }
      .usyd-nav-menu .usyd-nav-submenu ul > li > a {
        background: url(foundation/resources/intranet-components/assets/img/arrow-small-red.png) no-repeat 5px 8px; } }
      @media only screen and (min-width: 980px) and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-width: 980px) and (min-resolution: 144dpi) {
        .usyd-nav-menu .usyd-nav-submenu ul > li > a {
          background-image: url(foundation/resources/intranet-components/assets/img/arrow-small-red@2x.png);
          background-size: 8px 8px; } }

@media (min-width: 980px) {
      .usyd-nav-menu .usyd-nav-submenu ul > li > li > a {
        background: url(foundation/resources/intranet-components/assets/img/arrow-smallest-red.png) no-repeat 5px 8px; } }
      @media only screen and (min-width: 980px) and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-width: 980px) and (min-resolution: 144dpi) {
        .usyd-nav-menu .usyd-nav-submenu ul > li > li > a {
          background-image: url(foundation/resources/intranet-components/assets/img/arrow-smallest-red@2x.png);
          background-size: 8px 8px; } }

@media (min-width: 980px) {
    .usyd-nav-menu .usyd-nav-submenu.usyd-show ul {
      display: block; }
    .usyd-nav-menu .usyd-nav-submenu.usyd-hide ul {
      display: none; } }

.usyd-ui-pager, .dataTables_paginate {
  font-size: 1.3em;
  text-align: center;
  overflow: hidden; }
  .usyd-ui-pager li, .dataTables_paginate li {
    float: left; }

.usyd-ui-page-link, .usyd-ui-page-link:visited, .paginate_button {
  font-weight: bold;
  padding: 0.25em;
  display: inline-block;
  margin-bottom: 0.25em;
  margin-top: 0.25em;
  margin-right: 0.1em;
  min-width: 1.25em;
  text-decoration: none;
  border: 1px solid transparent;
  text-align: center;
  color: #195b98;
  cursor: pointer; }
  .usyd-ui-page-link.usyd-ui-active, .usyd-ui-page-link.usyd-ui-active:hover, .usyd-ui-page-link.usyd-ui-active:focus, .usyd-ui-page-link.current, .usyd-ui-page-link.current:hover, .usyd-ui-page-link.current:focus, .usyd-ui-page-link:visited.usyd-ui-active, .usyd-ui-page-link:visited.usyd-ui-active:hover, .usyd-ui-page-link:visited.usyd-ui-active:focus, .usyd-ui-page-link:visited.current, .usyd-ui-page-link:visited.current:hover, .usyd-ui-page-link:visited.current:focus, .paginate_button.usyd-ui-active, .paginate_button.usyd-ui-active:hover, .paginate_button.usyd-ui-active:focus, .paginate_button.current, .paginate_button.current:hover, .paginate_button.current:focus {
    font-weight: bold;
    color: gray;
    border-color: #bfbfbf;
    background: #e6e6e6; }
  .usyd-ui-page-link:hover, .usyd-ui-page-link:focus, .usyd-ui-page-link:visited:hover, .usyd-ui-page-link:visited:focus, .paginate_button:hover, .paginate_button:focus {
    border-color: #2176c3;
    background: #d1deea; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-news-feature-row {
  margin-bottom: 20px; }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-medium-span3 {
    margin-top: 2em; }
    .usyd-medium-span3:first-child {
      margin-top: 0;
      margin-bottom: 2em; } }

.usyd-notice, .usyd-notice-error, .usyd-notice-warning, .usyd-notice-info, .usyd-notice-success {
  padding: 1em;
  border-left: 2px solid transparent; }

.usyd-notice-error {
  border-color: #ce1126;
  background-color: #fdf3f4;
  color: #ce1126; }
  .usyd-notice-error a {
    color: #ce1126; }
  .usyd-notice-error .usyd-close-notice {
    float: right;
    text-decoration: none; }

.usyd-notice-warning {
  border-color: #bc5200;
  background-color: #fffbf2;
  color: #bc5200; }
  .usyd-notice-warning a {
    color: #bc5200; }
  .usyd-notice-warning .usyd-close-notice {
    float: right;
    text-decoration: none; }

.usyd-notice-info {
  border-color: #12416c;
  background-color: #f3f6f8;
  color: #12416c; }
  .usyd-notice-info a {
    color: #12416c; }
  .usyd-notice-info .usyd-close-notice {
    float: right;
    text-decoration: none; }

.usyd-notice-success {
  border-color: #3e5712;
  background-color: #f5f7f3;
  color: #3e5712; }
  .usyd-notice-success a {
    color: #3e5712; }
  .usyd-notice-success .usyd-close-notice {
    float: right;
    text-decoration: none; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-notifier-fixed {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 500;
  z-index: 5000; }

.usyd-notifier-notice {
  padding: 0.833em 4em 0.833em 0.833em;
  position: relative;
  font-size: 1.2em;
  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.4);
  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.4);
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.4);
  border-bottom: 1px solid transparent; }
  .usyd-notifier-notice.usyd-notifier-info {
    background: #fffbf2;
    border-color: #bc5200;
    color: #bc5200; }
    .usyd-notifier-notice.usyd-notifier-info .usyd-notifier-dismiss {
      color: #bc5200; }
    .usyd-notifier-notice.usyd-notifier-info a {
      font-weight: bold;
      color: black; }
  .usyd-notifier-notice .usyd-action {
    margin: 0 0 0 1em; }
    .usyd-notifier-notice .usyd-action + .usyd-action {
      margin-left: 1em; }
  .usyd-notifier-notice.usyd-notifier-error {
    background: #fdf3f4;
    border-color: #ce1126;
    color: #ce1126; }
    .usyd-notifier-notice.usyd-notifier-error .usyd-notifier-dismiss {
      color: #ce1126; }
    .usyd-notifier-notice.usyd-notifier-error a {
      font-weight: bold;
      color: black; }
  .usyd-notifier-notice button {
    vertical-align: middle;
    display: inline-block; }

.usyd-notifier-dismiss {
  border-radius: 99em;
  text-decoration: none;
  height: 1.5em;
  width: 1.5em;
  text-align: center;
  position: absolute;
  right: 1em;
  top: 0.55em;
  line-height: 1.5em; }

.fancybox-wrap .download-link {
  font-size: 1.2em;
  font-weight: bold;
  display: block;
  margin: 1em 0 0;
  padding-left: 20px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-perdiem-config {
  border-bottom: 1px solid #e6e6e6;
  padding-bottom: 1.5em;
  overflow: hidden; }

.usyd-perdiem-config-label {
  font-weight: bold;
  margin: 0 10px 5px 0; }

.usyd-perdiem-days-away {
  float: left;
  margin-right: 10px;
  margin-bottom: 10px; }
  .usyd-perdiem-days-away input {
    width: auto; }

#usyd-perdiem-reset {
  float: left;
  margin-top: 1em; }

.usyd-perdiem-country {
  float: left;
  margin-bottom: 1em; }

.usyd-perdiem-day {
  clear: both;
  overflow: hidden;
  margin: 0;
  border-top: 1px solid white;
  padding: 1em 0;
  border-bottom: 1px solid #e6e6e6; }

.usyd-perdiem-working-day {
  float: left;
  width: 16.66667%;
  *width: 16.5%; }

.usyd-perdiem-provisions {
  float: left;
  width: 66.66667%;
  *width: 66%; }

.usyd-perdiem-day-nonworking .usyd-perdiem-provisions {
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
  opacity: 0.5; }

.usyd-perdiem-day-provision-label {
  float: left;
  width: 25%;
  *width: 24.75%;
  min-width: 90px; }

.usyd-perdiem-provision-rate {
  display: block;
  margin-left: 20px;
  font-size: 11px; }

.usyd-perdiem-day-total {
  font-size: 12px;
  font-size: 1.2rem;
  text-align: right;
  float: left;
  width: 16.66667%;
  *width: 16.5%; }

.usyd-perdiem-total {
  text-align: right;
  font-size: 14px;
  font-size: 1.4rem;
  margin: 0;
  border-top: 1px solid white;
  padding-top: 1em; }

.usyd-perdiem-unconfigured {
  text-align: center;
  font-style: italic;
  margin: 0;
  border-top: 1px solid white;
  padding: 1em 0;
  border-bottom: 1px solid #e6e6e6; }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

.label, .badge {
  font-size: 10.998px;
  font-weight: bold;
  line-height: 14px;
  color: #fff;
  vertical-align: baseline;
  white-space: nowrap;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  background-color: #999; }

.label {
  padding: 1px 4px 2px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px; }

.badge {
  padding: 1px 9px 2px;
  -webkit-border-radius: 9px;
  -moz-border-radius: 9px;
  border-radius: 9px; }

a.label:hover, a.badge:hover {
  color: #fff;
  text-decoration: none;
  cursor: pointer; }

.label-important, .badge-important {
  background-color: #ce1126; }

.label-important[href], .badge-important[href] {
  background-color: #9f0d1d; }

.label-warning, .badge-warning {
  background-color: #f89406; }

.label-warning[href], .badge-warning[href] {
  background-color: #c67605; }

.label-success, .badge-success {
  background-color: #3e5712; }

.label-success[href], .badge-success[href] {
  background-color: #202d09; }

.label-info, .badge-info {
  background-color: #12416c; }

.label-info[href], .badge-info[href] {
  background-color: #0b2740; }

.label-inverse, .badge-inverse {
  background-color: #333; }

.label-inverse[href], .badge-inverse[href] {
  background-color: #1a1a1a; }

.label-warning, .badge-warning {
  background-color: #bc5200; }

.label-warning[href], .badge-warning[href] {
  background-color: #893c00; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.pds-question-top {
  margin: 1em 0 0.5em 0; }

.pds-box br {
  display: none; }

.pds-vote-button, .pds-vote-button-load {
  background-color: #e64626;
  color: #fff;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px;
  font-weight: bold;
  font-size: 1.1em;
  text-transform: uppercase;
  border: none;
  padding: 0 10px;
  margin: 0 2px;
  cursor: pointer;
  vertical-align: middle;
  height: 28px;
  overflow: visible;
  text-decoration: none;
  display: inline-block;
  line-height: 29px;
  /* IE8 */
  *line-height: 28px;
  /* IE7 */
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
  -webkit-appearance: none;
  text-transform: none;
  margin-right: 1em; }
  .pds-vote-button:not([dummy]), .pds-vote-button-load:not([dummy]) {
    line-height: auto;
    /* NOT IE7/IE8 */ }
  .pds-vote-button a, .pds-vote-button-load a {
    color: #fff; }
  .pds-vote-button span, .pds-vote-button-load span {
    line-height: 28px;
    vertical-align: top; }
  .pds-vote-button:hover, .pds-vote-button-load:hover {
    background: -owg-linear-gradient(#ea6146, #d03718);
    background: -webkit-linear-gradient(#ea6146, #d03718);
    background: -moz-linear-gradient(#ea6146, #d03718);
    background: -o-linear-gradient(#ea6146, #d03718);
    -pie-background: -pie-linear-gradient(#ea6146, #d03718);
    background: linear-gradient(#ea6146, #d03718);
    background: #e64626\9;
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    display: inline-block; }
  .pds-vote-button:active, .pds-vote-button-load:active {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: inline-block; }
  .pds-vote-button:visited, .pds-vote-button:link, .pds-vote-button-load:visited, .pds-vote-button-load:link {
    color: #fff; }
  .pds-vote-button[disabled], .pds-vote-button-load[disabled] {
    background: white;
    color: #757575;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    text-shadow: none;
    cursor: default;
    border: 1px solid #eee;
    line-height: 28px; }

.pds-answer-group {
  margin-bottom: 0.5em; }

.pds-answer-input {
  float: left; }

.pds-input-label {
  margin-left: 2.5em;
  display: block;
  padding-top: 3px; }

.pds-view-results, .pds-return-poll {
  font-size: 12px; }

.pds-answer-group, .pds-feedback-group {
  display: block;
  margin: 1em 0; }

.pds-answer-text {
  font-weight: bold; }

.pds-vote {
  margin-top: 1em; }

.pds-answer-feedback {
  border: 1px solid #cccccc;
  padding: 1px;
  margin-top: 0.5em; }

.pds-answer-feedback-bar {
  display: block;
  height: 1.5em;
  background-color: #d9d9d9; }

.usyd-wasm-user-unauthed .usyd-poll .pds-input-label {
  color: #737373; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.ui-rtp-activator {
  border: 1px solid #ccc;
  overflow: hidden;
  background: #fff;
  display: block;
  cursor: pointer; }
  .ui-rtp-activator:hover {
    text-decoration: none; }
  .ui-rtp-activator .ui-rtp-label {
    padding: 5px;
    font-size: 8pt;
    text-align: center;
    text-transform: uppercase;
    display: block;
    font-weight: bold; }
    .ui-rtp-activator .ui-rtp-label:hover {
      background: #efefef;
      text-decoration: none; }
    .ui-rtp-activator .ui-rtp-label .ui-rtp-label-plus-minus {
      color: #CE1126;
      font-size: 12pt;
      visibility: visible;
      display: inline; }

.ui-rtp-activator.lo-res {
  margin: 0;
  position: fixed;
  bottom: 0;
  right: 30px;
  border-width: 1px 1px 0 1px; }

.ui-rtp-activator.lo-res:hover {
  overflow: visible; }

.ui-rtp-activator.lo-res .ui-rtp-label:hover {
  padding-bottom: 5px; }

.ui-rtp-activator.hi-res {
  border-width: 1px 1px 1px 0;
  margin: 30px 0 0 -1px;
  width: 40px; }

.ui-rtp-activator.hi-res:hover {
  width: 45px; }

.ui-rtp-activator.hi-res .ui-rtp-label {
  width: 30px;
  right: 0;
  position: relative; }

.ui-rtp-activator.hi-res .ui-rtp-label:hover {
  padding-left: 10px; }

.ui-rtp-activator.hi-res .ui-rtp-label-plus-minus {
  display: block;
  width: 30px; }

.ui-rtp-section {
  width: 410px;
  font-size: 10pt;
  overflow: hidden;
  margin: 0.5em; }

.ui-rtp-section:focus {
  outline: none; }

.ui-rtp-section p {
  margin: 1em 0;
  line-height: 145%; }

.ui-rtp-section h1 {
  font-size: 15pt;
  margin: 0 0 10px 0;
  text-transform: uppercase;
  color: #CE1126;
  font-weight: normal; }

.rtp-form .question {
  display: block;
  margin: 20px 0 5px 0;
  font-weight: bold; }

.rtp-form legend.question {
  margin-top: 0;
  *margin-left: -7px; }

.rtp-form fieldset {
  margin-top: 20px; }

.rtp-form .scale-selector {
  overflow: hidden; }

.rtp-form .scale-selector label {
  width: 14.2%;
  float: left;
  text-align: center;
  color: #333;
  padding-top: 5px; }

.rtp-form .boolean-selector label {
  display: inline-block;
  width: 30%;
  padding-top: 5px; }

.rtp-form .scale-selector label input {
  display: block;
  margin: 0 auto; }

.rtp-form .scale-selector .scale {
  overflow: hidden;
  font-size: 8pt;
  color: #777;
  margin-bottom: 5px;
  display: block;
  clear: both; }

.rtp-form .scale-selector label:hover span.scale {
  color: #777; }

.rtp-submit {
  background-color: #12416C;
  color: #fff;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px;
  font-weight: bold;
  font-size: 1.1em;
  text-transform: uppercase;
  border: none;
  padding: 0 10px;
  margin: 0 2px;
  cursor: pointer;
  vertical-align: middle;
  height: 28px;
  overflow: visible;
  text-decoration: none;
  display: inline-block;
  line-height: 29px;
  /* IE8 */
  *line-height: 28px;
  /* IE7 */
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
  -webkit-appearance: none;
  margin-top: 1em;
  font-size: 1em; }
  .rtp-submit:not([dummy]) {
    line-height: auto;
    /* NOT IE7/IE8 */ }
  .rtp-submit a {
    color: #fff; }
  .rtp-submit span {
    line-height: 28px;
    vertical-align: top; }
  .rtp-submit:hover {
    background: -owg-linear-gradient(#17538b, #0d2f4d);
    background: -webkit-linear-gradient(#17538b, #0d2f4d);
    background: -moz-linear-gradient(#17538b, #0d2f4d);
    background: -o-linear-gradient(#17538b, #0d2f4d);
    -pie-background: -pie-linear-gradient(#17538b, #0d2f4d);
    background: linear-gradient(#17538b, #0d2f4d);
    background: #12416C\9;
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    display: inline-block; }
  .rtp-submit:active {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: inline-block; }
  .rtp-submit:visited, .rtp-submit:link {
    color: #fff; }
  .rtp-submit[disabled] {
    background: white;
    color: #757575;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    text-shadow: none;
    cursor: default;
    border: 1px solid #eee;
    line-height: 28px; }

.rtp-form #feedback-status {
  margin-top: 20px;
  background: transparent no-repeat center;
  width: 16px;
  height: 30px;
  float: left;
  margin-left: 5px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Snippet: a short "story", with an icon/thumbnail, headline and summary text
*/
.usyd-snippet {
  margin-bottom: 0;
  margin-top: 0;
  padding-top: 10px; }

.usyd-snippet-title {
  margin-top: 0;
  margin-bottom: 0.5em; }

.usyd-snippet-icon {
  float: left;
  margin-right: 10px;
  font-size: 24px; }

.usyd-snippet-body {
  overflow: hidden;
  margin-bottom: 0; }
  .usyd-snippet-body p {
    margin-top: 0;
    margin-bottom: 0; }

.usyd-snippet-title {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 0.2em; }

.usyd-snippet-date {
  float: left;
  margin: 0px 15px 0 0;
  width: 160px; }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-snippet.usyd-xsmall .usyd-snippet-icon {
    font-size: 16px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-mask {
  z-index: 1500; }

.ui-anchor-s- .ui-tip-anchor {
  position: absolute;
  left: -999em;
  display: none;
  visibility: hidden; }

.usyd-survey-content.ui-tip-container {
  width: 15em;
  font-size: 1.2em;
  position: absolute;
  margin: 0;
  padding: 0;
  z-index: 2600; }
  .usyd-survey-content.ui-tip-container.ui-anchor-n, .usyd-survey-content.ui-tip-container.ui-anchor-ne, .usyd-survey-content.ui-tip-container.ui-anchor-nw {
    padding-bottom: 12px; }
    .usyd-survey-content.ui-tip-container.ui-anchor-n .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-ne .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-nw .ui-tip-anchor {
      bottom: 0;
      border-top-style: solid;
      border-bottom: none;
      border-left-color: transparent;
      border-right-color: transparent; }
  .usyd-survey-content.ui-tip-container.ui-anchor-n .ui-tip-anchor {
    left: 50%;
    margin-left: -12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-nw .ui-tip-anchor {
    left: 12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-ne .ui-tip-anchor {
    right: 12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-s, .usyd-survey-content.ui-tip-container.ui-anchor-se, .usyd-survey-content.ui-tip-container.ui-anchor-sw {
    padding-top: 12px; }
    .usyd-survey-content.ui-tip-container.ui-anchor-s .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-se .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-sw .ui-tip-anchor {
      top: 0;
      border-bottom-style: solid;
      border-top: none;
      border-left-color: transparent;
      border-right-color: transparent; }
  .usyd-survey-content.ui-tip-container.ui-anchor-s .ui-tip-anchor {
    left: 50%;
    margin-left: -12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-sw .ui-tip-anchor {
    left: 12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-se .ui-tip-anchor {
    right: 12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-e, .usyd-survey-content.ui-tip-container.ui-anchor-es, .usyd-survey-content.ui-tip-container.ui-anchor-en {
    margin-left: 12px; }
    .usyd-survey-content.ui-tip-container.ui-anchor-e .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-es .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-en .ui-tip-anchor {
      left: -11px;
      border-right-style: solid;
      border-left: none;
      border-top-color: transparent;
      border-bottom-color: transparent; }
  .usyd-survey-content.ui-tip-container.ui-anchor-e .ui-tip-anchor {
    top: 50%;
    margin-top: -12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-en .ui-tip-anchor {
    top: 12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-es .ui-tip-anchor {
    bottom: 12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-w, .usyd-survey-content.ui-tip-container.ui-anchor-ws, .usyd-survey-content.ui-tip-container.ui-anchor-wn {
    margin-right: 12px; }
    .usyd-survey-content.ui-tip-container.ui-anchor-w .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-ws .ui-tip-anchor, .usyd-survey-content.ui-tip-container.ui-anchor-wn .ui-tip-anchor {
      right: -11px;
      border-left-style: solid;
      border-right: none;
      border-top-color: transparent;
      border-bottom-color: transparent; }
  .usyd-survey-content.ui-tip-container.ui-anchor-w .ui-tip-anchor {
    top: 50%;
    margin-top: -12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-wn .ui-tip-anchor {
    top: 12px; }
  .usyd-survey-content.ui-tip-container.ui-anchor-ws .ui-tip-anchor {
    bottom: 12px; }

.usyd-survey-content .ui-tip-body {
  background-color: #333;
  background-color: #fff;
  *background-color: #333;
  color: black;
  max-width: 210px;
  *max-width: none;
  *width: 210px;
  padding: 7px 9px;
  -webkit-box-shadow: 0 0 4px 5px rgba(0, 0, 0, 0.4);
  -moz-box-shadow: 0 0 4px 5px rgba(0, 0, 0, 0.4);
  box-shadow: 0 0 4px 5px rgba(0, 0, 0, 0.4);
  -webkit-border-radius: 1px;
  -moz-border-radius: 1px;
  -ms-border-radius: 1px;
  -o-border-radius: 1px;
  border-radius: 1px; }

.usyd-survey-content .ui-tip-anchor {
  position: absolute;
  width: 0;
  height: 0;
  line-height: 0;
  border: 12px solid #333;
  border: 12px solid #fff;
  *border: 12px solid #333; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Data table

Styleguide 1.3
*/
table {
  border: 1px solid #bfbfbf;
  border-collapse: collapse;
  margin: 10px 0;
  width: 100%; }
  table th, table td {
    font-size: 12px;
    padding: 5px;
    border: 1px solid #bfbfbf;
    vertical-align: top; }
    table th p, table td p {
      margin: 0; }
      table th p + p, table td p + p {
        margin-top: 0.8em; }
    table th.usyd-ui-emphasis-mild, table td.usyd-ui-emphasis-mild {
      color: #bfbfbf; }
  table th {
    background: #e8e8e8;
    border: 1px solid #bfbfbf;
    border-bottom: 2px solid black; }
  table tfoot {
    background: #f7f7f7; }
  table .usyd-align-center {
    text-align: center; }
  table.usyd-ui-emphasis-mild {
    border: 0; }
    table.usyd-ui-emphasis-mild th {
      background: none;
      font-size: 1.3em;
      font-weight: bold;
      border-width: 0;
      border-bottom: 2px solid black; }
    table.usyd-ui-emphasis-mild td {
      border-width: 0;
      border-bottom: 1px solid #e6e6e6; }
    table.usyd-ui-emphasis-mild td, table.usyd-ui-emphasis-mild th {
      padding: 0.6em 0.5em 0.4em;
      line-height: 1.666em; }

@media screen {
  .table-responsive {
    overflow-x: auto;
    min-height: 0.01%; } }
  @media screen and (max-width: 767px) {
    .table-responsive {
      width: 100%;
      margin-bottom: 10px;
      overflow-y: hidden;
      -ms-overflow-style: -ms-autohiding-scrollbar;
      border: 1px solid #e6e6e6;
      border-top: 0; }
      .table-responsive > table {
        margin-bottom: 0;
        margin-top: 0;
        border: 0; }
        .table-responsive > table > thead > th:first-child,
        .table-responsive > table > thead > td:first-child,
        .table-responsive > table > tbody > th:first-child,
        .table-responsive > table > tbody > td:first-child,
        .table-responsive > table > tfoot > th:first-child,
        .table-responsive > table > tfoot > td:first-child,
        .table-responsive > table > tr > th:first-child,
        .table-responsive > table > tr > td:first-child {
          border-left: 0; }
        .table-responsive > table > thead > th:last-child,
        .table-responsive > table > thead > td:last-child,
        .table-responsive > table > tbody > th:last-child,
        .table-responsive > table > tbody > td:last-child,
        .table-responsive > table > tfoot > th:last-child,
        .table-responsive > table > tfoot > td:last-child,
        .table-responsive > table > tr > th:last-child,
        .table-responsive > table > tr > td:last-child {
          border-right: 0; }
        .table-responsive > table > thead > th,
        .table-responsive > table > thead > td,
        .table-responsive > table > tbody > th,
        .table-responsive > table > tbody > td,
        .table-responsive > table > tfoot > th,
        .table-responsive > table > tfoot > td,
        .table-responsive > table > tr > th,
        .table-responsive > table > tr > td {
          white-space: nowrap; }
        .table-responsive > table > tbody > tr:last-child > th,
        .table-responsive > table > tbody > tr:last-child > td,
        .table-responsive > table > tfoot > tr:last-child > th,
        .table-responsive > table > tfoot > tr:last-child > td {
          border-bottom: 0; } }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
@media (min-width: 980px) {
  .usyd-tabs {
    background: #f1f1f1;
    margin-bottom: 20px;
    *zoom: 1; }
    .usyd-tabs:before, .usyd-tabs:after {
      display: table;
      content: ""; }
    .usyd-tabs:after {
      clear: both; }
    .usyd-tabs a {
      padding: 6px 10px;
      display: block;
      color: black;
      text-decoration: none; }
    .usyd-tabs li {
      position: relative;
      margin: 0; }
      .usyd-tabs li > .usyd-toggler {
        display: none; }
    .usyd-tabs > ul {
      padding: 0 4px; }
      .usyd-tabs > ul > li {
        float: left;
        margin: 8px 4px 0;
        position: relative; }
        .usyd-tabs > ul > li > a {
          padding: 6px 10px 9px; }
        .usyd-tabs > ul > li:hover > ul, .usyd-tabs > ul > li.usyd-show > ul {
          display: block; }
        .usyd-tabs > ul > li:hover, .usyd-tabs > ul > li.usyd-show {
          background-color: #e8e8e8; }
        .usyd-tabs > ul > li.usyd-active a {
          background-color: white;
          font-weight: bold; }
        .usyd-tabs > ul > li.usyd-active:hover > a, .usyd-tabs > ul > li.usyd-active > a:focus, .usyd-tabs > ul > li.usyd-active.usyd-active > a {
          background-color: white;
          font-weight: bold; }
        .usyd-tabs > ul > li.usyd-active:hover > ul, .usyd-tabs > ul > li.usyd-active.usyd-show > ul {
          display: none; }
        .usyd-tabs > ul > li > ul {
          display: none;
          position: absolute;
          border-style: solid;
          z-index: 2600;
          top: 100%;
          *top: 24px;
          *height: auto;
          background-color: #e8e8e8; }
          .usyd-tabs > ul > li > ul > li > a {
            width: 152px; }
          .usyd-tabs > ul > li > ul > li:hover > a, .usyd-tabs > ul > li > ul > li > a:focus, .usyd-tabs > ul > li > ul > li.usyd-show > a {
            background-color: #dedede; }
          .usyd-tabs > ul > li > ul > li:hover > ul, .usyd-tabs > ul > li > ul > li.usyd-show > ul {
            display: block; }
          .usyd-tabs > ul > li > ul > li.usyd-submenu > a {
            background-image: url(foundation/resources/intranet-components/assets/img/arrow-dark-grey.png);
            background-repeat: no-repeat;
            background-position: right center; }
          .usyd-tabs > ul > li > ul > li > ul {
            display: none;
            position: absolute;
            background-color: #dedede;
            left: 100%;
            top: 0;
            margin-left: 0; }
            .usyd-tabs > ul > li > ul > li > ul > li > a {
              width: 152px; }
            .usyd-tabs > ul > li > ul > li > ul > li:hover > a, .usyd-tabs > ul > li > ul > li > ul > li > a:focus, .usyd-tabs > ul > li > ul > li > ul > li.usyd-show > a {
              background-color: #dedede; }
        .usyd-tabs > ul > li.usyd-submenu-rtl > ul {
          right: 0; }
          .usyd-tabs > ul > li.usyd-submenu-rtl > ul > li > a {
            padding-left: 16px; }
          .usyd-tabs > ul > li.usyd-submenu-rtl > ul > li.usyd-submenu > a {
            background-image: url(foundation/resources/intranet-components/assets/img/arrow-dark-grey-left.png);
            background-position: left center; }
          .usyd-tabs > ul > li.usyd-submenu-rtl > ul > li > ul {
            right: 100%;
            left: auto; }
      .usyd-tabs > ul:after {
        content: "";
        clear: both;
        display: block; }
    .usyd-tabs h2 {
      display: none; } }

@media (max-width: 979px) {
  .usyd-tabs {
    position: absolute;
    top: 66px;
    right: 0;
    width: 50%; }
    .usyd-tabs > h2 {
      font-size: 12px;
      color: #FFF;
      margin: 0;
      cursor: pointer;
      width: 100%;
      padding: 8px 0 7px 0;
      text-align: center;
      background: #444; }
      .usyd-tabs > h2:hover {
        background: #e64626; }
      .usyd-tabs > h2 .usyd-icon {
        font-size: 0.8em;
        margin-right: 5px; }
    .usyd-tabs a {
      padding: 10px 10px 8px 30px;
      display: block;
      color: black;
      text-decoration: none; }
      .usyd-tabs a:before {
        content: '\e894';
        font-family: "fontello";
        position: relative;
        z-index: 10;
        right: 14px;
        margin-right: -7px;
        font-size: 10px;
        color: #e64626; }
    .usyd-tabs ul {
      transition: height 1s;
      overflow: hidden;
      background-color: #f1f1f1; }
    .usyd-tabs li {
      margin: 0;
      position: relative; }
      .usyd-tabs li.usyd-hide > ul, .usyd-tabs li > ul {
        height: 0; }
      .usyd-tabs li > .usyd-toggler {
        font-family: "fontello";
        color: #e64626;
        font-size: 11px;
        padding: 6px 7px 4px 7px;
        background: #DCDCDC;
        position: absolute;
        left: 4px;
        top: 5px;
        z-index: 120; }
        .usyd-tabs li > .usyd-toggler:before {
          content: '\e81e';
          right: auto;
          position: relative;
          margin: 0; }
      .usyd-tabs li.usyd-show > ul {
        height: auto; }
      .usyd-tabs li.usyd-show > .usyd-toggler:before {
        content: '\e822'; }
      .usyd-tabs li > .usyd-toggler {
        border: 0;
        display: block;
        float: left; }
    .usyd-tabs > h2:hover {
      background-color: #e64626; }
      .usyd-tabs > h2:hover + ul {
        display: block; }
    .usyd-tabs > ul {
      overflow-y: scroll;
      position: absolute;
      z-index: 100;
      display: none;
      width: 80vw;
      right: 0;
      padding: 10px 10px;
      max-height: 65vh;
      -webkit-box-shadow: 0 0 10px #333;
      -moz-box-shadow: 0 0 10px #333;
      box-shadow: 0 0 10px #333; }
      .usyd-tabs > ul:hover {
        display: block; }
      .usyd-tabs > ul > li {
        border-bottom: 1px solid #FFF; }
        .usyd-tabs > ul > li.usyd-show > ul {
          border-top: 1px solid #FFF; }
        .usyd-tabs > ul > li.usyd-active > a {
          font-weight: bold; }
        .usyd-tabs > ul > li > ul > li {
          border-top: 1px solid #FFF; }
          .usyd-tabs > ul > li > ul > li > a {
            padding-left: 45px; }
          .usyd-tabs > ul > li > ul > li > .usyd-toggler {
            left: 19px; }
          .usyd-tabs > ul > li > ul > li:first-child {
            border: none; }
          .usyd-tabs > ul > li > ul > li.usyd-active > a {
            font-weight: bold; }
          .usyd-tabs > ul > li > ul > li > ul > li {
            border-top: 1px solid #FFF; }
            .usyd-tabs > ul > li > ul > li > ul > li.usyd-active > a {
              background: #fef7e7;
              font-weight: bold; }
            .usyd-tabs > ul > li > ul > li > ul > li a {
              padding-left: 60px; } }

@media (max-width: 767px) {
  .usyd-tabs {
    width: 50%;
    float: right;
    margin-top: -48px;
    position: static; }
  .usyd-local-homepage .usyd-tabs,
  .usyd-skinned-page .usyd-tabs {
    margin-top: -100px; } }

.usyd-tayne {
  position: fixed;
  bottom: 0;
  left: 0;
  background: url(foundation/resources/intranet-components/assets/img/components/tayne.gif);
  width: 349px;
  height: 555px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-tile {
  display: block;
  height: 16em;
  margin-bottom: 2em;
  background-color: #cdcdcd;
  position: relative;
  overflow: hidden;
  background-size: cover; }
  .usyd-tile.usyd-tall {
    height: 235px; }
  .usyd-tile.usyd-light .usyd-tile-title {
    background-color: #fbcd6b; }
  .usyd-tile .usyd-tile-hint {
    background: black;
    background: rgba(0, 0, 0, 0.85);
    color: white;
    position: absolute;
    width: 100%;
    padding: 3px 5px;
    bottom: -100%;
    -webkit-transition: 0.25s bottom false;
    -moz-transition: 0.25s bottom false false;
    -o-transition: 0.25s bottom false false;
    transition: 0.25s bottom;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; }
  .usyd-tile:hover .usyd-tile-hint {
    bottom: 0; }
  .usyd-tile .usyd-tile-link {
    position: absolute;
    height: 100%;
    width: 100%;
    background-size: 100%;
    text-decoration: none;
    cursor: pointer; }
    .usyd-tile .usyd-tile-link:hover .usyd-tile-title {
      text-decoration: underline; }
  .usyd-tile .usyd-tile-title {
    display: block;
    margin: 0;
    font-size: 1.4em;
    font-weight: bold;
    color: black;
    background-color: #F5AF00;
    background-image: url(foundation/resources/intranet-components/assets/img/arrow-alpha.png);
    background-repeat: no-repeat;
    background-position: 98% 50%;
    padding: 10px 25px 10px 10px;
    text-decoration: inherit;
    position: absolute;
    left: 0;
    right: 0; }
    .usyd-tile .usyd-tile-title.usyd-align-bottom {
      bottom: 0; }
    .usyd-tile .usyd-tile-title:link {
      display: block;
      color: black;
      text-decoration: none; }
    .usyd-tile .usyd-tile-title:visited, .usyd-tile .usyd-tile-title:active {
      color: black;
      text-decoration: none; }

.usyd-tile-promo .usyd-tile-title {
  min-height: 34px; }

@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
  .usyd-tile-title {
    background-image: url(foundation/resources/intranet-components/assets/img/arrow-alpha@2x.png);
    background-size: 20px 20px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
A generic container for buttons or menu items, usually to be positioned at the top or bottom of a widget. Used to draw out particular actions
and distinguish them from the body of the widget.
*/
.usyd-toolbar, .usyd-edit-controls {
  background: #f7f7f7;
  padding: 1em;
  overflow: hidden; }

/*
A generic container in which to display status messages such as loading notices or error messages.
*/
.usyd-status-bar {
  background: #f7f7f7;
  padding: 1em;
  font-size: 12px; }

.usyd-action {
  text-decoration: none;
  white-space: nowrap; }
  .usyd-action .usyd-icon-text:hover, .usyd-action .usyd-icon-text:focus {
    text-decoration: underline; }

/*
Apply this to a container with actions to allow the actions to have a "hinted" effect, where they are revealed as the item is moused over
*/
@media (min-width: 980px) {
  .usyd-hinted-actions:hover .usyd-action, .usyd-hinted-actions:hover .usyd-action-icon, .usyd-hinted-actions:focus .usyd-action, .usyd-hinted-actions:focus .usyd-action-icon {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);
    opacity: 0.75; }
  .usyd-hinted-actions .usyd-action, .usyd-hinted-actions .usyd-action-icon {
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
    -webkit-transition: opacity 0.25s false;
    -moz-transition: opacity 0.25s false false;
    -o-transition: opacity 0.25s false false;
    transition: opacity 0.25s; }
    .usyd-hinted-actions .usyd-action:hover, .usyd-hinted-actions .usyd-action:focus, .usyd-hinted-actions .usyd-action-icon:hover, .usyd-hinted-actions .usyd-action-icon:focus {
      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
      opacity: 1; } }

/*
A general container for a strip of actions, usually in the form of action icons.
*/
.usyd-actions, .usyd-action-list {
  overflow: hidden; }

/*
A list of actions in a toolbar-strip like layout. Similar to an icon menu in a desktop application.
*/
.usyd-action-list li {
  float: left;
  margin: 0 0.5em 0 0; }

/*
An action button presented as an icon. Usually sits inside an action list.
TODO: handle multiple sizes
- .usyd-ui-button: The action appears as a standard button
*/
.usyd-action-icon {
  display: inline-block;
  background-position: left center;
  background-repeat: no-repeat;
  text-decoration: none;
  color: #000; }
  .usyd-action-icon:visited {
    color: #000; }

/*
An action icon with text tip that reveals when the user mouses over the element.
*/
.usyd-action-hinted-text .usyd-action-text {
  display: inline-block;
  max-width: 0;
  width: 0;
  opacity: 0;
  overflow: hidden;
  -webkit-transition: opacity 0.5s false;
  -moz-transition: opacity 0.5s false false;
  -o-transition: opacity 0.5s false false;
  transition: opacity 0.5s; }

.usyd-action-hinted-text:hover .usyd-action-text, .usyd-action-hinted-text:focus .usyd-action-text {
  width: auto;
  max-width: none;
  padding-left: 5px;
  opacity: 1; }

/*
A special state of ul or ol lists to be applied when the items are sortable by some drag-and-drop mechanism.
*/
.usyd-sortable-list {
  padding-bottom: 10px; }
  .usyd-sortable-list li:hover {
    cursor: move; }

@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
  .usyd-sortable-list li {
    background-image: url(foundation/resources/intranet-components/assets/img/icons/16x16/handle-alpha@2x.png);
    background-size: 16px 16px; }
  .usyd-sortable-list li:hover {
    background-image: url(foundation/resources/intranet-components/assets/img/icons/16x16/handle@2x.png); } }

/*
A control strip designed to appear when a widget is in an editable state. Permits a set of primary actions ("save", "cancel", "delete", etc)
to be combined with a set of secondary icons ("help", etc).
*/
.usyd-edit-controls .usyd-actions, .usyd-edit-controls .usyd-action-list {
  float: right; }

.usyd-edit-controls .usyd-action-list {
  margin: 0.6em 0 0 0;
  padding: 0;
  float: left; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-tooltip.ui-tip-container {
  width: 15em;
  font-size: 1.2em;
  position: absolute;
  margin: 0;
  padding: 0;
  z-index: 2600; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-n, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ne, .usyd-ui-tooltip.ui-tip-container.ui-anchor-nw {
    padding-bottom: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-n .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ne .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-nw .ui-tip-anchor {
      bottom: 0;
      border-top-style: solid;
      border-bottom: none;
      border-left-color: transparent;
      border-right-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-n .ui-tip-anchor {
    left: 50%;
    margin-left: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-nw .ui-tip-anchor {
    left: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-ne .ui-tip-anchor {
    right: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-s, .usyd-ui-tooltip.ui-tip-container.ui-anchor-se, .usyd-ui-tooltip.ui-tip-container.ui-anchor-sw {
    padding-top: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-s .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-se .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-sw .ui-tip-anchor {
      top: 0;
      border-bottom-style: solid;
      border-top: none;
      border-left-color: transparent;
      border-right-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-s .ui-tip-anchor {
    left: 50%;
    margin-left: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-sw .ui-tip-anchor {
    left: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-se .ui-tip-anchor {
    right: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-e, .usyd-ui-tooltip.ui-tip-container.ui-anchor-es, .usyd-ui-tooltip.ui-tip-container.ui-anchor-en {
    margin-left: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-e .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-es .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-en .ui-tip-anchor {
      left: -11px;
      border-right-style: solid;
      border-left: none;
      border-top-color: transparent;
      border-bottom-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-e .ui-tip-anchor {
    top: 50%;
    margin-top: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-en .ui-tip-anchor {
    top: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-es .ui-tip-anchor {
    bottom: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-w, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ws, .usyd-ui-tooltip.ui-tip-container.ui-anchor-wn {
    margin-right: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-w .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ws .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-wn .ui-tip-anchor {
      right: -11px;
      border-left-style: solid;
      border-right: none;
      border-top-color: transparent;
      border-bottom-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-w .ui-tip-anchor {
    top: 50%;
    margin-top: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-wn .ui-tip-anchor {
    top: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-ws .ui-tip-anchor {
    bottom: 12px; }

.usyd-ui-tooltip .ui-tip-body {
  background-color: #262626;
  background-color: rgba(0, 0, 0, 0.85);
  *background-color: #262626;
  color: black;
  max-width: 210px;
  *max-width: none;
  *width: 210px;
  padding: 7px 9px;
  -webkit-border-radius: 1px;
  -moz-border-radius: 1px;
  -ms-border-radius: 1px;
  -o-border-radius: 1px;
  border-radius: 1px; }

.usyd-ui-tooltip .ui-tip-anchor {
  position: absolute;
  width: 0;
  height: 0;
  line-height: 0;
  border: 12px solid #262626;
  border: 12px solid rgba(0, 0, 0, 0.85);
  *border: 12px solid #262626; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-ui-tooltip.ui-tip-container {
  width: 15em;
  font-size: 1.2em;
  position: absolute;
  margin: 0;
  padding: 0;
  z-index: 2600; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-n, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ne, .usyd-ui-tooltip.ui-tip-container.ui-anchor-nw {
    padding-bottom: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-n .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ne .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-nw .ui-tip-anchor {
      bottom: 0;
      border-top-style: solid;
      border-bottom: none;
      border-left-color: transparent;
      border-right-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-n .ui-tip-anchor {
    left: 50%;
    margin-left: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-nw .ui-tip-anchor {
    left: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-ne .ui-tip-anchor {
    right: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-s, .usyd-ui-tooltip.ui-tip-container.ui-anchor-se, .usyd-ui-tooltip.ui-tip-container.ui-anchor-sw {
    padding-top: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-s .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-se .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-sw .ui-tip-anchor {
      top: 0;
      border-bottom-style: solid;
      border-top: none;
      border-left-color: transparent;
      border-right-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-s .ui-tip-anchor {
    left: 50%;
    margin-left: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-sw .ui-tip-anchor {
    left: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-se .ui-tip-anchor {
    right: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-e, .usyd-ui-tooltip.ui-tip-container.ui-anchor-es, .usyd-ui-tooltip.ui-tip-container.ui-anchor-en {
    margin-left: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-e .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-es .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-en .ui-tip-anchor {
      left: -11px;
      border-right-style: solid;
      border-left: none;
      border-top-color: transparent;
      border-bottom-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-e .ui-tip-anchor {
    top: 50%;
    margin-top: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-en .ui-tip-anchor {
    top: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-es .ui-tip-anchor {
    bottom: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-w, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ws, .usyd-ui-tooltip.ui-tip-container.ui-anchor-wn {
    margin-right: 12px; }
    .usyd-ui-tooltip.ui-tip-container.ui-anchor-w .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-ws .ui-tip-anchor, .usyd-ui-tooltip.ui-tip-container.ui-anchor-wn .ui-tip-anchor {
      right: -11px;
      border-left-style: solid;
      border-right: none;
      border-top-color: transparent;
      border-bottom-color: transparent; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-w .ui-tip-anchor {
    top: 50%;
    margin-top: -12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-wn .ui-tip-anchor {
    top: 12px; }
  .usyd-ui-tooltip.ui-tip-container.ui-anchor-ws .ui-tip-anchor {
    bottom: 12px; }

.usyd-ui-tooltip .ui-tip-body {
  background-color: #262626;
  background-color: rgba(0, 0, 0, 0.85);
  *background-color: #262626;
  color: black;
  max-width: 210px;
  *max-width: none;
  *width: 210px;
  padding: 7px 9px;
  -webkit-border-radius: 1px;
  -moz-border-radius: 1px;
  -ms-border-radius: 1px;
  -o-border-radius: 1px;
  border-radius: 1px; }

.usyd-ui-tooltip .ui-tip-anchor {
  position: absolute;
  width: 0;
  height: 0;
  line-height: 0;
  border: 12px solid #262626;
  border: 12px solid rgba(0, 0, 0, 0.85);
  *border: 12px solid #262626; }

.usyd-ui-mask.usyd-apps-tutorial-mask {
  z-index: 2500; }

.ui-anchor-s- .ui-tip-anchor {
  position: absolute;
  left: -999em;
  display: none;
  visibility: hidden; }

.usyd-apps-tutorial-content .ui-tip-body .usyd-tutorial-hint {
  text-align: center; }

.usyd-apps-tutorial-content .ui-tip-body .usyd-ui-emphasis-strong {
  font-size: 15px;
  font-size: 1.5rem;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px;
  padding: 0.5em;
  color: black;
  border: 1px solid #ffe6a9;
  background: #fff5dc; }

.usyd-apps-tutorial-hoisted {
  z-index: 2600;
  *zoom: 1; }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-apps-tutorial-hoisted {
  -webkit-box-shadow: 0 0 100px #000;
  -moz-box-shadow: 0 0 100px #000;
  box-shadow: 0 0 100px #000; }

body .usyd-apps-tutorial-content.ui-tip-container {
  width: auto; }

body .usyd-apps-tutorial-content .ui-tip-body {
  background-color: #fff;
  color: black;
  -webkit-box-shadow: 0 0 50px #000;
  -moz-box-shadow: 0 0 50px #000;
  box-shadow: 0 0 50px #000;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px; }

body .usyd-apps-tutorial-content .ui-tip-content {
  padding: 1.3em 1.8em; }

body .usyd-apps-tutorial-content .ui-tip-anchor {
  border-color: #fff; }

body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons {
  text-align: right;
  margin: 1.5em 0 0.5em;
  *zoom: 1; }
  body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons:before, body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons:after {
    display: table;
    content: ""; }
  body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons:after {
    clear: both; }
  body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons button {
    margin-left: 5px; }
  body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons .usyd-tutorial-ctrl-prev {
    float: left;
    line-height: 28px;
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
    opacity: 0.5;
    text-decoration: none; }
    body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons .usyd-tutorial-ctrl-prev:hover, body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons .usyd-tutorial-ctrl-prev:focus {
      text-decoration: underline;
      filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
      opacity: 1;
      -webkit-transition: opacity 0.25s ease;
      -moz-transition: opacity 0.25s ease;
      -ms-transition: opacity 0.25s ease;
      -o-transition: opacity 0.25s ease;
      transition: opacity 0.25s ease; }
  body .usyd-apps-tutorial-content .usyd-apps-tutorial-buttons.usyd-ui-align-centre {
    text-align: center; }

body .usyd-apps-tutorial-content h2 {
  margin: 0.2em 0 0.5em; }

body .usyd-apps-tutorial-content p, body .usyd-apps-tutorial-content li {
  font-size: 13px;
  font-size: 1.3rem; }
  body .usyd-apps-tutorial-content p + p, body .usyd-apps-tutorial-content li + p {
    margin-top: 1em; }

.usyd-tutorial-search-hint {
  z-index: -400;
  left: 21em;
  bottom: 2.5em;
  background: url(foundation/resources/intranet-components/assets/img/components/tutorial/home-search-arrow.png);
  width: 183px;
  height: 289px; }

.usyd-intranet-favourites h2 {
  z-index: 2610; }

.usyd-tutorial-search-hint {
  position: absolute; }

.usyd-apps-tutorial-hoisted.usyd-ui-content-group, .usyd-apps-tutorial-hoisted.usyd-ui-common-nav, .usyd-intranet-favourites h2.usyd-apps-tutorial-hoisted, .usyd-apps-tutorial-hoisted.usyd-ui-expander-wrapper {
  background-color: #fff; }

@media (min-width: 1300px) {
  .usyd-apps-tutorial-intranet-home .usyd-apps-tutorial-content .ui-tip-body {
    max-width: 60em;
    *max-width: none;
    *width: 60em; }
  .usyd-apps-tutorial-intranet-home .usyd-apps-tutorial-content .usyd-tutorial-normal-step {
    width: 19em; }
  .usyd-apps-tutorial-intranet-home .usyd-apps-tutorial-content .usyd-tutorial-unanchored-step {
    width: 35em; } }

@media (max-width: 767px) {
  .usyd-apps-tutorial-intranet-home .usyd-apps-tutorial-content {
    max-width: 90%;
    *max-width: none;
    *width: 90%; }
    .usyd-apps-tutorial-intranet-home .usyd-apps-tutorial-content .ui-tip-body {
      max-width: 100%;
      *max-width: none;
      *width: 100%; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
@media (max-width: 767px) {
  .usyd-login-component {
    height: 0;
    overflow: hidden;
    padding: 0;
    margin: 0 0 -20px;
    border: none; } }

.usyd-home-login-help {
  overflow: hidden;
  margin: 0 0 0 10px;
  display: inline-block;
  position: relative;
  top: 8px; }
  .usyd-home-login-help li {
    margin: 0.35em 0; }

.usyd-home-login-button {
  width: 71px;
  text-align: center; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-yammer-share {
  background-color: #0072c6;
  color: white;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  -ms-border-radius: 2px;
  -o-border-radius: 2px;
  border-radius: 2px;
  font-weight: bold;
  font-size: 1.1em;
  text-transform: uppercase;
  border: none;
  padding: 0 10px;
  margin: 0 2px;
  cursor: pointer;
  vertical-align: middle;
  height: 28px;
  overflow: visible;
  text-decoration: none;
  display: inline-block;
  line-height: 29px;
  /* IE8 */
  *line-height: 28px;
  /* IE7 */
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
  -webkit-appearance: none;
  height: 27px;
  font-size: 1em; }
  .usyd-yammer-share:not([dummy]) {
    line-height: auto;
    /* NOT IE7/IE8 */ }
  .usyd-yammer-share a {
    color: white; }
  .usyd-yammer-share span {
    line-height: 28px;
    vertical-align: top; }
  .usyd-yammer-share:hover {
    background: -owg-linear-gradient(#0087ea, #005da2);
    background: -webkit-linear-gradient(#0087ea, #005da2);
    background: -moz-linear-gradient(#0087ea, #005da2);
    background: -o-linear-gradient(#0087ea, #005da2);
    -pie-background: -pie-linear-gradient(#0087ea, #005da2);
    background: linear-gradient(#0087ea, #005da2);
    background: #0072c6\9;
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    display: inline-block; }
  .usyd-yammer-share:active {
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    display: inline-block; }
  .usyd-yammer-share:visited, .usyd-yammer-share:link {
    color: white; }
  .usyd-yammer-share[disabled] {
    background: white;
    color: #757575;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    box-shadow: none;
    text-shadow: none;
    cursor: default;
    border: 1px solid #eee;
    line-height: 28px; }

.usyd-ui-yammer-share {
  margin-top: 1px;
  position: fixed;
  right: 0px;
  top: 150px; }

.usyd-icon-yammer {
  background: transparent url(foundation/resources/intranet-components/assets/img/icons/16x16/yammer.png) no-repeat top left;
  background-size: 16px 16px;
  padding-left: 16px;
  margin-right: 5px;
  *display: inline-block; }

.usyd-yammer-login {
  padding-top: 26px; }
  .usyd-yammer-login .usyd-yammer-login-logo {
    float: left;
    margin-right: 10px;
    margin-top: 10px;
    font-size: 48px;
    color: #396B9A; }
  .usyd-yammer-login .usyd-ui-standard-list, .usyd-yammer-login .usyd-body-content ul, .usyd-body-content .usyd-yammer-login ul, .usyd-yammer-login .usyd-aside-content ul, .usyd-aside-content .usyd-yammer-login ul {
    overflow: hidden;
    margin-top: 10px; }
  .usyd-yammer-login ul {
    display: inline-block;
    margin: 0 0 0 15px; }
  .usyd-yammer-login p {
    display: inline-block;
    margin-left: 15px; }
  .usyd-yammer-login .usyd-ui-button-primary:visited, .usyd-yammer-login .usyd-ui-button-primary:link {
    float: left; }

@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) {
  .usyd-icon-yammer {
    background-image: url(foundation/resources/intranet-components/assets/img/icons/16x16/yammer@2x.png); } }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-yammer-login {
    padding-top: 10px; }
    .usyd-yammer-login .usyd-yammer-login-logo {
      font-size: 24px; }
    .usyd-yammer-login .usyd-ui-standard-list, .usyd-yammer-login .usyd-body-content ul, .usyd-body-content .usyd-yammer-login ul, .usyd-yammer-login .usyd-aside-content ul, .usyd-aside-content .usyd-yammer-login ul {
      float: none;
      margin: inherit; } }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.usyd-show-xsmall {
  display: none !important; }

.usyd-hide-xsmall {
  display: inherit !important; }

.usyd-show-small {
  display: none !important; }

.usyd-hide-small {
  display: inherit !important; }

.usyd-show-xlarge {
  display: none !important; }

.usyd-hide-xlarge {
  display: inherit !important; }

@media (max-width: 767px) {
  .usyd-show-xsmall {
    display: inherit !important; }
  .usyd-hide-xsmall {
    display: none !important; }
  .usyd-show-large {
    display: none !important; } }

@media (min-width: 768px) and (max-width: 979px) {
  .usyd-show-small {
    display: inherit !important; }
  .usyd-hide-small {
    display: none !important; }
  .usyd-show-large {
    display: none !important; } }

@media (min-width: 1300px) {
  .usyd-show-large {
    display: inherit !important; }
  .usyd-hide-large {
    display: none !important; }
  .usyd-show-large {
    display: none !important; } }

.usyd-responsive-embed {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 */
  padding-top: 25px;
  height: 0; }

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

.usyd-responsive-image {
  display: block;
  max-width: 100%;
  height: auto; }

.usyd-horizontal-marker {
  position: relative;
  text-align: center;
  margin-top: 10px;
  margin-bottom: 10px;
  border-top: 2px solid #777;
  height: 0; }

.usyd-horizontal-marker-label {
  position: relative;
  top: -6px;
  padding: 0 10px;
  font-size: 12px;
  background: white;
  display: inline-block;
  color: #777; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
.sorting:after {
  content: "";
  font-family: fontello;
  speak: none;
  font-variant: normal;
  text-transform: none;
  font-style: normal !important;
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe920;&nbsp;'); }

.sorting_desc:after {
  content: "";
  font-family: fontello;
  speak: none;
  font-variant: normal;
  text-transform: none;
  font-style: normal !important;
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe921;&nbsp;'); }

.sorting_asc:after {
  content: "";
  font-family: fontello;
  speak: none;
  font-variant: normal;
  text-transform: none;
  font-style: normal !important;
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xe922;&nbsp;'); }

.dataTables_filter {
  background: #f7f7f7;
  padding: 1em; }
  .dataTables_filter label {
    font-weight: bold; }
  .dataTables_filter input {
    margin-left: 10px; }

.usyd-top-pages .usyd-help-action {
  float: right;
  font-size: 16px;
  color: black; }

.usyd-top-pages h2 {
  margin-top: 0; }

.clearfix {
  *zoom: 1; }
  .clearfix:before, .clearfix:after {
    display: table;
    content: ""; }
  .clearfix:after {
    clear: both; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
@media (min-width: 768px) {
  .usyd-search-nav-compact {
    display: none; }
  .usyd-results {
    border-top: 1px solid #e6e6e6;
    margin-top: 20px;
    overflow: hidden; } }

@media (max-width: 767px) {
  .usyd-search-nav {
    display: none; }
  .usyd-search-toggle {
    float: right; }
  .usyd-search-nav-compact {
    border-bottom: 1px solid #e6e6e6;
    margin: 0 -2em; }
    .usyd-search-nav-compact .usyd-search-form {
      padding: 0 20px 0 20px;
      margin-top: 0; }
    .usyd-search-nav-compact .usyd-search-suggestion {
      margin-top: 10px;
      padding-left: 20px;
      padding-right: 20px; }
  .usyd-search-expander-controls {
    margin-top: 20px;
    padding: 10px 20px;
    border-color: #e6e6e6;
    border-style: solid;
    border-width: 1px 0 0 0;
    *zoom: 1; }
    .usyd-search-expander-controls:before, .usyd-search-expander-controls:after {
      display: table;
      content: ""; }
    .usyd-search-expander-controls:after {
      clear: both; }
    .usyd-search-expander-controls p {
      margin: 5px 0 0 0; }
  .usyd-search-expander {
    background-color: #f7f7f7;
    padding: 20px; }
  .usyd-search-filters {
    padding-top: 0;
    border-top: 1px solid #e6e6e6; }
    .usyd-search-filters .usyd-ui-form-line:last-child {
      margin-bottom: 0; } }

.usyd-search-query-field {
  width: 80%; }

.usyd-search-filters {
  padding-top: 10px;
  margin-top: 20px; }

.usyd-search-filter {
  margin-bottom: 20px; }
  .usyd-search-filter h3 {
    font-size: 12px; }

.usyd-search-filter-active {
  font-weight: bold; }

.usyd-search-form {
  display: table;
  width: 100%;
  margin: 20px 0 0 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }
  .usyd-search-form .usyd-ui-form-input {
    padding-right: 10px;
    display: table-cell; }
  .usyd-search-form .usyd-ui-form-actions {
    display: table-cell;
    width: 2.5em; }

.usyd-search-suggestion {
  margin: 15px 0; }

.usyd-search-no-result {
  text-align: center;
  color: #767676;
  font-size: 14px;
  padding: 25px 15px; }
  .usyd-search-no-result .icon-search {
    vertical-align: middle; }

.usyd-result {
  margin-top: 30px;
  margin-bottom: 30px; }
  .usyd-result.usyd-card {
    padding: 10px 10px 10px 0;
    margin-top: 20px;
    margin-bottom: 20px; }
  .usyd-result p {
    margin: 0; }
  .usyd-result .usyd-result-icon {
    width: 72px;
    color: #949494;
    text-align: center;
    font-size: 32px; }
  .usyd-result .usyd-result-title {
    margin-top: 0;
    margin-bottom: 0;
    font-weight: normal;
    font-size: 16px; }
  .usyd-result .usyd-result-metadata {
    margin-top: 0;
    margin-bottom: 10px;
    color: #757575; }
  .usyd-result .usyd-result-url {
    color: #4B9450;
    white-space: pre;
    white-space: pre-wrap;
    white-space: pre-line;
    white-space: -pre-wrap;
    white-space: -o-pre-wrap;
    white-space: -moz-pre-wrap;
    white-space: -hp-pre-wrap;
    word-wrap: break-word; }

@media (max-width: 767px) {
  .usyd-result {
    border-bottom: 1px solid #e6e6e6;
    padding-bottom: 20px;
    margin-top: 20px;
    margin-bottom: 20px; }
    .usyd-result .usyd-result-icon {
      width: 44px; }
    .usyd-result.usyd-card:hover {
      border-bottom-color: #999999; } }

.usyd-contact a {
  text-decoration: none; }
  .usyd-contact a:hover {
    text-decoration: underline; }

.usyd-contact .usyd-contact-title-group {
  *zoom: 1; }
  .usyd-contact .usyd-contact-title-group:before, .usyd-contact .usyd-contact-title-group:after {
    display: table;
    content: ""; }
  .usyd-contact .usyd-contact-title-group:after {
    clear: both; }

.usyd-contact .usyd-contact-subtitle {
  color: #757575;
  font-size: 14px; }
  .usyd-contact .usyd-contact-subtitle a {
    color: #757575; }

.usyd-contact .usyd-contact-details {
  margin-top: 10px; }

.usyd-contact .usyd-contact-detail > .usyd-item-label {
  width: 50px; }

.usyd-contact .usyd-contact-detail .usyd-labelled-list {
  margin-bottom: 0; }
  .usyd-contact .usyd-contact-detail .usyd-labelled-list > .usyd-item-detail {
    font-size: 11px;
    line-height: 14px; }

.usyd-contact .usyd-contact-additional-numbers {
  font-size: 11px;
  white-space: no-wrap; }

.usyd-contact .usyd-contact-description {
  margin: 10px 0; }

.usyd-contact .usyd-contact-map {
  margin-top: 10px;
  height: 250px;
  border: 1px solid #e6e6e6;
  width: 98.5%; }
  .usyd-contact .usyd-contact-map.usyd-hide {
    display: none; }

.usyd-contact .usyd-contact-email a {
  white-space: pre;
  white-space: pre-wrap;
  white-space: pre-line;
  white-space: -pre-wrap;
  white-space: -o-pre-wrap;
  white-space: -moz-pre-wrap;
  white-space: -hp-pre-wrap;
  word-wrap: break-word; }

.usyd-contact .usyd-contact-full-address.usyd-hide {
  display: none; }

.usyd-contact .usyd-contact-location {
  margin-bottom: 0; }
  .usyd-contact .usyd-contact-location .usyd-trigger-show-address {
    margin-left: 10px; }

.usyd-contact .usyd-contact-address {
  margin: 0; }

@media (min-width: 980px) {
  .usyd-contact.usyd-compact .usyd-contact-detail {
    float: left;
    width: 50%;
    padding-right: 20px;
    box-sizing: border-box; }
    .usyd-contact.usyd-compact .usyd-contact-detail:nth-of-type(even) {
      margin-right: 0; }
  .usyd-card .usyd-contact-detail {
    float: none;
    width: auto;
    padding-right: 0; }
  .usyd-card .usyd-contact-subtitle {
    position: absolute;
    top: 10px;
    right: 10px;
    max-width: 50%;
    text-align: right; }
  .usyd-card .usyd-contact-location .usyd-item-label {
    float: none;
    display: block;
    margin-bottom: 5px; }
  .usyd-card .usyd-contact-url {
    position: absolute;
    bottom: 10px;
    padding-right: 0;
    right: 10px;
    width: auto; }
    .usyd-card .usyd-contact-url .usyd-contact-name {
      position: absolute;
      left: -999em; }
    .usyd-card .usyd-contact-url .usyd-contact-detail {
      text-align: right; } }

@media (max-width: 979px) {
  .usyd-contact .usyd-app-phonebook-toolbox {
    float: right; }
  .usyd-contact .usyd-contact-url {
    float: none; } }

/*call to action module*/
.usyd-cta {
  display: block;
  padding: 15px;
  background-color: #e64626;
  text-decoration: none;
  clear: both;
  color: white; }
  .usyd-cta:visited {
    color: white; }
  .usyd-cta .usyd-title {
    margin: 0; }
  .usyd-cta .usyd-strapline {
    margin: 15px 0 0; }
  .usyd-cta:focus, .usyd-cta:hover {
    background-color: #d93919;
    text-decoration: none; }
  .usyd-cta.charcoal {
    background-color: #4d4d4d; }
    .usyd-cta.charcoal:hover, .usyd-cta.charcoal:focus {
      background-color: #404040; }

/*pull quote module*/
.usyd-pull-quote.usyd-quote-clip blockquote {
  margin-top: 0; }

/*call to action module*/
.usyd-timelines {
  border-top: 2px solid #e64626;
  margin-top: 20px; }
  .usyd-timelines h2 {
    text-align: center;
    line-height: 30px; }
  .usyd-timelines .usyd-segment {
    padding: 20px 0px;
    margin: 0;
    border-left: 1px solid black;
    position: relative;
    clear: both; }
    .usyd-timelines .usyd-segment .usyd-timeline-heading h3.usyd-title {
      display: inline-block; }
    .usyd-timelines .usyd-segment .usyd-timeline-heading ul.usyd-date-format {
      background: #424242;
      border-radius: 10px;
      border: 1px dotted white;
      box-shadow: 4px 4px 1px #888;
      display: inline-block;
      margin: 10px 20px 20px 0px;
      padding: 15px;
      min-width: 65px;
      float: left; }
      .usyd-timelines .usyd-segment .usyd-timeline-heading ul.usyd-date-format .usyd-ui-date {
        color: white; }
      .usyd-timelines .usyd-segment .usyd-timeline-heading ul.usyd-date-format li {
        display: inline-block;
        list-style-type: none;
        margin: 0;
        font-size: 20px; }
      .usyd-timelines .usyd-segment .usyd-timeline-heading ul.usyd-date-format .usyd-month {
        color: #424242;
        display: inline-block;
        width: 100%; }
        .usyd-timelines .usyd-segment .usyd-timeline-heading ul.usyd-date-format .usyd-month .usyd-ui-date {
          float: left;
          padding-right: 10px; }
      .usyd-timelines .usyd-segment .usyd-timeline-heading ul.usyd-date-format .usyd-day {
        display: block; }
      .usyd-timelines .usyd-segment .usyd-timeline-heading ul.usyd-date-format .usyd-year {
        display: inline-block;
        font-weight: 700;
        position: relative;
        text-align: center;
        width: 100%; }
    .usyd-timelines .usyd-segment .usyd-image {
      margin-bottom: 15px; }
      .usyd-timelines .usyd-segment .usyd-image img {
        width: 100%; }
    .usyd-timelines .usyd-segment .usyd-summary {
      margin-bottom: 15px; }
    .usyd-timelines .usyd-segment .usyd-link a {
      color: #195b98;
      padding-right: 25px;
      font-size: 14px; }
  .usyd-timelines .usyd-btn-more a, .usyd-timelines .usyd-btn-more a:hover {
    text-decoration: none;
    color: #6e219e;
    display: block;
    text-align: center;
    border: 1px solid #e64626;
    font-size: 14px;
    padding: 10px 0px; }
  .usyd-timelines .usyd-btn-more .usyd-less {
    display: none; }

@media (max-width: 767px) {
  .timelineModule .usyd-timeline-segment .usyd-image {
    max-width: 300px; }
  .timelineModule .usyd-timeline-segment:nth-child(2n+7) {
    display: none; } }

@media (max-width: 767px) {
  .usyd-timeline.open .usyd-timeline-segment:nth-child(2n+7) {
    display: block; }
  .usyd-timeline.open .usyd-more .seeLess {
    display: block; }
  .usyd-timeline.open .usyd-more .seeMore {
    display: none; } }

@media (min-width: 768px) {
  .usyd-timeline .usyd-segments {
    position: relative;
    overflow: hidden; }
  .usyd-timeline .usyd-segments::before {
    content: ' ';
    position: absolute;
    top: 0px;
    left: 50%;
    height: 100%;
    width: 1px;
    background-color: black; }
  .usyd-timeline .usyd-segment {
    width: 50%;
    margin-bottom: 0px;
    margin-left: 0px;
    padding-left: 0px;
    border-left: none; }
    .usyd-timeline .usyd-segment:first-child {
      margin-top: 0px; }
    .usyd-timeline .usyd-segment:last-child {
      min-height: 0;
      padding-bottom: 0; }
    .usyd-timeline .usyd-segment.right {
      float: right;
      width: 45%;
      padding: 10px;
      border: 1px solid #424242;
      -webkit-border-radius: 5px;
      -moz-border-radius: 5px;
      border-radius: 5px; }
    .usyd-timeline .usyd-segment.left {
      float: left;
      width: 45%;
      padding: 10px;
      border: 1px solid #424242;
      -webkit-border-radius: 5px;
      -moz-border-radius: 5px;
      border-radius: 5px; }
  .usyd-timeline .usyd-btn-more {
    display: none; } }

.usyd-page-summary {
  padding-top: 5px;
  display: block; }
  .usyd-page-summary p {
    font-size: 16px;
    line-height: 140%; }
    .usyd-page-summary p:first-child {
      margin-top: 0; }

.usyd-publish-date {
  padding-top: 5px;
  font-size: 16px;
  font-style: italic; }

.usyd-document-embed {
  margin-bottom: 30px;
  clear: both; }
  .usyd-document-embed .usyd-title {
    margin-bottom: 15px; }

.usyd-news-listing {
  margin: 0 0 20px 0; }
  .usyd-news-listing li {
    list-style-type: none;
    margin-bottom: 35px; }
    .usyd-news-listing li .usyd-ui-link {
      text-decoration: none;
      color: #195b98; }
      .usyd-news-listing li .usyd-ui-link .usyd-listing-header {
        margin: 15px 0 10px 0;
        text-decoration: none;
        font-size: 20px;
        line-height: normal;
        text-transform: none; }
        .usyd-news-listing li .usyd-ui-link .usyd-listing-header:focus, .usyd-news-listing li .usyd-ui-link .usyd-listing-header:hover {
          text-decoration: underline; }
      .usyd-news-listing li .usyd-ui-link .usyd-ui-date {
        text-decoration: none;
        color: black;
        font-weight: bold; }
    .usyd-news-listing li .usyd-description {
      font-size: 12px;
      line-height: 18px;
      margin-top: 10px;
      margin-bottom: 30px; }
      .usyd-news-listing li .usyd-description p {
        margin-bottom: 0; }
  .usyd-news-listing.usyd-news-article-listing .usyd-listing-header {
    font-size: 16px;
    line-height: normal; }

.usyd-feature-aside .usyd-news-listing {
  border-top: 2px solid #e64626; }

.usyd-maps {
  margin: 20px 0; }
  .usyd-maps .usyd-map {
    margin: 15px 0;
    max-width: 100%;
    height: 295px; }
  .usyd-maps .usyd-address {
    font-size: 1.4em; }
  .usyd-maps .usyd-address-location {
    margin-right: 1em; }
  .usyd-maps .usyd-direction-link {
    white-space: nowrap; }

@media (min-width: 768px) {
  .usyd-aside .usyd-map-google .usyd-map {
    width: 280px;
    height: 280px; } }

@media (max-width: 979px) {
  .usyd-aside .usyd-map-google .usyd-map {
    width: 220px;
    height: 280px; } }

@media (max-width: 768px) {
  .usyd-aside .usyd-map-google .usyd-map {
    width: 171px;
    height: 280px; } }

@media (max-width: 767px) {
  .usyd-aside .usyd-map-google .usyd-map {
    width: 100%;
    height: 280px; } }

@media print {
  * {
    -webkit-transition: none !important;
    transition: none !important; }
  nav, header, footer, form, i {
    display: none; }
  body {
    margin: 0;
    display: block; }
  table {
    page-break-inside: avoid;
    break-inside: avoid;
    border-collapse: collapse; }
  .usyd-ui-common-nav {
    display: none; }
  .usyd-back-to-top {
    display: none; }
  .usyd-nav-tools {
    display: none; }
  .usyd-header-tools {
    display: none; }
  a {
    text-decoration: none; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy9iYXNlLmNzcyIsInN0eWxlcy9iYXNlLnNjc3MiLCJzdHlsZXMvdmVuZG9yL2F2YWxhbmNoZS1jc3MvX2F2YWxhbmNoZS5zY3NzIiwic3R5bGVzL19zY3JlZW4uc2NzcyIsInN0eWxlcy9fbWl4aW5zLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2JhY2stdG8tdG9wLnNjc3MiLCJzdHlsZXMvX2NvbG9ycy5zY3NzIiwiLi4vanNwbV9wYWNrYWdlcy9ucG0vY29tcGFzcy1taXhpbnNAMC4xMi43L2xpYi9jb21wYXNzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uL2pzcG1fcGFja2FnZXMvbnBtL2NvbXBhc3MtbWl4aW5zQDAuMTIuNy9saWIvY29tcGFzcy9jc3MzL19zaGFyZWQuc2NzcyIsIi4uL2pzcG1fcGFja2FnZXMvbnBtL2NvbXBhc3MtbWl4aW5zQDAuMTIuNy9saWIvY29tcGFzcy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uL2pzcG1fcGFja2FnZXMvbnBtL2NvbXBhc3MtbWl4aW5zQDAuMTIuNy9saWIvY29tcGFzcy9yZXNldC9fdXRpbGl0aWVzLnNjc3MiLCJzdHlsZXMvdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL191dGlsaXRpZXMuc2NzcyIsInN0eWxlcy9zY3JlZW4vYmFzZS5zY3NzIiwic3R5bGVzL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9fbWl4aW5zLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2NhcmQuc2NzcyIsInN0eWxlcy9fZnVuY3Rpb25zLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3NvY2lhbC1jYXJkLnNjc3MiLCIuLi9qc3BtX3BhY2thZ2VzL25wbS9jb21wYXNzLW1peGluc0AwLjEyLjcvbGliL2NvbXBhc3MvY3NzMy9fb3BhY2l0eS5zY3NzIiwic3R5bGVzL3NjcmVlbi9jbGFzcy1jb2Rlcy5zY3NzIiwic3R5bGVzL3NjcmVlbi9jbGFzc2lmaWVkcy5zY3NzIiwic3R5bGVzL3NjcmVlbi9jb250ZW50LnNjc3MiLCJzdHlsZXMvc2NyZWVuL2NsaXBwaW5nLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2xpbmstbWFya2Vycy5zY3NzIiwic3R5bGVzL3NjcmVlbi9hcHBzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL25hdi10b29scy5zY3NzIiwiLi4vanNwbV9wYWNrYWdlcy9ucG0vY29tcGFzcy1taXhpbnNAMC4xMi43L2xpYi9jb21wYXNzL2NzczMvX2JveC1zaXppbmcuc2NzcyIsInN0eWxlcy9zY3JlZW4vZW1waGFzaXMuc2NzcyIsInN0eWxlcy9zY3JlZW4vZ3JvdXBzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2ZlZWRiYWNrLnNjc3MiLCIuLi9qc3BtX3BhY2thZ2VzL25wbS9jb21wYXNzLW1peGluc0AwLjEyLjcvbGliL2NvbXBhc3MvY3NzMy9faW1hZ2VzLnNjc3MiLCIuLi9qc3BtX3BhY2thZ2VzL25wbS9jb21wYXNzLW1peGluc0AwLjEyLjcvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19jcm9zc19icm93c2VyX3N1cHBvcnQuc2NzcyIsInN0eWxlcy9zY3JlZW4vZmlndXJlLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2Zvb3Rlci5zY3NzIiwic3R5bGVzL3NjcmVlbi9mb290bm90ZXMuc2NzcyIsInN0eWxlcy92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2Zvcm1zLnNjc3MiLCJzdHlsZXMvdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL192YXJpYWJsZXMuc2NzcyIsInN0eWxlcy9zY3JlZW4vZm9ybS5zY3NzIiwic3R5bGVzL3NjcmVlbi9oZWFkZXIuc2NzcyIsIi4uL2pzcG1fcGFja2FnZXMvbnBtL2NvbXBhc3MtbWl4aW5zQDAuMTIuNy9saWIvY29tcGFzcy9jc3MzL19pbmxpbmUtYmxvY2suc2NzcyIsIi4uL2pzcG1fcGFja2FnZXMvbnBtL2NvbXBhc3MtbWl4aW5zQDAuMTIuNy9saWIvY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9faGFja3Muc2NzcyIsInN0eWxlcy9zY3JlZW4vYmxvY2stbmF2LnNjc3MiLCJzdHlsZXMvc2NyZWVuL2dsb2JhbC1uYXYuc2NzcyIsInN0eWxlcy9zY3JlZW4vaGVyby5zY3NzIiwic3R5bGVzL3NjcmVlbi9ob21lLWxvZ28tc3VydmV5LnNjc3MiLCJzdHlsZXMvc2NyZWVuL2hvbWUuc2NzcyIsInN0eWxlcy9zY3JlZW4vaWNvbnMuc2NzcyIsInN0eWxlcy92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvX2xheW91dHMuc2NzcyIsInN0eWxlcy9zY3JlZW4vX2Jvb3RzdHJhcC1yZXNwb25zaXZlLnNjc3MiLCJzdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwic3R5bGVzL3NjcmVlbi9sYXlvdXQuc2NzcyIsInN0eWxlcy9zY3JlZW4vbGF5b3V0LWhhY2tzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2xvY2FsLWludHJhbmV0cy5zY3NzIiwic3R5bGVzL3NjcmVlbi9jb2x1bW5zLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2xpc3Quc2NzcyIsInN0eWxlcy9zY3JlZW4vbGFiZWxsZWQtbGlzdC5zY3NzIiwic3R5bGVzL3NjcmVlbi9saXN0aW5ncy5zY3NzIiwic3R5bGVzL3NjcmVlbi9tYXNrLnNjc3MiLCJzdHlsZXMvc2NyZWVuL21lbnUuc2NzcyIsInN0eWxlcy9zY3JlZW4vcGFnaW5hdGlvbi5zY3NzIiwic3R5bGVzL3NjcmVlbi9uZXdzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL25vdGljZXMuc2NzcyIsIi4uL2pzcG1fcGFja2FnZXMvbnBtL2NvbXBhc3MtbWl4aW5zQDAuMTIuNy9saWIvY29tcGFzcy9mdW5jdGlvbnMvX2NvbG9ycy5zY3NzIiwic3R5bGVzL3NjcmVlbi9ub3RpZmllci5zY3NzIiwic3R5bGVzL3NjcmVlbi9vdmVybGF5LnNjc3MiLCJzdHlsZXMvc2NyZWVuL3Blci1kaWVtLnNjc3MiLCJzdHlsZXMvdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL19sYWJlbHMtYmFkZ2VzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2xhYmVscy1iYWRnZXMuc2NzcyIsInN0eWxlcy9zY3JlZW4vcG9sbC5zY3NzIiwic3R5bGVzL3NjcmVlbi9yYXRlLXRoaXMtcGFnZS5zY3NzIiwic3R5bGVzL3NjcmVlbi9zbmlwcGV0LnNjc3MiLCJzdHlsZXMvc2NyZWVuL3N1cnZleS1vdmVybGF5LnNjc3MiLCJzdHlsZXMvX21peGluLXRvb2x0aXBzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3RhYmxlcy5zY3NzIiwic3R5bGVzL3NjcmVlbi90YWJzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3RheW5lLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3RpbGVzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3Rvb2xiYXIuc2NzcyIsInN0eWxlcy9zY3JlZW4vdG9vbHRpcHMuc2NzcyIsInN0eWxlcy9zY3JlZW4vdHV0b3JpYWwuc2NzcyIsInN0eWxlcy9zY3JlZW4vdHV0b3JpYWxzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL2hvbWUtbG9naW4uc2NzcyIsInN0eWxlcy9zY3JlZW4veWFtbWVyLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3Jlc3BvbnNpdmUuc2NzcyIsInN0eWxlcy9zY3JlZW4vbWFya2Vycy5zY3NzIiwic3R5bGVzL3NjcmVlbi9kYXRhdGFibGUuc2NzcyIsInN0eWxlcy9zY3JlZW4vdG9wLXBhZ2VzLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3NlYXJjaC5zY3NzIiwiLi4vanNwbV9wYWNrYWdlcy9ucG0vY29tcGFzcy1taXhpbnNAMC4xMi43L2xpYi9jb21wYXNzL3R5cG9ncmFwaHkvdGV4dC9fZm9yY2Utd3JhcC5zY3NzIiwic3R5bGVzL3NjcmVlbi9jYWxsLXRvLWFjdGlvbi5zY3NzIiwic3R5bGVzL3NjcmVlbi9wdWxsLXF1b3RlLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3RpbWVsaW5lLnNjc3MiLCJzdHlsZXMvc2NyZWVuL3BhZ2Utc3VtbWFyeS5zY3NzIiwic3R5bGVzL3NjcmVlbi9wdWJsaXNoLWRhdGUuc2NzcyIsInN0eWxlcy9zY3JlZW4vZG9jdW1lbnQtZW1iZWQuc2NzcyIsInN0eWxlcy9zY3JlZW4vbmV3cy1jaGlsZC1saXN0aW5nLnNjc3MiLCJzdHlsZXMvc2NyZWVuL21hcHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNJakIsOENBQU87QUFDUCxrREFBTztBQUNQLGlDQUFPO0FBQ1Asd0RBQU87QUFDUCw0REFBTztBQ05QLDhDQUE4QztBQUU5Qzt3Q0FFd0M7QUFrRHhDO3dDQUV3QztBQTBIeEM7d0NBRXdDO0FBRXhDO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsVUFBVTtFQUNWLG1CQS9LOEI7RUFnTDlCLGdCQUFnQixFQUNqQjs7QUFFRDtFQUNFLHVCQUF1QjtFQUN2QixzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLFdBQVc7RUFDWCxtQkF4TDhCO0VBeUw5QixVQUFVO0VBQ1Ysb0JBQW9CO0VBQ3BCLGdCQUFnQixFQUNqQjs7QUFJQztFQUNFLG1CQUFtQixFQUtwQjtFQU5EO0lBSUksaUJBQWlCLEVBQ2xCOztBQU1IO0VBQ0UsZUFBZTtFQUNmLGVBQWUsRUFDaEI7O0FBS0Q7RUFDRSxrQkFBa0IsRUFLbkI7RUFORDtJQUlJLGlCQUFpQixFQUNsQjs7QUFNSDtFQUdJLHVCQUF1QixFQUN4Qjs7QUFnQkg7RUFDRSxlQUFlLEVBS2hCO0VBTkQ7SUFJSSxnQkFBZ0IsRUFDakI7O0FBeUVMO3dDQUV3QztBQWpNaEM7RUFNSSxXQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGlCQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGlCQVpvQixFQWN2Qjs7QUFSRDtFQU1JLFdBWm9CLEVBY3ZCOztBQVJEO0VBTUksV0Fab0IsRUFjdkI7O0FBUkQ7RUFNSSxXQVpvQixFQWN2Qjs7QUFSRDtFQU1JLFdBWm9CLEVBY3ZCOztBQVJEO0VBTUksV0Fab0IsRUFjdkI7O0FBUkQ7RUFNSSxXQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGlCQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGlCQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGdCQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGlCQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGlCQVpvQixFQWN2Qjs7QUFSRDtFQU1JLGlCQVpvQixFQWN2Qjs7QUFvTUw7RUE1TUk7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxnQkFab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkIsRUFBQTs7QUFvTUw7RUE1TUk7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxnQkFab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkIsRUFBQTs7QUFvTUw7RUE1TUk7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxnQkFab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkIsRUFBQTs7QUFvTUw7RUE1TUk7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxnQkFab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkIsRUFBQTs7QUFvTUw7RUE1TUk7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxnQkFab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkIsRUFBQTs7QUFvTUw7RUE1TUk7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxnQkFab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkIsRUFBQTs7QUFvTUw7RUE1TUk7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLFdBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxXQVpvQixFQWN2QjtFQVJEO0lBTUksV0Fab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxnQkFab0IsRUFjdkI7RUFSRDtJQU1JLGlCQVpvQixFQWN2QjtFQVJEO0lBTUksaUJBWm9CLEVBY3ZCO0VBUkQ7SUFNSSxpQkFa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b0IsRUFDdkI7SXdCOU9MO01DckN3RixtRENjdEQ7TURic0Qsc0RDYXREO01EWnNELG1EQ1l0RDtNRFhzRCxpRENXdEQ7TURWaUQsd0RDVWpEO01EVHNELDhDekIwUmpEO01BR25DLHNCQUFZO01JMVN5QyxpREoyU0U7TUl6U0MsOENKeVNEO01JdFNNLHlDSnNTTjtNQUN2RCxzQkFBc0IsRUEzRXJCO0l3QnBMTDtNcEI3Q3lELHlCSmtTN0I7TUloU2dDLHNCSmdTaEM7TUk3UnFDLGlCSjZSckM7TUFDeEIsc0JBQXNCLEVBOURyQjtJd0J4TEw7TXhCMkxRLGF3QmxMK0IsRXhCbUxsQztJd0I1TEw7TXhCK0xRLGtCQUFrQjtNQUNsQixlQUFjO01JN09tQyx5Qko4T3pCO01JNU80QixzQko0TzVCO01Jek9pQyxpQkp5T2pDO01BQ3hCLGtCQUFrQjtNQUNsQixnQkFBZ0I7TUFDaEIsdUJBQXVCO01BQ3ZCLGtCQUFrQixFQUNyQjtJd0J0TUw7TXhCMktRLDBCRTdOZTtNRjhOZixhd0I5SmdDLEVBQ3JDO01BZkg7UUNyQ3dGLG1EQ2N0RDtRRGJzRCxzRENhdEQ7UURac0QsbURDWXREO1FEWHNELGlEQ1d0RDtRRFZpRCx3RENVakQ7UURUc0QsOEN6QjBSakQ7UUFHbkMsc0JBQVk7UUkxU3lDLGlESjJTRTtRSXpTQyw4Q0p5U0Q7UUl0U00seUNKc1NOO1FBQ3ZELHNCQUFzQixFQTNFckI7TXdCcExMO1FwQjdDeUQseUJKa1M3QjtRSWhTZ0Msc0JKZ1NoQztRSTdScUMsaUJKNlJyQztRQUN4QixzQkFBc0IsRUE5RHJCO013QnhMTDtReEIyTFEsYXdCN0tnQyxFeEI4S25DO013QjVMTDtReEIrTFEsa0JBQWtCO1FBQ2xCLGVBQWM7UUk3T21DLHlCSjhPekI7UUk1TzRCLHNCSjRPNUI7UUl6T2lDLGlCSnlPakM7UUFDeEIsa0JBQWtCO1FBQ2xCLGdCQUFnQjtRQUNoQix1QkFBdUI7UUFDdkIsa0JBQWtCLEVBQ3JCO0l3QnRNTDtNQWtCRyw4REFBc0I7TUFDdEIsNkJBQTZCO01BQzdCLGdDQUFnQztNQUNoQyxtQkFB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Qjs7QUFFRDtFQUNFLDhCQUE4QixFQUMvQjs7QUFTRDtFckIvRkksZVBwQ3VCLEVPcUN4Qjs7QXFCOEZIO0VyQjNGSSxlUHhDdUI7RU95Q3ZCLHNCUHpDdUIsRU84Q3hCO0VxQnFGSDtJckJ4Rk0sc0JBQW9CO0lBeUJ4QixvQ0F4QnVDO0lBeUJwQyxpQ0F6Qm9DO0lBMEIvQiw0QkExQitCLEVBQ3BDOztBcUJzRkw7RXJCbEZJLGVQakR1QjtFT2tEdkIsMEJFbktRO0VGb0tSLHNCUG5EdUIsRU9vRHhCOztBcUJtRkg7RXJCbkdJLGVQdENxQixFT3VDdEI7O0FxQmtHSDtFckIvRkksZVAxQ3FCO0VPMkNyQixzQlAzQ3FCLEVPZ0R0QjtFcUJ5Rkg7SXJCNUZNLHNCQUFvQjtJQXlCeEIsb0NBeEJ1QztJQXlCcEMsaUNBekJvQztJQTBCL0IsNEJBMUIrQixFQUNwQzs7QXFCMEZMO0VyQnRGSSxlUG5EcUI7RU9vRHJCLDBCRW5LUTtFRm9LUixzQlByRHFCLEVPc0R0Qjs7QXFCdUZIO0VyQnZHSSxlUGhDdUIsRU9pQ3hCOztBcUJzR0g7RXJCbkdJLGVQcEN1QjtFT3FDdkIsc0JQckN1QixFTzBDeEI7RXFCNkZIO0lyQmhHTSxzQkFBb0I7SUF5QnhCLG9DQXhCdUM7SUF5QnBDLGlDQXpCb0M7SUEwQi9CLDRCQTFCK0IsRUFDcEM7O0FxQjhGTDtFckIxRkksZVA3Q3VCO0VPOEN2QiwwQkVuS1E7RUZvS1Isc0JQL0N1QixFT2dEeEI7O0FxQjZGSDtFQUNFLGVBQWU7RUFDZixzQkFBc0IsRUFLdkI7RUFQRDtJQUlJLHNCQUFvQjtJckJqRnRCLG9DcUJrRnFDO0lyQmpGbEMsaUNxQmlGa0M7SXJCaEY3Qiw0QnFCZ0Y2QixFQUNwQzs7QUFRSDtFQUNFLHdCQ3pPMEI7RUQwTzFCLGlCQzFPMEI7RUQyTzFCLG9CQzNPMEI7RUQ0TzFCLDBCQy9McUM7RURnTXJDLDJCQUEyQjtHckJsUjNCLFFBQVMsRXFCb1JWO0VBUEQ7SXJCMVFJLGVBQWU7SUFDZixZQUFZLEVBQ2I7RXFCd1FIO0lyQnRRSSxZQUFZLEVBQ2I7O0FxQitR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LDJCQUEyQjtNQUMzQixpQkFBaUI7TUFDakIsK0JBQStCO01BQy9CLGdDQUFnQyxFQUNuQztFRGxDYjtJQ3NDZ0IsVUFBVTtJQUNWLG1CRHJDSyxFQ3NDUjtFRHhDYjtJQzRDZ0IsV0QxQ0ssRUMyQ1I7RUQ3Q2I7SUNpRGdCLFlEL0NLLEVDZ0RSO0VEbERiO0lDc0RZLGtCRHBEUyxFQzZEWjtJRC9EVDtNQ3dEZ0IsWUFBbUI7TUFFbkIsMEJBQTBCO01BQzFCLGtCQUFrQjtNQUNsQiw4QkFBOEI7TUFDOUIsaUNBQWlDLEVBQ3BDO0VEOURiO0lDbUVnQixTQUFTO0lBQ1Qsa0JEbEVLLEVDbUVSO0VEckViO0lDMEVnQixVRHhFSyxFQ3lFUjtFRDNFYjtJQ2dGZ0IsYUQ5RUssRUMrRVI7RURqRmI7SUNzRlksbUJEcEZTLEVDNkZaO0lEL0ZUO01Dd0ZnQixhQUFvQjtNQUVwQix5QkFBeUI7TUFDekIsbUJBQW1CO01BQ25CLDhCQUE4QjtNQUM5QixpQ0FBaUMsRUFDcEM7RUQ5RmI7SUNtR2dCLFNBQVM7SUFDVCxrQkRsR0ssRUNtR1I7RURyR2I7SUMwR2dCLFVEeEdLLEVDeUdSO0VEM0diO0lDZ0hnQixhRDlHSyxFQytHUjs7QURqSGI7RUNzSFEsdUJBcklnQjtFQXNJaEIsdUJqRTlHYztHaUUrR2QsdUJBdklnQjtFQXdJaEIsYWpFcEhnQjtFaUVxSGhCLGlCQUFpQjtHQUNqQixnQkFBaUI7R0FDakIsYUFBYztFQUNkLGlCQUFpQjtFL0RuSWdDLG1EK0RvSUc7RS9EbElBLGdEK0RrSUE7RS9EL0hLLDJDK0QrSEw7RS9EcElILDJCK0RxSXZCO0UvRG5JMEIsd0IrRG1JMUI7RS9EbEkyQix1QitEa0kzQjtFL0RqSTRCLHNCK0RpSTVCO0UvRGhJK0IsbUIrRGdJL0IsRUFDN0I7O0FEaElMO0VDbUlRLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsVUFBVTtFQUNWLGVBQWU7RUFDZix3QkF0SmdCO0VBdUpoQix3QmpFL0hjO0dpRWdJZCx3QkF4SmdCLEVBeUpuQjs7QW5FeVFMOzs7Ozs7O0VBT0U7QUF3QkY7O0dBRUc7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QUFjLEVBQ2pCO0VBQ0Q7SUFDSSxjQUFjLEVBQ2pCO0VBRUQ7SUFDSSxjQUFhLEVBQ2hCO0VBRUQ7SUFDSSxjQUFjLEVBQ2pCO0VBRUQ7SUFDSSxzQkFBc0IsRUFDekIsRUFBQSIsImZpbGUiOiJzdHlsZXMvYmFzZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5AaW1wb3J0IHVybCh2ZW5kb3IvZm9udGVsbG8vY3NzL2ZvbnRlbGxvLmNzcyk7XG5AaW1wb3J0IHVybCh2ZW5kb3IvZm9udGVsbG8vY3NzL2ZvbnRlbGxvLWllNy5jc3MpO1xuQGltcG9ydCB1cmwodmVuZG9yL2xpZ2h0Ym94LmNzcyk7XG5AaW1wb3J0IHVybCh2ZW5kb3IvZmFuY3lib3gvc291cmNlL2pxdWVyeS5mYW5jeWJveC5jc3MpO1xuQGltcG9ydCB1cmwodmVuZG9yL1N3aXBlckAyLjcuNi9kaXN0L2lkYW5nZXJvdXMuc3dpcGVyLmNzcyk7XG4vKiEgQXZhbGFuY2hlIHwgTUlUIExpY2Vuc2UgfCBAY29sb3VyZ2FyZGVuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgU0VUVElOR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgTE9HSUMgYWthIFRIRSBNQUdJQ1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICBHUklEIExBWU9VVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5ncmlkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBmb250LXNpemU6IDByZW07IH1cblxuLmdyaWRfX2NlbGwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbjogMDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5ncmlkLS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmdyaWQtLWNlbnRlciA+IC5ncmlkX19jZWxsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5ncmlkX19jZWxsLS1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmdyaWQtLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLmdyaWQtLXJpZ2h0ID4gLmdyaWRfX2NlbGwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLmdyaWQtLW1pZGRsZSA+IC5ncmlkX19jZWxsIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4uZ3JpZC0tZmx1c2gge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZ3JpZC0tZmx1c2ggPiAuZ3JpZF9fY2VsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICBHUklEIFdJRFRIU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5cXDMxXFwvMiwgLlxcMzJcXC80LCAuXFwzM1xcLzYsIC5cXDM2XFwvMTIge1xuICB3aWR0aDogNTAlOyB9XG5cbi5cXDMxXFwvMywgLlxcMzJcXC82LCAuXFwzNFxcLzEyIHtcbiAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4uXFwzMlxcLzMsIC5cXDM0XFwvNiwgLlxcMzhcXC8xMiB7XG4gIHdpZHRoOiA2Ni42NjY2NyU7IH1cblxuLlxcMzFcXC80LCAuXFwzM1xcLzEyIHtcbiAgd2lkdGg6IDI1JTsgfVxuXG4uXFwzM1xcLzQsIC5cXDM5XFwvMTIge1xuICB3aWR0aDogNzUlOyB9XG5cbi5cXDMxXFwvNSB7XG4gIHdpZHRoOiAyMCU7IH1cblxuLlxcMzJcXC81IHtcbiAgd2lkdGg6IDQwJTsgfVxuXG4uXFwzM1xcLzUge1xuICB3aWR0aDogNjAlOyB9XG5cbi5cXDM0XFwvNSB7XG4gIHdpZHRoOiA4MCU7IH1cblxuLlxcMzFcXC82LCAuXFwzMlxcLzEyIHtcbiAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4uXFwzNVxcLzYsIC5cXDMxXFwzMFxcLzEyIHtcbiAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuXG4uXFwzMVxcLzEyIHtcbiAgd2lkdGg6IDguMzMzMzMlOyB9XG5cbi5cXDM1XFwvMTIge1xuICB3aWR0aDogNDEuNjY2NjclOyB9XG5cbi5cXDM3XFwvMTIge1xuICB3aWR0aDogNTguMzMzMzMlOyB9XG5cbi5cXDMxXFwzMVxcLzEyIHtcbiAgd2lkdGg6IDkxLjY2NjY3JTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuXFwzMVxcLzItLW1vYmlsZS1kb3duLCAuXFwzMlxcLzQtLW1vYmlsZS1kb3duLCAuXFwzM1xcLzYtLW1vYmlsZS1kb3duLCAuXFwzNlxcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuXFwzMVxcLzMtLW1vYmlsZS1kb3duLCAuXFwzMlxcLzYtLW1vYmlsZS1kb3duLCAuXFwzNFxcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuXFwzMlxcLzMtLW1vYmlsZS1kb3duLCAuXFwzNFxcLzYtLW1vYmlsZS1kb3duLCAuXFwzOFxcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuXFwzMVxcLzQtLW1vYmlsZS1kb3duLCAuXFwzM1xcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuXFwzM1xcLzQtLW1vYmlsZS1kb3duLCAuXFwzOVxcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuXFwzMVxcLzUtLW1vYmlsZS1kb3duIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5cXDMyXFwvNS0tbW9iaWxlLWRvd24ge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLlxcMzNcXC81LS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAuXFwzNFxcLzUtLW1vYmlsZS1kb3duIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC5cXDMxXFwvNi0tbW9iaWxlLWRvd24sIC5cXDMyXFwvMTItLW1vYmlsZS1kb3duIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5cXDM1XFwvNi0tbW9iaWxlLWRvd24sIC5cXDMxXFwzMFxcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuXFwzMVxcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5cXDM1XFwvMTItLW1vYmlsZS1kb3duIHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5cXDM3XFwvMTItLW1vYmlsZS1kb3duIHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5cXDMxXFwzMVxcLzEyLS1tb2JpbGUtZG93biB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5cXDMxXFwvMi0tbW9iaWxlLXVwLCAuXFwzMlxcLzQtLW1vYmlsZS11cCwgLlxcMzNcXC82LS1tb2JpbGUtdXAsIC5cXDM2XFwvMTItLW1vYmlsZS11cCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuXFwzMVxcLzMtLW1vYmlsZS11cCwgLlxcMzJcXC82LS1tb2JpbGUtdXAsIC5cXDM0XFwvMTItLW1vYmlsZS11cCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuXFwzMlxcLzMtLW1vYmlsZS11cCwgLlxcMzRcXC82LS1tb2JpbGUtdXAsIC5cXDM4XFwvMTItLW1vYmlsZS11cCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuXFwzMVxcLzQtLW1vYmlsZS11cCwgLlxcMzNcXC8xMi0tbW9iaWxlLXVwIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5cXDMzXFwvNC0tbW9iaWxlLXVwLCAuXFwzOVxcLzEyLS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLlxcMzFcXC81LS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLlxcMzJcXC81LS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLlxcMzNcXC81LS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLlxcMzRcXC81LS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLlxcMzFcXC82LS1tb2JpbGUtdXAsIC5cXDMyXFwvMTItLW1vYmlsZS11cCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuXFwzNVxcLzYtLW1vYmlsZS11cCwgLlxcMzFcXDMwXFwvMTItLW1vYmlsZS11cCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuXFwzMVxcLzEyLS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuXFwzNVxcLzEyLS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLlxcMzdcXC8xMi0tbW9iaWxlLXVwIHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5cXDMxXFwzMVxcLzEyLS1tb2JpbGUtdXAge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuXFwzMVxcLzItLXRhYmxldC1kb3duLCAuXFwzMlxcLzQtLXRhYmxldC1kb3duLCAuXFwzM1xcLzYtLXRhYmxldC1kb3duLCAuXFwzNlxcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuXFwzMVxcLzMtLXRhYmxldC1kb3duLCAuXFwzMlxcLzYtLXRhYmxldC1kb3duLCAuXFwzNFxcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuXFwzMlxcLzMtLXRhYmxldC1kb3duLCAuXFwzNFxcLzYtLXRhYmxldC1kb3duLCAuXFwzOFxcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuXFwzMVxcLzQtLXRhYmxldC1kb3duLCAuXFwzM1xcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuXFwzM1xcLzQtLXRhYmxldC1kb3duLCAuXFwzOVxcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuXFwzMVxcLzUtLXRhYmxldC1kb3duIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5cXDMyXFwvNS0tdGFibGV0LWRvd24ge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLlxcMzNcXC81LS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAuXFwzNFxcLzUtLXRhYmxldC1kb3duIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC5cXDMxXFwvNi0tdGFibGV0LWRvd24sIC5cXDMyXFwvMTItLXRhYmxldC1kb3duIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5cXDM1XFwvNi0tdGFibGV0LWRvd24sIC5cXDMxXFwzMFxcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuXFwzMVxcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5cXDM1XFwvMTItLXRhYmxldC1kb3duIHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5cXDM3XFwvMTItLXRhYmxldC1kb3duIHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5cXDMxXFwzMVxcLzEyLS10YWJsZXQtZG93biB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5cXDMxXFwvMi0tdGFibGV0LXVwLCAuXFwzMlxcLzQtLXRhYmxldC11cCwgLlxcMzNcXC82LS10YWJsZXQtdXAsIC5cXDM2XFwvMTItLXRhYmxldC11cCB7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuXFwzMVxcLzMtLXRhYmxldC11cCwgLlxcMzJcXC82LS10YWJsZXQtdXAsIC5cXDM0XFwvMTItLXRhYmxldC11cCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAuXFwzMlxcLzMtLXRhYmxldC11cCwgLlxcMzRcXC82LS10YWJsZXQtdXAsIC5cXDM4XFwvMTItLXRhYmxldC11cCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAuXFwzMVxcLzQtLXRhYmxldC11cCwgLlxcMzNcXC8xMi0tdGFibGV0LXVwIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5cXDMzXFwvNC0tdGFibGV0LXVwLCAuXFwzOVxcLzEyLS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLlxcMzFcXC81LS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLlxcMzJcXC81LS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgLlxcMzNcXC81LS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLlxcMzRcXC81LS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLlxcMzFcXC82LS10YWJsZXQtdXAsIC5cXDMyXFwvMTItLXRhYmxldC11cCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuXFwzNVxcLzYtLXRhYmxldC11cCwgLlxcMzFcXDMwXFwvMTItLXRhYmxldC11cCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJTsgfVxuICAuXFwzMVxcLzEyLS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuXFwzNVxcLzEyLS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLlxcMzdcXC8xMi0tdGFibGV0LXVwIHtcbiAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5cXDMxXFwzMVxcLzEyLS10YWJsZXQtdXAge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkge1xuICAuXFwzMVxcLzItLXNtLWRlc2stdXAsIC5cXDMyXFwvNC0tc20tZGVzay11cCwgLlxcMzNcXC82LS1zbS1kZXNrLXVwLCAuXFwzNlxcLzEyLS1zbS1kZXNrLXVwIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC5cXDMxXFwvMy0tc20tZGVzay11cCwgLlxcMzJcXC82LS1zbS1kZXNrLXVwLCAuXFwzNFxcLzEyLS1zbS1kZXNrLXVwIHtcbiAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5cXDMyXFwvMy0tc20tZGVzay11cCwgLlxcMzRcXC82LS1zbS1kZXNrLXVwLCAuXFwzOFxcLzEyLS1zbS1kZXNrLXVwIHtcbiAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5cXDMxXFwvNC0tc20tZGVzay11cCwgLlxcMzNcXC8xMi0tc20tZGVzay11cCB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuXFwzM1xcLzQtLXNtLWRlc2stdXAsIC5cXDM5XFwvMTItLXNtLWRlc2stdXAge1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgLlxcMzFcXC81LS1zbS1kZXNrLXVwIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5cXDMyXFwvNS0tc20tZGVzay11cCB7XG4gICAgd2lkdGg6IDQwJTsgfVxuICAuXFwzM1xcLzUtLXNtLWRlc2stdXAge1xuICAgIHdpZHRoOiA2MCU7IH1cbiAgLlxcMzRcXC81LS1zbS1kZXNrLXVwIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC5cXDMxXFwvNi0tc20tZGVzay11cCwgLlxcMzJcXC8xMi0tc20tZGVzay11cCB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAuXFwzNVxcLzYtLXNtLWRlc2stdXAsIC5cXDMxXFwzMFxcLzEyLS1zbS1kZXNrLXVwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5cXDMxXFwvMTItLXNtLWRlc2stdXAge1xuICAgIHdpZHRoOiA4LjMzMzMzJTsgfVxuICAuXFwzNVxcLzEyLS1zbS1kZXNrLXVwIHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5cXDM3XFwvMTItLXNtLWRlc2stdXAge1xuICAgIHdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLlxcMzFcXDMxXFwvMTItLXNtLWRlc2stdXAge1xuICAgIHdpZHRoOiA5MS42NjY2NyU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAuXFwzMVxcLzItLXNtLWRlc2stZG93biwgLlxcMzJcXC80LS1zbS1kZXNrLWRvd24sIC5cXDMzXFwvNi0tc20tZGVzay1kb3duLCAuXFwzNlxcLzEyLS1zbS1kZXNrLWRvd24ge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLlxcMzFcXC8zLS1zbS1kZXNrLWRvd24sIC5cXDMyXFwvNi0tc20tZGVzay1kb3duLCAuXFwzNFxcLzEyLS1zbS1kZXNrLWRvd24ge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLlxcMzJcXC8zLS1zbS1kZXNrLWRvd24sIC5cXDM0XFwvNi0tc20tZGVzay1kb3duLCAuXFwzOFxcLzEyLS1zbS1kZXNrLWRvd24ge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLlxcMzFcXC80LS1zbS1kZXNrLWRvd24sIC5cXDMzXFwvMTItLXNtLWRlc2stZG93biB7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAuXFwzM1xcLzQtLXNtLWRlc2stZG93biwgLlxcMzlcXC8xMi0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5cXDMxXFwvNS0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIC5cXDMyXFwvNS0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC5cXDMzXFwvNS0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC5cXDM0XFwvNS0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIC5cXDMxXFwvNi0tc20tZGVzay1kb3duLCAuXFwzMlxcLzEyLS1zbS1kZXNrLWRvd24ge1xuICAgIHdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLlxcMzVcXC82LS1zbS1kZXNrLWRvd24sIC5cXDMxXFwzMFxcLzEyLS1zbS1kZXNrLWRvd24ge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLlxcMzFcXC8xMi0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogOC4zMzMzMyU7IH1cbiAgLlxcMzVcXC8xMi0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5cXDM3XFwvMTItLXNtLWRlc2stZG93biB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuXFwzMVxcMzFcXC8xMi0tc20tZGVzay1kb3duIHtcbiAgICB3aWR0aDogOTEuNjY2NjclOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gIC5cXDMxXFwvMi0tbGctZGVzay11cCwgLlxcMzJcXC80LS1sZy1kZXNrLXVwLCAuXFwzM1xcLzYtLWxnLWRlc2stdXAsIC5cXDM2XFwvMTItLWxnLWRlc2stdXAge1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgLlxcMzFcXC8zLS1sZy1kZXNrLXVwLCAuXFwzMlxcLzYtLWxnLWRlc2stdXAsIC5cXDM0XFwvMTItLWxnLWRlc2stdXAge1xuICAgIHdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLlxcMzJcXC8zLS1sZy1kZXNrLXVwLCAuXFwzNFxcLzYtLWxnLWRlc2stdXAsIC5cXDM4XFwvMTItLWxnLWRlc2stdXAge1xuICAgIHdpZHRoOiA2Ni42NjY2NyU7IH1cbiAgLlxcMzFcXC80LS1sZy1kZXNrLXVwLCAuXFwzM1xcLzEyLS1sZy1kZXNrLXVwIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIC5cXDMzXFwvNC0tbGctZGVzay11cCwgLlxcMzlcXC8xMi0tbGctZGVzay11cCB7XG4gICAgd2lkdGg6IDc1JTsgfVxuICAuXFwzMVxcLzUtLWxnLWRlc2stdXAge1xuICAgIHdpZHRoOiAyMCU7IH1cbiAgLlxcMzJcXC81LS1sZy1kZXNrLXVwIHtcbiAgICB3aWR0aDogNDAlOyB9XG4gIC5cXDMzXFwvNS0tbGctZGVzay11cCB7XG4gICAgd2lkdGg6IDYwJTsgfVxuICAuXFwzNFxcLzUtLWxnLWRlc2stdXAge1xuICAgIHdpZHRoOiA4MCU7IH1cbiAgLlxcMzFcXC82LS1sZy1kZXNrLXVwLCAuXFwzMlxcLzEyLS1sZy1kZXNrLXVwIHtcbiAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5cXDM1XFwvNi0tbGctZGVzay11cCwgLlxcMzFcXDMwXFwvMTItLWxnLWRlc2stdXAge1xuICAgIHdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLlxcMzFcXC8xMi0tbGctZGVzay11cCB7XG4gICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5cXDM1XFwvMTItLWxnLWRlc2stdXAge1xuICAgIHdpZHRoOiA0MS42NjY2NyU7IH1cbiAgLlxcMzdcXC8xMi0tbGctZGVzay11cCB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAuXFwzMVxcMzFcXC8xMi0tbGctZGVzay11cCB7XG4gICAgd2lkdGg6IDkxLjY2NjY3JTsgfSB9XG5cbi8qIFRoaXMgZmlsZSBpcyBpbnRlbmRlZCBmb3IgZGV2ZWxvcG1lbnQgdXNlIG9ubHkuIEl0IGlzIG5vdCBvcHRpbWlzZWQgZm9yIHByb2R1Y3Rpb24gKi9cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLWJhY2stdG8tdG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyB9XG4gIC51c3lkLWJhY2stdG8tdG9wIGkge1xuICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgY29sb3I6ICNlNjQ2MjY7IH1cbiAgICAudXN5ZC1iYWNrLXRvLXRvcCBpOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnVzeWQtYmFjay10by10b3AgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnVzeWQtYmFjay10by10b3AgYSBzcGFuOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgLnVzeWQtYmFjay10by10b3AgYTp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMTk1Yjk4OyB9XG4gIC51c3lkLWJhY2stdG8tdG9wLnVzeWQtaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3NzdHJhbnNmb3JtczNkIC51c3lkLWJhY2stdG8tdG9wIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1vei10cmFuc2Zvcm07XG4gICAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW8tdHJhbnNmb3JtO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgLW1vei10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIC1vLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xuICAgIC1tb3otdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7IH1cbiAgICAuY3NzdHJhbnNmb3JtczNkIC51c3lkLWJhY2stdG8tdG9wLnVzeWQtaGlkZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiAgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWCg1cHgpO1xuICAgICAgLW1vei10cmFuc2Zvcm06ICByb3RhdGVaKDkwZGVnKSB0cmFuc2xhdGVYKDVweCk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWCg1cHgpO1xuICAgICAgLW8tdHJhbnNmb3JtOiAgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWCg1cHgpO1xuICAgICAgdHJhbnNmb3JtOiAgcm90YXRlWig5MGRlZykgdHJhbnNsYXRlWCg1cHgpOyB9XG5cbi5jc3N0cmFuc2Zvcm1zM2QgLnVzeWQtYmFjay10by10b3AudXN5ZC1oaWRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgxMDBweCwgMTAwcHgpO1xuICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSB0cmFuc2xhdGUoMTAwcHgsIDEwMHB4KTtcbiAgLW8tdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgxMDBweCwgMTAwcHgpO1xuICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgxMDBweCwgMTAwcHgpO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDEwMHB4LCAxMDBweCk7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51c3lkLWJhY2stdG8tdG9wIHtcbiAgICBib3R0b206IC0xcHg7XG4gICAgKmJvcmRlci1ib3R0b206IDA7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwO1xuICAgIC1tcy1ib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbiAgICAtby1ib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDsgfVxuICAgIC51c3lkLWJhY2stdG8tdG9wIGkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVzeWQtYmFjay10by10b3Age1xuICAgIGJvdHRvbTogNDBweDtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7XG4gICAgLW1zLWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgIC1vLWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xcHg7IH1cbiAgICAudXN5ZC1iYWNrLXRvLXRvcCBpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMHB4OyB9XG4gICAgLnVzeWQtYmFjay10by10b3Agc3BhbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cblxub2wsIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbmNhcHRpb24sIHRoLCB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxucSwgYmxvY2txdW90ZSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuICBxOmJlZm9yZSwgcTphZnRlciwgYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY29udGVudDogbm9uZTsgfVxuXG5hIGltZyB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYWluLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4ucHVsbC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4ucHVsbC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLmhpZGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zaG93IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG5odG1sIHtcbiAgZm9udDogbm9ybWFsIDYyLjUlIEFyaWFsLHNhbnMtc2VyaWY7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbmEge1xuICBjb2xvcjogIzE5NWI5ODsgfVxuICBhOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzZlMjE5ZTsgfVxuICBhOmFjdGl2ZSB7XG4gICAgY29sb3I6ICMyMTc2YzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgLnVzeWQtaDEsIC51c3lkLWgyLCAudXN5ZC1oMywgLnVzeWQtaDUsIC51c3lkLWg1LCAudXN5ZC1oNiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgaDEgYSwgaDIgYSwgaDMgYSwgaDQgYSwgaDUgYSwgaDYgYSwgLnVzeWQtaDEgYSwgLnVzeWQtaDIgYSwgLnVzeWQtaDMgYSwgLnVzeWQtaDUgYSwgLnVzeWQtaDUgYSwgLnVzeWQtaDYgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgaDEgYTpob3ZlciwgaDIgYTpob3ZlciwgaDMgYTpob3ZlciwgaDQgYTpob3ZlciwgaDUgYTpob3ZlciwgaDYgYTpob3ZlciwgLnVzeWQtaDEgYTpob3ZlciwgLnVzeWQtaDIgYTpob3ZlciwgLnVzeWQtaDMgYTpob3ZlciwgLnVzeWQtaDUgYTpob3ZlciwgLnVzeWQtaDUgYTpob3ZlciwgLnVzeWQtaDYgYTpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG5oMSwgLnVzeWQtaDEge1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmgyLCAudXN5ZC1oMiB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuaDMsIC51c3lkLWgzIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5oNCwgLnVzeWQtaDQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmg1LCAudXN5ZC1oNSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuaDYsIC51c3lkLWg2IHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG5wIHtcbiAgbGluZS1oZWlnaHQ6IDEuNGVtO1xuICBtYXJnaW46IDAuOGVtIDA7IH1cblxubGFiZWwge1xuICBmb250LXNpemU6IDEycHg7IH1cblxuc3Ryb25nLCBiIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuZW0sIGkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuc3VwIHtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xuICBmb250LXNpemU6IHNtYWxsZXI7IH1cblxuc3ViIHtcbiAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbmltZyB7XG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7IH1cblxuaW1nLCBvYmplY3QsIGVtYmVkIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiBzbWFsbGVyOyB9XG5cbmhyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBtYXJnaW46IDIwcHggNjBweDsgfVxuICBoci51c3lkLWZ1bGwtd2lkdGgge1xuICAgIG1hcmdpbjogMjBweCAwOyB9XG5cbmRsIHtcbiAgbWFyZ2luLXRvcDogMC44ZW07IH1cbiAgZGwgZHQsIGRsIGRkIHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgZGwgZHQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIGRsIGRkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhlbTsgfVxuXG4udXN5ZC11aS1tb3JlLWxpbmsge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzY2NjY2NjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDE3cHggMCAxN3B4IDA7XG4gIGhlaWdodDogMDsgfVxuICAudXN5ZC11aS1tb3JlLWxpbmsgYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTlweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IH1cblxuLnVzeWQtdWktc3Bva2VuLCAudXN5ZC1qcy1oaWRlLCAudXN5ZC11aS1mdWxsIC51c3lkLWpzLWhpZGUtZnVsbCwgLnVzeWQtdWktY29tcGFjdCAudXN5ZC1qcy1oaWRlLWNvbXBhY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTllbTsgfVxuXG4udXN5ZC11aS1oaWRlLCAudXN5ZC11aS1mdWxsIC51c3lkLWhpZGUtZnVsbCwgLnVzeWQtdWktY29tcGFjdCAudXN5ZC1oaWRlLWNvbXBhY3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTllbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi51c3lkLXVpLXJlcXVpcmVkIHtcbiAgY29sb3I6IHJlZDsgfVxuXG4vKlxuXHRFbGVtZW50cyB3aXRoIC51c3lkLWpzLWhpZGVbLSpdIGFyZSB0byBiZSBoaWRkZW4gcG9zdC1sb2FkIGJ5IHRoZWlyIHJlc3BlY3RpdmUgc2NyaXB0cy5cblx0SWYgSlMgaXMgdW5hdmFpbGFibGUgdGhlIC5uby1qcyBydWxlcyB3aWxsIHJlc2V0IHRoZXNlIGhpZGRlbiBlbGVtZW50cy5cblx0V2lkZ2V0cyB3aXRoIHRoZXNlIGNsYXNzZXMgd2lsbCBoYXZlIHRoZW0gYXV0b21hdGljYWxseSByZW1vdmVkIHBvc3QtbG9hZCBieSBib290c3RyYXAuanNcbiovXG4vKlxuVXNlZCBieSBXQVNNIGF1dGggbWFuYWdlciB0byBhcHByb3JpcGF0ZWx5IHNob3cgYW5kIGhpZGUgdmlld3MgZm9yIGF1dGhlbnRpY2F0ZWQgYW4gdW5hdXRoZW50aWNhdGVkIHVzZXIuXG4udXN5ZC13YXNtLXVzZXItdW5hdXRoZWQgU2hvdWxkIGJlIGFkZGVkIHdoZW4gdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFdpbGwgaGlkZSBpbmZvcm1hdGlvbiBmb3IgYXV0aGVudGljYXRlZCB1c2Vycy5cbi51c3lkLXdhc20tdXNlci1hdXRoZWQgU2hvdWxkIGJlIGFkZGVkIHdoZW4gdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZC4gV2lsbCBoaWRlIGluZm9ybWF0aW9uIGZvciB1bmF1dGhlbnRpY2F0ZWQgdXNlcnMuXG4qL1xuLnVzeWQtd2FzbS1jb21wb25lbnQudXN5ZC13YXNtLXVzZXItdW5hdXRoZWQgLnVzeWQtd2FzbS1hdXRoZWQtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udXN5ZC13YXNtLWNvbXBvbmVudC51c3lkLXdhc20tdXNlci1hdXRoZWQgLnVzeWQtd2FzbS11bmF1dGhlZC12aWV3IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi51c3lkLXVpLWRldGFiYmVkIHtcbiAgb3V0bGluZTogbm9uZTsgfVxuXG4udXN5ZC1hbGlnbmFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7IH1cblxuLm5vLWpzIC51c3lkLWpzLW9ubHksIC5uby1qcyAudXN5ZC1qcy1vbmx5LWNvbXBhY3QsIC5uby1qcyAudXN5ZC1qcy1vbmx5LWZ1bGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTllbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5uby1qcyAudXN5ZC1qcy1oaWRlLCAubm8tanMgLnVzeWQtdWktZnVsbCAudXN5ZC1qcy1oaWRlLWZ1bGwsIC51c3lkLXVpLWZ1bGwgLm5vLWpzIC51c3lkLWpzLWhpZGUtZnVsbCwgLm5vLWpzIC51c3lkLXVpLWNvbXBhY3QgLnVzeWQtanMtaGlkZS1jb21wYWN0LCAudXN5ZC11aS1jb21wYWN0IC5uby1qcyAudXN5ZC1qcy1oaWRlLWNvbXBhY3QsIC5uby1qcyAudXN5ZC1qcy1oaWRlLWNvbXBhY3QsIC5uby1qcyAudXN5ZC1qcy1oaWRlLWZ1bGwge1xuICB2aXNpYmlsaXR5OiBpbmhlcml0O1xuICBwb3NpdGlvbjogaW5oZXJpdDsgfVxuXG4udXN5ZC1zYW5zLW1hcmdpbiwgLnVzeWQtc2Fucy13aGl0ZS1zcGFjZSB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG5cbi51c3lkLXNhbnMtcGFkZGluZywgLnVzeWQtc2Fucy13aGl0ZS1zcGFjZSB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDsgfVxuXG5hLnNraXAtbWFpbiB7XG4gIGxlZnQ6IC05OTlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAtOTk5OyB9XG4gIGEuc2tpcC1tYWluOmZvY3VzLCBhLnNraXAtbWFpbjphY3RpdmUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzNjM2MzY7XG4gICAgbGVmdDogYXV0bztcbiAgICB0b3A6IGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGJvcmRlcjogMHB4IHNvbGlkICMzNjM2MzY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBtYXJnaW46IDlweCAyNXB4IDdweCAwcHg7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uY2xlYXJmaXgge1xuICAqem9vbTogMTsgfVxuICAuY2xlYXJmaXg6YmVmb3JlLCAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjsgfVxuICAudXN5ZC1jYXJkOmhvdmVyLCAudXN5ZC1jYXJkOmZvY3VzIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTk5OTk5OyB9XG4gIC51c3lkLWNhcmQudXN5ZC1jYXJkLWFsdCB7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmYTsgfVxuICAudXN5ZC1jYXJkIC51c3lkLWNhcmQtYm9keSB7XG4gICAgcGFkZGluZzogMS41ZW07IH1cbiAgICAudXN5ZC1jYXJkIC51c3lkLWNhcmQtYm9keSA+IHA6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1zb2NpYWwtY2FyZC1zaWduYXR1cmUge1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLnVzeWQtc29jaWFsLWNhcmQtcmVhbC1uYW1lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi51c3lkLXNvY2lhbC1jYXJkLXNjcmVlbi1uYW1lIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLnVzeWQtc29jaWFsLWNhcmQtbWVkaWEge1xuICB3aWR0aDogMTAwJTsgfVxuXG4udXN5ZC1zb2NpYWwtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IDE3NXB4OyB9XG4gIC51c3lkLXNvY2lhbC1jYXJkIC51c3lkLWNhcmQtYm9keSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgLnVzeWQtc29jaWFsLWNhcmQgLnVzeWQtc29jaWFsLWNhcmQtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTE1cHg7XG4gICAgbGVmdDogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZvbnQtc2l6ZTogN2VtOyB9XG4gIC51c3lkLXNvY2lhbC1jYXJkLnVzeWQtc29jaWFsLWNhcmQtZmFjZWJvb2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjU5OTg7IH1cbiAgICAudXN5ZC1zb2NpYWwtY2FyZC51c3lkLXNvY2lhbC1jYXJkLWZhY2Vib29rIC51c3lkLXNvY2lhbC1jYXJkLWljb24ge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gIC51c3lkLXNvY2lhbC1jYXJkLnVzeWQtc29jaWFsLWNhcmQtdHdpdHRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU1YWNlZTsgfVxuICAgIC51c3lkLXNvY2lhbC1jYXJkLnVzeWQtc29jaWFsLWNhcmQtdHdpdHRlciAudXN5ZC1zb2NpYWwtY2FyZC1pY29uIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAudXN5ZC1zb2NpYWwtY2FyZC51c3lkLXNvY2lhbC1jYXJkLXlhbW1lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzJjNjsgfVxuICAgIC51c3lkLXNvY2lhbC1jYXJkLnVzeWQtc29jaWFsLWNhcmQteWFtbWVyIC51c3lkLXNvY2lhbC1jYXJkLWljb24ge1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gIC51c3lkLXNvY2lhbC1jYXJkLnVzeWQtc29jaWFsLWNhcmQtY29tcGFjdCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC51c3lkLXNvY2lhbC1jYXJkLnVzeWQtc29jaWFsLWNhcmQtY29tcGFjdCAudXN5ZC1zb2NpYWwtY2FyZC1pY29uIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogLTE1cHg7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIGZvbnQtc2l6ZTogMTBlbTtcbiAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTApO1xuICAgICAgb3BhY2l0eTogMC4xOyB9XG5cbi51c3lkLWNsYXNzLWNvZGVzIC51c3lkLWNsYXNzLWNvZGVzLWxvYWRpbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMHB4O1xuICBtYXJnaW4tdG9wOiAxLjVlbTsgfVxuICAudXN5ZC1jbGFzcy1jb2RlcyAudXN5ZC1jbGFzcy1jb2Rlcy1sb2FkaW5nIHNwYW4ge1xuICAgIG1hcmdpbi1sZWZ0OiAyNXB4OyB9XG5cbi51c3lkLWNsYXNzLWNvZGVzLWZvcm0ge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC51c3lkLWNsYXNzLWNvZGVzLWZvcm0gLnVzeWQtdWktZm9ybS1saW5lIHtcbiAgICBtYXJnaW46IDFlbSAwIDFlbSAwOyB9XG5cbi51c3lkLWNsYXNzLWNvZGVzLXJlc3VsdHMge1xuICB3aWR0aDogMTAwJTsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4ubWNlLWNvbnRlbnQtYm9keSB7XG4gIG1hcmdpbjogMWVtOyB9XG5cbi5uby1ib3hzaXppbmcgLnVzeWQtdWktaW5wdXQtZXhwYW5kYWJsZSB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogODkuNSU7XG4gIG1hcmdpbi1yaWdodDogMC41ZW07IH1cblxuLnVzeWQtY2xhc3NpZmllZHMtY2FyZCB7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgcGFkZGluZzogMTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gIC51c3lkLWNsYXNzaWZpZWRzLWNhcmQtZGVzY3JpcHRpb24ge1xuICAgIHdpZHRoOiA2MjhweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEyOTlweCkge1xuICAudXN5ZC1jbGFzc2lmaWVkcy1jYXJkLWRlc2NyaXB0aW9uIHtcbiAgICB3aWR0aDogNDQ4cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC1jbGFzc2lmaWVkcy1jYXJkLWRlc2NyaXB0aW9uIHtcbiAgICB3aWR0aDogMjkxcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVzeWQtY2xhc3NpZmllZHMtY2FyZC1kZXNjcmlwdGlvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAudXN5ZC1jbGFzc2lmaWVkcy1jYXJkLWRlc2NyaXB0aW9uIC51c3lkLXRpdGxlIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnVzeWQtY2xhc3NpZmllZHMtY2FyZC1kZXRhaWxzIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLWNsYXNzaWZpZWRzLWNhcmQtZGV0YWlscyB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwcHg7IH0gfVxuXG4udXN5ZC1jbGFzc2lmaWVkcy1mZWVkIHtcbiAgbWFyZ2luLWJvdHRvbTogMjhweDsgfVxuXG4udXN5ZC1jbGFzc2lmaWVkcy1tb2JpbGUtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnVzeWQtbGlzdGluZy1pY29uIHtcbiAgY29sb3I6ICNiZmJmYmY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnVzeWQtY2xhc3NpZmllZHMtdXNlci1hY3Rpb25zIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi51c3lkLXVpLWlucHV0IGlucHV0IHtcbiAgbWluLXdpZHRoOiAzMGVtOyB9XG5cbi51c3lkLW1lbnUgLmJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGF1dG87XG4gIGJvdHRvbTogYXV0bztcbiAgcmlnaHQ6IDFlbTsgfVxuXG4udXN5ZC1yb3ctYWN0aW9ucyB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC51c3lkLXJvdy1hY3Rpb25zIC51c3lkLWFjdGlvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC51c3lkLXJvdy1hY3Rpb25zIC51c3lkLWFjdGlvbiAudXN5ZC1pY29uIHtcbiAgICAgIG1hcmdpbi10b3A6IC0zcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLnVzeWQtY2xhc3NpZmllZHMtZXhpc3RpbmctcGhvdG9zIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtOyB9XG4gIC51c3lkLWNsYXNzaWZpZWRzLWV4aXN0aW5nLXBob3RvcyAudXN5ZC1jbGFzc2lmaWVkcy1saXN0aW5nLXBob3RvIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgICBoZWlnaHQ6IDI1MHB4OyB9XG4gICAgLnVzeWQtY2xhc3NpZmllZHMtZXhpc3RpbmctcGhvdG9zIC51c3lkLWNsYXNzaWZpZWRzLWxpc3RpbmctcGhvdG8gaW1nIHtcbiAgICAgIG1hcmdpbjogMCAwIDAuMjVlbSAwO1xuICAgICAgbWF4LXdpZHRoOiBub25lOyB9XG4gICAgLnVzeWQtY2xhc3NpZmllZHMtZXhpc3RpbmctcGhvdG9zIC51c3lkLWNsYXNzaWZpZWRzLWxpc3RpbmctcGhvdG8gLnVzeWQtY2xhc3NpZmllZHMtcGhvdG8tcmVtb3ZlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjJlbTsgfVxuXG4udXN5ZC1jbGFzc2lmaWVkcy1wZW5kaW5nLXBob3RvLXJlbW92ZSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07IH1cblxuLnVzeWQtY2xhc3NpZmllZHMtcGhvdG8tcmVtb3ZlZDphZnRlciB7XG4gIGNvbnRlbnQ6ICdSZW1vdmVkJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4udXN5ZC1jbGFzc2lmaWVkcy1pdGVtLXBob3RvcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnVzeWQtY2xhc3NpZmllZHMtaXRlbS1waG90b3MgLnVzeWQtY2xhc3NpZmllZHMtaXRlbS1waG90byB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwIDFlbSAxZW0gMDsgfVxuICAgIC51c3lkLWNsYXNzaWZpZWRzLWl0ZW0tcGhvdG9zIC51c3lkLWNsYXNzaWZpZWRzLWl0ZW0tcGhvdG8gaW1nIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTsgfVxuXG4udXN5ZC1zZWFyY2gtZm9ybSB7XG4gIG1hcmdpbjogMCAwIDJlbTtcbiAgcGFkZGluZzogMTFweCAxMXB4IDAgMTFweDsgfVxuICAudXN5ZC1zZWFyY2gtZm9ybSAudXN5ZC11aS1mb3JtLWxpbmUge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMTFweDsgfVxuICAudXN5ZC1zZWFyY2gtZm9ybSAudXN5ZC11aS1pbnB1dCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gIC51c3lkLXNlYXJjaC1mb3JtIC51c3lkLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiA3LjVlbTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnVzeWQtY2xhc3NpZmllZHMtaXRlbS1hY3Rpb25zIHtcbiAgICBmbG9hdDogcmlnaHQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnVzeWQtY2xhc3NpZmllZHMtbW9iaWxlLW1lbnUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTsgfVxuICAgIC51c3lkLWNsYXNzaWZpZWRzLW1vYmlsZS1tZW51IC51c3lkLW1lbnUtZXhwYW5kZXIge1xuICAgICAgd2lkdGg6IDkwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAudXN5ZC11c2VyLWxpc3RpbmctdGFibGUgdHIge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICM0ZDRkNGQ7IH1cbiAgICAudXN5ZC11c2VyLWxpc3RpbmctdGFibGUgdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjdmN2Y3OyB9XG4gIC51c3lkLXVzZXItbGlzdGluZy10YWJsZSB0ZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogNDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1ib3R0b206IDBweDsgfVxuICAgIC51c3lkLXVzZXItbGlzdGluZy10YWJsZSB0ZDpiZWZvcmUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAudXN5ZC11c2VyLWxpc3RpbmctdGFibGUgdGQ6bnRoLW9mLXR5cGUoMSk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiIFwiOyB9XG4gICAgLnVzeWQtdXNlci1saXN0aW5nLXRhYmxlIHRkOm50aC1vZi10eXBlKDIpOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlRpdGxlXCI7IH1cbiAgICAudXN5ZC11c2VyLWxpc3RpbmctdGFibGUgdGQ6bnRoLW9mLXR5cGUoMyk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiQ2F0ZWdvcnlcIjsgfVxuICAgIC51c3lkLXVzZXItbGlzdGluZy10YWJsZSB0ZDpudGgtb2YtdHlwZSg0KTpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJFeHBpcnkgZGF0ZVwiOyB9XG4gIC51c3lkLXVzZXItbGlzdGluZy10YWJsZSB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAudXN5ZC11c2VyLWxpc3RpbmctdGFibGUgdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uY2xlYXJmaXgge1xuICAqem9vbTogMTsgfVxuICAuY2xlYXJmaXg6YmVmb3JlLCAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1ib2R5LWNvbnRlbnQge1xuICBtaW4taGVpZ2h0OiAzMHB4OyB9XG5cbi51c3lkLWNvbnRlbnQtcGFnZSAudXN5ZC1tYWluIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNlNjQ2MjY7IH1cblxuLypcbkdlbmVyaWMgZ3JvdXBpbmcgb2YgY29udGVudCBpbiB2YXJpb3VzIGNvbnRleHRzIChjb250ZW50IGJvZHksIGFzaWRlcywgZXRjKVxuXG4udXN5ZC11aS1lbXBoYXNpcy1ub25lIC0gTm9ybWFsIGNvbnRlbnRcbi51c3lkLXVpLWVtcGhhc2lzLW1pbGQgLSBDb250ZW50IHRvIGJlIHNsaWdodGx5IGVtcGhhc2lzZWRcbi51c3lkLXVpLWVtcGhhc2lzLXN0cm9uZyAtIENvbnRlbnQgdG8gYmUgc3Ryb25nbHkgZW1waGFzaXNlZFxuXG5TdHlsZWd1aWRlIDEuMFxuKi9cbi51c3lkLXVpLWNvbnRlbnQtZ3JvdXAge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNlNjQ2MjY7XG4gIHBhZGRpbmctdG9wOiAxOHB4OyB9XG4gIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1zYW5zLWJvcmRlciwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW5vbmUge1xuICAgIGJvcmRlcjogbm9uZTsgfVxuICAudXN5ZC11aS1jb250ZW50LWdyb3VwIGltZyB7XG4gICAgbWFyZ2luOiAxMHB4IDA7IH1cbiAgICAudXN5ZC11aS1jb250ZW50LWdyb3VwIGltZy51c3lkLXVpLWFsaWduLWxlZnQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgLnVzeWQtdWktY29udGVudC1ncm91cCBpbWcudXN5ZC11aS1hbGlnbi1yaWdodCB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDsgfVxuICAgIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAgaW1nLnVzeWQtdWktYWxpZ24tY2VudGVyIHtcbiAgICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAudXN5ZC11aS1jb250ZW50LWdyb3VwIGltZy51c3lkLXVpLXNhbnMtd2hpdGUtc3BhY2Uge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbm9uZSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW1pbGRlc3QsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1lbXBoYXNpcy1taWxkLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbm9uZSB7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIGJvcmRlci10b3A6IG5vbmU7IH1cbiAgICAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbWlsZGVzdCBoMSwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW1pbGRlc3QgaDIsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1lbXBoYXNpcy1taWxkZXN0IGgzLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbWlsZGVzdCBoNCwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW1pbGRlc3QgaDUsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1lbXBoYXNpcy1taWxkZXN0IGg2LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbWlsZCBoMSwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW1pbGQgaDIsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1lbXBoYXNpcy1taWxkIGgzLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbWlsZCBoNCwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW1pbGQgaDUsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1lbXBoYXNpcy1taWxkIGg2LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nIGgxLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nIGgyLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nIGgzLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nIGg0LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nIGg1LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nIGg2LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IGgxLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IGgyLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IGgzLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IGg0LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IGg1LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IGg2LCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbm9uZSBoMSwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW5vbmUgaDIsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1lbXBoYXNpcy1ub25lIGgzLCAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtbm9uZSBoNCwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW5vbmUgaDUsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC11aS1lbXBoYXNpcy1ub25lIGg2IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLXN0cm9uZ2VzdCBhIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAudXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IGE6dmlzaXRlZCwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLXN0cm9uZ2VzdCBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAudXN5ZC11aS1jb250ZW50LWdyb3VwID4gaDE6Zmlyc3QtY2hpbGQsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAgPiBoMjpmaXJzdC1jaGlsZCwgLnVzeWQtdWktY29udGVudC1ncm91cCA+IGgzOmZpcnN0LWNoaWxkLCAudXN5ZC11aS1jb250ZW50LWdyb3VwID4gaDQ6Zmlyc3QtY2hpbGQsIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAgPiBoNTpmaXJzdC1jaGlsZCwgLnVzeWQtdWktY29udGVudC1ncm91cCA+IGg2OmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi51c3lkLXVpLXRhYmxlLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi51c3lkLXVpLWVtYmVkZGVkLW1hcCwgLnVzeWQtbWFwIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2IzYjNiMztcbiAgbWFyZ2luOiAxZW0gYXV0byAwLjVlbTtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnVzeWQtY29udGVudC1kaXZpZGVyIHtcbiAgYm9yZGVyLWNvbG9yOiBibGFjaztcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuXG4udXN5ZC11aS1jb250ZW50LWdyb3VwLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucy5iLWJveC0tZGVmYXVsdC10b3A6bm90KC51c3lkLXVpLXNhbnMtYm9yZGVyKSwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLWdyb3VwLXJlbGF0ZWQtbGlua3MuYi1ib3gtLWRlZmF1bHQtdG9wOm5vdCgudXN5ZC11aS1zYW5zLWJvcmRlcikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAzNnB4OyB9XG4gIC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAudXN5ZC1ncm91cC1zeXN0ZW0tbG9naW5zLmItYm94LS1kZWZhdWx0LXRvcDpub3QoLnVzeWQtdWktc2Fucy1ib3JkZXIpOmJlZm9yZSwgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLWdyb3VwLXJlbGF0ZWQtbGlua3MuYi1ib3gtLWRlZmF1bHQtdG9wOm5vdCgudXN5ZC11aS1zYW5zLWJvcmRlcik6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgY29udGVudDogXCJcIjsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMiAudXN5ZC1ncmlkLXdyYXAge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9IH1cblxuLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMyAudXN5ZC1ncmlkLXdyYXAge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMiAudXN5ZC1zbWFsbCB7XG4gICAgd2lkdGg6IDU0MXB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLXpvbmUtLTIgLnVzeWQtc21hbGwge1xuICAgIHdpZHRoOiAzNDBweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMiAudXN5ZC1zbWFsbCB7XG4gICAgd2lkdGg6IDQzMHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLXpvbmUtLTIgLnVzeWQteGxhcmdlIHtcbiAgICB3aWR0aDogNTExcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMiAudXN5ZC14bGFyZ2Uge1xuICAgIHdpZHRoOiA3MDBweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMiAudXN5ZC14bGFyZ2Uge1xuICAgIHdpZHRoOiA4ODBweDsgfSB9XG5cbi5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLXpvbmUtLTQgLnVzeWQteGxhcmdlLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucy5iLWJveC0tZGVmYXVsdC10b3Age1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tNCAudXN5ZC14bGFyZ2UudXN5ZC1ncm91cC1zeXN0ZW0tbG9naW5zLmItYm94LS1kZWZhdWx0LXRvcCAucm93IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDsgfSB9XG4gIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLXpvbmUtLTQgLnVzeWQteGxhcmdlLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucy5iLWJveC0tZGVmYXVsdC10b3AgLnVzeWQtdWktbW9yZS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLWNsaXBwaW5nIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxM3B4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87IH1cblxuLnVzeWQtY2xpcHBpbmcgaDEsIC51c3lkLWNsaXBwaW5nIGgyLCAudXN5ZC1jbGlwcGluZyBoMywgLnVzeWQtY2xpcHBpbmcgaDQsIC51c3lkLWNsaXBwaW5nIGg1LCAudXN5ZC1jbGlwcGluZyBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLnVzeWQtY2xpcHBpbmcudXN5ZC1jbGlwcGluZy1oZXJvIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudXN5ZC1jbGlwcGluZy51c3lkLWNsaXBwaW5nLWhlcm8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfSB9XG4gIC51c3lkLWNsaXBwaW5nLnVzeWQtY2xpcHBpbmctaGVybyBoMSwgLnVzeWQtY2xpcHBpbmcudXN5ZC1jbGlwcGluZy1oZXJvIGgyLCAudXN5ZC1jbGlwcGluZy51c3lkLWNsaXBwaW5nLWhlcm8gaDMsIC51c3lkLWNsaXBwaW5nLnVzeWQtY2xpcHBpbmctaGVybyBoNCwgLnVzeWQtY2xpcHBpbmcudXN5ZC1jbGlwcGluZy1oZXJvIGg1LCAudXN5ZC1jbGlwcGluZy51c3lkLWNsaXBwaW5nLWhlcm8gaDYge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEzMDBweCkge1xuICAudXN5ZC1jbGlwcGluZy1oZXJvaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBkaXJlY3Rpb246IHJ0bDsgfVxuICAudXN5ZC1jbGlwcGluZy1oZXJvaW1nIGltZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBub25lOyB9IH1cblxuLnVzeWQtY2xpcHBpbmctY2F0ZWdvcnkge1xuICBjb2xvcjogI2U2NDYyNjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAwIDZweCAwOyB9XG5cbi51c3lkLWNsaXBwaW5nLWhlcm8gcCxcbi51c3lkLWNsaXBwaW5nLWRlc2Mge1xuICBtYXJnaW46IDA7IH1cblxuLnVzeWQtY2xpcHBpbmctcm93IC51c3lkLXVpLWNvbnRlbnQtZ3JvdXAge1xuICBjbGVhcjogbm9uZTsgfVxuXG4udXN5ZC1jbGlwcGluZy1yb3cgLnVzeWQtY2xpcHBpbmcgaDEsIC51c3lkLWNsaXBwaW5nLXJvdyAudXN5ZC1jbGlwcGluZyBoMiwgLnVzeWQtY2xpcHBpbmctcm93IC51c3lkLWNsaXBwaW5nIGgzLCAudXN5ZC1jbGlwcGluZy1yb3cgLnVzeWQtY2xpcHBpbmcgaDQsIC51c3lkLWNsaXBwaW5nLXJvdyAudXN5ZC1jbGlwcGluZyBoNSwgLnVzeWQtY2xpcHBpbmctcm93IC51c3lkLWNsaXBwaW5nIGg2IHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4udXN5ZC1jbGlwcGluZy1yb3cgLmNvbXBvbmVudC1yZWZlcmVuY2Uge1xuICBmbG9hdDogbGVmdDsgfVxuXG4udXN5ZC1jbGlwcGluZy1yb3cgLnJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudXN5ZC1jbGlwcGluZy1yb3cgLnJvdyAudXN5ZC1jYXJvdXNlbC1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDMzJTtcbiAgICBoZWlnaHQ6IDY1cHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnVzeWQtY2xpcHBpbmctcm93IC5yb3cgLnVzeWQtY2Fyb3VzZWwtcHJldiB7XG4gICAgbGVmdDogMDtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDAgNjVweCA2NXB4IDA7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDY1cHggNjVweCAwO1xuICAgIC1tcy1ib3JkZXItcmFkaXVzOiAwIDY1cHggNjVweCAwO1xuICAgIC1vLWJvcmRlci1yYWRpdXM6IDAgNjVweCA2NXB4IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMCA2NXB4IDY1cHggMDsgfVxuICAgIC51c3lkLWNsaXBwaW5nLXJvdyAucm93IC51c3lkLWNhcm91c2VsLXByZXY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIu6ik1wiO1xuICAgICAgZm9udC1mYW1pbHk6IGZvbnRlbGxvO1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAqem9vbTogZXhwcmVzc2lvbiggdGhpcy5ydW50aW1lU3R5bGVbJ3pvb20nXSA9ICcxJywgdGhpcy5pbm5lckhUTUwgPSAnJiN4ZTg5MzsmbmJzcDsnKTtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMjJweDtcbiAgICAgIGxlZnQ6IDJweDsgfVxuICAudXN5ZC1jbGlwcGluZy1yb3cgLnJvdyAudXN5ZC1jYXJvdXNlbC1uZXh0IHtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDY1cHggMCAwIDY1cHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiA2NXB4IDAgMCA2NXB4O1xuICAgIC1tcy1ib3JkZXItcmFkaXVzOiA2NXB4IDAgMCA2NXB4O1xuICAgIC1vLWJvcmRlci1yYWRpdXM6IDY1cHggMCAwIDY1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNjVweCAwIDAgNjVweDtcbiAgICByaWdodDogMDsgfVxuICAgIC51c3lkLWNsaXBwaW5nLXJvdyAucm93IC51c3lkLWNhcm91c2VsLW5leHQ6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIu6ilFwiO1xuICAgICAgZm9udC1mYW1pbHk6IGZvbnRlbGxvO1xuICAgICAgc3BlYWs6IG5vbmU7XG4gICAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAqem9vbTogZXhwcmVzc2lvbiggdGhpcy5ydW50aW1lU3R5bGVbJ3pvb20nXSA9ICcxJywgdGhpcy5pbm5lckhUTUwgPSAnJiN4ZTg5NDsmbmJzcDsnKTtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMjNweDtcbiAgICAgIHJpZ2h0OiAzcHg7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtZXh0ZXJuYWwtbGluazphZnRlciwgLnVzeWQtZXh0ZXJuYWwtbGluayA+IC5pZS1hZnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDNweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb250ZW50OiBcIu6grlwiO1xuICBmb250LWZhbWlseTogZm9udGVsbG87XG4gIHNwZWFrOiBub25lO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAqem9vbTogZXhwcmVzc2lvbiggdGhpcy5ydW50aW1lU3R5bGVbJ3pvb20nXSA9ICcxJywgdGhpcy5pbm5lckhUTUwgPSAnJiN4ZTgyZTsmbmJzcDsnKTsgfVxuXG4udXN5ZC1leHRlcm5hbC1saW5rIHtcbiAgLyogOjphZnRlciBwb2x5ZmlsbCAtIGNyZWF0ZXMgPGkgY2xhc3M9XCJpZS1hZnRlclwiPjwvaT4gKi9cbiAgem9vbTogZXhwcmVzc2lvbnRoaXMucnVudGltZVN0eWxlLnpvb209XCIxXCIsdGhpcy5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlcIikgKS5jbGFzc05hbWU9XCJpZS1hZnRlclwiOyB9XG5cbi51c3lkLWRvd25sb2FkLWxpbms6YWZ0ZXIsIC51c3lkLWRvd25sb2FkLWxpbmsgPiAuaWUtYWZ0ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAzcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29udGVudDogXCLuoYJcIjtcbiAgZm9udC1mYW1pbHk6IGZvbnRlbGxvO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgKnpvb206IGV4cHJlc3Npb24oIHRoaXMucnVudGltZVN0eWxlWyd6b29tJ10gPSAnMScsIHRoaXMuaW5uZXJIVE1MID0gJyYjeGU4NDI7Jm5ic3A7Jyk7IH1cblxuLnVzeWQtZG93bmxvYWQtbGluayB7XG4gIC8qIDo6YWZ0ZXIgcG9seWZpbGwgLSBjcmVhdGVzIDxpIGNsYXNzPVwiaWUtYWZ0ZXJcIj48L2k+ICovXG4gIHpvb206IGV4cHJlc3Npb250aGlzLnJ1bnRpbWVTdHlsZS56b29tPVwiMVwiLHRoaXMuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIpICkuY2xhc3NOYW1lPVwiaWUtYWZ0ZXJcIjsgfVxuXG4udXN5ZC1lbWFpbC1saW5rOmFmdGVyLCAudXN5ZC1lbWFpbC1saW5rID4gLmllLWFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogM3B4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbnRlbnQ6IFwi7qCEXCI7XG4gIGZvbnQtZmFtaWx5OiBmb250ZWxsbztcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICp6b29tOiBleHByZXNzaW9uKCB0aGlzLnJ1bnRpbWVTdHlsZVsnem9vbSddID0gJzEnLCB0aGlzLmlubmVySFRNTCA9ICcmI3hlODA0OyZuYnNwOycpOyB9XG5cbi51c3lkLWVtYWlsLWxpbmsge1xuICAvKiA6OmFmdGVyIHBvbHlmaWxsIC0gY3JlYXRlcyA8aSBjbGFzcz1cImllLWFmdGVyXCI+PC9pPiAqL1xuICB6b29tOiBleHByZXNzaW9udGhpcy5ydW50aW1lU3R5bGUuem9vbT1cIjFcIix0aGlzLmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaVwiKSApLmNsYXNzTmFtZT1cImllLWFmdGVyXCI7IH1cblxuLnVzeWQtc2VjdGlvbi10aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxMjUlOyB9XG4gIC51c3lkLXNlY3Rpb24tdGl0bGUgYSB7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC51c3lkLXNlY3Rpb24tdGl0bGUgYTpob3ZlciwgLnVzeWQtc2VjdGlvbi10aXRsZSBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi51c3lkLXNlY3Rpb24tYmFubmVyIC51c3lkLXNlY3Rpb24tdGl0bGUge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMXB4OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLW5hdi10b29scyB7XG4gIG1hcmdpbjogMThweCAxMHB4IDAgMDtcbiAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVzeWQtbmF2LXRvb2xzID4gdWwgPiBsaSB7XG4gICAgei1pbmRleDogNjAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLW5hdi1idXR0b24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA1cHggN3B4IDVweCA1cHg7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgKnBhZGRpbmc6IDVweCA1cHggOHB4IDVweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgei1pbmRleDogMjIwO1xuICAgICpib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICpib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XG4gICAgKmJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLnVzeWQtbmF2LXRvb2xzID4gdWwgPiBsaS51c3lkLXNob3cgLnVzeWQtbmF2LWJ1dHRvbiwgLnVzeWQtbmF2LXRvb2xzID4gdWwgPiBsaTpob3ZlciAudXN5ZC1uYXYtYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAqYm9yZGVyLWNvbG9yOiAjZTZlNmU2O1xuICAgIGNvbG9yOiBibGFjazsgfVxuICAgIC51c3lkLW5hdi10b29scyA+IHVsID4gbGkudXN5ZC1zaG93IC51c3lkLW5hdi1idXR0b24gKyAudXN5ZC1kcm9wZG93bi1jb250ZW50LCAudXN5ZC1uYXYtdG9vbHMgPiB1bCA+IGxpOmhvdmVyIC51c3lkLW5hdi1idXR0b24gKyAudXN5ZC1kcm9wZG93bi1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgKnotaW5kZXg6IDIwMDsgfVxuICAgIC51c3lkLW5hdi10b29scyA+IHVsID4gbGkudXN5ZC1zaG93IC51c3lkLW5hdi1idXR0b246YWZ0ZXIsIC51c3lkLW5hdi10b29scyA+IHVsID4gbGk6aG92ZXIgLnVzeWQtbmF2LWJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHotaW5kZXg6IDIzMDsgfVxuICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtZHJvcGRvd24tY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6ICM0ZDRkNGQgMCAwIDVweDtcbiAgICAtbW96LWJveC1zaGFkb3c6ICM0ZDRkNGQgMCAwIDVweDtcbiAgICBib3gtc2hhZG93OiAjNGQ0ZDRkIDAgMCA1cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiA1cHggMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB6LWluZGV4OiAyMTA7IH1cbiAgICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtZHJvcGRvd24tY29udGVudCBsaSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICAqem9vbTogMTsgfVxuICAgICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQgbGkudXN5ZC1kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luOiA1cHggMDsgfVxuICAgICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQgbGk6aG92ZXIge1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgICAgICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtZHJvcGRvd24tY29udGVudCBsaTpob3ZlcjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQgLnVzeWQtdWktYWN0aXZlLW1lbnUtaXRlbSBhIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTViOTg7IH1cbiAgICAgIC51c3lkLW5hdi10b29scyAudXN5ZC1kcm9wZG93bi1jb250ZW50IC51c3lkLXVpLWFjdGl2ZS1tZW51LWl0ZW0gYTp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzE5NWI5ODtcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQgYTp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICMxOTViOTg7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE5NWI5ODtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnVzeWQtbmF2LXRvb2xzIGZvcm0ge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLW5hdi10b29scyBpbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgKndpZHRoOiAxNjZweDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWZpbHRlciAudXN5ZC1uYXYtYnV0dG9uLWNsZWFyIHtcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICAqcGFkZGluZzogMCAycHggMCA0cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogOXB4O1xuICAgICp0b3A6IDEycHg7XG4gICAgcmlnaHQ6IDE0cHg7IH1cbiAgICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtZHJvcGRvd24tZmlsdGVyIC51c3lkLW5hdi1idXR0b24tY2xlYXI6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDYyNjsgfVxuICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtZGl2aWRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwOyB9XG4gICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRpdmlkZXI6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsgfVxuICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtdGV4dC1vbmx5LCAudXN5ZC1uYXYtdG9vbHMgaDIge1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51c3lkLW5hdi10b29scyAuaWNvbi1zb3J0LWRvd24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDRweDtcbiAgICByaWdodDogMDtcbiAgICBjb2xvcjogZ3JheTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAudXN5ZC1uYXYtdG9vbHMgaDIge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWludHJhbmV0cy1kcm9wZG93biAuaWNvbi1vayB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC51c3lkLW5hdi10b29scyAudXN5ZC1pbnRyYW5ldHMtZHJvcGRvd24gLmljb24taG9tZSB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC51c3lkLW5hdi10b29scyAudXN5ZC1pbnRyYW5ldHMtZHJvcGRvd24gYTpob3ZlciAuaWNvbi1vayB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC51c3lkLW5hdi10b29scyAudXN5ZC1pbnRyYW5ldHMtZHJvcGRvd24gYTpob3ZlciAuaWNvbi1ob21lIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cblxuQG1lZGlhIFxcMHNjcmVlbiB7XG4gIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNmU2ZTY7IH1cbiAgLnVzeWQtZHJvcGRvd24gaW5wdXQge1xuICAgIGhlaWdodDogMjdweDsgfVxuICAudXN5ZC1kcm9wZG93biA+IHVsID4gbGkgLnVzeWQtbmF2LWJ1dHRvbiB7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAudXN5ZC1kcm9wZG93biA+IHVsID4gbGk6aG92ZXIgLnVzeWQtbmF2LWJ1dHRvbiB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZTZlNmU2OyB9XG4gICAgLnVzeWQtZHJvcGRvd24gPiB1bCA+IGxpOmhvdmVyIC51c3lkLW5hdi1idXR0b246YWZ0ZXIge1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgbGVmdDogMHB4O1xuICAgICAgcmlnaHQ6IDBweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudXN5ZC1uYXYtdG9vbHMge1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxN3B4O1xuICAgIHJpZ2h0OiAxMHB4OyB9XG4gICAgLnVzeWQtbmF2LXRvb2xzID4gdWwge1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IH1cbiAgICAudXN5ZC1uYXYtdG9vbHMgPiB1bCA+IGxpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4OyB9XG4gICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLW5hdi1idXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI0MjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gICAgICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtbmF2LWJ1dHRvbi51c3lkLW5hdi1zZWFyY2gtdG9nZ2xlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnVzeWQtbmF2LXRvb2xzIC51c3lkLWRyb3Bkb3duLWNvbnRlbnQgbGkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAudXN5ZC1uYXYtdG9vbHMgLnVzeWQtZHJvcGRvd24tY29udGVudCAudXN5ZC1kaXZpZGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH0gfVxuXG4udXN5ZC11aS1sb3VkIHtcbiAgZm9udC1zaXplOiAxLjRlbTsgfVxuXG4udXN5ZC11aS1xdWlldCwgLnVzeWQtdWktbm90ZSwgLnVzeWQtdWktZGF0ZSB7XG4gIGNvbG9yOiAjNzU3NTc1OyB9XG5cbi51c3lkLXVpLWhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmYyMDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDsgfVxuXG4udXN5ZC1zdXBwb3J0LXRleHQge1xuICBjb2xvcjogIzY2NjY2NjsgfVxuICAudXN5ZC1zdXBwb3J0LXRleHQgYSB7XG4gICAgY29sb3I6ICM2NjY2NjY7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtZ3JvdXAtcmVsYXRlZC1saW5rcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWVmY2U7XG4gIHBhZGRpbmc6IDEwcHg7IH1cbiAgLnVzeWQtZ3JvdXAtcmVsYXRlZC1saW5rcyAudXN5ZC11aS1tb3JlLWxpbmsgYSB7XG4gICAgYmFja2dyb3VuZDogI2ZlZWZjZTsgfVxuICAudXN5ZC1ncm91cC1yZWxhdGVkLWxpbmtzIC5jb250ZW50IHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cblxuLnVzeWQtZ3JvdXAtZ2VuZXJhbCB7XG4gIGJvcmRlci10b3A6IDJweCAjZTY0NjI2IHNvbGlkO1xuICBwYWRkaW5nLXRvcDogMThweDsgfVxuICAudXN5ZC1ncm91cC1nZW5lcmFsIC5jb250ZW50IHtcbiAgICBmb250LXNpemU6IDEycHg7IH1cblxuLnVzeWQtZ3JvdXAtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi51c3lkLWdyb3VwLXN5c3RlbS1sb2dpbnMge1xuICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxNXB4IDEwcHggMTBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC51c3lkLWdyb3VwLXN5c3RlbS1sb2dpbnMgLnVzeWQtdWktbW9yZS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAudXN5ZC1ncm91cC1zeXN0ZW0tbG9naW5zIC51c3lkLXVpLW1vcmUtbGluayB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xMHB4OyB9IH1cbiAgICAudXN5ZC1ncm91cC1zeXN0ZW0tbG9naW5zIC51c3lkLXVpLW1vcmUtbGluayBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7IH1cbiAgLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyBoMSwgLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyBoMiwgLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyBoMywgLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyBoNCwgLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyBoNSwgLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyBoNiB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nOiAxNXB4IDEwcHggMzBweDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLWZlZWRiYWNrIHtcbiAgYm9yZGVyLXN0eWxlOiBkb3R0ZWQ7XG4gIGJvcmRlci1jb2xvcjogI2U2ZTZlNjtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMCAxcHggMDsgfVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4udXN5ZC1mZWVkYmFjay1mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAudXN5ZC1mZWVkYmFjay1mb3JtIGxlZ2VuZCB7XG4gICAgY29sb3I6ICNlNjQ2MjY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHRvcDogMTBweDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7IH1cblxuLnVzeWQtZmVlZGJhY2stbXNnIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC51c3lkLWZlZWRiYWNrLW1zZyBsZWdlbmQudXN5ZC11aS1tZXNzYWdlLCAudXN5ZC1mZWVkYmFjay1tc2cgbGVnZW5kLnVzeWQtdWktbWVzc2FnZS1sb2FkaW5nLCAudXN5ZC1mZWVkYmFjay1tc2cgbGVnZW5kLnVzeWQtdWktbWVzc2FnZS1zdWNjZXNzLCAudXN5ZC1mZWVkYmFjay1tc2cgbGVnZW5kLnVzeWQtdWktbWVzc2FnZS1lcnJvciB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDBweDsgfVxuXG4udXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC1mZWVkYmFjay11c2VmdWwtYnRucyB7XG4gIGZsb2F0OiBsZWZ0OyB9XG4gIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIC51c3lkLWZlZWRiYWNrLXVzZWZ1bC1idG5zIGlucHV0IHtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC1mZWVkYmFjay11c2VmdWwtYnRucyBsYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6IDMwcHg7XG4gICAgei1pbmRleDogLTEwO1xuICAgIHdpZHRoOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4udXN5ZC1mZWVkYmFjay1xdWVzdGlvbiB7XG4gIHBhZGRpbmc6IDEwcHggMDsgfVxuICAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogN3B4IDEwcHggNXB4IDA7IH1cbiAgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0NjI2O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAtbXMtYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIC1vLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMjlweDtcbiAgICAvKiBJRTggKi9cbiAgICAqbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgLyogSUU3ICovXG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuMTVlbTtcbiAgICBtaW4td2lkdGg6IDUuNWVtOyB9XG4gICAgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktYnV0dG9uOm5vdChbZHVtbXldKSB7XG4gICAgICBsaW5lLWhlaWdodDogYXV0bztcbiAgICAgIC8qIE5PVCBJRTcvSUU4ICovIH1cbiAgICAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1idXR0b24gYSB7XG4gICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1idXR0b24gc3BhbiB7XG4gICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1idXR0b246aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogLW93Zy1saW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCNlYTYxNDYsICNkMDM3MTgpO1xuICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCNlYTYxNDYsICNkMDM3MTgpO1xuICAgICAgLXBpZS1iYWNrZ3JvdW5kOiAtcGllLWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICAgIGJhY2tncm91bmQ6ICNlNjQ2MjZcXDk7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktYnV0dG9uOmFjdGl2ZSB7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktYnV0dG9uOnZpc2l0ZWQsIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIC51c3lkLXVpLWJ1dHRvbjpsaW5rIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIC51c3lkLXVpLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBjb2xvcjogIzc1NzU3NTtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgICBsaW5lLWhlaWdodDogMjhweDsgfVxuICAgIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIC51c3lkLXVpLWJ1dHRvbjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0NjI2O1xuICAgICAgY29sb3I6IHdoaXRlOyB9XG4gICAgICAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1idXR0b246aG92ZXI6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAtb3dnLWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCNlYTYxNDYsICNkMDM3MTgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgICAgIC1waWUtYmFja2dyb3VuZDogLXBpZS1saW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogI2U2NDYyNlxcOTtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgICAgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktYnV0dG9uOmhvdmVyOmFjdGl2ZSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIC51c3lkLXVpLWJ1dHRvbjpob3Zlcjp2aXNpdGVkLCAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1idXR0b246aG92ZXI6bGluayB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktYnV0dG9uOmhvdmVyW2Rpc2FibGVkXSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBjb2xvcjogIzc1NzU3NTtcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4OyB9XG4gICAgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktYnV0dG9uLnVzeWQtdWktc2VsZWN0ZWQsIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIC51c3lkLXVpLWJ1dHRvbjpob3Zlci51c3lkLXVpLXNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9hc3NldHMvaW1nL2ljb25zL2NoZWNrYm94LWFscGhhLnBuZyk7XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAlIGNlbnRlcjtcbiAgICAgIHBhZGRpbmctbGVmdDogMzBweDsgfVxuXG4uZnJtLWRvLW5vdC1zdWJtaXQge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcbiAgLW1vei1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLW1vei1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IHJvdztcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmZybS1kby1ub3Qtc3VibWl0IGxhYmVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4jZnJtLWNvbnRhY3Qge1xuICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuXG4udXN5ZC1mZWVkYmFjay1kZXRhaWwge1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y3OyB9XG4gIC51c3lkLWZlZWRiYWNrLWRldGFpbCAudXN5ZC11aS1zdXBwb3J0aW5nLXRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLnVzeWQtZmVlZGJhY2stZGV0YWlsIC51c3lkLXVpLWZvcm0tbGluZSB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLnVzeWQtZmVlZGJhY2stZGV0YWlsIGlucHV0W3R5cGU9ZW1haWxdLCAudXN5ZC1mZWVkYmFjay1kZXRhaWwgaW5wdXRbdHlwZT10ZXh0XSwgLnVzeWQtZmVlZGJhY2stZGV0YWlsIHRleHRhcmVhIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLnVzeWQtZmVlZGJhY2stZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGxlZnQ6IC05OTk7IH1cblxuLnVzeWQtdWktbWVzc2FnZSwgLnVzeWQtdWktbWVzc2FnZS1sb2FkaW5nLCAudXN5ZC11aS1tZXNzYWdlLXN1Y2Nlc3MsIC51c3lkLXVpLW1lc3NhZ2UtZXJyb3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogNnB4IDEwcHggMCAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCBuby1yZXBlYXQgbGVmdCBjZW50ZXI7IH1cblxuLnVzeWQtdWktbWVzc2FnZS1sb2FkaW5nIHtcbiAgbWFyZ2luLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC51c3lkLXVpLW1lc3NhZ2UtbG9hZGluZyAudXN5ZC11aS1zcGlubmVyIHtcbiAgICB0b3A6IDdweCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IC0xNXB4ICFpbXBvcnRhbnQ7IH1cblxuLnVzeWQtdWktbWVzc2FnZS1zdWNjZXNzIHtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYXNzZXRzL2ltZy9pY29ucy9jaGVjay5wbmcpOyB9XG5cbi51c3lkLXVpLW1lc3NhZ2UtZXJyb3Ige1xuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9hc3NldHMvaW1nL2ljb25zL2FsZXJ0LnBuZyk7IH1cblxuLnVzeWQtZmVlZGJhY2stYWN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC51c3lkLWZlZWRiYWNrLWFjdGlvbnMgbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpIHtcbiAgLnVzeWQtZmVlZGJhY2stZm9ybSAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1idXR0b24udXN5ZC11aS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvaWNvbnMvY2hlY2tib3gtYWxwaGFAMngucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDsgfVxuICAudXN5ZC1mZWVkYmFjayAudXN5ZC11aS1tZXNzYWdlLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9hc3NldHMvaW1nL2ljb25zL2NoZWNrQDJ4LnBuZyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7IH1cbiAgLnVzeWQtZmVlZGJhY2sgLnVzeWQtdWktbWVzc2FnZS1lcnJvciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvaWNvbnMvYWxlcnRAMngucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDsgfSB9XG5cbi5iLWluc2lnaHRzLXBvcnRhbC1wYWdlICsgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgKyAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1tZXNzYWdlLCAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSArIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIC51c3lkLXVpLW1lc3NhZ2UtbG9hZGluZywgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgKyAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1tZXNzYWdlLXN1Y2Nlc3MsIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlICsgLnVzeWQtZmVlZGJhY2stcXVlc3Rpb24gLnVzeWQtdWktbWVzc2FnZS1lcnJvciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1maWd1cmUudXN5ZC1maWd1cmUtd2l0aC1ib3JkZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2OyB9XG5cbi51c3lkLWZpZ3VyZS51c3lkLWFsaWduLWxlZnQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi51c3lkLWZpZ3VyZS51c3lkLWFsaWduLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4udXN5ZC1maWd1cmUudXN5ZC1hbGlnbi1jZW50cmUge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG5cbi51c3lkLWZpZ3VyZS1pbWFnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi51c3lkLWZpZ3VyZS1zbWFsbCB7XG4gIHdpZHRoOiAzMyU7IH1cblxuLnVzeWQtZmlndXJlLW1lZGl1bSB7XG4gIHdpZHRoOiA1MCU7IH1cblxuLnVzeWQtZmlndXJlLWxhcmdlIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLnVzeWQtZmlndXJlLWNhcHRpb24ge1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gIC51c3lkLWZpZ3VyZS51c3lkLWZpZ3VyZS13aXRoLWJvcmRlciAudXN5ZC1maWd1cmUtY2FwdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLWZpZ3VyZS51c3lkLWFsaWduLWxlZnQsIC51c3lkLWZpZ3VyZS51c3lkLWFsaWduLXJpZ2h0IHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzeWQtZmlndXJlLnVzeWQtZmlndXJlLXNtYWxsLCAudXN5ZC1maWd1cmUudXN5ZC1maWd1cmUtbWVkaXVtIHtcbiAgICB3aWR0aDogYXV0bzsgfSB9XG5cbi5jbGVhcmZpeCB7XG4gICp6b29tOiAxOyB9XG4gIC5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLXVpLWZvb3RlciB7XG4gICp6b29tOiAxO1xuICBtYXJnaW4tdG9wOiAzLjJlbTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcbiAgcGFkZGluZy10b3A6IDFlbTsgfVxuICAudXN5ZC11aS1mb290ZXI6YmVmb3JlLCAudXN5ZC11aS1mb290ZXI6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLnVzeWQtdWktZm9vdGVyOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAudXN5ZC11aS1mb290ZXIgLnVzeWQtdWktZm9vdGVyLW5hdiB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnVzeWQtdWktZm9vdGVyIHAge1xuICAgIG1hcmdpbjogMDsgfVxuXG4udXN5ZC11aS1jb3B5cmlnaHQge1xuICBmbG9hdDogbGVmdDsgfVxuXG4udXN5ZC11aS1mb290ZXItbmF2IHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudXN5ZC11aS1mb290ZXIgLnVzeWQtdWktY29weXJpZ2h0LCAudXN5ZC11aS1mb290ZXIgLnVzeWQtdWktZm9vdGVyLW5hdiB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51c3lkLXVpLWZvb3RlciAudXN5ZC11aS1mb290ZXItbmF2IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAjZTZlNmU2OyB9XG4gIC51c3lkLXVpLWZvb3RlciAudXN5ZC11aS1mb290ZXItbmF2ID4gYSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLXVpLWZvb3Rub3RlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OWVtO1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnVzeWQtdWktZm9vdG5vdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTllbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5jbGVhcmZpeCB7XG4gICp6b29tOiAxOyB9XG4gIC5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbmZvcm0ge1xuICBtYXJnaW46IDAgMCAxOHB4OyB9XG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDA7IH1cblxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyN3B4O1xuICBmb250LXNpemU6IDE5LjVweDtcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXI6IDA7IH1cbiAgbGVnZW5kIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDEzLjVweDtcbiAgICBjb2xvcjogIzk5OTsgfVxuXG5sYWJlbCwgaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7IH1cblxuaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBjb2xvcjogIzMzMzsgfVxuXG5pbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgLnVuZWRpdGFibGUtaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMTBweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBwYWRkaW5nOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDlweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgY29sb3I6ICM1NTU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi51bmVkaXRhYmxlLXRleHRhcmVhIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bzsgfVxuXG5sYWJlbCBpbnB1dCwgbGFiZWwgdGV4dGFyZWEsIGxhYmVsIHNlbGVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbmlucHV0W3R5cGU9XCJpbWFnZVwiXSwgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDNweCAwO1xuICAqbWFyZ2luLXRvcDogMDtcbiAgLyogSUU3ICovXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMCBcXDk7XG4gIC8qIElFOSBhbmQgZG93biAqL1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG5pbnB1dFt0eXBlPVwiaW1hZ2VcIl0ge1xuICBib3JkZXI6IDA7IH1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogaW5pdGlhbDtcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGJvcmRlcjogaW5pdGlhbDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bzsgfVxuXG5zZWxlY3QsIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICAvKiBJbiBJRTcsIHRoZSBoZWlnaHQgb2YgdGhlIHNlbGVjdCBlbGVtZW50IGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IGhlaWdodCwgb25seSBmb250LXNpemUgKi9cbiAgKm1hcmdpbi10b3A6IDRweDtcbiAgLyogRm9yIElFNywgYWRkIHRvcCBtYXJnaW4gdG8gYWxpZ24gc2VsZWN0IHdpdGggbGFiZWxzICovXG4gIGxpbmUtaGVpZ2h0OiAyOHB4OyB9XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgbGluZS1oZWlnaHQ6IDE4cHggXFw5OyB9XG5cbnNlbGVjdCB7XG4gIHdpZHRoOiAyMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG5zZWxlY3RbbXVsdGlwbGVdLCBzZWxlY3Rbc2l6ZV0ge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXRbdHlwZT1cImltYWdlXCJdIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxudGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87IH1cblxuaW5wdXRbdHlwZT1cImhpZGRlblwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnJhZGlvLCAuY2hlY2tib3gge1xuICBtaW4taGVpZ2h0OiAxOHB4O1xuICBwYWRkaW5nLWxlZnQ6IDE4cHg7IH1cblxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSwgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogLTE4cHg7IH1cblxuLmNvbnRyb2xzID4gLnJhZGlvOmZpcnN0LWNoaWxkLCAuY29udHJvbHMgPiAuY2hlY2tib3g6Zmlyc3QtY2hpbGQge1xuICBwYWRkaW5nLXRvcDogNXB4OyB9XG5cbi5yYWRpby5pbmxpbmUsIC5jaGVja2JveC5pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLnJhZGlvLmlubGluZSArIC5yYWRpby5pbmxpbmUsIC5jaGVja2JveC5pbmxpbmUgKyAuY2hlY2tib3guaW5saW5lIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cblxuaW5wdXQsIHRleHRhcmVhIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4ycztcbiAgLW1vei10cmFuc2l0aW9uOiBib3JkZXIgbGluZWFyIC4ycywgYm94LXNoYWRvdyBsaW5lYXIgLjJzO1xuICAtbXMtdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4ycztcbiAgLW8tdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4ycztcbiAgdHJhbnNpdGlvbjogYm9yZGVyIGxpbmVhciAuMnMsIGJveC1zaGFkb3cgbGluZWFyIC4yczsgfVxuXG5pbnB1dDpmb2N1cywgdGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHJnYmEoODIsIDE2OCwgMjM2LCAwLjgpO1xuICBvdXRsaW5lOiAwO1xuICBvdXRsaW5lOiB0aGluIGRvdHRlZCBcXDk7XG4gIC8qIElFNi05ICovXG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjYpO1xuICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDgyLCAxNjgsIDIzNiwgMC42KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpLCAwIDAgOHB4IHJnYmEoODIsIDE2OCwgMjM2LCAwLjYpOyB9XG5cbmlucHV0W3R5cGU9XCJmaWxlXCJdOmZvY3VzLCBpbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cywgc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQgIzMzMztcbiAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLmlucHV0LW1pbmkge1xuICB3aWR0aDogNjBweDsgfVxuXG4uaW5wdXQtc21hbGwge1xuICB3aWR0aDogOTBweDsgfVxuXG4uaW5wdXQtbWVkaXVtIHtcbiAgd2lkdGg6IDE1MHB4OyB9XG5cbi5pbnB1dC1sYXJnZSB7XG4gIHdpZHRoOiAyMTBweDsgfVxuXG4uaW5wdXQteGxhcmdlIHtcbiAgd2lkdGg6IDI3MHB4OyB9XG5cbi5pbnB1dC14eGxhcmdlIHtcbiAgd2lkdGg6IDUzMHB4OyB9XG5cbmlucHV0W2NsYXNzKj1cInNwYW5cIl0sIHNlbGVjdFtjbGFzcyo9XCJzcGFuXCJdLCB0ZXh0YXJlYVtjbGFzcyo9XCJzcGFuXCJdLCAudW5lZGl0YWJsZS1pbnB1dFtjbGFzcyo9XCJzcGFuXCJdLFxuLnJvdy1mbHVpZCBpbnB1dFtjbGFzcyo9XCJzcGFuXCJdLCAucm93LWZsdWlkIHNlbGVjdFtjbGFzcyo9XCJzcGFuXCJdLCAucm93LWZsdWlkIHRleHRhcmVhW2NsYXNzKj1cInNwYW5cIl0sIC5yb3ctZmx1aWQgLnVuZWRpdGFibGUtaW5wdXRbY2xhc3MqPVwic3BhblwiXSB7XG4gIGZsb2F0OiBub25lO1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG5pbnB1dCwgdGV4dGFyZWEsIC51bmVkaXRhYmxlLWlucHV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuaW5wdXQuc3BhbjEsIHRleHRhcmVhLnNwYW4xLCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuMSB7XG4gIHdpZHRoOiA1MHB4OyB9XG5cbmlucHV0LnNwYW4yLCB0ZXh0YXJlYS5zcGFuMiwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjIge1xuICB3aWR0aDogMTMwcHg7IH1cblxuaW5wdXQuc3BhbjMsIHRleHRhcmVhLnNwYW4zLCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuMyB7XG4gIHdpZHRoOiAyMTBweDsgfVxuXG5pbnB1dC5zcGFuNCwgdGV4dGFyZWEuc3BhbjQsIC51bmVkaXRhYmxlLWlucHV0LnNwYW40IHtcbiAgd2lkdGg6IDI5MHB4OyB9XG5cbmlucHV0LnNwYW41LCB0ZXh0YXJlYS5zcGFuNSwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjUge1xuICB3aWR0aDogMzcwcHg7IH1cblxuaW5wdXQuc3BhbjYsIHRleHRhcmVhLnNwYW42LCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuNiB7XG4gIHdpZHRoOiA0NTBweDsgfVxuXG5pbnB1dC5zcGFuNywgdGV4dGFyZWEuc3BhbjcsIC51bmVkaXRhYmxlLWlucHV0LnNwYW43IHtcbiAgd2lkdGg6IDUzMHB4OyB9XG5cbmlucHV0LnNwYW44LCB0ZXh0YXJlYS5zcGFuOCwgLnVuZWRpdGFibGUtaW5wdXQuc3Bhbjgge1xuICB3aWR0aDogNjEwcHg7IH1cblxuaW5wdXQuc3BhbjksIHRleHRhcmVhLnNwYW45LCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuOSB7XG4gIHdpZHRoOiA2OTBweDsgfVxuXG5pbnB1dC5zcGFuMTAsIHRleHRhcmVhLnNwYW4xMCwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjEwIHtcbiAgd2lkdGg6IDc3MHB4OyB9XG5cbmlucHV0LnNwYW4xMSwgdGV4dGFyZWEuc3BhbjExLCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuMTEge1xuICB3aWR0aDogODUwcHg7IH1cblxuaW5wdXQuc3BhbjEyLCB0ZXh0YXJlYS5zcGFuMTIsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4xMiB7XG4gIHdpZHRoOiA5MzBweDsgfVxuXG5pbnB1dFtkaXNhYmxlZF0sIHNlbGVjdFtkaXNhYmxlZF0sIHRleHRhcmVhW2Rpc2FibGVkXSwgaW5wdXRbcmVhZG9ubHldLCBzZWxlY3RbcmVhZG9ubHldLCB0ZXh0YXJlYVtyZWFkb25seV0ge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBib3JkZXItY29sb3I6ICNkZGQ7IH1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSwgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdW3JlYWRvbmx5XSwgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi5jb250cm9sLWdyb3VwLndhcm5pbmcgPiBsYWJlbCwgLmNvbnRyb2wtZ3JvdXAud2FybmluZyAuaGVscC1ibG9jaywgLmNvbnRyb2wtZ3JvdXAud2FybmluZyAuaGVscC1pbmxpbmUge1xuICBjb2xvcjogI2JjNTIwMDsgfVxuXG4uY29udHJvbC1ncm91cC53YXJuaW5nIGlucHV0LCAuY29udHJvbC1ncm91cC53YXJuaW5nIHNlbGVjdCwgLmNvbnRyb2wtZ3JvdXAud2FybmluZyB0ZXh0YXJlYSB7XG4gIGNvbG9yOiAjYmM1MjAwO1xuICBib3JkZXItY29sb3I6ICNiYzUyMDA7IH1cbiAgLmNvbnRyb2wtZ3JvdXAud2FybmluZyBpbnB1dDpmb2N1cywgLmNvbnRyb2wtZ3JvdXAud2FybmluZyBzZWxlY3Q6Zm9jdXMsIC5jb250cm9sLWdyb3VwLndhcm5pbmcgdGV4dGFyZWE6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzg5M2MwMDtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA2cHggI2ZmODMyMztcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCA2cHggI2ZmODMyMztcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4ICNmZjgzMjM7IH1cblxuLmNvbnRyb2wtZ3JvdXAud2FybmluZyAuaW5wdXQtcHJlcGVuZCAuYWRkLW9uLCAuY29udHJvbC1ncm91cC53YXJuaW5nIC5pbnB1dC1hcHBlbmQgLmFkZC1vbiB7XG4gIGNvbG9yOiAjYmM1MjAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmYmYyO1xuICBib3JkZXItY29sb3I6ICNiYzUyMDA7IH1cblxuLmNvbnRyb2wtZ3JvdXAuZXJyb3IgPiBsYWJlbCwgLmNvbnRyb2wtZ3JvdXAuZXJyb3IgLmhlbHAtYmxvY2ssIC5jb250cm9sLWdyb3VwLmVycm9yIC5oZWxwLWlubGluZSB7XG4gIGNvbG9yOiAjY2UxMTI2OyB9XG5cbi5jb250cm9sLWdyb3VwLmVycm9yIGlucHV0LCAuY29udHJvbC1ncm91cC5lcnJvciBzZWxlY3QsIC5jb250cm9sLWdyb3VwLmVycm9yIHRleHRhcmVhIHtcbiAgY29sb3I6ICNjZTExMjY7XG4gIGJvcmRlci1jb2xvcjogI2NlMTEyNjsgfVxuICAuY29udHJvbC1ncm91cC5lcnJvciBpbnB1dDpmb2N1cywgLmNvbnRyb2wtZ3JvdXAuZXJyb3Igc2VsZWN0OmZvY3VzLCAuY29udHJvbC1ncm91cC5lcnJvciB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjOWYwZDFkO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDZweCAjZjE1NDY2O1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDZweCAjZjE1NDY2O1xuICAgIGJveC1zaGFkb3c6IDAgMCA2cHggI2YxNTQ2NjsgfVxuXG4uY29udHJvbC1ncm91cC5lcnJvciAuaW5wdXQtcHJlcGVuZCAuYWRkLW9uLCAuY29udHJvbC1ncm91cC5lcnJvciAuaW5wdXQtYXBwZW5kIC5hZGQtb24ge1xuICBjb2xvcjogI2NlMTEyNjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjNmNDtcbiAgYm9yZGVyLWNvbG9yOiAjY2UxMTI2OyB9XG5cbi5jb250cm9sLWdyb3VwLnN1Y2Nlc3MgPiBsYWJlbCwgLmNvbnRyb2wtZ3JvdXAuc3VjY2VzcyAuaGVscC1ibG9jaywgLmNvbnRyb2wtZ3JvdXAuc3VjY2VzcyAuaGVscC1pbmxpbmUge1xuICBjb2xvcjogIzNlNTcxMjsgfVxuXG4uY29udHJvbC1ncm91cC5zdWNjZXNzIGlucHV0LCAuY29udHJvbC1ncm91cC5zdWNjZXNzIHNlbGVjdCwgLmNvbnRyb2wtZ3JvdXAuc3VjY2VzcyB0ZXh0YXJlYSB7XG4gIGNvbG9yOiAjM2U1NzEyO1xuICBib3JkZXItY29sb3I6ICMzZTU3MTI7IH1cbiAgLmNvbnRyb2wtZ3JvdXAuc3VjY2VzcyBpbnB1dDpmb2N1cywgLmNvbnRyb2wtZ3JvdXAuc3VjY2VzcyBzZWxlY3Q6Zm9jdXMsIC5jb250cm9sLWdyb3VwLnN1Y2Nlc3MgdGV4dGFyZWE6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzIwMmQwOTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA2cHggIzdhYWMyMztcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCA2cHggIzdhYWMyMztcbiAgICBib3gtc2hhZG93OiAwIDAgNnB4ICM3YWFjMjM7IH1cblxuLmNvbnRyb2wtZ3JvdXAuc3VjY2VzcyAuaW5wdXQtcHJlcGVuZCAuYWRkLW9uLCAuY29udHJvbC1ncm91cC5zdWNjZXNzIC5pbnB1dC1hcHBlbmQgLmFkZC1vbiB7XG4gIGNvbG9yOiAjM2U1NzEyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmN2YzO1xuICBib3JkZXItY29sb3I6ICMzZTU3MTI7IH1cblxuaW5wdXQ6Zm9jdXM6cmVxdWlyZWQ6aW52YWxpZCwgdGV4dGFyZWE6Zm9jdXM6cmVxdWlyZWQ6aW52YWxpZCwgc2VsZWN0OmZvY3VzOnJlcXVpcmVkOmludmFsaWQge1xuICBjb2xvcjogI2I5NGE0ODtcbiAgYm9yZGVyLWNvbG9yOiAjZWU1ZjViOyB9XG4gIGlucHV0OmZvY3VzOnJlcXVpcmVkOmludmFsaWQ6Zm9jdXMsIHRleHRhcmVhOmZvY3VzOnJlcXVpcmVkOmludmFsaWQ6Zm9jdXMsIHNlbGVjdDpmb2N1czpyZXF1aXJlZDppbnZhbGlkOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICNlOTMyMmQ7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNnB4ICNmOGI5Yjc7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDAgNnB4ICNmOGI5Yjc7XG4gICAgYm94LXNoYWRvdzogMCAwIDZweCAjZjhiOWI3OyB9XG5cbi5mb3JtLWFjdGlvbnMge1xuICBwYWRkaW5nOiAxN3B4IDIwcHggMThweDtcbiAgbWFyZ2luLXRvcDogMThweDtcbiAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICp6b29tOiAxOyB9XG4gIC5mb3JtLWFjdGlvbnM6YmVmb3JlLCAuZm9ybS1hY3Rpb25zOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5mb3JtLWFjdGlvbnM6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi51bmVkaXRhYmxlLWlucHV0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZWVlO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDI1KTtcbiAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjAyNSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMDI1KTsgfVxuXG46LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjOTk5OyB9XG5cbi5oZWxwLWJsb2NrLCAuaGVscC1pbmxpbmUge1xuICBjb2xvcjogIzU1NTsgfVxuXG4uaGVscC1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cblxuLmhlbHAtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAqZGlzcGxheTogaW5saW5lO1xuICAvKiBJRTcgaW5saW5lLWJsb2NrIGhhY2sgKi9cbiAgKnpvb206IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmctbGVmdDogNXB4OyB9XG5cbi5pbnB1dC1wcmVwZW5kLCAuaW5wdXQtYXBwZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5pbnB1dC1wcmVwZW5kIGlucHV0LCAuaW5wdXQtcHJlcGVuZCBzZWxlY3QsIC5pbnB1dC1wcmVwZW5kIC51bmVkaXRhYmxlLWlucHV0LCAuaW5wdXQtYXBwZW5kIGlucHV0LCAuaW5wdXQtYXBwZW5kIHNlbGVjdCwgLmlucHV0LWFwcGVuZCAudW5lZGl0YWJsZS1pbnB1dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgKm1hcmdpbi1sZWZ0OiAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwIDNweCAzcHggMDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwOyB9XG4gICAgLmlucHV0LXByZXBlbmQgaW5wdXQ6Zm9jdXMsIC5pbnB1dC1wcmVwZW5kIHNlbGVjdDpmb2N1cywgLmlucHV0LXByZXBlbmQgLnVuZWRpdGFibGUtaW5wdXQ6Zm9jdXMsIC5pbnB1dC1hcHBlbmQgaW5wdXQ6Zm9jdXMsIC5pbnB1dC1hcHBlbmQgc2VsZWN0OmZvY3VzLCAuaW5wdXQtYXBwZW5kIC51bmVkaXRhYmxlLWlucHV0OmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDI7IH1cbiAgLmlucHV0LXByZXBlbmQgLnVuZWRpdGFibGUtaW5wdXQsIC5pbnB1dC1hcHBlbmQgLnVuZWRpdGFibGUtaW5wdXQge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjY2NjOyB9XG4gIC5pbnB1dC1wcmVwZW5kIC5hZGQtb24sIC5pbnB1dC1hcHBlbmQgLmFkZC1vbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogMThweDtcbiAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgcGFkZGluZzogNHB4IDVweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMCAjZmZmO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyB9XG4gIC5pbnB1dC1wcmVwZW5kIC5hZGQtb24sIC5pbnB1dC1wcmVwZW5kIC5idG4sIC5pbnB1dC1hcHBlbmQgLmFkZC1vbiwgLmlucHV0LWFwcGVuZCAuYnRuIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgLmlucHV0LXByZXBlbmQgLmFjdGl2ZSwgLmlucHV0LWFwcGVuZCAuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTlkYmE5O1xuICAgIGJvcmRlci1jb2xvcjogIzQ2YTU0NjsgfVxuXG4uaW5wdXQtcHJlcGVuZCAuYWRkLW9uLCAuaW5wdXQtcHJlcGVuZCAuYnRuIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4OyB9XG5cbi5pbnB1dC1wcmVwZW5kIC5hZGQtb246Zmlyc3QtY2hpbGQsIC5pbnB1dC1wcmVwZW5kIC5idG46Zmlyc3QtY2hpbGQge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHggMCAwIDNweDsgfVxuXG4uaW5wdXQtYXBwZW5kIGlucHV0LCAuaW5wdXQtYXBwZW5kIHNlbGVjdCwgLmlucHV0LWFwcGVuZCAudW5lZGl0YWJsZS1pbnB1dCB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4OyB9XG5cbi5pbnB1dC1hcHBlbmQgLnVuZWRpdGFibGUtaW5wdXQge1xuICBib3JkZXItcmlnaHQtY29sb3I6ICNjY2M7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZWVlOyB9XG5cbi5pbnB1dC1hcHBlbmQgLmFkZC1vbjpsYXN0LWNoaWxkLCAuaW5wdXQtYXBwZW5kIC5idG46bGFzdC1jaGlsZCB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwOyB9XG5cbi5pbnB1dC1wcmVwZW5kLmlucHV0LWFwcGVuZCBpbnB1dCwgLmlucHV0LXByZXBlbmQuaW5wdXQtYXBwZW5kIHNlbGVjdCwgLmlucHV0LXByZXBlbmQuaW5wdXQtYXBwZW5kIC51bmVkaXRhYmxlLWlucHV0IHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLmlucHV0LXByZXBlbmQuaW5wdXQtYXBwZW5kIC5hZGQtb246Zmlyc3QtY2hpbGQsIC5pbnB1dC1wcmVwZW5kLmlucHV0LWFwcGVuZCAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHggMCAwIDNweDsgfVxuXG4uaW5wdXQtcHJlcGVuZC5pbnB1dC1hcHBlbmQgLmFkZC1vbjpsYXN0LWNoaWxkLCAuaW5wdXQtcHJlcGVuZC5pbnB1dC1hcHBlbmQgLmJ0bjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwOyB9XG5cbi5zZWFyY2gtcXVlcnkge1xuICBwYWRkaW5nLXJpZ2h0OiAxNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHggXFw5O1xuICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gIHBhZGRpbmctbGVmdDogNHB4IFxcOTtcbiAgLyogSUU3LTggZG9lc24ndCBoYXZlIGJvcmRlci1yYWRpdXMsIHNvIGRvbid0IGluZGVudCB0aGUgcGFkZGluZyAqL1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogMTRweDsgfVxuXG4uZm9ybS1zZWFyY2ggaW5wdXQsIC5mb3JtLXNlYXJjaCB0ZXh0YXJlYSwgLmZvcm0tc2VhcmNoIHNlbGVjdCwgLmZvcm0tc2VhcmNoIC5oZWxwLWlubGluZSwgLmZvcm0tc2VhcmNoIC51bmVkaXRhYmxlLWlucHV0LCAuZm9ybS1zZWFyY2ggLmlucHV0LXByZXBlbmQsIC5mb3JtLXNlYXJjaCAuaW5wdXQtYXBwZW5kLCAuZm9ybS1pbmxpbmUgaW5wdXQsIC5mb3JtLWlubGluZSB0ZXh0YXJlYSwgLmZvcm0taW5saW5lIHNlbGVjdCwgLmZvcm0taW5saW5lIC5oZWxwLWlubGluZSwgLmZvcm0taW5saW5lIC51bmVkaXRhYmxlLWlucHV0LCAuZm9ybS1pbmxpbmUgLmlucHV0LXByZXBlbmQsIC5mb3JtLWlubGluZSAuaW5wdXQtYXBwZW5kLCAuZm9ybS1ob3Jpem9udGFsIGlucHV0LCAuZm9ybS1ob3Jpem9udGFsIHRleHRhcmVhLCAuZm9ybS1ob3Jpem9udGFsIHNlbGVjdCwgLmZvcm0taG9yaXpvbnRhbCAuaGVscC1pbmxpbmUsIC5mb3JtLWhvcml6b250YWwgLnVuZWRpdGFibGUtaW5wdXQsIC5mb3JtLWhvcml6b250YWwgLmlucHV0LXByZXBlbmQsIC5mb3JtLWhvcml6b250YWwgLmlucHV0LWFwcGVuZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgKmRpc3BsYXk6IGlubGluZTtcbiAgLyogSUU3IGlubGluZS1ibG9jayBoYWNrICovXG4gICp6b29tOiAxO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLXNlYXJjaCAuaGlkZSwgLmZvcm0taW5saW5lIC5oaWRlLCAuZm9ybS1ob3Jpem9udGFsIC5oaWRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm9ybS1zZWFyY2ggbGFiZWwsIC5mb3JtLWlubGluZSBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4uZm9ybS1zZWFyY2ggLmlucHV0LWFwcGVuZCwgLmZvcm0taW5saW5lIC5pbnB1dC1hcHBlbmQsIC5mb3JtLXNlYXJjaCAuaW5wdXQtcHJlcGVuZCwgLmZvcm0taW5saW5lIC5pbnB1dC1wcmVwZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZm9ybS1zZWFyY2ggLnJhZGlvLCAuZm9ybS1zZWFyY2ggLmNoZWNrYm94LCAuZm9ybS1pbmxpbmUgLnJhZGlvLCAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi5mb3JtLXNlYXJjaCAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLCAuZm9ybS1zZWFyY2ggLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgLmZvcm0taW5saW5lIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sIC5mb3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uY29udHJvbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDlweDsgfVxuXG5sZWdlbmQgKyAuY29udHJvbC1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDE4cHg7XG4gIC13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTogc2VwYXJhdGU7IH1cblxuLmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICp6b29tOiAxOyB9XG4gIC5mb3JtLWhvcml6b250YWwgLmNvbnRyb2wtZ3JvdXA6YmVmb3JlLCAuZm9ybS1ob3Jpem9udGFsIC5jb250cm9sLWdyb3VwOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5mb3JtLWhvcml6b250YWwgLmNvbnRyb2wtZ3JvdXA6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5mb3JtLWhvcml6b250YWwgLmNvbnRyb2wtbGFiZWwge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDE0MHB4O1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4uZm9ybS1ob3Jpem9udGFsIC5jb250cm9scyB7XG4gICpkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICpwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxNjBweDtcbiAgKm1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5mb3JtLWhvcml6b250YWwgLmNvbnRyb2xzOmZpcnN0LWNoaWxkIHtcbiAgICAqcGFkZGluZy1sZWZ0OiAxNjBweDsgfVxuXG4uZm9ybS1ob3Jpem9udGFsIC5oZWxwLWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogOXB4O1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWhvcml6b250YWwgLmZvcm0tYWN0aW9ucyB7XG4gIHBhZGRpbmctbGVmdDogMTYwcHg7IH1cblxuLypcbkJ1dHRvbnNcblxuLnVzeWQtdWktcHJpbWFyeSAtIFRoZSBwcmltYXJ5IGFjdGlvbiBidXR0b24gZm9yIGEgcGFydGljdWxhciBpbnN0YW5jZSAoaS5lLiBzdWJtaXQpXG4udXN5ZC11aS1zZWNvbmRhcnkgLSBBIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9uIGZvciBhIHBhcnRpY3VsYXIgaW5zdGFuY2UgKGkuZS4gYmFjayBvciByZXNldClcbiovXG4udXN5ZC11aS1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBjb2xvcjogYmxhY2s7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IDI4cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIC8qIElFOCAqL1xuICAqbGluZS1oZWlnaHQ6IDI4cHg7XG4gIC8qIElFNyAqL1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgLnVzeWQtdWktYnV0dG9uOm5vdChbZHVtbXldKSB7XG4gICAgbGluZS1oZWlnaHQ6IGF1dG87XG4gICAgLyogTk9UIElFNy9JRTggKi8gfVxuICAudXN5ZC11aS1idXR0b24gYSB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC51c3lkLXVpLWJ1dHRvbiBzcGFuIHtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC51c3lkLXVpLWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogLW93Zy1saW5lYXItZ3JhZGllbnQod2hpdGUsIGdhaW5zYm9ybyk7XG4gICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQod2hpdGUsIGdhaW5zYm9ybyk7XG4gICAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQod2hpdGUsIGdhaW5zYm9ybyk7XG4gICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHdoaXRlLCBnYWluc2Jvcm8pO1xuICAgIC1waWUtYmFja2dyb3VuZDogLXBpZS1saW5lYXItZ3JhZGllbnQod2hpdGUsIGdhaW5zYm9ybyk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHdoaXRlLCBnYWluc2Jvcm8pO1xuICAgIGJhY2tncm91bmQ6ICNlZWVcXDk7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAudXN5ZC11aS1idXR0b246YWN0aXZlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC51c3lkLXVpLWJ1dHRvbjp2aXNpdGVkLCAudXN5ZC11aS1idXR0b246bGluayB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC51c3lkLXVpLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGNvbG9yOiAjNzU3NTc1O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMjhweDsgfVxuICAudXN5ZC11aS1idXR0b24gLnVzeWQtaWNvbi1zbWFsbCB7XG4gICAgbGluZS1oZWlnaHQ6IDdweDsgfVxuXG4udXN5ZC1idXR0b24tZ3JvdXAge1xuICAqem9vbTogMTsgfVxuICAudXN5ZC1idXR0b24tZ3JvdXA6YmVmb3JlLCAudXN5ZC1idXR0b24tZ3JvdXA6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLnVzeWQtYnV0dG9uLWdyb3VwOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAudXN5ZC1idXR0b24tZ3JvdXAgLnVzeWQtdWktYnV0dG9uLCAudXN5ZC1idXR0b24tZ3JvdXAgLnVzeWQtdWktYnV0dG9uLXByaW1hcnksIC51c3lkLWJ1dHRvbi1ncm91cCAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbjogMDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgICAtbXMtYm9yZGVyLXJhZGl1czogMDtcbiAgICAtby1ib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgICAudXN5ZC1idXR0b24tZ3JvdXAgLnVzeWQtdWktYnV0dG9uOmZpcnN0LWNoaWxkLCAudXN5ZC1idXR0b24tZ3JvdXAgLnVzeWQtdWktYnV0dG9uLXByaW1hcnk6Zmlyc3QtY2hpbGQsIC51c3lkLWJ1dHRvbi1ncm91cCAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5OmZpcnN0LWNoaWxkIHtcbiAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7XG4gICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgICAgLW1zLWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAgICAgLW8tYm9yZGVyLXJhZGl1czogM3B4IDAgMCAzcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAzcHggMCAwIDNweDtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XG4gICAgLnVzeWQtYnV0dG9uLWdyb3VwIC51c3lkLXVpLWJ1dHRvbjpsYXN0LWNoaWxkLCAudXN5ZC1idXR0b24tZ3JvdXAgLnVzeWQtdWktYnV0dG9uLnVzeWQtdWktbGFzdC1jaGlsZCwgLnVzeWQtYnV0dG9uLWdyb3VwIC51c3lkLXVpLWJ1dHRvbi1wcmltYXJ5Omxhc3QtY2hpbGQsIC51c3lkLWJ1dHRvbi1ncm91cCAudXN5ZC11aS1idXR0b24tcHJpbWFyeS51c3lkLXVpLWxhc3QtY2hpbGQsIC51c3lkLWJ1dHRvbi1ncm91cCAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5Omxhc3QtY2hpbGQsIC51c3lkLWJ1dHRvbi1ncm91cCAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5LnVzeWQtdWktbGFzdC1jaGlsZCB7XG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwO1xuICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAwIDNweCAzcHggMDtcbiAgICAgIC1tcy1ib3JkZXItcmFkaXVzOiAwIDNweCAzcHggMDtcbiAgICAgIC1vLWJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7IH1cblxuLnVzeWQtdWktYnV0dG9uLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0NjI2O1xuICBjb2xvcjogI2ZmZjtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMnB4O1xuICAtbXMtYm9yZGVyLXJhZGl1czogMnB4O1xuICAtby1ib3JkZXItcmFkaXVzOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBtYXJnaW46IDAgMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGhlaWdodDogMjhweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMjlweDtcbiAgLyogSUU4ICovXG4gICpsaW5lLWhlaWdodDogMjhweDtcbiAgLyogSUU3ICovXG4gIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG4gIC51c3lkLXVpLWJ1dHRvbi1wcmltYXJ5Om5vdChbZHVtbXldKSB7XG4gICAgbGluZS1oZWlnaHQ6IGF1dG87XG4gICAgLyogTk9UIElFNy9JRTggKi8gfVxuICAudXN5ZC11aS1idXR0b24tcHJpbWFyeSBhIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAudXN5ZC11aS1idXR0b24tcHJpbWFyeSBzcGFuIHtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC51c3lkLXVpLWJ1dHRvbi1wcmltYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAtb3dnLWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgLXBpZS1iYWNrZ3JvdW5kOiAtcGllLWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgYmFja2dyb3VuZDogI2U2NDYyNlxcOTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC51c3lkLXVpLWJ1dHRvbi1wcmltYXJ5OmFjdGl2ZSB7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAudXN5ZC11aS1idXR0b24tcHJpbWFyeTp2aXNpdGVkLCAudXN5ZC11aS1idXR0b24tcHJpbWFyeTpsaW5rIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAudXN5ZC11aS1idXR0b24tcHJpbWFyeVtkaXNhYmxlZF0ge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGNvbG9yOiAjNzU3NTc1O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBsaW5lLWhlaWdodDogMjhweDsgfVxuXG5hLnVzeWQtdWktYnV0dG9uLXByaW1hcnk6YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDYyNjsgfVxuXG4udXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEyNDE2QztcbiAgY29sb3I6ICNmZmY7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IDI4cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIC8qIElFOCAqL1xuICAqbGluZS1oZWlnaHQ6IDI4cHg7XG4gIC8qIElFNyAqL1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuICAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5Om5vdChbZHVtbXldKSB7XG4gICAgbGluZS1oZWlnaHQ6IGF1dG87XG4gICAgLyogTk9UIElFNy9JRTggKi8gfVxuICAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5IGEge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC51c3lkLXVpLWJ1dHRvbi1zZWNvbmRhcnkgc3BhbiB7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAtb3dnLWxpbmVhci1ncmFkaWVudCgjMTc1MzhiLCAjMGQyZjRkKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjMTc1MzhiLCAjMGQyZjRkKTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjMTc1MzhiLCAjMGQyZjRkKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoIzE3NTM4YiwgIzBkMmY0ZCk7XG4gICAgLXBpZS1iYWNrZ3JvdW5kOiAtcGllLWxpbmVhci1ncmFkaWVudCgjMTc1MzhiLCAjMGQyZjRkKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIzE3NTM4YiwgIzBkMmY0ZCk7XG4gICAgYmFja2dyb3VuZDogIzEyNDE2Q1xcOTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC51c3lkLXVpLWJ1dHRvbi1zZWNvbmRhcnk6YWN0aXZlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC51c3lkLXVpLWJ1dHRvbi1zZWNvbmRhcnk6dmlzaXRlZCwgLnVzeWQtdWktYnV0dG9uLXNlY29uZGFyeTpsaW5rIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5W2Rpc2FibGVkXSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6ICM3NTc1NzU7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4OyB9XG5cbi51c3lkLWJ1dHRvbi1sYXJnZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDVweCAxNHB4OyB9XG5cbi51c3lkLWJ1dHRvbi13aWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5oZWxwLWJsb2NrIHtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi5jb250cm9sLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLypcblRleHQgaW5wdXRcbiovXG5pbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgaW5wdXRbdHlwZT1lbWFpbF0sIGlucHV0W3R5cGU9dXJsXSwgaW5wdXRbdHlwZT10ZWxdLCBpbnB1dFt0eXBlPXNlYXJjaF0sIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIGNvbG9yOiBibGFjaztcbiAgaGVpZ2h0OiAyMnB4O1xuICBwYWRkaW5nOiA0cHggNnB4IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2NjY2NjY7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIGlucHV0W3R5cGU9dGV4dF06bm90KFtkdW1teV0pLCBpbnB1dFt0eXBlPXBhc3N3b3JkXTpub3QoW2R1bW15XSksIGlucHV0W3R5cGU9ZW1haWxdOm5vdChbZHVtbXldKSwgaW5wdXRbdHlwZT11cmxdOm5vdChbZHVtbXldKSwgaW5wdXRbdHlwZT10ZWxdOm5vdChbZHVtbXldKSwgaW5wdXRbdHlwZT1zZWFyY2hdOm5vdChbZHVtbXldKSwgaW5wdXRbdHlwZT1udW1iZXJdOm5vdChbZHVtbXldKSB7XG4gICAgLyogQ29kZSBmb3IgTk9UIElFNy9JRTggKi9cbiAgICBwYWRkaW5nOiAwIDZweDtcbiAgICBoZWlnaHQ6IDI2cHg7IH1cbiAgaW5wdXRbdHlwZT10ZXh0XTpmb2N1cywgaW5wdXRbdHlwZT1wYXNzd29yZF06Zm9jdXMsIGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLCBpbnB1dFt0eXBlPXVybF06Zm9jdXMsIGlucHV0W3R5cGU9dGVsXTpmb2N1cywgaW5wdXRbdHlwZT1zZWFyY2hdOmZvY3VzLCBpbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNDZhYjg7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG4vKlxuU2VsZWN0IGJveFxuKi9cbnNlbGVjdCB7XG4gIGNvbG9yOiBibGFjaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiAyOHB4O1xuICAvKiAhPSBJRTcgKi9cbiAgKmhlaWdodDogYXV0bztcbiAgLyogSUU3ICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjNGQ0ZDRkO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIC1tcy1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIC1vLWJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3gtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgKnBhZGRpbmc6IDAgMCAwIDNweDtcbiAgLyogSUU3ICovXG4gIHBhZGRpbmc6IDRweCAycHggNHB4IDRweDtcbiAgLyogSUU4ICovIH1cbiAgc2VsZWN0Om5vdChbZHVtbXldKSB7XG4gICAgcGFkZGluZzogNHB4IDJweCAycHggNHB4O1xuICAgIC8qIE5PVCBJRTcvSUU4ICovIH1cbiAgc2VsZWN0W211bHRpcGxlXSB7XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIHNlbGVjdDpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzBmNGY4YTtcbiAgICBiYWNrZ3JvdW5kOiAtb3dnLWxpbmVhci1ncmFkaWVudCgjZmVmZWZlLCAjZjVmYWZmKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjZmVmZWZlLCAjZjVmYWZmKTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjZmVmZWZlLCAjZjVmYWZmKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI2ZlZmVmZSwgI2Y1ZmFmZik7XG4gICAgLXBpZS1iYWNrZ3JvdW5kOiAtcGllLWxpbmVhci1ncmFkaWVudCgjZmVmZWZlLCAjZjVmYWZmKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2ZlZmVmZSwgI2Y1ZmFmZik7IH1cblxuLypcblRleHRhcmVhXG4qL1xudGV4dGFyZWEge1xuICBwYWRkaW5nOiA2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM2NjY2NjY7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB3aWR0aDogODAlO1xuICBoZWlnaHQ6IDZlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICB0ZXh0YXJlYTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzE0NmFiODtcbiAgICBvdXRsaW5lOiBub25lOyB9XG5cbi8qXG5SYWRpbyBhbmQgY2hlY2tib3ggaW5wdXRcbiovXG5pbnB1dFt0eXBlPXJhZGlvXSwgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi8qXG5Gb3JtIGxhYmVsXG4qL1xuLnVzeWQtdWktZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMmVtOyB9XG4gIC51c3lkLXVpLWZvcm0tbGFiZWwudXN5ZC1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuXG4udXN5ZC11aS1mb3JtLWFjdGlvbnMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLXRvcDogMmVtOyB9XG5cbi8qIEFkZHMgYSByZWQgYXN0ZXJpc2sgYWZ0ZXIgdGhlIGZpZWxkICovXG4udXN5ZC1yZXF1aXJlZDphZnRlciB7XG4gIGNvbG9yOiAjRTQwQjBCO1xuICBtYXJnaW4tbGVmdDogMC41ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XG4gIGNvbnRlbnQ6ICdcXGU5MDInO1xuICAvKiBhc3RlcmlzayBpY29uICovIH1cblxuLnVzeWQtdWktc21hbGwtcHJpbnQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYmFja2dyb3VuZDogI2ZjZmNmYztcbiAgcGFkZGluZzogMTBweDsgfVxuICAudXN5ZC11aS1zbWFsbC1wcmludCA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnVzeWQtdWktc21hbGwtcHJpbnQgOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnVzeWQtdWktc21hbGwtcHJpbnQudXN5ZC11aS1maXhlZC1oZWlnaHQge1xuICAgIGhlaWdodDogMjBlbTsgfVxuXG4udXN5ZC1mb3JtLWhlYWRpbmcge1xuICBjb2xvcjogI2U2NDYyNjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW46IDAuNWVtIDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDsgfVxuXG4udXN5ZC1mb3JtLWFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNmU2ZTY7IH1cblxuLypcbkZvcm1cblxuLnVzeWQtdWktZm9ybS1jb21wYWN0IC0gQSBzbWFsbGVyLCBtb3JlIGNvbXBhY3QgZm9ybSBsYXlvdXRcbi51c3lkLXVpLWZvcm0tb25lbGluZXIgLSBBIGZvcm0gbWVhbnQgdG8gYmUgc2hvd24gb24gYSBzaW5nbGUgbGluZSAocmVtb3ZlcyBpbnRlci1yb3cgcGFkZGluZyBldGMpXG4qL1xuLnVzeWQtZm9ybSB7XG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gIHBhZGRpbmc6IDFlbTsgfVxuICAudXN5ZC1mb3JtIGZpZWxkc2V0IHtcbiAgICBwYWRkaW5nLXRvcDogMXB4OyB9XG4gIC51c3lkLWZvcm0gbGVnZW5kIHtcbiAgICBjb2xvcjogI2U2NDYyNjtcbiAgICBmb250LXNpemU6IDEuNmVtOyB9XG4gIC51c3lkLWZvcm0gaHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogMTBweCAwOyB9XG5cbi5ib3hzaXppbmcgLnVzeWQtdWktaW5wdXQtZXhwYW5kYWJsZSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubm8tYm94c2l6aW5nIC51c3lkLXVpLWlucHV0LWV4cGFuZGFibGUge1xuICB3aWR0aDogOTclO1xuICAqd2lkdGg6IDk1JTsgfVxuXG4uY2xlYXJmaXgge1xuICAqem9vbTogMTsgfVxuICAuY2xlYXJmaXg6YmVmb3JlLCAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC11aS1uYXZiYXIge1xuICBiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWluLWhlaWdodDogNTdweDtcbiAgKnpvb206IDE7IH1cbiAgLnVzeWQtdWktbmF2YmFyOmJlZm9yZSwgLnVzeWQtdWktbmF2YmFyOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC51c3lkLXVpLW5hdmJhcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtdWktbmF2YmFyIGEge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuXG4udXN5ZC1oZWFkZXItdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMTdweCAwIDAgMzBweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4udXN5ZC11aS1jb21tb24tbmF2IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICAqem9vbTogMTtcbiAgbWFyZ2luOiAyLjhlbSAwOyB9XG4gIC51c3lkLXVpLWNvbW1vbi1uYXY6YmVmb3JlLCAudXN5ZC11aS1jb21tb24tbmF2OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC51c3lkLXVpLWNvbW1vbi1uYXY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi51c3lkLXVpLWJyZWFkY3J1bWJzIHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwOyB9XG5cbi51c3lkLXVpLWxvZ28ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDEzcHg7IH1cbiAgLnVzeWQtdWktbG9nbyBhIHtcbiAgICBmb250OiAwLzAgYTtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAyNDBweDtcbiAgICBoZWlnaHQ6IDMxcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm8tcmVwZWF0IGxlZnQgdG9wO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjQwcHggMzFweDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYXNzZXRzL2ltZy9zeWRuZXktbG9nby1ob3Jpem9udGFsLnBuZyk7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpIHtcbiAgICAudXN5ZC11aS1sb2dvIGEge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvc3lkbmV5LWxvZ28taG9yaXpvbnRhbEAyeC5wbmcpOyB9IH1cblxuLnVzeWQtdWktYnJlYWRjcnVtYiB7XG4gIG1hcmdpbi10b3A6IDJlbTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjNjY2NjY2OyB9XG4gIC51c3lkLXVpLWJyZWFkY3J1bWIgYSB7XG4gICAgY29sb3I6ICM2NjY2NjY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnVzeWQtdWktYnJlYWRjcnVtYiBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi51c3lkLXNlY3Rpb24tYmFubmVyIHtcbiAgKnpvb206IDE7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNlNjQ2MjY7IH1cbiAgLnVzeWQtc2VjdGlvbi1iYW5uZXI6YmVmb3JlLCAudXN5ZC1zZWN0aW9uLWJhbm5lcjphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAudXN5ZC1zZWN0aW9uLWJhbm5lcjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnVzeWQtc2VjdGlvbi10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLnVzeWQtZ2xvYmFsLXNlYXJjaCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnVzeWQtZ2xvYmFsLXNlYXJjaCAudXN5ZC1nbG9iYWwtc2VhcmNoLWxhYmVsIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLnVzeWQtZ2xvYmFsLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbmJvZHkudXN5ZC1ub3RpZmllci1vcGVuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi51c3lkLXVpLWdsb2JhbC1oZWFkaW5nIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgYm9keTo6YmVmb3JlIHtcbiAgICBoZWlnaHQ6IDY3cHg7IH1cbiAgLnVzeWQtdWktbG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLnVzeWQtZ2xvYmFsLXNlYXJjaCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDE0cHg7IH1cbiAgICAudXN5ZC1nbG9iYWwtc2VhcmNoIC51c3lkLWdsb2JhbC1zZWFyY2gtbGFiZWwge1xuICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtc3RhY2s7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgKnZlcnRpY2FsLWFsaWduOiBhdXRvO1xuICAgICAgem9vbTogMTtcbiAgICAgICpkaXNwbGF5OiBpbmxpbmU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgLnVzeWQtZ2xvYmFsLXNlYXJjaCAudXN5ZC1nbG9iYWwtc2VhcmNoLWNvbnRyb2xzIHtcbiAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLXN0YWNrO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICp2ZXJ0aWNhbC1hbGlnbjogYXV0bztcbiAgICAgIHpvb206IDE7XG4gICAgICAqZGlzcGxheTogaW5saW5lO1xuICAgICAgZm9udC1zaXplOiAxMHB4OyB9XG4gIC51c3lkLXVpLWhlYWRlciB7XG4gICAgcGFkZGluZzogMC4xcHggMCAwIDA7XG4gICAgKnpvb206IDE7IH1cbiAgLnVzeWQtdWktbm8tdGFicyAudXN5ZC11aS1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgfVxuICAudXN5ZC11aS1nbG9iYWwtaGVhZGluZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAudXN5ZC11aS1nbG9iYWwtaGVhZGluZzpsaW5rLCAudXN5ZC11aS1nbG9iYWwtaGVhZGluZzp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC51c3lkLXVpLWdsb2JhbC1oZWFkaW5nOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC51c3lkLXVpLWdsb2JhbC1oZWFkaW5nOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogIzIxNzZjMzsgfVxuICAudXN5ZC1oZWFkZXItdG9vbHMge1xuICAgIGZsb2F0OiByaWdodDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICBib2R5OjpiZWZvcmUge1xuICAgIGhlaWdodDogNjdweDsgfVxuICBib2R5OjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNjZweDtcbiAgICBoZWlnaHQ6IDMxcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICB6LWluZGV4OiAtMTsgfVxuICAudXN5ZC1oZWFkZXItdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnVzeWQtdWktbG9nbyBhIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYXNzZXRzL2ltZy9zeWRuZXktbG9nby1zdGFuZGFyZC1pbnZlcnRlZC5wbmcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTE2cHggNDBweDtcbiAgICB3aWR0aDogMTE2cHg7XG4gICAgaGVpZ2h0OiA0MHB4OyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NzlweCkgYW5kIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSB7XG4gIC51c3lkLXVpLWxvZ28gYSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvc3lkbmV5LWxvZ28tc3RhbmRhcmQtaW52ZXJ0ZWRAMngucG5nKTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC11aS1nbG9iYWwtaGVhZGluZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nOiA4cHggMTBweCA3cHggMTBweDtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGNvbG9yOiAjZGRkO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMyRjJGMkY7IH1cbiAgICAudXN5ZC11aS1nbG9iYWwtaGVhZGluZzpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0NjI2O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC51c3lkLXVpLWdsb2JhbC1oZWFkaW5nOmhvdmVyICsgbmF2ID4gaDIgKyB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnVzeWQtdWktZ2xvYmFsLWhlYWRpbmc6bGluaywgLnVzeWQtdWktZ2xvYmFsLWhlYWRpbmc6aG92ZXIsIC51c3lkLXVpLWdsb2JhbC1oZWFkaW5nOmFjdGl2ZSwgLnVzeWQtdWktZ2xvYmFsLWhlYWRpbmc6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAudXN5ZC11aS1nbG9iYWwtaGVhZGluZyAudXN5ZC1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm90dG9tOiAxcHg7IH1cbiAgLnVzeWQtdWktbmF2YmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudXN5ZC11aS1icmVhZGNydW1icyB7XG4gICAgbWFyZ2luOiAyMHB4IDIwcHggMjBweDsgfVxuICAudXN5ZC11aS1jb21tb24tbmF2IHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZDogIzQ0NDtcbiAgICBtYXJnaW46IDAgMCAyMHB4IDA7IH1cbiAgLnVzeWQtdWktZ2xvYmFsLWhlYWRpbmcgLnVzeWQtaWNvbiwgLnVzeWQtdWktY29tbW9uLW5hdiAudXN5ZC1pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICBib2R5OjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjNDQ0O1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRvcDogNjZweDsgfVxuICAudXN5ZC11aS1jb21tb24tbmF2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2NnB4O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgbGVmdDogMDsgfVxuICAgIC51c3lkLXVpLWNvbW1vbi1uYXYgLnVzeWQtdWktZ2xvYmFsLWhlYWRpbmcge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLnVzeWQtdWktbmF2YmFyIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1MnB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLXNlY3Rpb24tYmFubmVyIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7IH1cbiAgLnVzeWQtZ2xvYmFsLXNlYXJjaCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzO1xuICAgIC1tb3otdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cztcbiAgICAtbXMtdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjI1cztcbiAgICAtby10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzO1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXM7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCA4cHggIzFjMWMxYztcbiAgICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDhweCAjMWMxYzFjO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDhweCAjMWMxYzFjOyB9XG4gICAgLnVzeWQtZ2xvYmFsLXNlYXJjaCAudXN5ZC1nbG9iYWwtc2VhcmNoLWxhYmVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IC05OTllbTsgfVxuICAgIC51c3lkLWdsb2JhbC1zZWFyY2ggLnVzeWQtZ2xvYmFsLXNlYXJjaC1jb250cm9scyB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgZm9udC1zaXplOiAxMHB4OyB9XG4gICAgLnVzeWQtZ2xvYmFsLXNlYXJjaCBpbnB1dFt0eXBlPXRleHRdIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0NXB4KTtcbiAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC1tcy1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIC51c3lkLWdsb2JhbC1zZWFyY2gudXN5ZC1zaG93IHtcbiAgICAgIG1heC1oZWlnaHQ6IDUwcHg7IH0gfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1ibG9jay1uYXYge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC51c3lkLWJsb2NrLW5hdiA+IHVsIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDA7IH1cbiAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCA+IGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTY0NjI2O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAxMnB4OyB9XG4gICAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCA+IGxpOmxhc3QtY2hpbGQgYSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgLnVzeWQtYmxvY2stbmF2ID4gdWwgPiBsaSA+IGkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnVzeWQtYmxvY2stbmF2ID4gdWwgPiBsaSA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICAgIG1hcmdpbjogMCA1cHg7IH1cbiAgICAgIC51c3lkLWJsb2NrLW5hdiA+IHVsID4gbGkgPiBhOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCA+IGxpOmhvdmVyLFxuICAgIC51c3lkLWJsb2NrLW5hdiA+IHVsIC51c3lkLWFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiA5MDsgfVxuICAgICAgLnVzeWQtYmxvY2stbmF2ID4gdWwgPiBsaTpob3ZlciA+IGEsXG4gICAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCAudXN5ZC1hY3RpdmUgPiBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTY0NjI2O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgICAgICAgLnVzeWQtYmxvY2stbmF2ID4gdWwgPiBsaTpob3ZlciA+IGE6aG92ZXIsXG4gICAgICAgIC51c3lkLWJsb2NrLW5hdiA+IHVsIC51c3lkLWFjdGl2ZSA+IGE6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICAgIC51c3lkLWJsb2NrLW5hdiA+IHVsID4gbGk6aG92ZXIgPiBhOmhvdmVyIHNwYW4sXG4gICAgICAgICAgLnVzeWQtYmxvY2stbmF2ID4gdWwgLnVzeWQtYWN0aXZlID4gYTpob3ZlciBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCA+IGxpOmhvdmVyIHNwYW4sXG4gICAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCAudXN5ZC1hY3RpdmUgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiA1cHg7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICNlNjQ2MjY7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEwcHg7IH1cbiAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCAudXN5ZC1ibG9jay1zdWJuYXYge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMjZweDtcbiAgICAgIHotaW5kZXg6IDEwMDsgfVxuICAgIC51c3lkLWJsb2NrLW5hdiA+IHVsID4gbGk6aG92ZXIgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gICAgICBjb2xvcjogIzAwMDsgfVxuICAgIC51c3lkLWJsb2NrLW5hdiA+IHVsID4gbGk6aG92ZXIgc3BhbiB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAjZjFmMWYxOyB9XG4gICAgLnVzeWQtYmxvY2stbmF2ID4gdWwgPiBsaTpob3ZlciAudXN5ZC1ibG9jay1zdWJuYXYge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAudXN5ZC1ibG9jay1uYXYgPiB1bCA+IGxpOmhvdmVyIHNwYW4ge1xuICAgICAgei1pbmRleDogMTIwOyB9XG4gICAgLnVzeWQtYmxvY2stbmF2ID4gdWwgPiAudXN5ZC1hY3RpdmU6aG92ZXIgPiBhIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlNjQ2MjY7XG4gICAgICBjb2xvcjogI0ZGRjsgfVxuICAgIC51c3lkLWJsb2NrLW5hdiA+IHVsID4gLnVzeWQtYWN0aXZlOmhvdmVyIHNwYW4ge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2U2NDYyNjsgfVxuXG4udXN5ZC1ibG9jay1zdWJuYXYge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZDogI2YxZjFmMTtcbiAgcGFkZGluZzogMzBweCAxNnB4IDU1cHg7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDE1cHggMTVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwcHggMTVweCAxNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuICBib3gtc2hhZG93OiAwcHggMTVweCAxNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMjQpOyB9XG5cbi51c3lkLWJsb2NrLXN1Ym5hdi1pdGVtIHtcbiAgd2lkdGg6IDIzLjUlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4udXN5ZC1ibG9jay1zdWJuYXYtbGluazpsaW5rLFxuLnVzeWQtYmxvY2stc3VibmF2LWxpbms6dmlzaXRlZCB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnVzeWQtYmxvY2stc3VibmF2LWxpbms6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4udXN5ZC1zdWJuYXYtYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbiAgcGFkZGluZy10b3A6IDE1cHg7IH1cbiAgLnVzeWQtc3VibmF2LWFjdGl2ZSBoMiB7XG4gICAgY29sb3I6ICNlNjQ2MjY7XG4gICAgbWFyZ2luOiAwIDE2cHggMTBweDtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgLnVzeWQtc3VibmF2LWFjdGl2ZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZTY0NjI2O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xM3B4O1xuICAgIGxlZnQ6IDA7IH1cbiAgLnVzeWQtc3VibmF2LWFjdGl2ZSAudXN5ZC1ibG9jay1zdWJuYXYtaXRlbXMge1xuICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gICAgcGFkZGluZzogMTBweCA4cHggMDsgfVxuICAudXN5ZC1zdWJuYXYtYWN0aXZlIC51c3lkLWJsb2NrLXN1Ym5hdi1pdGVtIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDhweCA4cHggMTNweDsgfVxuICAudXN5ZC1zdWJuYXYtYWN0aXZlIC51c3lkLXN1Ym5hdi1jdXJyZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGOyB9XG5cbi51c3lkLWJsb2NrLW5hdi12ZXJ0aWNhbCA+IHVsID4gbGkge1xuICBmbG9hdDogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAvKlxuXHRcdE92ZXJyaWRpbmcgc29tZSB0aGluZ3Mgc3BlY2lmaWVkIGJ5IHRoZSBhc3N1bWVkIGRlZmF1bHQgaG9yaXpvbnRhbCBuYXYgc28gdGhhdCB0aGUgdmVydGljYWwgbmF2IHN0aWxsIHdvcmtzIGFzIGJlZm9yZS5cblx0XHRUaGlzIGlzIGEgYml0IG9mIGEgbGFzdC1taW51dGUgaGFjayBhbmQgdW5kb2luZyB0aGVzZSBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBzaW5jZSB0aGUgc3R5bGVzIHNob3VsZCBiZSBiZWluZyBhcHBsaWVkIHRvIGhvcml6b250YWxcblx0XHRuYXZzIGJ5IHNvbWUgaW1hZ2luYXJ5IHVzeWQtYmxvY2stbmF2LWhvcml6b250YWwgY2xhc3MsIHJhdGhlciB0aGFuIGZyb20gdGhlIGRlZmF1bHQgYmxvY2stbmF2IGNsYXNzLlxuXHRcdElmIHlvdSB3YW50IHRvIHdyaXRlIHNhaWQgY2xhc3MgYW5kIHJlbW92ZSB0aGlzIHN0dWZmLCBmZWVsIGZyZWUuIC0gR3JlZ1xuXHRcdCovIH1cbiAgLnVzeWQtYmxvY2stbmF2LXZlcnRpY2FsID4gdWwgPiBsaSA+IGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC51c3lkLWJsb2NrLW5hdi12ZXJ0aWNhbCA+IHVsID4gbGkudXN5ZC1hY3RpdmUgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgI2U2NDYyNjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IC0xMHB4O1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogLTVweDsgfVxuICAudXN5ZC1ibG9jay1uYXYtdmVydGljYWwgPiB1bCA+IGxpOmhvdmVyID4gYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAudXN5ZC1ibG9jay1uYXYtdmVydGljYWwgPiB1bCA+IGxpOmhvdmVyID4gYSwgLnVzeWQtYmxvY2stbmF2LXZlcnRpY2FsID4gdWwgPiBsaTpob3ZlciA+IGE6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLnVzeWQtYmxvY2stbmF2LXZlcnRpY2FsID4gdWwgPiBsaTpob3Zlci51c3lkLWFjdGl2ZSA+IGEge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gIC51c3lkLWJsb2NrLW5hdi12ZXJ0aWNhbCA+IHVsID4gbGk6aG92ZXIudXN5ZC1hY3RpdmUgc3BhbiB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlNjQ2MjY7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtYmxvY2stbmF2ID4gaDIge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC11aS1nbG9iYWwtaGVhZGluZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnVzeWQtZ2xvYmFsLW5hdiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsIC51c3lkLWFjdGl2ZSA+IGE6bGluayxcbiAgICAudXN5ZC1nbG9iYWwtbmF2ID4gdWwgLnVzeWQtYWN0aXZlID4gYSB7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgYmFja2dyb3VuZDogI2YxZjFmMTsgfVxuICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTBweCAjMzMzO1xuICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgMTBweCAjMzMzO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDEwcHggIzMzMztcbiAgICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gICAgICBtYXJnaW46IDMwcHggMCAwIC04cHg7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgd2lkdGg6IDgzdnc7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG1heC1oZWlnaHQ6IDY1dmg7XG4gICAgICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bDpob3ZlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAudXN5ZC1nbG9iYWwtbmF2ID4gdWwgbGkge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0ZGRjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsIGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItdG9wOiBub25lOyB9XG4gICAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCBsaSA+IGEge1xuICAgICAgICAgIHBhZGRpbmc6IDlweCAxMHB4O1xuICAgICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCBsaSA+IGE6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2U2NDYyNjtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCBsaSBsaSB7XG4gICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsIGxpIGxpIGEge1xuICAgICAgICAgICAgcGFkZGluZzogOXB4IDAgOXB4IDI3cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCBsaSBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0ZGRjsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsID4gdWwge1xuICAgICAgICB3aWR0aDogODUlOyB9XG4gICAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCA+IHVsID4gbGkge1xuICAgICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsID4gdWwgPiBsaSA+IHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsIC51c3lkLWFjdGl2ZSBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsIC51c3lkLWFjdGl2ZSA+IGEge1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCAudXN5ZC1ibG9jay1zdWJuYXYge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCAudXN5ZC1ibG9jay1zdWJuYXYgaDIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCAudXN5ZC1ibG9jay1zdWJuYXYtaXRlbXMge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsIC51c3lkLWJsb2NrLXN1Ym5hdi1pdGVtIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAgICAgICAudXN5ZC1nbG9iYWwtbmF2ID4gdWwgLnVzeWQtYmxvY2stc3VibmF2LWl0ZW06YmVmb3JlIHtcbiAgICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgICAgbGVmdDogMjhweDtcbiAgICAgICAgICBmb250LXNpemU6IDlweDsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsID4gbGkgPiBpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogI2U2NDYyNjtcbiAgICAgICAgcGFkZGluZzogNnB4IDRweCA1cHggNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRENEQ0RDO1xuICAgICAgICBtYXJnaW46IDVweCA4cHggMCA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsID4gbGk6aG92ZXIgLnVzeWQtYmxvY2stc3VibmF2IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsID4gbGk6aG92ZXIgYTpob3ZlcixcbiAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCA+IGxpOmhvdmVyIGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjb2xvcjogIzAwMDsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsID4gbGk6aG92ZXIgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsIC51c3lkLWJsb2NrLXN1Ym5hdiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgIC51c3lkLWdsb2JhbC1uYXYgPiB1bCA+IGxpLnVzeWQtc2hvdyBpLmljb24tcGx1czpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxlODIyJzsgfVxuICAgICAgLnVzeWQtZ2xvYmFsLW5hdiA+IHVsID4gbGkudXN5ZC1zaG93IC51c3lkLWJsb2NrLXN1Ym5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtaGVybyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAyMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAudXN5ZC1oZXJvLnVzeWQtbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gICAgLnVzeWQtaGVyby51c3lkLWxpZ2h0IC51c3lkLWhlcm8tY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLnVzeWQtaGVyby51c3lkLWxpZ2h0IC51c3lkLWhlcm8tY29udGVudC1ib2R5IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgICAgIC51c3lkLWhlcm8udXN5ZC1saWdodCAudXN5ZC1oZXJvLWNvbnRlbnQtYm9keSA+IGgyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAgIC51c3lkLWhlcm8udXN5ZC1saWdodCBhIHtcbiAgICAgIGNvbG9yOiBibGFjazsgfVxuICAudXN5ZC1oZXJvLnVzeWQtZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzMzMztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC51c3lkLWhlcm8udXN5ZC1kYXJrIC51c3lkLWhlcm8tY29udGVudC1ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwOyB9XG4gICAgLnVzeWQtaGVyby51c3lkLWRhcmsgYSB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuXG4udXN5ZC1oZXJvLWNvbnRlbnQge1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDIwMHB4O1xuICB3aWR0aDogMjQwcHg7IH1cblxuLnVzeWQtaGVyby1tZWRpYSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51c3lkLWhlcm8tbWVkaWEgaW1nIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLnVzeWQtaGVybyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC51c3lkLWhlcm8udXN5ZC1kYXJrIC51c3lkLWhlcm8tY29udGVudC1ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gIC51c3lkLWhlcm8tY29udGVudCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvOyB9XG4gIC51c3lkLWhlcm8tbWVkaWEgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgLnVzeWQtaGVyby1jb250ZW50IHtcbiAgICB3aWR0aDogMzAwcHg7IH0gfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLXRpcC1jb250YWluZXIge1xuICB3aWR0aDogYXV0bzsgfVxuXG4udXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyIC51aS10aXAtYm9keSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDUwcHggIzAwMDtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgNTBweCAjMDAwO1xuICBib3gtc2hhZG93OiAwIDAgNTBweCAjMDAwO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7XG4gIC1tcy1ib3JkZXItcmFkaXVzOiAycHg7XG4gIC1vLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4OyB9XG5cbi51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIgLnVpLXRpcC1jb250ZW50IHtcbiAgcGFkZGluZzogMS4zZW0gMS44ZW07IH1cblxuLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciBoMiB7XG4gIG1hcmdpbjogMC4yZW0gMCAwLjVlbTsgfVxuXG4udXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyIHAsIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIgbGkge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIgcCArIHAsIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIgbGkgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07IH1cblxuLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciAudXN5ZC1zdXJ2ZXktY2hvaWNlcyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAyZW0gMCAwOyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIgLnVzeWQtc3VydmV5LWNob2ljZXMgYnV0dG9uIHtcbiAgICBtYXJnaW46IDAgMmVtIDEuNWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciAudXN5ZC1zdXJ2ZXktY3RybC1jbG9zZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMjhweDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT02MCk7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciAudXN5ZC1zdXJ2ZXktY3RybC1jbG9zZTpob3ZlciwgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciAudXN5ZC1zdXJ2ZXktY3RybC1jbG9zZTpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG4gICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2UgZmFsc2U7XG4gICAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlIGZhbHNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIge1xuICAgIHdpZHRoOiA0MGVtOyB9XG4gICAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciAudWktdGlwLWJvZHkge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIG1heC13aWR0aDogNjBlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTQlOyB9XG4gICAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciAudWktdGlwLWJvZHkge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTI5OXB4KSB7XG4gIC51c3lkLWNvbHVtbi1sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNDclO1xuICAgIG1hcmdpbi1yaWdodDogMyU7IH1cbiAgLnVzeWQtY29sdW1uLXJpZ2h0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlOyB9IH1cblxuLypcblN0eWxlcyBmb3IgdGhlIGhvbWVwYWdlJ3MgZmF2b3VyaXRlcyBjb250YWluZXIuIFJlbGF0ZXMgdG8gVVNZRC9BcHBzL0ludHJhbmV0L0Zhdm91cml0ZXMuXG4qL1xuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1hY2NvcmRpb24tdGl0bGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1hY2NvcmRpb24tdGl0bGUudXN5ZC11aS1jbG9zZWQge1xuICAgIGJvcmRlci10b3A6IG5vbmU7IH1cbiAgICAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLWFjY29yZGlvbi10aXRsZS51c3lkLXVpLWNsb3NlZCAudXN5ZC11aS1hY3Rpb24tZWRpdCB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLWFjY29yZGlvbi10aXRsZS51c3lkLXVpLW9wZW4gLnVzeWQtdWktYWN0aW9uLWVkaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1hY2NvcmRpb24tdGl0bGUudXN5ZC11aS1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNiZmJmYmY7IH1cbiAgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1hY2NvcmRpb24tdGl0bGUgLnVzeWQtdWktYWN0aW9uLWhlbHAge1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktYWNjb3JkaW9uLXRpdGxlIC51c3lkLXVpLWFjdGlvbi1lZGl0IHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBmYWxzZTtcbiAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBmYWxzZSBmYWxzZTtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZmFsc2UgZmFsc2U7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzOyB9XG4gIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktYWNjb3JkaW9uLXRpdGxlIC51c3lkLWFjdGlvbi1pY29uIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLWFjY29yZGlvbi10aXRsZSAudXN5ZC1hY3Rpb24taWNvbiArIC51c3lkLWFjdGlvbi1pY29uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC42ZW07IH1cblxuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1hY3Rpb24taWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlXFw5OyB9XG5cbi51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZSwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXVzZXItdGl0bGUsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1sb2dpbnMtdGl0bGUsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1wb3B1bGFyLXRpdGxlIHtcbiAgcGFkZGluZy1sZWZ0OiA2cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDVweDsgfVxuICAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtdGl0bGUgLnVzeWQtaWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXVzZXItdGl0bGUgLnVzeWQtaWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLWxvZ2lucy10aXRsZSAudXN5ZC1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZSAudXN5ZC1pY29uIHtcbiAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMnB4OyB9XG4gIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZTpob3ZlciwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXVzZXItdGl0bGU6aG92ZXIsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1sb2dpbnMtdGl0bGU6aG92ZXIsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1wb3B1bGFyLXRpdGxlOmhvdmVyLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtdGl0bGU6Zm9jdXMsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy11c2VyLXRpdGxlOmZvY3VzLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlOmZvY3VzLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gICAgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXRpdGxlOmhvdmVyIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy11c2VyLXRpdGxlOmhvdmVyIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1sb2dpbnMtdGl0bGU6aG92ZXIgLnVzeWQtaWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXBvcHVsYXItdGl0bGU6aG92ZXIgLnVzeWQtaWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXRpdGxlOmhvdmVyIC51c3lkLWFjdGlvbi1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtdXNlci10aXRsZTpob3ZlciAudXN5ZC1hY3Rpb24taWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLWxvZ2lucy10aXRsZTpob3ZlciAudXN5ZC1hY3Rpb24taWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXBvcHVsYXItdGl0bGU6aG92ZXIgLnVzeWQtYWN0aW9uLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZTpmb2N1cyAudXN5ZC1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtdXNlci10aXRsZTpmb2N1cyAudXN5ZC1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlOmZvY3VzIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1wb3B1bGFyLXRpdGxlOmZvY3VzIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZTpmb2N1cyAudXN5ZC1hY3Rpb24taWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXVzZXItdGl0bGU6Zm9jdXMgLnVzeWQtYWN0aW9uLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1sb2dpbnMtdGl0bGU6Zm9jdXMgLnVzeWQtYWN0aW9uLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1wb3B1bGFyLXRpdGxlOmZvY3VzIC51c3lkLWFjdGlvbi1pY29uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTYgXFw5OyB9XG4gIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZS51c3lkLXVpLW9wZW4sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtdXNlci10aXRsZSwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1vcGVuLnVzeWQtZmF2b3VyaXRlcy1sb2dpbnMtdGl0bGUsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjsgfVxuICAgIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZS51c3lkLXVpLW9wZW46aG92ZXIsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtdXNlci10aXRsZTpob3ZlciwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1vcGVuLnVzeWQtZmF2b3VyaXRlcy1sb2dpbnMtdGl0bGU6aG92ZXIsIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZTpob3ZlciwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1mYXZvdXJpdGVzLXRpdGxlLnVzeWQtdWktb3Blbjpmb2N1cywgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1vcGVuLnVzeWQtZmF2b3VyaXRlcy11c2VyLXRpdGxlOmZvY3VzLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLW9wZW4udXN5ZC1mYXZvdXJpdGVzLWxvZ2lucy10aXRsZTpmb2N1cywgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1vcGVuLnVzeWQtZmF2b3VyaXRlcy1wb3B1bGFyLXRpdGxlOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7IH1cbiAgICAgIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZS51c3lkLXVpLW9wZW46aG92ZXIgLnVzeWQtaWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1vcGVuLnVzeWQtZmF2b3VyaXRlcy11c2VyLXRpdGxlOmhvdmVyIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlOmhvdmVyIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZTpob3ZlciAudXN5ZC1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtdGl0bGUudXN5ZC11aS1vcGVuOmhvdmVyIC51c3lkLWFjdGlvbi1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLW9wZW4udXN5ZC1mYXZvdXJpdGVzLXVzZXItdGl0bGU6aG92ZXIgLnVzeWQtYWN0aW9uLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlOmhvdmVyIC51c3lkLWFjdGlvbi1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLW9wZW4udXN5ZC1mYXZvdXJpdGVzLXBvcHVsYXItdGl0bGU6aG92ZXIgLnVzeWQtYWN0aW9uLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZS51c3lkLXVpLW9wZW46Zm9jdXMgLnVzeWQtaWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1vcGVuLnVzeWQtZmF2b3VyaXRlcy11c2VyLXRpdGxlOmZvY3VzIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlOmZvY3VzIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZTpmb2N1cyAudXN5ZC1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtdGl0bGUudXN5ZC11aS1vcGVuOmZvY3VzIC51c3lkLWFjdGlvbi1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLW9wZW4udXN5ZC1mYXZvdXJpdGVzLXVzZXItdGl0bGU6Zm9jdXMgLnVzeWQtYWN0aW9uLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlOmZvY3VzIC51c3lkLWFjdGlvbi1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLW9wZW4udXN5ZC1mYXZvdXJpdGVzLXBvcHVsYXItdGl0bGU6Zm9jdXMgLnVzeWQtYWN0aW9uLWljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2IFxcOTsgfVxuICAgIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy10aXRsZS51c3lkLXVpLW9wZW4gLnVzeWQtaWNvbiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC11aS1vcGVuLnVzeWQtZmF2b3VyaXRlcy11c2VyLXRpdGxlIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlIC51c3lkLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZSAudXN5ZC1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtdGl0bGUudXN5ZC11aS1vcGVuIC51c3lkLWFjdGlvbi1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLW9wZW4udXN5ZC1mYXZvdXJpdGVzLXVzZXItdGl0bGUgLnVzeWQtYWN0aW9uLWljb24sIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtdWktb3Blbi51c3lkLWZhdm91cml0ZXMtbG9naW5zLXRpdGxlIC51c3lkLWFjdGlvbi1pY29uLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLW9wZW4udXN5ZC1mYXZvdXJpdGVzLXBvcHVsYXItdGl0bGUgLnVzeWQtYWN0aW9uLWljb24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiBcXDk7IH1cblxuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcy51c3lkLWxvYWRpbmcgLnVzeWQtYWN0aW9uLWZhdm91cml0ZSB7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9NTApO1xuICBvcGFjaXR5OiAwLjU7IH1cblxuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcy51c3lkLXdhc20tdXNlci11bmF1dGhlZCAudXN5ZC1hY3Rpb24tZmF2b3VyaXRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4udXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLWFjY29yZGlvbi1wYW5lbC51c3lkLXVpLW9wZW4ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjsgfVxuXG4udXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXVpLWFjY29yZGlvbi1wYW5lbC51c3lkLXVpLWNsb3NlZCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAjdXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzLWxvZ2lucyAudXN5ZC1hY3Rpb24tZmF2b3VyaXRlLCAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzICN1c3lkLWludHJhbmV0LWZhdm91cml0ZXMtcG9wdWxhciAudXN5ZC1hY3Rpb24tZmF2b3VyaXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwOyB9XG5cbi51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtYWN0aW9uLWRlbGV0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDsgfVxuXG4udXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWZhdm91cml0ZXMtbGluayB7XG4gIHdpZHRoOiAxNmVtOyB9XG5cbi51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtZmF2b3VyaXRlcy1jaGFuZ2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmY4MDsgfVxuXG4udXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLWxpbmstbGlzdCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1yaWdodDogMmVtOyB9XG5cbi51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtc3lzdGVtLWxvZ2lucyBsaSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA0OCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXJnaW4tdG9wOiAwLjNlbTsgfVxuICAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXN5c3RlbS1sb2dpbnMgbGkgLnVzeWQtYWN0aW9uLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgY29sb3I6ICNjNmM2YzY7IH1cbiAgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyAudXN5ZC1zeXN0ZW0tbG9naW5zIGxpOm50aC1jaGlsZCgybisxKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyLjUlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzOTBweCkge1xuICAgIC51c3lkLWludHJhbmV0LWZhdm91cml0ZXMgLnVzeWQtc3lzdGVtLWxvZ2lucyBsaSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAudXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzIC51c3lkLXN5c3RlbS1sb2dpbnMgbGk6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtaWNvbi14c21hbGwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtaW4td2lkdGg6IDE2cHg7XG4gIG1pbi1oZWlnaHQ6IDE2cHg7IH1cblxuLnVzeWQtaWNvbi1zbWFsbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDI0cHg7XG4gIG1pbi13aWR0aDogMjRweDtcbiAgbWluLWhlaWdodDogMjRweDsgfVxuXG4udXN5ZC1pY29uLW1lZGl1bSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDMycHg7XG4gIG1pbi13aWR0aDogMzJweDtcbiAgbWluLWhlaWdodDogMzJweDsgfVxuXG4udXN5ZC1pY29uLWxhcmdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogNDhweDtcbiAgbWluLXdpZHRoOiA0OHB4O1xuICBtaW4taGVpZ2h0OiA0OHB4OyB9XG5cbi51c3lkLWljb24teGxhcmdlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogNjRweDtcbiAgbWluLXdpZHRoOiA2NHB4O1xuICBtaW4taGVpZ2h0OiA2NHB4OyB9XG5cbi51c3lkLWxhYmVsbGVkLWljb24gLnVzeWQtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAudXN5ZC1sYWJlbGxlZC1pY29uIC51c3lkLWljb24udXN5ZC1pY29uLXhzbWFsbCB7XG4gICAgbWluLXdpZHRoOiAxNnB4OyB9XG4gIC51c3lkLWxhYmVsbGVkLWljb24gLnVzeWQtaWNvbi51c3lkLWljb24tc21hbGwge1xuICAgIG1pbi13aWR0aDogMjRweDsgfVxuICAudXN5ZC1sYWJlbGxlZC1pY29uIC51c3lkLWljb24udXN5ZC1pY29uLW1lZGl1bSB7XG4gICAgbWluLXdpZHRoOiAzMnB4OyB9XG4gIC51c3lkLWxhYmVsbGVkLWljb24gLnVzeWQtaWNvbi51c3lkLWljb24tbGFyZ2Uge1xuICAgIG1pbi13aWR0aDogNDhweDsgfVxuICAudXN5ZC1sYWJlbGxlZC1pY29uIC51c3lkLWljb24udXN5ZC1pY29uLXhsYXJnZSB7XG4gICAgbWluLXdpZHRoOiA2NHB4OyB9XG5cbmEudXN5ZC1sYWJlbGxlZC1pY29uIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIGEudXN5ZC1sYWJlbGxlZC1pY29uOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICBhLnVzeWQtbGFiZWxsZWQtaWNvbjpob3ZlciAudXN5ZC1pY29uLXRleHQge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnVzeWQtZGF0ZS1pY29uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWluLXdpZHRoOiAzNXB4OyB9XG4gIC51c3lkLWRhdGUtaWNvbiAudXN5ZC1kYXRlLWRheSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAyMHB4OyB9XG4gIC51c3lkLWRhdGUtaWNvbiAudXN5ZC1kYXRlLW1vbnRoIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTBweDsgfVxuXG4uY2xlYXJmaXgge1xuICAqem9vbTogMTsgfVxuICAuY2xlYXJmaXg6YmVmb3JlLCAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4uY29udGFpbmVyLCAudXN5ZC1wYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgKnpvb206IDE7IH1cbiAgLmNvbnRhaW5lcjpiZWZvcmUsIC51c3lkLXBhZ2U6YmVmb3JlLCAuY29udGFpbmVyOmFmdGVyLCAudXN5ZC1wYWdlOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5jb250YWluZXI6YWZ0ZXIsIC51c3lkLXBhZ2U6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5jb250YWluZXItZmx1aWQge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICp6b29tOiAxOyB9XG4gIC5jb250YWluZXItZmx1aWQ6YmVmb3JlLCAuY29udGFpbmVyLWZsdWlkOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5jb250YWluZXItZmx1aWQ6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5yb3cge1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICp6b29tOiAxOyB9XG4gIC5yb3c6YmVmb3JlLCAucm93OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5yb3c6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbltjbGFzcyo9XCJzcGFuXCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbi5jb250YWluZXIsIC51c3lkLXBhZ2UsIC5uYXZiYXItZml4ZWQtdG9wIC5jb250YWluZXIsIC5uYXZiYXItZml4ZWQtdG9wIC51c3lkLXBhZ2UsIC5uYXZiYXItZml4ZWQtYm90dG9tIC5jb250YWluZXIsIC5uYXZiYXItZml4ZWQtYm90dG9tIC51c3lkLXBhZ2Uge1xuICB3aWR0aDogOTQwcHg7IH1cblxuLnNwYW4xIHtcbiAgd2lkdGg6IDYwcHg7IH1cblxuLnNwYW4yIHtcbiAgd2lkdGg6IDE0MHB4OyB9XG5cbi5zcGFuMyB7XG4gIHdpZHRoOiAyMjBweDsgfVxuXG4uc3BhbjQge1xuICB3aWR0aDogMzAwcHg7IH1cblxuLnNwYW41IHtcbiAgd2lkdGg6IDM4MHB4OyB9XG5cbi5zcGFuNiB7XG4gIHdpZHRoOiA0NjBweDsgfVxuXG4uc3Bhbjcge1xuICB3aWR0aDogNTQwcHg7IH1cblxuLnNwYW44IHtcbiAgd2lkdGg6IDYyMHB4OyB9XG5cbi5zcGFuOSB7XG4gIHdpZHRoOiA3MDBweDsgfVxuXG4uc3BhbjEwIHtcbiAgd2lkdGg6IDc4MHB4OyB9XG5cbi5zcGFuMTEge1xuICB3aWR0aDogODYwcHg7IH1cblxuLnNwYW4xMiB7XG4gIHdpZHRoOiA5NDBweDsgfVxuXG4ub2Zmc2V0MSB7XG4gIG1hcmdpbi1sZWZ0OiAxMDBweDsgfVxuXG4ub2Zmc2V0MiB7XG4gIG1hcmdpbi1sZWZ0OiAxODBweDsgfVxuXG4ub2Zmc2V0MyB7XG4gIG1hcmdpbi1sZWZ0OiAyNjBweDsgfVxuXG4ub2Zmc2V0NCB7XG4gIG1hcmdpbi1sZWZ0OiAzNDBweDsgfVxuXG4ub2Zmc2V0NSB7XG4gIG1hcmdpbi1sZWZ0OiA0MjBweDsgfVxuXG4ub2Zmc2V0NiB7XG4gIG1hcmdpbi1sZWZ0OiA1MDBweDsgfVxuXG4ub2Zmc2V0NyB7XG4gIG1hcmdpbi1sZWZ0OiA1ODBweDsgfVxuXG4ub2Zmc2V0OCB7XG4gIG1hcmdpbi1sZWZ0OiA2NjBweDsgfVxuXG4ub2Zmc2V0OSB7XG4gIG1hcmdpbi1sZWZ0OiA3NDBweDsgfVxuXG4ub2Zmc2V0MTAge1xuICBtYXJnaW4tbGVmdDogODIwcHg7IH1cblxuLm9mZnNldDExIHtcbiAgbWFyZ2luLWxlZnQ6IDkwMHB4OyB9XG5cbi5vZmZzZXQxMiB7XG4gIG1hcmdpbi1sZWZ0OiA5ODBweDsgfVxuXG4ucm93LWZsdWlkIHtcbiAgd2lkdGg6IDEwMCU7XG4gICp6b29tOiAxOyB9XG4gIC5yb3ctZmx1aWQ6YmVmb3JlLCAucm93LWZsdWlkOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5yb3ctZmx1aWQ6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5yb3ctZmx1aWQgW2NsYXNzKj1cInNwYW5cIl0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbXMtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAyLjEyNzY2JTtcbiAgICAqbWFyZ2luLWxlZnQ6IDIuMDc0NDclOyB9XG4gIC5yb3ctZmx1aWQgW2NsYXNzKj1cInNwYW5cIl06Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5yb3ctZmx1aWQgLnNwYW4xIHtcbiAgICB3aWR0aDogNi4zODI5OCU7XG4gICAgKndpZHRoOiA2LjMyOTc5JTsgfVxuICAucm93LWZsdWlkIC5zcGFuMiB7XG4gICAgd2lkdGg6IDE0Ljg5MzYyJTtcbiAgICAqd2lkdGg6IDE0Ljg0MDQzJTsgfVxuICAucm93LWZsdWlkIC5zcGFuMyB7XG4gICAgd2lkdGg6IDIzLjQwNDI2JTtcbiAgICAqd2lkdGg6IDIzLjM1MTA2JTsgfVxuICAucm93LWZsdWlkIC5zcGFuNCB7XG4gICAgd2lkdGg6IDMxLjkxNDg5JTtcbiAgICAqd2lkdGg6IDMxLjg2MTclOyB9XG4gIC5yb3ctZmx1aWQgLnNwYW41IHtcbiAgICB3aWR0aDogNDAuNDI1NTMlO1xuICAgICp3aWR0aDogNDAuMzcyMzQlOyB9XG4gIC5yb3ctZmx1aWQgLnNwYW42IHtcbiAgICB3aWR0aDogNDguOTM2MTclO1xuICAgICp3aWR0aDogNDguODgyOTglOyB9XG4gIC5yb3ctZmx1aWQgLnNwYW43IHtcbiAgICB3aWR0aDogNTcuNDQ2ODElO1xuICAgICp3aWR0aDogNTcuMzkzNjIlOyB9XG4gIC5yb3ctZmx1aWQgLnNwYW44IHtcbiAgICB3aWR0aDogNjUuOTU3NDUlO1xuICAgICp3aWR0aDogNjUuOTA0MjYlOyB9XG4gIC5yb3ctZmx1aWQgLnNwYW45IHtcbiAgICB3aWR0aDogNzQuNDY4MDklO1xuICAgICp3aWR0aDogNzQuNDE0ODklOyB9XG4gIC5yb3ctZmx1aWQgLnNwYW4xMCB7XG4gICAgd2lkdGg6IDgyLjk3ODcyJTtcbiAgICAqd2lkdGg6IDgyLjkyNTUzJTsgfVxuICAucm93LWZsdWlkIC5zcGFuMTEge1xuICAgIHdpZHRoOiA5MS40ODkzNiU7XG4gICAgKndpZHRoOiA5MS40MzYxNyU7IH1cbiAgLnJvdy1mbHVpZCAuc3BhbjEyIHtcbiAgICB3aWR0aDogMTAwLjAlO1xuICAgICp3aWR0aDogOTkuOTQ2ODElOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnZpc2libGUtcGhvbmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnZpc2libGUtdGFibGV0IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5oaWRkZW4tZGVza3RvcCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnZpc2libGUtcGhvbmUge1xuICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAuaGlkZGVuLXBob25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGRlbi1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnZpc2libGUtZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLnZpc2libGUtdGFibGV0IHtcbiAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLmhpZGRlbi10YWJsZXQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAuaGlkZGVuLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuICAudmlzaWJsZS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLm5hdi1jb2xsYXBzZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIC5wYWdlLWhlYWRlciBoMSBzbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7IH1cbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IH1cbiAgLmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1ncm91cCA+IGxhYmVsIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5mb3JtLWhvcml6b250YWwgLmNvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuZm9ybS1ob3Jpem9udGFsIC5jb250cm9sLWxpc3Qge1xuICAgIHBhZGRpbmctdG9wOiAwOyB9XG4gIC5mb3JtLWhvcml6b250YWwgLmZvcm0tYWN0aW9ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgLm1vZGFsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLm1vZGFsLmZhZGUuaW4ge1xuICAgICAgdG9wOiBhdXRvOyB9XG4gIC5tb2RhbC1oZWFkZXIgLmNsb3NlIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIG1hcmdpbjogLTEwcHg7IH1cbiAgLmNhcm91c2VsLWNhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGJvZHkge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gIC5uYXZiYXItZml4ZWQtdG9wLCAubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAgIG1hcmdpbi1yaWdodDogLTIwcHg7IH1cbiAgLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuZGwtaG9yaXpvbnRhbCBkdCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuZGwtaG9yaXpvbnRhbCBkZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmNvbnRhaW5lciwgLnVzeWQtcGFnZSB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLnJvdy1mbHVpZCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnJvdywgLnRodW1ibmFpbHMge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIFtjbGFzcyo9XCJzcGFuXCJdLCAucm93LWZsdWlkIFtjbGFzcyo9XCJzcGFuXCJdIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAuaW5wdXQtbGFyZ2UsIC5pbnB1dC14bGFyZ2UsIC5pbnB1dC14eGxhcmdlLCBpbnB1dFtjbGFzcyo9XCJzcGFuXCJdLCBzZWxlY3RbY2xhc3MqPVwic3BhblwiXSwgdGV4dGFyZWFbY2xhc3MqPVwic3BhblwiXSwgLnVuZWRpdGFibGUtaW5wdXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbXMtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5pbnB1dC1wcmVwZW5kIGlucHV0LCAuaW5wdXQtYXBwZW5kIGlucHV0LCAuaW5wdXQtcHJlcGVuZCBpbnB1dFtjbGFzcyo9XCJzcGFuXCJdLCAuaW5wdXQtYXBwZW5kIGlucHV0W2NsYXNzKj1cInNwYW5cIl0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bzsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICAqem9vbTogMTsgfVxuICAgIC5yb3c6YmVmb3JlLCAucm93OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC5yb3c6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgW2NsYXNzKj1cInNwYW5cIl0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4OyB9XG4gIC5jb250YWluZXIsIC51c3lkLXBhZ2UsIC5uYXZiYXItZml4ZWQtdG9wIC5jb250YWluZXIsIC5uYXZiYXItZml4ZWQtdG9wIC51c3lkLXBhZ2UsIC5uYXZiYXItZml4ZWQtYm90dG9tIC5jb250YWluZXIsIC5uYXZiYXItZml4ZWQtYm90dG9tIC51c3lkLXBhZ2Uge1xuICAgIHdpZHRoOiA3MjlweDsgfVxuICAuc3BhbjEge1xuICAgIHdpZHRoOiA0N3B4OyB9XG4gIC5zcGFuMiB7XG4gICAgd2lkdGg6IDEwOXB4OyB9XG4gIC5zcGFuMyB7XG4gICAgd2lkdGg6IDE3MXB4OyB9XG4gIC5zcGFuNCB7XG4gICAgd2lkdGg6IDIzM3B4OyB9XG4gIC5zcGFuNSB7XG4gICAgd2lkdGg6IDI5NXB4OyB9XG4gIC5zcGFuNiB7XG4gICAgd2lkdGg6IDM1N3B4OyB9XG4gIC5zcGFuNyB7XG4gICAgd2lkdGg6IDQxOXB4OyB9XG4gIC5zcGFuOCB7XG4gICAgd2lkdGg6IDQ4MXB4OyB9XG4gIC5zcGFuOSB7XG4gICAgd2lkdGg6IDU0M3B4OyB9XG4gIC5zcGFuMTAge1xuICAgIHdpZHRoOiA2MDVweDsgfVxuICAuc3BhbjExIHtcbiAgICB3aWR0aDogNjY3cHg7IH1cbiAgLnNwYW4xMiB7XG4gICAgd2lkdGg6IDcyOXB4OyB9XG4gIC5vZmZzZXQxIHtcbiAgICBtYXJnaW4tbGVmdDogNzdweDsgfVxuICAub2Zmc2V0MiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEzOXB4OyB9XG4gIC5vZmZzZXQzIHtcbiAgICBtYXJnaW4tbGVmdDogMjAxcHg7IH1cbiAgLm9mZnNldDQge1xuICAgIG1hcmdpbi1sZWZ0OiAyNjNweDsgfVxuICAub2Zmc2V0NSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMyNXB4OyB9XG4gIC5vZmZzZXQ2IHtcbiAgICBtYXJnaW4tbGVmdDogMzg3cHg7IH1cbiAgLm9mZnNldDcge1xuICAgIG1hcmdpbi1sZWZ0OiA0NDlweDsgfVxuICAub2Zmc2V0OCB7XG4gICAgbWFyZ2luLWxlZnQ6IDUxMXB4OyB9XG4gIC5vZmZzZXQ5IHtcbiAgICBtYXJnaW4tbGVmdDogNTczcHg7IH1cbiAgLm9mZnNldDEwIHtcbiAgICBtYXJnaW4tbGVmdDogNjM1cHg7IH1cbiAgLm9mZnNldDExIHtcbiAgICBtYXJnaW4tbGVmdDogNjk3cHg7IH1cbiAgLm9mZnNldDEyIHtcbiAgICBtYXJnaW4tbGVmdDogNzU5cHg7IH1cbiAgLnJvdy1mbHVpZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgKnpvb206IDE7IH1cbiAgICAucm93LWZsdWlkOmJlZm9yZSwgLnJvdy1mbHVpZDphZnRlciB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgICAucm93LWZsdWlkOmFmdGVyIHtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gICAgLnJvdy1mbHVpZCBbY2xhc3MqPVwic3BhblwiXSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMjhweDtcbiAgICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIC1tcy1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDIuNzYyNDMlO1xuICAgICAgKm1hcmdpbi1sZWZ0OiAyLjcwOTI0JTsgfVxuICAgIC5yb3ctZmx1aWQgW2NsYXNzKj1cInNwYW5cIl06Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuMSB7XG4gICAgICB3aWR0aDogNS44MDExJTtcbiAgICAgICp3aWR0aDogNS43NDc5MSU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuMiB7XG4gICAgICB3aWR0aDogMTQuMzY0NjQlO1xuICAgICAgKndpZHRoOiAxNC4zMTE0NSU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuMyB7XG4gICAgICB3aWR0aDogMjIuOTI4MTglO1xuICAgICAgKndpZHRoOiAyMi44NzQ5OSU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuNCB7XG4gICAgICB3aWR0aDogMzEuNDkxNzElO1xuICAgICAgKndpZHRoOiAzMS40Mzg1MiU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuNSB7XG4gICAgICB3aWR0aDogNDAuMDU1MjUlO1xuICAgICAgKndpZHRoOiA0MC4wMDIwNiU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuNiB7XG4gICAgICB3aWR0aDogNDguNjE4NzglO1xuICAgICAgKndpZHRoOiA0OC41NjU1OSU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuNyB7XG4gICAgICB3aWR0aDogNTcuMTgyMzIlO1xuICAgICAgKndpZHRoOiA1Ny4xMjkxMyU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuOCB7XG4gICAgICB3aWR0aDogNjUuNzQ1ODYlO1xuICAgICAgKndpZHRoOiA2NS42OTI2NiU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuOSB7XG4gICAgICB3aWR0aDogNzQuMzA5MzklO1xuICAgICAgKndpZHRoOiA3NC4yNTYyJTsgfVxuICAgIC5yb3ctZmx1aWQgLnNwYW4xMCB7XG4gICAgICB3aWR0aDogODIuODcyOTMlO1xuICAgICAgKndpZHRoOiA4Mi44MTk3NCU7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuMTEge1xuICAgICAgd2lkdGg6IDkxLjQzNjQ2JTtcbiAgICAgICp3aWR0aDogOTEuMzgzMjclOyB9XG4gICAgLnJvdy1mbHVpZCAuc3BhbjEyIHtcbiAgICAgIHdpZHRoOiAxMDAuMCU7XG4gICAgICAqd2lkdGg6IDk5Ljk0NjgxJTsgfVxuICBpbnB1dCwgdGV4dGFyZWEsIC51bmVkaXRhYmxlLWlucHV0IHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICBpbnB1dC5zcGFuMSwgdGV4dGFyZWEuc3BhbjEsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4xIHtcbiAgICB3aWR0aDogMzdweDsgfVxuICBpbnB1dC5zcGFuMiwgdGV4dGFyZWEuc3BhbjIsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4yIHtcbiAgICB3aWR0aDogOTlweDsgfVxuICBpbnB1dC5zcGFuMywgdGV4dGFyZWEuc3BhbjMsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4zIHtcbiAgICB3aWR0aDogMTYxcHg7IH1cbiAgaW5wdXQuc3BhbjQsIHRleHRhcmVhLnNwYW40LCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuNCB7XG4gICAgd2lkdGg6IDIyM3B4OyB9XG4gIGlucHV0LnNwYW41LCB0ZXh0YXJlYS5zcGFuNSwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjUge1xuICAgIHdpZHRoOiAyODVweDsgfVxuICBpbnB1dC5zcGFuNiwgdGV4dGFyZWEuc3BhbjYsIC51bmVkaXRhYmxlLWlucHV0LnNwYW42IHtcbiAgICB3aWR0aDogMzQ3cHg7IH1cbiAgaW5wdXQuc3BhbjcsIHRleHRhcmVhLnNwYW43LCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuNyB7XG4gICAgd2lkdGg6IDQwOXB4OyB9XG4gIGlucHV0LnNwYW44LCB0ZXh0YXJlYS5zcGFuOCwgLnVuZWRpdGFibGUtaW5wdXQuc3Bhbjgge1xuICAgIHdpZHRoOiA0NzFweDsgfVxuICBpbnB1dC5zcGFuOSwgdGV4dGFyZWEuc3BhbjksIC51bmVkaXRhYmxlLWlucHV0LnNwYW45IHtcbiAgICB3aWR0aDogNTMzcHg7IH1cbiAgaW5wdXQuc3BhbjEwLCB0ZXh0YXJlYS5zcGFuMTAsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4xMCB7XG4gICAgd2lkdGg6IDU5NXB4OyB9XG4gIGlucHV0LnNwYW4xMSwgdGV4dGFyZWEuc3BhbjExLCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuMTEge1xuICAgIHdpZHRoOiA2NTdweDsgfVxuICBpbnB1dC5zcGFuMTIsIHRleHRhcmVhLnNwYW4xMiwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjEyIHtcbiAgICB3aWR0aDogNzE5cHg7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgYm9keSB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLm5hdmJhci1maXhlZC10b3Age1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWlubmVyIHtcbiAgICBwYWRkaW5nOiA1cHg7IH1cbiAgLm5hdmJhciAuY29udGFpbmVyLCAubmF2YmFyIC51c3lkLXBhZ2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm5hdmJhciAuYnJhbmQge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogMCAwIDAgLTVweDsgfVxuICAubmF2LWNvbGxhcHNlIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAubmF2LWNvbGxhcHNlIC5uYXYge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbjogMCAwIDlweDsgfVxuICAubmF2LWNvbGxhcHNlIC5uYXYgPiBsaSB7XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgLm5hdi1jb2xsYXBzZSAubmF2ID4gbGkgPiBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7IH1cbiAgLm5hdi1jb2xsYXBzZSAubmF2ID4gLmRpdmlkZXItdmVydGljYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm5hdi1jb2xsYXBzZSAubmF2IC5uYXYtaGVhZGVyIHtcbiAgICBjb2xvcjogIzk5OTtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTsgfVxuICAubmF2LWNvbGxhcHNlIC5uYXYgPiBsaSA+IGEsIC5uYXYtY29sbGFwc2UgLmRyb3Bkb3duLW1lbnUgYSB7XG4gICAgcGFkZGluZzogNnB4IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gIC5uYXYtY29sbGFwc2UgLmJ0biB7XG4gICAgcGFkZGluZzogNHB4IDEwcHggNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4OyB9XG4gIC5uYXYtY29sbGFwc2UgLmRyb3Bkb3duLW1lbnUgbGkgKyBsaSBhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7IH1cbiAgLm5hdi1jb2xsYXBzZSAubmF2ID4gbGkgPiBhOmhvdmVyLCAubmF2LWNvbGxhcHNlIC5kcm9wZG93bi1tZW51IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMjI7IH1cbiAgLm5hdi1jb2xsYXBzZS5pbiAuYnRuLWdyb3VwIHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgcGFkZGluZzogMDsgfVxuICAubmF2LWNvbGxhcHNlIC5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXJnaW46IDAgMTVweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lOyB9XG4gIC5uYXYtY29sbGFwc2UgLmRyb3Bkb3duLW1lbnU6YmVmb3JlLCAubmF2LWNvbGxhcHNlIC5kcm9wZG93bi1tZW51OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5uYXYtY29sbGFwc2UgLmRyb3Bkb3duLW1lbnUgLmRpdmlkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm5hdi1jb2xsYXBzZSAubmF2YmFyLWZvcm0sIC5uYXYtY29sbGFwc2UgLm5hdmJhci1zZWFyY2gge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmc6IDlweCAxNXB4O1xuICAgIG1hcmdpbjogOXB4IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMyMjI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyMjI7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gIC5uYXZiYXIgLm5hdi1jb2xsYXBzZSAubmF2LnB1bGwtcmlnaHQge1xuICAgIGZsb2F0OiBub25lO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5uYXYtY29sbGFwc2UsIC5uYXYtY29sbGFwc2UuY29sbGFwc2Uge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAwOyB9XG4gIC5uYXZiYXIgLmJ0bi1uYXZiYXIge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5uYXZiYXItc3RhdGljIC5uYXZiYXItaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gIC5uYXYtY29sbGFwc2UuY29sbGFwc2Uge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gIC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAqem9vbTogMTsgfVxuICAgIC5yb3c6YmVmb3JlLCAucm93OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC5yb3c6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgW2NsYXNzKj1cInNwYW5cIl0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG4gIC5jb250YWluZXIsIC51c3lkLXBhZ2UsIC5uYXZiYXItZml4ZWQtdG9wIC5jb250YWluZXIsIC5uYXZiYXItZml4ZWQtdG9wIC51c3lkLXBhZ2UsIC5uYXZiYXItZml4ZWQtYm90dG9tIC5jb250YWluZXIsIC5uYXZiYXItZml4ZWQtYm90dG9tIC51c3lkLXBhZ2Uge1xuICAgIHdpZHRoOiAxMTgwcHg7IH1cbiAgLnNwYW4xIHtcbiAgICB3aWR0aDogODBweDsgfVxuICAuc3BhbjIge1xuICAgIHdpZHRoOiAxODBweDsgfVxuICAuc3BhbjMge1xuICAgIHdpZHRoOiAyODBweDsgfVxuICAuc3BhbjQge1xuICAgIHdpZHRoOiAzODBweDsgfVxuICAuc3BhbjUge1xuICAgIHdpZHRoOiA0ODBweDsgfVxuICAuc3BhbjYge1xuICAgIHdpZHRoOiA1ODBweDsgfVxuICAuc3Bhbjcge1xuICAgIHdpZHRoOiA2ODBweDsgfVxuICAuc3Bhbjgge1xuICAgIHdpZHRoOiA3ODBweDsgfVxuICAuc3Bhbjkge1xuICAgIHdpZHRoOiA4ODBweDsgfVxuICAuc3BhbjEwIHtcbiAgICB3aWR0aDogOTgwcHg7IH1cbiAgLnNwYW4xMSB7XG4gICAgd2lkdGg6IDEwODBweDsgfVxuICAuc3BhbjEyIHtcbiAgICB3aWR0aDogMTE4MHB4OyB9XG4gIC5vZmZzZXQxIHtcbiAgICBtYXJnaW4tbGVmdDogMTIwcHg7IH1cbiAgLm9mZnNldDIge1xuICAgIG1hcmdpbi1sZWZ0OiAyMjBweDsgfVxuICAub2Zmc2V0MyB7XG4gICAgbWFyZ2luLWxlZnQ6IDMyMHB4OyB9XG4gIC5vZmZzZXQ0IHtcbiAgICBtYXJnaW4tbGVmdDogNDIwcHg7IH1cbiAgLm9mZnNldDUge1xuICAgIG1hcmdpbi1sZWZ0OiA1MjBweDsgfVxuICAub2Zmc2V0NiB7XG4gICAgbWFyZ2luLWxlZnQ6IDYyMHB4OyB9XG4gIC5vZmZzZXQ3IHtcbiAgICBtYXJnaW4tbGVmdDogNzIwcHg7IH1cbiAgLm9mZnNldDgge1xuICAgIG1hcmdpbi1sZWZ0OiA4MjBweDsgfVxuICAub2Zmc2V0OSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkyMHB4OyB9XG4gIC5vZmZzZXQxMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwMjBweDsgfVxuICAub2Zmc2V0MTEge1xuICAgIG1hcmdpbi1sZWZ0OiAxMTIwcHg7IH1cbiAgLm9mZnNldDEyIHtcbiAgICBtYXJnaW4tbGVmdDogMTIyMHB4OyB9XG4gIC5yb3ctZmx1aWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgICp6b29tOiAxOyB9XG4gICAgLnJvdy1mbHVpZDpiZWZvcmUsIC5yb3ctZmx1aWQ6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjb250ZW50OiBcIlwiOyB9XG4gICAgLnJvdy1mbHVpZDphZnRlciB7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAgIC5yb3ctZmx1aWQgW2NsYXNzKj1cInNwYW5cIl0ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAtbXMtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyLjU2NDElO1xuICAgICAgKm1hcmdpbi1sZWZ0OiAyLjUxMDkxJTsgfVxuICAgIC5yb3ctZmx1aWQgW2NsYXNzKj1cInNwYW5cIl06Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAucm93LWZsdWlkIC5zcGFuMSB7XG4gICAgICB3aWR0aDogNS45ODI5MSU7XG4gICAgICAqd2lkdGg6IDUuOTI5NzElOyB9XG4gICAgLnJvdy1mbHVpZCAuc3BhbjIge1xuICAgICAgd2lkdGg6IDE0LjUyOTkxJTtcbiAgICAgICp3aWR0aDogMTQuNDc2NzIlOyB9XG4gICAgLnJvdy1mbHVpZCAuc3BhbjMge1xuICAgICAgd2lkdGg6IDIzLjA3NjkyJTtcbiAgICAgICp3aWR0aDogMjMuMDIzNzMlOyB9XG4gICAgLnJvdy1mbHVpZCAuc3BhbjQge1xuICAgICAgd2lkdGg6IDMxLjYyMzkzJTtcbiAgICAgICp3aWR0aDogMzEuNTcwNzQlOyB9XG4gICAgLnJvdy1mbHVpZCAuc3BhbjUge1xuICAgICAgd2lkdGg6IDQwLjE3MDk0JTtcbiAgICAgICp3aWR0aDogNDAuMTE3NzUlOyB9XG4gICAgLnJvdy1mbHVpZCAuc3BhbjYge1xuICAgICAgd2lkdGg6IDQ4LjcxNzk1JTtcbiAgICAgICp3aWR0aDogNDguNjY0NzYlOyB9XG4gICAgLnJvdy1mbHVpZCAuc3Bhbjcge1xuICAgICAgd2lkdGg6IDU3LjI2NDk2JTtcbiAgICAgICp3aWR0aDogNTcuMjExNzclOyB9XG4gICAgLnJvdy1mbHVpZCAuc3Bhbjgge1xuICAgICAgd2lkdGg6IDY1LjgxMTk3JTtcbiAgICAgICp3aWR0aDogNjUuNzU4NzclOyB9XG4gICAgLnJvdy1mbHVpZCAuc3Bhbjkge1xuICAgICAgd2lkdGg6IDc0LjM1ODk3JTtcbiAgICAgICp3aWR0aDogNzQuMzA1NzglOyB9XG4gICAgLnJvdy1mbHVpZCAuc3BhbjEwIHtcbiAgICAgIHdpZHRoOiA4Mi45MDU5OCU7XG4gICAgICAqd2lkdGg6IDgyLjg1Mjc5JTsgfVxuICAgIC5yb3ctZmx1aWQgLnNwYW4xMSB7XG4gICAgICB3aWR0aDogOTEuNDUyOTklO1xuICAgICAgKndpZHRoOiA5MS4zOTk4JTsgfVxuICAgIC5yb3ctZmx1aWQgLnNwYW4xMiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICp3aWR0aDogOTkuOTQ2ODElOyB9XG4gIGlucHV0LCB0ZXh0YXJlYSwgLnVuZWRpdGFibGUtaW5wdXQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIGlucHV0LnNwYW4xLCB0ZXh0YXJlYS5zcGFuMSwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjEge1xuICAgIHdpZHRoOiA3MHB4OyB9XG4gIGlucHV0LnNwYW4yLCB0ZXh0YXJlYS5zcGFuMiwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjIge1xuICAgIHdpZHRoOiAxNzBweDsgfVxuICBpbnB1dC5zcGFuMywgdGV4dGFyZWEuc3BhbjMsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4zIHtcbiAgICB3aWR0aDogMjcwcHg7IH1cbiAgaW5wdXQuc3BhbjQsIHRleHRhcmVhLnNwYW40LCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuNCB7XG4gICAgd2lkdGg6IDM3MHB4OyB9XG4gIGlucHV0LnNwYW41LCB0ZXh0YXJlYS5zcGFuNSwgLnVuZWRpdGFibGUtaW5wdXQuc3BhbjUge1xuICAgIHdpZHRoOiA0NzBweDsgfVxuICBpbnB1dC5zcGFuNiwgdGV4dGFyZWEuc3BhbjYsIC51bmVkaXRhYmxlLWlucHV0LnNwYW42IHtcbiAgICB3aWR0aDogNTcwcHg7IH1cbiAgaW5wdXQuc3BhbjcsIHRleHRhcmVhLnNwYW43LCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuNyB7XG4gICAgd2lkdGg6IDY3MHB4OyB9XG4gIGlucHV0LnNwYW44LCB0ZXh0YXJlYS5zcGFuOCwgLnVuZWRpdGFibGUtaW5wdXQuc3Bhbjgge1xuICAgIHdpZHRoOiA3NzBweDsgfVxuICBpbnB1dC5zcGFuOSwgdGV4dGFyZWEuc3BhbjksIC51bmVkaXRhYmxlLWlucHV0LnNwYW45IHtcbiAgICB3aWR0aDogODcwcHg7IH1cbiAgaW5wdXQuc3BhbjEwLCB0ZXh0YXJlYS5zcGFuMTAsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4xMCB7XG4gICAgd2lkdGg6IDk3MHB4OyB9XG4gIGlucHV0LnNwYW4xMSwgdGV4dGFyZWEuc3BhbjExLCAudW5lZGl0YWJsZS1pbnB1dC5zcGFuMTEge1xuICAgIHdpZHRoOiAxMDcwcHg7IH1cbiAgaW5wdXQuc3BhbjEyLCB0ZXh0YXJlYS5zcGFuMTIsIC51bmVkaXRhYmxlLWlucHV0LnNwYW4xMiB7XG4gICAgd2lkdGg6IDExNzBweDsgfVxuICAudGh1bWJuYWlscyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4OyB9XG4gIC50aHVtYm5haWxzID4gbGkge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG4gIC5yb3ctZmx1aWQgLnRodW1ibmFpbHMge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cblxuLypcblx0RGVmaW5lcyB0aGUgY29tbW9uIHN0cnVjdHVyYWwgZWxlbWVudHMgdG8gbW9zdCBwYWdlcywgYmFzZWQgcHJpbWFyaWx5IG9uIGJvb3RzdHJhcCBncmlkIHN0cnVjdHVyZS5cblxuXHRib2R5OiB3cmFwcyB0aGUgcHJpbWFyeSBjb250ZW50IHNlY3Rpb24gb2YgYW55IHBhZ2UgYW5kIGlzIGVzc2VudGlhbGx5XG5cdGEgZ3JpZCByb3cgY29udGFpbmVyLlxuXG5cdFx0bWVudS1hc2lkZTogY29udGFpbnMgdGhlIGxlZnQtaGFuZCBtZW51XG5cblx0XHRtYWluOiBjb250YWlucyB0aGUgY29udGVudCBib2R5XG5cblx0XHRmZWF0dXJlLWFzaWRlOiBjb250YWlucyBmZWF0dXJlIHBhbmVscyBldGNcbiovXG4udXN5ZC1jbGVhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBsaW5lLWhlaWdodDogMDtcbiAgaGVpZ2h0OiAwOyB9XG5cbi51c3lkLXN0YWNrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMTBweCAwOyB9XG5cbi51c3lkLWJvZHkge1xuICAqem9vbTogMTsgfVxuICAudXN5ZC1ib2R5OmJlZm9yZSwgLnVzeWQtYm9keTphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAudXN5ZC1ib2R5OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4udXN5ZC1uby1hc2lkZSAudXN5ZC1mZWF0dXJlLWFzaWRlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4udXN5ZC1uby1tZW51IC51c3lkLW1lbnUtYXNpZGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICBib2R5IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAudXN5ZC1ib2R5IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDsgfVxuICAudXN5ZC1tZW51LWFzaWRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC51c3lkLWdyaWQtd3JhcCB7XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgLnVzeWQtZ3JpZC13cmFwLWltZy1nYWxsZXJ5IHtcbiAgICBmbG9hdDogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC51c3lkLWJvZHkge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICAqem9vbTogMTsgfVxuICAgIC51c3lkLWJvZHk6YmVmb3JlLCAudXN5ZC1ib2R5OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC51c3lkLWJvZHk6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtZ3JpZC13cmFwIC51c3lkLWdyaWQtd3JhcC1pbWctZ2FsbGVyeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuICAudXN5ZC1ncmlkLXdyYXAsIC51c3lkLWlubGluZS13cmFwIHtcbiAgICBtYXJnaW4tbGVmdDogMTVweDsgfVxuICAudXN5ZC1ncmlkLXdyYXAtaW1nLWdhbGxlcnksIC51c3lkLWlubGluZS13cmFwIHtcbiAgICBtYXJnaW4tbGVmdDogMTVweDsgfVxuICAudXN5ZC1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgd2lkdGg6IDE3MXB4OyB9XG4gIC51c3lkLW1haW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIHdpZHRoOiAzNTdweDsgfVxuICAudXN5ZC1tYWluIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICB3aWR0aDogMzU3cHg7IH1cbiAgICAudXN5ZC1uby1tZW51IC51c3lkLW1haW4sIC51c3lkLW5vLWFzaWRlIC51c3lkLW1haW4ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIHdpZHRoOiA1NDNweDsgfVxuICAgIC51c3lkLW5vLW1lbnUudXN5ZC1uby1hc2lkZSAudXN5ZC1tYWluIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICB3aWR0aDogNzI5cHg7IH1cbiAgLnVzeWQtY29udGVudC1wYWdlIC51c3lkLW1haW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIHdpZHRoOiA1NDNweDsgfVxuICAgIC51c3lkLW5vLWFzaWRlIC51c3lkLWNvbnRlbnQtcGFnZSAudXN5ZC1tYWluIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICB3aWR0aDogNzI5cHg7IH1cbiAgLnVzeWQtY29udGVudC1wYWdlIC51c3lkLW1lbnUtYXNpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnVzeWQteHNtYWxsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICB3aWR0aDogMTcxcHg7IH1cbiAgLnVzeWQtc21hbGwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIHdpZHRoOiAzNTdweDsgfVxuICAudXN5ZC1sYXJnZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgd2lkdGg6IDU0M3B4OyB9XG4gIC51c3lkLXhsYXJnZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgd2lkdGg6IDcyOXB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTI5OXB4KSB7XG4gIC51c3lkLWJvZHkge1xuICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAqem9vbTogMTsgfVxuICAgIC51c3lkLWJvZHk6YmVmb3JlLCAudXN5ZC1ib2R5OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC51c3lkLWJvZHk6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtZ3JpZC13cmFwIC51c3lkLWdyaWQtd3JhcC1pbWctZ2FsbGVyeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuICAudXN5ZC1ncmlkLXdyYXAsIC51c3lkLWlubGluZS13cmFwIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAudXN5ZC1ncmlkLXdyYXAtaW1nLWdhbGxlcnksIC51c3lkLWlubGluZS13cmFwIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAudXN5ZC1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDIyMHB4OyB9XG4gIC51c3lkLW1haW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIHdpZHRoOiA0NjBweDsgfVxuICAgIC51c3lkLW5vLW1lbnUgLnVzeWQtbWFpbiwgLnVzeWQtbm8tYXNpZGUgLnVzeWQtbWFpbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgd2lkdGg6IDcwMHB4OyB9XG4gICAgLnVzeWQtbm8tbWVudS51c3lkLW5vLWFzaWRlIC51c3lkLW1haW4ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgIHdpZHRoOiA5NDBweDsgfVxuICAudXN5ZC14c21hbGwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIHdpZHRoOiAyMjBweDsgfVxuICAudXN5ZC1zbWFsbCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDQ2MHB4OyB9XG4gIC51c3lkLWxhcmdlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB3aWR0aDogNzAwcHg7IH1cbiAgLnVzeWQteGxhcmdlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB3aWR0aDogOTQwcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gIC51c3lkLWJvZHkge1xuICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAqem9vbTogMTsgfVxuICAgIC51c3lkLWJvZHk6YmVmb3JlLCAudXN5ZC1ib2R5OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC51c3lkLWJvZHk6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtZ3JpZC13cmFwIC51c3lkLWdyaWQtd3JhcC1pbWctZ2FsbGVyeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDBweDsgfVxuICAudXN5ZC1ncmlkLXdyYXAsIC51c3lkLWlubGluZS13cmFwIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAudXN5ZC1ncmlkLXdyYXAtaW1nLWdhbGxlcnksIC51c3lkLWlubGluZS13cmFwIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDsgfVxuICAudXN5ZC1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDI4MHB4OyB9XG4gIC51c3lkLW1haW4ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIHdpZHRoOiA1ODBweDsgfVxuICAgIC51c3lkLW5vLW1lbnUgLnVzeWQtbWFpbiwgLnVzeWQtbm8tYXNpZGUgLnVzeWQtbWFpbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgd2lkdGg6IDg4MHB4OyB9XG4gICAgLnVzeWQtbm8tbWVudS51c3lkLW5vLWFzaWRlIC51c3lkLW1haW4ge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgIHdpZHRoOiAxMTgwcHg7IH1cbiAgLnVzeWQteHNtYWxsIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB3aWR0aDogMjgwcHg7IH1cbiAgLnVzeWQtc21hbGwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIHdpZHRoOiA1ODBweDsgfVxuICAudXN5ZC1sYXJnZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDg4MHB4OyB9XG4gIC51c3lkLXhsYXJnZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDExODBweDsgfSB9XG5cbi5jbGVhcmZpeCB7XG4gICp6b29tOiAxOyB9XG4gIC5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudXN5ZC1ncmlkLXdyYXAtY2xlYXIuY3EtRWRpdGFibGUtZG9tICsgZGl2Om5vdCgudXN5ZC1ncmlkLXdyYXAtY2xlYXIpIHtcbiAgICBjbGVhcjogYm90aDsgfVxuICAudXN5ZC1ncmlkLXdyYXAge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAudXN5ZC1ncmlkLXdyYXAgPiAqW2NsYXNzKj1zcGFuXSwgLnVzeWQtZ3JpZC13cmFwIC51c3lkLXhzbWFsbCwgLnVzeWQtZ3JpZC13cmFwIC51c3lkLXNtYWxsLCAudXN5ZC1ncmlkLXdyYXAgLnVzeWQtbGFyZ2UsIC51c3lkLWdyaWQtd3JhcCAudXN5ZC14bGFyZ2Uge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBmbG9hdDogbm9uZTsgfVxuICAgIC51c3lkLWdyaWQtd3JhcCA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLnVzeWQtYXNpZGUgLnVzeWQtZ3JpZC13cmFwIHtcbiAgICAgIGZsb2F0OiBub25lOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLWdyaWQtd3JhcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfSB9XG5cbi51c3lkLWNvbHVtbiA+IC51c3lkLWdyaWQtd3JhcCwgLnVzeWQtY29sdW1uID4gLnVzeWQtaW5saW5lLXdyYXAge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgZmxvYXQ6IG5vbmU7IH1cblxuLnVzeWQtbm8td3JhcCB7XG4gICp6b29tOiAxOyB9XG4gIC51c3lkLW5vLXdyYXA6YmVmb3JlLCAudXN5ZC1uby13cmFwOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC51c3lkLW5vLXdyYXA6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi51c3lkLWxpbmUtYnJlYWsge1xuICAqem9vbTogMTtcbiAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtbGluZS1icmVhazpiZWZvcmUsIC51c3lkLWxpbmUtYnJlYWs6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLnVzeWQtbGluZS1icmVhazphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLnVzeWQtdWktc2Fucy1wYWRkaW5nIC51c3lkLXVpLXNhbnMtYm9yZGVyLCAudXN5ZC11aS1zYW5zLXBhZGRpbmcgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW5vbmUge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuICAudXN5ZC11aS1zYW5zLXBhZGRpbmcgLnVzeWQtdWktc2Fucy1ib3JkZXIgLnVzeWQtY2xpcHBpbmcgaW1nLCAudXN5ZC11aS1zYW5zLXBhZGRpbmcgLnVzeWQtdWktY29udGVudC1ncm91cC51c3lkLXVpLWVtcGhhc2lzLW5vbmUgLnVzeWQtY2xpcHBpbmcgaW1nIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5jcS13Y20tZWRpdC51c3lkLW5vLWFzaWRlIC51c3lkLWZlYXR1cmUtYXNpZGUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uY3Etd2NtLWVkaXQudXN5ZC1uby1tZW51IC51c3lkLW1lbnUtYXNpZGUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAuY3Etd2NtLWVkaXQudXN5ZC1uby1hc2lkZSAudXN5ZC1mZWF0dXJlLWFzaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMjAxcHg7XG4gICAgd2lkdGg6IDU0M3B4OyB9XG4gIC5jcS13Y20tZWRpdC51c3lkLW5vLW1lbnUgLnVzeWQtbWVudS1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgd2lkdGg6IDcyOXB4OyB9XG4gIC5jcS13Y20tZWRpdC51c3lkLW5vLWFzaWRlLnVzeWQtbm8tbWVudSAudXN5ZC1mZWF0dXJlLWFzaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICB3aWR0aDogNzI5cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjk5cHgpIHtcbiAgLmNxLXdjbS1lZGl0LnVzeWQtbm8tYXNpZGUgLnVzeWQtZmVhdHVyZS1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDI2MHB4O1xuICAgIHdpZHRoOiA3MDBweDsgfVxuICAuY3Etd2NtLWVkaXQudXN5ZC1uby1tZW51IC51c3lkLW1lbnUtYXNpZGUge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIHdpZHRoOiA5NDBweDsgfVxuICAuY3Etd2NtLWVkaXQudXN5ZC1uby1hc2lkZS51c3lkLW5vLW1lbnUgLnVzeWQtZmVhdHVyZS1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDk0MHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEzMDBweCkge1xuICAuY3Etd2NtLWVkaXQudXN5ZC1uby1hc2lkZSAudXN5ZC1mZWF0dXJlLWFzaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogMzIwcHg7XG4gICAgd2lkdGg6IDg4MHB4OyB9XG4gIC5jcS13Y20tZWRpdC51c3lkLW5vLW1lbnUgLnVzeWQtbWVudS1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDExODBweDsgfVxuICAuY3Etd2NtLWVkaXQudXN5ZC1uby1hc2lkZS51c3lkLW5vLW1lbnUgLnVzeWQtZmVhdHVyZS1hc2lkZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgd2lkdGg6IDExODBweDsgfSB9XG5cbi5jbGVhcmZpeCB7XG4gICp6b29tOiAxOyB9XG4gIC5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLWxvY2FsLWhlYWRpbmcge1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmc6IDI2cHggMCAxMHB4IDA7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZTY0NjI2OyB9XG4gIC51c3lkLWxvY2FsLWhlYWRpbmcgYTpsaW5rLFxuICAudXN5ZC1sb2NhbC1oZWFkaW5nIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICNlNjQ2MjY7IH1cblxuLnVzeWQtaG9tZS1wYWdlIC51c3lkLWxvY2FsLWhlYWRpbmcge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi51c3lkLWhvbWUtcGFnZSAudXN5ZC1ob3Jpem9udGFsLWxpbmUge1xuICBtYXJnaW46IDIwcHggMDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2U2NDYyNjtcbiAgYmFja2dyb3VuZDogI2U2NDYyNjsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTc5cHgpIHtcbiAgLnVzeWQtbG9jYWwtaGVhZGluZyB7XG4gICAgcGFkZGluZzogMCAwIDEwcHg7XG4gICAgYm9yZGVyOiBub25lOyB9XG4gIC51c3lkLXNraW5uZWQtcGFnZSAudXN5ZC10YWJzID4gaDIge1xuICAgIHRvcDogLTYwcHg7IH1cbiAgLnVzeWQtc2tpbm5lZC1wYWdlIC51c3lkLXVpLWNvbW1vbi1uYXYge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnVzeWQtc2tpbm5lZC1wYWdlIC51c3lkLWxvY2FsLWhlYWRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH0gfVxuXG4udXN5ZC1sb2NhbC1tYWluIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YxRjFGMTsgfVxuICAudXN5ZC1sb2NhbC1tYWluIC51c3lkLWhvcml6b250YWwtbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICNlNjQ2MjY7IH1cbiAgLnVzeWQtbG9jYWwtbWFpbiAudXN5ZC11aS1tb3JlLWxpbmsge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAudXN5ZC1sb2NhbC1tYWluIC51c3lkLXVpLW1vcmUtbGluayBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLWxvY2FsLWhlYWRpbmcge1xuICAgIHBhZGRpbmctbGVmdDogMTlweDsgfVxuICAudXN5ZC1sb2NhbC1tYWluIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC1sb2NhbC1tYWluIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIG1hcmdpbjogMCAtMjBweCAyMHB4O1xuICAgIC8qLnVzeWQteHNtYWxsIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDMsICRncmlkQ29sdW1uV2lkdGhUYWJsZXQsICRncmlkR3V0dGVyV2lkdGhUYWJsZXQpIC0gKCRncmlkR3V0dGVyV2lkdGhUYWJsZXQgKiAyKTtcblx0XHR9XG5cblx0XHQudXN5ZC1zbWFsbCB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCg2LCAkZ3JpZENvbHVtbldpZHRoVGFibGV0LCAkZ3JpZEd1dHRlcldpZHRoVGFibGV0KSAtICgkZ3JpZEd1dHRlcldpZHRoVGFibGV0ICogMik7XG5cdFx0fVxuXG5cdFx0LnVzeWQtbGFyZ2Uge1xuXHRcdFx0d2lkdGg6IHNwYW4td2lkdGgoOSwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCkgLSAoJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCAqIDIpO1xuXHRcdH1cblxuXHRcdC51c3lkLXhsYXJnZSB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCgxMiwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCkgLSAoJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCAqIDIpO1xuXHRcdH0qLyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1heC13aWR0aDogMTI5OXB4KSB7XG4gIC51c3lkLWxvY2FsLW1haW4ge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgbWFyZ2luOiAwIC0yMHB4IDIwcHg7XG4gICAgLyoudXN5ZC14c21hbGwge1xuXHRcdFx0d2lkdGg6IHNwYW4td2lkdGgoMywgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCkgLSAoJGdyaWRHdXR0ZXJXaWR0aCAqIDIpO1xuXHRcdH1cblxuXHRcdC51c3lkLXNtYWxsIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDYsICRncmlkQ29sdW1uV2lkdGgsICRncmlkR3V0dGVyV2lkdGgpIC0gKCRncmlkR3V0dGVyV2lkdGggKiAyKTtcblx0XHR9XG5cblx0XHQudXN5ZC1sYXJnZSB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCg5LCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKSAtICgkZ3JpZEd1dHRlcldpZHRoICogMik7XG5cdFx0fVxuXG5cdFx0LnVzeWQteGxhcmdlIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDEyLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKSAtICgkZ3JpZEd1dHRlcldpZHRoICogMik7XG5cdFx0fSovIH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gIC51c3lkLWxvY2FsLW1haW4ge1xuICAgIHBhZGRpbmc6IDQwcHggNDBweCAyMHB4O1xuICAgIG1hcmdpbjogMCAtNDBweCA1NHB4O1xuICAgIC8qLnVzeWQteHNtYWxsIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDMsICRncmlkQ29sdW1uV2lkdGhMYXJnZSwgJGdyaWRHdXR0ZXJXaWR0aExhcmdlKSAtICgkZ3JpZEd1dHRlcldpZHRoTGFyZ2UgKiAyKTtcblx0XHR9XG5cblx0XHQudXN5ZC1zbWFsbCB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCg2LCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSkgLSAoJGdyaWRHdXR0ZXJXaWR0aExhcmdlICogMik7XG5cdFx0fVxuXG5cdFx0LnVzeWQtbGFyZ2Uge1xuXHRcdFx0d2lkdGg6IHNwYW4td2lkdGgoOSwgJGdyaWRDb2x1bW5XaWR0aExhcmdlLCAkZ3JpZEd1dHRlcldpZHRoTGFyZ2UpIC0gKCRncmlkR3V0dGVyV2lkdGhMYXJnZSAqIDIpO1xuXHRcdH1cblxuXHRcdC51c3lkLXhsYXJnZSB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCgxMiwgJGdyaWRDb2x1bW5XaWR0aExhcmdlLCAkZ3JpZEd1dHRlcldpZHRoTGFyZ2UpIC0gKCRncmlkR3V0dGVyV2lkdGhMYXJnZSAqIDIpO1xuXHRcdH0qLyB9IH1cblxuLmNsZWFyZml4IHtcbiAgKnpvb206IDE7IH1cbiAgLmNsZWFyZml4OmJlZm9yZSwgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtY29sdW1ucyB7XG4gICp6b29tOiAxO1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLnVzeWQtY29sdW1uczpiZWZvcmUsIC51c3lkLWNvbHVtbnM6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLnVzeWQtY29sdW1uczphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtY29sdW1ucyAudXN5ZC1jb2x1bW4ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gICAgLnVzeWQtY29sdW1ucyAudXN5ZC1jb2x1bW4udXN5ZC1jb2x1bW4tbGFzdCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC51c3lkLWNvbHVtbnMudXN5ZC1jb2x1bW5zLTIgLnVzeWQtY29sdW1uIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIC51c3lkLWNvbHVtbnMudXN5ZC1jb2x1bW5zLTMgLnVzeWQtY29sdW1uIHtcbiAgICB3aWR0aDogMzMuMyU7IH1cbiAgLnVzeWQtY29sdW1ucy51c3lkLWNvbHVtbnMtNCAudXN5ZC1jb2x1bW4ge1xuICAgIHdpZHRoOiAyNSU7IH1cbiAgLnVzeWQtY29sdW1ucy51c3lkLWNvbHVtbnMtNSAudXN5ZC1jb2x1bW4ge1xuICAgIHdpZHRoOiAyMCU7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLWNvbHVtbnMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gICAgLnVzeWQtY29sdW1ucyA+IC51c3lkLWNvbHVtbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbiAgICAudXN5ZC1jb2x1bW5zLnVzeWQtY29sdW1ucy0yIC51c3lkLWNvbHVtbiB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC51c3lkLWNvbHVtbnMge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gICAgLnVzeWQtY29sdW1ucyAudXN5ZC1jb2x1bW5zLTIgLnVzeWQtY29sdW1uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnVzeWQtY29sdW1ucyA+IC51c3lkLWNvbHVtbiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjk5cHgpIHtcbiAgLnVzeWQtY29sdW1ucyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgICAudXN5ZC1jb2x1bW5zID4gLnVzeWQtY29sdW1uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMjBweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtYXgtd2lkdGg6IDEyOTlweCkge1xuICAudXN5ZC1jb2x1bW5zIHtcbiAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgIC51c3lkLWNvbHVtbnMgPiAudXN5ZC1jb2x1bW4ge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLmNsZWFyZml4IHtcbiAgKnpvb206IDE7IH1cbiAgLmNsZWFyZml4OmJlZm9yZSwgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLypcbk9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0c1xuXG5TdHlsZWd1aWRlIDEuMVxuKi9cbnVsLCBvbCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICB1bCBsaSwgb2wgbGkge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW46IDAuNzVlbSAwOyB9XG5cbi8qXG5TdGFuZGFyZCB1bm9yZGVyZWQgY29udGVudCBsaXN0cyB3aXRoIDMgbGV2ZWxzIG9mIHN1cHBvcnRlZCBuZXN0aW5nXG4qL1xuLnVzeWQtdWktc3RhbmRhcmQtbGlzdCwgLnVzeWQtYm9keS1jb250ZW50IHVsLCAudXN5ZC1hc2lkZS1jb250ZW50IHVsIHtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAudXN5ZC11aS1zdGFuZGFyZC1saXN0ID4gbGksIC51c3lkLWJvZHktY29udGVudCB1bCA+IGxpLCAudXN5ZC1hc2lkZS1jb250ZW50IHVsID4gbGkge1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9hc3NldHMvaW1nL25kYXNoLXJlZC5wbmcpIG5vLXJlcGVhdCA2cHggM3B4O1xuICAgIHBhZGRpbmctbGVmdDogMjVweDsgfVxuICAudXN5ZC11aS1zdGFuZGFyZC1saXN0IHVsID4gbGksIC51c3lkLWJvZHktY29udGVudCB1bCB1bCA+IGxpLCAudXN5ZC1hc2lkZS1jb250ZW50IHVsIHVsID4gbGkge1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9hc3NldHMvaW1nL2Rhc2gtcmVkLnBuZykgbm8tcmVwZWF0IDExcHggM3B4O1xuICAgIHBhZGRpbmctbGVmdDogMjVweDsgfVxuICAudXN5ZC11aS1zdGFuZGFyZC1saXN0IHVsIHVsID4gbGksIC51c3lkLWJvZHktY29udGVudCB1bCB1bCB1bCA+IGxpLCAudXN5ZC1hc2lkZS1jb250ZW50IHVsIHVsIHVsID4gbGkge1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9hc3NldHMvaW1nL2RvdC1yZWQucG5nKSBuby1yZXBlYXQgMTFweCAzcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4OyB9XG4gIC51c3lkLXVpLXN0YW5kYXJkLWxpc3QgPiB1bCwgLnVzeWQtYm9keS1jb250ZW50IHVsID4gdWwsIC51c3lkLWFzaWRlLWNvbnRlbnQgdWwgPiB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIuM2VtOyB9XG4gICAgLnVzeWQtdWktc3RhbmRhcmQtbGlzdCA+IHVsID4gdWwsIC51c3lkLWJvZHktY29udGVudCB1bCA+IHVsID4gdWwsIC51c3lkLWFzaWRlLWNvbnRlbnQgdWwgPiB1bCA+IHVsIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyLjNlbTsgfVxuXG4udXN5ZC11aS1vcmRlcmVkLWxpc3QsIC51c3lkLWJvZHktY29udGVudCBvbCwgLnVzeWQtYXNpZGUtY29udGVudCBvbCwgLnVzeWQtY2xhdXNlLWxpc3QsIC51c3lkLWNsYXVzZS1saXN0IG9sLCAudXN5ZC1jbGF1c2UtbGlzdCBvbCBvbCwgLnVzeWQtY2xhdXNlLWxpc3Qgb2wgb2wgb2wge1xuICBsaXN0LXN0eWxlOiBkZWNpbWFsIG91dHNpZGU7XG4gIG1hcmdpbi1sZWZ0OiAyLjVlbTsgfVxuICAudXN5ZC11aS1vcmRlcmVkLWxpc3QudXN5ZC1hbHBoYS1saXN0LCAudXN5ZC1ib2R5LWNvbnRlbnQgb2wudXN5ZC1hbHBoYS1saXN0LCAudXN5ZC1hc2lkZS1jb250ZW50IG9sLnVzeWQtYWxwaGEtbGlzdCwgLnVzeWQtYWxwaGEtbGlzdC51c3lkLWNsYXVzZS1saXN0LCAudXN5ZC1jbGF1c2UtbGlzdCBvbCwgLnVzeWQtY2xhdXNlLWxpc3Qgb2wgb2wsIC51c3lkLWNsYXVzZS1saXN0IG9sIG9sIG9sIHtcbiAgICBsaXN0LXN0eWxlOiBsb3dlci1hbHBoYSBvdXRzaWRlOyB9XG4gIC51c3lkLXVpLW9yZGVyZWQtbGlzdC51c3lkLXJvbWFuLWxpc3QsIC51c3lkLWJvZHktY29udGVudCBvbC51c3lkLXJvbWFuLWxpc3QsIC51c3lkLWFzaWRlLWNvbnRlbnQgb2wudXN5ZC1yb21hbi1saXN0LCAudXN5ZC1yb21hbi1saXN0LnVzeWQtY2xhdXNlLWxpc3QsIC51c3lkLWNsYXVzZS1saXN0IG9sLnVzeWQtcm9tYW4tbGlzdCwgLnVzeWQtY2xhdXNlLWxpc3Qgb2wgb2wsIC51c3lkLWNsYXVzZS1saXN0IG9sIG9sIG9sIHtcbiAgICBsaXN0LXN0eWxlOiBsb3dlci1yb21hbiBvdXRzaWRlOyB9XG4gIC51c3lkLXVpLW9yZGVyZWQtbGlzdC51c3lkLXVwcGVyLWFscGhhLWxpc3QsIC51c3lkLWJvZHktY29udGVudCBvbC51c3lkLXVwcGVyLWFscGhhLWxpc3QsIC51c3lkLWFzaWRlLWNvbnRlbnQgb2wudXN5ZC11cHBlci1hbHBoYS1saXN0LCAudXN5ZC11cHBlci1hbHBoYS1saXN0LnVzeWQtY2xhdXNlLWxpc3QsIC51c3lkLWNsYXVzZS1saXN0IG9sLnVzeWQtdXBwZXItYWxwaGEtbGlzdCwgLnVzeWQtY2xhdXNlLWxpc3Qgb2wgb2wgb2wge1xuICAgIGxpc3Qtc3R5bGU6IHVwcGVyLWFscGhhIG91dHNpZGU7IH1cbiAgLnVzeWQtdWktb3JkZXJlZC1saXN0LnVzeWQtdXBwZXItcm9tYW4tbGlzdCwgLnVzeWQtYm9keS1jb250ZW50IG9sLnVzeWQtdXBwZXItcm9tYW4tbGlzdCwgLnVzeWQtYXNpZGUtY29udGVudCBvbC51c3lkLXVwcGVyLXJvbWFuLWxpc3QsIC51c3lkLXVwcGVyLXJvbWFuLWxpc3QudXN5ZC1jbGF1c2UtbGlzdCwgLnVzeWQtY2xhdXNlLWxpc3Qgb2wudXN5ZC11cHBlci1yb21hbi1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiB1cHBlci1yb21hbiBvdXRzaWRlOyB9XG4gIC51c3lkLXVpLW9yZGVyZWQtbGlzdCA+IGxpLCAudXN5ZC1ib2R5LWNvbnRlbnQgb2wgPiBsaSwgLnVzeWQtYXNpZGUtY29udGVudCBvbCA+IGxpLCAudXN5ZC1jbGF1c2UtbGlzdCA+IGxpLCAudXN5ZC1jbGF1c2UtbGlzdCBvbCA+IGxpLCAudXN5ZC1jbGF1c2UtbGlzdCBvbCBvbCA+IGxpLCAudXN5ZC1jbGF1c2UtbGlzdCBvbCBvbCBvbCA+IGxpIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLypcbkxpc3Qgb2YgdW5vcmRlcmVkIGxpbmtzXG4qL1xuLnVzeWQtbGluay1saXN0ID4gbGkge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudXN5ZC1saW5rLWxpc3QgPiBsaTpiZWZvcmUsIC51c3lkLWxpbmstbGlzdCA+IGxpID4gLmllLWJlZm9yZSB7XG4gICAgY29udGVudDogXCLuopRcIjtcbiAgICBmb250LWZhbWlseTogZm9udGVsbG87XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgKnpvb206IGV4cHJlc3Npb24oIHRoaXMucnVudGltZVN0eWxlWyd6b29tJ10gPSAnMScsIHRoaXMuaW5uZXJIVE1MID0gJyYjeGU4OTQ7Jm5ic3A7Jyk7XG4gICAgZm9udC1zaXplOiA4cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAzcHg7XG4gICAgY29sb3I6ICNlNjQ2MjY7IH1cbiAgLnVzeWQtbGluay1saXN0ID4gbGkge1xuICAgIC8qIDo6YmVmb3JlIHBvbHlmaWxsIC0gY3JlYXRlcyA8aSBjbGFzcz1cImllLWJlZm9yZVwiPjwvaT4gKi9cbiAgICB6b29tOiBleHByZXNzaW9udGhpcy5ydW50aW1lU3R5bGUuem9vbT1cIjFcIix0aGlzLmluc2VydEJlZm9yZSggZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlcIiksIHRoaXMuZmlyc3RDaGlsZCApLmNsYXNzTmFtZT1cImllLWJlZm9yZVwiOyB9XG5cbi51c3lkLWljb24tbGlzdCA+IGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4udXN5ZC1pbmxpbmUtbGlzdCA+IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuXG4udXN5ZC1pbmxpbmUtbGlzdC5wdWxsLXJpZ2h0ID4gbGkge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLnVzeWQtaW5saW5lLWxpc3QudXN5ZC1pY29uLWxpc3QgPiBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC11aS1jb21wYWN0LWxpc3QgbGkge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDAgMCAwIDMwcHg7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDE0NGRwaSkge1xuICAudXN5ZC11aS1zdGFuZGFyZC1saXN0ID4gbGksIC51c3lkLWJvZHktY29udGVudCB1bCA+IGxpLCAudXN5ZC1hc2lkZS1jb250ZW50IHVsID4gbGkge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9hc3NldHMvaW1nL25kYXNoLXJlZEAyeC5wbmcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDsgfVxuICAgIC51c3lkLXVpLXN0YW5kYXJkLWxpc3QgPiBsaSB1bCA+IGxpLCAudXN5ZC1ib2R5LWNvbnRlbnQgdWwgPiBsaSB1bCA+IGxpLCAudXN5ZC1hc2lkZS1jb250ZW50IHVsID4gbGkgdWwgPiBsaSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYXNzZXRzL2ltZy9kYXNoLXJlZEAyeC5wbmcpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA4cHggOHB4OyB9XG4gICAgLnVzeWQtdWktc3RhbmRhcmQtbGlzdCA+IGxpIHVsIHVsID4gbGksIC51c3lkLWJvZHktY29udGVudCB1bCA+IGxpIHVsIHVsID4gbGksIC51c3lkLWFzaWRlLWNvbnRlbnQgdWwgPiBsaSB1bCB1bCA+IGxpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9hc3NldHMvaW1nL2RvdC1yZWRAMngucG5nKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDsgfSB9XG5cbi8qXG5Db2x1bW4gc3VwcG9ydCBmb3IgdmFyaW91cyB0eXBlcyBvZiBsaXN0XG4qL1xuLnVzeWQtbGlzdC0yLWNvbHVtbnMsIC51c3lkLWxpc3QtMy1jb2x1bW5zLCAudXN5ZC1saXN0LTQtY29sdW1ucyB7XG4gICp6b29tOiAxOyB9XG4gIC51c3lkLWxpc3QtMi1jb2x1bW5zOmJlZm9yZSwgLnVzeWQtbGlzdC0yLWNvbHVtbnM6YWZ0ZXIsIC51c3lkLWxpc3QtMy1jb2x1bW5zOmJlZm9yZSwgLnVzeWQtbGlzdC0zLWNvbHVtbnM6YWZ0ZXIsIC51c3lkLWxpc3QtNC1jb2x1bW5zOmJlZm9yZSwgLnVzeWQtbGlzdC00LWNvbHVtbnM6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLnVzeWQtbGlzdC0yLWNvbHVtbnM6YWZ0ZXIsIC51c3lkLWxpc3QtMy1jb2x1bW5zOmFmdGVyLCAudXN5ZC1saXN0LTQtY29sdW1uczphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtbGlzdC0yLWNvbHVtbnMgPiBsaSwgLnVzeWQtbGlzdC0zLWNvbHVtbnMgPiBsaSwgLnVzeWQtbGlzdC00LWNvbHVtbnMgPiBsaSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG5cbi51c3lkLWxpc3QtMi1jb2x1bW5zID4gbGkge1xuICB3aWR0aDogNTAlOyB9XG4gIC51c3lkLWxpc3QtMi1jb2x1bW5zID4gbGk6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgIGNsZWFyOiBsZWZ0OyB9XG5cbi51c3lkLWxpc3QtMy1jb2x1bW5zID4gbGkge1xuICB3aWR0aDogMzMuMyU7IH1cbiAgLnVzeWQtbGlzdC0zLWNvbHVtbnMgPiBsaTpudGgtY2hpbGQoM24gKyAxKSB7XG4gICAgY2xlYXI6IGxlZnQ7IH1cblxuLnVzeWQtbGlzdC00LWNvbHVtbnMgPiBsaSB7XG4gIHdpZHRoOiAyNSU7IH1cbiAgLnVzeWQtbGlzdC00LWNvbHVtbnMgPiBsaTpudGgtY2hpbGQoNG4gKyAxKSB7XG4gICAgY2xlYXI6IGxlZnQ7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtbGFiZWxsZWQtbGlzdCwgZGwge1xuICBmb250LXNpemU6IDEycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuZHQsIC51c3lkLWl0ZW0tbGFiZWwge1xuICBjb2xvcjogIzc1NzU3NTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBjbGVhcjogbGVmdDsgfVxuICBkdDpmaXJzdC1jaGlsZCwgLnVzeWQtaXRlbS1sYWJlbDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG5kZCwgLnVzeWQtaXRlbS1kZXRhaWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXRvcDogNXB4OyB9XG4gIGR0OmZpcnN0LWNoaWxkICsgZGQsIC51c3lkLWl0ZW0tbGFiZWw6Zmlyc3QtY2hpbGQgKyBkZCwgZHQ6Zmlyc3QtY2hpbGQgKyAudXN5ZC1pdGVtLWRldGFpbCwgLnVzeWQtaXRlbS1sYWJlbDpmaXJzdC1jaGlsZCArIC51c3lkLWl0ZW0tZGV0YWlsIHtcbiAgICBtYXJnaW4tdG9wOiAwOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudXN5ZC1sYWJlbGxlZC1saXN0IGR0LCAudXN5ZC1sYWJlbGxlZC1saXN0IC51c3lkLWl0ZW0tbGFiZWwsIGRsIGR0LCBkbCAudXN5ZC1pdGVtLWxhYmVsIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBjbGVhcjogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51c3lkLWxhYmVsbGVkLWxpc3QgZGQsIC51c3lkLWxhYmVsbGVkLWxpc3QgLnVzeWQtaXRlbS1kZXRhaWwsIGRsIGRkLCBkbCAudXN5ZC1pdGVtLWRldGFpbCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLXVpLXRpdGxlLWhpZ2hsaWdodGVkIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4udXN5ZC11aS1oaWdobGlnaHQge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4udXN5ZC11aS1yZXN1bHQtbGlzdCB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4udXN5ZC11aS1yZXN1bHQtaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDNlbTsgfVxuICAudXN5ZC11aS1yZXN1bHQtaXRlbSBoMyB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAudXN5ZC11aS1yZXN1bHQtaXRlbS51c3lkLXVpLWFsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuXG4vKlxuVXNlZCB0byBtYXJrIHVwIGFuIGl0ZW0gb2YgbWV0YWRhdGEgc3VjaCBhcyB0aGUgZGF0ZSBvZiBhbiBldmVudCBvciB0aGUgbG9jYXRpb24uIFRleHQgY291bGQgcG90ZW50aWFsbHkgYmUgYWNjb21wYW5pZWQgYnkgYW4gaWNvbi5cbiovXG4udXN5ZC1tZXRhZGF0YSB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM3MzczNzM7IH1cbiAgLnVzeWQtbWV0YWRhdGEgYTpsaW5rLCAudXN5ZC1tZXRhZGF0YSBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjNzM3MzczOyB9XG4gIC51c3lkLW1ldGFkYXRhIGE6YWN0aXZlIHtcbiAgICBjb2xvcjogIzQwNDA0MDsgfVxuXG4udXN5ZC11aS1yZXN1bHQtbWV0YWRhdGEge1xuICBtYXJnaW46IDA7IH1cblxuLnVzeWQtdWktcmVzdWx0LXVybCB7XG4gIGNvbG9yOiAjNEI5NDUwOyB9XG4gIC51c3lkLXVpLXJlc3VsdC11cmwgYSB7XG4gICAgY29sb3I6ICM0Qjk0NTA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnVzeWQtdWktcmVzdWx0LXVybCBhOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgLnVzeWQtdWktcmVzdWx0LXJvdyB7XG4gICAgbWFyZ2luOiAwOyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtdWktbWFzayB7XG4gIHotaW5kZXg6IDUwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7IH1cblxuLnVzeWQtdWktdW5tYXNrZWQsIC51c3lkLXVpLW1hc2std2luZG93IHtcbiAgei1pbmRleDogNTAwOyB9XG5cbi51c3lkLXVpLW1hc2std2luZG93IHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTAwcHggIzAwMDtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMTAwcHggIzAwMDtcbiAgYm94LXNoYWRvdzogMCAwIDEwMHB4ICMwMDA7XG4gIGJhY2tncm91bmQ6IHdoaXRlOyB9XG5cbi51c3lkLXVpLW1hc2std2luZG93LXRpdGxlIHtcbiAgbWFyZ2luOiAwIDAgMWVtIDA7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtbWVudSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDVweDsgfVxuICAudXN5ZC1tZW51IGE6bGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBibGFjazsgfVxuICAudXN5ZC1tZW51IGEucGFnZS1oZWFkaW5nIHtcbiAgICBwYWRkaW5nOiA1cHggMHB4IDVweCAwcHg7IH1cbiAgLnVzeWQtbWVudSBhOmhvdmVyLCAudXN5ZC1tZW51IGE6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLnVzeWQtbWVudSBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogYmxhY2s7IH1cbiAgLnVzeWQtbWVudSBhOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi51c3lkLW1lbnUgZGl2LnVzeWQtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNzsgfVxuXG4udXN5ZC1tZW51IGxpIHtcbiAgYm9yZGVyLWNvbG9yOiAjZTZlNmU2O1xuICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLnVzeWQtbWVudSBsaS51c3lkLWFjdGl2ZSA+IGEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7IH1cbiAgICAudXN5ZC1tZW51IGxpLnVzeWQtYWN0aXZlID4gYTphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgLnVzeWQtbmF2LW1lbnUge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgICAudXN5ZC1uYXYtbWVudSBsaSA+IGEge1xuICAgICAgcGFkZGluZzogNXB4IDI1cHggNXB4IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vYXNzZXRzL2ltZy9hcnJvdy1yZWQucG5nKSBuby1yZXBlYXQgNXB4IDhweDsgfSB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSB7XG4gICAgICAudXN5ZC1uYXYtbWVudSBsaSA+IGEge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYXNzZXRzL2ltZy9hcnJvdy1yZWRAMngucG5nKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA4cHggOHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgLnVzeWQtbmF2LW1lbnUgbGkgPiAudXN5ZC1hY3RpdmF0b3Ige1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDYyNjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIC1tcy1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAtby1ib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogMS4xZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICAgICAgLyogSUU4ICovXG4gICAgICAqbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAvKiBJRTcgKi9cbiAgICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogLTIwcHggNXB4IDAgMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAyNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAudXN5ZC1uYXYtbWVudSBsaSA+IC51c3lkLWFjdGl2YXRvcjpub3QoW2R1bW15XSkge1xuICAgICAgICBsaW5lLWhlaWdodDogYXV0bztcbiAgICAgICAgLyogTk9UIElFNy9JRTggKi8gfVxuICAgICAgLnVzeWQtbmF2LW1lbnUgbGkgPiAudXN5ZC1hY3RpdmF0b3IgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAudXN5ZC1uYXYtbWVudSBsaSA+IC51c3lkLWFjdGl2YXRvciBzcGFuIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICAgIC51c3lkLW5hdi1tZW51IGxpID4gLnVzeWQtYWN0aXZhdG9yOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogLW93Zy1saW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCNlYTYxNDYsICNkMDM3MTgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KCNlYTYxNDYsICNkMDM3MTgpO1xuICAgICAgICAtcGllLWJhY2tncm91bmQ6IC1waWUtbGluZWFyLWdyYWRpZW50KCNlYTYxNDYsICNkMDM3MTgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlNjQ2MjZcXDk7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIC51c3lkLW5hdi1tZW51IGxpID4gLnVzeWQtYWN0aXZhdG9yOmFjdGl2ZSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIC51c3lkLW5hdi1tZW51IGxpID4gLnVzeWQtYWN0aXZhdG9yOnZpc2l0ZWQsIC51c3lkLW5hdi1tZW51IGxpID4gLnVzeWQtYWN0aXZhdG9yOmxpbmsge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLnVzeWQtbmF2LW1lbnUgbGkgPiAudXN5ZC1hY3RpdmF0b3JbZGlzYWJsZWRdIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGNvbG9yOiAjNzU3NTc1O1xuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7IH1cbiAgICAgIC51c3lkLW5hdi1tZW51IGxpID4gLnVzeWQtYWN0aXZhdG9yOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnVzeWQtbmF2LW1lbnUgLnVzeWQtbmF2LXN1Ym1lbnUgdWwge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVzIGZhbHNlO1xuICAgICAgLW1vei10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXMgZmFsc2UgZmFsc2U7XG4gICAgICAtby10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXMgZmFsc2UgZmFsc2U7XG4gICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNXM7IH1cbiAgICAgIC51c3lkLW5hdi1tZW51IC51c3lkLW5hdi1zdWJtZW51IHVsID4gbGkgPiBhIHtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2Fzc2V0cy9pbWcvYXJyb3ctc21hbGwtcmVkLnBuZykgbm8tcmVwZWF0IDVweCA4cHg7IH0gfVxuICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5ODBweCkgYW5kIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSB7XG4gICAgICAgIC51c3lkLW5hdi1tZW51IC51c3lkLW5hdi1zdWJtZW51IHVsID4gbGkgPiBhIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYXNzZXRzL2ltZy9hcnJvdy1zbWFsbC1yZWRAMngucG5nKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAgIC51c3lkLW5hdi1tZW51IC51c3lkLW5hdi1zdWJtZW51IHVsID4gbGkgPiBsaSA+IGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vYXNzZXRzL2ltZy9hcnJvdy1zbWFsbGVzdC1yZWQucG5nKSBuby1yZXBlYXQgNXB4IDhweDsgfSB9XG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk4MHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpIHtcbiAgICAgICAgLnVzeWQtbmF2LW1lbnUgLnVzeWQtbmF2LXN1Ym1lbnUgdWwgPiBsaSA+IGxpID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvYXJyb3ctc21hbGxlc3QtcmVkQDJ4LnBuZyk7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA4cHggOHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgLnVzeWQtbmF2LW1lbnUgLnVzeWQtbmF2LXN1Ym1lbnUudXN5ZC1zaG93IHVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnVzeWQtbmF2LW1lbnUgLnVzeWQtbmF2LXN1Ym1lbnUudXN5ZC1oaWRlIHVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4udXN5ZC11aS1wYWdlciwgLmRhdGFUYWJsZXNfcGFnaW5hdGUge1xuICBmb250LXNpemU6IDEuM2VtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnVzeWQtdWktcGFnZXIgbGksIC5kYXRhVGFibGVzX3BhZ2luYXRlIGxpIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG4udXN5ZC11aS1wYWdlLWxpbmssIC51c3lkLXVpLXBhZ2UtbGluazp2aXNpdGVkLCAucGFnaW5hdGVfYnV0dG9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAuMjVlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1ZW07XG4gIG1hcmdpbi10b3A6IDAuMjVlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjFlbTtcbiAgbWluLXdpZHRoOiAxLjI1ZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICMxOTViOTg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAudXN5ZC11aS1wYWdlLWxpbmsudXN5ZC11aS1hY3RpdmUsIC51c3lkLXVpLXBhZ2UtbGluay51c3lkLXVpLWFjdGl2ZTpob3ZlciwgLnVzeWQtdWktcGFnZS1saW5rLnVzeWQtdWktYWN0aXZlOmZvY3VzLCAudXN5ZC11aS1wYWdlLWxpbmsuY3VycmVudCwgLnVzeWQtdWktcGFnZS1saW5rLmN1cnJlbnQ6aG92ZXIsIC51c3lkLXVpLXBhZ2UtbGluay5jdXJyZW50OmZvY3VzLCAudXN5ZC11aS1wYWdlLWxpbms6dmlzaXRlZC51c3lkLXVpLWFjdGl2ZSwgLnVzeWQtdWktcGFnZS1saW5rOnZpc2l0ZWQudXN5ZC11aS1hY3RpdmU6aG92ZXIsIC51c3lkLXVpLXBhZ2UtbGluazp2aXNpdGVkLnVzeWQtdWktYWN0aXZlOmZvY3VzLCAudXN5ZC11aS1wYWdlLWxpbms6dmlzaXRlZC5jdXJyZW50LCAudXN5ZC11aS1wYWdlLWxpbms6dmlzaXRlZC5jdXJyZW50OmhvdmVyLCAudXN5ZC11aS1wYWdlLWxpbms6dmlzaXRlZC5jdXJyZW50OmZvY3VzLCAucGFnaW5hdGVfYnV0dG9uLnVzeWQtdWktYWN0aXZlLCAucGFnaW5hdGVfYnV0dG9uLnVzeWQtdWktYWN0aXZlOmhvdmVyLCAucGFnaW5hdGVfYnV0dG9uLnVzeWQtdWktYWN0aXZlOmZvY3VzLCAucGFnaW5hdGVfYnV0dG9uLmN1cnJlbnQsIC5wYWdpbmF0ZV9idXR0b24uY3VycmVudDpob3ZlciwgLnBhZ2luYXRlX2J1dHRvbi5jdXJyZW50OmZvY3VzIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogZ3JheTtcbiAgICBib3JkZXItY29sb3I6ICNiZmJmYmY7XG4gICAgYmFja2dyb3VuZDogI2U2ZTZlNjsgfVxuICAudXN5ZC11aS1wYWdlLWxpbms6aG92ZXIsIC51c3lkLXVpLXBhZ2UtbGluazpmb2N1cywgLnVzeWQtdWktcGFnZS1saW5rOnZpc2l0ZWQ6aG92ZXIsIC51c3lkLXVpLXBhZ2UtbGluazp2aXNpdGVkOmZvY3VzLCAucGFnaW5hdGVfYnV0dG9uOmhvdmVyLCAucGFnaW5hdGVfYnV0dG9uOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMyMTc2YzM7XG4gICAgYmFja2dyb3VuZDogI2QxZGVlYTsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1uZXdzLWZlYXR1cmUtcm93IHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC1tZWRpdW0tc3BhbjMge1xuICAgIG1hcmdpbi10b3A6IDJlbTsgfVxuICAgIC51c3lkLW1lZGl1bS1zcGFuMzpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMmVtOyB9IH1cblxuLnVzeWQtbm90aWNlLCAudXN5ZC1ub3RpY2UtZXJyb3IsIC51c3lkLW5vdGljZS13YXJuaW5nLCAudXN5ZC1ub3RpY2UtaW5mbywgLnVzeWQtbm90aWNlLXN1Y2Nlc3Mge1xuICBwYWRkaW5nOiAxZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7IH1cblxuLnVzeWQtbm90aWNlLWVycm9yIHtcbiAgYm9yZGVyLWNvbG9yOiAjY2UxMTI2O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmM2Y0O1xuICBjb2xvcjogI2NlMTEyNjsgfVxuICAudXN5ZC1ub3RpY2UtZXJyb3IgYSB7XG4gICAgY29sb3I6ICNjZTExMjY7IH1cbiAgLnVzeWQtbm90aWNlLWVycm9yIC51c3lkLWNsb3NlLW5vdGljZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4udXN5ZC1ub3RpY2Utd2FybmluZyB7XG4gIGJvcmRlci1jb2xvcjogI2JjNTIwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmJmMjtcbiAgY29sb3I6ICNiYzUyMDA7IH1cbiAgLnVzeWQtbm90aWNlLXdhcm5pbmcgYSB7XG4gICAgY29sb3I6ICNiYzUyMDA7IH1cbiAgLnVzeWQtbm90aWNlLXdhcm5pbmcgLnVzeWQtY2xvc2Utbm90aWNlIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi51c3lkLW5vdGljZS1pbmZvIHtcbiAgYm9yZGVyLWNvbG9yOiAjMTI0MTZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmNmY4O1xuICBjb2xvcjogIzEyNDE2YzsgfVxuICAudXN5ZC1ub3RpY2UtaW5mbyBhIHtcbiAgICBjb2xvcjogIzEyNDE2YzsgfVxuICAudXN5ZC1ub3RpY2UtaW5mbyAudXN5ZC1jbG9zZS1ub3RpY2Uge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnVzeWQtbm90aWNlLXN1Y2Nlc3Mge1xuICBib3JkZXItY29sb3I6ICMzZTU3MTI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZjM7XG4gIGNvbG9yOiAjM2U1NzEyOyB9XG4gIC51c3lkLW5vdGljZS1zdWNjZXNzIGEge1xuICAgIGNvbG9yOiAjM2U1NzEyOyB9XG4gIC51c3lkLW5vdGljZS1zdWNjZXNzIC51c3lkLWNsb3NlLW5vdGljZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1ub3RpZmllci1maXhlZCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogNTAwO1xuICB6LWluZGV4OiA1MDAwOyB9XG5cbi51c3lkLW5vdGlmaWVyLW5vdGljZSB7XG4gIHBhZGRpbmc6IDAuODMzZW0gNGVtIDAuODMzZW0gMC44MzNlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDEuMmVtO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLW5vdGlmaWVyLW5vdGljZS51c3lkLW5vdGlmaWVyLWluZm8ge1xuICAgIGJhY2tncm91bmQ6ICNmZmZiZjI7XG4gICAgYm9yZGVyLWNvbG9yOiAjYmM1MjAwO1xuICAgIGNvbG9yOiAjYmM1MjAwOyB9XG4gICAgLnVzeWQtbm90aWZpZXItbm90aWNlLnVzeWQtbm90aWZpZXItaW5mbyAudXN5ZC1ub3RpZmllci1kaXNtaXNzIHtcbiAgICAgIGNvbG9yOiAjYmM1MjAwOyB9XG4gICAgLnVzeWQtbm90aWZpZXItbm90aWNlLnVzeWQtbm90aWZpZXItaW5mbyBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6IGJsYWNrOyB9XG4gIC51c3lkLW5vdGlmaWVyLW5vdGljZSAudXN5ZC1hY3Rpb24ge1xuICAgIG1hcmdpbjogMCAwIDAgMWVtOyB9XG4gICAgLnVzeWQtbm90aWZpZXItbm90aWNlIC51c3lkLWFjdGlvbiArIC51c3lkLWFjdGlvbiB7XG4gICAgICBtYXJnaW4tbGVmdDogMWVtOyB9XG4gIC51c3lkLW5vdGlmaWVyLW5vdGljZS51c3lkLW5vdGlmaWVyLWVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmRmM2Y0O1xuICAgIGJvcmRlci1jb2xvcjogI2NlMTEyNjtcbiAgICBjb2xvcjogI2NlMTEyNjsgfVxuICAgIC51c3lkLW5vdGlmaWVyLW5vdGljZS51c3lkLW5vdGlmaWVyLWVycm9yIC51c3lkLW5vdGlmaWVyLWRpc21pc3Mge1xuICAgICAgY29sb3I6ICNjZTExMjY7IH1cbiAgICAudXN5ZC1ub3RpZmllci1ub3RpY2UudXN5ZC1ub3RpZmllci1lcnJvciBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6IGJsYWNrOyB9XG4gIC51c3lkLW5vdGlmaWVyLW5vdGljZSBidXR0b24ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi51c3lkLW5vdGlmaWVyLWRpc21pc3Mge1xuICBib3JkZXItcmFkaXVzOiA5OWVtO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGhlaWdodDogMS41ZW07XG4gIHdpZHRoOiAxLjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxZW07XG4gIHRvcDogMC41NWVtO1xuICBsaW5lLWhlaWdodDogMS41ZW07IH1cblxuLmZhbmN5Ym94LXdyYXAgLmRvd25sb2FkLWxpbmsge1xuICBmb250LXNpemU6IDEuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMWVtIDAgMDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLXBlcmRpZW0tY29uZmlnIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4udXN5ZC1wZXJkaWVtLWNvbmZpZy1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW46IDAgMTBweCA1cHggMDsgfVxuXG4udXN5ZC1wZXJkaWVtLWRheXMtYXdheSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgLnVzeWQtcGVyZGllbS1kYXlzLWF3YXkgaW5wdXQge1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbiN1c3lkLXBlcmRpZW0tcmVzZXQge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXRvcDogMWVtOyB9XG5cbi51c3lkLXBlcmRpZW0tY291bnRyeSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tYm90dG9tOiAxZW07IH1cblxuLnVzeWQtcGVyZGllbS1kYXkge1xuICBjbGVhcjogYm90aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XG4gIHBhZGRpbmc6IDFlbSAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTZlNjsgfVxuXG4udXN5ZC1wZXJkaWVtLXdvcmtpbmctZGF5IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gICp3aWR0aDogMTYuNSU7IH1cblxuLnVzeWQtcGVyZGllbS1wcm92aXNpb25zIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA2Ni42NjY2NyU7XG4gICp3aWR0aDogNjYlOyB9XG5cbi51c3lkLXBlcmRpZW0tZGF5LW5vbndvcmtpbmcgLnVzeWQtcGVyZGllbS1wcm92aXNpb25zIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT01MCk7XG4gIG9wYWNpdHk6IDAuNTsgfVxuXG4udXN5ZC1wZXJkaWVtLWRheS1wcm92aXNpb24tbGFiZWwge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDI1JTtcbiAgKndpZHRoOiAyNC43NSU7XG4gIG1pbi13aWR0aDogOTBweDsgfVxuXG4udXN5ZC1wZXJkaWVtLXByb3Zpc2lvbi1yYXRlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBmb250LXNpemU6IDExcHg7IH1cblxuLnVzeWQtcGVyZGllbS1kYXktdG90YWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiAxNi42NjY2NyU7XG4gICp3aWR0aDogMTYuNSU7IH1cblxuLnVzeWQtcGVyZGllbS10b3RhbCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTtcbiAgcGFkZGluZy10b3A6IDFlbTsgfVxuXG4udXN5ZC1wZXJkaWVtLXVuY29uZmlndXJlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB3aGl0ZTtcbiAgcGFkZGluZzogMWVtIDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2OyB9XG5cbi5jbGVhcmZpeCB7XG4gICp6b29tOiAxOyB9XG4gIC5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5sYWJlbCwgLmJhZGdlIHtcbiAgZm9udC1zaXplOiAxMC45OThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTsgfVxuXG4ubGFiZWwge1xuICBwYWRkaW5nOiAxcHggNHB4IDJweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmJhZGdlIHtcbiAgcGFkZGluZzogMXB4IDlweCAycHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogOXB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDlweDtcbiAgYm9yZGVyLXJhZGl1czogOXB4OyB9XG5cbmEubGFiZWw6aG92ZXIsIGEuYmFkZ2U6aG92ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmxhYmVsLWltcG9ydGFudCwgLmJhZGdlLWltcG9ydGFudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZTExMjY7IH1cblxuLmxhYmVsLWltcG9ydGFudFtocmVmXSwgLmJhZGdlLWltcG9ydGFudFtocmVmXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5ZjBkMWQ7IH1cblxuLmxhYmVsLXdhcm5pbmcsIC5iYWRnZS13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4OTQwNjsgfVxuXG4ubGFiZWwtd2FybmluZ1tocmVmXSwgLmJhZGdlLXdhcm5pbmdbaHJlZl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzY3NjA1OyB9XG5cbi5sYWJlbC1zdWNjZXNzLCAuYmFkZ2Utc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZTU3MTI7IH1cblxuLmxhYmVsLXN1Y2Nlc3NbaHJlZl0sIC5iYWRnZS1zdWNjZXNzW2hyZWZdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIwMmQwOTsgfVxuXG4ubGFiZWwtaW5mbywgLmJhZGdlLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTI0MTZjOyB9XG5cbi5sYWJlbC1pbmZvW2hyZWZdLCAuYmFkZ2UtaW5mb1tocmVmXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYjI3NDA7IH1cblxuLmxhYmVsLWludmVyc2UsIC5iYWRnZS1pbnZlcnNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsgfVxuXG4ubGFiZWwtaW52ZXJzZVtocmVmXSwgLmJhZGdlLWludmVyc2VbaHJlZl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhOyB9XG5cbi5sYWJlbC13YXJuaW5nLCAuYmFkZ2Utd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiYzUyMDA7IH1cblxuLmxhYmVsLXdhcm5pbmdbaHJlZl0sIC5iYWRnZS13YXJuaW5nW2hyZWZdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg5M2MwMDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4ucGRzLXF1ZXN0aW9uLXRvcCB7XG4gIG1hcmdpbjogMWVtIDAgMC41ZW0gMDsgfVxuXG4ucGRzLWJveCBiciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnBkcy12b3RlLWJ1dHRvbiwgLnBkcy12b3RlLWJ1dHRvbi1sb2FkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDYyNjtcbiAgY29sb3I6ICNmZmY7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IDI4cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIC8qIElFOCAqL1xuICAqbGluZS1oZWlnaHQ6IDI4cHg7XG4gIC8qIElFNyAqL1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbi1yaWdodDogMWVtOyB9XG4gIC5wZHMtdm90ZS1idXR0b246bm90KFtkdW1teV0pLCAucGRzLXZvdGUtYnV0dG9uLWxvYWQ6bm90KFtkdW1teV0pIHtcbiAgICBsaW5lLWhlaWdodDogYXV0bztcbiAgICAvKiBOT1QgSUU3L0lFOCAqLyB9XG4gIC5wZHMtdm90ZS1idXR0b24gYSwgLnBkcy12b3RlLWJ1dHRvbi1sb2FkIGEge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5wZHMtdm90ZS1idXR0b24gc3BhbiwgLnBkcy12b3RlLWJ1dHRvbi1sb2FkIHNwYW4ge1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLnBkcy12b3RlLWJ1dHRvbjpob3ZlciwgLnBkcy12b3RlLWJ1dHRvbi1sb2FkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAtb3dnLWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgLXBpZS1iYWNrZ3JvdW5kOiAtcGllLWxpbmVhci1ncmFkaWVudCgjZWE2MTQ2LCAjZDAzNzE4KTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2VhNjE0NiwgI2QwMzcxOCk7XG4gICAgYmFja2dyb3VuZDogI2U2NDYyNlxcOTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5wZHMtdm90ZS1idXR0b246YWN0aXZlLCAucGRzLXZvdGUtYnV0dG9uLWxvYWQ6YWN0aXZlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5wZHMtdm90ZS1idXR0b246dmlzaXRlZCwgLnBkcy12b3RlLWJ1dHRvbjpsaW5rLCAucGRzLXZvdGUtYnV0dG9uLWxvYWQ6dmlzaXRlZCwgLnBkcy12b3RlLWJ1dHRvbi1sb2FkOmxpbmsge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5wZHMtdm90ZS1idXR0b25bZGlzYWJsZWRdLCAucGRzLXZvdGUtYnV0dG9uLWxvYWRbZGlzYWJsZWRdIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICBjb2xvcjogIzc1NzU3NTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7IH1cblxuLnBkcy1hbnN3ZXItZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTsgfVxuXG4ucGRzLWFuc3dlci1pbnB1dCB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi5wZHMtaW5wdXQtbGFiZWwge1xuICBtYXJnaW4tbGVmdDogMi41ZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogM3B4OyB9XG5cbi5wZHMtdmlldy1yZXN1bHRzLCAucGRzLXJldHVybi1wb2xsIHtcbiAgZm9udC1zaXplOiAxMnB4OyB9XG5cbi5wZHMtYW5zd2VyLWdyb3VwLCAucGRzLWZlZWRiYWNrLWdyb3VwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMWVtIDA7IH1cblxuLnBkcy1hbnN3ZXItdGV4dCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5wZHMtdm90ZSB7XG4gIG1hcmdpbi10b3A6IDFlbTsgfVxuXG4ucGRzLWFuc3dlci1mZWVkYmFjayB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIHBhZGRpbmc6IDFweDtcbiAgbWFyZ2luLXRvcDogMC41ZW07IH1cblxuLnBkcy1hbnN3ZXItZmVlZGJhY2stYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMS41ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOWQ5ZDk7IH1cblxuLnVzeWQtd2FzbS11c2VyLXVuYXV0aGVkIC51c3lkLXBvbGwgLnBkcy1pbnB1dC1sYWJlbCB7XG4gIGNvbG9yOiAjNzM3MzczOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51aS1ydHAtYWN0aXZhdG9yIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAudWktcnRwLWFjdGl2YXRvcjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC51aS1ydHAtYWN0aXZhdG9yIC51aS1ydHAtbGFiZWwge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBmb250LXNpemU6IDhwdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgIC51aS1ydHAtYWN0aXZhdG9yIC51aS1ydHAtbGFiZWw6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2VmZWZlZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC51aS1ydHAtYWN0aXZhdG9yIC51aS1ydHAtbGFiZWwgLnVpLXJ0cC1sYWJlbC1wbHVzLW1pbnVzIHtcbiAgICAgIGNvbG9yOiAjQ0UxMTI2O1xuICAgICAgZm9udC1zaXplOiAxMnB0O1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuXG4udWktcnRwLWFjdGl2YXRvci5sby1yZXMge1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMzBweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDAgMXB4OyB9XG5cbi51aS1ydHAtYWN0aXZhdG9yLmxvLXJlczpob3ZlciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi51aS1ydHAtYWN0aXZhdG9yLmxvLXJlcyAudWktcnRwLWxhYmVsOmhvdmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDVweDsgfVxuXG4udWktcnRwLWFjdGl2YXRvci5oaS1yZXMge1xuICBib3JkZXItd2lkdGg6IDFweCAxcHggMXB4IDA7XG4gIG1hcmdpbjogMzBweCAwIDAgLTFweDtcbiAgd2lkdGg6IDQwcHg7IH1cblxuLnVpLXJ0cC1hY3RpdmF0b3IuaGktcmVzOmhvdmVyIHtcbiAgd2lkdGg6IDQ1cHg7IH1cblxuLnVpLXJ0cC1hY3RpdmF0b3IuaGktcmVzIC51aS1ydHAtbGFiZWwge1xuICB3aWR0aDogMzBweDtcbiAgcmlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4udWktcnRwLWFjdGl2YXRvci5oaS1yZXMgLnVpLXJ0cC1sYWJlbDpob3ZlciB7XG4gIHBhZGRpbmctbGVmdDogMTBweDsgfVxuXG4udWktcnRwLWFjdGl2YXRvci5oaS1yZXMgLnVpLXJ0cC1sYWJlbC1wbHVzLW1pbnVzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAzMHB4OyB9XG5cbi51aS1ydHAtc2VjdGlvbiB7XG4gIHdpZHRoOiA0MTBweDtcbiAgZm9udC1zaXplOiAxMHB0O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW46IDAuNWVtOyB9XG5cbi51aS1ydHAtc2VjdGlvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLnVpLXJ0cC1zZWN0aW9uIHAge1xuICBtYXJnaW46IDFlbSAwO1xuICBsaW5lLWhlaWdodDogMTQ1JTsgfVxuXG4udWktcnRwLXNlY3Rpb24gaDEge1xuICBmb250LXNpemU6IDE1cHQ7XG4gIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNDRTExMjY7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLnJ0cC1mb3JtIC5xdWVzdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDIwcHggMCA1cHggMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnJ0cC1mb3JtIGxlZ2VuZC5xdWVzdGlvbiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gICptYXJnaW4tbGVmdDogLTdweDsgfVxuXG4ucnRwLWZvcm0gZmllbGRzZXQge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi5ydHAtZm9ybSAuc2NhbGUtc2VsZWN0b3Ige1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5ydHAtZm9ybSAuc2NhbGUtc2VsZWN0b3IgbGFiZWwge1xuICB3aWR0aDogMTQuMiU7XG4gIGZsb2F0OiBsZWZ0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjMzMzO1xuICBwYWRkaW5nLXRvcDogNXB4OyB9XG5cbi5ydHAtZm9ybSAuYm9vbGVhbi1zZWxlY3RvciBsYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDMwJTtcbiAgcGFkZGluZy10b3A6IDVweDsgfVxuXG4ucnRwLWZvcm0gLnNjYWxlLXNlbGVjdG9yIGxhYmVsIGlucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5ydHAtZm9ybSAuc2NhbGUtc2VsZWN0b3IgLnNjYWxlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiA4cHQ7XG4gIGNvbG9yOiAjNzc3O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDsgfVxuXG4ucnRwLWZvcm0gLnNjYWxlLXNlbGVjdG9yIGxhYmVsOmhvdmVyIHNwYW4uc2NhbGUge1xuICBjb2xvcjogIzc3NzsgfVxuXG4ucnRwLXN1Ym1pdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMjQxNkM7XG4gIGNvbG9yOiAjZmZmO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7XG4gIC1tcy1ib3JkZXItcmFkaXVzOiAycHg7XG4gIC1vLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxLjFlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIG1hcmdpbjogMCAycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgaGVpZ2h0OiAyOHB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICAvKiBJRTggKi9cbiAgKmxpbmUtaGVpZ2h0OiAyOHB4O1xuICAvKiBJRTcgKi9cbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgZm9udC1zaXplOiAxZW07IH1cbiAgLnJ0cC1zdWJtaXQ6bm90KFtkdW1teV0pIHtcbiAgICBsaW5lLWhlaWdodDogYXV0bztcbiAgICAvKiBOT1QgSUU3L0lFOCAqLyB9XG4gIC5ydHAtc3VibWl0IGEge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5ydHAtc3VibWl0IHNwYW4ge1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLnJ0cC1zdWJtaXQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IC1vd2ctbGluZWFyLWdyYWRpZW50KCMxNzUzOGIsICMwZDJmNGQpO1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCMxNzUzOGIsICMwZDJmNGQpO1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KCMxNzUzOGIsICMwZDJmNGQpO1xuICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCgjMTc1MzhiLCAjMGQyZjRkKTtcbiAgICAtcGllLWJhY2tncm91bmQ6IC1waWUtbGluZWFyLWdyYWRpZW50KCMxNzUzOGIsICMwZDJmNGQpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjMTc1MzhiLCAjMGQyZjRkKTtcbiAgICBiYWNrZ3JvdW5kOiAjMTI0MTZDXFw5O1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnJ0cC1zdWJtaXQ6YWN0aXZlIHtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5ydHAtc3VibWl0OnZpc2l0ZWQsIC5ydHAtc3VibWl0Omxpbmsge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5ydHAtc3VibWl0W2Rpc2FibGVkXSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6ICM3NTc1NzU7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4OyB9XG5cbi5ydHAtZm9ybSAjZmVlZGJhY2stc3RhdHVzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm8tcmVwZWF0IGNlbnRlcjtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMzBweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcblNuaXBwZXQ6IGEgc2hvcnQgXCJzdG9yeVwiLCB3aXRoIGFuIGljb24vdGh1bWJuYWlsLCBoZWFkbGluZSBhbmQgc3VtbWFyeSB0ZXh0XG4qL1xuLnVzeWQtc25pcHBldCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAxMHB4OyB9XG5cbi51c3lkLXNuaXBwZXQtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTsgfVxuXG4udXN5ZC1zbmlwcGV0LWljb24ge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBmb250LXNpemU6IDI0cHg7IH1cblxuLnVzeWQtc25pcHBldC1ib2R5IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAudXN5ZC1zbmlwcGV0LWJvZHkgcCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi51c3lkLXNuaXBwZXQtdGl0bGUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAwLjJlbTsgfVxuXG4udXN5ZC1zbmlwcGV0LWRhdGUge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwcHggMTVweCAwIDA7XG4gIHdpZHRoOiAxNjBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC1zbmlwcGV0LnVzeWQteHNtYWxsIC51c3lkLXNuaXBwZXQtaWNvbiB7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtdWktbWFzayB7XG4gIHotaW5kZXg6IDE1MDA7IH1cblxuLnVpLWFuY2hvci1zLSAudWktdGlwLWFuY2hvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTk5OWVtO1xuICBkaXNwbGF5OiBub25lO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxNWVtO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogMjYwMDsgfVxuICAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uLCAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uZSwgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itbncge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4OyB9XG4gICAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItbiAudWktdGlwLWFuY2hvciwgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItbmUgLnVpLXRpcC1hbmNob3IsIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLW53IC51aS10aXAtYW5jaG9yIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItbiAudWktdGlwLWFuY2hvciB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTJweDsgfVxuICAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1udyAudWktdGlwLWFuY2hvciB7XG4gICAgbGVmdDogMTJweDsgfVxuICAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uZSAudWktdGlwLWFuY2hvciB7XG4gICAgcmlnaHQ6IDEycHg7IH1cbiAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItcywgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itc2UsIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXN3IHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDsgfVxuICAgIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXMgLnVpLXRpcC1hbmNob3IsIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXNlIC51aS10aXAtYW5jaG9yLCAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1zdyAudWktdGlwLWFuY2hvciB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXMgLnVpLXRpcC1hbmNob3Ige1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTEycHg7IH1cbiAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itc3cgLnVpLXRpcC1hbmNob3Ige1xuICAgIGxlZnQ6IDEycHg7IH1cbiAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itc2UgLnVpLXRpcC1hbmNob3Ige1xuICAgIHJpZ2h0OiAxMnB4OyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLWUsIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLWVzLCAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cbiAgICAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lIC51aS10aXAtYW5jaG9yLCAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lcyAudWktdGlwLWFuY2hvciwgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZW4gLnVpLXRpcC1hbmNob3Ige1xuICAgICAgbGVmdDogLTExcHg7XG4gICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLWUgLnVpLXRpcC1hbmNob3Ige1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xMnB4OyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLWVuIC51aS10aXAtYW5jaG9yIHtcbiAgICB0b3A6IDEycHg7IH1cbiAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZXMgLnVpLXRpcC1hbmNob3Ige1xuICAgIGJvdHRvbTogMTJweDsgfVxuICAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13LCAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13cywgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd24ge1xuICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxuICAgIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXcgLnVpLXRpcC1hbmNob3IsIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXdzIC51aS10aXAtYW5jaG9yLCAudXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13biAudWktdGlwLWFuY2hvciB7XG4gICAgICByaWdodDogLTExcHg7XG4gICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXcgLnVpLXRpcC1hbmNob3Ige1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0xMnB4OyB9XG4gIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXduIC51aS10aXAtYW5jaG9yIHtcbiAgICB0b3A6IDEycHg7IH1cbiAgLnVzeWQtc3VydmV5LWNvbnRlbnQudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd3MgLnVpLXRpcC1hbmNob3Ige1xuICAgIGJvdHRvbTogMTJweDsgfVxuXG4udXN5ZC1zdXJ2ZXktY29udGVudCAudWktdGlwLWJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAqYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgY29sb3I6IGJsYWNrO1xuICBtYXgtd2lkdGg6IDIxMHB4O1xuICAqbWF4LXdpZHRoOiBub25lO1xuICAqd2lkdGg6IDIxMHB4O1xuICBwYWRkaW5nOiA3cHggOXB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCA0cHggNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgNHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIGJveC1zaGFkb3c6IDAgMCA0cHggNXB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMXB4O1xuICAtbXMtYm9yZGVyLXJhZGl1czogMXB4O1xuICAtby1ib3JkZXItcmFkaXVzOiAxcHg7XG4gIGJvcmRlci1yYWRpdXM6IDFweDsgfVxuXG4udXN5ZC1zdXJ2ZXktY29udGVudCAudWktdGlwLWFuY2hvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGJvcmRlcjogMTJweCBzb2xpZCAjMzMzO1xuICBib3JkZXI6IDEycHggc29saWQgI2ZmZjtcbiAgKmJvcmRlcjogMTJweCBzb2xpZCAjMzMzOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5EYXRhIHRhYmxlXG5cblN0eWxlZ3VpZGUgMS4zXG4qL1xudGFibGUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYmZiZmJmO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBtYXJnaW46IDEwcHggMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgdGFibGUgdGgsIHRhYmxlIHRkIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiZmJmYmY7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICAgIHRhYmxlIHRoIHAsIHRhYmxlIHRkIHAge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICB0YWJsZSB0aCBwICsgcCwgdGFibGUgdGQgcCArIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjhlbTsgfVxuICAgIHRhYmxlIHRoLnVzeWQtdWktZW1waGFzaXMtbWlsZCwgdGFibGUgdGQudXN5ZC11aS1lbXBoYXNpcy1taWxkIHtcbiAgICAgIGNvbG9yOiAjYmZiZmJmOyB9XG4gIHRhYmxlIHRoIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiZmJmYmY7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsYWNrOyB9XG4gIHRhYmxlIHRmb290IHtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmN2Y3OyB9XG4gIHRhYmxlIC51c3lkLWFsaWduLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIHRhYmxlLnVzeWQtdWktZW1waGFzaXMtbWlsZCB7XG4gICAgYm9yZGVyOiAwOyB9XG4gICAgdGFibGUudXN5ZC11aS1lbXBoYXNpcy1taWxkIHRoIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuM2VtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7IH1cbiAgICB0YWJsZS51c3lkLXVpLWVtcGhhc2lzLW1pbGQgdGQge1xuICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7IH1cbiAgICB0YWJsZS51c3lkLXVpLWVtcGhhc2lzLW1pbGQgdGQsIHRhYmxlLnVzeWQtdWktZW1waGFzaXMtbWlsZCB0aCB7XG4gICAgICBwYWRkaW5nOiAwLjZlbSAwLjVlbSAwLjRlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY2NmVtOyB9XG5cbkBtZWRpYSBzY3JlZW4ge1xuICAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwLjAxJTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLnRhYmxlLXJlc3BvbnNpdmUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTZlNmU2O1xuICAgICAgYm9yZGVyLXRvcDogMDsgfVxuICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGJvcmRlcjogMDsgfVxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IHRhYmxlID4gdGhlYWQgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRoZWFkID4gdGQ6Zmlyc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Ym9keSA+IHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IHRhYmxlID4gdGJvZHkgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRmb290ID4gdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Zm9vdCA+IHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IHRhYmxlID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0aGVhZCA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0aGVhZCA+IHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Ym9keSA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Ym9keSA+IHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Zm9vdCA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Zm9vdCA+IHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0ciA+IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0ciA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IHRhYmxlID4gdGhlYWQgPiB0aCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRoZWFkID4gdGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Ym9keSA+IHRoLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IHRhYmxlID4gdGJvZHkgPiB0ZCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRmb290ID4gdGgsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Zm9vdCA+IHRkLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IHRhYmxlID4gdHIgPiB0aCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRyID4gdGQge1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRib2R5ID4gdHI6bGFzdC1jaGlsZCA+IHRoLFxuICAgICAgICAudGFibGUtcmVzcG9uc2l2ZSA+IHRhYmxlID4gdGJvZHkgPiB0cjpsYXN0LWNoaWxkID4gdGQsXG4gICAgICAgIC50YWJsZS1yZXNwb25zaXZlID4gdGFibGUgPiB0Zm9vdCA+IHRyOmxhc3QtY2hpbGQgPiB0aCxcbiAgICAgICAgLnRhYmxlLXJlc3BvbnNpdmUgPiB0YWJsZSA+IHRmb290ID4gdHI6bGFzdC1jaGlsZCA+IHRkIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9IH1cblxuLmNsZWFyZml4IHtcbiAgKnpvb206IDE7IH1cbiAgLmNsZWFyZml4OmJlZm9yZSwgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gIC51c3lkLXRhYnMge1xuICAgIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAqem9vbTogMTsgfVxuICAgIC51c3lkLXRhYnM6YmVmb3JlLCAudXN5ZC10YWJzOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAgIC51c3lkLXRhYnM6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAudXN5ZC10YWJzIGEge1xuICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC51c3lkLXRhYnMgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAudXN5ZC10YWJzIGxpID4gLnVzeWQtdG9nZ2xlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAudXN5ZC10YWJzID4gdWwge1xuICAgICAgcGFkZGluZzogMCA0cHg7IH1cbiAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIG1hcmdpbjogOHB4IDRweCAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkgPiBhIHtcbiAgICAgICAgICBwYWRkaW5nOiA2cHggMTBweCA5cHg7IH1cbiAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGk6aG92ZXIgPiB1bCwgLnVzeWQtdGFicyA+IHVsID4gbGkudXN5ZC1zaG93ID4gdWwge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpOmhvdmVyLCAudXN5ZC10YWJzID4gdWwgPiBsaS51c3lkLXNob3cge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlOGU4ZTg7IH1cbiAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkudXN5ZC1hY3RpdmUgYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkudXN5ZC1hY3RpdmU6aG92ZXIgPiBhLCAudXN5ZC10YWJzID4gdWwgPiBsaS51c3lkLWFjdGl2ZSA+IGE6Zm9jdXMsIC51c3lkLXRhYnMgPiB1bCA+IGxpLnVzeWQtYWN0aXZlLnVzeWQtYWN0aXZlID4gYSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkudXN5ZC1hY3RpdmU6aG92ZXIgPiB1bCwgLnVzeWQtdGFicyA+IHVsID4gbGkudXN5ZC1hY3RpdmUudXN5ZC1zaG93ID4gdWwge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICB6LWluZGV4OiAyNjAwO1xuICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAqdG9wOiAyNHB4O1xuICAgICAgICAgICpoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U4ZThlODsgfVxuICAgICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpID4gdWwgPiBsaSA+IGEge1xuICAgICAgICAgICAgd2lkdGg6IDE1MnB4OyB9XG4gICAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpOmhvdmVyID4gYSwgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpID4gYTpmb2N1cywgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpLnVzeWQtc2hvdyA+IGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZGVkZTsgfVxuICAgICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpID4gdWwgPiBsaTpob3ZlciA+IHVsLCAudXN5ZC10YWJzID4gdWwgPiBsaSA+IHVsID4gbGkudXN5ZC1zaG93ID4gdWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgICAudXN5ZC10YWJzID4gdWwgPiBsaSA+IHVsID4gbGkudXN5ZC1zdWJtZW51ID4gYSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vYXNzZXRzL2ltZy9hcnJvdy1kYXJrLWdyZXkucG5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7IH1cbiAgICAgICAgICAudXN5ZC10YWJzID4gdWwgPiBsaSA+IHVsID4gbGkgPiB1bCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZGVkZTtcbiAgICAgICAgICAgIGxlZnQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpID4gdWwgPiBsaSA+IGEge1xuICAgICAgICAgICAgICB3aWR0aDogMTUycHg7IH1cbiAgICAgICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGk6aG92ZXIgPiBhLCAudXN5ZC10YWJzID4gdWwgPiBsaSA+IHVsID4gbGkgPiB1bCA+IGxpID4gYTpmb2N1cywgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpID4gdWwgPiBsaS51c3lkLXNob3cgPiBhIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZGVkZTsgfVxuICAgICAgICAudXN5ZC10YWJzID4gdWwgPiBsaS51c3lkLXN1Ym1lbnUtcnRsID4gdWwge1xuICAgICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkudXN5ZC1zdWJtZW51LXJ0bCA+IHVsID4gbGkgPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTZweDsgfVxuICAgICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpLnVzeWQtc3VibWVudS1ydGwgPiB1bCA+IGxpLnVzeWQtc3VibWVudSA+IGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvYXJyb3ctZGFyay1ncmV5LWxlZnQucG5nKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyOyB9XG4gICAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkudXN5ZC1zdWJtZW51LXJ0bCA+IHVsID4gbGkgPiB1bCB7XG4gICAgICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87IH1cbiAgICAgIC51c3lkLXRhYnMgPiB1bDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC51c3lkLXRhYnMgaDIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC10YWJzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA2NnB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiA1MCU7IH1cbiAgICAudXN5ZC10YWJzID4gaDIge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICNGRkY7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDhweCAwIDdweCAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZDogIzQ0NDsgfVxuICAgICAgLnVzeWQtdGFicyA+IGgyOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U2NDYyNjsgfVxuICAgICAgLnVzeWQtdGFicyA+IGgyIC51c3lkLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDAuOGVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgIC51c3lkLXRhYnMgYSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEwcHggOHB4IDMwcHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLnVzeWQtdGFicyBhOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGU4OTQnO1xuICAgICAgICBmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICByaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtN3B4O1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIGNvbG9yOiAjZTY0NjI2OyB9XG4gICAgLnVzeWQtdGFicyB1bCB7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgMXM7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICAgIC51c3lkLXRhYnMgbGkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAudXN5ZC10YWJzIGxpLnVzeWQtaGlkZSA+IHVsLCAudXN5ZC10YWJzIGxpID4gdWwge1xuICAgICAgICBoZWlnaHQ6IDA7IH1cbiAgICAgIC51c3lkLXRhYnMgbGkgPiAudXN5ZC10b2dnbGVyIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcbiAgICAgICAgY29sb3I6ICNlNjQ2MjY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDdweCA0cHggN3B4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRENEQ0RDO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgdG9wOiA1cHg7XG4gICAgICAgIHotaW5kZXg6IDEyMDsgfVxuICAgICAgICAudXN5ZC10YWJzIGxpID4gLnVzeWQtdG9nZ2xlcjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICdcXGU4MWUnO1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC51c3lkLXRhYnMgbGkudXN5ZC1zaG93ID4gdWwge1xuICAgICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAgIC51c3lkLXRhYnMgbGkudXN5ZC1zaG93ID4gLnVzeWQtdG9nZ2xlcjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxlODIyJzsgfVxuICAgICAgLnVzeWQtdGFicyBsaSA+IC51c3lkLXRvZ2dsZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmbG9hdDogbGVmdDsgfVxuICAgIC51c3lkLXRhYnMgPiBoMjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0NjI2OyB9XG4gICAgICAudXN5ZC10YWJzID4gaDI6aG92ZXIgKyB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLnVzeWQtdGFicyA+IHVsIHtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB3aWR0aDogODB2dztcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgcGFkZGluZzogMTBweCAxMHB4O1xuICAgICAgbWF4LWhlaWdodDogNjV2aDtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDEwcHggIzMzMztcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDEwcHggIzMzMztcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4ICMzMzM7IH1cbiAgICAgIC51c3lkLXRhYnMgPiB1bDpob3ZlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAudXN5ZC10YWJzID4gdWwgPiBsaSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkZGOyB9XG4gICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpLnVzeWQtc2hvdyA+IHVsIHtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0ZGRjsgfVxuICAgICAgICAudXN5ZC10YWJzID4gdWwgPiBsaS51c3lkLWFjdGl2ZSA+IGEge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpID4gdWwgPiBsaSB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGRkY7IH1cbiAgICAgICAgICAudXN5ZC10YWJzID4gdWwgPiBsaSA+IHVsID4gbGkgPiBhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNDVweDsgfVxuICAgICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpID4gdWwgPiBsaSA+IC51c3lkLXRvZ2dsZXIge1xuICAgICAgICAgICAgbGVmdDogMTlweDsgfVxuICAgICAgICAgIC51c3lkLXRhYnMgPiB1bCA+IGxpID4gdWwgPiBsaTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgICAgICAudXN5ZC10YWJzID4gdWwgPiBsaSA+IHVsID4gbGkudXN5ZC1hY3RpdmUgPiBhIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpID4gdWwgPiBsaSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0ZGRjsgfVxuICAgICAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpID4gdWwgPiBsaS51c3lkLWFjdGl2ZSA+IGEge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmVmN2U3O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAgICAgICAgICAgLnVzeWQtdGFicyA+IHVsID4gbGkgPiB1bCA+IGxpID4gdWwgPiBsaSBhIHtcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA2MHB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLXRhYnMge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi10b3A6IC00OHB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgLnVzeWQtbG9jYWwtaG9tZXBhZ2UgLnVzeWQtdGFicyxcbiAgLnVzeWQtc2tpbm5lZC1wYWdlIC51c3lkLXRhYnMge1xuICAgIG1hcmdpbi10b3A6IC0xMDBweDsgfSB9XG5cbi51c3lkLXRheW5lIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHVybCguLi9hc3NldHMvaW1nL2NvbXBvbmVudHMvdGF5bmUuZ2lmKTtcbiAgd2lkdGg6IDM0OXB4O1xuICBoZWlnaHQ6IDU1NXB4OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLXRpbGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxNmVtO1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNjZGNkY2Q7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjsgfVxuICAudXN5ZC10aWxlLnVzeWQtdGFsbCB7XG4gICAgaGVpZ2h0OiAyMzVweDsgfVxuICAudXN5ZC10aWxlLnVzeWQtbGlnaHQgLnVzeWQtdGlsZS10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZiY2Q2YjsgfVxuICAudXN5ZC10aWxlIC51c3lkLXRpbGUtaGludCB7XG4gICAgYmFja2dyb3VuZDogYmxhY2s7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgYm90dG9tOiAtMTAwJTtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IDAuMjVzIGJvdHRvbSBmYWxzZTtcbiAgICAtbW96LXRyYW5zaXRpb246IDAuMjVzIGJvdHRvbSBmYWxzZSBmYWxzZTtcbiAgICAtby10cmFuc2l0aW9uOiAwLjI1cyBib3R0b20gZmFsc2UgZmFsc2U7XG4gICAgdHJhbnNpdGlvbjogMC4yNXMgYm90dG9tO1xuICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAudXN5ZC10aWxlOmhvdmVyIC51c3lkLXRpbGUtaGludCB7XG4gICAgYm90dG9tOiAwOyB9XG4gIC51c3lkLXRpbGUgLnVzeWQtdGlsZS1saW5rIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLnVzeWQtdGlsZSAudXN5ZC10aWxlLWxpbms6aG92ZXIgLnVzeWQtdGlsZS10aXRsZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAudXN5ZC10aWxlIC51c3lkLXRpbGUtdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEuNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjVBRjAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9hc3NldHMvaW1nL2Fycm93LWFscGhhLnBuZyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5OCUgNTAlO1xuICAgIHBhZGRpbmc6IDEwcHggMjVweCAxMHB4IDEwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwOyB9XG4gICAgLnVzeWQtdGlsZSAudXN5ZC10aWxlLXRpdGxlLnVzeWQtYWxpZ24tYm90dG9tIHtcbiAgICAgIGJvdHRvbTogMDsgfVxuICAgIC51c3lkLXRpbGUgLnVzeWQtdGlsZS10aXRsZTpsaW5rIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLnVzeWQtdGlsZSAudXN5ZC10aWxlLXRpdGxlOnZpc2l0ZWQsIC51c3lkLXRpbGUgLnVzeWQtdGlsZS10aXRsZTphY3RpdmUge1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi51c3lkLXRpbGUtcHJvbW8gLnVzeWQtdGlsZS10aXRsZSB7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpIHtcbiAgLnVzeWQtdGlsZS10aXRsZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvYXJyb3ctYWxwaGFAMngucG5nKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5BIGdlbmVyaWMgY29udGFpbmVyIGZvciBidXR0b25zIG9yIG1lbnUgaXRlbXMsIHVzdWFsbHkgdG8gYmUgcG9zaXRpb25lZCBhdCB0aGUgdG9wIG9yIGJvdHRvbSBvZiBhIHdpZGdldC4gVXNlZCB0byBkcmF3IG91dCBwYXJ0aWN1bGFyIGFjdGlvbnNcbmFuZCBkaXN0aW5ndWlzaCB0aGVtIGZyb20gdGhlIGJvZHkgb2YgdGhlIHdpZGdldC5cbiovXG4udXN5ZC10b29sYmFyLCAudXN5ZC1lZGl0LWNvbnRyb2xzIHtcbiAgYmFja2dyb3VuZDogI2Y3ZjdmNztcbiAgcGFkZGluZzogMWVtO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qXG5BIGdlbmVyaWMgY29udGFpbmVyIGluIHdoaWNoIHRvIGRpc3BsYXkgc3RhdHVzIG1lc3NhZ2VzIHN1Y2ggYXMgbG9hZGluZyBub3RpY2VzIG9yIGVycm9yIG1lc3NhZ2VzLlxuKi9cbi51c3lkLXN0YXR1cy1iYXIge1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xuICBwYWRkaW5nOiAxZW07XG4gIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4udXN5ZC1hY3Rpb24ge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLnVzeWQtYWN0aW9uIC51c3lkLWljb24tdGV4dDpob3ZlciwgLnVzeWQtYWN0aW9uIC51c3lkLWljb24tdGV4dDpmb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLypcbkFwcGx5IHRoaXMgdG8gYSBjb250YWluZXIgd2l0aCBhY3Rpb25zIHRvIGFsbG93IHRoZSBhY3Rpb25zIHRvIGhhdmUgYSBcImhpbnRlZFwiIGVmZmVjdCwgd2hlcmUgdGhleSBhcmUgcmV2ZWFsZWQgYXMgdGhlIGl0ZW0gaXMgbW91c2VkIG92ZXJcbiovXG5AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgLnVzeWQtaGludGVkLWFjdGlvbnM6aG92ZXIgLnVzeWQtYWN0aW9uLCAudXN5ZC1oaW50ZWQtYWN0aW9uczpob3ZlciAudXN5ZC1hY3Rpb24taWNvbiwgLnVzeWQtaGludGVkLWFjdGlvbnM6Zm9jdXMgLnVzeWQtYWN0aW9uLCAudXN5ZC1oaW50ZWQtYWN0aW9uczpmb2N1cyAudXN5ZC1hY3Rpb24taWNvbiB7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT03NSk7XG4gICAgb3BhY2l0eTogMC43NTsgfVxuICAudXN5ZC1oaW50ZWQtYWN0aW9ucyAudXN5ZC1hY3Rpb24sIC51c3lkLWhpbnRlZC1hY3Rpb25zIC51c3lkLWFjdGlvbi1pY29uIHtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGZhbHNlO1xuICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBmYWxzZSBmYWxzZTtcbiAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGZhbHNlIGZhbHNlO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXM7IH1cbiAgICAudXN5ZC1oaW50ZWQtYWN0aW9ucyAudXN5ZC1hY3Rpb246aG92ZXIsIC51c3lkLWhpbnRlZC1hY3Rpb25zIC51c3lkLWFjdGlvbjpmb2N1cywgLnVzeWQtaGludGVkLWFjdGlvbnMgLnVzeWQtYWN0aW9uLWljb246aG92ZXIsIC51c3lkLWhpbnRlZC1hY3Rpb25zIC51c3lkLWFjdGlvbi1pY29uOmZvY3VzIHtcbiAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTtcbiAgICAgIG9wYWNpdHk6IDE7IH0gfVxuXG4vKlxuQSBnZW5lcmFsIGNvbnRhaW5lciBmb3IgYSBzdHJpcCBvZiBhY3Rpb25zLCB1c3VhbGx5IGluIHRoZSBmb3JtIG9mIGFjdGlvbiBpY29ucy5cbiovXG4udXN5ZC1hY3Rpb25zLCAudXN5ZC1hY3Rpb24tbGlzdCB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLypcbkEgbGlzdCBvZiBhY3Rpb25zIGluIGEgdG9vbGJhci1zdHJpcCBsaWtlIGxheW91dC4gU2ltaWxhciB0byBhbiBpY29uIG1lbnUgaW4gYSBkZXNrdG9wIGFwcGxpY2F0aW9uLlxuKi9cbi51c3lkLWFjdGlvbi1saXN0IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMCAwLjVlbSAwIDA7IH1cblxuLypcbkFuIGFjdGlvbiBidXR0b24gcHJlc2VudGVkIGFzIGFuIGljb24uIFVzdWFsbHkgc2l0cyBpbnNpZGUgYW4gYWN0aW9uIGxpc3QuXG5UT0RPOiBoYW5kbGUgbXVsdGlwbGUgc2l6ZXNcbi0gLnVzeWQtdWktYnV0dG9uOiBUaGUgYWN0aW9uIGFwcGVhcnMgYXMgYSBzdGFuZGFyZCBidXR0b25cbiovXG4udXN5ZC1hY3Rpb24taWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMwMDA7IH1cbiAgLnVzeWQtYWN0aW9uLWljb246dmlzaXRlZCB7XG4gICAgY29sb3I6ICMwMDA7IH1cblxuLypcbkFuIGFjdGlvbiBpY29uIHdpdGggdGV4dCB0aXAgdGhhdCByZXZlYWxzIHdoZW4gdGhlIHVzZXIgbW91c2VzIG92ZXIgdGhlIGVsZW1lbnQuXG4qL1xuLnVzeWQtYWN0aW9uLWhpbnRlZC10ZXh0IC51c3lkLWFjdGlvbi10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDA7XG4gIHdpZHRoOiAwO1xuICBvcGFjaXR5OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBmYWxzZTtcbiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMgZmFsc2UgZmFsc2U7XG4gIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBmYWxzZSBmYWxzZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzOyB9XG5cbi51c3lkLWFjdGlvbi1oaW50ZWQtdGV4dDpob3ZlciAudXN5ZC1hY3Rpb24tdGV4dCwgLnVzeWQtYWN0aW9uLWhpbnRlZC10ZXh0OmZvY3VzIC51c3lkLWFjdGlvbi10ZXh0IHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIG9wYWNpdHk6IDE7IH1cblxuLypcbkEgc3BlY2lhbCBzdGF0ZSBvZiB1bCBvciBvbCBsaXN0cyB0byBiZSBhcHBsaWVkIHdoZW4gdGhlIGl0ZW1zIGFyZSBzb3J0YWJsZSBieSBzb21lIGRyYWctYW5kLWRyb3AgbWVjaGFuaXNtLlxuKi9cbi51c3lkLXNvcnRhYmxlLWxpc3Qge1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAudXN5ZC1zb3J0YWJsZS1saXN0IGxpOmhvdmVyIHtcbiAgICBjdXJzb3I6IG1vdmU7IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxNDRkcGkpIHtcbiAgLnVzeWQtc29ydGFibGUtbGlzdCBsaSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvaWNvbnMvMTZ4MTYvaGFuZGxlLWFscGhhQDJ4LnBuZyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7IH1cbiAgLnVzeWQtc29ydGFibGUtbGlzdCBsaTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvaWNvbnMvMTZ4MTYvaGFuZGxlQDJ4LnBuZyk7IH0gfVxuXG4vKlxuQSBjb250cm9sIHN0cmlwIGRlc2lnbmVkIHRvIGFwcGVhciB3aGVuIGEgd2lkZ2V0IGlzIGluIGFuIGVkaXRhYmxlIHN0YXRlLiBQZXJtaXRzIGEgc2V0IG9mIHByaW1hcnkgYWN0aW9ucyAoXCJzYXZlXCIsIFwiY2FuY2VsXCIsIFwiZGVsZXRlXCIsIGV0YylcbnRvIGJlIGNvbWJpbmVkIHdpdGggYSBzZXQgb2Ygc2Vjb25kYXJ5IGljb25zIChcImhlbHBcIiwgZXRjKS5cbiovXG4udXN5ZC1lZGl0LWNvbnRyb2xzIC51c3lkLWFjdGlvbnMsIC51c3lkLWVkaXQtY29udHJvbHMgLnVzeWQtYWN0aW9uLWxpc3Qge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLnVzeWQtZWRpdC1jb250cm9scyAudXN5ZC1hY3Rpb24tbGlzdCB7XG4gIG1hcmdpbjogMC42ZW0gMCAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxNWVtO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogMjYwMDsgfVxuICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLW4sIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItbmUsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itbncge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4OyB9XG4gICAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uIC51aS10aXAtYW5jaG9yLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLW5lIC51aS10aXAtYW5jaG9yLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLW53IC51aS10aXAtYW5jaG9yIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uIC51aS10aXAtYW5jaG9yIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItbncgLnVpLXRpcC1hbmNob3Ige1xuICAgIGxlZnQ6IDEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uZSAudWktdGlwLWFuY2hvciB7XG4gICAgcmlnaHQ6IDEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1zLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXNlLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXN3IHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDsgfVxuICAgIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItcyAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1zZSAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1zdyAudWktdGlwLWFuY2hvciB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItcyAudWktdGlwLWFuY2hvciB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTJweDsgfVxuICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXN3IC51aS10aXAtYW5jaG9yIHtcbiAgICBsZWZ0OiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itc2UgLnVpLXRpcC1hbmNob3Ige1xuICAgIHJpZ2h0OiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZSwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lcywgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cbiAgICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLWUgLnVpLXRpcC1hbmNob3IsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZXMgLnVpLXRpcC1hbmNob3IsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZW4gLnVpLXRpcC1hbmNob3Ige1xuICAgICAgbGVmdDogLTExcHg7XG4gICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZSAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lbiAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZXMgLnVpLXRpcC1hbmNob3Ige1xuICAgIGJvdHRvbTogMTJweDsgfVxuICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXcsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd3MsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd24ge1xuICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxuICAgIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItdyAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13cyAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13biAudWktdGlwLWFuY2hvciB7XG4gICAgICByaWdodDogLTExcHg7XG4gICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItdyAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13biAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd3MgLnVpLXRpcC1hbmNob3Ige1xuICAgIGJvdHRvbTogMTJweDsgfVxuXG4udXN5ZC11aS10b29sdGlwIC51aS10aXAtYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gICpiYWNrZ3JvdW5kLWNvbG9yOiAjMjYyNjI2O1xuICBjb2xvcjogYmxhY2s7XG4gIG1heC13aWR0aDogMjEwcHg7XG4gICptYXgtd2lkdGg6IG5vbmU7XG4gICp3aWR0aDogMjEwcHg7XG4gIHBhZGRpbmc6IDdweCA5cHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMXB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDFweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDFweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMXB4O1xuICBib3JkZXItcmFkaXVzOiAxcHg7IH1cblxuLnVzeWQtdWktdG9vbHRpcCAudWktdGlwLWFuY2hvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGJvcmRlcjogMTJweCBzb2xpZCAjMjYyNjI2O1xuICBib3JkZXI6IDEycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgKmJvcmRlcjogMTJweCBzb2xpZCAjMjYyNjI2OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxNWVtO1xuICBmb250LXNpemU6IDEuMmVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgei1pbmRleDogMjYwMDsgfVxuICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLW4sIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItbmUsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itbncge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4OyB9XG4gICAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uIC51aS10aXAtYW5jaG9yLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLW5lIC51aS10aXAtYW5jaG9yLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLW53IC51aS10aXAtYW5jaG9yIHtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uIC51aS10aXAtYW5jaG9yIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItbncgLnVpLXRpcC1hbmNob3Ige1xuICAgIGxlZnQ6IDEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1uZSAudWktdGlwLWFuY2hvciB7XG4gICAgcmlnaHQ6IDEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1zLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXNlLCAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXN3IHtcbiAgICBwYWRkaW5nLXRvcDogMTJweDsgfVxuICAgIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItcyAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1zZSAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1zdyAudWktdGlwLWFuY2hvciB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItcyAudWktdGlwLWFuY2hvciB7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTJweDsgfVxuICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXN3IC51aS10aXAtYW5jaG9yIHtcbiAgICBsZWZ0OiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itc2UgLnVpLXRpcC1hbmNob3Ige1xuICAgIHJpZ2h0OiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZSwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lcywgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7IH1cbiAgICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLWUgLnVpLXRpcC1hbmNob3IsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZXMgLnVpLXRpcC1hbmNob3IsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZW4gLnVpLXRpcC1hbmNob3Ige1xuICAgICAgbGVmdDogLTExcHg7XG4gICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZSAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci1lbiAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItZXMgLnVpLXRpcC1hbmNob3Ige1xuICAgIGJvdHRvbTogMTJweDsgfVxuICAudXN5ZC11aS10b29sdGlwLnVpLXRpcC1jb250YWluZXIudWktYW5jaG9yLXcsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd3MsIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd24ge1xuICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxuICAgIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItdyAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13cyAudWktdGlwLWFuY2hvciwgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13biAudWktdGlwLWFuY2hvciB7XG4gICAgICByaWdodDogLTExcHg7XG4gICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3ItdyAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTEycHg7IH1cbiAgLnVzeWQtdWktdG9vbHRpcC51aS10aXAtY29udGFpbmVyLnVpLWFuY2hvci13biAudWktdGlwLWFuY2hvciB7XG4gICAgdG9wOiAxMnB4OyB9XG4gIC51c3lkLXVpLXRvb2x0aXAudWktdGlwLWNvbnRhaW5lci51aS1hbmNob3Itd3MgLnVpLXRpcC1hbmNob3Ige1xuICAgIGJvdHRvbTogMTJweDsgfVxuXG4udXN5ZC11aS10b29sdGlwIC51aS10aXAtYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNjI2MjY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gICpiYWNrZ3JvdW5kLWNvbG9yOiAjMjYyNjI2O1xuICBjb2xvcjogYmxhY2s7XG4gIG1heC13aWR0aDogMjEwcHg7XG4gICptYXgtd2lkdGg6IG5vbmU7XG4gICp3aWR0aDogMjEwcHg7XG4gIHBhZGRpbmc6IDdweCA5cHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMXB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDFweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDFweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMXB4O1xuICBib3JkZXItcmFkaXVzOiAxcHg7IH1cblxuLnVzeWQtdWktdG9vbHRpcCAudWktdGlwLWFuY2hvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGJvcmRlcjogMTJweCBzb2xpZCAjMjYyNjI2O1xuICBib3JkZXI6IDEycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjg1KTtcbiAgKmJvcmRlcjogMTJweCBzb2xpZCAjMjYyNjI2OyB9XG5cbi51c3lkLXVpLW1hc2sudXN5ZC1hcHBzLXR1dG9yaWFsLW1hc2sge1xuICB6LWluZGV4OiAyNTAwOyB9XG5cbi51aS1hbmNob3Itcy0gLnVpLXRpcC1hbmNob3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC05OTllbTtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCAudWktdGlwLWJvZHkgLnVzeWQtdHV0b3JpYWwtaGludCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVpLXRpcC1ib2R5IC51c3lkLXVpLWVtcGhhc2lzLXN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBjb2xvcjogYmxhY2s7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmU2YTk7XG4gIGJhY2tncm91bmQ6ICNmZmY1ZGM7IH1cblxuLnVzeWQtYXBwcy10dXRvcmlhbC1ob2lzdGVkIHtcbiAgei1pbmRleDogMjYwMDtcbiAgKnpvb206IDE7IH1cblxuLmNsZWFyZml4IHtcbiAgKnpvb206IDE7IH1cbiAgLmNsZWFyZml4OmJlZm9yZSwgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIC5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLnVzeWQtYXBwcy10dXRvcmlhbC1ob2lzdGVkIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTAwcHggIzAwMDtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMTAwcHggIzAwMDtcbiAgYm94LXNoYWRvdzogMCAwIDEwMHB4ICMwMDA7IH1cblxuYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQudWktdGlwLWNvbnRhaW5lciB7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbmJvZHkgLnVzeWQtYXBwcy10dXRvcmlhbC1jb250ZW50IC51aS10aXAtYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiBibGFjaztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgNTBweCAjMDAwO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCA1MHB4ICMwMDA7XG4gIGJveC1zaGFkb3c6IDAgMCA1MHB4ICMwMDA7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7IH1cblxuYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVpLXRpcC1jb250ZW50IHtcbiAgcGFkZGluZzogMS4zZW0gMS44ZW07IH1cblxuYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVpLXRpcC1hbmNob3Ige1xuICBib3JkZXItY29sb3I6ICNmZmY7IH1cblxuYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtYXBwcy10dXRvcmlhbC1idXR0b25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbjogMS41ZW0gMCAwLjVlbTtcbiAgKnpvb206IDE7IH1cbiAgYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtYXBwcy10dXRvcmlhbC1idXR0b25zOmJlZm9yZSwgYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtYXBwcy10dXRvcmlhbC1idXR0b25zOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiOyB9XG4gIGJvZHkgLnVzeWQtYXBwcy10dXRvcmlhbC1jb250ZW50IC51c3lkLWFwcHMtdHV0b3JpYWwtYnV0dG9uczphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtYXBwcy10dXRvcmlhbC1idXR0b25zIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDsgfVxuICBib2R5IC51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCAudXN5ZC1hcHBzLXR1dG9yaWFsLWJ1dHRvbnMgLnVzeWQtdHV0b3JpYWwtY3RybC1wcmV2IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTUwKTtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtYXBwcy10dXRvcmlhbC1idXR0b25zIC51c3lkLXR1dG9yaWFsLWN0cmwtcHJldjpob3ZlciwgYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtYXBwcy10dXRvcmlhbC1idXR0b25zIC51c3lkLXR1dG9yaWFsLWN0cmwtcHJldjpmb2N1cyB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcbiAgICAgIC1tb3otdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuICAgICAgLW1zLXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcbiAgICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTsgfVxuICBib2R5IC51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCAudXN5ZC1hcHBzLXR1dG9yaWFsLWJ1dHRvbnMudXN5ZC11aS1hbGlnbi1jZW50cmUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG5ib2R5IC51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCBoMiB7XG4gIG1hcmdpbjogMC4yZW0gMCAwLjVlbTsgfVxuXG5ib2R5IC51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCBwLCBib2R5IC51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCBsaSB7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgcCArIHAsIGJvZHkgLnVzeWQtYXBwcy10dXRvcmlhbC1jb250ZW50IGxpICsgcCB7XG4gICAgbWFyZ2luLXRvcDogMWVtOyB9XG5cbi51c3lkLXR1dG9yaWFsLXNlYXJjaC1oaW50IHtcbiAgei1pbmRleDogLTQwMDtcbiAgbGVmdDogMjFlbTtcbiAgYm90dG9tOiAyLjVlbTtcbiAgYmFja2dyb3VuZDogdXJsKC4uL2Fzc2V0cy9pbWcvY29tcG9uZW50cy90dXRvcmlhbC9ob21lLXNlYXJjaC1hcnJvdy5wbmcpO1xuICB3aWR0aDogMTgzcHg7XG4gIGhlaWdodDogMjg5cHg7IH1cblxuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyBoMiB7XG4gIHotaW5kZXg6IDI2MTA7IH1cblxuLnVzeWQtdHV0b3JpYWwtc2VhcmNoLWhpbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLnVzeWQtYXBwcy10dXRvcmlhbC1ob2lzdGVkLnVzeWQtdWktY29udGVudC1ncm91cCwgLnVzeWQtYXBwcy10dXRvcmlhbC1ob2lzdGVkLnVzeWQtdWktY29tbW9uLW5hdiwgLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyBoMi51c3lkLWFwcHMtdHV0b3JpYWwtaG9pc3RlZCwgLnVzeWQtYXBwcy10dXRvcmlhbC1ob2lzdGVkLnVzeWQtdWktZXhwYW5kZXItd3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEzMDBweCkge1xuICAudXN5ZC1hcHBzLXR1dG9yaWFsLWludHJhbmV0LWhvbWUgLnVzeWQtYXBwcy10dXRvcmlhbC1jb250ZW50IC51aS10aXAtYm9keSB7XG4gICAgbWF4LXdpZHRoOiA2MGVtO1xuICAgICptYXgtd2lkdGg6IG5vbmU7XG4gICAgKndpZHRoOiA2MGVtOyB9XG4gIC51c3lkLWFwcHMtdHV0b3JpYWwtaW50cmFuZXQtaG9tZSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtdHV0b3JpYWwtbm9ybWFsLXN0ZXAge1xuICAgIHdpZHRoOiAxOWVtOyB9XG4gIC51c3lkLWFwcHMtdHV0b3JpYWwtaW50cmFuZXQtaG9tZSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQgLnVzeWQtdHV0b3JpYWwtdW5hbmNob3JlZC1zdGVwIHtcbiAgICB3aWR0aDogMzVlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudXN5ZC1hcHBzLXR1dG9yaWFsLWludHJhbmV0LWhvbWUgLnVzeWQtYXBwcy10dXRvcmlhbC1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAqbWF4LXdpZHRoOiBub25lO1xuICAgICp3aWR0aDogOTAlOyB9XG4gICAgLnVzeWQtYXBwcy10dXRvcmlhbC1pbnRyYW5ldC1ob21lIC51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCAudWktdGlwLWJvZHkge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgKm1heC13aWR0aDogbm9uZTtcbiAgICAgICp3aWR0aDogMTAwJTsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudXN5ZC1sb2dpbi1jb21wb25lbnQge1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIDAgLTIwcHg7XG4gICAgYm9yZGVyOiBub25lOyB9IH1cblxuLnVzeWQtaG9tZS1sb2dpbi1oZWxwIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luOiAwIDAgMCAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiA4cHg7IH1cbiAgLnVzeWQtaG9tZS1sb2dpbi1oZWxwIGxpIHtcbiAgICBtYXJnaW46IDAuMzVlbSAwOyB9XG5cbi51c3lkLWhvbWUtbG9naW4tYnV0dG9uIHtcbiAgd2lkdGg6IDcxcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC15YW1tZXItc2hhcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3MmM2O1xuICBjb2xvcjogd2hpdGU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW1zLWJvcmRlci1yYWRpdXM6IDJweDtcbiAgLW8tYm9yZGVyLXJhZGl1czogMnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDEuMWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBoZWlnaHQ6IDI4cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIC8qIElFOCAqL1xuICAqbGluZS1oZWlnaHQ6IDI4cHg7XG4gIC8qIElFNyAqL1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgaGVpZ2h0OiAyN3B4O1xuICBmb250LXNpemU6IDFlbTsgfVxuICAudXN5ZC15YW1tZXItc2hhcmU6bm90KFtkdW1teV0pIHtcbiAgICBsaW5lLWhlaWdodDogYXV0bztcbiAgICAvKiBOT1QgSUU3L0lFOCAqLyB9XG4gIC51c3lkLXlhbW1lci1zaGFyZSBhIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLnVzeWQteWFtbWVyLXNoYXJlIHNwYW4ge1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgLnVzeWQteWFtbWVyLXNoYXJlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAtb3dnLWxpbmVhci1ncmFkaWVudCgjMDA4N2VhLCAjMDA1ZGEyKTtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgjMDA4N2VhLCAjMDA1ZGEyKTtcbiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCgjMDA4N2VhLCAjMDA1ZGEyKTtcbiAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoIzAwODdlYSwgIzAwNWRhMik7XG4gICAgLXBpZS1iYWNrZ3JvdW5kOiAtcGllLWxpbmVhci1ncmFkaWVudCgjMDA4N2VhLCAjMDA1ZGEyKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIzAwODdlYSwgIzAwNWRhMik7XG4gICAgYmFja2dyb3VuZDogIzAwNzJjNlxcOTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgLW1vei1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC51c3lkLXlhbW1lci1zaGFyZTphY3RpdmUge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgICAtbW96LWJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnVzeWQteWFtbWVyLXNoYXJlOnZpc2l0ZWQsIC51c3lkLXlhbW1lci1zaGFyZTpsaW5rIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLnVzeWQteWFtbWVyLXNoYXJlW2Rpc2FibGVkXSB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6ICM3NTc1NzU7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4OyB9XG5cbi51c3lkLXVpLXlhbW1lci1zaGFyZSB7XG4gIG1hcmdpbi10b3A6IDFweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMHB4O1xuICB0b3A6IDE1MHB4OyB9XG5cbi51c3lkLWljb24teWFtbWVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKC4uL2Fzc2V0cy9pbWcvaWNvbnMvMTZ4MTYveWFtbWVyLnBuZykgbm8tcmVwZWF0IHRvcCBsZWZ0O1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgKmRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuXG4udXN5ZC15YW1tZXItbG9naW4ge1xuICBwYWRkaW5nLXRvcDogMjZweDsgfVxuICAudXN5ZC15YW1tZXItbG9naW4gLnVzeWQteWFtbWVyLWxvZ2luLWxvZ28ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICBjb2xvcjogIzM5NkI5QTsgfVxuICAudXN5ZC15YW1tZXItbG9naW4gLnVzeWQtdWktc3RhbmRhcmQtbGlzdCwgLnVzeWQteWFtbWVyLWxvZ2luIC51c3lkLWJvZHktY29udGVudCB1bCwgLnVzeWQtYm9keS1jb250ZW50IC51c3lkLXlhbW1lci1sb2dpbiB1bCwgLnVzeWQteWFtbWVyLWxvZ2luIC51c3lkLWFzaWRlLWNvbnRlbnQgdWwsIC51c3lkLWFzaWRlLWNvbnRlbnQgLnVzeWQteWFtbWVyLWxvZ2luIHVsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH1cbiAgLnVzeWQteWFtbWVyLWxvZ2luIHVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgMCAxNXB4OyB9XG4gIC51c3lkLXlhbW1lci1sb2dpbiBwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cbiAgLnVzeWQteWFtbWVyLWxvZ2luIC51c3lkLXVpLWJ1dHRvbi1wcmltYXJ5OnZpc2l0ZWQsIC51c3lkLXlhbW1lci1sb2dpbiAudXN5ZC11aS1idXR0b24tcHJpbWFyeTpsaW5rIHtcbiAgICBmbG9hdDogbGVmdDsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDE0NGRwaSkge1xuICAudXN5ZC1pY29uLXlhbW1lciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2Fzc2V0cy9pbWcvaWNvbnMvMTZ4MTYveWFtbWVyQDJ4LnBuZyk7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC15YW1tZXItbG9naW4ge1xuICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9XG4gICAgLnVzeWQteWFtbWVyLWxvZ2luIC51c3lkLXlhbW1lci1sb2dpbi1sb2dvIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDsgfVxuICAgIC51c3lkLXlhbW1lci1sb2dpbiAudXN5ZC11aS1zdGFuZGFyZC1saXN0LCAudXN5ZC15YW1tZXItbG9naW4gLnVzeWQtYm9keS1jb250ZW50IHVsLCAudXN5ZC1ib2R5LWNvbnRlbnQgLnVzeWQteWFtbWVyLWxvZ2luIHVsLCAudXN5ZC15YW1tZXItbG9naW4gLnVzeWQtYXNpZGUtY29udGVudCB1bCwgLnVzeWQtYXNpZGUtY29udGVudCAudXN5ZC15YW1tZXItbG9naW4gdWwge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW46IGluaGVyaXQ7IH0gfVxuXG4uY2xlYXJmaXgge1xuICAqem9vbTogMTsgfVxuICAuY2xlYXJmaXg6YmVmb3JlLCAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4udXN5ZC1zaG93LXhzbWFsbCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4udXN5ZC1oaWRlLXhzbWFsbCB7XG4gIGRpc3BsYXk6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuXG4udXN5ZC1zaG93LXNtYWxsIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi51c3lkLWhpZGUtc21hbGwge1xuICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblxuLnVzeWQtc2hvdy14bGFyZ2Uge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnVzeWQtaGlkZS14bGFyZ2Uge1xuICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLXNob3cteHNtYWxsIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnVzeWQtaGlkZS14c21hbGwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAudXN5ZC1zaG93LWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC1zaG93LXNtYWxsIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cbiAgLnVzeWQtaGlkZS1zbWFsbCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC51c3lkLXNob3ctbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgLnVzeWQtc2hvdy1sYXJnZSB7XG4gICAgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4gIC51c3lkLWhpZGUtbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAudXN5ZC1zaG93LWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4udXN5ZC1yZXNwb25zaXZlLWVtYmVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuICAvKiAxNjo5ICovXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xuICBoZWlnaHQ6IDA7IH1cblxuLnVzeWQtcmVzcG9uc2l2ZS1lbWJlZCBpZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4udXN5ZC1yZXNwb25zaXZlLWltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi51c3lkLWhvcml6b250YWwtbWFya2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjNzc3O1xuICBoZWlnaHQ6IDA7IH1cblxuLnVzeWQtaG9yaXpvbnRhbC1tYXJrZXItbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTZweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAjNzc3OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi5zb3J0aW5nOmFmdGVyIHtcbiAgY29udGVudDogXCLupKBcIjtcbiAgZm9udC1mYW1pbHk6IGZvbnRlbGxvO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgKnpvb206IGV4cHJlc3Npb24oIHRoaXMucnVudGltZVN0eWxlWyd6b29tJ10gPSAnMScsIHRoaXMuaW5uZXJIVE1MID0gJyYjeGU5MjA7Jm5ic3A7Jyk7IH1cblxuLnNvcnRpbmdfZGVzYzphZnRlciB7XG4gIGNvbnRlbnQ6IFwi7qShXCI7XG4gIGZvbnQtZmFtaWx5OiBmb250ZWxsbztcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICp6b29tOiBleHByZXNzaW9uKCB0aGlzLnJ1bnRpbWVTdHlsZVsnem9vbSddID0gJzEnLCB0aGlzLmlubmVySFRNTCA9ICcmI3hlOTIxOyZuYnNwOycpOyB9XG5cbi5zb3J0aW5nX2FzYzphZnRlciB7XG4gIGNvbnRlbnQ6IFwi7qSiXCI7XG4gIGZvbnQtZmFtaWx5OiBmb250ZWxsbztcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICp6b29tOiBleHByZXNzaW9uKCB0aGlzLnJ1bnRpbWVTdHlsZVsnem9vbSddID0gJzEnLCB0aGlzLmlubmVySFRNTCA9ICcmI3hlOTIyOyZuYnNwOycpOyB9XG5cbi5kYXRhVGFibGVzX2ZpbHRlciB7XG4gIGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG4gIHBhZGRpbmc6IDFlbTsgfVxuICAuZGF0YVRhYmxlc19maWx0ZXIgbGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5kYXRhVGFibGVzX2ZpbHRlciBpbnB1dCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7IH1cblxuLnVzeWQtdG9wLXBhZ2VzIC51c3lkLWhlbHAtYWN0aW9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4udXN5ZC10b3AtcGFnZXMgaDIge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5jbGVhcmZpeCB7XG4gICp6b29tOiAxOyB9XG4gIC5jbGVhcmZpeDpiZWZvcmUsIC5jbGVhcmZpeDphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAuY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAudXN5ZC1zZWFyY2gtbmF2LWNvbXBhY3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnVzeWQtcmVzdWx0cyB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLXNlYXJjaC1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnVzeWQtc2VhcmNoLXRvZ2dsZSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC51c3lkLXNlYXJjaC1uYXYtY29tcGFjdCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTY7XG4gICAgbWFyZ2luOiAwIC0yZW07IH1cbiAgICAudXN5ZC1zZWFyY2gtbmF2LWNvbXBhY3QgLnVzeWQtc2VhcmNoLWZvcm0ge1xuICAgICAgcGFkZGluZzogMCAyMHB4IDAgMjBweDtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICAudXN5ZC1zZWFyY2gtbmF2LWNvbXBhY3QgLnVzeWQtc2VhcmNoLXN1Z2dlc3Rpb24ge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgLnVzeWQtc2VhcmNoLWV4cGFuZGVyLWNvbnRyb2xzIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBib3JkZXItY29sb3I6ICNlNmU2ZTY7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweCAwIDAgMDtcbiAgICAqem9vbTogMTsgfVxuICAgIC51c3lkLXNlYXJjaC1leHBhbmRlci1jb250cm9sczpiZWZvcmUsIC51c3lkLXNlYXJjaC1leHBhbmRlci1jb250cm9sczphZnRlciB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgICAudXN5ZC1zZWFyY2gtZXhwYW5kZXItY29udHJvbHM6YWZ0ZXIge1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgICAudXN5ZC1zZWFyY2gtZXhwYW5kZXItY29udHJvbHMgcCB7XG4gICAgICBtYXJnaW46IDVweCAwIDAgMDsgfVxuICAudXN5ZC1zZWFyY2gtZXhwYW5kZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgcGFkZGluZzogMjBweDsgfVxuICAudXN5ZC1zZWFyY2gtZmlsdGVycyB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNmU2ZTY7IH1cbiAgICAudXN5ZC1zZWFyY2gtZmlsdGVycyAudXN5ZC11aS1mb3JtLWxpbmU6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLnVzeWQtc2VhcmNoLXF1ZXJ5LWZpZWxkIHtcbiAgd2lkdGg6IDgwJTsgfVxuXG4udXN5ZC1zZWFyY2gtZmlsdGVycyB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG5cbi51c3lkLXNlYXJjaC1maWx0ZXIge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC51c3lkLXNlYXJjaC1maWx0ZXIgaDMge1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuXG4udXN5ZC1zZWFyY2gtZmlsdGVyLWFjdGl2ZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi51c3lkLXNlYXJjaC1mb3JtIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDIwcHggMCAwIDA7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC51c3lkLXNlYXJjaC1mb3JtIC51c3lkLXVpLWZvcm0taW5wdXQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDsgfVxuICAudXN5ZC1zZWFyY2gtZm9ybSAudXN5ZC11aS1mb3JtLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgd2lkdGg6IDIuNWVtOyB9XG5cbi51c3lkLXNlYXJjaC1zdWdnZXN0aW9uIHtcbiAgbWFyZ2luOiAxNXB4IDA7IH1cblxuLnVzeWQtc2VhcmNoLW5vLXJlc3VsdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICM3Njc2NzY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMjVweCAxNXB4OyB9XG4gIC51c3lkLXNlYXJjaC1uby1yZXN1bHQgLmljb24tc2VhcmNoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5cbi51c3lkLXJlc3VsdCB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgLnVzeWQtcmVzdWx0LnVzeWQtY2FyZCB7XG4gICAgcGFkZGluZzogMTBweCAxMHB4IDEwcHggMDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cbiAgLnVzeWQtcmVzdWx0IHAge1xuICAgIG1hcmdpbjogMDsgfVxuICAudXN5ZC1yZXN1bHQgLnVzeWQtcmVzdWx0LWljb24ge1xuICAgIHdpZHRoOiA3MnB4O1xuICAgIGNvbG9yOiAjOTQ5NDk0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDMycHg7IH1cbiAgLnVzeWQtcmVzdWx0IC51c3lkLXJlc3VsdC10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9XG4gIC51c3lkLXJlc3VsdCAudXN5ZC1yZXN1bHQtbWV0YWRhdGEge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBjb2xvcjogIzc1NzU3NTsgfVxuICAudXN5ZC1yZXN1bHQgLnVzeWQtcmVzdWx0LXVybCB7XG4gICAgY29sb3I6ICM0Qjk0NTA7XG4gICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICAgIHdoaXRlLXNwYWNlOiAtcHJlLXdyYXA7XG4gICAgd2hpdGUtc3BhY2U6IC1vLXByZS13cmFwO1xuICAgIHdoaXRlLXNwYWNlOiAtbW96LXByZS13cmFwO1xuICAgIHdoaXRlLXNwYWNlOiAtaHAtcHJlLXdyYXA7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudXN5ZC1yZXN1bHQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAgIC51c3lkLXJlc3VsdCAudXN5ZC1yZXN1bHQtaWNvbiB7XG4gICAgICB3aWR0aDogNDRweDsgfVxuICAgIC51c3lkLXJlc3VsdC51c3lkLWNhcmQ6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogIzk5OTk5OTsgfSB9XG5cbi51c3lkLWNvbnRhY3QgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAudXN5ZC1jb250YWN0IGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC10aXRsZS1ncm91cCB7XG4gICp6b29tOiAxOyB9XG4gIC51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC10aXRsZS1ncm91cDpiZWZvcmUsIC51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC10aXRsZS1ncm91cDphZnRlciB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY29udGVudDogXCJcIjsgfVxuICAudXN5ZC1jb250YWN0IC51c3lkLWNvbnRhY3QtdGl0bGUtZ3JvdXA6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC1zdWJ0aXRsZSB7XG4gIGNvbG9yOiAjNzU3NTc1O1xuICBmb250LXNpemU6IDE0cHg7IH1cbiAgLnVzeWQtY29udGFjdCAudXN5ZC1jb250YWN0LXN1YnRpdGxlIGEge1xuICAgIGNvbG9yOiAjNzU3NTc1OyB9XG5cbi51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC1kZXRhaWxzIHtcbiAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG4udXN5ZC1jb250YWN0IC51c3lkLWNvbnRhY3QtZGV0YWlsID4gLnVzeWQtaXRlbS1sYWJlbCB7XG4gIHdpZHRoOiA1MHB4OyB9XG5cbi51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC1kZXRhaWwgLnVzeWQtbGFiZWxsZWQtbGlzdCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnVzeWQtY29udGFjdCAudXN5ZC1jb250YWN0LWRldGFpbCAudXN5ZC1sYWJlbGxlZC1saXN0ID4gLnVzeWQtaXRlbS1kZXRhaWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDsgfVxuXG4udXN5ZC1jb250YWN0IC51c3lkLWNvbnRhY3QtYWRkaXRpb25hbC1udW1iZXJzIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB3aGl0ZS1zcGFjZTogbm8td3JhcDsgfVxuXG4udXN5ZC1jb250YWN0IC51c3lkLWNvbnRhY3QtZGVzY3JpcHRpb24ge1xuICBtYXJnaW46IDEwcHggMDsgfVxuXG4udXN5ZC1jb250YWN0IC51c3lkLWNvbnRhY3QtbWFwIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgaGVpZ2h0OiAyNTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2U2ZTZlNjtcbiAgd2lkdGg6IDk4LjUlOyB9XG4gIC51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC1tYXAudXN5ZC1oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC1lbWFpbCBhIHtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gIHdoaXRlLXNwYWNlOiAtcHJlLXdyYXA7XG4gIHdoaXRlLXNwYWNlOiAtby1wcmUtd3JhcDtcbiAgd2hpdGUtc3BhY2U6IC1tb3otcHJlLXdyYXA7XG4gIHdoaXRlLXNwYWNlOiAtaHAtcHJlLXdyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDsgfVxuXG4udXN5ZC1jb250YWN0IC51c3lkLWNvbnRhY3QtZnVsbC1hZGRyZXNzLnVzeWQtaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnVzeWQtY29udGFjdCAudXN5ZC1jb250YWN0LWxvY2F0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAudXN5ZC1jb250YWN0IC51c3lkLWNvbnRhY3QtbG9jYXRpb24gLnVzeWQtdHJpZ2dlci1zaG93LWFkZHJlc3Mge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB9XG5cbi51c3lkLWNvbnRhY3QgLnVzeWQtY29udGFjdC1hZGRyZXNzIHtcbiAgbWFyZ2luOiAwOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkge1xuICAudXN5ZC1jb250YWN0LnVzeWQtY29tcGFjdCAudXN5ZC1jb250YWN0LWRldGFpbCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAudXN5ZC1jb250YWN0LnVzeWQtY29tcGFjdCAudXN5ZC1jb250YWN0LWRldGFpbDpudGgtb2YtdHlwZShldmVuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLnVzeWQtY2FyZCAudXN5ZC1jb250YWN0LWRldGFpbCB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAudXN5ZC1jYXJkIC51c3lkLWNvbnRhY3Qtc3VidGl0bGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLnVzeWQtY2FyZCAudXN5ZC1jb250YWN0LWxvY2F0aW9uIC51c3lkLWl0ZW0tbGFiZWwge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAudXN5ZC1jYXJkIC51c3lkLWNvbnRhY3QtdXJsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgICAudXN5ZC1jYXJkIC51c3lkLWNvbnRhY3QtdXJsIC51c3lkLWNvbnRhY3QtbmFtZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAtOTk5ZW07IH1cbiAgICAudXN5ZC1jYXJkIC51c3lkLWNvbnRhY3QtdXJsIC51c3lkLWNvbnRhY3QtZGV0YWlsIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gIC51c3lkLWNvbnRhY3QgLnVzeWQtYXBwLXBob25lYm9vay10b29sYm94IHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgLnVzeWQtY29udGFjdCAudXN5ZC1jb250YWN0LXVybCB7XG4gICAgZmxvYXQ6IG5vbmU7IH0gfVxuXG4vKmNhbGwgdG8gYWN0aW9uIG1vZHVsZSovXG4udXN5ZC1jdGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2NDYyNjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjbGVhcjogYm90aDtcbiAgY29sb3I6IHdoaXRlOyB9XG4gIC51c3lkLWN0YTp2aXNpdGVkIHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLnVzeWQtY3RhIC51c3lkLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnVzeWQtY3RhIC51c3lkLXN0cmFwbGluZSB7XG4gICAgbWFyZ2luOiAxNXB4IDAgMDsgfVxuICAudXN5ZC1jdGE6Zm9jdXMsIC51c3lkLWN0YTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Q5MzkxOTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLnVzeWQtY3RhLmNoYXJjb2FsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQ0ZDRkOyB9XG4gICAgLnVzeWQtY3RhLmNoYXJjb2FsOmhvdmVyLCAudXN5ZC1jdGEuY2hhcmNvYWw6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQwNDA0MDsgfVxuXG4vKnB1bGwgcXVvdGUgbW9kdWxlKi9cbi51c3lkLXB1bGwtcXVvdGUudXN5ZC1xdW90ZS1jbGlwIGJsb2NrcXVvdGUge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi8qY2FsbCB0byBhY3Rpb24gbW9kdWxlKi9cbi51c3lkLXRpbWVsaW5lcyB7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjZTY0NjI2O1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC51c3lkLXRpbWVsaW5lcyBoMiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4OyB9XG4gIC51c3lkLXRpbWVsaW5lcyAudXN5ZC1zZWdtZW50IHtcbiAgICBwYWRkaW5nOiAyMHB4IDBweDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgICAudXN5ZC10aW1lbGluZXMgLnVzeWQtc2VnbWVudCAudXN5ZC10aW1lbGluZS1oZWFkaW5nIGgzLnVzeWQtdGl0bGUge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLnVzeWQtdGltZWxpbmVzIC51c3lkLXNlZ21lbnQgLnVzeWQtdGltZWxpbmUtaGVhZGluZyB1bC51c3lkLWRhdGUtZm9ybWF0IHtcbiAgICAgIGJhY2tncm91bmQ6ICM0MjQyNDI7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgYm9yZGVyOiAxcHggZG90dGVkIHdoaXRlO1xuICAgICAgYm94LXNoYWRvdzogNHB4IDRweCAxcHggIzg4ODtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMTBweCAyMHB4IDIwcHggMHB4O1xuICAgICAgcGFkZGluZzogMTVweDtcbiAgICAgIG1pbi13aWR0aDogNjVweDtcbiAgICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgICAudXN5ZC10aW1lbGluZXMgLnVzeWQtc2VnbWVudCAudXN5ZC10aW1lbGluZS1oZWFkaW5nIHVsLnVzeWQtZGF0ZS1mb3JtYXQgLnVzeWQtdWktZGF0ZSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLnVzeWQtdGltZWxpbmVzIC51c3lkLXNlZ21lbnQgLnVzeWQtdGltZWxpbmUtaGVhZGluZyB1bC51c3lkLWRhdGUtZm9ybWF0IGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4OyB9XG4gICAgICAudXN5ZC10aW1lbGluZXMgLnVzeWQtc2VnbWVudCAudXN5ZC10aW1lbGluZS1oZWFkaW5nIHVsLnVzeWQtZGF0ZS1mb3JtYXQgLnVzeWQtbW9udGgge1xuICAgICAgICBjb2xvcjogIzQyNDI0MjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAudXN5ZC10aW1lbGluZXMgLnVzeWQtc2VnbWVudCAudXN5ZC10aW1lbGluZS1oZWFkaW5nIHVsLnVzeWQtZGF0ZS1mb3JtYXQgLnVzeWQtbW9udGggLnVzeWQtdWktZGF0ZSB7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDsgfVxuICAgICAgLnVzeWQtdGltZWxpbmVzIC51c3lkLXNlZ21lbnQgLnVzeWQtdGltZWxpbmUtaGVhZGluZyB1bC51c3lkLWRhdGUtZm9ybWF0IC51c3lkLWRheSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAudXN5ZC10aW1lbGluZXMgLnVzeWQtc2VnbWVudCAudXN5ZC10aW1lbGluZS1oZWFkaW5nIHVsLnVzeWQtZGF0ZS1mb3JtYXQgLnVzeWQteWVhciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLnVzeWQtdGltZWxpbmVzIC51c3lkLXNlZ21lbnQgLnVzeWQtaW1hZ2Uge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfVxuICAgICAgLnVzeWQtdGltZWxpbmVzIC51c3lkLXNlZ21lbnQgLnVzeWQtaW1hZ2UgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAudXN5ZC10aW1lbGluZXMgLnVzeWQtc2VnbWVudCAudXN5ZC1zdW1tYXJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgICAudXN5ZC10aW1lbGluZXMgLnVzeWQtc2VnbWVudCAudXN5ZC1saW5rIGEge1xuICAgICAgY29sb3I6ICMxOTViOTg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICAgICAgZm9udC1zaXplOiAxNHB4OyB9XG4gIC51c3lkLXRpbWVsaW5lcyAudXN5ZC1idG4tbW9yZSBhLCAudXN5ZC10aW1lbGluZXMgLnVzeWQtYnRuLW1vcmUgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjNmUyMTllO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTY0NjI2O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBwYWRkaW5nOiAxMHB4IDBweDsgfVxuICAudXN5ZC10aW1lbGluZXMgLnVzeWQtYnRuLW1vcmUgLnVzeWQtbGVzcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnRpbWVsaW5lTW9kdWxlIC51c3lkLXRpbWVsaW5lLXNlZ21lbnQgLnVzeWQtaW1hZ2Uge1xuICAgIG1heC13aWR0aDogMzAwcHg7IH1cbiAgLnRpbWVsaW5lTW9kdWxlIC51c3lkLXRpbWVsaW5lLXNlZ21lbnQ6bnRoLWNoaWxkKDJuKzcpIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLXRpbWVsaW5lLm9wZW4gLnVzeWQtdGltZWxpbmUtc2VnbWVudDpudGgtY2hpbGQoMm4rNykge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51c3lkLXRpbWVsaW5lLm9wZW4gLnVzeWQtbW9yZSAuc2VlTGVzcyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnVzeWQtdGltZWxpbmUub3BlbiAudXN5ZC1tb3JlIC5zZWVNb3JlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51c3lkLXRpbWVsaW5lIC51c3lkLXNlZ21lbnRzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAudXN5ZC10aW1lbGluZSAudXN5ZC1zZWdtZW50czo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsgfVxuICAudXN5ZC10aW1lbGluZSAudXN5ZC1zZWdtZW50IHtcbiAgICB3aWR0aDogNTAlO1xuICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgIGJvcmRlci1sZWZ0OiBub25lOyB9XG4gICAgLnVzeWQtdGltZWxpbmUgLnVzeWQtc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwcHg7IH1cbiAgICAudXN5ZC10aW1lbGluZSAudXN5ZC1zZWdtZW50Omxhc3QtY2hpbGQge1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gICAgLnVzeWQtdGltZWxpbmUgLnVzeWQtc2VnbWVudC5yaWdodCB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICB3aWR0aDogNDUlO1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4OyB9XG4gICAgLnVzeWQtdGltZWxpbmUgLnVzeWQtc2VnbWVudC5sZWZ0IHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xuICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAudXN5ZC10aW1lbGluZSAudXN5ZC1idG4tbW9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi51c3lkLXBhZ2Utc3VtbWFyeSB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC51c3lkLXBhZ2Utc3VtbWFyeSBwIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0MCU7IH1cbiAgICAudXN5ZC1wYWdlLXN1bW1hcnkgcDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9XG5cbi51c3lkLXB1Ymxpc2gtZGF0ZSB7XG4gIHBhZGRpbmctdG9wOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi51c3lkLWRvY3VtZW50LWVtYmVkIHtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgY2xlYXI6IGJvdGg7IH1cbiAgLnVzeWQtZG9jdW1lbnQtZW1iZWQgLnVzeWQtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cblxuLnVzeWQtbmV3cy1saXN0aW5nIHtcbiAgbWFyZ2luOiAwIDAgMjBweCAwOyB9XG4gIC51c3lkLW5ld3MtbGlzdGluZyBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIG1hcmdpbi1ib3R0b206IDM1cHg7IH1cbiAgICAudXN5ZC1uZXdzLWxpc3RpbmcgbGkgLnVzeWQtdWktbGluayB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzE5NWI5ODsgfVxuICAgICAgLnVzeWQtbmV3cy1saXN0aW5nIGxpIC51c3lkLXVpLWxpbmsgLnVzeWQtbGlzdGluZy1oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDE1cHggMCAxMHB4IDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAgICAgICAudXN5ZC1uZXdzLWxpc3RpbmcgbGkgLnVzeWQtdWktbGluayAudXN5ZC1saXN0aW5nLWhlYWRlcjpmb2N1cywgLnVzeWQtbmV3cy1saXN0aW5nIGxpIC51c3lkLXVpLWxpbmsgLnVzeWQtbGlzdGluZy1oZWFkZXI6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gICAgICAudXN5ZC1uZXdzLWxpc3RpbmcgbGkgLnVzeWQtdWktbGluayAudXN5ZC11aS1kYXRlIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLnVzeWQtbmV3cy1saXN0aW5nIGxpIC51c3lkLWRlc2NyaXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgICAgIC51c3lkLW5ld3MtbGlzdGluZyBsaSAudXN5ZC1kZXNjcmlwdGlvbiBwIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAudXN5ZC1uZXdzLWxpc3RpbmcudXN5ZC1uZXdzLWFydGljbGUtbGlzdGluZyAudXN5ZC1saXN0aW5nLWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cblxuLnVzeWQtZmVhdHVyZS1hc2lkZSAudXN5ZC1uZXdzLWxpc3Rpbmcge1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2U2NDYyNjsgfVxuXG4udXN5ZC1tYXBzIHtcbiAgbWFyZ2luOiAyMHB4IDA7IH1cbiAgLnVzeWQtbWFwcyAudXN5ZC1tYXAge1xuICAgIG1hcmdpbjogMTVweCAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDI5NXB4OyB9XG4gIC51c3lkLW1hcHMgLnVzeWQtYWRkcmVzcyB7XG4gICAgZm9udC1zaXplOiAxLjRlbTsgfVxuICAudXN5ZC1tYXBzIC51c3lkLWFkZHJlc3MtbG9jYXRpb24ge1xuICAgIG1hcmdpbi1yaWdodDogMWVtOyB9XG4gIC51c3lkLW1hcHMgLnVzeWQtZGlyZWN0aW9uLWxpbmsge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC51c3lkLWFzaWRlIC51c3lkLW1hcC1nb29nbGUgLnVzeWQtbWFwIHtcbiAgICB3aWR0aDogMjgwcHg7XG4gICAgaGVpZ2h0OiAyODBweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICAudXN5ZC1hc2lkZSAudXN5ZC1tYXAtZ29vZ2xlIC51c3lkLW1hcCB7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGhlaWdodDogMjgwcHg7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnVzeWQtYXNpZGUgLnVzeWQtbWFwLWdvb2dsZSAudXN5ZC1tYXAge1xuICAgIHdpZHRoOiAxNzFweDtcbiAgICBoZWlnaHQ6IDI4MHB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC51c3lkLWFzaWRlIC51c3lkLW1hcC1nb29nbGUgLnVzeWQtbWFwIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDI4MHB4OyB9IH1cblxuQG1lZGlhIHByaW50IHtcbiAgKiB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG4gIG5hdiwgaGVhZGVyLCBmb290ZXIsIGZvcm0sIGkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgYm9keSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIHRhYmxlIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB9XG4gIC51c3lkLXVpLWNvbW1vbi1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnVzeWQtYmFjay10by10b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnVzeWQtbmF2LXRvb2xzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC51c3lkLWhlYWRlci10b29scyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0gfVxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG4vL1ZlbmRvcnNcbi8vSXQgaXMgcmVsYXRlZCB0byBndWxwIGNvcHktdmVuZG9ycyB0YXNrXG5AaW1wb3J0IFwidmVuZG9yL2ZvbnRlbGxvL2Nzcy9mb250ZWxsby5jc3NcIjtcbkBpbXBvcnQgXCJ2ZW5kb3IvZm9udGVsbG8vY3NzL2ZvbnRlbGxvLWllNy5jc3NcIjtcbkBpbXBvcnQgXCJ2ZW5kb3IvbGlnaHRib3guY3NzXCI7XG5AaW1wb3J0IFwidmVuZG9yL2ZhbmN5Ym94L3NvdXJjZS9qcXVlcnkuZmFuY3lib3guY3NzXCI7XG5AaW1wb3J0IFwidmVuZG9yL1N3aXBlckAyLjcuNi9kaXN0L2lkYW5nZXJvdXMuc3dpcGVyLmNzc1wiO1xuQGltcG9ydCBcInZlbmRvci9hdmFsYW5jaGUtY3NzL19hdmFsYW5jaGVcIjtcblxuLy9MZWdhY3kgc3R5bGVzXG5AaW1wb3J0IFwic2NyZWVuXCI7XG5cbi8vaGFuZGxlcyB3aGF0IGlzIHJlbmRlcmVkIGluIHByaW50IHZpZXdcbkBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIG5hdiwgaGVhZGVyLCBmb290ZXIsIGZvcm0sIGkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGJvZHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHRhYmxlIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7XG4gICAgfVxuXG4gICAgLnVzeWQtdWktY29tbW9uLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC51c3lkLWJhY2stdG8tdG9wIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAudXN5ZC1uYXYtdG9vbHMge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuXG4gICAgLnVzeWQtaGVhZGVyLXRvb2xzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi92YXJpYWJsZXNcIjtcblxuLyohIEF2YWxhbmNoZSB8IE1JVCBMaWNlbnNlIHwgQGNvbG91cmdhcmRlbiAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgIFNFVFRJTkdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYXYtbmFtZXNwYWNlOiAgICAgICAgICAgICAgJ2dyaWQnICFkZWZhdWx0OyAgICAgIC8vIFByZWZpeCBuYW1lc3BhY2UgZm9yIGdyaWQgbGF5b3V0IGFuZCBjZWxsc1xuJGF2LWVsZW1lbnQtbmFtZTogICAgICAgICAgICdjZWxsJyAhZGVmYXVsdDsgICAgICAvLyBFbGVtZW50L2NlbGwgbmFtZVxuJGF2LWVsZW1lbnQtY2xhc3MtY2hhaW46ICAgICdfXycgIWRlZmF1bHQ7ICAgICAgICAvLyBDaGFpbiBjaGFyYWN0ZXJzIGJldHdlZW4gYmxvY2sgYW5kIGVsZW1lbnRcbiRhdi1tb2RpZmllci1jbGFzcy1jaGFpbjogICAnLS0nICFkZWZhdWx0OyAgICAgICAgLy8gQ2hhaW4gY2hhcmFjdGVycyBiZXR3ZWVuIGJsb2NrIGFuZCBtb2RpZmllclxuJGF2LWJyZWFrcG9pbnQtY2xhc3MtY2hhaW46ICctLScgIWRlZmF1bHQ7ICAgICAgICAvLyBDaGFpbiBjaGFyYWN0ZXJzIGJldHdlZW4gd2lkdGggYW5kIGJyZWFrcG9pbnRcblxuJGF2LWd1dHRlcjogICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7ICAgICAgICAvLyBHdXR0ZXIgYmV0d2VlbiBncmlkIGNlbGxzXG5cbiRhdi13aWR0aC1jbGFzcy1uYW1lc3BhY2U6ICAnJyAhZGVmYXVsdDsgICAgICAgICAgLy8gUHJlZml4IG5hbWVzcGFjZSBmb3Igd2lkdGggY2xhc3Nlcy4gRm9yIGV4YW1wbGU7ICdjb2wtJ1xuJGF2LXdpZHRoLWNsYXNzLXN0eWxlOiAgICAgICdmcmFjdGlvbicgIWRlZmF1bHQ7ICAvLyBXaWR0aCBjbGFzcyBuYW1pbmcgc3R5bGUuIENhbiBiZSAnZnJhY3Rpb24nLCAncGVyY2VudGFnZScgb3IgJ2ZyYWdtZW50J1xuJGF2LXdpZHRoczogKFxuICAyLFxuICAzLFxuICA0LFxuICA1LFxuICA2LFxuICAxMlxuKSAhZGVmYXVsdDsgLy8gV2lkdGggZGVub21pbmF0b3IgdmFsdWVzLiAyID0gMS8yLCAzID0gMS8zIGV0Yy4gQWRkL3JlbW92ZSBhcyBhcHByb3ByaWF0ZVxuXG4kYXYtZW5hYmxlLXJlc3BvbnNpdmU6ICB0cnVlICFkZWZhdWx0O1xuJGF2LWJyZWFrcG9pbnRzOiAgKFxuICAgIFwibW9iaWxlLWRvd25cIjogICAgICAgICAgXCJzY3JlZW4gYW5kICgjeyRtb2JpbGUtbGFuZHNjYXBlLWRvd259KVwiLFxuICAgIFwibW9iaWxlLXVwXCI6ICAgICAgICAgICAgXCJzY3JlZW4gYW5kICgjeyRtb2JpbGUtbGFuZHNjYXBlLXVwfSlcIixcbiAgICBcInRhYmxldC1kb3duXCI6ICAgICAgICAgIFwic2NyZWVuIGFuZCAoI3skdGFibGV0LWRvd259KVwiLFxuICAgIFwidGFibGV0LXVwXCI6ICAgICAgICAgICAgXCJzY3JlZW4gYW5kICgjeyR0YWJsZXQtdXB9KVwiLFxuICAgIFwic20tZGVzay11cFwiOiAgICAgICAgICAgXCJzY3JlZW4gYW5kICgjeyRzbWFsbC1kZXNrdG9wLXVwfSlcIixcbiAgICBcInNtLWRlc2stZG93blwiOiAgICAgICAgIFwic2NyZWVuIGFuZCAoI3skc21hbGwtZGVza3RvcC1kb3dufSlcIixcbiAgICBcImxnLWRlc2stdXBcIjogICAgICAgICAgIFwic2NyZWVuIGFuZCAoI3skbGFyZ2UtZGVza3RvcC11cH0pXCJcbikgIWRlZmF1bHQ7IC8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMuIEFkZC9yZW1vdmUgYXMgYXBwcm9wcmlhdGVcblxuLy8gRW5hYmxlL2Rpc2FibGUgZ3JpZCBsYXlvdXRzXG4kYXYtZW5hYmxlLWdyaWQtY2VudGVyOiAgICAgICB0cnVlICFkZWZhdWx0O1xuJGF2LWVuYWJsZS1ncmlkLWNlbGwtY2VudGVyOiAgdHJ1ZSAhZGVmYXVsdDtcbiRhdi1lbmFibGUtZ3JpZC1yaWdodDogICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kYXYtZW5hYmxlLWdyaWQtbWlkZGxlOiAgICAgICB0cnVlICFkZWZhdWx0O1xuJGF2LWVuYWJsZS1ncmlkLWJvdHRvbTogICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kYXYtZW5hYmxlLWdyaWQtZmx1c2g6ICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGF2LWVuYWJsZS1ncmlkLXRpbnk6ICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kYXYtZW5hYmxlLWdyaWQtc21hbGw6ICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRhdi1lbmFibGUtZ3JpZC1sYXJnZTogICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGF2LWVuYWJsZS1ncmlkLWh1Z2U6ICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kYXYtZW5hYmxlLWdyaWQtYXV0bzogICAgICAgICBmYWxzZSAhZGVmYXVsdDtcbiRhdi1lbmFibGUtZ3JpZC1yZXY6ICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuXG5cblxuXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgTE9HSUMgYWthIFRIRSBNQUdJQ1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuQGZ1bmN0aW9uIGVzY2FwZU51bWVyYXRvcigkbnVtZXJhdG9yLCAkbmFtZXNwYWNlOiAnJyl7XG4gIEBpZigkbmFtZXNwYWNlID09ICcnKXtcbiAgICAkbnVtZXJhdG9yLWFzLXN0cmluZzogaW5zcGVjdCgkbnVtZXJhdG9yKTtcbiAgICAkZXNjYXBlZC1udW1lcmF0b3I6ICcnO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIGFsbCBkaWdpdHMgaW4gdGhlIG51bWVyYXRvciBhbmQgZXNjYXBlIGluZGl2aWR1YWxseVxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkbnVtZXJhdG9yLWFzLXN0cmluZyl7XG4gICAgICAkZGlnaXQ6IHN0ci1zbGljZSgkbnVtZXJhdG9yLWFzLXN0cmluZywgJGksICRpKTtcbiAgICAgICRlc2NhcGVkLW51bWVyYXRvcjogJGVzY2FwZWQtbnVtZXJhdG9yK1xcMyskZGlnaXQ7XG4gICAgfVxuXG4gICAgQHJldHVybiAkZXNjYXBlZC1udW1lcmF0b3I7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJG51bWVyYXRvcjtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYXZDcmVhdGVXaWR0aENsYXNzTmFtZSgkc3R5bGUsICRudW1lcmF0b3IsICRkZW5vbWluYXRvciwgJGJyZWFrcG9pbnQtYWxpYXMpe1xuXG4gICRjbGFzcy1uYW1lOiBudWxsO1xuXG4gIEBpZiAkc3R5bGUgPT0gJ2ZyYWN0aW9uJyBvciAkc3R5bGUgPT0gJ2ZyYWdtZW50J3tcbiAgICAvLyBTZXQgZGVsaW1pdGVyIGFzIHNsYXNoIG9yIHRleHRcbiAgICAkZGVsaW1pdGVyOiBpZigkc3R5bGUgPT0gJ2ZyYWN0aW9uJywgXFwvLCAtb2YtKTtcbiAgICAkY2xhc3MtbmFtZTogI3skYXYtd2lkdGgtY2xhc3MtbmFtZXNwYWNlfSN7ZXNjYXBlTnVtZXJhdG9yKCRudW1lcmF0b3IsICRhdi13aWR0aC1jbGFzcy1uYW1lc3BhY2UpfSN7JGRlbGltaXRlcn0jeyRkZW5vbWluYXRvcn0jeyRicmVha3BvaW50LWFsaWFzfTtcbiAgfSBAZWxzZXtcbiAgICBAaWYgJGF2LXdpZHRoLWNsYXNzLW5hbWVzcGFjZSA9PSAnJ3tcbiAgICAgIEBlcnJvciBcIlBlcmNlbnRhZ2UgdmFsdWUgY2xhc3MgbmFtZXMgcmVxdWlyZSBhIG5hbWVzcGFjZSB0byBiZSBzZXQgKHNlZSAkYXYtd2lkdGgtY2xhc3MtbmFtZXNwYWNlKS4gU2VsZWN0aXZlIGVzY2FwaW5nIChlLmcuIHRoZSA1IG9mIDUwKSBjYW5ub3QgYmUgZG9uZS5cIjtcbiAgICB9XG4gICAgJGNsYXNzLXdpZHRoOiBmbG9vcigoJG51bWVyYXRvciAvICRkZW5vbWluYXRvcikgKiAxMDApO1xuICAgICRjbGFzcy1uYW1lOiAjeyRhdi13aWR0aC1jbGFzcy1uYW1lc3BhY2V9I3skY2xhc3Mtd2lkdGh9I3skYnJlYWtwb2ludC1hbGlhc307XG4gIH1cblxuICBAcmV0dXJuICRjbGFzcy1uYW1lO1xufVxuXG5AZnVuY3Rpb24gYXZDcmVhdGVCbG9ja0NsYXNzTmFtZSgkbW9kaWZpZXI6ICcnKXtcbiAgQGlmICRtb2RpZmllciA9PSAnJyB7XG4gICAgQHJldHVybiAjeyRhdi1uYW1lc3BhY2V9O1xuICB9XG5cbiAgQHJldHVybiAjeyRhdi1uYW1lc3BhY2V9I3skYXYtbW9kaWZpZXItY2xhc3MtY2hhaW59I3skbW9kaWZpZXJ9O1xufVxuXG5AZnVuY3Rpb24gYXZDcmVhdGVFbGVtZW50Q2xhc3NOYW1lKCRtb2RpZmllcjogJycpe1xuICBAaWYgJG1vZGlmaWVyID09ICcnIHtcbiAgICBAcmV0dXJuICN7JGF2LW5hbWVzcGFjZX0jeyRhdi1lbGVtZW50LWNsYXNzLWNoYWlufSN7JGF2LWVsZW1lbnQtbmFtZX07XG4gIH1cblxuICBAcmV0dXJuICN7JGF2LW5hbWVzcGFjZX0jeyRhdi1lbGVtZW50LWNsYXNzLWNoYWlufSN7JGF2LWVsZW1lbnQtbmFtZX0jeyRhdi1tb2RpZmllci1jbGFzcy1jaGFpbn0jeyRtb2RpZmllcn07XG5cbn1cblxuQG1peGluIGF2LWNyZWF0ZS13aWR0aHMoJHdpZHRocywgJGJyZWFrcG9pbnQtYWxpYXM6IG51bGwpe1xuXG4gIC8vIEluaXRpYWxpc2UgYW4gZW1wdHkgdXRpbGl0eSBtYXAgdGhhdCB3aWxsIGV2ZW50dWFsbHkgY29udGFpbiBhbGwgb3VyIGNsYXNzZXNcbiAgJHBzZXVkby1jbGFzcy1tYXA6ICgpO1xuXG4gIC8vIExvb3Agd2lkdGhzXG4gIEBlYWNoICRkZW5vbWluYXRvciBpbiAkd2lkdGhze1xuXG4gICAgLy8gSWYgMT0xLCAyPTIsIDM9MzsgQGZvciB3aWxsIHNraXAgb3ZlciBzbyBjcmVhdGUgMS8xIGNsYXNzIG1hbnVhbGx5XG4gICAgQGlmICgkZGVub21pbmF0b3IgPT0gMSkge1xuXG4gICAgICAvLyBDcmVhdGUgMS8xIGNsYXNzXG4gICAgICAkY2xhc3MtbmFtZTogYXZDcmVhdGVXaWR0aENsYXNzTmFtZSgkYXYtd2lkdGgtY2xhc3Mtc3R5bGUsIDEsIDEsICRicmVha3BvaW50LWFsaWFzKTtcbiAgICAgIC4jeyRjbGFzcy1uYW1lfXtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICB9IEBlbHNlIHtcblxuICAgICAgLy8gTG9vcCB3aWR0aHMgYXMgZnJhY3Rpb25zXG4gICAgICBAZm9yICRudW1lcmF0b3IgZnJvbSAxIHRvICRkZW5vbWluYXRvcntcblxuICAgICAgICAvLyBDcmVhdGUgY2xhc3MgbmFtZSBhbmQgc2V0IHdpZHRoIHZhbHVlXG4gICAgICAgICRjbGFzcy1uYW1lOiBhdkNyZWF0ZVdpZHRoQ2xhc3NOYW1lKCRhdi13aWR0aC1jbGFzcy1zdHlsZSwgJG51bWVyYXRvciwkZGVub21pbmF0b3IsICRicmVha3BvaW50LWFsaWFzKTtcbiAgICAgICAgJHdpZHRoLXZhbHVlOiBwZXJjZW50YWdlKCRudW1lcmF0b3IgLyAkZGVub21pbmF0b3IpO1xuXG4gICAgICAgIC8vIElzIHRoaXMgd2lkdGggYWxyZWFkeSBpbiBvdXIgdXRpbGl0eSBtYXA/XG4gICAgICAgICRkdXBsaWNhdGU6IG1hcC1nZXQoJHBzZXVkby1jbGFzcy1tYXAsICR3aWR0aC12YWx1ZSk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIHdpZHRoIGNsYXNzXG4gICAgICAgIC4jeyRjbGFzcy1uYW1lfXtcblxuICAgICAgICAgIC8vIElmIHRoaXMgd2lkdGggaXMgaW4gdXRpbGl0eSBtYXAsIEBleHRlbmQgdGhlIGR1cGxpY2F0ZSwgZWxzZSBjcmVhdGUgYSBuZXcgb25lXG4gICAgICAgICAgQGlmICRkdXBsaWNhdGV7XG4gICAgICAgICAgICBAZXh0ZW5kIC4jeyRkdXBsaWNhdGV9O1xuICAgICAgICAgIH0gQGVsc2V7XG4gICAgICAgICAgICB3aWR0aDogJHdpZHRoLXZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCB0aGlzIGNsYXNzIHRvIHV0aWxpdHkgbWFwXG4gICAgICAgICRhZGQtY2xhc3M6ICgkd2lkdGgtdmFsdWU6ICRjbGFzcy1uYW1lKTtcbiAgICAgICAgJHBzZXVkby1jbGFzcy1tYXA6IG1hcC1tZXJnZSgkcHNldWRvLWNsYXNzLW1hcCwgJGFkZC1jbGFzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhdi1tcSgkYWxpYXMpe1xuXG4gIC8vIFNlYXJjaCBicmVha3BvaW50IG1hcCBmb3IgYWxpYXNcbiAgJHF1ZXJ5OiBtYXAtZ2V0KCRhdi1icmVha3BvaW50cywgJGFsaWFzKTtcblxuICAvLyBJZiBhbGlhcyBleGlzdHMsIHByaW50IG91dCBtZWRpYSBxdWVyeVxuICBAaWYgJHF1ZXJ5e1xuICAgIEBtZWRpYSAjeyRxdWVyeX17XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2V7XG4gICAgQGVycm9yIFwiTm8gYnJlYWtwb2ludCBmb3VuZCBmb3IgI3skYWxpYXN9XCI7XG4gIH1cbn1cblxuXG5cblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgIEdSSUQgTEFZT1VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uI3thdkNyZWF0ZUJsb2NrQ2xhc3NOYW1lKCl9e1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBtYXJnaW4tbGVmdDogLSgkYXYtZ3V0dGVyKTtcbiAgZm9udC1zaXplOiAwcmVtO1xufVxuXG4uI3thdkNyZWF0ZUVsZW1lbnRDbGFzc05hbWUoKX17XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctbGVmdDogJGF2LWd1dHRlcjtcbiAgbWFyZ2luOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBmb250LXNpemU6IDFyZW07XG59XG5cbkBpZiAkYXYtZW5hYmxlLWdyaWQtY2VudGVye1xuXG4gIC4je2F2Q3JlYXRlQmxvY2tDbGFzc05hbWUoJ2NlbnRlcicpfXtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IC4je2F2Q3JlYXRlRWxlbWVudENsYXNzTmFtZSgpfXtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG59XG5cbkBpZiAkYXYtZW5hYmxlLWdyaWQtY2VsbC1jZW50ZXJ7XG5cbiAgLiN7YXZDcmVhdGVFbGVtZW50Q2xhc3NOYW1lKCdjZW50ZXInKX17XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cbn1cblxuQGlmICRhdi1lbmFibGUtZ3JpZC1yaWdodHtcblxuICAuI3thdkNyZWF0ZUJsb2NrQ2xhc3NOYW1lKCdyaWdodCcpfXtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgID4gLiN7YXZDcmVhdGVFbGVtZW50Q2xhc3NOYW1lKCl9e1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuQGlmICRhdi1lbmFibGUtZ3JpZC1taWRkbGV7XG5cbiAgLiN7YXZDcmVhdGVCbG9ja0NsYXNzTmFtZSgnbWlkZGxlJyl9e1xuXG4gICAgPiAuI3thdkNyZWF0ZUVsZW1lbnRDbGFzc05hbWUoKX17XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuXG5AaWYgJGF2LWVuYWJsZS1ncmlkLWJvdHRvbXtcblxuICAuI3thdkNyZWF0ZUJsb2NrQ2xhc3NOYW1lKCdib3R0b20nKX17XG5cbiAgICA+IC4je2F2Q3JlYXRlRWxlbWVudENsYXNzTmFtZSgpfXtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgfVxuICB9XG59XG5cbkBpZiAkYXYtZW5hYmxlLWdyaWQtZmx1c2h7XG5cbiAgLiN7YXZDcmVhdGVCbG9ja0NsYXNzTmFtZSgnZmx1c2gnKX17XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICA+IC4je2F2Q3JlYXRlRWxlbWVudENsYXNzTmFtZSgpfXtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cblxuQGlmICRhdi1lbmFibGUtZ3JpZC10aW55e1xuXG4gIC4je2F2Q3JlYXRlQmxvY2tDbGFzc05hbWUoJ3RpbnknKX17XG4gICAgbWFyZ2luLWxlZnQ6IC0oJGF2LWd1dHRlciAvIDQpO1xuXG4gICAgPiAuI3thdkNyZWF0ZUVsZW1lbnRDbGFzc05hbWUoKX17XG4gICAgICBwYWRkaW5nLWxlZnQ6ICgkYXYtZ3V0dGVyIC8gNCk7XG4gICAgfVxuICB9XG59XG5cbkBpZiAkYXYtZW5hYmxlLWdyaWQtc21hbGx7XG5cbiAgLiN7YXZDcmVhdGVCbG9ja0NsYXNzTmFtZSgnc21hbGwnKX17XG4gICAgbWFyZ2luLWxlZnQ6IC0oJGF2LWd1dHRlciAvIDIpO1xuXG4gICAgPiAuI3thdkNyZWF0ZUVsZW1lbnRDbGFzc05hbWUoKX17XG4gICAgICBwYWRkaW5nLWxlZnQ6ICgkYXYtZ3V0dGVyIC8gMik7XG4gICAgfVxuICB9XG59XG5cbkBpZiAkYXYtZW5hYmxlLWdyaWQtbGFyZ2V7XG5cbiAgLiN7YXZDcmVhdGVCbG9ja0NsYXNzTmFtZSgnbGFyZ2UnKX17XG4gICAgbWFyZ2luLWxlZnQ6IC0oJGF2LWd1dHRlciAqIDIpO1xuXG4gICAgPiAuI3thdkNyZWF0ZUVsZW1lbnRDbGFzc05hbWUoKX17XG4gICAgICBwYWRkaW5nLWxlZnQ6ICgkYXYtZ3V0dGVyICogMik7XG4gICAgfVxuICB9XG59XG5cbkBpZiAkYXYtZW5hYmxlLWdyaWQtaHVnZXtcblxuICAuI3thdkNyZWF0ZUJsb2NrQ2xhc3NOYW1lKCdodWdlJyl9e1xuICAgIG1hcmdpbi1sZWZ0OiAtKCRhdi1ndXR0ZXIgKiA0KTtcblxuICAgID4gLiN7YXZDcmVhdGVFbGVtZW50Q2xhc3NOYW1lKCl9e1xuICAgICAgcGFkZGluZy1sZWZ0OiAoJGF2LWd1dHRlciAqIDQpO1xuICAgIH1cbiAgfVxufVxuXG5AaWYgJGF2LWVuYWJsZS1ncmlkLWF1dG97XG5cbiAgLiN7YXZDcmVhdGVCbG9ja0NsYXNzTmFtZSgnYXV0bycpfXtcblxuICAgID4gLiN7YXZDcmVhdGVFbGVtZW50Q2xhc3NOYW1lKCl9e1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBpZiAkYXYtZW5hYmxlLWdyaWQtcmV2e1xuXG4gIC4je2F2Q3JlYXRlQmxvY2tDbGFzc05hbWUoJ3JldicpfXtcbiAgICBkaXJlY3Rpb246IHJ0bDtcblxuICAgID4gLiN7YXZDcmVhdGVFbGVtZW50Q2xhc3NOYW1lKCl9e1xuICAgICAgZGlyZWN0aW9uOiBsdHI7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICBHUklEIFdJRFRIU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gTG9vcCBkZWZhdWx0IHdpZHRoc1xuQGluY2x1ZGUgYXYtY3JlYXRlLXdpZHRocygkYXYtd2lkdGhzKTtcblxuLy8gSWYgcmVzcG9uc2l2ZSBmbGFnIGVuYWJsZWQsIGxvb3AgYnJlYWtwb2ludCB3aWR0aHNcbkBpZiAkYXYtZW5hYmxlLXJlc3BvbnNpdmV7XG5cbiAgQGVhY2ggJGFsaWFzLCAkcXVlcnkgaW4gJGF2LWJyZWFrcG9pbnRze1xuXG4gICAgLy8gQ3JlYXRlIGVhY2ggbWVkaWEgcXVlcnlcbiAgICBAbWVkaWEgI3skcXVlcnl9e1xuICAgICAgQGluY2x1ZGUgYXYtY3JlYXRlLXdpZHRocygkYXYtd2lkdGhzLCAjeyRhdi1icmVha3BvaW50LWNsYXNzLWNoYWlufSN7JGFsaWFzfSk7XG4gICAgfVxuICB9XG59XG4iLCIvKiBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgZm9yIGRldmVsb3BtZW50IHVzZSBvbmx5LiBJdCBpcyBub3Qgb3B0aW1pc2VkIGZvciBwcm9kdWN0aW9uICovXG5cbkBpbXBvcnQgXCJzY3JlZW4vYmFjay10by10b3BcIjtcbkBpbXBvcnQgXCJzY3JlZW4vYmFzZVwiO1xuQGltcG9ydCBcInNjcmVlbi9jYXJkXCI7XG5AaW1wb3J0IFwic2NyZWVuL3NvY2lhbC1jYXJkXCI7XG5AaW1wb3J0IFwic2NyZWVuL2NsYXNzLWNvZGVzXCI7XG5AaW1wb3J0IFwic2NyZWVuL2NsYXNzaWZpZWRzXCI7XG5AaW1wb3J0IFwic2NyZWVuL2NvbnRlbnRcIjtcbkBpbXBvcnQgXCJzY3JlZW4vY2xpcHBpbmdcIjtcbkBpbXBvcnQgXCJzY3JlZW4vbGluay1tYXJrZXJzXCI7XG5AaW1wb3J0IFwic2NyZWVuL2FwcHNcIjtcbkBpbXBvcnQgXCJzY3JlZW4vbmF2LXRvb2xzXCI7XG5AaW1wb3J0IFwic2NyZWVuL2VtcGhhc2lzXCI7XG5AaW1wb3J0IFwic2NyZWVuL2dyb3Vwc1wiO1xuQGltcG9ydCBcInNjcmVlbi9mZWVkYmFja1wiO1xuQGltcG9ydCBcInNjcmVlbi9maWd1cmVcIjtcbkBpbXBvcnQgXCJzY3JlZW4vZm9vdGVyXCI7XG5AaW1wb3J0IFwic2NyZWVuL2Zvb3Rub3Rlc1wiO1xuQGltcG9ydCBcInNjcmVlbi9mb3JtXCI7XG5AaW1wb3J0IFwic2NyZWVuL2hlYWRlclwiO1xuQGltcG9ydCBcInNjcmVlbi9ibG9jay1uYXZcIjtcbkBpbXBvcnQgXCJzY3JlZW4vZ2xvYmFsLW5hdlwiO1xuQGltcG9ydCBcInNjcmVlbi9oZXJvXCI7XG5AaW1wb3J0IFwic2NyZWVuL2hvbWUtbG9nby1zdXJ2ZXlcIjtcbkBpbXBvcnQgXCJzY3JlZW4vaG9tZVwiO1xuQGltcG9ydCBcInNjcmVlbi9pY29uc1wiO1xuQGltcG9ydCBcInNjcmVlbi9sYXlvdXRcIjtcbkBpbXBvcnQgXCJzY3JlZW4vbGF5b3V0LWhhY2tzXCI7XG5AaW1wb3J0IFwic2NyZWVuL2xvY2FsLWludHJhbmV0c1wiO1xuQGltcG9ydCBcInNjcmVlbi9jb2x1bW5zXCI7XG5AaW1wb3J0IFwic2NyZWVuL2xpc3RcIjtcbkBpbXBvcnQgXCJzY3JlZW4vbGFiZWxsZWQtbGlzdFwiO1xuQGltcG9ydCBcInNjcmVlbi9saXN0aW5nc1wiO1xuQGltcG9ydCBcInNjcmVlbi9tYXNrXCI7XG5AaW1wb3J0IFwic2NyZWVuL21lbnVcIjtcbkBpbXBvcnQgXCJzY3JlZW4vcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcInNjcmVlbi9uZXdzXCI7XG5AaW1wb3J0IFwic2NyZWVuL25vdGljZXNcIjtcbkBpbXBvcnQgXCJzY3JlZW4vbm90aWZpZXJcIjtcbkBpbXBvcnQgXCJzY3JlZW4vb3ZlcmxheVwiO1xuQGltcG9ydCBcInNjcmVlbi9wZXItZGllbVwiO1xuQGltcG9ydCBcInNjcmVlbi9sYWJlbHMtYmFkZ2VzXCI7XG5AaW1wb3J0IFwic2NyZWVuL3BvbGxcIjtcbkBpbXBvcnQgXCJzY3JlZW4vcmF0ZS10aGlzLXBhZ2VcIjtcbkBpbXBvcnQgXCJzY3JlZW4vc25pcHBldFwiO1xuQGltcG9ydCBcInNjcmVlbi9zdXJ2ZXktb3ZlcmxheVwiO1xuQGltcG9ydCBcInNjcmVlbi90YWJsZXNcIjtcbkBpbXBvcnQgXCJzY3JlZW4vdGFic1wiO1xuQGltcG9ydCBcInNjcmVlbi90YXluZVwiO1xuQGltcG9ydCBcInNjcmVlbi90aWxlc1wiO1xuQGltcG9ydCBcInNjcmVlbi90b29sYmFyXCI7XG5AaW1wb3J0IFwic2NyZWVuL3Rvb2x0aXBzXCI7XG5AaW1wb3J0IFwic2NyZWVuL3R1dG9yaWFsXCI7XG5AaW1wb3J0IFwic2NyZWVuL3R1dG9yaWFsc1wiO1xuQGltcG9ydCBcInNjcmVlbi9ob21lLWxvZ2luXCI7XG5AaW1wb3J0IFwic2NyZWVuL3lhbW1lclwiO1xuQGltcG9ydCBcInNjcmVlbi9yZXNwb25zaXZlXCI7XG5AaW1wb3J0IFwic2NyZWVuL21hcmtlcnNcIjtcbkBpbXBvcnQgXCJzY3JlZW4vZGF0YXRhYmxlXCI7XG5AaW1wb3J0IFwic2NyZWVuL3RvcC1wYWdlc1wiO1xuQGltcG9ydCBcInNjcmVlbi9zZWFyY2hcIjtcbkBpbXBvcnQgXCJzY3JlZW4vY2FsbC10by1hY3Rpb25cIjtcbkBpbXBvcnQgXCJzY3JlZW4vcHVsbC1xdW90ZVwiO1xuQGltcG9ydCBcInNjcmVlbi90aW1lbGluZVwiO1xuQGltcG9ydCBcInNjcmVlbi9wYWdlLXN1bW1hcnlcIjtcbkBpbXBvcnQgXCJzY3JlZW4vcHVibGlzaC1kYXRlXCI7XG5AaW1wb3J0IFwic2NyZWVuL2RvY3VtZW50LWVtYmVkXCI7XG5AaW1wb3J0IFwic2NyZWVuL25ld3MtY2hpbGQtbGlzdGluZ1wiO1xuQGltcG9ydCBcInNjcmVlbi9tYXBzXCI7XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29sb3JzXCI7XG5cbi8vIExhcmdlIGRlc2t0b3BzIGFuZCB1cFxuQG1peGluIG1lZGlhLXhsYXJnZSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS14bGFyZ2UtbWluKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1lZGlhLWxhcmdlLXVwIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLWxhcmdlLW1pbikge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIFNtYWxsZXIgZGVza3RvcHNcbkBtaXhpbiBtZWRpYS1sYXJnZSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1sYXJnZS1taW4pIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtbGFyZ2UtbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1lZGlhLWxhcmdlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtbGFyZ2UtbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1lZGlhLXNtYWxsLXVwIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXNtYWxsLW1pbikge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIFBvcnRyYWl0IHRhYmxldHMgdXAgdG8gbGFuZHNjYXBlIHRhYmxldHNcbkBtaXhpbiBtZWRpYS1zbWFsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbWFsbC1taW4pIGFuZCAobWF4LXdpZHRoOiAkbWVkaWEtc21hbGwtbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1lZGlhLXNtYWxsLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEtc21hbGwtbWF4KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuLy8gUGhvbmVzIHVwIHRvIHBvcnRyYWl0IHRhYmxldHNcbkBtaXhpbiBtZWRpYS14c21hbGwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteHNtYWxsLW1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBoaS1kcGkge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS41KSwgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMTQ0ZHBpKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIG1ha2Utcm93KCRncmlkR3V0dGVyV2lkdGg6ICRncmlkR3V0dGVyV2lkdGgpIHtcbiAgICBtYXJnaW4tbGVmdDogJGdyaWRHdXR0ZXJXaWR0aCAqIC0xO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbkBtaXhpbiBtYWtlLXNwYW4oJGNvbHVtbnM6IDEsICRvZmZzZXQ6IDAsICRncmlkQ29sdW1uV2lkdGg6ICRncmlkQ29sdW1uV2lkdGgsICRncmlkR3V0dGVyV2lkdGg6ICRncmlkR3V0dGVyV2lkdGgpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogKCRncmlkQ29sdW1uV2lkdGggKiAkb2Zmc2V0KSArICgkZ3JpZEd1dHRlcldpZHRoICogKCRvZmZzZXQgLSAxKSkgKyAoJGdyaWRHdXR0ZXJXaWR0aCAqIDIpO1xuICAgIHdpZHRoOiBzcGFuLXdpZHRoKCRjb2x1bW5zLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIHNwYW4td2lkdGgoJGNvbHVtbnM6IDEsICRncmlkQ29sdW1uV2lkdGg6ICRncmlkQ29sdW1uV2lkdGgsICRncmlkR3V0dGVyV2lkdGg6ICRncmlkR3V0dGVyV2lkdGgpIHtcbiAgICBAcmV0dXJuICgkZ3JpZENvbHVtbldpZHRoICogJGNvbHVtbnMpICsgKCRncmlkR3V0dGVyV2lkdGggKiAoJGNvbHVtbnMgLSAxKSk7XG59XG5cbkBtaXhpbiBmb250ZWxsby1pY29uKCRpY29uLCAkc2l6ZTogbnVsbCkge1xuICAgIC8vIFNBU1MgZG9lcyBub3QgaGFuZGxlIHRyeWluZyB0byBjb25zdHJ1Y3QgdGhlIGVzY2FwZWQgY2hhcmFjdGVyIHNlcXVlbmNlIHdlbGwsIHNvIHdlIG5lZWQgdG8gY29uc3RydWN0IHRoZSBzdHJpbmdcbiAgICAvLyB3ZWlyZGx5IHRvIGF2b2lkIHRoZSBjb21waWxlciB0cnlpbmcgdG8gcGFyc2Ugd2hhdCB3ZSdyZSBkb2luZy4gVGhlIGVuZCByZXN1bHQgc2hvdWxkIGJlIHRoZSBlcXVpdmFsZW50IG9mIHNheWluZzpcbiAgICAvLyBjb250ZW50OiBcIlxcZSRpY29uXCI7XG4gICAgLy8gV2hlcmUgaWNvbiBpcyBhIDMtZGlnaXQgY2hhcmFjdGVyIGNvZGUgZ2VuZXJhdGVkIGJ5IEZvbnRlbGxvXG4gICAgY29udGVudDogXCJcXGUje3VucXVvdGUoJGljb24pfVwiO1xuXG4gICAgZm9udC1mYW1pbHk6IGZvbnRlbGxvO1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgICp6b29tOiBleHByZXNzaW9uKCB0aGlzLnJ1bnRpbWVTdHlsZVsnem9vbSddID0gJzEnLCB0aGlzLmlubmVySFRNTCA9ICcmI3hlI3skaWNvbn07Jm5ic3A7Jyk7XG4gICAgQGlmKCRzaXplKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNpemU7XG4gICAgfVxufVxuXG5AbWl4aW4gcmVzZXQtd2lkdGgge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBmbG9hdDogbm9uZTtcbn1cblxuLy8gSGlkZSBhbiBlbGVtZW50IHNvIGl0J3MgaW52aXNpYmxlIHRvIGV2ZXJ5b25lICh2aXN1YWxseSBhbmQgbm90IHJlcG9ydGVkIHZpYSBBL1RzKVxuQG1peGluIGhpZGUtZnJvbS1ldmVyeW9uZSB7XG4gICAgQGluY2x1ZGUgaGlkZS1mcm9tLWV5ZXM7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vIFZpc2liaWx5IGhpZGUgYW4gZWxlbWVudCwgcmVtYWlucyB2aXNpYmxlIGluIHRoZSBET00gc28gQS9UcyBjYW4gc3RpbGwgcmVwb3J0IGl0IHRvIHVzZXJzXG5AbWl4aW4gaGlkZS1mcm9tLWV5ZXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtOTk5ZW07XG59XG5cbkBtaXhpbiBzaG93LXRvLWV5ZXMge1xuICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgIGxlZnQ6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiBzaG93LXRvLWV2ZXJ5b25lIHtcbiAgICBAaW5jbHVkZSBzaG93LXRvLWV5ZXM7XG4gICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICB2aXNpYmlsaXR5OiBpbmhlcml0O1xufVxuXG4vLyA8IElFOS1jb21wYXRpYmxlIGJlZm9yZSBzZWxlY3RvclxuLy8gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vY29yeWRvcm5pbmcvMjM2MjQ4M1xuQG1peGluIGJlZm9yZSB7XG4gICAgJjpiZWZvcmUsICYgPiAuaWUtYmVmb3JlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJiB7XG4gICAgICAgIC8qIDo6YmVmb3JlIHBvbHlmaWxsIC0gY3JlYXRlcyA8aSBjbGFzcz1cImllLWJlZm9yZVwiPjwvaT4gKi9cbiAgICAgICAgem9vbTogI3snZXhwcmVzc2lvbid9KCN7J3RoaXMucnVudGltZVN0eWxlLnpvb209XCIxXCIsdGhpcy5pbnNlcnRCZWZvcmUoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpXCIpLCB0aGlzLmZpcnN0Q2hpbGQgKS5jbGFzc05hbWU9XCJpZS1iZWZvcmVcIid9KTtcbiAgICB9XG59XG5cbi8vIDwgSUU5LWNvbXBhdGlibGUgYWZ0ZXIgc2VsZWN0b3Jcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Nvcnlkb3JuaW5nLzIzNjI0ODNcbkBtaXhpbiBhZnRlciB7XG4gICAgJjphZnRlciwgJiA+IC5pZS1hZnRlciB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICYge1xuICAgICAgICAvKiA6OmFmdGVyIHBvbHlmaWxsIC0gY3JlYXRlcyA8aSBjbGFzcz1cImllLWFmdGVyXCI+PC9pPiAqL1xuICAgICAgICB6b29tOiAjeydleHByZXNzaW9uJ30oI3sndGhpcy5ydW50aW1lU3R5bGUuem9vbT1cIjFcIix0aGlzLmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaVwiKSApLmNsYXNzTmFtZT1cImllLWFmdGVyXCInfSk7XG4gICAgfVxufVxuXG5AbWl4aW4gcmVtLXNpemUoJHNpemUpIHtcbiAgICBAaWYoJGJhc2UtZm9udC1zaXplKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNpemUgKiAkYmFzZS1mb250LXNpemU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEB3YXJuIFwiTm8gYmFzZS1mb250LXNpemUgc3BlY2lmaWVkIGZvciByZW0tc2l6ZSBtaXhpbjsgdW5leHBlY3RlZCBiZWhhdmlvdXIgbGlrZWx5IGluIG9sZGVyIGJyb3dzZXJzLlwiO1xuICAgIH1cbiAgICBmb250LXNpemU6ICN7JHNpemV9cmVtO1xufVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1pbWFnZSgkZGlzcGxheTogYmxvY2spIHtcbiAgICBkaXNwbGF5OiAkZGlzcGxheTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gc2VsZWN0KCRmb250LWNvbG9yLCAkZm9jdXMtY29sb3IpIHtcbiAgICBjb2xvcjogJGZvbnQtY29sb3I7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDI4cHg7IC8qICE9IElFNyAqL1xuICAgICpoZWlnaHQ6IGF1dG87IC8qIElFNyAqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGZvbnQtY29sb3IsIDMwJSk7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygzcHgpO1xuICAgIEBpbmNsdWRlIHNpbmdsZS1ib3gtc2hhZG93KDAsIDAsIDJweCwgbnVsbCwgcmdiYSgjMDAwLCAwLjIpKTtcblxuICAgICpwYWRkaW5nOiAwIDAgMCAzcHg7IC8qIElFNyAqL1xuICAgIHBhZGRpbmc6IDRweCAycHggNHB4IDRweDsgLyogSUU4ICovXG4gICAgJjpub3QoW2R1bW15XSkge1xuICAgICAgICBwYWRkaW5nOiA0cHggMnB4IDJweCA0cHg7IC8qIE5PVCBJRTcvSUU4ICovXG4gICAgfVxuXG4gICAgJlttdWx0aXBsZV0ge1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbChodWUoJGZvY3VzLWNvbG9yKSwgODAlLCAzMCUpO1xuICAgICAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kKGxpbmVhci1ncmFkaWVudCgjZmVmZWZlLCBoc2woaHVlKCRmb2N1cy1jb2xvciksIDk1JSwgOTglKSkpO1xuICAgIH1cbn1cblxuQG1peGluIHNlbGVjdC13cmFwIHtcbiAgICAqcGFkZGluZzogM3B4O1xufVxuXG5AbWl4aW4gdGV4dC1pbnB1dCgkZm9udC1jb2xvciwgJGZvY3VzLWNvbG9yKSB7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgIGhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiA0cHggNnB4IDA7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRmb250LWNvbG9yLCA0MCUpO1xuICAgIEBpbmNsdWRlIHNpbmdsZS1ib3gtc2hhZG93KDAsIDAsIDJweCwgZmFsc2UsIHJnYmEoIzAwMCwwLjMpLCB0cnVlKTtcblxuICAgICY6bm90KFtkdW1teV0pIHtcbiAgICAgICAgLyogQ29kZSBmb3IgTk9UIElFNy9JRTggKi9cbiAgICAgICAgcGFkZGluZzogMCA2cHg7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgaHNsKGh1ZSgkZm9jdXMtY29sb3IpLCA4MCUsIDQwJSk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gdGV4dGFyZWEoJGZvbnQtY29sb3IsICRmb2N1cy1jb2xvcikge1xuICAgIHBhZGRpbmc6IDZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oJGZvbnQtY29sb3IsIDQwJSk7XG4gICAgQGluY2x1ZGUgc2luZ2xlLWJveC1zaGFkb3coMCwgMCwgMnB4LCBmYWxzZSwgcmdiYSgjMDAwLDAuMyksIHRydWUpO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbChodWUoJGZvY3VzLWNvbG9yKSwgODAlLCA0MCUpO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGJ1dHRvbigkYmctY29sb3VyLCAkZm9udC1jb2xvdXI6ICNmZmYsICRyZWNvbG91ci1vbmx5OiBmYWxzZSkge1xuICAgIEBpZiAoJHJlY29sb3VyLW9ubHkpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJnLWNvbG91cjtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91cjtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRlZmF1bHQoJGJnLWNvbG91ciwgJGZvbnQtY29sb3VyKTtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tb3ZlcigkYmctY29sb3VyLCAkZm9udC1jb2xvdXIpO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWRvd24oJGJnLWNvbG91ciwgJGZvbnQtY29sb3VyKTtcbiAgICB9XG5cbiAgICAmOnZpc2l0ZWQsICY6bGluayB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvdXI7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oYmxhY2ssIDQ2JSk7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cbn1cblxuQG1peGluIHRleHQtc2hhZG93ICgkeDogMCwgJHk6IDAsICRibHVyOiAxcHgsICRjb2xvdXI6ICMwMDApIHtcbiAgICB0ZXh0LXNoYWRvdzogJHggJHkgJGJsdXIgJGNvbG91cjtcbn1cblxuQG1peGluIGJ1dHRvbi1kZWZhdWx0KCRiZy1jb2xvdXIsICRmb250LWNvbG91cjogI2ZmZikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvdXI7XG4gICAgY29sb3I6ICRmb250LWNvbG91cjtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDJweCk7XG5cbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGhlaWdodDogMjhweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgbGluZS1oZWlnaHQ6IDI5cHg7IC8qIElFOCAqL1xuICAgICpsaW5lLWhlaWdodDogMjhweDsgLyogSUU3ICovXG5cbiAgICAmOm5vdChbZHVtbXldKSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBhdXRvOyAvKiBOT1QgSUU3L0lFOCAqL1xuICAgIH1cblxuICAgIC8vIE1haW5seSBmb3IgalFNIGJ1dHRvbnNcbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91cjtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgdGV4dC1zaGFkb3coMCwgMXB4LCAwLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xufVxuXG4vLyBOb3RlOiBzcGVjaWZ5IHRoZSBmb250IHN0eWxlIGZvciB0aGUgKmJhc2UqIGJ1dHRvblxuQG1peGluIGJ1dHRvbi1kb3duKCRiZy1jb2xvdXIsICRmb250LWNvbG91cjogI2ZmZikge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5AbWl4aW4gYnV0dG9uLW92ZXIgKCRiZy1jb2xvdXIsICRmb250LWNvbG91cjogI2ZmZikge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQobGluZWFyLWdyYWRpZW50KGxpZ2h0ZW4oJGJnLWNvbG91ciwgNyUpLCBkYXJrZW4oJGJnLWNvbG91ciwgNyUpKSk7XG4gICAgLy8gSUU3IGNvbXBsYWlucyBhYm91dCBpbnNlY3VyZSBjb250ZW50IGlmIHlvdSBhdHRlbXB0IHRvIGxvYWQgZGF0YSBVUklzIG9uIEhUVFBzIGRvbWFpbnMsIHNvIHdlIGhhdmUgdG8gbWFrZSBzdXJlXG4gICAgLy8gdG8gb3ZlcnJpZGUgdGhlIGJhY2tncm91bmQgYXR0cmlidXRlXG4gICAgYmFja2dyb3VuZDogI3skYmctY29sb3VyfVxcOTtcbiAgICBAaW5jbHVkZSBzaW5nbGUtYm94LXNoYWRvdygwLCAxcHgsIDVweCwgbnVsbCwgcmdiYSgjMDAwLCAwLjQpKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gei1pbmRleCB0b29sc1xuLy9cbi8vIFVzZSAkYmFzZS1sYXllci1vZmZzZXQgdG8gc2V0IHRoZSBcInNjb3BlXCIgZm9yIGEgY29sbGVjdGlvbiBvZiB6LWluZGV4IHZhbHVlcy5cbi8vIGUuZy4gQSB3aWRnZXQgbWF5IHNldCBhIGJhc2UgbGF5ZXIgb2Zmc2V0IG9mIDEwMCB0byBnaXZlIGl0IHNvbWUgcHJpb3JpdHkgb3ZlciBvdGhlciB3aWRnZXRzLlxuLy8gWW91IHNob3VsZCBiZSBjYXJlZnVsIGluIGNob29zaW5nIGFuIG9mZnNldCwgYXMgeW91ciBjb2RlIG1heSBoYXZlIHRvIHBsYXkgbmljZSB3aXRoIG90aGVyIHdpZGdldHMgd2l0aCB6LWluZGV4IG9mZnNldHMuXG4vL1xuLy8gVXNlICRpbnRlcm5hbC1sYXllci1vZmZzZXQgdG8gZmluZSB0dW5lIGxheWVyIG9yZGVycyB3aXRoaW4gYSBncm91cCBvZiBlbGVtZW50cy5cbi8vIGUuZy4gQSB3aWRnZXQgbWF5IGhhdmUgdHdvIHBvcHVwIG1vZGFscy4gU2V0dGluZyBhbiAkaW50ZXJuYWwtbGF5ZXItb2Zmc2V0IG9mIDAgYW5kIDEgd2lsbCBnaXZlIG9uZSB3aW5kb3cgcHJpb3JpdHkuXG5cbiRiYXNlLWxheWVyLW9mZnNldDogMCAhZGVmYXVsdDtcblxuQG1peGluIGZvcmNlLWxheWVyKCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAwO1xufVxuXG5AbWl4aW4gbGF5ZXItcG9wdXAgKCRpbnRlcm5hbC1sYXllci1vZmZzZXQ6IDApIHtcbiAgICAkcG9wdXAtbGF5ZXItb2Zmc2V0OiA1MDAgIWRlZmF1bHQ7XG4gICAgei1pbmRleDogJGJhc2UtbGF5ZXItb2Zmc2V0ICsgJGludGVybmFsLWxheWVyLW9mZnNldCArIDYwMDtcbn1cblxuQG1peGluIGxheWVyLW92ZXJsYXkgKCRpbnRlcm5hbC1sYXllci1vZmZzZXQ6IDApIHtcbiAgICAkb3ZlcmxheS1sYXllci1vZmZzZXQ6IDUwMCAhZGVmYXVsdDtcbiAgICB6LWluZGV4OiAkYmFzZS1sYXllci1vZmZzZXQgKyAkaW50ZXJuYWwtbGF5ZXItb2Zmc2V0ICsgNTAwO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1vZGVybml6ciBzdXBwb3J0IHRlc3RzXG4vLyBJZiBtb2Rlcm5penIgaXMgYXZhaWxhYmxlLCBpZi1zdXBwb3J0ZWQgYW5kIGlmLW5vdC1zdXBwb3J0ZWQgYXJlIGEgY29udmVuaWVudCB3YXkgdG8gbWFyayBzdHlsZXMgdGhhdCByZWx5XG4vLyBvbiBhIG1vZGVybml6ciB0ZXN0XG4vL1xuLy8gQGluY2x1ZGUgaWYtc3VwcG9ydGVkKGJveC1zaXppbmcpIHtcbi8vIFx0XHQuZWxlbWVudCB7XG4vL1x0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vL1x0XHR9XG4vLyB9XG5cbkBtaXhpbiBpZi1zdXBwb3J0ZWQoJGNoZWNrKSB7XG4gICAgQGlmICRtb2Rlcm5penItc3VwcG9ydCAhPSB0cnVlIHtcbiAgICAgICAgQHdhcm4gXCJUaGlzIGZlYXR1cmUgcmVxdWlyZXMgTW9kZXJuaXpyIHRvIGJlIGF2YWlsYWJsZS5cIjtcbiAgICB9XG4gICAgJG1vZGVybml6ci1zdXBwb3J0LWVsZW1lbnQ6IFwiXCIgIWRlZmF1bHQ7XG4gICAgI3skbW9kZXJuaXpyLXN1cHBvcnQtZWxlbWVudH0uI3skY2hlY2t9ICYge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBpZi1ub3Qtc3VwcG9ydGVkKCRjaGVjaykge1xuICAgIEBpZiAkbW9kZXJuaXpyLXN1cHBvcnQgIT0gdHJ1ZSB7XG4gICAgICAgIEB3YXJuIFwiVGhpcyBmZWF0dXJlIHJlcXVpcmVzIE1vZGVybml6ciB0byBiZSBhdmFpbGFibGUuXCI7XG4gICAgfVxuICAgICRtb2Rlcm5penItc3VwcG9ydC1lbGVtZW50OiBcIlwiICFkZWZhdWx0O1xuICAgICN7JG1vZGVybml6ci1zdXBwb3J0LWVsZW1lbnR9Lm5vLSN7JGNoZWNrfSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5cblxuLy8vKlxuLy9cdENyZWF0ZXMgYSB3ZWIgZm9udCBkZWZpbml0aW9uIGJhc2VkIG9uIHRoZSBkZXRhaWxzIHByb3ZpZGVkLlxuLy9cbi8vXHQkZm9udC1mYW1pbHk6IFRoZSBuYW1lIG9mIHRoZSBmb250IGZhbWlseSB0aGUgZm9udCBiZWxvbmdzIHRvLiBVc2UgaW4gY29tYmluYXRpb24gd2l0aCAkZm9udC13ZWlnaHQgYW5kICRmb250LXN0eWxlIHRvIGNyZWF0ZSBmdWxsIGZvbnQgZmFtaWxpZXNcbi8vXHQkZm9udC1uYW1lOiBOYW1lIG9mIHRoZSBmb250IGZpbGVzLiBOb3RlIHRoYXQgZm9yIFNWRyBmb250cyB0aGUgZm9udCBhbmNob3IgbXVzdCBiZSB0aGUgc2FtZSBhcyAkZm9udC1uYW1lIChAc2VlIGh0dHA6Ly9iaWxscGF0cmlhbmFrb3MubWUvYmxvZy8yMDEyLzEyLzI2L2ZpeC13ZWJmb250LXJlbmRlcmluZy1pc3N1ZXMtaW4tY2hyb21lLWZvci13aW5kb3dzLylcbi8vXHQkZm9udC1kaXJlY3Rvcnk6IFBhdGggdG8gdGhlIGRpcmVjdG9yeSB0aGUgZm9udCBmaWxlcyByZXNpZGUgaW5cbi8vXHQkZm9udC13ZWlnaHQ6IENTUyBmb250IHdlaWdodCBmb3IgdGhpcyBmb250IGRlZmluaXRpb25cbi8vXHQkZm9udC1zdHlsZTogQ1NTIGZvbnQgc3R5bGUgZm9yIHRoaXMgZm9udCBkZWZpbml0aW9uXG4vL1xuLy9cdEV4YW1wbGU6XG4vL1x0QGluY2x1ZGUgZm9udCgnQW50d2VycCcsICdBbnR3ZXJwLUJvbGRJdGFsaWMnLCAnLi4vZm9udHMvYW50d2VycCcsIGJvbGQsIGl0YWxpYyk7XG4vL1xuLy9cdE91dHB1dDpcbi8vXHRAZm9udC1mYWNlIHtcbi8vXHRcdGZvbnQtZmFtaWx5OiAnQW50d2VycCc7XG4vL1x0XHRzcmM6IHVybChcIi4uL2ZvbnRzL2FudHdlcnAvQW50d2VycC1Cb2xkSXRhbGljLmVvdFwiKTtcbi8vXHRcdHNyYzogdXJsKFwiLi4vZm9udHMvYW50d2VycC9BbnR3ZXJwLUJvbGRJdGFsaWMuZW90PyNpZWZpeFwiKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybChcIi4uL2Fzc2V0cy9mb250cy9hbnR3ZXJwL0FudHdlcnAtQm9sZEl0YWxpYy53b2ZmXCIpIGZvcm1hdCgnd29mZicpLCB1cmwoXCIuLi9mb250cy9hbnR3ZXJwL0FudHdlcnAtQm9sZEl0YWxpYy50dGZcIikgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoXCIuLi9mb250cy9hbnR3ZXJwL0FudHdlcnAtQm9sZEl0YWxpYy5zdmcjQW50d2VycC1Cb2xkSXRhbGljXCIpIGZvcm1hdCgnc3ZnJyk7XG4vL1x0XHRmb250LXN0eWxlOiBpdGFsaWM7XG4vL1x0XHRmb250LXdlaWdodDogYm9sZDtcbi8vXHRcdHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7IH1cbi8vXG4vLy8vXG5AbWl4aW4gZm9udCgkZm9udC1mYW1pbHksICRmb250LW5hbWUsICRmb250LWRpcmVjdG9yeSwgJGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhciwgJGZvbnQtc3R5bGU6IG5vcm1hbCkge1xuXG4gICAgLy8gVGhpcyBtYXAgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgbGlzdCBvZiB2YXJpb3VzIGZvbnQgdHlwZXMuIFNlZSB0aGUgQGVhY2ggZnVuY3Rpb24gYmVsb3dcbiAgICAkZm9udC10eXBlLW1hcDogKFxuICAgICAgICAnZW90PyNpZWZpeCc6ICdlbWJlZGRlZC1vcGVudHlwZScsIC8qIElFNi1JRTggKi9cbiAgICAgICAgJ3dvZmYnOiAnd29mZicsIC8qIE1vZGVybiBCcm93c2VycyAqL1xuICAgICAgICAndHRmJzogJ3RydWV0eXBlJywgLyogU2FmYXJpLCBBbmRyb2lkLCBpT1MgKi9cbiAgICAgICAgJ3N2ZyMjeyRmb250LW5hbWV9JzogJ3N2ZycsIC8qIExlZ2FjeSBpT1MgKi9cbiAgICApICFkZWZhdWx0O1xuXG4gICAgQGZvbnQtZmFjZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgICAgIHNyYzogdXJsKFwiI3skZm9udC1kaXJlY3Rvcnl9LyN7JGZvbnQtbmFtZX0uZW90XCIpOyAvLyBJRTkgY29tcGF0aWJpbGl0eSBtb2Rlc1xuICAgICAgICAkZm9udC1tYXA6ICgpO1xuICAgICAgICBAZWFjaCAkc3VmZml4LCAkZm9ybWF0IGluICRmb250LXR5cGUtbWFwIHtcbiAgICAgICAgICAgICRmb250LW1hcDogYXBwZW5kKCRmb250LW1hcCwgdXJsKFwiI3skZm9udC1kaXJlY3Rvcnl9LyN7JGZvbnQtbmFtZX0uI3skc3VmZml4fVwiKSBmb3JtYXQoJGZvcm1hdCksIGNvbW1hKTtcbiAgICAgICAgfVxuICAgICAgICBzcmM6ICRmb250LW1hcDtcbiAgICAgICAgZm9udC1zdHlsZTogJGZvbnQtc3R5bGU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgfVxufVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG5AbWl4aW4gZGltZW5zaW9ucy1mb3ItcmF0aW8oJGJhc2VXaWR0aCwgJHJhdGlvV2lkdGgsICRyYXRpb0hlaWdodCkge1xuXG4gICAgJGhlaWdodDogKCRiYXNlV2lkdGggKiAoJHJhdGlvSGVpZ2h0IC8gJHJhdGlvV2lkdGgpKTtcbiAgICB3aWR0aDogJGJhc2VXaWR0aDtcbiAgICBAaWYgKHVuaXQoJGJhc2VXaWR0aCkgPT0gXCIlXCIpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRoZWlnaHQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLy8gUmVxdWlyZXMgYSBibG9jay1sZXZlbCBlbGVtZW50IHRvIHdvcmsgcHJvcGVybHlcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuQG1peGluIHN2Z2ZpeCgkaGVpZ2h0LCAkcGFkZGluZy1ib3R0b20sICR3aWR0aCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHBhZGRpbmctYm90dG9tO1xuICAgIHdpZHRoOiAkd2lkdGg7XG59XG5cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG5AbWl4aW4gZ2x5cGhpY29uKCRpY29uLCAkc2l6ZTogbnVsbCkge1xuICAgIGNvbnRlbnQ6ICRpY29uO1xuICAgIGZvbnQtZmFtaWx5OiAnR2x5cGhpY29ucyBIYWxmbGluZ3MnO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICAgIEBpZiAoJHNpemUpIHtcbiAgICAgICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgICB9XG59XG5cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG5AbWl4aW4gZm9jdXMge1xuICAgIG91dGxpbmU6IHRoaW4gZG90dGVkO1xuICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbn1cblxuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbkBtaXhpbiByZXNldC1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLy8gU3RyaXBzIHRoZSBsZWFkaW5nIGhhc2ggZnJvbSBhIGhleCBjb2xvdXIsIHJldHVybmluZyBhIHN0cmluZ1xuQGZ1bmN0aW9uIHN0cmlwLWhhc2goJGNvbG91cikge1xuXG4gICAgLy8gQ29udmVydCBDb2xvciB0byBTdHJpbmcgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB3aXRoIHN0ci1zbGljZVxuICAgICRjb2xvdXItc3RyaW5nOiAkY29sb3VyICsgXCJcIjtcblxuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRjb2xvdXItc3RyaW5nLCAyKTtcbn1cbiIsIkBpbXBvcnQgXCJjb21wYXNzL2NzczNcIjtcbkBpbXBvcnQgXCIuLi9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLnVzeWQtYmFjay10by10b3Age1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRwYWRkaW5nOiA4cHggMTBweDtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cblx0aSB7XG5cdFx0Zm9udC1zaXplOiAxLjFlbTtcblx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0YSB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHNwYW46aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHRcdCY6dmlzaXRlZCB7XG5cdFx0XHRjb2xvcjogJGxpbmstY29sb3VyO1xuXHRcdH1cblxuXHR9XG5cblx0Ji51c3lkLWhpZGUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQuY3NzdHJhbnNmb3JtczNkICYge1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkoJ3RyYW5zZm9ybScpO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24tZHVyYXRpb24oMC4ycyk7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oZWFzZSk7XG5cblx0XHQmLnVzeWQtaGlkZSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdEBpbmNsdWRlIHNpbXBsZS10cmFuc2Zvcm0oZmFsc2UsIDkwZGVnLCA1cHgpO1xuXHRcdH1cblx0fVxufVxuLmNzc3RyYW5zZm9ybXMzZCAudXN5ZC1iYWNrLXRvLXRvcC51c3lkLWhpZGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0LXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDEwMHB4LDEwMHB4KTtcblx0LW1vei10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDEwMHB4LDEwMHB4KTtcblx0LW8tdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgxMDBweCwxMDBweCk7XG5cdC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDEwMHB4LDEwMHB4KTtcblx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpdHJhbnNsYXRlKDEwMHB4LDEwMHB4KTtcbn1cbkBpbmNsdWRlIG1lZGlhLXNtYWxsLXVwIHtcblx0LnVzeWQtYmFjay10by10b3Age1xuXHRcdGJvdHRvbTogLTFweDtcblx0XHQqYm9yZGVyLWJvdHRvbTogMDtcblx0XHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDNweCAzcHggMCAwKTtcblxuXHRcdGkge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG5cdFx0fVxuXG5cdFx0LmNzc3RyYW5zZm9ybXMzZCAmIHtcblx0XHRcdC8vQGluY2x1ZGUgYXBwbHktb3JpZ2luKGJvdHRvbSBsZWZ0LCBmYWxzZSk7XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhzbWFsbCB7XG5cdC51c3lkLWJhY2stdG8tdG9wIHtcblx0XHRib3R0b206IDQwcHg7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cygzcHggMCAwIDNweCk7XG5cdFx0Zm9udC1zaXplOiAyNXB4O1xuXHRcdG1hcmdpbi1yaWdodDogLTFweDtcblxuXHRcdC5jc3N0cmFuc2Zvcm1zM2QgJiB7XG4vL1x0XHRcdEBpbmNsdWRlIGFwcGx5LW9yaWdpbihib3R0b20gcmlnaHQsIGZhbHNlKTtcblx0XHR9XG5cblx0XHRpIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMHB4O1xuXHRcdH1cblxuXHRcdHNwYW4ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gTWFzdGVyIGJyYW5kIGNvbG9ycyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyYW5kLXJlZDogI2U2NDYyNjsgLy9yZ2IoMjMwLDcwLDM4KTtcbiRicmFuZC1yZWQtaG92ZXI6ICNjZTNkMjA7IC8vcmdiKDIwNiw2MSwzMik7XG4kYnJhbmQtcmVkLXNsaWdodGx5LXRyYW5zcGFyZW50OiByZ2JhKDIzMCw3MSwzOSwwLjk1KTtcblxuJGJyYW5kLWxpZ2h0OiAjZmZmO1xuJGJyYW5kLWRhcms6ICMzMzM7XG5cbi8vIEJyYW5kIGNvbG91cnNcbiRicmFuZC1wcmltYXJ5OiAjZTY0NjI2O1xuJGJyYW5kLXNlY29uZGFyeTogIzEyNDE2QztcbiRicmFuZC10ZXJ0aWFyeTogI0Y1QUYwMDtcbiRicmFuZC10ZXJ0aWFyeS1zdXBwb3J0OiAjZmJjZDZiO1xuXG4kYnJhbmQtY29sb3VyLWxpZ2h0LWdyZXk6ICNmMWYxZjE7ICAgLy8gTGlnaHQgZ3JleVxuJGJyYW5kLWNvbG91ci1tZWRpdW0tZ3JleTogI2U4ZThlODsgIC8vIE1lZGl1bSBncmV5XG4kYnJhbmQtY29sb3VyLWRhcmstZ3JleTogI2IyYjJiMjsgICAgLy8gRGFyayBncmV5XG4kYnJhbmQtY29sb3VyLWRhcmtlci1ncmV5OiAjOGM4YzhjOyAgICAvLyBEYXJrZXIgZ3JleVxuXG5cbi8vVE9ETzogdGhlIGJlbG93IHZhcmlhYmxlcyB3aWxsIG5lZWQgdG8gY2xlYW4gdXAsIHJlbW92ZSB0aGUgb25lIHdoaWNoIGhhc24ndCBiZWVuIHVzZWQgYW5kIG1vdmUgdGhlIHZhcmlhYmxlcyBhYm92ZSB0aGlzIGNvbW1lbnQgYXMgaXQgcmVkdWNlIHRoZSBkZXZlbG9wZXJzIHJlYWRpbmcgc3BlZWQuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLyBGb250IGNvbG9ycyAvLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRmb250LWNvbG91ci1saWdodDogI2ZmZjtcbiRzdXBwb3J0LWZvbnQtY29sb3VyOiB0aW50KGJsYWNrLCA0MCUpO1xuJGZvbnQtY29sb3VyLWRhcms6IGJsYWNrOyAvLyAxMDAlIGJsYWNrID0gIzAwMDAwMFxuJGZvbnQtY29sb3VyLWRhcmstOTA6IHRpbnQoYmxhY2ssIDEwJSk7IC8vIDkwJSBibGFjayA9ICMxOTE5MTlcbiRmb250LWNvbG91ci1kYXJrLTgwOiB0aW50KGJsYWNrLCAyMCUpOyAvLyA4MCUgYmxhY2sgPSAjMzMzMzMzXG5cbiRiZy1jb2xvdXItbGlnaHQ6ICNmZmY7XG5cbiRsaWdodC1ncmV5OiBsaWdodGVuKGJsYWNrLCA5MCUpO1xuJG1lZGl1bS1ncmV5OiBsaWdodGVuKGJsYWNrLCA3NSUpO1xuXG4vLyBTdWItYnJhbmQgY29sb3Vyc1xuXG4kYWdyaWN1bHR1cmU6ICMzRTU3MTI7XG4kYWdyaWN1bHR1cmUtNzU6IHRpbnQoJGFncmljdWx0dXJlLCAyNSUpOyAvLyAjNkU4MTREXG4kYWdyaWN1bHR1cmUtNTA6IHRpbnQoJGFncmljdWx0dXJlLCA1MCUpOyAvLyAjOUVBQjg4XG5cbiRhcnRzOiAjM0NCNkNFO1xuJGFydHMtNzU6IHRpbnQoJGFydHMsIDI1JSk7IC8vICM2ZGM4ZGFcbiRhcnRzLTUwOiB0aW50KCRhcnRzLCA1MCUpOyAvLyAjOWRkYWU2XG5cbiRhcmNoaXRlY3R1cmU6ICNCRUQ2MDA7XG4kYXJjaGl0ZWN0dXJlLTc1OiB0aW50KCRhcmNoaXRlY3R1cmUsIDI1JSk7IC8vICNDRUUwM0ZcbiRhcmNoaXRlY3R1cmUtNTA6IHRpbnQoJGFyY2hpdGVjdHVyZSwgNTAlKTsgLy8gI2RlZWE3ZlxuXG4kYnVzaW5lc3M6ICMwMDJGNUY7XG4kYnVzaW5lc3MtNzU6IHRpbnQoJGJ1c2luZXNzLCAyNSUpOyAvLyAjM0Y2Mzg3XG4kYnVzaW5lc3MtNTA6IHRpbnQoJGJ1c2luZXNzLCA1MCUpOyAvLyAjN2Y5N2FmXG5cbiRlZHVjYXRpb246ICMwMDZkNzQ7XG4kZWR1Y2F0aW9uLTc1OiB0aW50KCRlZHVjYXRpb24gLCA3NSUpOyAvLyAjNDA5Mjk3XG4kZWR1Y2F0aW9uLTUwOiB0aW50KCRlZHVjYXRpb24gLCA1MCUpOyAvLyAjN2ZiNmI5XG5cbiRlbmdpbmVlcmluZzogIzAwOThkYjtcbiRlbmdpbmVlcmluZy03NTogdGludCgkZW5naW5lZXJpbmcgLCAyNSUpOyAvLyAjNDBiMmU0XG4kZW5naW5lZXJpbmctNTA6IHRpbnQoJGVuZ2luZWVyaW5nICwgNTAlKTsgLy8gIzdmY2JlZFxuXG4kaGVhbHRoOiAjMDBiMmE5O1xuJGhlYWx0aC03NTogdGludCgkaGVhbHRoICwgMjUlKTsgLy8gIzQwYzViZlxuJGhlYWx0aC01MDogdGludCgkaGVhbHRoICwgNTAlKTsgLy8gIzdmZDhkNFxuXG4kZGVudGlzdHJ5OiAjNDIxNDVmO1xuJGRlbnRpc3RyeS03NTogdGludCgkZGVudGlzdHJ5ICwgMjUlKTsgLy8gIzcxNGY4N1xuJGRlbnRpc3RyeS01MDogdGludCgkZGVudGlzdHJ5ICwgNTAlKTsgLy8gI2EwODlhZlxuXG4kcGhhcm1hY3k6ICM3MDkwYjc7XG4kcGhhcm1hY3ktNzU6IHRpbnQoJHBoYXJtYWN5ICwgMjUlKTsgLy8gIzk0YWNjOVxuJHBoYXJtYWN5LTUwOiB0aW50KCRwaGFybWFjeSAsIDUwJSk7IC8vICNiN2M3ZGJcblxuJGxhdzogIzEyNDE2YztcbiRsYXctNzU6IHRpbnQoJGxhdyAsIDI1JSk7IC8vICM0ZDcxOTFcbiRsYXctNTA6IHRpbnQoJGxhdyAsIDUwJSk7IC8vICM4OGEwYjVcblxuJHNjaWVuY2U6ICNFMzcyMjI7XG4kc2NpZW5jZS03NTogdGludCgkc2NpZW5jZSAsIDI1JSk7IC8vICNFQTk1NTlcbiRzY2llbmNlLTUwOiB0aW50KCRzY2llbmNlICwgNTAlKTsgLy8gI0YxQjg5MFxuXG4kc2NhOiAjZGM3ZTAwO1xuJHNjYS03NTogdGludCgkc2NhICwgMjUlKTsgLy8gI2U1OWU0MFxuJHNjYS01MDogdGludCgkc2NhICwgNTAlKTsgLy8gI2VkYmU3ZlxuXG4kbXVzaWM6ICNmOWI3MmM7XG4kbXVzaWMtNzU6IHRpbnQoJG11c2ljICwgMjUlKTsgLy8gI2ZiYzk2MVxuJG11c2ljLTUwOiB0aW50KCRtdXNpYyAsIDUwJSk7IC8vICNmY2RiOTVcblxuJHZldHNjaTogIzhkMWIzZDtcbiR2ZXRzY2ktNzU6IHRpbnQoJHZldHNjaSAsIDI1JSk7IC8vICNhYTU0NmVcbiR2ZXRzY2ktNTA6IHRpbnQoJHZldHNjaSAsIDUwJSk7IC8vICNjNjhkOWVcblxuJHN5ZG5leS10YWxlbnQ6ICNiNmJmMDA7XG4kc3lkbmV5LXRhbGVudC03NTogdGludCgkc3lkbmV5LXRhbGVudCAsIDI1JSk7IC8vICNjOGNmNDBcbiRzeWRuZXktdGFsZW50LTUwOiB0aW50KCRzeWRuZXktdGFsZW50ICwgNTAlKTsgLy8gI2RhZGY3ZlxuXG4kY2V0OiAjMDA2Njk5O1xuJGNldC03NTogdGludCgkY2V0ICwgMjUlKTsgLy8gIzQwOGNiM1xuJGNldC01MDogdGludCgkY2V0ICwgNTAlKTsgLy8gIzdmYjJjY1xuXG4kbXVzZXVtczogIzM2MWQyZjtcbiRtdXNldW1zLTc1OiB0aW50KCRtdXNldW1zICwgMjUlKTsgLy8gIzY4NTY2M1xuJG11c2V1bXMtNTA6IHRpbnQoJG11c2V1bXMgLCA1MCUpOyAvLyAjOWE4ZTk3XG5cblxuJGxpbmstY29sb3VyOiBsaWdodGVuKCRicmFuZC1zZWNvbmRhcnksIDEwJSkgIWdsb2JhbDtcbiRsaW5rLXZpc2l0ZWQtY29sb3VyOiBsaWdodGVuKCM0MjE0NUYsIDE1JSkgIWdsb2JhbDtcblxuJGJnLWxpZ2h0ZXN0LWNvbG9yOiBsaWdodGVuKGJsYWNrLCA5NyUpICFnbG9iYWw7XG4kYmctbGlnaHQtY29sb3I6IGxpZ2h0ZW4oJGJyYW5kLXRlcnRpYXJ5LXN1cHBvcnQsIDIwJSkgIWdsb2JhbDtcbiRiZy1kYXJrLWNvbG91cjogbGlnaHRlbihibGFjaywgMzAlKSAhZ2xvYmFsO1xuJGJnLWRhcmtlci1jb2xvcjogbGlnaHRlbihibGFjaywgMjAlKSAhZ2xvYmFsO1xuXG4vLyBFcnJvciBzdGF0ZXNcbiRpbnZhbGlkLWZpZWxkLWJnOiAjZmRmNWY0O1xuJGludmFsaWQtZmllbGQtYm9yZGVyOiAkYnJhbmQtcmVkLWhvdmVyO1xuJGludmFsaWQtZmllbGQtZXJyb3ItbXNnOiAkYnJhbmQtcmVkLWhvdmVyO1xuXG5cbi8vIE5vdGljZSAhZ2xvYmFsc1xuJGVycm9yLWZnLWNvbG91cjogI2NlMTEyNiAhZ2xvYmFsO1xuJGVycm9yLWJnLWNvbG91cjogdGludCgkZXJyb3ItZmctY29sb3VyLCA5NSUpICFnbG9iYWw7XG4kd2FybmluZy1mZy1jb2xvdXI6ICNiYzUyMDAgIWdsb2JhbDtcbiR3YXJuaW5nLWJnLWNvbG91cjogdGludCgjRjVBRjAwLCA5NSUpICFnbG9iYWw7XG4kaW5mby1mZy1jb2xvdXI6ICMxMjQxNmMgIWdsb2JhbDtcbiRpbmZvLWJnLWNvbG91cjogdGludCgkaW5mby1mZy1jb2xvdXIsIDk1JSkgIWdsb2JhbDtcbiRzdWNjZXNzLWZnLWNvbG91cjogIzNlNTcxMiAhZ2xvYmFsO1xuJHN1Y2Nlc3MtYmctY29sb3VyOiB0aW50KCRzdWNjZXNzLWZnLWNvbG91ciwgOTUlKSAhZ2xvYmFsO1xuXG4vLyBCb290c3RyYXAgY29sb3VyIG92ZXJyaWRlc1xuJGVycm9yVGV4dDogJGVycm9yLWZnLWNvbG91cjtcbiRlcnJvckJhY2tncm91bmQ6ICRlcnJvci1iZy1jb2xvdXI7XG5cbiR3YXJuaW5nVGV4dDogJHdhcm5pbmctZmctY29sb3VyO1xuJHdhcm5pbmdCYWNrZ3JvdW5kOiAkd2FybmluZy1iZy1jb2xvdXI7XG5cbiRzdWNjZXNzVGV4dDogJHN1Y2Nlc3MtZmctY29sb3VyO1xuJHN1Y2Nlc3NCYWNrZ3JvdW5kOiAkc3VjY2Vzcy1iZy1jb2xvdXI7XG5cbiRpbmZvVGV4dDogJGluZm8tZmctY29sb3VyO1xuJGluZm9CYWNrZ3JvdW5kOiAkaW5mby1iZy1jb2xvdXI7XG5cbiRlcnJvci1jb2xvcjogI0U0MEIwQiAhZ2xvYmFsO1xuXG4ldXN5ZC11aS1saWdodGVzdC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiB0aW50KGJsYWNrLCA5MCUpO1xufVxuXG4ldXN5ZC11aS1saWdodC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmctbGlnaHQtY29sb3I7XG59XG5cbiV1c3lkLXVpLXN0cm9uZy1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmctZGFyay1jb2xvdXI7XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG5cbiV1c3lkLXVpLXN0cm9uZ2VzdC1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmctZGFya2VyLWNvbG9yO1xuICAgIGNvbG9yOiB3aGl0ZTtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBDU1MgVHJhbnNpdGlvbnNcbi8vIEN1cnJlbnRseSBvbmx5IHdvcmtzIGluIFdlYmtpdC5cbi8vXG4vLyAqIGV4cGVjdGVkIGluIENTUzMsIEZpcmVGb3ggMy42LzcgYW5kIE9wZXJhIFByZXN0byAyLjNcbi8vICogV2UnbGwgYmUgcHJlcGFyZWQuXG4vL1xuLy8gSW5jbHVkaW5nIHRoaXMgc3VibW9kdWxlIHNldHMgZm9sbG93aW5nIGRlZmF1bHRzIGZvciB0aGUgbWl4aW5zOlxuLy9cbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5IDogYWxsXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbiA6IDFzXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbiA6IGZhbHNlXG4vLyAgICAgJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSAgICA6IGZhbHNlXG4vL1xuLy8gT3ZlcnJpZGUgdGhlbSBpZiB5b3UgbGlrZS4gVGltaW5nLWZ1bmN0aW9uIGFuZCBkZWxheSBhcmUgc2V0IHRvIGZhbHNlIGZvciBicm93c2VyIGRlZmF1bHRzIChlYXNlLCAwcykuXG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHk6IGFsbCAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMXMgIWRlZmF1bHQ7XG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb246IGZhbHNlICFkZWZhdWx0O1xuXG4kZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5OiBmYWxzZSAhZGVmYXVsdDtcblxuJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlczogdHJhbnNmb3JtLCB0cmFuc2Zvcm0tb3JpZ2luICFkZWZhdWx0O1xuXG4vLyBPbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIHRvIHRyYW5zaXRpb25cbi8vXG4vLyAqIGZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogYWxzbyBhY2NlcHRzIFwiYWxsXCIgb3IgXCJub25lXCJcblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnR5LTE6ICRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHksXG4gICRwcm9wZXJ0eS0yIDogZmFsc2UsXG4gICRwcm9wZXJ0eS0zIDogZmFsc2UsXG4gICRwcm9wZXJ0eS00IDogZmFsc2UsXG4gICRwcm9wZXJ0eS01IDogZmFsc2UsXG4gICRwcm9wZXJ0eS02IDogZmFsc2UsXG4gICRwcm9wZXJ0eS03IDogZmFsc2UsXG4gICRwcm9wZXJ0eS04IDogZmFsc2UsXG4gICRwcm9wZXJ0eS05IDogZmFsc2UsXG4gICRwcm9wZXJ0eS0xMDogZmFsc2Vcbikge1xuICBAaWYgdHlwZS1vZigkcHJvcGVydHktMSkgPT0gc3RyaW5nIHsgJHByb3BlcnR5LTE6IHVucXVvdGUoJHByb3BlcnR5LTEpOyB9XG4gICRwcm9wZXJ0aWVzOiBjb21wYWN0KCRwcm9wZXJ0eS0xLCAkcHJvcGVydHktMiwgJHByb3BlcnR5LTMsICRwcm9wZXJ0eS00LCAkcHJvcGVydHktNSwgJHByb3BlcnR5LTYsICRwcm9wZXJ0eS03LCAkcHJvcGVydHktOCwgJHByb3BlcnR5LTksICRwcm9wZXJ0eS0xMCk7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICB7ICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eSA6IHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC13ZWJraXQsICRwcm9wZXJ0aWVzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgeyAgICAgICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHkgOiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtbW96LCAgICAkcHJvcGVydGllcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAgICAgICAtby10cmFuc2l0aW9uLXByb3BlcnR5IDogcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oLW8sICAgICAgJHByb3BlcnRpZXMpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eSA6ICRwcm9wZXJ0aWVzO1xufVxuXG4vLyBPbmUgb3IgbW9yZSBkdXJhdGlvbnMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkdXJhdGlvbnMgd2lsbCBhZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkZHVyYXRpb24tMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgJGR1cmF0aW9uLTIgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTMgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTQgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTUgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTYgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTcgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTggOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTkgOiBmYWxzZSxcbiAgJGR1cmF0aW9uLTEwOiBmYWxzZVxuKSB7XG4gIEBpZiB0eXBlLW9mKCRkdXJhdGlvbi0xKSA9PSBzdHJpbmcgeyAkZHVyYXRpb24tMTogdW5xdW90ZSgkZHVyYXRpb24tMSk7IH1cbiAgJGR1cmF0aW9uczogY29tcGFjdCgkZHVyYXRpb24tMSwgJGR1cmF0aW9uLTIsICRkdXJhdGlvbi0zLCAkZHVyYXRpb24tNCwgJGR1cmF0aW9uLTUsICRkdXJhdGlvbi02LCAkZHVyYXRpb24tNywgJGR1cmF0aW9uLTgsICRkdXJhdGlvbi05LCAkZHVyYXRpb24tMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi1kdXJhdGlvbiwgJGR1cmF0aW9ucyxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBPbmUgb3IgbW9yZSB0aW1pbmcgZnVuY3Rpb25zXG4vL1xuLy8gKiBbIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcih4MSwgeTEsIHgyLCB5MildXG4vLyAqIEZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogVGhlc2UgZnVuY3Rpb25zIHdpbGwgZWZmZWN0IHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBzYW1lIGxpc3QgcG9zaXRpb25cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRmdW5jdGlvbi0xOiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uLFxuICAkZnVuY3Rpb24tMiA6IGZhbHNlLFxuICAkZnVuY3Rpb24tMyA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNCA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNSA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNiA6IGZhbHNlLFxuICAkZnVuY3Rpb24tNyA6IGZhbHNlLFxuICAkZnVuY3Rpb24tOCA6IGZhbHNlLFxuICAkZnVuY3Rpb24tOSA6IGZhbHNlLFxuICAkZnVuY3Rpb24tMTA6IGZhbHNlXG4pIHtcbiAgJGZ1bmN0aW9uLTE6IHVucXVvdGUoJGZ1bmN0aW9uLTEpO1xuICAkZnVuY3Rpb25zOiBjb21wYWN0KCRmdW5jdGlvbi0xLCAkZnVuY3Rpb24tMiwgJGZ1bmN0aW9uLTMsICRmdW5jdGlvbi00LCAkZnVuY3Rpb24tNSwgJGZ1bmN0aW9uLTYsICRmdW5jdGlvbi03LCAkZnVuY3Rpb24tOCwgJGZ1bmN0aW9uLTksICRmdW5jdGlvbi0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJGZ1bmN0aW9ucyxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBPbmUgb3IgbW9yZSB0cmFuc2l0aW9uLWRlbGF5cyBpbiBzZWNvbmRzXG4vL1xuLy8gKiBmb3IgbXVsdGlwbGUsIHVzZSBhIGNvbW1hLWRlbGltaXRlZCBsaXN0XG4vLyAqIHRoZXNlIGRlbGF5cyB3aWxsIGVmZmVjdCB0aGUgcHJvcGVydGllcyBpbiB0aGUgc2FtZSBsaXN0IHBvc2l0aW9uXG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCRkZWxheS0xOiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5LFxuICAkZGVsYXktMiA6IGZhbHNlLFxuICAkZGVsYXktMyA6IGZhbHNlLFxuICAkZGVsYXktNCA6IGZhbHNlLFxuICAkZGVsYXktNSA6IGZhbHNlLFxuICAkZGVsYXktNiA6IGZhbHNlLFxuICAkZGVsYXktNyA6IGZhbHNlLFxuICAkZGVsYXktOCA6IGZhbHNlLFxuICAkZGVsYXktOSA6IGZhbHNlLFxuICAkZGVsYXktMTA6IGZhbHNlXG4pIHtcbiAgQGlmIHR5cGUtb2YoJGRlbGF5LTEpID09IHN0cmluZyB7ICRkZWxheS0xOiB1bnF1b3RlKCRkZWxheS0xKTsgfVxuICAkZGVsYXlzOiBjb21wYWN0KCRkZWxheS0xLCAkZGVsYXktMiwgJGRlbGF5LTMsICRkZWxheS00LCAkZGVsYXktNSwgJGRlbGF5LTYsICRkZWxheS03LCAkZGVsYXktOCwgJGRlbGF5LTksICRkZWxheS0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2l0aW9uLWRlbGF5LCAkZGVsYXlzLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCBub3QoLW1zKSwgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFRyYW5zaXRpb24gYWxsLWluLW9uZSBzaG9ydGhhbmRcblxuQG1peGluIHNpbmdsZS10cmFuc2l0aW9uKFxuICAkcHJvcGVydHk6ICRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHksXG4gICRkdXJhdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbixcbiAgJGZ1bmN0aW9uOiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uLFxuICAkZGVsYXk6ICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXlcbikge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbXBhY3QoJHByb3BlcnR5ICRkdXJhdGlvbiAkZnVuY3Rpb24gJGRlbGF5KSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uKFxuICAkdHJhbnNpdGlvbi0xIDogZGVmYXVsdCxcbiAgJHRyYW5zaXRpb24tMiA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi0zIDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTQgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tNSA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi02IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTcgOiBmYWxzZSxcbiAgJHRyYW5zaXRpb24tOCA6IGZhbHNlLFxuICAkdHJhbnNpdGlvbi05IDogZmFsc2UsXG4gICR0cmFuc2l0aW9uLTEwOiBmYWxzZVxuKSB7XG4gIEBpZiAkdHJhbnNpdGlvbi0xID09IGRlZmF1bHQge1xuICAgICR0cmFuc2l0aW9uLTEgOiBjb21wYWN0KCRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXkpO1xuICB9XG4gICR0cmFuc2l0aW9uczogZmFsc2U7XG4gIEBpZiB0eXBlLW9mKCR0cmFuc2l0aW9uLTEpID09IGxpc3QgYW5kIHR5cGUtb2YobnRoKCR0cmFuc2l0aW9uLTEsMSkpID09IGxpc3Qge1xuICAgICR0cmFuc2l0aW9uczogam9pbigkdHJhbnNpdGlvbi0xLCBjb21wYWN0KCR0cmFuc2l0aW9uLTIsICR0cmFuc2l0aW9uLTMsICR0cmFuc2l0aW9uLTQsICR0cmFuc2l0aW9uLTUsICR0cmFuc2l0aW9uLTYsICR0cmFuc2l0aW9uLTcsICR0cmFuc2l0aW9uLTgsICR0cmFuc2l0aW9uLTksICR0cmFuc2l0aW9uLTEwKSwgY29tbWEpO1xuICB9IEBlbHNlIHtcbiAgICAkdHJhbnNpdGlvbnMgOiBjb21wYWN0KCR0cmFuc2l0aW9uLTEsICR0cmFuc2l0aW9uLTIsICR0cmFuc2l0aW9uLTMsICR0cmFuc2l0aW9uLTQsICR0cmFuc2l0aW9uLTUsICR0cmFuc2l0aW9uLTYsICR0cmFuc2l0aW9uLTcsICR0cmFuc2l0aW9uLTgsICR0cmFuc2l0aW9uLTksICR0cmFuc2l0aW9uLTEwKTtcbiAgfVxuICAkZGVsYXlzOiBjb21tYS1saXN0KCk7XG4gICRoYXMtZGVsYXlzOiBmYWxzZTtcbiAgJHdlYmtpdC12YWx1ZTogY29tbWEtbGlzdCgpO1xuICAkbW96LXZhbHVlOiBjb21tYS1saXN0KCk7XG4gICRvLXZhbHVlOiBjb21tYS1saXN0KCk7XG5cbiAgLy8gVGhpcyBibG9jayBjYW4gYmUgbWFkZSBjb25zaWRlcmFibHkgc2ltcGxlciBhdCB0aGUgcG9pbnQgaW4gdGltZSB0aGF0XG4gIC8vIHdlIG5vIGxvbmdlciBuZWVkIHRvIGRlYWwgd2l0aCB0aGUgZGlmZmVyZW5jZXMgaW4gaG93IGRlbGF5cyBhcmUgdHJlYXRlZC5cbiAgQGVhY2ggJHRyYW5zaXRpb24gaW4gJHRyYW5zaXRpb25zIHtcbiAgICAvLyBFeHRyYWN0IHRoZSB2YWx1ZXMgZnJvbSB0aGUgbGlzdFxuICAgIC8vICh0aGlzIHdvdWxkIGJlIGNsZWFuZXIgaWYgbnRoIHRvb2sgYSAzcmQgYXJndW1lbnQgdG8gcHJvdmlkZSBhIGRlZmF1bHQgdmFsdWUpLlxuICAgICRwcm9wZXJ0eTogbnRoKCR0cmFuc2l0aW9uLCAxKTtcbiAgICAkZHVyYXRpb246IGZhbHNlO1xuICAgICR0aW1pbmctZnVuY3Rpb246IGZhbHNlO1xuICAgICRkZWxheTogZmFsc2U7XG4gICAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPiAxIHsgJGR1cmF0aW9uOiAgICAgICAgbnRoKCR0cmFuc2l0aW9uLCAyKTsgfVxuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID4gMiB7ICR0aW1pbmctZnVuY3Rpb246IG50aCgkdHJhbnNpdGlvbiwgMyk7IH1cbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA+IDMgeyAkZGVsYXk6ICAgICAgICAgICBudGgoJHRyYW5zaXRpb24sIDQpOyAkaGFzLWRlbGF5czogdHJ1ZTsgfVxuXG4gICAgLy8gSWYgYSBkZWxheSBpcyBwcm92aWRlZCB3aXRob3V0IGEgdGltaW5nIGZ1bmN0aW9uXG4gICAgQGlmIGlzLXRpbWUoJHRpbWluZy1mdW5jdGlvbikgYW5kIG5vdCgkZGVsYXkpIHsgJGRlbGF5OiAkdGltaW5nLWZ1bmN0aW9uOyAkdGltaW5nLWZ1bmN0aW9uOiBmYWxzZTsgJGhhcy1kZWxheXM6IHRydWU7IH1cblxuICAgIC8vIEtlZXAgYSBsaXN0IG9mIGRlbGF5cyBpbiBjYXNlIG9uZSBpcyBzcGVjaWZpZWRcbiAgICAkZGVsYXlzOiBhcHBlbmQoJGRlbGF5cywgaWYoJGRlbGF5LCAkZGVsYXksIDBzKSk7XG5cbiAgICAkd2Via2l0LXZhbHVlOiBhcHBlbmQoJHdlYmtpdC12YWx1ZSwgY29tcGFjdChwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtd2Via2l0LCAkcHJvcGVydHkpICRkdXJhdGlvbiAkdGltaW5nLWZ1bmN0aW9uKSk7XG4gICAgICAgJG1vei12YWx1ZTogYXBwZW5kKCAgICRtb3otdmFsdWUsIGNvbXBhY3QocHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oICAgLW1veiwgJHByb3BlcnR5KSAkZHVyYXRpb24gJHRpbWluZy1mdW5jdGlvbiAkZGVsYXkpKTtcbiAgICAgICAgICRvLXZhbHVlOiBhcHBlbmQoICAgICAkby12YWx1ZSwgY29tcGFjdChwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbiggICAgIC1vLCAkcHJvcGVydHkpICRkdXJhdGlvbiAkdGltaW5nLWZ1bmN0aW9uICRkZWxheSkpO1xuICB9XG5cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgIHsgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uIDogJHdlYmtpdC12YWx1ZTtcbiAgICAvLyBvbGQgd2Via2l0IGRvZXNuJ3Qgc3VwcG9ydCB0aGUgZGVsYXkgcGFyYW1ldGVyIGluIHRoZSBzaG9ydGhhbmQgc28gd2UgcHJvZ3Jlc3NpdmVseSBlbmhhbmNlIGl0LlxuICAgIEBpZiAkaGFzLWRlbGF5cyAgICAgICAgICAgICAgICAgICAgICAgeyAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXkgOiAkZGVsYXlzOyAgICAgICB9IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgIHsgICAgICAgICAgLW1vei10cmFuc2l0aW9uIDogJG1vei12YWx1ZTsgICAgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgeyAgICAgICAgICAgIC1vLXRyYW5zaXRpb24gOiAkby12YWx1ZTsgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbiA6ICR0cmFuc2l0aW9ucztcbn1cblxuLy8gY29lcmNlIGEgbGlzdCB0byBiZSBjb21tYSBkZWxpbWl0ZWQgb3IgbWFrZSBhIG5ldywgZW1wdHkgY29tbWEgZGVsaW1pdGVkIGxpc3QuXG5AZnVuY3Rpb24gY29tbWEtbGlzdCgkbGlzdDogKCkpIHtcbiAgQHJldHVybiBqb2luKCgpLCAkbGlzdCwgY29tbWEpO1xufVxuXG4vLyBSZXR1cm5zIGAkcHJvcGVydHlgIHdpdGggdGhlIGdpdmVuIHByZWZpeCBpZiBpdCBpcyBmb3VuZCBpbiBgJHRyYW5zaXRpb25hYmxlLXByZWZpeGVkLXZhbHVlc2AuXG5AZnVuY3Rpb24gcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oJHByZWZpeCwgJHByb3BlcnR5KSB7XG4gIEBpZiB0eXBlLW9mKCRwcm9wZXJ0eSkgPT0gbGlzdCB7XG4gICAgJG5ldy1saXN0OiBjb21tYS1saXN0KCk7XG4gICAgQGVhY2ggJHYgaW4gJHByb3BlcnR5IHtcbiAgICAgICRuZXctbGlzdDogYXBwZW5kKCRuZXctbGlzdCwgcHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oJHByZWZpeCwgJHYpKTtcbiAgICB9XG4gICAgQHJldHVybiAkbmV3LWxpc3Q7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBpbmRleCgkdHJhbnNpdGlvbmFibGUtcHJlZml4ZWQtdmFsdWVzLCAkcHJvcGVydHkpIHtcbiAgICAgIEByZXR1cm4gI3skcHJlZml4fS0jeyRwcm9wZXJ0eX07XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuICRwcm9wZXJ0eTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ2hlY2tzIGlmIHRoZSB2YWx1ZSBnaXZlbiBpcyBhIHVuaXQgb2YgdGltZS5cbkBmdW5jdGlvbiBpcy10aW1lKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG51bWJlciB7XG4gICAgQHJldHVybiBub3Qobm90KGluZGV4KHMgbXMsIHVuaXQoJHZhbHVlKSkpKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL3N1cHBvcnRcIjtcblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNpYyBzdXBwb3J0IGZvciBDU1MzIHByb3BlcnRpZXMgYW5kXG4vLyB0aGVpciBjb3JyZXNwb25kaW5nIGV4cGVyaW1lbnRhbCBDU1MyIHByb3BlcnRpZXMgd2hlblxuLy8gdGhlIGltcGxlbWVudGF0aW9ucyBhcmUgaWRlbnRpY2FsIGV4Y2VwdCBmb3IgdGhlIHByb3BlcnR5XG4vLyBwcmVmaXguXG5AbWl4aW4gZXhwZXJpbWVudGFsKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAtd2Via2l0LSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgIC1raHRtbC0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICAgIC1tb3otI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAgICAgLW1zLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAtby0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG59XG5cbi8vIFNhbWUgYXMgZXhwZXJpbWVudGFsKCksIGJ1dCBmb3IgY2FzZXMgd2hlbiB0aGUgcHJvcGVydHkgaXMgdGhlIHNhbWUgYW5kIHRoZSB2YWx1ZSBpcyB2ZW5kb3JpemVkXG5AbWl4aW4gZXhwZXJpbWVudGFsLXZhbHVlKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAjeyRwcm9wZXJ0eX0gOiAtd2Via2l0LSN7JHZhbHVlfTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgI3skcHJvcGVydHl9IDogIC1raHRtbC0jeyR2YWx1ZX07IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICN7JHByb3BlcnR5fSA6ICAgIC1tb3otI3skdmFsdWV9OyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAjeyRwcm9wZXJ0eX0gOiAgICAgLW1zLSN7JHZhbHVlfTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgI3skcHJvcGVydHl9IDogICAgICAtby0jeyR2YWx1ZX07IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICN7JHByb3BlcnR5fSA6ICAgICAgICAgI3skdmFsdWV9OyB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIEBkb2Mgb2ZmXG4vLyBOb3RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhZmFyaSwgQ2hyb21lLCBhbmQgRmlyZWZveCBhbGwgc3VwcG9ydCAzRCB0cmFuc2Zvcm1zLiBIb3dldmVyLFxuLy8gb25seSBpbiB0aGUgbW9zdCByZWNlbnQgYnVpbGRzLiBZb3Ugc2hvdWxkIGFsc28gcHJvdmlkZSBmYWxsYmFjayAyZCBzdXBwb3J0IGZvclxuLy8gT3BlcmEgYW5kIElFLiBJRTEwIGlzIHNsYXRlZCB0byBoYXZlIDNkIGVuYWJsZWQsIGJ1dCBpcyBjdXJyZW50bHkgdW5yZWxlYXNlZC5cbi8vIFRvIG1ha2UgdGhhdCBlYXN5LCBhbGwgMkQgdHJhbnNmb3JtcyBpbmNsdWRlIGFuIGJyb3dzZXItdGFyZ2V0aW5nIHRvZ2dsZSAoJG9ubHkzZClcbi8vIHRvIHN3aXRjaCBiZXR3ZWVuIHRoZSB0d28gc3VwcG9ydCBsaXN0cy4gVGhlIHRvZ2dsZSBkZWZhdWx0cyB0byAnZmFsc2UnICgyRCksXG4vLyBhbmQgYWxzbyBhY2NlcHRzICd0cnVlJyAoM0QpLiBDdXJyZW50bHkgdGhlIGxpc3RzIGFyZSBhcyBmb2xsb3dzOlxuLy8gMkQ6IE1vemlsbGEsIFdlYmtpdCwgT3BlcmEsIE9mZmljaWFsXG4vLyAzRDogV2Via2l0LCBGaXJlZm94LlxuXG4vLyBBdmFpbGFibGUgVHJhbnNmb3JtcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gU2NhbGUgKDJkIGFuZCAzZClcbi8vIC0gUm90YXRlICgyZCBhbmQgM2QpXG4vLyAtIFRyYW5zbGF0ZSAoMmQgYW5kIDNkKVxuLy8gLSBTa2V3ICgyZCBvbmx5KVxuXG4vLyBUcmFuc2Zvcm0gUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gVHJhbnNmb3JtIE9yaWdpbiAoMmQgYW5kIDNkKVxuLy8gLSBQZXJzcGVjdGl2ZSAoM2QpXG4vLyAtIFBlcnNwZWN0aXZlIE9yaWdpbiAoM2QpXG4vLyAtIFRyYW5zZm9ybSBTdHlsZSAoM2QpXG4vLyAtIEJhY2tmYWNlIFZpc2liaWxpdHkgKDNkKVxuXG4vLyBNaXhpbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybS1vcmlnaW5cbi8vICAtIHNob3J0Y3V0czogIHRyYW5zZm9ybS1vcmlnaW4yZCwgdHJhbnNmb3JtLW9yaWdpbjNkXG4vLyAgLSBoZWxwZXJzOiAgICBhcHBseS1vcmlnaW5cbi8vIHRyYW5zZm9ybVxuLy8gIC0gc2hvcnRjdXRzOiAgdHJhbnNmb3JtMmQsIHRyYW5zZm9ybTNkXG4vLyAgLSBoZWxwZXJzOiAgICBzaW1wbGUtdHJhbnNmb3JtLCBjcmVhdGUtdHJhbnNmb3JtXG4vLyBwZXJzcGVjdGl2ZVxuLy8gIC0gaGVscGVyczogICAgcGVyc3BlY3RpdmUtb3JpZ2luXG4vLyB0cmFuc2Zvcm0tc3R5bGVcbi8vIGJhY2tmYWNlLXZpc2liaWxpdHlcbi8vIHNjYWxlXG4vLyAgLSBzaG9ydGN1dHM6ICBzY2FsZVgsIHNjYWxlWSwgc2NhbGVaLCBzY2FsZTNkXG4vLyByb3RhdGVcbi8vICAtIHNob3J0Y3V0czogIHJvdGF0ZVgsIHJvdGF0ZVksIHJvdGF0ZTNkXG4vLyB0cmFuc2xhdGVcbi8vICAtIHNob3J0Y3V0czogIHRyYW5zbGF0ZVgsIHRyYW5zbGF0ZVksIHRyYW5zbGF0ZVosIHRyYW5zbGF0ZTNkXG4vLyBza2V3XG4vLyAgLSBzaG9ydGN1dHM6ICBza2V3WCwgc2tld1lcblxuLy8gRGVmYXVsdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFRoZSBkZWZhdWx0IHgtb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teCAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHktb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teSAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teiAgICA6IDUwJSAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcblxuXG4vLyBUaGUgZGVmYXVsdCB4LW11bHRpcGxpZXIgZm9yIHNjYWxpbmdcbiRkZWZhdWx0LXNjYWxlLXggICAgIDogMS4yNSAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gVGhlIGRlZmF1bHQgeS1tdWx0aXBsaWVyIGZvciBzY2FsaW5nXG4kZGVmYXVsdC1zY2FsZS15ICAgICA6ICRkZWZhdWx0LXNjYWxlLXggICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotbXVsdGlwbGllciBmb3Igc2NhbGluZ1xuJGRlZmF1bHQtc2NhbGUteiAgICAgOiAkZGVmYXVsdC1zY2FsZS14ICAgICAgIWRlZmF1bHQ7XG5cblxuLy8gVGhlIGRlZmF1bHQgYW5nbGUgZm9yIHJvdGF0aW9uc1xuJGRlZmF1bHQtcm90YXRlICAgICAgOiA0NWRlZyAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG5cblxuLy8gVGhlIGRlZmF1bHQgeC12ZWN0b3IgZm9yIHRoZSBheGlzIG9mIDNkIHJvdGF0aW9uc1xuJGRlZmF1bHQtdmVjdG9yLXggICAgOiAxICAgICAgICAgICAgICAgICAgICAgIWRlZmF1bHQ7XG4vLyBUaGUgZGVmYXVsdCB5LXZlY3RvciBmb3IgdGhlIGF4aXMgb2YgM2Qgcm90YXRpb25zXG4kZGVmYXVsdC12ZWN0b3IteSAgICA6IDEgICAgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHotdmVjdG9yIGZvciB0aGUgYXhpcyBvZiAzZCByb3RhdGlvbnNcbiRkZWZhdWx0LXZlY3Rvci16ICAgIDogMSAgICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vIFRoZSBkZWZhdWx0IHgtbGVuZ3RoIGZvciB0cmFuc2xhdGlvbnNcbiRkZWZhdWx0LXRyYW5zbGF0ZS14IDogMWVtICAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuLy8gVGhlIGRlZmF1bHQgeS1sZW5ndGggZm9yIHRyYW5zbGF0aW9uc1xuJGRlZmF1bHQtdHJhbnNsYXRlLXkgOiAkZGVmYXVsdC10cmFuc2xhdGUteCAgIWRlZmF1bHQ7XG4vLyBUaGUgZGVmYXVsdCB6LWxlbmd0aCBmb3IgdHJhbnNsYXRpb25zXG4kZGVmYXVsdC10cmFuc2xhdGUteiA6ICRkZWZhdWx0LXRyYW5zbGF0ZS14ICAhZGVmYXVsdDtcblxuXG4vLyBUaGUgZGVmYXVsdCB4LWFuZ2xlIGZvciBza2V3aW5nXG4kZGVmYXVsdC1za2V3LXggICAgICA6IDVkZWcgICAgICAgICAgICAgICAgICAhZGVmYXVsdDtcbi8vIFRoZSBkZWZhdWx0IHktYW5nbGUgZm9yIHNrZXdpbmdcbiRkZWZhdWx0LXNrZXcteSAgICAgIDogNWRlZyAgICAgICAgICAgICAgICAgICFkZWZhdWx0O1xuXG5cbi8vICoqVHJhbnNmb3JtLW9yaWdpbioqXG4vLyBUcmFuc2Zvcm0tb3JpZ2luIHNlbnQgYXMgYSBjb21wbGV0ZSBzdHJpbmdcbi8vXG4vLyAgICAgQGluY2x1ZGUgYXBwbHktb3JpZ2luKCBvcmlnaW4gWywgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSAnb3JpZ2luJyBpcyBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0IGNvbnRhaW5pbmcgMS0zICh4L3kveikgY29vcmRpbmF0ZXNcbi8vIGluIHBlcmNlbnRhZ2VzLCBhYnNvbHV0ZSAocHgsIGNtLCBpbiwgZW0gZXRjLi4pIG9yIHJlbGF0aXZlXG4vLyAobGVmdCwgdG9wLCByaWdodCwgYm90dG9tLCBjZW50ZXIpIHVuaXRzXG4vL1xuLy8gQHBhcmFtIG9ubHkzZCBTZXQgdGhpcyB0byB0cnVlIHRvIG9ubHkgYXBwbHkgdGhpc1xuLy8gbWl4aW4gd2hlcmUgYnJvd3NlcnMgaGF2ZSAzRCBzdXBwb3J0LlxuQG1peGluIGFwcGx5LW9yaWdpbigkb3JpZ2luLCAkb25seTNkKSB7XG4gICRvbmx5M2Q6ICRvbmx5M2Qgb3IgLWNvbXBhc3MtbGlzdC1zaXplKC1jb21wYXNzLWxpc3QoJG9yaWdpbikpID4gMjtcbiAgQGlmICRvbmx5M2Qge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0tb3JpZ2luLCAkb3JpZ2luLFxuICAgICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1vcmlnaW4sICRvcmlnaW4sXG4gICAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICB9XG59XG5cbi8vIFRyYW5zZm9ybS1vcmlnaW4gc2VudCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50czpcbi8vXG4vLyAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbiggWyBvcmlnaW4teCwgb3JpZ2luLXksIG9yaWdpbi16LCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAzICdvcmlnaW4tJyBhcmd1bWVudHMgcmVwcmVzZW50IHgveS96IGNvb3JkaW5hdGVzLlxuLy9cbi8vICoqTk9URToqKiBzZXR0aW5nIHogY29vcmRpbmF0ZXMgdHJpZ2dlcnMgM0Qgc3VwcG9ydCBsaXN0LCBsZWF2ZSBmYWxzZSBmb3IgMkQgc3VwcG9ydFxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oXG4gICRvcmlnaW4teDogJGRlZmF1bHQtb3JpZ2luLXgsXG4gICRvcmlnaW4teTogJGRlZmF1bHQtb3JpZ2luLXksXG4gICRvcmlnaW4tejogZmFsc2UsXG4gICRvbmx5M2Q6ICAgaWYoJG9yaWdpbi16LCB0cnVlLCBmYWxzZSlcbikge1xuICAkb3JpZ2luOiB1bnF1b3RlKCcnKTtcbiAgQGlmICRvcmlnaW4teCBvciAkb3JpZ2luLXkgb3IgJG9yaWdpbi16IHtcbiAgICBAaWYgJG9yaWdpbi14IHsgJG9yaWdpbjogJG9yaWdpbi14OyB9IEBlbHNlIHsgJG9yaWdpbjogNTAlOyB9XG4gICAgQGlmICRvcmlnaW4teSB7ICRvcmlnaW46ICRvcmlnaW4gJG9yaWdpbi15OyB9IEBlbHNlIHsgQGlmICRvcmlnaW4teiB7ICRvcmlnaW46ICRvcmlnaW4gNTAlOyB9fVxuICAgIEBpZiAkb3JpZ2luLXogeyAkb3JpZ2luOiAkb3JpZ2luICRvcmlnaW4tejsgfVxuICAgIEBpbmNsdWRlIGFwcGx5LW9yaWdpbigkb3JpZ2luLCAkb25seTNkKTtcbiAgfVxufVxuXG5cbi8vIFRyYW5zZm9ybSBzZW50IGFzIGEgY29tcGxldGUgc3RyaW5nOlxuLy9cbi8vICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oIHRyYW5zZm9ybXMgWywgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSAndHJhbnNmb3JtcycgaXMgYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBhbGwgdGhlIHRyYW5zZm9ybXMgdG8gYmUgYXBwbGllZC5cbkBtaXhpbiB0cmFuc2Zvcm0oXG4gICR0cmFuc2Zvcm0sXG4gICRvbmx5M2Q6IGZhbHNlXG4pIHtcbiAgQGlmICRvbmx5M2Qge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0sICR0cmFuc2Zvcm0sXG4gICAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgICApO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNmb3JtLCAkdHJhbnNmb3JtLFxuICAgICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICAgKTtcbiAgfVxufVxuXG4vLyBTaG9ydGN1dCB0byB0YXJnZXQgYWxsIGJyb3dzZXJzIHdpdGggMkQgdHJhbnNmb3JtIHN1cHBvcnRcbkBtaXhpbiB0cmFuc2Zvcm0yZCgkdHJhbnMpIHtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgZmFsc2UpO1xufVxuXG4vLyBTaG9ydGN1dCB0byB0YXJnZXQgb25seSBicm93c2VycyB3aXRoIDNEIHRyYW5zZm9ybSBzdXBwb3J0XG5AbWl4aW4gdHJhbnNmb3JtM2QoJHRyYW5zKSB7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsIHRydWUpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gM0QgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNldCB0aGUgcGVyc3BlY3RpdmUgb2YgM0QgdHJhbnNmb3JtcyBvbiB0aGUgY2hpbGRyZW4gb2YgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlKCBwZXJzcGVjdGl2ZSApXG4vL1xuLy8gd2hlcmUgJ3BlcnNwZWN0aXZlJyBpcyBhIHVuaXRsZXNzIG51bWJlciByZXByZXNlbnRpbmcgdGhlIGRlcHRoIG9mIHRoZVxuLy8gei1heGlzLiBUaGUgaGlnaGVyIHRoZSBwZXJzcGVjdGl2ZSwgdGhlIG1vcmUgZXhhZ2dlcmF0ZWQgdGhlIGZvcmVzaG9ydGVuaW5nLlxuLy8gdmFsdWVzIGZyb20gNTAwIHRvIDEwMDAgYXJlIG1vcmUtb3ItbGVzcyBcIm5vcm1hbFwiIC0gYSBnb29kIHN0YXJ0aW5nLXBvaW50LlxuQG1peGluIHBlcnNwZWN0aXZlKCRwKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChwZXJzcGVjdGl2ZSwgJHAsXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIFNldCB0aGUgb3JpZ2luIHBvc2l0aW9uIGZvciB0aGUgcGVyc3BlY3RpdmVcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlLW9yaWdpbihvcmlnaW4teCBbb3JpZ2luLXldKVxuLy9cbi8vIHdoZXJlIHRoZSB0d28gYXJndW1lbnRzIHJlcHJlc2VudCB4L3kgY29vcmRpbmF0ZXNcbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJG9yaWdpbjogNTAlKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChwZXJzcGVjdGl2ZS1vcmlnaW4sICRvcmlnaW4sXG4gICAgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90KC1raHRtbCksIG9mZmljaWFsXG4gICk7XG59XG5cbi8vIERldGVybWluZSB3aGV0aGVyIGEgM0Qgb2JqZWN0cyBjaGlsZHJlbiBhbHNvIGxpdmUgaW4gdGhlIGdpdmVuIDNEIHNwYWNlXG4vL1xuLy8gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUoIFsgc3R5bGUgXSApXG4vL1xuLy8gd2hlcmUgYHN0eWxlYCBjYW4gYmUgZWl0aGVyIGBmbGF0YCBvciBgcHJlc2VydmUtM2RgLlxuLy8gQnJvd3NlcnMgZGVmYXVsdCB0byBgZmxhdGAsIG1peGluIGRlZmF1bHRzIHRvIGBwcmVzZXJ2ZS0zZGAuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogcHJlc2VydmUtM2QpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLFxuICAgIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuXG4vLyBEZXRlcm1pbmUgdGhlIHZpc2liaWxpdHkgb2YgYW4gZWxlbWVudCB3aGVuIGl0J3MgYmFjayBpcyB0dXJuZWRcbi8vXG4vLyAgICAgQGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eSggWyB2aXNpYmlsaXR5IF0gKVxuLy9cbi8vIHdoZXJlIGB2aXNpYmlsaXR5YCBjYW4gYmUgZWl0aGVyIGB2aXNpYmxlYCBvciBgaGlkZGVuYC5cbi8vIEJyb3dzZXJzIGRlZmF1bHQgdG8gdmlzaWJsZSwgbWl4aW4gZGVmYXVsdHMgdG8gaGlkZGVuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eTogaGlkZGVuKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSxcbiAgICAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QoLWtodG1sKSwgb2ZmaWNpYWxcbiAgKTtcbn1cblxuLy8gQGRvYyBvZmZcbi8vIFRyYW5zZm9ybSBQYXJ0aWFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhlc2Ugd29yayB3ZWxsIG9uIHRoZWlyIG93biwgYnV0IHRoZXkgZG9uJ3QgYWRkIHRvIGVhY2ggb3RoZXIsIHRoZXkgb3ZlcnJpZGUuXG4vLyBVc2UgYWxvbmcgd2l0aCB0cmFuc2Zvcm0gcGFyYW1ldGVyIG1peGlucyB0byBhZGp1c3Qgb3JpZ2luLCBwZXJzcGVjdGl2ZSBhbmQgc3R5bGVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFNjYWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBTY2FsZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYW5kIHkgYXhpczpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHNjYWxlKCBbIHNjYWxlLXgsIHNjYWxlLXksIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAnc2NhbGUtJyBhcmd1bWVudHMgYXJlIHVuaXRsZXNzIG11bHRpcGxpZXJzIG9mIHRoZSB4IGFuZCB5IGRpbWVuc2lvbnNcbi8vIGFuZCBwZXJzcGVjdGl2ZSwgd2hpY2ggd29ya3MgdGhlIHNhbWUgYXMgdGhlIHN0YW5kLWFsb25lIHBlcnNwZWN0aXZlIHByb3BlcnR5L21peGluXG4vLyBidXQgYXBwbGllcyB0byB0aGUgaW5kaXZpZHVhbCBlbGVtZW50IChtdWx0aXBsaWVkIHdpdGggYW55IHBhcmVudCBwZXJzcGVjdGl2ZSlcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGUoXG4gICRzY2FsZS14OiAgICAgJGRlZmF1bHQtc2NhbGUteCxcbiAgJHNjYWxlLXk6ICAgICAkc2NhbGUteCxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogc2NhbGUoJHNjYWxlLXgsICRzY2FsZS15KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVgoIFsgc2NhbGUteCwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWChcbiAgJHNjYWxlOiAgICAgICAkZGVmYXVsdC1zY2FsZS14LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVgoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeSBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVkoIFsgc2NhbGUteSwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWShcbiAgJHNjYWxlOiAgICAgICAkZGVmYXVsdC1zY2FsZS15LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVkoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeiBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVooIFsgc2NhbGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWihcbiAgJHNjYWxlOiAkZGVmYXVsdC1zY2FsZS16LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlXG4pIHtcbiAgJHRyYW5zOiBzY2FsZVooJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTtcbn1cblxuLy8gU2NhbGUgYW5kIG9iamVjdCBhbG9uZyBhbGwgdGhyZWUgYXhpc1xuLy8gQGluY2x1ZGUgc2NhbGUzZCggWyBzY2FsZS14LCBzY2FsZS15LCBzY2FsZS16LCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGUzZChcbiAgJHNjYWxlLXg6ICAgICAkZGVmYXVsdC1zY2FsZS14LFxuICAkc2NhbGUteTogICAgICRkZWZhdWx0LXNjYWxlLXksXG4gICRzY2FsZS16OiAgICAgJGRlZmF1bHQtc2NhbGUteixcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2NhbGUzZCgkc2NhbGUteCwgJHNjYWxlLXksICRzY2FsZS16KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTtcbn1cblxuLy8gQGRvYyBvZmZcbi8vIFJvdGF0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQGRvYyBvblxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeiBheGlzICAoMkQpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy8gd2hlcmUgJ3JvdGF0aW9uJyBpcyBhbiBhbmdsZSBzZXQgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHNcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlKFxuICAkcm90YXRlOiAgICAgICRkZWZhdWx0LXJvdGF0ZSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogcm90YXRlKCRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuLy8gQSBsb25nY3V0IGZvciAncm90YXRlJyBpbiBjYXNlIHlvdSBmb3JnZXQgdGhhdCAneicgaXMgaW1wbGllZFxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVaKFxuICAkcm90YXRlOiAgICAgICRkZWZhdWx0LXJvdGF0ZSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gIEBpbmNsdWRlIHJvdGF0ZSgkcm90YXRlLCAkcGVyc3BlY3RpdmUsICRvbmx5M2QpO1xufVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeCBheGlzICgzRClcbi8vIEBpbmNsdWRlIHJvdGF0ZVgoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVYKFxuICAkcm90YXRlOiAkZGVmYXVsdC1yb3RhdGUsXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHJvdGF0ZVgoJHJvdGF0ZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUgeyAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybTNkKCR0cmFucyk7XG59XG5cbi8vIFJvdGF0ZSBhbiBvYmplY3QgYXJvdW5kIHRoZSB5IGF4aXMgKDNEKVxuLy8gQGluY2x1ZGUgcm90YXRlKCBbIHJvdGF0aW9uLCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlWShcbiAgJHJvdGF0ZTogJGRlZmF1bHQtcm90YXRlLFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlXG4pIHtcbiAgJHRyYW5zOiByb3RhdGVZKCRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCBhbiBhcmJpdHJhcnkgYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSByb3RhdGUoIFsgdmVjdG9yLXgsIHZlY3Rvci15LCB2ZWN0b3Iteiwgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy8gd2hlcmUgdGhlICd2ZWN0b3ItJyBhcmd1bWVudHMgYWNjZXB0IHVuaXRsZXNzIG51bWJlcnMuXG4vLyBUaGVzZSBudW1iZXJzIGFyZSBub3QgaW1wb3J0YW50IG9uIHRoZWlyIG93biwgYnV0IGluIHJlbGF0aW9uIHRvIG9uZSBhbm90aGVyXG4vLyBjcmVhdGluZyBhbiBheGlzIGZyb20geW91ciB0cmFuc2Zvcm0tb3JpZ2luLCBhbG9uZyB0aGUgYXhpcyBvZiBYeCA9IFl5ID0gWnouXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHJvdGF0ZTNkKFxuICAkdmVjdG9yLXg6ICRkZWZhdWx0LXZlY3Rvci14LFxuICAkdmVjdG9yLXk6ICRkZWZhdWx0LXZlY3Rvci15LFxuICAkdmVjdG9yLXo6ICRkZWZhdWx0LXZlY3Rvci16LFxuICAkcm90YXRlOiAkZGVmYXVsdC1yb3RhdGUsXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHJvdGF0ZTNkKCR2ZWN0b3IteCwgJHZlY3Rvci15LCAkdmVjdG9yLXosICRyb3RhdGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gVHJhbnNsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB4IG9yIHkgYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vIHdoZXJlIHRoZSAndHJhbnNsYXRlLScgYXJndW1lbnRzIGFjY2VwdCBhbnkgZGlzdGFuY2UgaW4gcGVyY2VudGFnZXMgb3IgYWJzb2x1dGUgKHB4LCBjbSwgaW4sIGVtIGV0Yy4uKSB1bml0cy5cbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlKFxuICAkdHJhbnNsYXRlLXg6ICRkZWZhdWx0LXRyYW5zbGF0ZS14LFxuICAkdHJhbnNsYXRlLXk6ICRkZWZhdWx0LXRyYW5zbGF0ZS15LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGUoJHRyYW5zbGF0ZS14LCAkdHJhbnNsYXRlLXkpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuLy8gTW92ZSBhbiBvYmplY3QgYWxvbmcgdGhlIHggYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiB0cmFuc2xhdGVYKFxuICAkdHJhbnMteDogICAgICRkZWZhdWx0LXRyYW5zbGF0ZS14LFxuICAkcGVyc3BlY3RpdmU6IGZhbHNlLFxuICAkb25seTNkOiAgICAgIGZhbHNlXG4pIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGVYKCR0cmFucy14KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7ICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB5IGF4aXMgKDJEKVxuLy8gQGluY2x1ZGUgdHJhbnNsYXRlKCBbIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlWShcbiAgJHRyYW5zLXk6ICAgICAkZGVmYXVsdC10cmFuc2xhdGUteSxcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogdHJhbnNsYXRlWSgkdHJhbnMteSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUgeyAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpO1xufVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeiBheGlzICgzRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHRyYW5zbGF0ZVooXG4gICR0cmFucy16OiAgICAgJGRlZmF1bHQtdHJhbnNsYXRlLXosXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHRyYW5zbGF0ZVooJHRyYW5zLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCwgeSBhbmQgeiBheGlzICgzRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteCwgdHJhbnNsYXRlLXksIHRyYW5zbGF0ZS16LCBwZXJzcGVjdGl2ZSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlM2QoXG4gICR0cmFuc2xhdGUteDogJGRlZmF1bHQtdHJhbnNsYXRlLXgsXG4gICR0cmFuc2xhdGUteTogJGRlZmF1bHQtdHJhbnNsYXRlLXksXG4gICR0cmFuc2xhdGUtejogJGRlZmF1bHQtdHJhbnNsYXRlLXosXG4gICRwZXJzcGVjdGl2ZTogZmFsc2Vcbikge1xuICAkdHJhbnM6IHRyYW5zbGF0ZTNkKCR0cmFuc2xhdGUteCwgJHRyYW5zbGF0ZS15LCAkdHJhbnNsYXRlLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpO1xufVxuXG4vLyBAZG9jIG9mZlxuLy8gU2tldyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNrZXcgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgQGluY2x1ZGUgc2tldyggWyBza2V3LXgsIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyB3aGVyZSB0aGUgJ3NrZXctJyBhcmd1bWVudHMgYWNjZXB0IGNzcyBhbmdsZXMgaW4gZGVncmVlcyAoZGVnKSBvciByYWRpYW4gKHJhZCkgdW5pdHMuXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNrZXcoXG4gICRza2V3LXg6ICRkZWZhdWx0LXNrZXcteCxcbiAgJHNrZXcteTogJGRlZmF1bHQtc2tldy15LFxuICAkb25seTNkOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2tldygkc2tldy14LCAkc2tldy15KTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG59XG5cbi8vIFNrZXcgYW4gZWxlbWVudCBhbG9uZyB0aGUgeCBheGl6XG4vL1xuLy8gICAgIEBpbmNsdWRlIHNrZXcoIFsgc2tldy14LCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiBza2V3WChcbiAgJHNrZXcteDogJGRlZmF1bHQtc2tldy14LFxuICAkb25seTNkOiBmYWxzZVxuKSB7XG4gICR0cmFuczogc2tld1goJHNrZXcteCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpO1xufVxuXG4vLyBTa2V3IGFuIGVsZW1lbnQgYWxvbmcgdGhlIHkgYXhpc1xuLy9cbi8vICAgICBAaW5jbHVkZSBza2V3KCBbIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2tld1koXG4gICRza2V3LXk6ICRkZWZhdWx0LXNrZXcteSxcbiAgJG9ubHkzZDogZmFsc2Vcbikge1xuICAkdHJhbnM6IHNrZXdZKCRza2V3LXkpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbn1cblxuXG4vLyBGdWxsIHRyYW5zZm9ybSBtaXhpbnNcbi8vIEZvciBzZXR0aW5ncyBhbnkgY29tYmluYXRpb24gb2YgdHJhbnNmb3JtcyBhcyBhcmd1bWVudHNcbi8vIFRoZXNlIGFyZSBjb21wbGV4IGFuZCBub3QgaGlnaGx5IHJlY29tbWVuZGVkIGZvciBkYWlseSB1c2UuIFRoZXkgYXJlIG1haW5seVxuLy8gaGVyZSBmb3IgYmFja3dhcmQtY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy5cbi8vXG4vLyAqIHRoZXkgaW5jbHVkZSBvcmlnaW4gYWRqdXN0bWVudHNcbi8vICogc2NhbGUgdGFrZXMgYSBtdWx0aXBsaWVyICh1bml0bGVzcyksIHJvdGF0ZSBhbmQgc2tldyB0YWtlIGRlZ3JlZXMgKGRlZylcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gY3JlYXRlLXRyYW5zZm9ybShcbiAgJHBlcnNwZWN0aXZlOiBmYWxzZSxcbiAgJHNjYWxlLXg6ICAgICBmYWxzZSxcbiAgJHNjYWxlLXk6ICAgICBmYWxzZSxcbiAgJHNjYWxlLXo6ICAgICBmYWxzZSxcbiAgJHJvdGF0ZS14OiAgICBmYWxzZSxcbiAgJHJvdGF0ZS15OiAgICBmYWxzZSxcbiAgJHJvdGF0ZS16OiAgICBmYWxzZSxcbiAgJHJvdGF0ZTNkOiAgICBmYWxzZSxcbiAgJHRyYW5zLXg6ICAgICBmYWxzZSxcbiAgJHRyYW5zLXk6ICAgICBmYWxzZSxcbiAgJHRyYW5zLXo6ICAgICBmYWxzZSxcbiAgJHNrZXcteDogICAgICBmYWxzZSxcbiAgJHNrZXcteTogICAgICBmYWxzZSxcbiAgJG9yaWdpbi14OiAgICBmYWxzZSxcbiAgJG9yaWdpbi15OiAgICBmYWxzZSxcbiAgJG9yaWdpbi16OiAgICBmYWxzZSxcbiAgJG9ubHkzZDogICAgICBmYWxzZVxuKSB7XG4gICR0cmFuczogdW5xdW90ZShcIlwiKTtcblxuICAvLyBwZXJzcGVjdGl2ZVxuICBAaWYgJHBlcnNwZWN0aXZlIHsgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpIDsgfVxuXG4gIC8vIHNjYWxlXG4gIEBpZiAkc2NhbGUteCBhbmQgJHNjYWxlLXkge1xuICAgIEBpZiAkc2NhbGUteiB7ICR0cmFuczogJHRyYW5zIHNjYWxlM2QoJHNjYWxlLXgsICRzY2FsZS15LCAkc2NhbGUteik7IH1cbiAgICBAZWxzZSB7ICR0cmFuczogJHRyYW5zIHNjYWxlKCRzY2FsZS14LCAkc2NhbGUteSk7IH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmICRzY2FsZS14IHsgJHRyYW5zOiAkdHJhbnMgc2NhbGVYKCRzY2FsZS14KTsgfVxuICAgIEBpZiAkc2NhbGUteSB7ICR0cmFuczogJHRyYW5zIHNjYWxlWSgkc2NhbGUteSk7IH1cbiAgICBAaWYgJHNjYWxlLXogeyAkdHJhbnM6ICR0cmFucyBzY2FsZVooJHNjYWxlLXopOyB9XG4gIH1cblxuICAvLyByb3RhdGVcbiAgQGlmICRyb3RhdGUteCB7ICR0cmFuczogJHRyYW5zIHJvdGF0ZVgoJHJvdGF0ZS14KTsgfVxuICBAaWYgJHJvdGF0ZS15IHsgJHRyYW5zOiAkdHJhbnMgcm90YXRlWSgkcm90YXRlLXkpOyB9XG4gIEBpZiAkcm90YXRlLXogeyAkdHJhbnM6ICR0cmFucyByb3RhdGVaKCRyb3RhdGUteik7IH1cbiAgQGlmICRyb3RhdGUzZCB7ICR0cmFuczogJHRyYW5zIHJvdGF0ZTNkKCRyb3RhdGUzZCk7IH1cblxuICAvLyB0cmFuc2xhdGVcbiAgQGlmICR0cmFucy14IGFuZCAkdHJhbnMteSB7XG4gICAgQGlmICR0cmFucy16IHsgJHRyYW5zOiAkdHJhbnMgdHJhbnNsYXRlM2QoJHRyYW5zLXgsICR0cmFucy15LCAkdHJhbnMteik7IH1cbiAgICBAZWxzZSB7ICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZSgkdHJhbnMteCwgJHRyYW5zLXkpOyB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiAkdHJhbnMteCB7ICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZVgoJHRyYW5zLXgpOyB9XG4gICAgQGlmICR0cmFucy15IHsgJHRyYW5zOiAkdHJhbnMgdHJhbnNsYXRlWSgkdHJhbnMteSk7IH1cbiAgICBAaWYgJHRyYW5zLXogeyAkdHJhbnM6ICR0cmFucyB0cmFuc2xhdGVaKCR0cmFucy16KTsgfVxuICB9XG5cbiAgLy8gc2tld1xuICBAaWYgJHNrZXcteCBhbmQgJHNrZXcteSB7ICR0cmFuczogJHRyYW5zIHNrZXcoJHNrZXcteCwgJHNrZXcteSk7IH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkc2tldy14IHsgJHRyYW5zOiAkdHJhbnMgc2tld1goJHNrZXcteCk7IH1cbiAgICBAaWYgJHNrZXcteSB7ICR0cmFuczogJHRyYW5zIHNrZXdZKCRza2V3LXkpOyB9XG4gIH1cblxuICAvLyBhcHBseSBpdCFcbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7XG4gIEBpbmNsdWRlIHRyYW5zZm9ybS1vcmlnaW4oJG9yaWdpbi14LCAkb3JpZ2luLXksICRvcmlnaW4teiwgJG9ubHkzZCk7XG59XG5cblxuLy8gQSBzaW1wbGlmaWVkIHNldCBvZiBvcHRpb25zXG4vLyBiYWNrd2FyZHMtY29tcGF0aWJsZSB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRoZSAndHJhbnNmb3JtJyBtaXhpblxuQG1peGluIHNpbXBsZS10cmFuc2Zvcm0oXG4gICRzY2FsZTogICAgZmFsc2UsXG4gICRyb3RhdGU6ICAgZmFsc2UsXG4gICR0cmFucy14OiAgZmFsc2UsXG4gICR0cmFucy15OiAgZmFsc2UsXG4gICRza2V3LXg6ICAgZmFsc2UsXG4gICRza2V3LXk6ICAgZmFsc2UsXG4gICRvcmlnaW4teDogZmFsc2UsXG4gICRvcmlnaW4teTogZmFsc2Vcbikge1xuICBAaW5jbHVkZSBjcmVhdGUtdHJhbnNmb3JtKFxuICAgIGZhbHNlLFxuICAgICRzY2FsZSwgJHNjYWxlLCBmYWxzZSxcbiAgICBmYWxzZSwgZmFsc2UsICRyb3RhdGUsIGZhbHNlLFxuICAgICR0cmFucy14LCAkdHJhbnMteSwgZmFsc2UsXG4gICAgJHNrZXcteCwgJHNrZXcteSxcbiAgICAkb3JpZ2luLXgsICRvcmlnaW4teSwgZmFsc2UsXG4gICAgZmFsc2VcbiAgKTtcbn1cbiIsIi8vIEJhc2VkIG9uIFtFcmljIE1leWVyJ3MgcmVzZXQgMi4wXShodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0L2luZGV4Lmh0bWwpXG4vLyBHbG9iYWwgcmVzZXQgcnVsZXMuXG4vLyBGb3IgbW9yZSBzcGVjaWZpYyByZXNldHMsIHVzZSB0aGUgcmVzZXQgbWl4aW5zIHByb3ZpZGVkIGJlbG93XG5AbWl4aW4gZ2xvYmFsLXJlc2V0IHtcbiAgaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG4gIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbiAgZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuICBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuICBiLCB1LCBpLCBjZW50ZXIsXG4gIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG4gIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxuICB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbiAgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsIFxuICBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIFxuICBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbiAgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBAaW5jbHVkZSByZXNldC1ib3gtbW9kZWw7XG4gICAgQGluY2x1ZGUgcmVzZXQtZm9udDsgfVxuICAvLyBVbmxpa2UgRXJpYydzIG9yaWdpbmFsIHJlc2V0LCB3ZSByZXNldCB0aGUgaHRtbCBlbGVtZW50IHRvIGJlIGNvbXBhdGlibGVcbiAgLy8gd2l0aCB0aGUgdmVydGljYWwgcmh5dGhtIG1peGlucy5cbiAgaHRtbCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtYm9keTsgfVxuICBvbCwgdWwge1xuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGU7IH1cbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlOyB9XG4gIGNhcHRpb24sIHRoLCB0ZCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtdGFibGUtY2VsbDsgfVxuICBxLCBibG9ja3F1b3RlIHtcbiAgICBAaW5jbHVkZSByZXNldC1xdW90YXRpb247IH1cbiAgYSBpbWcge1xuICAgIEBpbmNsdWRlIHJlc2V0LWltYWdlLWFuY2hvci1ib3JkZXI7IH1cbiAgQGluY2x1ZGUgcmVzZXQtaHRtbDU7IH1cblxuLy8gUmVzZXQgYWxsIGVsZW1lbnRzIHdpdGhpbiBzb21lIHNlbGVjdG9yIHNjb3BlLiBUbyByZXNldCB0aGUgc2VsZWN0b3IgaXRzZWxmLFxuLy8gbWl4aW4gdGhlIGFwcHJvcHJpYXRlIHJlc2V0IG1peGluIGZvciB0aGF0IGVsZW1lbnQgdHlwZSBhcyB3ZWxsLiBUaGlzIGNvdWxkIGJlXG4vLyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gc3R5bGUgYSBwYXJ0IG9mIHlvdXIgcGFnZSBpbiBhIGRyYW1hdGljYWxseSBkaWZmZXJlbnQgd2F5LlxuQG1peGluIG5lc3RlZC1yZXNldCB7XG4gIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuICBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG4gIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbiAgYiwgdSwgaSwgY2VudGVyLFxuICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuICBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbiAgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG4gIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBcbiAgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBcbiAgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG4gIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtYm94LW1vZGVsO1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7IH1cbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlOyB9XG4gIGNhcHRpb24sIHRoLCB0ZCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtdGFibGUtY2VsbDsgfVxuICBxLCBibG9ja3F1b3RlIHtcbiAgICBAaW5jbHVkZSByZXNldC1xdW90YXRpb247IH1cbiAgYSBpbWcge1xuICAgIEBpbmNsdWRlIHJlc2V0LWltYWdlLWFuY2hvci1ib3JkZXI7IH0gfVxuXG4vLyBSZXNldCB0aGUgYm94IG1vZGVsIG1lYXN1cmVtZW50cy5cbkBtaXhpbiByZXNldC1ib3gtbW9kZWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG4vLyBSZXNldCB0aGUgZm9udCBhbmQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIHJlc2V0LWZvbnQge1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vLyBSZXNldHMgdGhlIG91dGxpbmUgd2hlbiBmb2N1cy5cbi8vIEZvciBhY2Nlc3NpYmlsaXR5IHlvdSBuZWVkIHRvIGFwcGx5IHNvbWUgc3R5bGluZyBpbiBpdHMgcGxhY2UuXG5AbWl4aW4gcmVzZXQtZm9jdXMge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8vIFJlc2V0IGEgYm9keSBlbGVtZW50LlxuQG1peGluIHJlc2V0LWJvZHkge1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4vLyBSZXNldCB0aGUgbGlzdCBzdHlsZSBvZiBhbiBlbGVtZW50LlxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8vIFJlc2V0IGEgdGFibGVcbkBtaXhpbiByZXNldC10YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbi8vIFJlc2V0IGEgdGFibGUgY2VsbCAoYHRoYCwgYHRkYClcbkBtaXhpbiByZXNldC10YWJsZS1jZWxsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vLyBSZXNldCBhIHF1b3RhdGlvbiAoYHFgLCBgYmxvY2txdW90ZWApXG5AbWl4aW4gcmVzZXQtcXVvdGF0aW9uIHtcbiAgcXVvdGVzOiBub25lO1xuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjsgXG4gICAgY29udGVudDogbm9uZTsgfSB9XG5cbi8vIFJlc2V0cyB0aGUgYm9yZGVyLlxuQG1peGluIHJlc2V0LWltYWdlLWFuY2hvci1ib3JkZXIge1xuICBib3JkZXI6IG5vbmU7IH1cblxuLy8gVW5yZWNvZ25pemVkIGVsZW1lbnRzIGFyZSBkaXNwbGF5ZWQgaW5saW5lLlxuLy8gVGhpcyByZXNldCBwcm92aWRlcyBhIGJhc2ljIHJlc2V0IGZvciBibG9jayBodG1sNSBlbGVtZW50c1xuLy8gc28gdGhleSBhcmUgcmVuZGVyZWQgY29ycmVjdGx5IGluIGJyb3dzZXJzIHRoYXQgZG9uJ3QgcmVjb2duaXplIHRoZW1cbi8vIGFuZCByZXNldCBpbiBicm93c2VycyB0aGF0IGhhdmUgZGVmYXVsdCBzdHlsZXMgZm9yIHRoZW0uXG5AbWl4aW4gcmVzZXQtaHRtbDUge1xuICAje2VsZW1lbnRzLW9mLXR5cGUoaHRtbDUtYmxvY2spfSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4vLyBSZXNldHMgdGhlIGRpc3BsYXkgb2YgaW5saW5lIGFuZCBibG9jayBlbGVtZW50cyB0byB0aGVpciBkZWZhdWx0IGRpc3BsYXlcbi8vIGFjY29yZGluZyB0byB0aGVpciB0YWcgdHlwZS4gRWxlbWVudHMgdGhhdCBoYXZlIGEgZGVmYXVsdCBkaXNwbGF5IHRoYXQgdmFyaWVzIGFjcm9zc1xuLy8gdmVyc2lvbnMgb2YgaHRtbCBvciBicm93c2VyIGFyZSBub3QgaGFuZGxlZCBoZXJlLCBidXQgdGhpcyBjb3ZlcnMgdGhlIDkwJSB1c2UgY2FzZS5cbi8vIFVzYWdlIEV4YW1wbGU6XG4vL1xuLy8gICAgIC8vIFR1cm4gb2ZmIHRoZSBkaXNwbGF5IGZvciBib3RoIG9mIHRoZXNlIGNsYXNzZXNcbi8vICAgICAudW5yZWdpc3RlcmVkLW9ubHksIC5yZWdpc3RlcmVkLW9ubHlcbi8vICAgICAgIGRpc3BsYXk6IG5vbmVcbi8vICAgICAvLyBOb3cgdHVybiBvbmx5IG9uZSBvZiB0aGVtIGJhY2sgb24gZGVwZW5kaW5nIG9uIHNvbWUgb3RoZXIgY29udGV4dC5cbi8vICAgICBib2R5LnJlZ2lzdGVyZWRcbi8vICAgICAgICtyZXNldC1kaXNwbGF5KFwiLnJlZ2lzdGVyZWQtb25seVwiKVxuLy8gICAgIGJvZHkudW5yZWdpc3RlcmVkXG4vLyAgICAgICArcmVzZXQtZGlzcGxheShcIi51bnJlZ2lzdGVyZWQtb25seVwiKVxuQG1peGluIHJlc2V0LWRpc3BsYXkoJHNlbGVjdG9yOiBcIlwiLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICAje2FwcGVuZC1zZWxlY3RvcihlbGVtZW50cy1vZi10eXBlKFwiaW5saW5lXCIpLCAkc2VsZWN0b3IpfSB7XG4gICAgQGlmICRpbXBvcnRhbnQge1xuICAgICAgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7IH0gfVxuICAje2FwcGVuZC1zZWxlY3RvcihlbGVtZW50cy1vZi10eXBlKFwiYmxvY2tcIiksICRzZWxlY3Rvcil9IHtcbiAgICBAaWYgJGltcG9ydGFudCB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgQGVsc2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH0gfSB9XG4iLCIvLyBVVElMSVRZIENMQVNTRVNcbi8vIC0tLS0tLS0tLS0tLS0tLVxuXG4vLyBRdWljayBmbG9hdHNcbi5wdWxsLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnB1bGwtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vLyBUb2dnbGluZyBjb250ZW50XG4uaGlkZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBWaXNpYmlsaXR5XG4uaW52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufSIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL3Jlc2V0XCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3V0aWxpdGllc1wiO1xuXG5odG1sIHtcblx0Zm9udDogbm9ybWFsIDYyLjUlIEFyaWFsLHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMTJweDsgLy9odG1sIHBhZ2UgZGVmYXVsdCBmb250IHNpemUgdG8gMTJweFxufVxuXG5hIHtcblx0Y29sb3I6ICRsaW5rLWNvbG91cjtcblxuXHQmOmhvdmVyIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHQmOnZpc2l0ZWQge1xuXHRcdGNvbG9yOiAkbGluay12aXNpdGVkLWNvbG91cjtcblx0fVxuXG5cdCY6YWN0aXZlIHtcblx0XHRjb2xvcjogbGlnaHRlbigkYnJhbmQtc2Vjb25kYXJ5LCAyMCUpO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG59XG5cbiN7aGVhZGluZ3MoKX0sIC51c3lkLWgxLCAudXN5ZC1oMiwgLnVzeWQtaDMsIC51c3lkLWg1LCAudXN5ZC1oNSwgLnVzeWQtaDYge1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG5cdGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbi8vXHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG59XG5cbmgxLCAudXN5ZC1oMSB7XG5cdGZvbnQtc2l6ZTogMjJweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmgyLCAudXN5ZC1oMiB7XG5cdGZvbnQtc2l6ZTogMjBweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmgzLCAudXN5ZC1oMyB7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmg0LCAudXN5ZC1oNCB7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmg1LCAudXN5ZC1oNSB7XG5cdGZvbnQtc2l6ZTogMTRweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmg2LCAudXN5ZC1oNiB7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbnAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjRlbTtcblx0bWFyZ2luOiAwLjhlbSAwO1xufVxuXG5sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuc3Ryb25nLCBiIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmVtLCBpIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5zdXAge1xuXHR2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG5cdGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cblxuc3ViIHtcblx0dmVydGljYWwtYWxpZ246IHN1Yjtcblx0Zm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG5pbWcge1xuXHRiYWNrZ3JvdW5kOiBsaWdodGVuKGJsYWNrLCA5NyUpO1xufVxuXG5pbWcsIG9iamVjdCwgZW1iZWQge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbnNtYWxsIHtcblx0Zm9udC1zaXplOiBzbWFsbGVyO1xufVxuXG5ociB7XG5cdC8vYmFja2dyb3VuZDogJGxpZ2h0LWdyZXk7XG5cdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRoZWlnaHQ6IDFweDtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG5cdG1hcmdpbjogMjBweCA2MHB4O1xuXG5cdCYudXN5ZC1mdWxsLXdpZHRoIHtcblx0XHRtYXJnaW46IDIwcHggMDtcblx0fVxufVxuXG5kbCB7XG5cdG1hcmdpbi10b3A6IDAuOGVtO1xuXG5cdGR0LCBkZCB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHR9XG5cblx0ZHQge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR9XG5cblx0ZGQge1xuXHRcdG1hcmdpbi1ib3R0b206IDAuOGVtO1xuXHR9XG59XG5cbi51c3lkLXVpLW1vcmUtbGluayB7XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBsaWdodGVuKGJsYWNrLCA0MCUpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbjogMTdweCAwIDE3cHggMDtcblx0aGVpZ2h0OiAwO1xuXG5cdGEge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IC05cHg7XG5cdFx0YmFja2dyb3VuZDogd2hpdGU7XG5cdFx0cGFkZGluZzogMCAxMHB4O1xuXHR9XG59XG5cbi51c3lkLXVpLXNwb2tlbiB7XG5cdEBpbmNsdWRlIGhpZGUtZnJvbS1leWVzO1xufVxuXG4udXN5ZC11aS1oaWRlIHtcblx0QGluY2x1ZGUgaGlkZS1mcm9tLWV2ZXJ5b25lO1xufVxuXG4udXN5ZC11aS1mdWxsIHtcblx0LnVzeWQtaGlkZS1mdWxsIHtcblx0XHRAZXh0ZW5kIC51c3lkLXVpLWhpZGU7XG5cdH1cbn1cblxuLnVzeWQtdWktY29tcGFjdCB7XG5cdC51c3lkLWhpZGUtY29tcGFjdCB7XG5cdFx0QGV4dGVuZCAudXN5ZC11aS1oaWRlO1xuXHR9XG59XG4udXN5ZC11aS1yZXF1aXJlZHtcblx0Y29sb3I6IHJlZDtcbn1cbi8qXG5cdEVsZW1lbnRzIHdpdGggLnVzeWQtanMtaGlkZVstKl0gYXJlIHRvIGJlIGhpZGRlbiBwb3N0LWxvYWQgYnkgdGhlaXIgcmVzcGVjdGl2ZSBzY3JpcHRzLlxuXHRJZiBKUyBpcyB1bmF2YWlsYWJsZSB0aGUgLm5vLWpzIHJ1bGVzIHdpbGwgcmVzZXQgdGhlc2UgaGlkZGVuIGVsZW1lbnRzLlxuXHRXaWRnZXRzIHdpdGggdGhlc2UgY2xhc3NlcyB3aWxsIGhhdmUgdGhlbSBhdXRvbWF0aWNhbGx5IHJlbW92ZWQgcG9zdC1sb2FkIGJ5IGJvb3RzdHJhcC5qc1xuKi9cbi51c3lkLWpzLWhpZGUge1xuXHRAZXh0ZW5kIC51c3lkLXVpLXNwb2tlbjtcbn1cblxuLypcblVzZWQgYnkgV0FTTSBhdXRoIG1hbmFnZXIgdG8gYXBwcm9yaXBhdGVseSBzaG93IGFuZCBoaWRlIHZpZXdzIGZvciBhdXRoZW50aWNhdGVkIGFuIHVuYXV0aGVudGljYXRlZCB1c2VyLlxuLnVzeWQtd2FzbS11c2VyLXVuYXV0aGVkIFNob3VsZCBiZSBhZGRlZCB3aGVuIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkLiBXaWxsIGhpZGUgaW5mb3JtYXRpb24gZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuXG4udXN5ZC13YXNtLXVzZXItYXV0aGVkIFNob3VsZCBiZSBhZGRlZCB3aGVuIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQuIFdpbGwgaGlkZSBpbmZvcm1hdGlvbiBmb3IgdW5hdXRoZW50aWNhdGVkIHVzZXJzLlxuKi9cbi51c3lkLXdhc20tY29tcG9uZW50IHtcblx0Ji51c3lkLXdhc20tdXNlci11bmF1dGhlZCB7XG5cdFx0LnVzeWQtd2FzbS1hdXRoZWQtdmlldyB7XG5cdFx0XHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cdCYudXN5ZC13YXNtLXVzZXItYXV0aGVkIHtcblx0XHQudXN5ZC13YXNtLXVuYXV0aGVkLXZpZXcge1xuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuXG4udXN5ZC11aS1kZXRhYmJlZCB7XG5cdG91dGxpbmU6IG5vbmU7XG59XG5cbi51c3lkLXVpLWZ1bGwge1xuXHQudXN5ZC1qcy1oaWRlLWZ1bGwge1xuXHRcdEBleHRlbmQgLnVzeWQtanMtaGlkZTtcblx0fVxufVxuLnVzeWQtdWktY29tcGFjdCB7XG5cdC51c3lkLWpzLWhpZGUtY29tcGFjdCB7XG5cdFx0QGV4dGVuZCAudXN5ZC1qcy1oaWRlO1xuXHR9XG59XG5cbi51c3lkLWFsaWduYWJsZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMDtcbn1cblxuLm5vLWpzIHtcblx0LnVzeWQtanMtb25seSwgLnVzeWQtanMtb25seS1jb21wYWN0LCAudXN5ZC1qcy1vbmx5LWZ1bGwge1xuXHRcdEBpbmNsdWRlIGhpZGUtZnJvbS1ldmVyeW9uZTtcblx0fVxuXHQudXN5ZC1qcy1oaWRlLCAudXN5ZC1qcy1oaWRlLWNvbXBhY3QsIC51c3lkLWpzLWhpZGUtZnVsbCB7XG5cdFx0dmlzaWJpbGl0eTogaW5oZXJpdDtcblx0XHRwb3NpdGlvbjogaW5oZXJpdDtcblx0fVxufVxuXG4udXN5ZC1zYW5zLW1hcmdpbiB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4udXN5ZC1zYW5zLXBhZGRpbmcge1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi51c3lkLXNhbnMtd2hpdGUtc3BhY2Uge1xuXHRAZXh0ZW5kIC51c3lkLXNhbnMtbWFyZ2luO1xuXHRAZXh0ZW5kIC51c3lkLXNhbnMtcGFkZGluZztcbn1cblxuYS5za2lwLW1haW4ge1xuICAgIGxlZnQ6IC05OTlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBhdXRvO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAtOTk5O1xuICAgICY6Zm9jdXMsICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzNjM2MzY7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMHB4IHNvbGlkICMzNjM2MzY7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICBtYXJnaW46OXB4IDI1cHggN3B4IDBweFx0O1xuICAgICAgICBmb250LWZhbWlseTogQXJpYWwsc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLy8gTWl4aW5zLmxlc3Ncbi8vIFNuaXBwZXRzIG9mIHJldXNhYmxlIENTUyB0byBkZXZlbG9wIGZhc3RlciBhbmQga2VlcCBjb2RlIHJlYWRhYmxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIFVUSUxJVFkgTUlYSU5TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBDbGVhcmZpeFxuLy8gLS0tLS0tLS1cbi8vIEZvciBjbGVhcmluZyBmbG9hdHMgbGlrZSBhIGJvc3MgaDVicC5jb20vcVxuQG1peGluIGNsZWFyZml4KCkge1xuICAqem9vbTogMTtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbi5jbGVhcmZpeCB7IEBpbmNsdWRlIGNsZWFyZml4KCk7IH1cblxuLy8gV2Via2l0LXN0eWxlIGZvY3VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiB0YWItZm9jdXMoKSB7XG4gIC8vIERlZmF1bHRcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQgIzMzMztcbiAgLy8gV2Via2l0XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG59XG5cbi8vIENlbnRlci1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBjZW50ZXItYmxvY2soKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vLyBJRTcgaW5saW5lLWJsb2NrXG4vLyAtLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gaWU3LWlubGluZS1ibG9jaygpIHtcbiAgKmRpc3BsYXk6IGlubGluZTsgLyogSUU3IGlubGluZS1ibG9jayBoYWNrICovXG4gICp6b29tOiAxO1xufVxuXG4vLyBJRTcgbGlrZXMgdG8gY29sbGFwc2Ugd2hpdGVzcGFjZSBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgaW5saW5lLWJsb2NrIGVsZW1lbnRzLlxuLy8gRW1zIGJlY2F1c2Ugd2UncmUgYXR0ZW1wdGluZyB0byBtYXRjaCB0aGUgd2lkdGggb2YgYSBzcGFjZSBjaGFyYWN0ZXIuIExlZnRcbi8vIHZlcnNpb24gaXMgZm9yIGZvcm0gYnV0dG9ucywgd2hpY2ggdHlwaWNhbGx5IGNvbWUgYWZ0ZXIgb3RoZXIgZWxlbWVudHMsIGFuZFxuLy8gcmlnaHQgdmVyc2lvbiBpcyBmb3IgaWNvbnMsIHdoaWNoIGNvbWUgYmVmb3JlLiBBcHBseWluZyBib3RoIGlzIG9rLCBidXQgaXQgd2lsbFxuLy8gbWVhbiB0aGF0IHNwYWNlIGJldHdlZW4gdGhvc2UgZWxlbWVudHMgd2lsbCBiZSAuNmVtICh+MiBzcGFjZSBjaGFyYWN0ZXJzKSBpbiBJRTcsXG4vLyBpbnN0ZWFkIG9mIHRoZSAxIHNwYWNlIGluIG90aGVyIGJyb3dzZXJzLlxuQG1peGluIGllNy1yZXN0b3JlLWxlZnQtd2hpdGVzcGFjZSgpIHtcbiAgKm1hcmdpbi1sZWZ0OiAuM2VtO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgICptYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5AbWl4aW4gaWU3LXJlc3RvcmUtcmlnaHQtd2hpdGVzcGFjZSgpIHtcbiAgKm1hcmdpbi1yaWdodDogLjNlbTtcblxuICAmOmxhc3QtY2hpbGQge1xuICAgICptYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG4vLyBTaXppbmcgc2hvcnRjdXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gc2l6ZSgkaGVpZ2h0LCAkd2lkdGgpIHtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xufVxuQG1peGluIHNxdWFyZSgkc2l6ZSkge1xuICBAaW5jbHVkZSBzaXplKCRzaXplLCAkc2l6ZSk7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwbGFjZWhvbGRlcigkY29sb3I6ICRwbGFjZWhvbGRlclRleHQpIHtcbiAgOi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbiAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbi8vIFRleHQgb3ZlcmZsb3dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHRleHQtb3ZlcmZsb3coKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvY29tbWl0L2FhMDM5NmVhZTc1N1xuQG1peGluIGhpZGUtdGV4dCgpIHtcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG59XG5cblxuLy8gRk9OVFNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gZm9udC1mYW1pbHktc2VyaWYoKSB7XG4gIGZvbnQtZmFtaWx5OiAkc2VyaWZGb250RmFtaWx5O1xufVxuQG1peGluIGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYoKSB7XG4gIGZvbnQtZmFtaWx5OiAkc2Fuc0ZvbnRGYW1pbHk7XG59XG5AbWl4aW4gZm9udC1mYW1pbHktbW9ub3NwYWNlKCkge1xuICBmb250LWZhbWlseTogJG1vbm9Gb250RmFtaWx5O1xufVxuQG1peGluIGZvbnQtc2hvcnRoYW5kKCRzaXplOiAkYmFzZUZvbnRTaXplLCAkd2VpZ2h0OiBub3JtYWwsICRsaW5lSGVpZ2h0OiAkYmFzZUxpbmVIZWlnaHQpIHtcbiAgZm9udC1zaXplOiAkc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZUhlaWdodDtcbn1cbkBtaXhpbiBmb250LXNlcmlmKCRzaXplOiAkYmFzZUZvbnRTaXplLCAkd2VpZ2h0OiBub3JtYWwsICRsaW5lSGVpZ2h0OiAkYmFzZUxpbmVIZWlnaHQpIHtcbiAgQGluY2x1ZGUgZm9udC1mYW1pbHktc2VyaWYoKTtcbiAgQGluY2x1ZGUgZm9udC1zaG9ydGhhbmQoJHNpemUsICR3ZWlnaHQsICRsaW5lSGVpZ2h0KTtcbn1cbkBtaXhpbiBmb250LXNhbnMtc2VyaWYoJHNpemU6ICRiYXNlRm9udFNpemUsICR3ZWlnaHQ6IG5vcm1hbCwgJGxpbmVIZWlnaHQ6ICRiYXNlTGluZUhlaWdodCkge1xuICBAaW5jbHVkZSBmb250LWZhbWlseS1zYW5zLXNlcmlmKCk7XG4gIEBpbmNsdWRlIGZvbnQtc2hvcnRoYW5kKCRzaXplLCAkd2VpZ2h0LCAkbGluZUhlaWdodCk7XG59XG5AbWl4aW4gZm9udC1tb25vc3BhY2UoJHNpemU6ICRiYXNlRm9udFNpemUsICR3ZWlnaHQ6IG5vcm1hbCwgJGxpbmVIZWlnaHQ6ICRiYXNlTGluZUhlaWdodCkge1xuICBAaW5jbHVkZSBmb250LWZhbWlseS1tb25vc3BhY2UoKTtcbiAgQGluY2x1ZGUgZm9udC1zaG9ydGhhbmQoJHNpemUsICR3ZWlnaHQsICRsaW5lSGVpZ2h0KTtcbn1cblxuXG5cbi8vIEZPUk1TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaW5wdXQtYmxvY2stbGV2ZWwoKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMjhweDsgLy8gTWFrZSBpbnB1dHMgYXQgbGVhc3QgdGhlIGhlaWdodCBvZiB0aGVpciBidXR0b24gY291bnRlcnBhcnRcbiAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTsgLy8gTWFrZXMgaW5wdXRzIGJlaGF2ZSBsaWtlIHRydWUgYmxvY2stbGV2ZWwgZWxlbWVudHNcbn1cblxuXG4vLyBNaXhpbiBmb3IgZm9ybSBmaWVsZCBzdGF0ZXNcbkBtaXhpbiBmb3JtRmllbGRTdGF0ZSgkdGV4dENvbG9yOiAjNTU1LCAkYm9yZGVyQ29sb3I6ICNjY2MsICRiYWNrZ3JvdW5kQ29sb3I6ICNmNWY1ZjUpIHtcbiAgLy8gU2V0IHRoZSB0ZXh0IGNvbG9yXG4gID4gbGFiZWwsIC5oZWxwLWJsb2NrLCAuaGVscC1pbmxpbmUge1xuICAgIGNvbG9yOiAkdGV4dENvbG9yO1xuICB9XG4gIC8vIFN0eWxlIGlucHV0cyBhY2NvcmRpbmdseVxuICBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgY29sb3I6ICR0ZXh0Q29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyQ29sb3I7XG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkYm9yZGVyQ29sb3IsIDEwJSk7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAgMCA2cHggbGlnaHRlbigkYm9yZGVyQ29sb3IsIDIwJSkpO1xuICAgIH1cbiAgfVxuICAvLyBHaXZlIGEgc21hbGwgYmFja2dyb3VuZCBjb2xvciBmb3IgaW5wdXQtcHJlcGVuZC8tYXBwZW5kXG4gIC5pbnB1dC1wcmVwZW5kIC5hZGQtb24sIC5pbnB1dC1hcHBlbmQgLmFkZC1vbiB7XG4gICAgY29sb3I6ICR0ZXh0Q29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmRDb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICR0ZXh0Q29sb3I7XG4gIH1cbn1cblxuXG4vLyBDU1MzIFBST1BFUlRJRVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJvcmRlciBSYWRpdXNcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXMpIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbn1cblxuLy8gRHJvcCBzaGFkb3dzXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93KSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbi8vIFRyYW5zaXRpb25zXG5AbWl4aW4gdHJhbnNpdGlvbigkdHJhbnNpdGlvbikge1xuICAtd2Via2l0LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAtbW96LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgLW1zLXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgIC1vLXRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgICAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xufVxuXG4vLyBUcmFuc2Zvcm1hdGlvbnNcbkBtaXhpbiByb3RhdGUoJGRlZ3JlZXMpIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xuICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWVzKTtcbiAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlcyk7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZXMpO1xufVxuQG1peGluIHNjYWxlKCRyYXRpbykge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcbiAgICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgkcmF0aW8pO1xuICAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoJHJhdGlvKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKCRyYXRpbyk7XG59XG5AbWl4aW4gdHJhbnNsYXRlKCR4LCAkeSkge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbiAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeCwgJHkpO1xuICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKCR4LCAkeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5KTtcbn1cblxuQG1peGluIHNrZXcoJHgsICR5KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3KCR4LCAkeSk7XG4gICAgIC1tb3otdHJhbnNmb3JtOiBza2V3KCR4LCAkeSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBza2V3KCR4LCAkeSk7XG4gICAgICAgLW8tdHJhbnNmb3JtOiBza2V3KCR4LCAkeSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBza2V3KCR4LCAkeSk7XG59XG5cbkBtaXhpbiB0cmFuc2xhdGUzZCgkeCwgJHksICR6KSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5LCAkeik7XG4gICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5LCAkeik7XG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5LCAkeik7XG4gICAgICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5LCAkeik7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHgsICR5LCAkeik7XG59XG5cbi8vIEJhY2tmYWNlIHZpc2liaWxpdHlcbi8vIFByZXZlbnQgYnJvd3NlcnMgZnJvbSBmbGlja2VyaW5nIHdoZW4gdXNpbmcgQ1NTIDNEIHRyYW5zZm9ybXMuXG4vLyBEZWZhdWx0IHZhbHVlIGlzIGB2aXNpYmxlYCwgYnV0IGNhbiBiZSBjaGFuZ2VkIHRvIGBoaWRkZW5cbi8vIFNlZSBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vZGFubnlrZWFuZS9ib290c3RyYXAuZ2l0IGJhY2tmYWNlLXZpc2liaWxpdHkgZm9yIGV4YW1wbGVzXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSl7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgICAtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZpc2liaWxpdHk7XG59XG5cbi8vIEJhY2tncm91bmQgY2xpcHBpbmdcbi8vIEhlYWRzIHVwOiBGRiAzLjYgYW5kIHVuZGVyIG5lZWQgXCJwYWRkaW5nXCIgaW5zdGVhZCBvZiBcInBhZGRpbmctYm94XCJcbkBtaXhpbiBiYWNrZ3JvdW5kLWNsaXAoJGNsaXApIHtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6ICRjbGlwO1xuICAgICAtbW96LWJhY2tncm91bmQtY2xpcDogJGNsaXA7XG4gICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiAkY2xpcDtcbn1cblxuLy8gQmFja2dyb3VuZCBzaXppbmdcbkBtaXhpbiBiYWNrZ3JvdW5kLXNpemUoJHNpemUpe1xuICAtd2Via2l0LWJhY2tncm91bmQtc2l6ZTogJHNpemU7XG4gICAgIC1tb3otYmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcbiAgICAgICAtby1iYWNrZ3JvdW5kLXNpemU6ICRzaXplO1xuICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogJHNpemU7XG59XG5cblxuLy8gQm94IHNpemluZ1xuQG1peGluIGJveC1zaXppbmcoJGJveG1vZGVsKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJGJveG1vZGVsO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRib3htb2RlbDtcbiAgICAgIC1tcy1ib3gtc2l6aW5nOiAkYm94bW9kZWw7XG4gICAgICAgICAgYm94LXNpemluZzogJGJveG1vZGVsO1xufVxuXG4vLyBVc2VyIHNlbGVjdFxuLy8gRm9yIHNlbGVjdGluZyB0ZXh0IG9uIHRoZSBwYWdlXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdCkge1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgIC1vLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG4vLyBSZXNpemUgYW55dGhpbmdcbkBtaXhpbiByZXNpemFibGUoJGRpcmVjdGlvbikge1xuICByZXNpemU6ICRkaXJlY3Rpb247IC8vIE9wdGlvbnM6IGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG4gIG92ZXJmbG93OiBhdXRvOyAvLyBTYWZhcmkgZml4XG59XG5cbi8vIENTUzMgQ29udGVudCBDb2x1bW5zXG5AbWl4aW4gY29udGVudC1jb2x1bW5zKCRjb2x1bW5Db3VudCwgJGNvbHVtbkdhcDogJGdyaWRHdXR0ZXJXaWR0aCkge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJGNvbHVtbkNvdW50O1xuICAgICAtbW96LWNvbHVtbi1jb3VudDogJGNvbHVtbkNvdW50O1xuICAgICAgICAgIGNvbHVtbi1jb3VudDogJGNvbHVtbkNvdW50O1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICRjb2x1bW5HYXA7XG4gICAgIC1tb3otY29sdW1uLWdhcDogJGNvbHVtbkdhcDtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiAkY29sdW1uR2FwO1xufVxuXG4vLyBPcGFjaXR5XG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eTogMSkge1xuICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PSN7JG9wYWNpdHkgKiAxMDB9KTtcbn1cblxuXG5cbi8vIEJBQ0tHUk9VTkRTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBZGQgYW4gYWxwaGF0cmFuc3BhcmVuY3kgdmFsdWUgdG8gYW55IGJhY2tncm91bmQgb3IgYm9yZGVyIGNvbG9yICh2aWEgRWx5c2UgSG9sbGFkYXkpXG5AbWl4aW4gdHJhbnNsdWNlbnQtYmFja2dyb3VuZCgkY29sb3I6ICR3aGl0ZSwgJGFscGhhOiAxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGhzbGEoaHVlKCRjb2xvciksIHNhdHVyYXRpb24oJGNvbG9yKSwgbGlnaHRuZXNzKCRjb2xvciksICRhbHBoYSk7XG59XG5AbWl4aW4gdHJhbnNsdWNlbnQtYm9yZGVyKCRjb2xvcjogJHdoaXRlLCAkYWxwaGE6IDEpIHtcbiAgYm9yZGVyLWNvbG9yOiBoc2xhKGh1ZSgkY29sb3IpLCBzYXR1cmF0aW9uKCRjb2xvciksIGxpZ2h0bmVzcygkY29sb3IpLCAkYWxwaGEpO1xuICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWNsaXAocGFkZGluZy1ib3gpO1xufVxuXG4vLyBHcmFkaWVudCBCYXIgQ29sb3JzIGZvciBidXR0b25zIGFuZCBhbGVydHNcbkBtaXhpbiBncmFkaWVudEJhcigkcHJpbWFyeUNvbG9yLCAkc2Vjb25kYXJ5Q29sb3IpIHtcbiAgQGluY2x1ZGUgZ3JhZGllbnQtdmVydGljYWwoJHByaW1hcnlDb2xvciwgJHNlY29uZGFyeUNvbG9yKTtcbiAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5Q29sb3IgJHNlY29uZGFyeUNvbG9yIGRhcmtlbigkc2Vjb25kYXJ5Q29sb3IsIDE1JSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMSkgcmdiYSgwLDAsMCwuMSkgZmFkZWluKHJnYmEoMCwwLDAsLjEpLCAxNSUpO1xufVxuXG4vLyBHcmFkaWVudHNcbkBtaXhpbiBncmFkaWVudC1ob3Jpem9udGFsKCRzdGFydENvbG9yOiAjNTU1LCAkZW5kQ29sb3I6ICMzMzMpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGVuZENvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTsgLy8gRkYgMy42K1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpOyAvLyBJRTEwXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDEwMCUgMCwgZnJvbSgkc3RhcnRDb2xvciksIHRvKCRlbmRDb2xvcikpOyAvLyBTYWZhcmkgNCssIENocm9tZSAyK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpOyAvLyBPcGVyYSAxMS4xMFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQobGVmdCwgJHN0YXJ0Q29sb3IsICRlbmRDb2xvcik7IC8vIExlIHN0YW5kYXJkXG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydENvbG9yKX0nLCBlbmRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRlbmRDb2xvcil9JywgR3JhZGllbnRUeXBlPTEpOyAvLyBJRTkgYW5kIGRvd25cbn1cbkBtaXhpbiBncmFkaWVudC12ZXJ0aWNhbCgkc3RhcnRDb2xvcjogIzU1NSwgJGVuZENvbG9yOiAjMzMzKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IG1peCgkc3RhcnRDb2xvciwgJGVuZENvbG9yLCA2MCUpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpOyAvLyBGRiAzLjYrXG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTsgLy8gSUUxMFxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oJHN0YXJ0Q29sb3IpLCB0bygkZW5kQ29sb3IpKTsgLy8gU2FmYXJpIDQrLCBDaHJvbWUgMitcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgJHN0YXJ0Q29sb3IsICRlbmRDb2xvcik7IC8vIE9wZXJhIDExLjEwXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpOyAvLyBUaGUgc3RhbmRhcmRcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScje2llLWhleC1zdHIoJHN0YXJ0Q29sb3IpfScsIGVuZENvbG9yc3RyPScje2llLWhleC1zdHIoJGVuZENvbG9yKX0nLCBHcmFkaWVudFR5cGU9MCk7IC8vIElFOSBhbmQgZG93blxufVxuQG1peGluIGdyYWRpZW50LWRpcmVjdGlvbmFsKCRzdGFydENvbG9yOiAjNTU1LCAkZW5kQ29sb3I6ICMzMzMsICRkZWc6IDQ1ZGVnKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRlbmRDb2xvcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTsgLy8gRkYgMy42K1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpOyAvLyBJRTEwXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydENvbG9yLCAkZW5kQ29sb3IpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lIDEwK1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoJGRlZywgJHN0YXJ0Q29sb3IsICRlbmRDb2xvcik7IC8vIE9wZXJhIDExLjEwXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkZGVnLCAkc3RhcnRDb2xvciwgJGVuZENvbG9yKTsgLy8gVGhlIHN0YW5kYXJkXG59XG5AbWl4aW4gZ3JhZGllbnQtdmVydGljYWwtdGhyZWUtY29sb3JzKCRzdGFydENvbG9yOiAjMDBiM2VlLCAkbWlkQ29sb3I6ICM3YTQzYjYsICRjb2xvclN0b3A6IDUwJSwgJGVuZENvbG9yOiAjYzMzMjVmKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IG1peCgkbWlkQ29sb3IsICRlbmRDb2xvciwgODAlKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKCRzdGFydENvbG9yKSwgY29sb3Itc3RvcCgkY29sb3JTdG9wLCAkbWlkQ29sb3IpLCB0bygkZW5kQ29sb3IpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHN0YXJ0Q29sb3IsICRtaWRDb2xvciAkY29sb3JTdG9wLCAkZW5kQ29sb3IpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICRzdGFydENvbG9yLCAkbWlkQ29sb3IgJGNvbG9yU3RvcCwgJGVuZENvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCgkc3RhcnRDb2xvciwgJG1pZENvbG9yICRjb2xvclN0b3AsICRlbmRDb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCgkc3RhcnRDb2xvciwgJG1pZENvbG9yICRjb2xvclN0b3AsICRlbmRDb2xvcik7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnRDb2xvciwgJG1pZENvbG9yICRjb2xvclN0b3AsICRlbmRDb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyN7aWUtaGV4LXN0cigkc3RhcnRDb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kQ29sb3IpfScsIEdyYWRpZW50VHlwZT0wKTsgLy8gSUU5IGFuZCBkb3duLCBnZXRzIG5vIGNvbG9yLXN0b3AgYXQgYWxsIGZvciBwcm9wZXIgZmFsbGJhY2tcbn1cbkBtaXhpbiBncmFkaWVudC1yYWRpYWwoJGlubmVyQ29sb3I6ICM1NTUsICRvdXRlckNvbG9yOiAjMzMzKSAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3V0ZXJDb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChyYWRpYWwsIGNlbnRlciBjZW50ZXIsIDAsIGNlbnRlciBjZW50ZXIsIDQ2MCwgZnJvbSgkaW5uZXJDb2xvciksIHRvKCRvdXRlckNvbG9yKSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyQ29sb3IsICRvdXRlckNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAkaW5uZXJDb2xvciwgJG91dGVyQ29sb3IpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyQ29sb3IsICRvdXRlckNvbG9yKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyQ29sb3IsICRvdXRlckNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC1zdHJpcGVkKCRjb2xvciwgJGFuZ2xlOiAtNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAxMDAlLCAxMDAlIDAsIGNvbG9yLXN0b3AoLjI1LCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkpLCBjb2xvci1zdG9wKC4yNSwgdHJhbnNwYXJlbnQpLCBjb2xvci1zdG9wKC41LCB0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoLjUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSksIGNvbG9yLXN0b3AoLjc1LCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkpLCBjb2xvci1zdG9wKC43NSwgdHJhbnNwYXJlbnQpLCB0byh0cmFuc3BhcmVudCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoJGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQoJGFuZ2xlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCgkYW5nbGUsIHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhbmdsZSwgcmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSwgcmdiYSgyNTUsMjU1LDI1NSwwKSAyNSUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDc1JSwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7XG59XG4vLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuQG1peGluIHJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbn1cblxuXG4vLyBDT01QT05FTlQgTUlYSU5TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIb3Jpem9udGFsIGRpdmlkZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEaXZpZGVycyAoYmFzaWNhbGx5IGFuIGhyKSB3aXRoaW4gZHJvcGRvd25zIGFuZCBuYXYgbGlzdHNcbkBtaXhpbiBuYXYtZGl2aWRlcigpIHtcbiAgLy8gSUU3IG5lZWRzIGEgc2V0IHdpZHRoIHNpbmNlIHdlIGdhdmUgYSBoZWlnaHQuIFJlc3RyaWN0aW5nIGp1c3RcbiAgLy8gdG8gSUU3IHRvIGtlZXAgdGhlIDFweCBsZWZ0L3JpZ2h0IHNwYWNlIGluIG90aGVyIGJyb3dzZXJzLlxuICAvLyBJdCBpcyB1bmNsZWFyIHdoZXJlIElFIGlzIGdldHRpbmcgdGhlIGV4dHJhIHNwYWNlIHRoYXQgd2UgbmVlZFxuICAvLyB0byBuZWdhdGl2ZS1tYXJnaW4gYXdheSwgYnV0IHNvIGl0IGdvZXMuXG4gICp3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogKCgkYmFzZUxpbmVIZWlnaHQgLyAyKSAtIDEpIDFweDsgLy8gOHB4IDFweFxuICAqbWFyZ2luOiAtNXB4IDAgNXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlNWU1O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xufVxuXG4vLyBCdXR0b24gYmFja2dyb3VuZHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGJ1dHRvbkJhY2tncm91bmQoJHN0YXJ0Q29sb3IsICRlbmRDb2xvcikge1xuICAvLyBncmFkaWVudEJhciB3aWxsIHNldCB0aGUgYmFja2dyb3VuZCB0byBhIHBsZWFzaW5nIGJsZW5kIG9mIHRoZXNlLCB0byBzdXBwb3J0IElFPD05XG4gIEBpbmNsdWRlIGdyYWRpZW50QmFyKCRzdGFydENvbG9yLCAkZW5kQ29sb3IpO1xuICAqYmFja2dyb3VuZC1jb2xvcjogJGVuZENvbG9yOyAvLyBEYXJrZW4gSUU3IGJ1dHRvbnMgYnkgZGVmYXVsdCBzbyB0aGV5IHN0YW5kIG91dCBtb3JlIGdpdmVuIHRoZXkgd29uJ3QgaGF2ZSBib3JkZXJzXG4gIEBpbmNsdWRlIHJlc2V0LWZpbHRlcigpO1xuXG4gIC8vIGluIHRoZXNlIGNhc2VzIHRoZSBncmFkaWVudCB3b24ndCBjb3ZlciB0aGUgYmFja2dyb3VuZCwgc28gd2Ugb3ZlcnJpZGVcbiAgJjpob3ZlciwgJjphY3RpdmUsICYuYWN0aXZlLCAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGVuZENvbG9yO1xuICAgICpiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGVuZENvbG9yLCA1JSk7XG4gIH1cblxuICAvLyBJRSA3ICsgOCBjYW4ndCBoYW5kbGUgYm94LXNoYWRvdyB0byBzaG93IGFjdGl2ZSwgc28gd2UgZGFya2VuIGEgYml0IG91cnNlbHZlc1xuICAmOmFjdGl2ZSwgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZW5kQ29sb3IsIDEwJSkgXFw5O1xuICB9XG59XG5cbi8vIE5hdmJhciB2ZXJ0aWNhbCBhbGlnblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVmVydGljYWxseSBjZW50ZXIgZWxlbWVudHMgaW4gdGhlIG5hdmJhci5cbi8vIEV4YW1wbGU6IGFuIGVsZW1lbnQgaGFzIGEgaGVpZ2h0IG9mIDMwcHgsIHNvIHdyaXRlIG91dCBgLm5hdmJhclZlcnRpY2FsQWxpZ24oMzBweCk7YCB0byBjYWxjdWxhdGUgdGhlIGFwcHJvcHJpYXRlIHRvcCBtYXJnaW4uXG5AbWl4aW4gbmF2YmFyVmVydGljYWxBbGlnbigkZWxlbWVudEhlaWdodCkge1xuICBtYXJnaW4tdG9wOiAoJG5hdmJhckhlaWdodCAtICRlbGVtZW50SGVpZ2h0KSAvIDI7XG59XG5cbi8vIFBvcG92ZXIgYXJyb3dzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3IgdGlwc2llcyBhbmQgcG9wb3ZlcnNcbkBtaXhpbiBwb3BvdmVyQXJyb3dUb3AoJGFycm93V2lkdGg6IDVweCwgJGNvbG9yOiAkYmxhY2spIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtJGFycm93V2lkdGg7XG4gIGJvcmRlci1sZWZ0OiAkYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAkYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXRvcDogJGFycm93V2lkdGggc29saWQgJGNvbG9yO1xufVxuQG1peGluIHBvcG92ZXJBcnJvd0xlZnQoJGFycm93V2lkdGg6IDVweCwgJGNvbG9yOiAkYmxhY2spIHtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiAtJGFycm93V2lkdGg7XG4gIGJvcmRlci10b3A6ICRhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAkYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6ICRhcnJvd1dpZHRoIHNvbGlkICRjb2xvcjtcbn1cbkBtaXhpbiBwb3BvdmVyQXJyb3dCb3R0b20oJGFycm93V2lkdGg6IDVweCwgJGNvbG9yOiAkYmxhY2spIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtJGFycm93V2lkdGg7XG4gIGJvcmRlci1sZWZ0OiAkYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAkYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogJGFycm93V2lkdGggc29saWQgJGNvbG9yO1xufVxuQG1peGluIHBvcG92ZXJBcnJvd1JpZ2h0KCRhcnJvd1dpZHRoOiA1cHgsICRjb2xvcjogJGJsYWNrKSB7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW4tdG9wOiAtJGFycm93V2lkdGg7XG4gIGJvcmRlci10b3A6ICRhcnJvd1dpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAkYXJyb3dXaWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAkYXJyb3dXaWR0aCBzb2xpZCAkY29sb3I7XG59XG5cbi8vIEdyaWQgU3lzdGVtXG4vLyAtLS0tLS0tLS0tLVxuXG4vLyBDZW50ZXJlZCBjb250YWluZXIgZWxlbWVudFxuQG1peGluIGNvbnRhaW5lci1maXhlZCgpIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbn1cblxuLy8gVGFibGUgY29sdW1uc1xuQG1peGluIHRhYmxlQ29sdW1ucygkY29sdW1uU3BhbjogMSkge1xuICBmbG9hdDogbm9uZTsgLy8gdW5kbyBkZWZhdWx0IGdyaWQgY29sdW1uIHN0eWxlc1xuICB3aWR0aDogKCgkZ3JpZENvbHVtbldpZHRoKSAqICRjb2x1bW5TcGFuKSArICgkZ3JpZEd1dHRlcldpZHRoICogKCRjb2x1bW5TcGFuIC0gMSkpIC0gMTY7IC8vIDE2IGlzIHRvdGFsIHBhZGRpbmcgb24gbGVmdCBhbmQgcmlnaHQgb2YgdGFibGUgY2VsbHNcbiAgbWFyZ2luLWxlZnQ6IDA7IC8vIHVuZG8gZGVmYXVsdCBncmlkIGNvbHVtbiBzdHlsZXNcbn1cblxuLy8gTWFrZSBhIEdyaWRcbi8vIFVzZSAubWFrZVJvdyBhbmQgLm1ha2VDb2x1bW4gdG8gYXNzaWduIHNlbWFudGljIGxheW91dHMgZ3JpZCBzeXN0ZW0gYmVoYXZpb3JcbkBtaXhpbiBtYWtlUm93KCkge1xuICBtYXJnaW4tbGVmdDogJGdyaWRHdXR0ZXJXaWR0aCAqIC0xO1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuQG1peGluIG1ha2VDb2x1bW4oJGNvbHVtbnM6IDEsICRvZmZzZXQ6IDApIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1sZWZ0OiAoJGdyaWRDb2x1bW5XaWR0aCAqICRvZmZzZXQpICsgKCRncmlkR3V0dGVyV2lkdGggKiAoJG9mZnNldCAtIDEpKSArICgkZ3JpZEd1dHRlcldpZHRoICogMik7XG4gIHdpZHRoOiAoJGdyaWRDb2x1bW5XaWR0aCAqICRjb2x1bW5zKSArICgkZ3JpZEd1dHRlcldpZHRoICogKCRjb2x1bW5zIC0gMSkpO1xufVxuXG4vLyBUaGUgR3JpZFxuQG1peGluIGdyaWRDb3JlKCRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKSB7XG4gIC5yb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAkZ3V0dGVyV2lkdGggKiAtMTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICB9XG5cbiAgW2NsYXNzKj1cInNwYW5cIl0ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1sZWZ0OiAkZ3V0dGVyV2lkdGg7XG4gIH1cblxuICAvLyBTZXQgdGhlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGZvciBmaXhlZCBuYXZiYXJzIGluIG1lZGlhIHF1ZXJpZXNcbiAgLmNvbnRhaW5lciwgLm5hdmJhci1maXhlZC10b3AgLmNvbnRhaW5lciwgLm5hdmJhci1maXhlZC1ib3R0b20gLmNvbnRhaW5lciB7IEBpbmNsdWRlIGdyaWRDb3JlU3BhbigkZ3JpZENvbHVtbnMsICRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKTsgfVxuXG4gIEBpbmNsdWRlIGdyaWRDb3JlU3BhblgoJGdyaWRDb2x1bW5zLCAkY29sdW1uV2lkdGgsICRndXR0ZXJXaWR0aCk7XG4gIEBpbmNsdWRlIGdyaWRDb3JlT2Zmc2V0WCgkZ3JpZENvbHVtbnMsICRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKTtcbn1cbkBtaXhpbiBncmlkQ29yZVNwYW5YKCRjb2xzLCAkY29sdW1uV2lkdGgsICRndXR0ZXJXaWR0aCkge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2xzIHtcbiAgICAuc3BhbiN7JGl9IHsgQGluY2x1ZGUgZ3JpZENvcmVTcGFuKCRpLCAkY29sdW1uV2lkdGgsICRndXR0ZXJXaWR0aCkgfTtcbiAgfVxufVxuQG1peGluIGdyaWRDb3JlU3BhbigkY29sdW1ucywgJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpIHtcbiAgd2lkdGg6ICgkY29sdW1uV2lkdGggKiAkY29sdW1ucykgKyAoJGd1dHRlcldpZHRoICogKCRjb2x1bW5zIC0gMSkpO1xufVxuQG1peGluIGdyaWRDb3JlT2Zmc2V0WCgkY29scywgJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29scyB7XG4gICAgLm9mZnNldCN7JGl9IHsgQGluY2x1ZGUgZ3JpZENvcmVPZmZzZXQoJGksICRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKTsgfTtcbiAgfVxufVxuQG1peGluIGdyaWRDb3JlT2Zmc2V0KCRjb2x1bW5zLCAkY29sdW1uV2lkdGgsICRndXR0ZXJXaWR0aCkge1xuICBtYXJnaW4tbGVmdDogKCRjb2x1bW5XaWR0aCAqICRjb2x1bW5zKSArICgkZ3V0dGVyV2lkdGggKiAoJGNvbHVtbnMgKyAxKSk7XG59XG5cbkBtaXhpbiBncmlkRmx1aWQoJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpIHtcbiAgLnJvdy1mbHVpZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICBbY2xhc3MqPVwic3BhblwiXSB7XG4gICAgICBAaW5jbHVkZSBpbnB1dC1ibG9jay1sZXZlbCgpO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogJGd1dHRlcldpZHRoO1xuICAgICAgKm1hcmdpbi1sZWZ0OiAkZ3V0dGVyV2lkdGggLSAoLjUgLyAoJGdyaWRSb3dXaWR0aC8xcHgpICogMTAwICogMSUpO1xuICAgIH1cbiAgICBbY2xhc3MqPVwic3BhblwiXTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAvLyBnZW5lcmF0ZSAuc3BhblhcbiAgICBAaW5jbHVkZSBncmlkRmx1aWRTcGFuWCgkZ3JpZENvbHVtbnMsICRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKTtcbiAgfVxufVxuQG1peGluIGdyaWRGbHVpZFNwYW5YKCRjb2xzLCAkY29sdW1uV2lkdGgsICRndXR0ZXJXaWR0aCkge1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2xzIHtcbiAgICAuc3BhbiN7JGl9IHsgQGluY2x1ZGUgZ3JpZEZsdWlkU3BhbigkaSwgJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpIH07XG4gIH1cbn1cbkBtaXhpbiBncmlkRmx1aWRTcGFuKCRjb2x1bW5zLCAkY29sdW1uV2lkdGgsICRndXR0ZXJXaWR0aCkge1xuICB3aWR0aDogKCRjb2x1bW5XaWR0aCAqICRjb2x1bW5zKSArICgkZ3V0dGVyV2lkdGggKiAoJGNvbHVtbnMgLSAxKSk7XG4gICp3aWR0aDogKCRjb2x1bW5XaWR0aCAqICRjb2x1bW5zKSArICgkZ3V0dGVyV2lkdGggKiAoJGNvbHVtbnMgLSAxKSkgLSAoLjUgLyAoJGdyaWRSb3dXaWR0aC8xcHgpICogMTAwICogMSUpO1xufVxuXG5AbWl4aW4gZ3JpZElucHV0KCRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKSB7XG4gIGlucHV0LCB0ZXh0YXJlYSwgLnVuZWRpdGFibGUtaW5wdXQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyAvLyBvdmVycmlkZSBtYXJnaW4tbGVmdCBmcm9tIGNvcmUgZ3JpZCBzeXN0ZW1cbiAgfVxuXG4gIC8vIGdlbmVyYXRlIC5zcGFuWFxuICBAaW5jbHVkZSBncmlkSW5wdXRTcGFuWCgkZ3JpZENvbHVtbnMsICRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKTtcbn1cbkBtaXhpbiBncmlkSW5wdXRTcGFuWCgkY29scywgJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29scyB7XG4gICAgaW5wdXQuc3BhbiN7JGl9LCB0ZXh0YXJlYS5zcGFuI3skaX0sIC51bmVkaXRhYmxlLWlucHV0LnNwYW4jeyRpfSB7IEBpbmNsdWRlIGdyaWRJbnB1dFNwYW4oJGksICRjb2x1bW5XaWR0aCwgJGd1dHRlcldpZHRoKTsgfVxuICB9XG59XG5AbWl4aW4gZ3JpZElucHV0U3BhbigkY29sdW1ucywgJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpIHtcbiAgd2lkdGg6ICgoJGNvbHVtbldpZHRoKSAqICRjb2x1bW5zKSArICgkZ3V0dGVyV2lkdGggKiAoJGNvbHVtbnMgLSAxKSkgLSAxMDtcbn1cblxuQG1peGluIG1ha2VGbHVpZENvbHVtbigkY29sdW1ucywgJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpIHtcbiAgLy8gVGhpcyBpc24ndCBwZXJmZWN0LCBidXQgaXQncyBiZXR0ZXIgdGhhbiBub3RoaW5nLlxuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWxlZnQ6ICRndXR0ZXJXaWR0aDtcbiAgQGluY2x1ZGUgZ3JpZEZsdWlkU3BhbigkY29sdW1ucywgJGNvbHVtbldpZHRoLCAkZ3V0dGVyV2lkdGgpO1xufSIsIkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaGFkb3dcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLnVzeWQtY2FyZCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cygycHgpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB0aW50KGJsYWNrLCA5MCUpO1xuXG5cdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDJweCAycHggcmdiYSgjMDAwLCAwLjEpKTtcblx0XHRib3JkZXItY29sb3I6IHRpbnQoYmxhY2ssIDYwJSk7XG5cdH1cblxuXHQmLnVzeWQtY2FyZC1hbHQge1xuXHRcdGJhY2tncm91bmQ6IHRpbnQoYmxhY2ssIDk4JSk7XG5cdH1cblxuXHQudXN5ZC1jYXJkLWJvZHkge1xuXHRcdHBhZGRpbmc6IDEuNWVtO1xuXG5cdFx0PiBwOmZpcnN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG5cbn1cbiIsIi8vIEZpbGxzIGluIGZvciBzb21lIG1pc3NpbmcgQ29tcGFzcyBmdW5jdGlvbnNcblxuQGZ1bmN0aW9uIGhlYWRpbmdzKCkge1xuXHRAcmV0dXJuIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDY7XG59XG5cbi8vIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9kb250LXVzZS1jb21wYXNzLWFueW1vcmUvXG4vLyBIYWQgdG8gZmxpcCB0aGUgY29sb3VyIGFyZ3VtZW50c1xuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuXHRAcmV0dXJuIG1peCh3aGl0ZSwgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL29wYWNpdHlcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLnVzeWQtc29jaWFsLWNhcmQtc2lnbmF0dXJlIHtcblx0Zm9udC1zaXplOiAxMnB4O1xufVxuXG4udXN5ZC1zb2NpYWwtY2FyZC1yZWFsLW5hbWUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi51c3lkLXNvY2lhbC1jYXJkLXNjcmVlbi1uYW1lIHtcblx0Y29sb3I6ICM2NjY7XG59XG5cbi51c3lkLXNvY2lhbC1jYXJkLW1lZGlhIHtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi51c3lkLXNvY2lhbC1jYXJkIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLXRvcDogMTc1cHg7XG5cblx0LnVzeWQtY2FyZC1ib2R5IHtcblx0XHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0fVxuXG5cdC51c3lkLXNvY2lhbC1jYXJkLWljb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDExNXB4O1xuXHRcdGxlZnQ6IDEwcHg7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRAaW5jbHVkZSBvcGFjaXR5KDEpO1xuXHRcdGZvbnQtc2l6ZTogN2VtO1xuXHR9XG5cblx0Ji51c3lkLXNvY2lhbC1jYXJkLWZhY2Vib29rIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjM2I1OTk4O1xuXG5cdFx0LnVzeWQtc29jaWFsLWNhcmQtaWNvbiB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0fVxuXHR9XG5cblx0Ji51c3lkLXNvY2lhbC1jYXJkLXR3aXR0ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICM1NWFjZWU7XG5cblx0XHQudXN5ZC1zb2NpYWwtY2FyZC1pY29uIHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHR9XG5cdH1cblxuXHQmLnVzeWQtc29jaWFsLWNhcmQteWFtbWVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMTE0LCAxOTgpO1xuXG5cdFx0LnVzeWQtc29jaWFsLWNhcmQtaWNvbiB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0fVxuXHR9XG5cblx0Ji51c3lkLXNvY2lhbC1jYXJkLWNvbXBhY3Qge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0XHQudXN5ZC1zb2NpYWwtY2FyZC1pY29uIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogLTE1cHg7XG5cdFx0XHRyaWdodDogMTBweDtcblx0XHRcdHRvcDogYXV0bztcblx0XHRcdGxlZnQ6IGF1dG87XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblx0XHRcdGZvbnQtc2l6ZTogMTBlbTtcblx0XHRcdEBpbmNsdWRlIG9wYWNpdHkoMC4xKTtcblx0XHRcdC8vIEBleHRlbmQgLnVzeWQtaWNvbi1sYXJnZTtcblx0XHR9XG5cblx0fVxuXG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIFByb3ZpZGVzIGNyb3NzLWJyb3dzZXIgQ1NTIG9wYWNpdHkuIFRha2VzIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSBhcyB0aGUgYXJndW1lbnQsIGUuZy4gMC41IGZvciA1MCUgb3BhY2l0eS5cbi8vXG4vLyAgICAgQHBhcmFtICRvcGFjaXR5XG4vLyAgICAgICAgIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSwgd2hlcmUgMCBpcyB0cmFuc3BhcmVudCBhbmQgMSBpcyBvcGFxdWUuXG5cbkBtaXhpbiBvcGFjaXR5KCRvcGFjaXR5KSB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNiBvciAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNyBvciAkbGVnYWN5LXN1cHBvcnQtZm9yLWllOCB7XG4gICAgZmlsdGVyOiB1bnF1b3RlKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9I3tyb3VuZCgkb3BhY2l0eSAqIDEwMCl9KVwiKTtcbiAgfVxuICBvcGFjaXR5OiAkb3BhY2l0eTtcbn1cblxuLy8gTWFrZSBhbiBlbGVtZW50IGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQuXG5AbWl4aW4gdHJhbnNwYXJlbnQgeyBAaW5jbHVkZSBvcGFjaXR5KDApOyB9XG5cbi8vIE1ha2UgYW4gZWxlbWVudCBjb21wbGV0ZWx5IG9wYXF1ZS5cbkBtaXhpbiBvcGFxdWUgeyBAaW5jbHVkZSBvcGFjaXR5KDEpOyB9XG4iLCIudXN5ZC1jbGFzcy1jb2RlcyB7XG5cdC51c3lkLWNsYXNzLWNvZGVzLWxvYWRpbmcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDBweDtcblx0XHRtYXJnaW4tdG9wOiAxLjVlbTtcblxuXHRcdHNwYW4ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDI1cHg7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtdWktY2xhc3MtY29kZXMtaGVscCB7XG5cblx0fVxufVxuXG4udXN5ZC1jbGFzcy1jb2Rlcy1mb3JtIHtcblx0bWFyZ2luLXRvcDogMjBweDtcblxuXHQudXN5ZC11aS1mb3JtLWxpbmUge1xuXHRcdG1hcmdpbjogMWVtIDAgMWVtIDA7XG5cdH1cbn1cblxuLnVzeWQtY2xhc3MtY29kZXMtcmVzdWx0cyB7XG5cdHdpZHRoOiAxMDAlO1xufSIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3OiB0cnVlO1xuJG1vZGVybml6ci1zdXBwb3J0OiB0cnVlO1xuXG4ubWNlLWNvbnRlbnQtYm9keSB7XG5cdG1hcmdpbjogMWVtO1xufVxuXG4udXN5ZC11aS1pbnB1dC1leHBhbmRhYmxlIHtcblx0QGluY2x1ZGUgaWYtbm90LXN1cHBvcnRlZChib3hzaXppbmcpIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogODkuNSU7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcblx0fVxufVxuXG4udXN5ZC1jbGFzc2lmaWVkcy1jYXJkIHtcblx0bWFyZ2luOiAwIDAgMTBweCAwO1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5AaW5jbHVkZSBtZWRpYS14bGFyZ2Uge1xuXHQudXN5ZC1jbGFzc2lmaWVkcy1jYXJkLWRlc2NyaXB0aW9uIHtcblx0XHR3aWR0aDogNjI4cHg7XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtbGFyZ2Uge1xuXHQudXN5ZC1jbGFzc2lmaWVkcy1jYXJkLWRlc2NyaXB0aW9uIHtcblx0XHR3aWR0aDogNDQ4cHg7XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtc21hbGwge1xuXHQudXN5ZC1jbGFzc2lmaWVkcy1jYXJkLWRlc2NyaXB0aW9uIHtcblx0XHR3aWR0aDogMjkxcHg7XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtc21hbGwtdXAge1xuXHQudXN5ZC1jbGFzc2lmaWVkcy1jYXJkLWRlc2NyaXB0aW9uIHtcblx0XHRmbG9hdDogbGVmdDtcblxuXHRcdC51c3lkLXRpdGxlIHtcblx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtY2xhc3NpZmllZHMtY2FyZC1kZXRhaWxzIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0d2lkdGg6IDIyMHB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhzbWFsbCB7XG5cdC51c3lkLWNsYXNzaWZpZWRzLWNhcmQtZGV0YWlscyB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cbn1cblxuLnVzeWQtY2xhc3NpZmllZHMtZmVlZHtcblx0bWFyZ2luLWJvdHRvbTogMjhweDtcbn1cblxuLnVzeWQtY2xhc3NpZmllZHMtbW9iaWxlLW1lbnUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vLyBGaXhtZTogbW92ZSB0byBjYXJkcy9saXN0aW5ncyBzdHlsZXNcbi51c3lkLWxpc3RpbmctaWNvbiB7XG5cdGNvbG9yOiAkbWVkaXVtLWdyZXk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi51c3lkLWNsYXNzaWZpZWRzLXVzZXItYWN0aW9ucyB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLnVzeWQtdWktaW5wdXQgaW5wdXQge1xuXHRtaW4td2lkdGg6IDMwZW07XG59XG5cbi51c3lkLW1lbnUge1xuXHQuYmFkZ2Uge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IGF1dG87XG5cdFx0Ym90dG9tOiBhdXRvO1xuXHRcdHJpZ2h0OiAxZW07XG5cdH1cbn1cblxuLnVzeWQtcm93LWFjdGlvbnMge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblxuXHQudXN5ZC1hY3Rpb24ge1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0bWFyZ2luLWxlZnQ6IDFlbTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHQudXN5ZC1pY29uIHtcblx0XHRcdG1hcmdpbi10b3A6IC0zcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLWNsYXNzaWZpZWRzLWV4aXN0aW5nLXBob3RvcyB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1hcmdpbi1ib3R0b206IDFlbTtcblxuXHQudXN5ZC1jbGFzc2lmaWVkcy1saXN0aW5nLXBob3RvIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IDFlbTtcblx0XHRoZWlnaHQ6IDI1MHB4O1xuXG5cdFx0aW1nIHtcblx0XHRcdG1hcmdpbjogMCAwIDAuMjVlbSAwO1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdH1cblxuXHRcdC51c3lkLWNsYXNzaWZpZWRzLXBob3RvLXJlbW92ZSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMS4yZW07XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLWNsYXNzaWZpZWRzLXBlbmRpbmctcGhvdG8tcmVtb3ZlIHtcblx0Zm9udC1zaXplOiAxLjJlbTtcbn1cblxuLnVzeWQtY2xhc3NpZmllZHMtcGhvdG8tcmVtb3ZlZDphZnRlciB7XG5cdGNvbnRlbnQ6ICdSZW1vdmVkJztcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnVzeWQtY2xhc3NpZmllZHMtaXRlbS1waG90b3Mge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHQudXN5ZC1jbGFzc2lmaWVkcy1pdGVtLXBob3RvIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW46IDAgMWVtIDFlbSAwO1xuXHRcdGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLXNlYXJjaC1mb3JtIHtcblx0bWFyZ2luOiAwIDAgMmVtO1xuXHRwYWRkaW5nOiAxMXB4IDExcHggMCAxMXB4O1xuXG5cdC51c3lkLXVpLWZvcm0tbGluZSB7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMXB4XG5cdH1cblxuXHQudXN5ZC11aS1pbnB1dCB7XG5cdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHR9XG5cblx0LnVzeWQtY29udHJvbHMge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0d2lkdGg6IDcuNWVtO1xuXHR9XG59XG5cbi8vIFdoZW4gdGhlIHVzZXIgcGFnZSBpcyBkaXNwbGF5aW5nIHRoZSB0YWJsZSB3aXRoIHRoZSBsaXN0IG9mIGl0ZW1zIGFzIGEgdGFibGUsIGZsb2F0IHRoZSBlZGl0IGNvbnRyb2xzXG5AaW5jbHVkZSBtZWRpYS1zbWFsbC11cCB7XG5cdC51c3lkLWNsYXNzaWZpZWRzLWl0ZW0tYWN0aW9ucyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhzbWFsbCB7XG5cdC51c3lkLWNsYXNzaWZpZWRzLW1vYmlsZS1tZW51IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tYm90dG9tOiAyZW07XG5cblx0XHQudXN5ZC1tZW51LWV4cGFuZGVyIHtcblx0XHRcdHdpZHRoOiA5MCU7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtdXNlci1saXN0aW5nLXRhYmxlIHtcblx0XHR0ciB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdFx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICRiZy1kYXJrLWNvbG91cjtcblxuXHRcdFx0JjpudGgtb2YtdHlwZShvZGQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigjMDAwMDAwLCA5NyUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRkIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHBhZGRpbmctbGVmdDogNDAlO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRib3JkZXItYm90dG9tOiAwcHg7XG5cblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdH1cblxuXHRcdFx0JjpudGgtb2YtdHlwZSgxKTpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdH1cblxuXHRcdFx0JjpudGgtb2YtdHlwZSgyKTpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiBcIlRpdGxlXCI7XG5cdFx0XHR9XG5cblx0XHRcdCY6bnRoLW9mLXR5cGUoMyk6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogXCJDYXRlZ29yeVwiO1xuXHRcdFx0fVxuXG5cdFx0XHQmOm50aC1vZi10eXBlKDQpOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiRXhwaXJ5IGRhdGVcIjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0aGVhZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdHRkOmZpcnN0LWNoaWxkIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGluc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4vLyBSaWNoIHRleHQgY29tcG9uZW50IGZvciBtb3N0IHJlZ3VsYXIgcGFnZXNcbi51c3lkLWJvZHktY29udGVudCB7XG5cdG1pbi1oZWlnaHQ6IDMwcHg7XG59XG5cbi51c3lkLWNvbnRlbnQtcGFnZSB7XG5cdC51c3lkLW1haW4ge1xuXHRcdGJvcmRlci10b3A6IDJweCBzb2xpZCAkYnJhbmQtcHJpbWFyeTtcblx0fVxufVxuXG4vKlxuR2VuZXJpYyBncm91cGluZyBvZiBjb250ZW50IGluIHZhcmlvdXMgY29udGV4dHMgKGNvbnRlbnQgYm9keSwgYXNpZGVzLCBldGMpXG5cbi51c3lkLXVpLWVtcGhhc2lzLW5vbmUgLSBOb3JtYWwgY29udGVudFxuLnVzeWQtdWktZW1waGFzaXMtbWlsZCAtIENvbnRlbnQgdG8gYmUgc2xpZ2h0bHkgZW1waGFzaXNlZFxuLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nIC0gQ29udGVudCB0byBiZSBzdHJvbmdseSBlbXBoYXNpc2VkXG5cblN0eWxlZ3VpZGUgMS4wXG4qL1xuLnVzeWQtdWktY29udGVudC1ncm91cCB7XG5cdGNsZWFyOiBib3RoO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRib3JkZXItdG9wOiAycHggc29saWQgJGJyYW5kLXByaW1hcnk7XG5cdHBhZGRpbmctdG9wOiAxOHB4O1xuXG5cdCYudXN5ZC11aS1zYW5zLWJvcmRlciB7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXJnaW46IDEwcHggMDtcblxuXHRcdCYudXN5ZC11aS1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHR9XG5cblx0XHQmLnVzeWQtdWktYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0fVxuXG5cdFx0Ji51c3lkLXVpLWFsaWduLWNlbnRlciB7XG5cdFx0XHRtYXJnaW46IDEwcHggYXV0bztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdCYudXN5ZC11aS1zYW5zLXdoaXRlLXNwYWNlIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG5cblx0Ji51c3lkLXVpLWVtcGhhc2lzLW5vbmUge1xuXHRcdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRcdEBleHRlbmQgLnVzeWQtdWktc2Fucy1ib3JkZXI7XG5cdH1cblxuXHQmLnVzeWQtdWktZW1waGFzaXMtbWlsZGVzdCwgJi51c3lkLXVpLWVtcGhhc2lzLW1pbGQsICYudXN5ZC11aS1lbXBoYXNpcy1zdHJvbmcsICYudXN5ZC11aS1lbXBoYXNpcy1zdHJvbmdlc3QsICYudXN5ZC11aS1lbXBoYXNpcy1ub25lIHtcblx0XHRwYWRkaW5nOiAxZW07XG5cdFx0Ym9yZGVyLXRvcDogbm9uZTtcblxuXHRcdCN7aGVhZGluZ3MoKX0ge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdH1cblxuXHQmLnVzeWQtdWktZW1waGFzaXMtc3Ryb25nZXN0IHtcblx0XHRhIHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblxuXHRcdFx0Jjp2aXNpdGVkLCAmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCY+IHtcblx0XHQje2hlYWRpbmdzKCl9IHtcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4udXN5ZC11aS10YWJsZS1jb250YWluZXIge1xuXHRvdmVyZmxvdzogYXV0bztcbn1cblxuXG4vLyB1c3lkLXVpLWVtYmVkZGVkLW1hcCBpcyBhIGxlZ2FjeSBuYW1lIGZvciBtYXBzLiB1c3lkLW1hcCBpcyBwcmVmZXJyZWQuXG4udXN5ZC11aS1lbWJlZGRlZC1tYXAsIC51c3lkLW1hcCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRpbnQoYmxhY2ssIDcwJSk7XG5cdG1hcmdpbjogMWVtIGF1dG8gMC41ZW07XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBJbnRlbmRlZCB0byBiZSB1c2VkIG9uIDxocj4gZWxlbWVudHMgdG8gZGlzcGxheSBzb2xpZCBibGFjaywgZnVsbCB3aWR0aCBkaXZpc2lvbnNcbi51c3lkLWNvbnRlbnQtZGl2aWRlciB7XG5cdGJvcmRlci1jb2xvcjogYmxhY2s7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi8vIE5PVEU6IHVwZGF0ZXMgdG8gYGNvbnRlbnQgZ3JvdXBgIGxheW91dCBjb21wb25lbnRcbi51c3lkLXVpLWNvbnRlbnQtZ3JvdXAge1xuICAgIC8vIG5vIHJlZCBsaW5lIGNsYXNzOlxuICAgIC8vICogdXN5ZC11aS1lbXBoYXNpcy1ub25lXG4gICAgLy8gKiB1c3lkLXVpLXNhbnMtYm9yZGVyXG5cbiAgICAvLyBiYWNrZ3JvdW5kIGNsYXNzZXM6XG4gICAgLy8gKiB1c3lkLWdyb3VwLWdlbmVyYWwgW0dlbmVyYWwgKG5vIGNvbG91ciksIGluY2x1ZGVzIG9yYW5nZSB0b3AgYm9yZGVyKV1cbiAgICAvLyAqIHVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyAmIGItYm94LS1kZWZhdWx0LXRvcCBbU3lzdGVtIGxvZ2lucyAoZ3JleSldXG4gICAgLy8gKiB1c3lkLWdyb3VwLXJlbGF0ZWQtbGlua3MgJiBiLWJveC0tZGVmYXVsdC10b3AgW1JlbGF0ZWQgbGlua3MgKGJlaWdlKV1cblxuXHQvLyBsYXlvdXQgY2xhc3Nlczpcblx0Ly8gKiB1c3lkLXhzbWFsbFxuXHQvLyAqIHVzeWQtc21hbGxcblx0Ly8gKiB1c3lkLWxhcmdlXG5cdC8vICogdXN5ZC14bGFyZ2VcblxuICAgICYudXN5ZC1ncm91cC1zeXN0ZW0tbG9naW5zLmItYm94LS1kZWZhdWx0LXRvcDpub3QoLnVzeWQtdWktc2Fucy1ib3JkZXIpLFxuICAgICYudXN5ZC1ncm91cC1yZWxhdGVkLWxpbmtzLmItYm94LS1kZWZhdWx0LXRvcDpub3QoLnVzeWQtdWktc2Fucy1ib3JkZXIpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMzZweDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWxpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udXN5ZC1ncmlkLXdyYXAge1xuXHQuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi16b25lLS0yICYge1xuXHRcdEBtZWRpYSAoJHRhYmxldC11cCkgeyBtYXJnaW4tbGVmdDogMjBweDsgfVxuXHR9XG5cbiAgICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi16b25lLS0zICYge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG59XG5cbi51c3lkLXNtYWxsIHtcblx0LmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMiAmIHtcblx0XHRAbWVkaWEgKCR0YWJsZXQtdXApIHsgd2lkdGg6IDU0MXB4OyB9XG4gICAgICAgIEBtZWRpYSAoJHNtYWxsLWRlc2t0b3AtdXApIHsgd2lkdGg6IDM0MHB4OyB9XG4gICAgICAgIEBtZWRpYSAoJGxhcmdlLWRlc2t0b3AtdXApIHsgd2lkdGg6IDQzMHB4OyB9XG5cdH1cbn1cblxuLnVzeWQteGxhcmdlIHtcbiAgICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi16b25lLS0yICYge1xuICAgICAgICAvLyBUT0RPOiBmaW5kIGEgYmV0dGVyIHdheSB0byBpbXBsZW1lbnQgYmVsb3dcbiAgICAgICAgQG1lZGlhICgkdGFibGV0LXVwKSB7IHdpZHRoOiA1MTFweDsgfVxuICAgICAgICBAbWVkaWEgKCRzbWFsbC1kZXNrdG9wLXVwKSB7IHdpZHRoOiA3MDBweDsgfVxuICAgICAgICBAbWVkaWEgKCRsYXJnZS1kZXNrdG9wLXVwKSB7IHdpZHRoOiA4ODBweDsgfVxuICAgIH1cbn1cblxuXG4udXN5ZC14bGFyZ2Uge1xuXHQmLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucy5iLWJveC0tZGVmYXVsdC10b3Age1xuXHRcdC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLXpvbmUtLTQgJiB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXG5cdFx0XHQucm93IHtcblx0XHRcdFx0QG1lZGlhICgkbW9iaWxlLWxhbmRzY2FwZS11cCkge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAtMjBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQudXN5ZC11aS1tb3JlLWxpbmsge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3NcIjtcblxuLnVzeWQtY2xpcHBpbmcge1xuXHRpbWcge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdG1hcmdpbi1ib3R0b206IDEzcHg7XG5cdFx0QGluY2x1ZGUgcmVzcG9uc2l2ZS1pbWFnZShibG9jayk7XG5cdH1cblxuXHQje2hlYWRpbmdzKCl9IHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdH1cbn1cblxuLnVzeWQtY2xpcHBpbmcudXN5ZC1jbGlwcGluZy1oZXJvIHtcblx0bWFyZ2luLWxlZnQ6IDA7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luLWJvdHRvbTogNDBweDtcblxuXHRAaW5jbHVkZSBtZWRpYS14c21hbGwge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQje2hlYWRpbmdzKCl9IHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhsYXJnZSB7XG5cdC51c3lkLWNsaXBwaW5nLWhlcm9pbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGRpcmVjdGlvbjogcnRsO1xuXHR9XG5cdC51c3lkLWNsaXBwaW5nLWhlcm9pbWcgaW1nIHtcblx0XHR3aWR0aDogYXV0bztcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdH1cbn1cblxuLnVzeWQtY2xpcHBpbmctY2F0ZWdvcnl7XG5cdGNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1hcmdpbjogMCAwIDZweCAwO1xufVxuLnVzeWQtY2xpcHBpbmctaGVybyBwLFxuLnVzeWQtY2xpcHBpbmctZGVzYyB7XG5cdG1hcmdpbjogMDtcbn1cblxuLy8gQ2xhc3MgdG8gd3JhcCBhIHJvdyBvZiBhcnRpY2xlc1xuLnVzeWQtY2xpcHBpbmctcm93IHtcblx0LnVzeWQtdWktY29udGVudC1ncm91cCB7XG5cdFx0Y2xlYXI6IG5vbmU7XG5cdH1cblxuXHQudXN5ZC1jbGlwcGluZyB7XG5cdFx0I3toZWFkaW5ncygpfSB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXHQvLyBGaXggcG9zaXRpb25pbmcgb2YgZWxlbWVudHMgaW4gYXV0aG9yIHZpZXdcblx0LmNvbXBvbmVudC1yZWZlcmVuY2V7XG5cdFx0ZmxvYXQ6IGxlZnRcblx0fVxuXG5cdC5yb3cge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcblx0XHQudXN5ZC1jYXJvdXNlbC1idXR0b24ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAzMyU7XG5cdFx0XHRoZWlnaHQ6IDY1cHg7XG5cdFx0XHR3aWR0aDogMzJweDtcblx0XHRcdGJhY2tncm91bmQ6ICNGRkY7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0fVxuXG5cdFx0LnVzeWQtY2Fyb3VzZWwtcHJldiB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwIDY1cHggNjVweCAwKTtcblx0XHRcdCY6OmJlZm9yZXtcblx0XHRcdFx0QGluY2x1ZGUgZm9udGVsbG8taWNvbignODkzJywgMTlweCk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdFx0XHR0b3A6IDIycHg7XG4gICAgXHRcdFx0bGVmdDogMnB4O1xuXHRcdFx0fVxuXHRcdH1cblx0XHQudXN5ZC1jYXJvdXNlbC1uZXh0IHtcblx0XHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNjVweCAwIDAgNjVweCk7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdCY6OmJlZm9yZXtcblx0XHRcdFx0QGluY2x1ZGUgZm9udGVsbG8taWNvbignODk0JywgMTlweCk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdFx0XHR0b3A6IDIzcHg7XG4gICAgXHRcdFx0cmlnaHQ6IDNweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLy8gTGluayBtYXJrZXIgY2xhc3NlcyBhcmUgdXNlZCB0byBhZGQgaWNvbnMgYWZ0ZXIgY2VydGFpbiBzcGVjaWFsIGtpbmRzIG9mIGxpbmtzXG5AbWl4aW4gbGluay1tYXJrZXIoJGljb24pIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tbGVmdDogM3B4O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdEBpbmNsdWRlIGZvbnRlbGxvLWljb24oJGljb24pO1xufVxuXG4udXN5ZC1leHRlcm5hbC1saW5rIHtcblx0QGluY2x1ZGUgYWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGxpbmstbWFya2VyKCRpY29uLWxpbmstZXh0KTtcblx0fVxufVxuXG4udXN5ZC1kb3dubG9hZC1saW5rIHtcblx0QGluY2x1ZGUgYWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGxpbmstbWFya2VyKCRpY29uLWRvd25sb2FkKTtcblx0fVxufVxuXG4udXN5ZC1lbWFpbC1saW5rIHtcblx0QGluY2x1ZGUgYWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGxpbmstbWFya2VyKCRpY29uLW1haWwtYWx0KTtcblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4udXN5ZC1zZWN0aW9uLXRpdGxlIHtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0bGluZS1oZWlnaHQ6IDEyNSU7XG5cblx0YSB7XG5cdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdCY6aG92ZXIsICY6dmlzaXRlZCB7XG5cdFx0XHRjb2xvcjogJGZvbnQtY29sb3VyLWRhcms7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLXNlY3Rpb24tYmFubmVyIHtcblx0Ly8gb3ZlcmZsb3c6IGhpZGRlbjtcblxuXHQudXN5ZC1zZWN0aW9uLXRpdGxlIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tdG9wOiAxcHg7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JvcmRlci1yYWRpdXNcIjtcblxuLnVzeWQtbmF2LXRvb2xzIHtcblx0bWFyZ2luOiAxOHB4IDEwcHggMCAwO1xuXHRmbG9hdDogbGVmdDtcblxuXHQvLyBFYWNoIGRyb3Bkb3duIGJ1dHRvbiBpcyByZXByZXNlbnRlZCBhcyBhIGxpc3QgaXRlbVxuXHQ+IHVsID4gbGkge1xuXHRcdEBpbmNsdWRlIGxheWVyLXBvcHVwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQvLyBUaGUgdHJpZ2dlciBpcyB0aGUgYWN0dWFsIGhvdmVyYWJsZSB0YXJnZXQgKHRhcHBhYmxlIG9uIG1vYmlsZSlcblx0LnVzeWQtbmF2LWJ1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmc6IDVweCA3cHggNXB4IDVweDtcblx0XHR3aWR0aDogMjVweDtcblx0XHQqcGFkZGluZzogNXB4IDVweCA4cHggNXB4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR6LWluZGV4OiAyMjA7XG5cblx0XHQqYm9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHQqYm9yZGVyLXdpZHRoOiAxcHggMXB4IDAgMXB4O1xuXHRcdCpib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG5cblx0Ly8gSG92ZXJpbmcvdGFwcGluZyB0aGUgZHJvcGRvd24gdHJpZ2dlciBtYWtlcyB0aGUgZHJvcGRvd24gdmlzaWJsZVxuXHQ+IHVsID4gbGkudXN5ZC1zaG93IC51c3lkLW5hdi1idXR0b24sID4gdWwgPiBsaTpob3ZlciAudXN5ZC1uYXYtYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHQqYm9yZGVyLWNvbG9yOiBsaWdodGVuKGJsYWNrLCA5MCUpO1xuXHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblxuXHRcdCsgLnVzeWQtZHJvcGRvd24tY29udGVudCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdCp6LWluZGV4OiAyMDA7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiA1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdHotaW5kZXg6IDIzMDtcblx0XHR9XG5cdH1cblxuXHQudXN5ZC1kcm9wZG93bi1jb250ZW50IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdEBpbmNsdWRlIGJveC1zaGFkb3cobGlnaHRlbihibGFjaywgMzAlKSAwIDAgNXB4KTtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDEwMCU7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0cGFkZGluZzogNXB4IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRcdG1pbi13aWR0aDogMjAwcHg7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0ei1pbmRleDogMjEwO1xuXG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0Knpvb206IDE7XG5cblx0XHRcdCYudXN5ZC1kaXZpZGVyIHtcblx0XHRcdFx0bWFyZ2luOiA1cHggMDtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG5cblx0XHRcdFx0JjphZnRlciB7XG5cdFx0XHRcdFx0Y29udGVudDogbm9uZTtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVzeWQtdWktYWN0aXZlLW1lbnUtaXRlbSBhIHtcblx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRsaW5rLWNvbG91cjtcblxuXHRcdFx0Jjp2aXNpdGVkIHtcblx0XHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Y29sb3I6ICRsaW5rLWNvbG91cjtcblx0XHRcdHBhZGRpbmc6IDVweCAxMHB4O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogYXV0bztcblxuXHRcdFx0Jjp2aXNpdGVkIHtcblx0XHRcdFx0Y29sb3I6ICRsaW5rLWNvbG91cjtcblx0XHRcdFx0cGFkZGluZzogNXB4IDEwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1jb2xvdXI7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0fVxuXHR9XG5cblx0Ly8gU3R5bGVzIGZvciB0aGUgaW50cmFuZXQgZHJvcGRvd24gZmlsdGVyXG5cdGZvcm0ge1xuXHRcdHBhZGRpbmc6IDVweCAxMHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG5cblx0aW5wdXQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdCp3aWR0aDogMTY2cHg7XG5cdFx0QGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcblx0fVxuXG5cdC51c3lkLWRyb3Bkb3duLWZpbHRlciB7XG5cdFx0LnVzeWQtbmF2LWJ1dHRvbi1jbGVhciB7XG5cdFx0XHRwYWRkaW5nOiAwIDRweDtcblx0XHRcdCpwYWRkaW5nOiAwIDJweCAwIDRweDtcblx0XHRcdGhlaWdodDogMThweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxOHB4O1xuXHRcdFx0Y29sb3I6IHdoaXRlO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA5cHg7XG5cdFx0XHQqdG9wOiAxMnB4O1xuXHRcdFx0cmlnaHQ6IDE0cHg7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQudXN5ZC1kaXZpZGVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDFweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IDVweCAwO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihibGFjaywgOTAlKTtcblx0XHRmb250LXNpemU6IDA7XG5cdFx0bGluZS1oZWlnaHQ6IDA7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oYmxhY2ssIDkwJSk7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtdGV4dC1vbmx5IHtcblx0XHRwYWRkaW5nOiA1cHggMTBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC5pY29uLXNvcnQtZG93biB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogNHB4O1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGNvbG9yOiBsaWdodGVuKGJsYWNrLCA1MCUpO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0aDIge1xuXHRcdEBleHRlbmQgLnVzeWQtdGV4dC1vbmx5O1xuXHRcdG1hcmdpbjogMDtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cblxuXHQudXN5ZC1pbnRyYW5ldHMtZHJvcGRvd24ge1xuXHRcdC5pY29uLW9rIHtcblx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblx0XHR9XG5cdFx0Lmljb24taG9tZSB7XG5cdFx0XHRjb2xvcjogJGZvbnQtY29sb3VyLWRhcms7XG5cdFx0fVxuXG5cdFx0YTpob3ZlciB7XG5cdFx0XHQuaWNvbi1vayB7XG5cdFx0XHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRcdH1cblx0XHRcdC5pY29uLWhvbWUge1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8vIElFOCBIYWNrIHRvIGNvbXBlbnNhdGUgZm9yIGxhY2sgb2YgZHJvcHNoYWRvd1xuQG1lZGlhIFxcMHNjcmVlbiB7XG5cdC51c3lkLWRyb3Bkb3duLWNvbnRlbnQge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oYmxhY2ssIDkwJSk7XG5cdH1cblxuXHQudXN5ZC1kcm9wZG93biB7XG5cblx0XHRpbnB1dCB7XG5cdFx0XHRoZWlnaHQ6IDI3cHg7XG5cdFx0fVxuXG5cdFx0PiB1bCA+IGxpIHtcblxuXHRcdFx0LnVzeWQtbmF2LWJ1dHRvbiB7XG5cdFx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdC51c3lkLW5hdi1idXR0b24ge1xuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogbGlnaHRlbihibGFjaywgOTAlKTtcblxuXHRcdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Ym90dG9tOiAtMXB4O1xuXHRcdFx0XHRcdFx0bGVmdDogMHB4O1xuXHRcdFx0XHRcdFx0cmlnaHQ6IDBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtbmF2LXRvb2xzIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMTdweDtcblx0XHRyaWdodDogMTBweDtcblxuXHRcdD4gdWwge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG5cdFx0PiB1bCA+IGxpIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMXB4O1xuXHRcdH1cblxuXHRcdC51c3lkLW5hdi1idXR0b24ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihibGFjaywgMjYlKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdFx0XHQmLnVzeWQtbmF2LXNlYXJjaC10b2dnbGUge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVzeWQtZHJvcGRvd24tY29udGVudCB7XG5cdFx0XHRsaSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdC51c3lkLWRpdmlkZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKGJsYWNrLCA5MCUpO1xuXHRcdFx0fVxuXHRcdH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIENoYW5nZSB0aGUgYm94IG1vZGVsIGZvciBNb3ppbGxhLCBXZWJraXQsIElFOCBhbmQgdGhlIGZ1dHVyZVxuLy9cbi8vIEBwYXJhbSAkYnNcbi8vICAgWyBjb250ZW50LWJveCB8IGJvcmRlci1ib3ggXVxuXG5AbWl4aW4gYm94LXNpemluZygkYnMpIHtcbiAgJGJzOiB1bnF1b3RlKCRicyk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtc2l6aW5nLCAkYnMsXG4gICAgLW1veiwgLXdlYmtpdCwgbm90KC1vKSwgbm90KC1tcyksIG5vdCgta2h0bWwpLCBvZmZpY2lhbFxuICApO1xufVxuIiwiQGltcG9ydCBcIi4uL2NvbG9yc1wiO1xuXG4udXN5ZC11aS1ub3RlIHtcblx0QGV4dGVuZCAudXN5ZC11aS1xdWlldDtcbn1cblxuLnVzeWQtdWktbG91ZCB7XG5cdGZvbnQtc2l6ZTogMS40ZW07XG59XG5cbi51c3lkLXVpLXF1aWV0IHtcblx0Ly8gYmxhY2sgd2l0aCA1NCUgb3BhY2l0eSBwYXNzZXMgV0NBRyAyIEFBIGZvciBzbWFsbCB0ZXh0XG5cdC8vIGJsYWNrIHdpdGggNDIlIG9wYWNpdHkgcGFzc2VzIFdDQUcgMiBBQSBmb3IgbGFyZ2UgdGV4dCAoPj0gMThwdCB8fCA+PSAxNHB0aCBib2xkKVxuXHRjb2xvcjogdGludChibGFjaywgNDYlKTsgLy8gNTQlIG9wYWNpdGlzZWQgYmxhY2sgaW4gcGhvdG9zaG9wXG59XG5cbi51c3lkLXVpLWRhdGUge1xuXHRAZXh0ZW5kIC51c3lkLXVpLXF1aWV0O1xufVxuXG4udXN5ZC11aS1oaWdobGlnaHQge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmMjAwO1xuXHRmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG59XG5cbi8vIEhlbHAgdGV4dCBmb3IgZm9ybXMsIHNlY29uZGFyeSBpbmZvcm1hdGlvbiBvciBzdWJ0aXRsZXNcbi51c3lkLXN1cHBvcnQtdGV4dCB7XG5cdGNvbG9yOiAkc3VwcG9ydC1mb250LWNvbG91cjtcblxuXHRhIHtcblx0XHRjb2xvcjogJHN1cHBvcnQtZm9udC1jb2xvdXI7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuJGJnLXJlbGF0ZWQtbGlua3M6ICNmZWVmY2U7XG5cbi51c3lkLWdyb3VwLXJlbGF0ZWQtbGlua3Mge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmctcmVsYXRlZC1saW5rcztcblx0cGFkZGluZzogMTBweDtcblxuXHQudXN5ZC11aS1tb3JlLWxpbmsgYSB7XG5cdFx0YmFja2dyb3VuZDogJGJnLXJlbGF0ZWQtbGlua3M7XG5cdH1cblxuXHQuY29udGVudCB7XG5cdFx0Zm9udC1zaXplOiAxMnB4OyAvL0ZJWE1FOiB0aGlzIGlzIGEgZml4IHRvIHRleHQgd3JhcCB3aXRoIGRpdiB0YWcsIG5vdCBwIHRhZywgdGhlIGZvbnQgc2l6ZSBpbiBwIHRhZyBpcyAxMnB4XG5cdH1cbn1cblxuLnVzeWQtZ3JvdXAtZ2VuZXJhbCB7XG5cdGJvcmRlci10b3A6IDJweCAkYnJhbmQtcHJpbWFyeSBzb2xpZDtcblx0cGFkZGluZy10b3A6IDE4cHg7XG5cblx0LmNvbnRlbnQge1xuXHRcdGZvbnQtc2l6ZTogMTJweDsgLy9GSVhNRTogdGhpcyBpcyBhIGZpeCB0byB0ZXh0IHdyYXAgd2l0aCBkaXYgdGFnLCBpbnN0ZWFkIG9mIHAgdGFnLlxuXHR9XG5cblxufVxuXG5cbi51c3lkLWdyb3VwLXRpdGxlIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuLnVzeWQtZ3JvdXAtc3lzdGVtLWxvZ2lucyB7XG5cdGJhY2tncm91bmQ6ICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0cGFkZGluZzogMTVweCAxMHB4IDEwcHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQudXN5ZC11aS1tb3JlLWxpbmsge1xuXHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbWFsbC1taW4pIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IC0xMHB4O1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0YmFja2dyb3VuZDogJGJyYW5kLWNvbG91ci1saWdodC1ncmV5O1xuXHRcdH1cblx0fVxuXG5cdCN7aGVhZGluZ3MoKX0ge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtc21hbGwtZG93biB7XG5cdC51c3lkLWdyb3VwLXN5c3RlbS1sb2dpbnMge1xuXHRcdG1pbi1oZWlnaHQ6IDA7XG5cdFx0cGFkZGluZzogMTVweCAxMHB4IDMwcHg7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaGFkb3dcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9pbWFnZXNcIjtcblxuLnVzeWQtZmVlZGJhY2sge1xuXHRib3JkZXItc3R5bGU6IGRvdHRlZDtcblx0Ym9yZGVyLWNvbG9yOiAkbGlnaHQtZ3JleTtcblx0Ym9yZGVyLXdpZHRoOiAxcHggMCAxcHggMDtcbi8vXHRtYXgtd2lkdGg6ICgkY29sdW1uLXdpZHRoICogNikgKyAoJGdyaWQtcGFkZGluZyAqIDYpO1xuLy9cdCp3aWR0aDogKCRjb2x1bW4td2lkdGggKiA2KSArICgkZ3JpZC1wYWRkaW5nICogNik7XG59XG5zdHJvbmd7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnVzeWQtZmVlZGJhY2stZm9ybSB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cblx0bGVnZW5kIHtcblx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdHRvcDogMTBweDtcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEwMCU7XG5cdH1cblxufVxuXG4udXN5ZC1mZWVkYmFjay1tc2cge1xuXHQvL0BpbmNsdWRlIHNwYW4tY29sdW1ucyg0LCA2KTtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHdpZHRoOiAxMDAlO1xuXHRsZWdlbmQudXN5ZC11aS1tZXNzYWdle1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRjb2xvcjogIzAwMDtcblx0XHRsaW5lLWhlaWdodDogMjRweDtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdH1cbn1cbi51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uIHtcblx0LnVzeWQtZmVlZGJhY2stdXNlZnVsLWJ0bnMge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGlucHV0IHtcblx0XHRcdGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IFxuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cblx0XHRsYWJlbCB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRsZWZ0OiAzMHB4O1xuXHRcdFx0ei1pbmRleDogLTEwO1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG59XG4udXN5ZC1mZWVkYmFjay1xdWVzdGlvbiB7XG5cdHBhZGRpbmc6IDEwcHggMDtcblxuXHRsYWJlbCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdG1hcmdpbjogN3B4IDEwcHggNXB4IDA7XG5cdH1cblxuXHQudXN5ZC11aS1idXR0b24ge1xuXHRcdEBpbmNsdWRlIGJ1dHRvbigkYnJhbmQtcHJpbWFyeSwgd2hpdGUpO1xuXHRcdGZvbnQtc2l6ZTogMS4xNWVtO1xuXHRcdG1pbi13aWR0aDogNS41ZW07XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdEBpbmNsdWRlIGJ1dHRvbigkYnJhbmQtcHJpbWFyeSwgd2hpdGUsIHRydWUpO1xuXHRcdH1cblxuXHRcdCYudXN5ZC11aS1zZWxlY3RlZCwgJjpob3Zlci51c3lkLXVpLXNlbGVjdGVkIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9pY29ucy9jaGVja2JveC1hbHBoYS5wbmcpO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDIwJSBjZW50ZXI7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDMwcHg7XG5cdFx0fVxuXHR9XG59XG4uZnJtLWRvLW5vdC1zdWJtaXR7XG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiAtbW96LWJveDtcblx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0ZGlzcGxheTogZmxleDtcblx0LXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xuXHQtbW96LWJveC1vcmllbnQ6IGhvcml6b250YWw7XG5cdC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xuXHQtbW96LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcblx0LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogcm93O1xuXHQtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0bGFiZWx7XG5cdFx0cGFkZGluZy1sZWZ0OiA1cHg7XG5cdH1cblxufVxuI2ZybS1jb250YWN0e1xuXHRwYWRkaW5nLWxlZnQ6IDVweDtcbn1cbi51c3lkLWZlZWRiYWNrLWRldGFpbCB7XG5cdHBhZGRpbmc6IDEwcHg7XG4vL1x0cGFkZGluZy10b3A6IDM1cHg7XG5cdGJhY2tncm91bmQ6IGxpZ2h0ZW4oYmxhY2ssIDk3JSk7XG5cblx0LnVzeWQtdWktc3VwcG9ydGluZy10ZXh0IHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cblx0LnVzeWQtdWktZm9ybS1saW5lIHtcblx0XHR3aWR0aDogOTAlO1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG5cdGlucHV0W3R5cGU9ZW1haWxdLCBpbnB1dFt0eXBlPXRleHRdLCB0ZXh0YXJlYSB7XG5cdFx0QGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuXG4udXN5ZC1mZWVkYmFjay1mcmFtZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR3aWR0aDogMXB4O1xuXHRoZWlnaHQ6IDFweDtcblx0bGVmdCA6IC05OTk7XG59XG5cbi8vIEZJWE1FOiBNT1ZFIFRIRVNFXG4udXN5ZC11aS1tZXNzYWdlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IDZweCAxMHB4IDAgMDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm8tcmVwZWF0IGxlZnQgY2VudGVyO1xufVxuXG4udXN5ZC11aS1tZXNzYWdlLWxvYWRpbmcge1xuXHRAZXh0ZW5kIC51c3lkLXVpLW1lc3NhZ2U7XG5cdG1hcmdpbi1sZWZ0OiAxNXB4ICFpbXBvcnRhbnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQudXN5ZC11aS1zcGlubmVyIHtcblx0XHR0b3A6IDdweCAhaW1wb3J0YW50O1xuXHRcdGxlZnQ6IC0xNXB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLnVzeWQtdWktbWVzc2FnZS1zdWNjZXNzIHtcblx0QGV4dGVuZCAudXN5ZC11aS1tZXNzYWdlO1xuXHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9pY29ucy9jaGVjay5wbmcpO1xufVxuXG4udXN5ZC11aS1tZXNzYWdlLWVycm9yIHtcblx0QGV4dGVuZCAudXN5ZC11aS1tZXNzYWdlO1xuXHRwYWRkaW5nLWxlZnQ6IDI1cHg7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9pY29ucy9hbGVydC5wbmcpO1xufVxuXG4udXN5ZC1mZWVkYmFjay1hY3Rpb25zIHtcblx0bWFyZ2luLXRvcDogMjBweDtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdGxhYmVse1xuXHRcdGRpc3BsYXk6IG5vbmVcdDtcblx0fVxufVxuXG5cbkBpbmNsdWRlIGhpLWRwaSB7XG5cblx0LnVzeWQtZmVlZGJhY2stZm9ybSAudXN5ZC1mZWVkYmFjay1xdWVzdGlvbiAudXN5ZC11aS1idXR0b24udXN5ZC11aS1zZWxlY3RlZCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlLXBhdGh9L2ljb25zL2NoZWNrYm94LWFscGhhQDJ4LnBuZyk7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG5cdH1cblxuXHQudXN5ZC1mZWVkYmFjayB7XG5cblx0XHQudXN5ZC11aS1tZXNzYWdlLXN1Y2Nlc3Mge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlLXBhdGh9L2ljb25zL2NoZWNrQDJ4LnBuZyk7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcblx0XHR9XG5cblx0XHQudXN5ZC11aS1tZXNzYWdlLWVycm9yIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9pY29ucy9hbGVydEAyeC5wbmcpO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG5cdFx0fVxuXG5cdH1cblxufVxuXG4udXN5ZC1mZWVkYmFjay1xdWVzdGlvbiB7XG5cdC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlICsgJiB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG59XG5cbi51c3lkLXVpLW1lc3NhZ2Uge1xuXHQuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSArIC51c3lkLWZlZWRiYWNrLXF1ZXN0aW9uICYge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcbkBpbXBvcnQgXCIuLi91dGlsaXRpZXMvZ2VuZXJhbC9oYWNrc1wiO1xuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBiYWNrZ3JvdW5kKFxuICAkYmFja2dyb3VuZC0xLFxuICAkYmFja2dyb3VuZC0yOiBmYWxzZSxcbiAgJGJhY2tncm91bmQtMzogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTQ6IGZhbHNlLFxuICAkYmFja2dyb3VuZC01OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNjogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTc6IGZhbHNlLFxuICAkYmFja2dyb3VuZC04OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtOTogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTEwOiBmYWxzZVxuKSB7XG4gICRiYWNrZ3JvdW5kczogY29tcGFjdCgkYmFja2dyb3VuZC0xLCAkYmFja2dyb3VuZC0yLCAkYmFja2dyb3VuZC0zLCAkYmFja2dyb3VuZC00LCAkYmFja2dyb3VuZC01LFxuICAgICAgICAgICAgICAgICAgICAgICAgJGJhY2tncm91bmQtNiwgJGJhY2tncm91bmQtNywgJGJhY2tncm91bmQtOCwgJGJhY2tncm91bmQtOSwgJGJhY2tncm91bmQtMTApO1xuICAkbXVsdC1iZ3M6IC1jb21wYXNzLWxpc3Qtc2l6ZSgkYmFja2dyb3VuZHMpID4gMTtcbiAgJGFkZC1waWUtYmc6IHByZWZpeGVkKC1waWUsICAgJGJhY2tncm91bmRzKSBvciAkbXVsdC1iZ3M7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICBhbmQgcHJlZml4ZWQoLXN2ZywgICAgJGJhY2tncm91bmRzKSB7ICAgICAgYmFja2dyb3VuZDogICAgLXN2ZygkYmFja2dyb3VuZHMpOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgICAgJGJhY2tncm91bmRzKSB7ICAgICAgYmFja2dyb3VuZDogICAgLW93ZygkYmFja2dyb3VuZHMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICBhbmQgcHJlZml4ZWQoLXdlYmtpdCwgJGJhY2tncm91bmRzKSB7ICAgICAgYmFja2dyb3VuZDogLXdlYmtpdCgkYmFja2dyb3VuZHMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICBhbmQgcHJlZml4ZWQoLW1veiwgICAgJGJhY2tncm91bmRzKSB7ICAgICAgYmFja2dyb3VuZDogICAgLW1veigkYmFja2dyb3VuZHMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICBhbmQgcHJlZml4ZWQoLW8sICAgICAgJGJhY2tncm91bmRzKSB7ICAgICAgYmFja2dyb3VuZDogICAgICAtbygkYmFja2dyb3VuZHMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXBpZSAgICAgICAgICBhbmQgJGFkZC1waWUtYmcgICAgICAgICAgICAgICAgICAgICB7IC1waWUtYmFja2dyb3VuZDogICAgLXBpZSgkYmFja2dyb3VuZHMpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogICAgICAgICAkYmFja2dyb3VuZHMgO1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC13aXRoLWNzczItZmFsbGJhY2soXG4gICRiYWNrZ3JvdW5kLTEsXG4gICRiYWNrZ3JvdW5kLTI6IGZhbHNlLFxuICAkYmFja2dyb3VuZC0zOiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNDogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTU6IGZhbHNlLFxuICAkYmFja2dyb3VuZC02OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtNzogZmFsc2UsXG4gICRiYWNrZ3JvdW5kLTg6IGZhbHNlLFxuICAkYmFja2dyb3VuZC05OiBmYWxzZSxcbiAgJGJhY2tncm91bmQtMTA6IGZhbHNlXG4pIHtcbiAgJGJhY2tncm91bmRzOiBjb21wYWN0KCRiYWNrZ3JvdW5kLTEsICRiYWNrZ3JvdW5kLTIsICRiYWNrZ3JvdW5kLTMsICRiYWNrZ3JvdW5kLTQsICRiYWNrZ3JvdW5kLTUsXG4gICAgICAgICAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC02LCAkYmFja2dyb3VuZC03LCAkYmFja2dyb3VuZC04LCAkYmFja2dyb3VuZC05LCAkYmFja2dyb3VuZC0xMCk7XG4gICRtdWx0LWJnczogLWNvbXBhc3MtbGlzdC1zaXplKCRiYWNrZ3JvdW5kcykgPiAxO1xuICAkc2ltcGxlLWJhY2tncm91bmQ6IGlmKCRtdWx0LWJncyBvciBwcmVmaXhlZCgtY3NzMiwgJGJhY2tncm91bmRzKSwgLWNzczIoLWNvbXBhc3MtbnRoKCRiYWNrZ3JvdW5kcywgbGFzdCkpLCBmYWxzZSk7XG4gIEBpZiBub3QoYmxhbmsoJHNpbXBsZS1iYWNrZ3JvdW5kKSkgeyBiYWNrZ3JvdW5kOiAkc2ltcGxlLWJhY2tncm91bmQ7IH1cbiAgQGluY2x1ZGUgYmFja2dyb3VuZCgkYmFja2dyb3VuZC0xLCAkYmFja2dyb3VuZC0yLCAkYmFja2dyb3VuZC0zLCAkYmFja2dyb3VuZC00LCAkYmFja2dyb3VuZC01LFxuICAgICAgICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLTYsICRiYWNrZ3JvdW5kLTcsICRiYWNrZ3JvdW5kLTgsICRiYWNrZ3JvdW5kLTksICRiYWNrZ3JvdW5kLTEwKTtcbn1cblxuXG4vLyBCYWNrZ3JvdW5kIGltYWdlIHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKFxuICAkaW1hZ2UtMSxcbiAgJGltYWdlLTI6IGZhbHNlLFxuICAkaW1hZ2UtMzogZmFsc2UsXG4gICRpbWFnZS00OiBmYWxzZSxcbiAgJGltYWdlLTU6IGZhbHNlLFxuICAkaW1hZ2UtNjogZmFsc2UsXG4gICRpbWFnZS03OiBmYWxzZSxcbiAgJGltYWdlLTg6IGZhbHNlLFxuICAkaW1hZ2UtOTogZmFsc2UsXG4gICRpbWFnZS0xMDogZmFsc2Vcbikge1xuICAkaW1hZ2VzOiBjb21wYWN0KCRpbWFnZS0xLCAkaW1hZ2UtMiwgJGltYWdlLTMsICRpbWFnZS00LCAkaW1hZ2UtNSwgJGltYWdlLTYsICRpbWFnZS03LCAkaW1hZ2UtOCwgJGltYWdlLTksICRpbWFnZS0xMCk7XG4gICRhZGQtcGllLWJnOiBwcmVmaXhlZCgtcGllLCAgICRpbWFnZXMpIG9yIC1jb21wYXNzLWxpc3Qtc2l6ZSgkaW1hZ2VzKSA+IDE7XG5cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIGFuZCBwcmVmaXhlZCgtc3ZnLCAgICAkaW1hZ2VzKSB7IGJhY2tncm91bmQtaW1hZ2U6ICAgIC1zdmcoJGltYWdlcyk7IGJhY2tncm91bmQtc2l6ZTogMTAwJTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICAgICRpbWFnZXMpIHsgYmFja2dyb3VuZC1pbWFnZTogICAgLW93ZygkaW1hZ2VzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgYW5kIHByZWZpeGVkKC13ZWJraXQsICRpbWFnZXMpIHsgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdCgkaW1hZ2VzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgYW5kIHByZWZpeGVkKC1tb3osICAgICRpbWFnZXMpIHsgYmFja2dyb3VuZC1pbWFnZTogICAgLW1veigkaW1hZ2VzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgYW5kIHByZWZpeGVkKC1vLCAgICAgICRpbWFnZXMpIHsgYmFja2dyb3VuZC1pbWFnZTogICAgICAtbygkaW1hZ2VzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1waWUgICAgICAgICAgYW5kICRhZGQtcGllLWJnICAgICAgICAgICAgICAgIHsgQHdhcm4gXCJQSUUgZG9lcyBub3Qgc3VwcG9ydCBiYWNrZ3JvdW5kLWltYWdlLiBVc2UgQGluY2x1ZGUgYmFja2dyb3VuZCgjeyRpbWFnZXN9KSBpbnN0ZWFkLlwiIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgICAgJGltYWdlcyA7XG59XG5cbi8vIEVtaXQgYSBJRS1TcGVjaWZpYyBmaWx0ZXJzIHRoYXQgcmVuZGVycyBhIHNpbXBsZSBsaW5lYXIgZ3JhZGllbnQuXG4vLyBGb3IgdXNlIGluIElFIDYgLSA4LiBCZXN0IHByYWN0aWNlIHdvdWxkIGhhdmUgeW91IGFwcGx5IHRoaXMgdmlhIGFcbi8vIGNvbmRpdGlvbmFsIElFIHN0eWxlc2hlZXQsIGJ1dCBpZiB5b3UgbXVzdCwgeW91IHNob3VsZCBwbGFjZSB0aGlzIGJlZm9yZVxuLy8gYW55IGJhY2tncm91bmQtaW1hZ2UgcHJvcGVydGllcyB0aGF0IHlvdSBoYXZlIHNwZWNpZmllZC5cbi8vXG4vLyBGb3IgdGhlIGAkb3JpZW50YXRpb25gIHBhcmFtZXRlciwgeW91IGNhbiBwYXNzIGB2ZXJ0aWNhbGAgb3IgYGhvcml6b250YWxgLlxuQG1peGluIGZpbHRlci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRlbmQtY29sb3IsICRvcmllbnRhdGlvbjogdmVydGljYWwpIHtcbiAgQGluY2x1ZGUgaGFzLWxheW91dDtcbiAgJGdyYWRpZW50LXR5cGU6IGlmKCRvcmllbnRhdGlvbiA9PSB2ZXJ0aWNhbCwgMCwgMSk7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNiBvciAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNyBvciAkbGVnYWN5LXN1cHBvcnQtZm9yLWllOCB7XG4gICAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZ3JhZGllbnRUeXBlPSN7JGdyYWRpZW50LXR5cGV9LCBzdGFydENvbG9yc3RyPScje2llLWhleC1zdHIoJHN0YXJ0LWNvbG9yKX0nLCBlbmRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRlbmQtY29sb3IpfScpO1xuICB9XG59XG5cblxuLy8gQm9yZGVyIGltYWdlIHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgcHJvcGVydGllcyBhbmQgdmFsdWVzLlxuQG1peGluIGJvcmRlci1pbWFnZSgkdmFsdWUpIHtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIHsgICAgLW1vei1ib3JkZXItaW1hZ2U6ICAgIC1tb3oocmVqZWN0KC1jb21wYXNzLWxpc3QoJHZhbHVlKSwgZmlsbCkpOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyB7IC13ZWJraXQtYm9yZGVyLWltYWdlOiAgICAtb3dnKHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgeyAtd2Via2l0LWJvcmRlci1pbWFnZTogLXdlYmtpdChyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIHsgICAgICAtby1ib3JkZXItaW1hZ2U6ICAgICAgLW8ocmVqZWN0KC1jb21wYXNzLWxpc3QoJHZhbHVlKSwgZmlsbCkpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICB7ICAgICAgICAgYm9yZGVyLWltYWdlOiAgICAtc3ZnKHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1pbWFnZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWU7XG59XG5cbi8vIExpc3Qgc3R5bGUgaW1hZ2UgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGxpc3Qtc3R5bGUtaW1hZ2UoJGltYWdlKSB7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICAgICBhbmQgcHJlZml4ZWQoLW1veiwgICAgJGltYWdlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgIC1tb3ooJGltYWdlKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICAgICRpbWFnZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtb3dnKCRpbWFnZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkaW1hZ2UpIHsgbGlzdC1zdHlsZS1pbWFnZTogLXdlYmtpdCgkaW1hZ2UpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhICAgICAgICBhbmQgcHJlZml4ZWQoLW8sICAgICAgJGltYWdlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgICAgLW8oJGltYWdlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgICAgICAgICAgYW5kIHByZWZpeGVkKC1zdmcsICAgICRpbWFnZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAgICAtc3ZnKCRpbWFnZSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogICAgICAgICAkaW1hZ2UgO1xufVxuXG4vLyBMaXN0IHN0eWxlIHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBsaXN0LXN0eWxlKCR2YWx1ZSkge1xuICAkdmFsdWU6IC1jb21wYXNzLWxpc3QoJHZhbHVlKTtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIGFuZCBwcmVmaXhlZCgtbW96LCAgICAkdmFsdWUpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgLW1veigkdmFsdWUpOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgICAgJHZhbHVlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgIC1vd2coJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgICAgYW5kIHByZWZpeGVkKC13ZWJraXQsICR2YWx1ZSkgeyBsaXN0LXN0eWxlLWltYWdlOiAtd2Via2l0KCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIGFuZCBwcmVmaXhlZCgtbywgICAgICAkdmFsdWUpIHsgbGlzdC1zdHlsZS1pbWFnZTogICAgICAtbygkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyAgICAgICAgICBhbmQgcHJlZml4ZWQoLXN2ZywgICAgJHZhbHVlKSB7IGxpc3Qtc3R5bGUtaW1hZ2U6ICAgIC1zdmcoJHZhbHVlKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLWltYWdlOiAgICAgICAgICR2YWx1ZSA7XG59XG5cbi8vIGNvbnRlbnQgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGNvbnRlbnQoJHZhbHVlKSB7XG4gICR2YWx1ZTogLWNvbXBhc3MtbGlzdCgkdmFsdWUpO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhICAgICAgYW5kIHByZWZpeGVkKC1tb3osICAgICR2YWx1ZSkgeyBjb250ZW50OiAgICAtbW96KCR2YWx1ZSk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAgICAkdmFsdWUpIHsgY29udGVudDogICAgLW93ZygkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCAgICAgICBhbmQgcHJlZml4ZWQoLXdlYmtpdCwgJHZhbHVlKSB7IGNvbnRlbnQ6IC13ZWJraXQoJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSAgICAgICAgYW5kIHByZWZpeGVkKC1vLCAgICAgICR2YWx1ZSkgeyBjb250ZW50OiAgICAgIC1vKCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIGFuZCBwcmVmaXhlZCgtc3ZnLCAgICAkdmFsdWUpIHsgY29udGVudDogICAgLXN2ZygkdmFsdWUpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICAgICAgICAgJHZhbHVlIDtcbn1cbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNyb3NzIGJyb3dzZXIgc3VwcG9ydCBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9saWIvY29tcGFzcy9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2Nyb3NzX2Jyb3dzZXJfc3VwcG9ydC5yYlxuLy8gXG5cbkBmdW5jdGlvbiBwcmVmaXhlZCgkcHJlZml4LCAkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICAkcHJvcGVydGllczogJHByb3BlcnR5MSwgJHByb3BlcnR5MiwgJHByb3BlcnR5MywgJHByb3BlcnR5NCwgJHByb3BlcnR5NSwgJHByb3BlcnR5NiwgJHByb3BlcnR5NywgJHByb3BlcnR5OCwgJHByb3BlcnR5OTtcbiAgJHByZWZpeGVkOiBmYWxzZTtcbiAgQGVhY2ggJGl0ZW0gaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSAnc3RyaW5nJyB7XG4gICAgICAkcHJlZml4ZWQ6ICRwcmVmaXhlZCBvciBzdHItaW5kZXgoJGl0ZW0sICd1cmwnKSAhPSAxIGFuZCBzdHItaW5kZXgoJGl0ZW0sICdyZ2InKSAhPSAxIGFuZCBzdHItaW5kZXgoJGl0ZW0sICcjJykgIT0gMTtcbiAgICB9IEBlbHNlaWYgdHlwZS1vZigkaXRlbSkgPT0gJ2NvbG9yJyB7XG4gICAgfSBAZWxzZWlmICRpdGVtICE9IG51bGwge1xuICAgICAgJHByZWZpeGVkOiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRwcmVmaXhlZDtcbn1cblxuQGZ1bmN0aW9uIHByZWZpeCgkcHJlZml4LCAkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICAkcHJvcGVydGllczogXCJcIjtcblxuICAvLyBTdXBwb3J0IGZvciBwb2x5bW9ycGhpc20uXG4gIEBpZiB0eXBlLW9mKCRwcm9wZXJ0eTEpID09ICdsaXN0JyB7XG4gICAgLy8gUGFzc2luZyBhIHNpbmdsZSBhcnJheSBvZiBwcm9wZXJ0aWVzLlxuICAgICRwcm9wZXJ0aWVzOiAkcHJvcGVydHkxO1xuICB9IEBlbHNlIHtcbiAgICAvLyBQYXNzaW5nIG11bHRpcGxlIHByb3BlcnRpZXMuXG4gICAgJHByb3BlcnRpZXM6ICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTk7XG4gIH1cblxuICAkcHJvcHM6IGZhbHNlO1xuICBAZWFjaCAkaXRlbSBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmICRpdGVtID09IG51bGwge31cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgcHJlZml4ZWQoJHByZWZpeCwgJGl0ZW0pIHtcbiAgICAgICAgJGl0ZW06ICN7JHByZWZpeH0tI3skaXRlbX07XG4gICAgICB9XG4gICAgICBAaWYgJHByb3BzIHtcbiAgICAgICAgJHByb3BzOiAkcHJvcHMsICRpdGVtO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcHJvcHM6ICRpdGVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRwcm9wcztcbn1cblxuQGZ1bmN0aW9uIC1zdmcoJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1zdmcnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1vd2coJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1vd2cnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC13ZWJraXQoJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy13ZWJraXQnLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1tb3ooJHByb3BlcnR5MSwgJHByb3BlcnR5MjpudWxsLCAkcHJvcGVydHkzOm51bGwsICRwcm9wZXJ0eTQ6bnVsbCwgJHByb3BlcnR5NTpudWxsLCAkcHJvcGVydHk2Om51bGwsICRwcm9wZXJ0eTc6bnVsbCwgJHByb3BlcnR5ODpudWxsLCAkcHJvcGVydHk5Om51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoJy1tb3onLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTtcbn1cblxuQGZ1bmN0aW9uIC1vKCRwcm9wZXJ0eTEsICRwcm9wZXJ0eTI6bnVsbCwgJHByb3BlcnR5MzpudWxsLCAkcHJvcGVydHk0Om51bGwsICRwcm9wZXJ0eTU6bnVsbCwgJHByb3BlcnR5NjpudWxsLCAkcHJvcGVydHk3Om51bGwsICRwcm9wZXJ0eTg6bnVsbCwgJHByb3BlcnR5OTpudWxsKSB7XG4gIEByZXR1cm4gcHJlZml4KCctbycsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpO1xufVxuXG5AZnVuY3Rpb24gLXBpZSgkcHJvcGVydHkxLCAkcHJvcGVydHkyOm51bGwsICRwcm9wZXJ0eTM6bnVsbCwgJHByb3BlcnR5NDpudWxsLCAkcHJvcGVydHk1Om51bGwsICRwcm9wZXJ0eTY6bnVsbCwgJHByb3BlcnR5NzpudWxsLCAkcHJvcGVydHk4Om51bGwsICRwcm9wZXJ0eTk6bnVsbCkge1xuICBAcmV0dXJuIHByZWZpeCgnLXBpZScsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpO1xufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4udXN5ZC1maWd1cmUge1xuXHQmLnVzeWQtZmlndXJlLXdpdGgtYm9yZGVyIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcblx0fVxuXG5cdCYudXN5ZC1hbGlnbi1sZWZ0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxuXG5cdCYudXN5ZC1hbGlnbi1yaWdodCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQmLnVzeWQtYWxpZ24tY2VudHJlIHtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0fVxufVxuXG4udXN5ZC1maWd1cmUtaW1hZ2Uge1xuXHR3aWR0aDogMTAwJTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnVzeWQtZmlndXJlLXNtYWxsIHtcblx0d2lkdGg6IDMzJTtcbn1cblxuLnVzeWQtZmlndXJlLW1lZGl1bSB7XG5cdHdpZHRoOiA1MCU7XG59XG5cbi51c3lkLWZpZ3VyZS1sYXJnZSB7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4udXN5ZC1maWd1cmUtY2FwdGlvbiB7XG5cdHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXHRjb2xvcjogJGZvbnQtY29sb3VyLWRhcmstODA7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXG5cdC51c3lkLWZpZ3VyZS51c3lkLWZpZ3VyZS13aXRoLWJvcmRlciAmIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS14c21hbGwge1xuXHQudXN5ZC1maWd1cmUge1xuXHRcdCYudXN5ZC1hbGlnbi1sZWZ0LCAmLnVzeWQtYWxpZ24tcmlnaHQge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cblx0XHQmLnVzeWQtZmlndXJlLXNtYWxsLCAmLnVzeWQtZmlndXJlLW1lZGl1bSB7XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHR9XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi51c3lkLXVpLWZvb3RlciB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRtYXJnaW4tdG9wOiAzLjJlbTtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAyZW07XG5cdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcblx0cGFkZGluZy10b3A6IDFlbTtcblxuXHQudXN5ZC11aS1mb290ZXItbmF2IHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG5cdHAge1xuXHRcdG1hcmdpbjogMDtcblx0fVxufVxuXG4udXN5ZC11aS1jb3B5cmlnaHQge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLnVzeWQtdWktZm9vdGVyLW5hdiB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtdWktZm9vdGVyIHtcblx0XHQudXN5ZC11aS1jb3B5cmlnaHQsIC51c3lkLXVpLWZvb3Rlci1uYXYge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdC51c3lkLXVpLWZvb3Rlci1uYXYge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTBweDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGxpZ2h0LWdyZXk7XG5cdFx0fVxuXHRcdC51c3lkLXVpLWZvb3Rlci1uYXYgPmF7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0XG5cdFx0fVxuXHR9XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi8vIEZvb3Rub3RlcyBhcmUgb25seSB2aXNpYmxlIG9uIHByaW50ZWQgcGFnZXNcbi51c3lkLXVpLWZvb3Rub3RlcyB7XG5cdEBpbmNsdWRlIGhpZGUtZnJvbS1ldmVyeW9uZTtcbn1cblxuLnVzeWQtdWktZm9vdG5vdGUge1xuXHRAaW5jbHVkZSBoaWRlLWZyb20tZXZlcnlvbmU7XG59XG4iLCIvLyBGb3Jtcy5sZXNzXG4vLyBCYXNlIHN0eWxlcyBmb3IgdmFyaW91cyBpbnB1dCB0eXBlcywgZm9ybSBsYXlvdXRzLCBhbmQgc3RhdGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gR0VORVJBTCBTVFlMRVNcbi8vIC0tLS0tLS0tLS0tLS0tXG5cbi8vIE1ha2UgYWxsIGZvcm1zIGhhdmUgc3BhY2UgYmVsb3cgdGhlbVxuZm9ybSB7XG4gIG1hcmdpbjogMCAwICRiYXNlTGluZUhlaWdodDtcbn1cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gR3JvdXBzIG9mIGZpZWxkcyB3aXRoIGxhYmVscyBvbiB0b3AgKGxlZ2VuZHMpXG5sZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRiYXNlTGluZUhlaWdodCAqIDEuNTtcbiAgZm9udC1zaXplOiAkYmFzZUZvbnRTaXplICogMS41O1xuICBsaW5lLWhlaWdodDogJGJhc2VMaW5lSGVpZ2h0ICogMjtcbiAgY29sb3I6ICRncmF5RGFyaztcbiAgYm9yZGVyOiAwO1xuICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblxuICAvLyBTbWFsbFxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAkYmFzZUxpbmVIZWlnaHQgKiAuNzU7XG4gICAgY29sb3I6ICRncmF5TGlnaHQ7XG4gIH1cbn1cblxuLy8gU2V0IGZvbnQgZm9yIGZvcm1zXG5sYWJlbCwgaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIEBpbmNsdWRlIGZvbnQtc2hvcnRoYW5kKCRiYXNlRm9udFNpemUsIG5vcm1hbCwgJGJhc2VMaW5lSGVpZ2h0KTsgLy8gU2V0IHNpemUsIHdlaWdodCwgbGluZS1oZWlnaHQgaGVyZVxufVxuaW5wdXQsIGJ1dHRvbiwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZUZvbnRGYW1pbHk7IC8vIEFuZCBvbmx5IHNldCBmb250LWZhbWlseSBoZXJlIGZvciB0aG9zZSB0aGF0IG5lZWQgaXQgKG5vdGUgdGhlIG1pc3NpbmcgbGFiZWwgZWxlbWVudClcbn1cblxuLy8gSWRlbnRpZnkgY29udHJvbHMgYnkgdGhlaXIgbGFiZWxzXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGNvbG9yOiAkZ3JheURhcms7XG59XG5cbi8vIElucHV0cywgVGV4dGFyZWFzLCBTZWxlY3RzXG5pbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgLnVuZWRpdGFibGUtaW5wdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMTBweDtcbiAgaGVpZ2h0OiAkYmFzZUxpbmVIZWlnaHQ7XG4gIHBhZGRpbmc6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICBmb250LXNpemU6ICRiYXNlRm9udFNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZUxpbmVIZWlnaHQ7XG4gIGNvbG9yOiAkZ3JheTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0QmFja2dyb3VuZDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0Qm9yZGVyO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRpbnB1dEJvcmRlclJhZGl1cyk7XG59XG4udW5lZGl0YWJsZS10ZXh0YXJlYSB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8vIElucHV0cyB3aXRoaW4gYSBsYWJlbFxubGFiZWwgaW5wdXQsIGxhYmVsIHRleHRhcmVhLCBsYWJlbCBzZWxlY3Qge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gTWluaSByZXNldCBmb3IgdW5pcXVlIGlucHV0IHR5cGVzXG5pbnB1dFt0eXBlPVwiaW1hZ2VcIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAzcHggMDtcbiAgKm1hcmdpbi10b3A6IDA7IC8qIElFNyAqL1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDAgXFw5OyAvKiBJRTkgYW5kIGRvd24gKi9cbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcbn1cbmlucHV0W3R5cGU9XCJpbWFnZVwiXSB7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gUmVzZXQgdGhlIGZpbGUgaW5wdXQgdG8gYnJvd3NlciBkZWZhdWx0c1xuaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogaW5pdGlhbDtcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dEJhY2tncm91bmQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGJvcmRlcjogaW5pdGlhbDtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcbn1cblxuLy8gSGVscCBvdXQgaW5wdXQgYnV0dG9uc1xuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSwgaW5wdXRbdHlwZT1cInJlc2V0XCJdLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy8gU2V0IHRoZSBoZWlnaHQgb2Ygc2VsZWN0IGFuZCBmaWxlIGNvbnRyb2xzIHRvIG1hdGNoIHRleHQgaW5wdXRzXG5zZWxlY3QsIGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgaGVpZ2h0OiAyOHB4OyAvKiBJbiBJRTcsIHRoZSBoZWlnaHQgb2YgdGhlIHNlbGVjdCBlbGVtZW50IGNhbm5vdCBiZSBjaGFuZ2VkIGJ5IGhlaWdodCwgb25seSBmb250LXNpemUgKi9cbiAgKm1hcmdpbi10b3A6IDRweDsgLyogRm9yIElFNywgYWRkIHRvcCBtYXJnaW4gdG8gYWxpZ24gc2VsZWN0IHdpdGggbGFiZWxzICovXG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xufVxuXG4vLyBSZXNldCBsaW5lLWhlaWdodCBmb3IgSUVcbmlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgbGluZS1oZWlnaHQ6IDE4cHggXFw5O1xufVxuXG4vLyBDaHJvbWUgb24gTGludXggYW5kIE1vYmlsZSBTYWZhcmkgbmVlZCBiYWNrZ3JvdW5kLWNvbG9yXG5zZWxlY3Qge1xuICB3aWR0aDogMjIwcHg7IC8vIGRlZmF1bHQgaW5wdXQgd2lkdGggKyAxMHB4IG9mIHBhZGRpbmcgdGhhdCBkb2Vzbid0IGdldCBhcHBsaWVkXG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dEJhY2tncm91bmQ7XG59XG5cbi8vIE1ha2UgbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzIGhlaWdodCBub3QgZml4ZWRcbnNlbGVjdFttdWx0aXBsZV0sIHNlbGVjdFtzaXplXSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy8gUmVtb3ZlIHNoYWRvdyBmcm9tIGltYWdlIGlucHV0c1xuaW5wdXRbdHlwZT1cImltYWdlXCJdIHtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcbn1cblxuLy8gTWFrZSB0ZXh0YXJlYSBoZWlnaHQgYmVoYXZlXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLy8gSGlkZGVuIGlucHV0c1xuaW5wdXRbdHlwZT1cImhpZGRlblwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cblxuXG4vLyBDSEVDS0JPWEVTICYgUkFESU9TXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEluZGVudCB0aGUgbGFiZWxzIHRvIHBvc2l0aW9uIHJhZGlvcy9jaGVja2JveGVzIGFzIGhhbmdpbmdcbi5yYWRpbywgLmNoZWNrYm94IHtcbiAgbWluLWhlaWdodDogMThweDsgLy8gY2xlYXIgdGhlIGZsb2F0aW5nIGlucHV0IGlmIHRoZXJlIGlzIG5vIGxhYmVsIHRleHRcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xufVxuLnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXSwgLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogLTE4cHg7XG59XG5cbi8vIE1vdmUgdGhlIG9wdGlvbnMgbGlzdCBkb3duIHRvIGFsaWduIHdpdGggbGFiZWxzXG4uY29udHJvbHMgPiAucmFkaW86Zmlyc3QtY2hpbGQsIC5jb250cm9scyA+IC5jaGVja2JveDpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiA1cHg7IC8vIGhhcyB0byBiZSBwYWRkaW5nIGJlY2F1c2UgbWFyZ2luIGNvbGxhc3Blc1xufVxuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgb24gc2FtZSBsaW5lXG4vLyBUT0RPIHYzOiBDb252ZXJ0IC5pbmxpbmUgdG8gLmNvbnRyb2wtaW5saW5lXG4ucmFkaW8uaW5saW5lLCAuY2hlY2tib3guaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnJhZGlvLmlubGluZSArIC5yYWRpby5pbmxpbmUsIC5jaGVja2JveC5pbmxpbmUgKyAuY2hlY2tib3guaW5saW5lIHtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7IC8vIHNwYWNlIG91dCBjb25zZWN1dGl2ZSBpbmxpbmUgY29udHJvbHNcbn1cblxuXG5cbi8vIEZPQ1VTIFNUQVRFXG4vLyAtLS0tLS0tLS0tLVxuXG5pbnB1dCwgdGV4dGFyZWEge1xuICBAaW5jbHVkZSBib3gtc2hhZG93KGluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpKTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigje2JvcmRlciBsaW5lYXIgLjJzLCBib3gtc2hhZG93IGxpbmVhciAuMnN9KTtcbn1cbmlucHV0OmZvY3VzLCB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg4MiwxNjgsMjM2LC44KTtcbiAgb3V0bGluZTogMDtcbiAgb3V0bGluZTogdGhpbiBkb3R0ZWQgXFw5OyAvKiBJRTYtOSAqL1xuICBAaW5jbHVkZSBib3gtc2hhZG93KCN7aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksIDAgMCA4cHggcmdiYSg4MiwxNjgsMjM2LC42KX0pO1xufVxuaW5wdXRbdHlwZT1cImZpbGVcIl06Zm9jdXMsIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpmb2N1cywgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmZvY3VzLCBzZWxlY3Q6Zm9jdXMge1xuICBAaW5jbHVkZSB0YWItZm9jdXMoKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTsgLy8gb3ZlcnJpZGUgZm9yIGZpbGUgaW5wdXRzXG59XG5cblxuXG4vLyBJTlBVVCBTSVpFU1xuLy8gLS0tLS0tLS0tLS1cblxuLy8gR2VuZXJhbCBjbGFzc2VzIGZvciBxdWljayBzaXplc1xuLmlucHV0LW1pbmkgICAgICAgeyB3aWR0aDogNjBweDsgfVxuLmlucHV0LXNtYWxsICAgICAgeyB3aWR0aDogOTBweDsgfVxuLmlucHV0LW1lZGl1bSAgICAgeyB3aWR0aDogMTUwcHg7IH1cbi5pbnB1dC1sYXJnZSAgICAgIHsgd2lkdGg6IDIxMHB4OyB9XG4uaW5wdXQteGxhcmdlICAgICB7IHdpZHRoOiAyNzBweDsgfVxuLmlucHV0LXh4bGFyZ2UgICAgeyB3aWR0aDogNTMwcHg7IH1cblxuLy8gR3JpZCBzdHlsZSBpbnB1dCBzaXplc1xuaW5wdXRbY2xhc3MqPVwic3BhblwiXSwgc2VsZWN0W2NsYXNzKj1cInNwYW5cIl0sIHRleHRhcmVhW2NsYXNzKj1cInNwYW5cIl0sIC51bmVkaXRhYmxlLWlucHV0W2NsYXNzKj1cInNwYW5cIl0sXG4vLyBSZWRlY2xhcmUgc2luY2UgdGhlIGZsdWlkIHJvdyBjbGFzcyBpcyBtb3JlIHNwZWNpZmljXG4ucm93LWZsdWlkIGlucHV0W2NsYXNzKj1cInNwYW5cIl0sIC5yb3ctZmx1aWQgc2VsZWN0W2NsYXNzKj1cInNwYW5cIl0sIC5yb3ctZmx1aWQgdGV4dGFyZWFbY2xhc3MqPVwic3BhblwiXSwgLnJvdy1mbHVpZCAudW5lZGl0YWJsZS1pbnB1dFtjbGFzcyo9XCJzcGFuXCJdIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5cblxuLy8gR1JJRCBTSVpJTkcgRk9SIElOUFVUU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaW5jbHVkZSBncmlkSW5wdXQoJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCk7XG5cblxuXG5cbi8vIERJU0FCTEVEIFNUQVRFXG4vLyAtLS0tLS0tLS0tLS0tLVxuXG4vLyBEaXNhYmxlZCBhbmQgcmVhZC1vbmx5IGlucHV0c1xuaW5wdXRbZGlzYWJsZWRdLCBzZWxlY3RbZGlzYWJsZWRdLCB0ZXh0YXJlYVtkaXNhYmxlZF0sIGlucHV0W3JlYWRvbmx5XSwgc2VsZWN0W3JlYWRvbmx5XSwgdGV4dGFyZWFbcmVhZG9ubHldIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0RGlzYWJsZWRCYWNrZ3JvdW5kO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG59XG4vLyBFeHBsaWNpdGx5IHJlc2V0IHRoZSBjb2xvcnMgaGVyZVxuaW5wdXRbdHlwZT1cInJhZGlvXCJdW2Rpc2FibGVkXSwgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW2Rpc2FibGVkXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdW3JlYWRvbmx5XSwgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdW3JlYWRvbmx5XSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5cblxuXG4vLyBGT1JNIEZJRUxEIEZFRURCQUNLIFNUQVRFU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gV2FybmluZ1xuLmNvbnRyb2wtZ3JvdXAud2FybmluZyB7XG4gIEBpbmNsdWRlIGZvcm1GaWVsZFN0YXRlKCR3YXJuaW5nVGV4dCwgJHdhcm5pbmdUZXh0LCAkd2FybmluZ0JhY2tncm91bmQpO1xufVxuLy8gRXJyb3Jcbi5jb250cm9sLWdyb3VwLmVycm9yIHtcbiAgQGluY2x1ZGUgZm9ybUZpZWxkU3RhdGUoJGVycm9yVGV4dCwgJGVycm9yVGV4dCwgJGVycm9yQmFja2dyb3VuZCk7XG59XG4vLyBTdWNjZXNzXG4uY29udHJvbC1ncm91cC5zdWNjZXNzIHtcbiAgQGluY2x1ZGUgZm9ybUZpZWxkU3RhdGUoJHN1Y2Nlc3NUZXh0LCAkc3VjY2Vzc1RleHQsICRzdWNjZXNzQmFja2dyb3VuZCk7XG59XG5cbi8vIEhUTUw1IGludmFsaWQgc3RhdGVzXG4vLyBTaGFyZXMgc3R5bGVzIHdpdGggdGhlIC5jb250cm9sLWdyb3VwLmVycm9yIGFib3ZlXG5pbnB1dDpmb2N1czpyZXF1aXJlZDppbnZhbGlkLCB0ZXh0YXJlYTpmb2N1czpyZXF1aXJlZDppbnZhbGlkLCBzZWxlY3Q6Zm9jdXM6cmVxdWlyZWQ6aW52YWxpZCB7XG4gIGNvbG9yOiAjYjk0YTQ4O1xuICBib3JkZXItY29sb3I6ICNlZTVmNWI7XG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCNlZTVmNWIsIDEwJSk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygwIDAgNnB4IGxpZ2h0ZW4oI2VlNWY1YiwgMjAlKSk7XG4gIH1cbn1cblxuXG5cbi8vIEZPUk0gQUNUSU9OU1xuLy8gLS0tLS0tLS0tLS0tXG5cbi5mb3JtLWFjdGlvbnMge1xuICBwYWRkaW5nOiAoJGJhc2VMaW5lSGVpZ2h0IC0gMSkgMjBweCAkYmFzZUxpbmVIZWlnaHQ7XG4gIG1hcmdpbi10b3A6ICRiYXNlTGluZUhlaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogJGJhc2VMaW5lSGVpZ2h0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybUFjdGlvbnNCYWNrZ3JvdW5kO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgQGluY2x1ZGUgY2xlYXJmaXgoKTsgLy8gQWRkaW5nIGNsZWFyZml4IHRvIGFsbG93IGZvciAucHVsbC1yaWdodCBidXR0b24gY29udGFpbmVyc1xufVxuXG4vLyBGb3IgdGV4dCB0aGF0IG5lZWRzIHRvIGFwcGVhciBhcyBhbiBpbnB1dCBidXQgc2hvdWxkIG5vdCBiZSBhbiBpbnB1dFxuLnVuZWRpdGFibGUtaW5wdXQge1xuICBvdmVyZmxvdzogaGlkZGVuOyAvLyBwcmV2ZW50IHRleHQgZnJvbSB3cmFwcGluZywgYnV0IHN0aWxsIGN1dCBpdCBvZmYgbGlrZSBhbiBpbnB1dCBkb2VzXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dEJhY2tncm91bmQ7XG4gIGJvcmRlci1jb2xvcjogI2VlZTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMDI1KSk7XG59XG5cbi8vIFBsYWNlaG9sZGVyIHRleHQgZ2V0cyBzcGVjaWFsIHN0eWxlczsgY2FuJ3QgYmUgYnVuZGxlZCB0b2dldGhlciB0aG91Z2ggZm9yIHNvbWUgcmVhc29uXG5AaW5jbHVkZSBwbGFjZWhvbGRlcigkZ3JheUxpZ2h0KTtcblxuXG5cbi8vIEhFTFAgVEVYVFxuLy8gLS0tLS0tLS0tXG5cbi5oZWxwLWJsb2NrLCAuaGVscC1pbmxpbmUge1xuICBjb2xvcjogJGdyYXk7IC8vIGxpZ2h0ZW4gdGhlIHRleHQgc29tZSBmb3IgY29udHJhc3Rcbn1cblxuLmhlbHAtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgLy8gYWNjb3VudCBmb3IgYW55IGVsZW1lbnQgdXNpbmcgaGVscC1ibG9ja1xuICBtYXJnaW4tYm90dG9tOiAkYmFzZUxpbmVIZWlnaHQgLyAyO1xufVxuXG4uaGVscC1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpbmNsdWRlIGllNy1pbmxpbmUtYmxvY2soKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG59XG5cblxuXG4vLyBJTlBVVCBHUk9VUFNcbi8vIC0tLS0tLS0tLS0tLVxuXG4vLyBBbGxvdyB1cyB0byBwdXQgc3ltYm9scyBhbmQgdGV4dCB3aXRoaW4gdGhlIGlucHV0IGZpZWxkIGZvciBhIGNsZWFuZXIgbG9va1xuLmlucHV0LXByZXBlbmQsIC5pbnB1dC1hcHBlbmQge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGlucHV0LCBzZWxlY3QsIC51bmVkaXRhYmxlLWlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIHBsYWNlZCBoZXJlIGJ5IGRlZmF1bHQgc28gdGhhdCBvbiA6Zm9jdXMgd2UgY2FuIHBsYWNlIHRoZSBpbnB1dCBhYm92ZSB0aGUgLmFkZC1vbiBmb3IgZnVsbCBib3JkZXIgYW5kIGJveC1zaGFkb3cgZ29vZG5lc3NcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBwcmV2ZW50IGJvdHRvbSBtYXJnaW4gZnJvbSBzY3Jld2luZyB1cCBhbGlnbm1lbnQgaW4gc3RhY2tlZCBmb3Jtc1xuICAgICptYXJnaW4tbGVmdDogMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCAkaW5wdXRCb3JkZXJSYWRpdXMgJGlucHV0Qm9yZGVyUmFkaXVzIDApO1xuICAgIC8vIE1ha2UgaW5wdXQgb24gdG9wIHdoZW4gZm9jdXNlZCBzbyBibHVlIGJvcmRlciBhbmQgc2hhZG93IGFsd2F5cyBzaG93XG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuICAudW5lZGl0YWJsZS1pbnB1dCB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNjY2M7XG4gIH1cbiAgLmFkZC1vbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogJGJhc2VMaW5lSGVpZ2h0O1xuICAgIG1pbi13aWR0aDogMTZweDtcbiAgICBwYWRkaW5nOiA0cHggNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlTGluZUhlaWdodDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHdoaXRlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXlMaWdodGVyO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIH1cbiAgLmFkZC1vbiwgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcbiAgfVxuICAuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRncmVlbiwgMzApO1xuICAgIGJvcmRlci1jb2xvcjogJGdyZWVuO1xuICB9XG59XG4uaW5wdXQtcHJlcGVuZCB7XG4gIC5hZGQtb24sIC5idG4ge1xuICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgfVxuICAuYWRkLW9uOmZpcnN0LWNoaWxkLCAuYnRuOmZpcnN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRpbnB1dEJvcmRlclJhZGl1cyAwIDAgJGlucHV0Qm9yZGVyUmFkaXVzKTtcbiAgfVxufVxuLmlucHV0LWFwcGVuZCB7XG4gIGlucHV0LCBzZWxlY3QsIC51bmVkaXRhYmxlLWlucHV0IHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRpbnB1dEJvcmRlclJhZGl1cyAwIDAgJGlucHV0Qm9yZGVyUmFkaXVzKTtcbiAgfVxuICAudW5lZGl0YWJsZS1pbnB1dCB7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjY2NjO1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZWVlO1xuICB9XG4gIC5hZGQtb246bGFzdC1jaGlsZCwgLmJ0bjpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDAgJGlucHV0Qm9yZGVyUmFkaXVzICRpbnB1dEJvcmRlclJhZGl1cyAwKTtcbiAgfVxufVxuLy8gUmVtb3ZlIGFsbCBib3JkZXItcmFkaXVzIGZvciBpbnB1dHMgd2l0aCBib3RoIHByZXBlbmQgYW5kIGFwcGVuZFxuLmlucHV0LXByZXBlbmQuaW5wdXQtYXBwZW5kIHtcbiAgaW5wdXQsIHNlbGVjdCwgLnVuZWRpdGFibGUtaW5wdXQge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCk7XG4gIH1cbiAgLmFkZC1vbjpmaXJzdC1jaGlsZCwgLmJ0bjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMXB4O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0Qm9yZGVyUmFkaXVzIDAgMCAkaW5wdXRCb3JkZXJSYWRpdXMpO1xuICB9XG4gIC5hZGQtb246bGFzdC1jaGlsZCwgLmJ0bjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDAgJGlucHV0Qm9yZGVyUmFkaXVzICRpbnB1dEJvcmRlclJhZGl1cyAwKTtcbiAgfVxufVxuXG5cblxuLy8gU0VBUkNIIEZPUk1cbi8vIC0tLS0tLS0tLS0tXG5cbi5zZWFyY2gtcXVlcnkge1xuICBwYWRkaW5nLXJpZ2h0OiAxNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHggXFw5O1xuICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gIHBhZGRpbmctbGVmdDogNHB4IFxcOTsgLyogSUU3LTggZG9lc24ndCBoYXZlIGJvcmRlci1yYWRpdXMsIHNvIGRvbid0IGluZGVudCB0aGUgcGFkZGluZyAqL1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyByZW1vdmUgdGhlIGRlZmF1bHQgbWFyZ2luIG9uIGFsbCBpbnB1dHNcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxNHB4KTtcbn1cblxuXG5cbi8vIEhPUklaT05UQUwgJiBWRVJUSUNBTCBGT1JNU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIENvbW1vbiBwcm9wZXJ0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuXG4uZm9ybS1zZWFyY2gsIC5mb3JtLWlubGluZSwgLmZvcm0taG9yaXpvbnRhbCB7XG4gIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCAuaGVscC1pbmxpbmUsIC51bmVkaXRhYmxlLWlucHV0LCAuaW5wdXQtcHJlcGVuZCwgLmlucHV0LWFwcGVuZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIGllNy1pbmxpbmUtYmxvY2soKTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC8vIFJlLWhpZGUgaGlkZGVuIGVsZW1lbnRzIGR1ZSB0byBzcGVjaWZpdHlcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5mb3JtLXNlYXJjaCBsYWJlbCwgLmZvcm0taW5saW5lIGxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLy8gUmVtb3ZlIG1hcmdpbiBmb3IgaW5wdXQtcHJlcGVuZC8tYXBwZW5kXG4uZm9ybS1zZWFyY2ggLmlucHV0LWFwcGVuZCwgLmZvcm0taW5saW5lIC5pbnB1dC1hcHBlbmQsIC5mb3JtLXNlYXJjaCAuaW5wdXQtcHJlcGVuZCwgLmZvcm0taW5saW5lIC5pbnB1dC1wcmVwZW5kIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi8vIElubGluZSBjaGVja2JveC9yYWRpbyBsYWJlbHMgKHJlbW92ZSBwYWRkaW5nIG9uIGxlZnQpXG4uZm9ybS1zZWFyY2ggLnJhZGlvLCAuZm9ybS1zZWFyY2ggLmNoZWNrYm94LCAuZm9ybS1pbmxpbmUgLnJhZGlvLCAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLy8gUmVtb3ZlIGZsb2F0IGFuZCBtYXJnaW4sIHNldCB0byBpbmxpbmUtYmxvY2tcbi5mb3JtLXNlYXJjaCAucmFkaW8gaW5wdXRbdHlwZT1cInJhZGlvXCJdLCAuZm9ybS1zZWFyY2ggLmNoZWNrYm94IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgLmZvcm0taW5saW5lIC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0sIC5mb3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogM3B4O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuXG4vLyBNYXJnaW4gdG8gc3BhY2Ugb3V0IGZpZWxkc2V0c1xuLmNvbnRyb2wtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAkYmFzZUxpbmVIZWlnaHQgLyAyO1xufVxuXG4vLyBMZWdlbmQgY29sbGFwc2VzIG1hcmdpbiwgc28gbmV4dCBlbGVtZW50IGlzIHJlc3BvbnNpYmxlIGZvciBzcGFjaW5nXG5sZWdlbmQgKyAuY29udHJvbC1ncm91cCB7XG4gIG1hcmdpbi10b3A6ICRiYXNlTGluZUhlaWdodDtcbiAgLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbn1cblxuLy8gSG9yaXpvbnRhbC1zcGVjaWZpYyBzdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5mb3JtLWhvcml6b250YWwge1xuICAvLyBJbmNyZWFzZSBzcGFjaW5nIGJldHdlZW4gZ3JvdXBzXG4gIC5jb250cm9sLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkYmFzZUxpbmVIZWlnaHQ7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgfVxuICAvLyBGbG9hdCB0aGUgbGFiZWxzIGxlZnRcbiAgLmNvbnRyb2wtbGFiZWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxNDBweDtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC8vIE1vdmUgb3ZlciBhbGwgaW5wdXQgY29udHJvbHMgYW5kIGNvbnRlbnRcbiAgLmNvbnRyb2xzIHtcbiAgICAvLyBTdXBlciBqYW5rIElFNyBmaXggdG8gZW5zdXJlIHRoZSBpbnB1dHMgaW4gLmlucHV0LWFwcGVuZCBhbmQgaW5wdXQtcHJlcGVuZFxuICAgIC8vIGRvbid0IGluaGVyaXQgdGhlIG1hcmdpbiBvZiB0aGUgcGFyZW50LCBpbiB0aGlzIGNhc2UgLmNvbnRyb2xzXG4gICAgKmRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAqcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxNjBweDtcbiAgICAqbWFyZ2luLWxlZnQ6IDA7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAqcGFkZGluZy1sZWZ0OiAxNjBweDtcbiAgICB9XG4gIH1cbiAgLy8gUmVtb3ZlIGJvdHRvbSBtYXJnaW4gb24gYmxvY2sgbGV2ZWwgaGVscCB0ZXh0IHNpbmNlIHRoYXQncyBhY2NvdW50ZWQgZm9yIG9uIC5jb250cm9sLWdyb3VwXG4gIC5oZWxwLWJsb2NrIHtcbiAgICBtYXJnaW4tdG9wOiAkYmFzZUxpbmVIZWlnaHQgLyAyO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgLy8gTW92ZSBvdmVyIGJ1dHRvbnMgaW4gLmZvcm0tYWN0aW9ucyB0byBhbGlnbiB3aXRoIC5jb250cm9sc1xuICAuZm9ybS1hY3Rpb25zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2MHB4O1xuICB9XG59XG4iLCIvLyBWYXJpYWJsZXMubGVzc1xuLy8gVmFyaWFibGVzIHRvIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBCb290c3RyYXBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuXG4vLyBHTE9CQUwgVkFMVUVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBHcmF5c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGJsYWNrOiAgICAgICAgICAgICAgICAgIzAwMCAhZGVmYXVsdDtcbiRncmF5RGFya2VyOiAgICAgICAgICAgICMyMjIgIWRlZmF1bHQ7XG4kZ3JheURhcms6ICAgICAgICAgICAgICAjMzMzICFkZWZhdWx0O1xuJGdyYXk6ICAgICAgICAgICAgICAgICAgIzU1NSAhZGVmYXVsdDtcbiRncmF5TGlnaHQ6ICAgICAgICAgICAgICM5OTkgIWRlZmF1bHQ7XG4kZ3JheUxpZ2h0ZXI6ICAgICAgICAgICAjZWVlICFkZWZhdWx0O1xuJHdoaXRlOiAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcblxuXG4vLyBBY2NlbnQgY29sb3JzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kYmx1ZTogICAgICAgICAgICAgICAgICAjMDQ5Y2RiICFkZWZhdWx0O1xuJGJsdWVEYXJrOiAgICAgICAgICAgICAgIzAwNjRjZCAhZGVmYXVsdDtcbiRncmVlbjogICAgICAgICAgICAgICAgICM0NmE1NDYgIWRlZmF1bHQ7XG4kcmVkOiAgICAgICAgICAgICAgICAgICAjOWQyNjFkICFkZWZhdWx0O1xuJHllbGxvdzogICAgICAgICAgICAgICAgI2ZmYzQwZCAhZGVmYXVsdDtcbiRvcmFuZ2U6ICAgICAgICAgICAgICAgICNmODk0MDYgIWRlZmF1bHQ7XG4kcGluazogICAgICAgICAgICAgICAgICAjYzMzMjVmICFkZWZhdWx0O1xuJHB1cnBsZTogICAgICAgICAgICAgICAgIzdhNDNiNiAhZGVmYXVsdDtcblxuLy8gU2NhZmZvbGRpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRib2R5QmFja2dyb3VuZDogICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiR0ZXh0Q29sb3I6ICAgICAgICAgICAgICRncmF5RGFyayAhZGVmYXVsdDtcblxuLy8gTGlua3Ncbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRsaW5rQ29sb3I6ICAgICAgICAgICAgICMwOGMgIWRlZmF1bHQ7XG4kbGlua0NvbG9ySG92ZXI6ICAgICAgICBkYXJrZW4oJGxpbmtDb2xvciwgMTUlKSAhZGVmYXVsdDtcblxuLy8gVHlwb2dyYXBoeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHNhbnNGb250RmFtaWx5OiAgICAgICAgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJHNlcmlmRm9udEZhbWlseTogICAgICAgR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmICFkZWZhdWx0O1xuJG1vbm9Gb250RmFtaWx5OiAgICAgICAgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4kYmFzZUZvbnRTaXplOiAgICAgICAgICAxM3B4ICFkZWZhdWx0O1xuJGJhc2VGb250RmFtaWx5OiAgICAgICAgJHNhbnNGb250RmFtaWx5ICFkZWZhdWx0O1xuJGJhc2VMaW5lSGVpZ2h0OiAgICAgICAgMThweCAhZGVmYXVsdDtcbiRhbHRGb250RmFtaWx5OiAgICAgICAgICRzZXJpZkZvbnRGYW1pbHkgIWRlZmF1bHQ7XG5cbiRoZWFkaW5nc0ZvbnRGYW1pbHk6ICAgIGluaGVyaXQgIWRlZmF1bHQ7IC8vIGVtcHR5IHRvIHVzZSBCUyBkZWZhdWx0LCBAYmFzZUZvbnRGYW1pbHlcbiRoZWFkaW5nc0ZvbnRXZWlnaHQ6ICAgIGJvbGQgIWRlZmF1bHQ7ICAgIC8vIGluc3RlYWQgb2YgYnJvd3NlciBkZWZhdWx0LCBib2xkXG4kaGVhZGluZ3NDb2xvcjogICAgICAgICBpbmhlcml0ICFkZWZhdWx0OyAvLyBlbXB0eSB0byB1c2UgQlMgZGVmYXVsdCwgQHRleHRDb2xvclxuXG5cbi8vIFRhYmxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHRhYmxlQmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7IC8vIG92ZXJhbGwgYmFja2dyb3VuZC1jb2xvclxuJHRhYmxlQmFja2dyb3VuZEFjY2VudDogICAgICAgICAgICAgI2Y5ZjlmOSAhZGVmYXVsdDsgLy8gZm9yIHN0cmlwaW5nXG4kdGFibGVCYWNrZ3JvdW5kSG92ZXI6ICAgICAgICAgICAgICAjZjVmNWY1ICFkZWZhdWx0OyAvLyBmb3IgaG92ZXJcbiR0YWJsZUJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICNkZGQgIWRlZmF1bHQ7IC8vIHRhYmxlIGFuZCBjZWxsIGJvcmRlclxuXG4vLyBCdXR0b25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kYnRuQmFja2dyb3VuZDogICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kYnRuQmFja2dyb3VuZEhpZ2hsaWdodDogICAgICAgICAgICBkYXJrZW4oJHdoaXRlLCAxMCUpICFkZWZhdWx0O1xuJGJ0bkJvcmRlcjogICAgICAgICAgICAgICAgICAgICAgICAgI2NjYyAhZGVmYXVsdDtcblxuJGJ0blByaW1hcnlCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgJGxpbmtDb2xvciAhZGVmYXVsdDtcbiRidG5QcmltYXJ5QmFja2dyb3VuZEhpZ2hsaWdodDogICAgIGFkanVzdC1odWUoJGJ0blByaW1hcnlCYWNrZ3JvdW5kLCAxNSUpICFkZWZhdWx0O1xuXG4kYnRuSW5mb0JhY2tncm91bmQ6ICAgICAgICAgICAgICAgICAjNWJjMGRlICFkZWZhdWx0O1xuJGJ0bkluZm9CYWNrZ3JvdW5kSGlnaGxpZ2h0OiAgICAgICAgIzJmOTZiNCAhZGVmYXVsdDtcblxuJGJ0blN1Y2Nlc3NCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIzYyYzQ2MiAhZGVmYXVsdDtcbiRidG5TdWNjZXNzQmFja2dyb3VuZEhpZ2hsaWdodDogICAgICM1MWEzNTEgIWRlZmF1bHQ7XG5cbiRidG5XYXJuaW5nQmFja2dyb3VuZDogICAgICAgICAgICAgIGxpZ2h0ZW4oJG9yYW5nZSwgMTUlKSAhZGVmYXVsdDtcbiRidG5XYXJuaW5nQmFja2dyb3VuZEhpZ2hsaWdodDogICAgICRvcmFuZ2UgIWRlZmF1bHQ7XG5cbiRidG5EYW5nZXJCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgICNlZTVmNWIgIWRlZmF1bHQ7XG4kYnRuRGFuZ2VyQmFja2dyb3VuZEhpZ2hsaWdodDogICAgICAjYmQzNjJmICFkZWZhdWx0O1xuXG4kYnRuSW52ZXJzZUJhY2tncm91bmQ6ICAgICAgICAgICAgICAkZ3JheSAhZGVmYXVsdDtcbiRidG5JbnZlcnNlQmFja2dyb3VuZEhpZ2hsaWdodDogICAgICRncmF5RGFya2VyICFkZWZhdWx0O1xuXG4vLyBGb3Jtc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGlucHV0QmFja2dyb3VuZDogICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kaW5wdXRCb3JkZXI6ICAgICAgICAgICAgICAgICAgICNjY2MgIWRlZmF1bHQ7XG4kaW5wdXRCb3JkZXJSYWRpdXM6ICAgICAgICAgICAgIDNweCAhZGVmYXVsdDtcbiRpbnB1dERpc2FibGVkQmFja2dyb3VuZDogICAgICAgJGdyYXlMaWdodGVyICFkZWZhdWx0O1xuJGZvcm1BY3Rpb25zQmFja2dyb3VuZDogICAgICAgICAjZjVmNWY1ICFkZWZhdWx0O1xuXG5cbi8vIERyb3Bkb3duc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGRyb3Bkb3duQmFja2dyb3VuZDogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kZHJvcGRvd25Cb3JkZXI6ICAgICAgICAgICAgICAgIHJnYmEoMCwwLDAsLjIpICFkZWZhdWx0O1xuJGRyb3Bkb3duTGlua0NvbG9yOiAgICAgICAgICAgICAkZ3JheURhcmsgIWRlZmF1bHQ7XG4kZHJvcGRvd25MaW5rQ29sb3JIb3ZlcjogICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRkcm9wZG93bkxpbmtCYWNrZ3JvdW5kSG92ZXI6ICAgJGxpbmtDb2xvciAhZGVmYXVsdDtcblxuXG4vLyBDT01QT05FTlQgVkFSSUFCTEVTXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBaLWluZGV4IG1hc3RlciBsaXN0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBVc2VkIGZvciBhIGJpcmQncyBleWUgdmlldyBvZiBjb21wb25lbnRzIGRlcGVuZGVudCBvbiB0aGUgei1heGlzXG4vLyBUcnkgdG8gYXZvaWQgY3VzdG9taXppbmcgdGhlc2UgOilcbiR6aW5kZXhEcm9wZG93bjogICAgICAgICAgMTAwMDtcbiR6aW5kZXhQb3BvdmVyOiAgICAgICAgICAgMTAxMDtcbiR6aW5kZXhUb29sdGlwOiAgICAgICAgICAgMTAyMDtcbiR6aW5kZXhGaXhlZE5hdmJhcjogICAgICAgMTAzMDtcbiR6aW5kZXhNb2RhbEJhY2tkcm9wOiAgICAgMTA0MDtcbiR6aW5kZXhNb2RhbDogICAgICAgICAgICAgMTA1MDtcblxuXG4vLyBTcHJpdGUgaWNvbnMgcGF0aFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGljb25TcHJpdGVQYXRoOiAgICAgICAgICBhc3NldC11cmwoXCJnbHlwaGljb25zLWhhbGZsaW5ncy5wbmdcIiwgaW1hZ2UpICFkZWZhdWx0O1xuJGljb25XaGl0ZVNwcml0ZVBhdGg6ICAgICBhc3NldC11cmwoXCJnbHlwaGljb25zLWhhbGZsaW5ncy13aGl0ZS5wbmdcIiwgaW1hZ2UpICFkZWZhdWx0O1xuXG5cbi8vIElucHV0IHBsYWNlaG9sZGVyIHRleHQgY29sb3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRwbGFjZWhvbGRlclRleHQ6ICAgICAgICAgJGdyYXlMaWdodCAhZGVmYXVsdDtcblxuXG4vLyBIciBib3JkZXIgY29sb3Jcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRockJvcmRlcjogICAgICAgICAgICAgICAgJGdyYXlMaWdodGVyICFkZWZhdWx0O1xuXG5cbi8vIE5hdmJhclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJG5hdmJhckhlaWdodDogICAgICAgICAgICAgICAgICAgIDQwcHggIWRlZmF1bHQ7XG4kbmF2YmFyQmFja2dyb3VuZDogICAgICAgICAgICAgICAgJGdyYXlEYXJrZXIgIWRlZmF1bHQ7XG4kbmF2YmFyQmFja2dyb3VuZEhpZ2hsaWdodDogICAgICAgJGdyYXlEYXJrICFkZWZhdWx0O1xuXG4kbmF2YmFyVGV4dDogICAgICAgICAgICAgICAgICAgICAgJGdyYXlMaWdodCAhZGVmYXVsdDtcbiRuYXZiYXJMaW5rQ29sb3I6ICAgICAgICAgICAgICAgICAkZ3JheUxpZ2h0ICFkZWZhdWx0O1xuJG5hdmJhckxpbmtDb2xvckhvdmVyOiAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXJMaW5rQ29sb3JBY3RpdmU6ICAgICAgICAgICAkbmF2YmFyTGlua0NvbG9ySG92ZXIgIWRlZmF1bHQ7XG4kbmF2YmFyTGlua0JhY2tncm91bmRIb3ZlcjogICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kbmF2YmFyTGlua0JhY2tncm91bmRBY3RpdmU6ICAgICAgJG5hdmJhckJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRuYXZiYXJTZWFyY2hCYWNrZ3JvdW5kOiAgICAgICAgICBsaWdodGVuKCRuYXZiYXJCYWNrZ3JvdW5kLCAyNSUpICFkZWZhdWx0O1xuJG5hdmJhclNlYXJjaEJhY2tncm91bmRGb2N1czogICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXJTZWFyY2hCb3JkZXI6ICAgICAgICAgICAgICBkYXJrZW4oJG5hdmJhclNlYXJjaEJhY2tncm91bmQsIDMwJSkgIWRlZmF1bHQ7XG4kbmF2YmFyU2VhcmNoUGxhY2Vob2xkZXJDb2xvcjogICAgI2NjYyAhZGVmYXVsdDtcbiRuYXZiYXJCcmFuZENvbG9yOiAgICAgICAgICAgICAgICAkbmF2YmFyTGlua0NvbG9yICFkZWZhdWx0O1xuXG5cbi8vIEhlcm8gdW5pdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGhlcm9Vbml0QmFja2dyb3VuZDogICAgICAgICAgICAgICRncmF5TGlnaHRlciAhZGVmYXVsdDtcbiRoZXJvVW5pdEhlYWRpbmdDb2xvcjogICAgICAgICAgICBpbmhlcml0ICFkZWZhdWx0O1xuJGhlcm9Vbml0TGVhZENvbG9yOiAgICAgICAgICAgICAgIGluaGVyaXQgIWRlZmF1bHQ7XG5cblxuLy8gRm9ybSBzdGF0ZXMgYW5kIGFsZXJ0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJHdhcm5pbmdUZXh0OiAgICAgICAgICAgICAjYzA5ODUzICFkZWZhdWx0O1xuJHdhcm5pbmdCYWNrZ3JvdW5kOiAgICAgICAjZmNmOGUzO1xuJHdhcm5pbmdCb3JkZXI6ICAgICAgICAgICBkYXJrZW4oYWRqdXN0LWh1ZSgkd2FybmluZ0JhY2tncm91bmQsIC0xMCksIDMlKSAhZGVmYXVsdDtcblxuJGVycm9yVGV4dDogICAgICAgICAgICAgICAjYjk0YTQ4ICFkZWZhdWx0O1xuJGVycm9yQmFja2dyb3VuZDogICAgICAgICAjZjJkZWRlO1xuJGVycm9yQm9yZGVyOiAgICAgICAgICAgICBkYXJrZW4oYWRqdXN0LWh1ZSgkZXJyb3JCYWNrZ3JvdW5kLCAtMTApLCAzJSkgIWRlZmF1bHQ7XG5cbiRzdWNjZXNzVGV4dDogICAgICAgICAgICAgIzQ2ODg0NyAhZGVmYXVsdDtcbiRzdWNjZXNzQmFja2dyb3VuZDogICAgICAgI2RmZjBkODtcbiRzdWNjZXNzQm9yZGVyOiAgICAgICAgICAgZGFya2VuKGFkanVzdC1odWUoJHN1Y2Nlc3NCYWNrZ3JvdW5kLCAtMTApLCA1JSkgIWRlZmF1bHQ7XG5cbiRpbmZvVGV4dDogICAgICAgICAgICAgICAgIzNhODdhZCAhZGVmYXVsdDtcbiRpbmZvQmFja2dyb3VuZDogICAgICAgICAgI2Q5ZWRmNztcbiRpbmZvQm9yZGVyOiAgICAgICAgICAgICAgZGFya2VuKGFkanVzdC1odWUoJGluZm9CYWNrZ3JvdW5kLCAtMTApLCA3JSkgIWRlZmF1bHQ7XG5cblxuLy8gRklYRUQgR1JJRFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gRGVmYXVsdCwgOTQwcHhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRncmlkQ29sdW1uczogICAgICAgICAgICAgMTIgIWRlZmF1bHQ7XG4kZ3JpZENvbHVtbldpZHRoOiAgICAgICAgIDYwcHggIWRlZmF1bHQ7XG4kZ3JpZEd1dHRlcldpZHRoOiAgICAgICAgIDIwcHggIWRlZmF1bHQ7XG4kZ3JpZFJvd1dpZHRoOiAgICAgICAgICAgICgkZ3JpZENvbHVtbnMgKiAkZ3JpZENvbHVtbldpZHRoKSArICgkZ3JpZEd1dHRlcldpZHRoICogKCRncmlkQ29sdW1ucyAtIDEpKSAhZGVmYXVsdDtcblxuLy8gUG9ydHJhaXQgdGFibGV0IHRvIGRlZmF1bHQgZGVza3RvcFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGdyaWRDb2x1bW5XaWR0aFRhYmxldDogICA0MnB4ICFkZWZhdWx0O1xuJGdyaWRHdXR0ZXJXaWR0aFRhYmxldDogICAyMHB4ICFkZWZhdWx0O1xuXG4vLyBMYXJnZSBkZXNrdG9wIGFuZCB1cFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJGdyaWRDb2x1bW5XaWR0aExhcmdlOiAgICA3MHB4ICFkZWZhdWx0O1xuJGdyaWRHdXR0ZXJXaWR0aExhcmdlOiAgICAzMHB4ICFkZWZhdWx0O1xuXG5cbi8vIEZMVUlEIEdSSURcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIERlZmF1bHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRmbHVpZEdyaWRDb2x1bW5XaWR0aDogICAgICAgICA2LjM4Mjk3ODcyMyUgIWRlZmF1bHQ7XG4kZmx1aWRHcmlkR3V0dGVyV2lkdGg6ICAgICAgICAgMi4xMjc2NTk1NzQlICFkZWZhdWx0O1xuXG4vLyBQb3J0cmFpdCB0YWJsZXQgdG8gZGVmYXVsdCBkZXNrdG9wXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kZmx1aWRHcmlkQ29sdW1uV2lkdGhUYWJsZXQ6ICAgNS44MDExMDQ5NzIlICFkZWZhdWx0O1xuJGZsdWlkR3JpZEd1dHRlcldpZHRoVGFibGV0OiAgIDIuNzYyNDMwOTM5JSAhZGVmYXVsdDtcblxuLy8gTGFyZ2UgZGVza3RvcCBhbmQgdXBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiRmbHVpZEdyaWRDb2x1bW5XaWR0aExhcmdlOiAgICA1Ljk4MjkwNTk4MyUgIWRlZmF1bHQ7XG4kZmx1aWRHcmlkR3V0dGVyV2lkdGhMYXJnZTogICAgMi41NjQxMDI1NjQlICFkZWZhdWx0O1xuXG5cblxuLy8gUkVTUE9OU0lWRSBERVNJR05cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1lZGlhIHdpZHRoc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTm90IHN1cHBvcnRlZCBTYXNzIDwgMy4yIDooXG4vLyAkbWVkaWFQaG9uZTogICAgICAgICAgICAgIDQ4MHB4ICFkZWZhdWx0O1xuLy8gJG1lZGlhVGFibGV0OiAgICAgICAgICAgICA3NjhweCAhZGVmYXVsdDtcbi8vICRtZWRpYURlc2t0b3A6ICAgICAgICAgICAgOTgwcHggIWRlZmF1bHQ7XG4vLyAkbWVkaWFMYXJnZTogICAgICAgICAgICAgIDEyMDBweCAhZGVmYXVsdDsgLy8gYW5kIHVwcGVyXG4iLCJAaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvZm9ybXNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNoYWRvd1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9pbWFnZXNcIjtcblxuLypcbkJ1dHRvbnNcblxuLnVzeWQtdWktcHJpbWFyeSAtIFRoZSBwcmltYXJ5IGFjdGlvbiBidXR0b24gZm9yIGEgcGFydGljdWxhciBpbnN0YW5jZSAoaS5lLiBzdWJtaXQpXG4udXN5ZC11aS1zZWNvbmRhcnkgLSBBIHNlY29uZGFyeSBhY3Rpb24gYnV0dG9uIGZvciBhIHBhcnRpY3VsYXIgaW5zdGFuY2UgKGkuZS4gYmFjayBvciByZXNldClcbiovXG4udXN5ZC11aS1idXR0b24ge1xuXHRAaW5jbHVkZSBidXR0b24oI2VlZSwgYmxhY2spO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuXHQudXN5ZC1pY29uLXNtYWxsIHtcblx0XHRsaW5lLWhlaWdodDogN3B4O1xuXHR9XG59XG5cbi51c3lkLWJ1dHRvbi1ncm91cCB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXG5cdC51c3lkLXVpLWJ1dHRvbiwgLnVzeWQtdWktYnV0dG9uLXByaW1hcnksIC51c3lkLXVpLWJ1dHRvbi1zZWNvbmRhcnkge1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgbGlnaHRlbihibGFjaywgODUlKTtcblxuXHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCk7XG5cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoM3B4IDAgMCAzcHgpO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JjpsYXN0LWNoaWxkLCAmLnVzeWQtdWktbGFzdC1jaGlsZCB7XG5cdFx0XHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDAgM3B4IDNweCAwKTtcblx0XHR9XG5cdH1cbn1cblxuLnVzeWQtdWktYnV0dG9uLXByaW1hcnkge1xuXHRAaW5jbHVkZSBidXR0b24oJGJyYW5kLXByaW1hcnkpO1xufVxuXG5hLnVzeWQtdWktYnV0dG9uLXByaW1hcnk6YWN0aXZlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG59XG5cbi51c3lkLXVpLWJ1dHRvbi1zZWNvbmRhcnkge1xuXHRAaW5jbHVkZSBidXR0b24oJGJyYW5kLXNlY29uZGFyeSk7XG59XG5cbi51c3lkLWJ1dHRvbi1sYXJnZSB7XG5cdGZvbnQtc2l6ZTogMThweDtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdHBhZGRpbmc6IDVweCAxNHB4O1xufVxuXG4udXN5ZC1idXR0b24td2lkZSB7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmhlbHAtYmxvY2sge1xuXHRmb250LXNpemU6IDEycHg7XG59XG5cbi5jb250cm9sLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qXG5UZXh0IGlucHV0XG4qL1xuaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1wYXNzd29yZF0sIGlucHV0W3R5cGU9ZW1haWxdLCBpbnB1dFt0eXBlPXVybF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1zZWFyY2hdLCBpbnB1dFt0eXBlPW51bWJlcl0ge1xuXHRAaW5jbHVkZSB0ZXh0LWlucHV0KCRmb250LWNvbG91ci1kYXJrLCAkYnJhbmQtc2Vjb25kYXJ5KTtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cblxuLypcblNlbGVjdCBib3hcbiovXG5zZWxlY3Qge1xuXHRAaW5jbHVkZSBzZWxlY3QoJGZvbnQtY29sb3VyLWRhcmssICRicmFuZC1zZWNvbmRhcnkpO1xufVxuXG4vKlxuVGV4dGFyZWFcbiovXG50ZXh0YXJlYSB7XG5cdEBpbmNsdWRlIHRleHRhcmVhKCRmb250LWNvbG91ci1kYXJrLCAkYnJhbmQtc2Vjb25kYXJ5KTtcblx0d2lkdGg6IDgwJTtcblx0aGVpZ2h0OiA2ZW07XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8qXG5SYWRpbyBhbmQgY2hlY2tib3ggaW5wdXRcbiovXG5pbnB1dFt0eXBlPXJhZGlvXSwgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHQvL21hcmdpbjogMDtcbn1cblxuLypcbkZvcm0gbGFiZWxcbiovXG4udXN5ZC11aS1mb3JtLWxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbi1ib3R0b206IDVweDtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGZvbnQtc2l6ZTogMS4yZW07XG5cblx0Ji51c3lkLWlubGluZSB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHR9XG59XG5cbi51c3lkLXVpLWZvcm0tYWN0aW9ucyB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRtYXJnaW4tdG9wOiAyZW07XG59XG5cbi8qIEFkZHMgYSByZWQgYXN0ZXJpc2sgYWZ0ZXIgdGhlIGZpZWxkICovXG4udXN5ZC1yZXF1aXJlZCB7XG5cdCY6YWZ0ZXIge1xuXHRcdGNvbG9yOiAkZXJyb3ItY29sb3I7XG5cdFx0bWFyZ2luLWxlZnQ6IDAuNWVtO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0Zm9udC1zaXplOiAwLjhlbTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XG5cdFx0Y29udGVudDogJ1xcZTkwMic7IC8qIGFzdGVyaXNrIGljb24gKi9cblx0fVxufVxuXG4udXN5ZC11aS1zbWFsbC1wcmludCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuXHRvdmVyZmxvdzogYXV0bztcblx0YmFja2dyb3VuZDogbGlnaHRlbihibGFjaywgOTklKTtcblx0cGFkZGluZzogMTBweDtcblxuXHQ6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHQ6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXG5cdCYudXN5ZC11aS1maXhlZC1oZWlnaHQge1xuXHRcdGhlaWdodDogMjBlbTtcblx0fVxufVxuXG4udXN5ZC1mb3JtLWhlYWRpbmcge1xuXHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0bWFyZ2luOiAwLjVlbSAwO1xuXHRkaXNwbGF5OiBibG9jaztcblx0Y2xlYXI6IGJvdGg7XG59XG5cbi51c3lkLWZvcm0tYWN0aW9ucyB7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG5cdHBhZGRpbmctdG9wOiAyMHB4O1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG59XG5cbi8qXG5Gb3JtXG5cbi51c3lkLXVpLWZvcm0tY29tcGFjdCAtIEEgc21hbGxlciwgbW9yZSBjb21wYWN0IGZvcm0gbGF5b3V0XG4udXN5ZC11aS1mb3JtLW9uZWxpbmVyIC0gQSBmb3JtIG1lYW50IHRvIGJlIHNob3duIG9uIGEgc2luZ2xlIGxpbmUgKHJlbW92ZXMgaW50ZXItcm93IHBhZGRpbmcgZXRjKVxuKi9cbi51c3lkLWZvcm0ge1xuXHRiYWNrZ3JvdW5kOiAkYmctbGlnaHRlc3QtY29sb3I7XG5cdHBhZGRpbmc6IDFlbTtcblxuXHRmaWVsZHNldCB7XG5cdFx0cGFkZGluZy10b3A6IDFweDtcblx0fVxuXG5cdGxlZ2VuZCB7XG5cdFx0Y29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXHRcdGZvbnQtc2l6ZTogMS42ZW07XG5cdH1cblxuXHRociB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdG1hcmdpbjogMTBweCAwO1xuXHR9XG5cbn1cblxuLmJveHNpemluZyB7XG5cdC51c3lkLXVpLWlucHV0LWV4cGFuZGFibGUge1xuXHRcdEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLm5vLWJveHNpemluZyB7XG5cdC51c3lkLXVpLWlucHV0LWV4cGFuZGFibGUge1xuXHRcdHdpZHRoOiA5NyU7XG5cdFx0KndpZHRoOiA5NSU7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGluc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2lubGluZS1ibG9ja1wiO1xuQGltcG9ydCBcImNvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvaGFja3NcIjtcblxuLnVzeWQtdWktbmF2YmFyIHtcblx0YmFja2dyb3VuZDogJGJnLWRhcmtlci1jb2xvcjtcblx0bWFyZ2luOiAwO1xuXHRjb2xvcjogd2hpdGU7XG5cdG1pbi1oZWlnaHQ6IDU3cHg7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXG5cdGEge1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0fVxufVxuXG4udXN5ZC1oZWFkZXItdGl0bGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbjogMTdweCAwIDAgMzBweDtcblx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnVzeWQtdWktY29tbW9uLW5hdiB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcblx0bWFyZ2luOiAyLjhlbSAwO1xufVxuXG4udXN5ZC11aS1icmVhZGNydW1icyB7XG5cdG1hcmdpbjogMCAwIDIwcHggMDtcbn1cblxuLnVzeWQtdWktbG9nbyB7XG5cdCRsb2dvLXdpZHRoOiAyNDBweDtcblx0JGxvZ28taGVpZ2h0OiAzMXB4O1xuXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMTNweDtcblxuXHRhIHtcblx0XHRAaW5jbHVkZSBoaWRlLXRleHQ7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6ICRsb2dvLXdpZHRoO1xuXHRcdGhlaWdodDogJGxvZ28taGVpZ2h0O1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IG5vLXJlcGVhdCBsZWZ0IHRvcDtcblx0XHRiYWNrZ3JvdW5kLXNpemU6ICRsb2dvLXdpZHRoICRsb2dvLWhlaWdodDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vc3lkbmV5LWxvZ28taG9yaXpvbnRhbC5wbmcpO1xuXHR9XG5cblx0QGluY2x1ZGUgaGktZHBpIHtcblx0XHRhIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9zeWRuZXktbG9nby1ob3Jpem9udGFsQDJ4LnBuZyk7XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLXVpLWJyZWFkY3J1bWIge1xuXHRtYXJnaW4tdG9wOiAyZW07XG5cdGZvbnQtc2l6ZTogMWVtO1xuXHRjb2xvcjogbGlnaHRlbihibGFjaywgNDAlKTtcblxuXHRhIHtcblx0XHRjb2xvcjogbGlnaHRlbihibGFjaywgNDAlKTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0fVxuXG59XG5cbi8vIFRoZSBiYW5uZXIgdXNlZCBvbiBhcHBsaWNhdGlvbnMgbGlrZSBzZWFyY2ggYW5kIGNsYXNzaWZpZWRzXG4vLyBUT0RPOiBnaXZlIGxvdmVcbi51c3lkLXNlY3Rpb24tYmFubmVyIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdG1hcmdpbi10b3A6IDFlbTtcblx0cGFkZGluZy1ib3R0b206IDFlbTtcblx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRicmFuZC1wcmltYXJ5O1xufVxuXG4udXN5ZC1zZWN0aW9uLXRpdGxlIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuLy8gVGhlIHNlYXJjaCBib3ggYXQgdGhlIHRvcCBvZiB0aGUgcGFnZVxuLnVzeWQtZ2xvYmFsLXNlYXJjaCB7XG5cdG1hcmdpbi1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGZvcm1zLnNjc3NcblxuXHQudXN5ZC1nbG9iYWwtc2VhcmNoLWxhYmVsIHtcblx0XHRjb2xvcjogd2hpdGU7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHQvLyBTZWFyY2ggaW5wdXQgc3R5bGVzIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGZvcm0gaW5wdXQgc3R5bGVzIHdoaWNoIHVuZm9ydHVuYXRlbHkgaGF2ZSBhIG1hcmdpbiBvbiB0aGVtXG5cdGlucHV0W3R5cGU9dGV4dF0ge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGZvcm1zLnNjc3Ncblx0fVxufVxuXG4vLyBwb3NpdGlvbiByZWxhdGl2ZSBpcyBmb3IgYW5pbWF0aW5nIGJvZHkgdG9wIHBhcmFtZXRlciBvbiBvcGVuaW5nIHRoZSB0b3Agbm90aWZpZXJcbmJvZHkudXN5ZC1ub3RpZmllci1vcGVuIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi51c3lkLXVpLWdsb2JhbC1oZWFkaW5nIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuQGluY2x1ZGUgbWVkaWEtc21hbGwtdXAge1xuXG5cdGJvZHk6OmJlZm9yZSB7XG5cdFx0aGVpZ2h0OiA2N3B4O1xuXHR9XG5cblx0LnVzeWQtdWktbG9nbyB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cblxuXHQudXN5ZC1nbG9iYWwtc2VhcmNoIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0bWFyZ2luLXRvcDogMTRweDtcblxuXHRcdC51c3lkLWdsb2JhbC1zZWFyY2gtbGFiZWwge1xuXHRcdFx0QGluY2x1ZGUgaW5saW5lLWJsb2NrOyAvLyBJRTctY29tcGF0aWJsZSBpbmxpbmUgYmxvY2tcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0fVxuXG5cdFx0LnVzeWQtZ2xvYmFsLXNlYXJjaC1jb250cm9scyB7XG5cdFx0XHRAaW5jbHVkZSBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIH1cblx0fVxuXG5cdC51c3lkLXVpLWhlYWRlciB7XG5cdFx0cGFkZGluZzogMC4xcHggMCAwIDA7IC8vIENoZWFwIGFuZCBuYXN0eSBmaXggdG8gcmVzb2x2ZSB0aGUgbWFyZ2luIGNvbGxhcHNpbmcgYnVnIGluIEZpcmVmb3ggaS5lLiBtYXJnaW5zIG5vdCBiZWluZyBjb3JyZWN0bHkgY29sbGFwc2VkXG5cdFx0QGluY2x1ZGUgaGFzLWxheW91dDtcblx0fVxuXG5cdC51c3lkLXVpLW5vLXRhYnMge1xuXHRcdC51c3lkLXVpLWhlYWRlciB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7XG5cdFx0XHQvLyBtYXJnaW4tYm90dG9tOiAyZW07XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtdWktZ2xvYmFsLWhlYWRpbmcge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXG5cdFx0JjpsaW5rLCAmOnZpc2l0ZWQge1xuXHRcdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGNvbG9yOiBsaWdodGVuKCRicmFuZC1zZWNvbmRhcnksIDIwJSk7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtaGVhZGVyLXRvb2xzIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdH1cbn1cblxuLy8gRnJvbSB0YWJsZXQgZG93biB0aGUgaGVhZGVyIGdldHMgYSBiaXQgdG9vIGNyYW1wZWQgdG8gZml0IHRoZSBmdWxsLXNpemUgbG9nbywgc28gaXQncyBzd2FwcGVkIG91dFxuLy8gd2l0aCBhIGNvbXBhY3QgdmVyc2lvblxuQGluY2x1ZGUgbWVkaWEtc21hbGwtZG93biB7XG5cblx0Ym9keTo6YmVmb3JlIHtcblx0ICAgIGhlaWdodDogNjdweDtcblx0fVxuXG5cdGJvZHk6OmFmdGVyIHtcblx0ICAgIGNvbnRlbnQ6ICcnO1xuXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgdG9wOiA2NnB4O1xuXHQgICAgaGVpZ2h0OiAzMXB4O1xuXHQgICAgd2lkdGg6IDEwMCU7XG5cdCAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuXHQgICAgei1pbmRleDogLTE7XG5cdH1cblxuXHQudXN5ZC1oZWFkZXItdGl0bGUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQudXN5ZC11aS1sb2dvIHtcblx0XHQkbG9nby13aWR0aDogMTE2cHg7XG5cdFx0JGxvZ28taGVpZ2h0OiA0MHB4O1xuXG5cdFx0YSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vc3lkbmV5LWxvZ28tc3RhbmRhcmQtaW52ZXJ0ZWQucG5nKTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogJGxvZ28td2lkdGggJGxvZ28taGVpZ2h0O1xuXHRcdFx0d2lkdGg6ICRsb2dvLXdpZHRoO1xuXHRcdFx0aGVpZ2h0OiAkbG9nby1oZWlnaHQ7XG5cdFx0fVxuXG5cdFx0QGluY2x1ZGUgaGktZHBpIHtcblx0XHRcdGEge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vc3lkbmV5LWxvZ28tc3RhbmRhcmQtaW52ZXJ0ZWRAMngucG5nKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQudXN5ZC11aS1nbG9iYWwtaGVhZGluZyB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDUwJTtcblx0XHRwYWRkaW5nOiA4cHggMTBweCA3cHggMTBweDtcblx0XHRmb250LXNpemU6IDEuMmVtO1xuXHRcdGNvbG9yOiAjZGRkO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMyRjJGMkY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cblx0XHRcdC8vIFNob3cgdGhlIHVzeWQtZ2xvYmFsLW5hdiB0YWJzIG9uIGNsaWNrIGZvciBtb2JpbGVcblx0XHRcdCsgbmF2ID4gaDIgKyB1bCB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bGluaywgJjpob3ZlciwgJjphY3RpdmUsICY6dmlzaXRlZCB7XG5cdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXG5cdFx0LnVzeWQtaWNvbiB7XG5cdFx0XHRmb250LXNpemU6IDAuOGVtO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDVweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcdFx0Ym90dG9tOiAxcHg7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtdWktbmF2YmFyIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdC51c3lkLXVpLWJyZWFkY3J1bWJzIHtcblx0XHRtYXJnaW46IDIwcHggMjBweCAyMHB4O1xuXHR9XG5cblx0LnVzeWQtdWktY29tbW9uLW5hdiB7XG5cdFx0Y29sb3I6IHdoaXRlO1xuXHRcdGJhY2tncm91bmQ6ICM0NDQ7XG5cdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuXHR9XG5cblx0LnVzeWQtdWktZ2xvYmFsLWhlYWRpbmcsIC51c3lkLXVpLWNvbW1vbi1uYXYge1xuXHRcdC51c3lkLWljb24ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXNtYWxsIHtcblx0Ym9keTo6YWZ0ZXIge1xuXHQgICAgY29udGVudDogJyc7XG5cdCAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICBoZWlnaHQ6IDMwcHg7XG5cdCAgICB3aWR0aDogMTAwJTtcblx0ICAgIGJhY2tncm91bmQ6ICM0NDQ7XG5cdCAgICB6LWluZGV4OiAtMTtcblx0ICAgIHRvcDogNjZweDtcblx0fVxuXG5cdC51c3lkLXVpLWNvbW1vbi1uYXYge1xuXHQgICAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgICAgdG9wOiA2NnB4O1xuXHQgICAgd2lkdGg6IDUwJTtcblx0ICAgIGxlZnQ6IDA7XG5cblx0ICAgIC51c3lkLXVpLWdsb2JhbC1oZWFkaW5ne1xuXHQgICAgXHR3aWR0aDogMTAwJTtcblx0ICAgIH1cblx0fVxuXG5cdC51c3lkLXVpLW5hdmJhciB7XG5cdFx0bWFyZ2luLWJvdHRvbTogNTJweDtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS14c21hbGwge1xuXG5cdC51c3lkLXNlY3Rpb24tYmFubmVyIHtcblx0XHRtYXJnaW4tbGVmdDogMjBweDtcblx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cdH1cblxuXHQudXN5ZC1nbG9iYWwtc2VhcmNoIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGJhY2tncm91bmQ6IGxpZ2h0ZW4oYmxhY2ssIDI2JSk7XG5cdFx0bWF4LWhlaWdodDogMDsgLy8gVXNlZCBieSB0b2dnbGVyLCBpdCdzIG9mZiBieSBkZWZhdWx0IG9uIG1vYmlsZVxuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24obWF4LWhlaWdodCAwLjI1cyk7XG5cdFx0QGluY2x1ZGUgYm94LXNoYWRvdyhpbnNldCAwIDFweCA4cHggIzFjMWMxYyk7XG5cblx0XHQudXN5ZC1nbG9iYWwtc2VhcmNoLWxhYmVsIHtcblx0XHRcdEBpbmNsdWRlIGhpZGUtZnJvbS1leWVzO1xuXHRcdH1cblxuXHRcdC51c3lkLWdsb2JhbC1zZWFyY2gtY29udHJvbHMge1xuXHRcdFx0cGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcblx0XHR9XG5cblx0XHRpbnB1dFt0eXBlPXRleHRdIHtcblx0XHRcdC8vIFRoZSB0ZXh0IGZpZWxkIGlzIG9mZnNldCBpbiB3aWR0aCBieSB0aGUgd2lkdGggb2YgdGhlIGJ1dHRvblxuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDQ1cHgpO1xuXHRcdFx0QGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcblx0XHR9XG5cblx0XHQvLyBUb2dnbGVkIG9mZiBvbiBtb2JpbGVcblx0XHQmLnVzeWQtc2hvdyB7XG5cdFx0XHRtYXgtaGVpZ2h0OiA1MHB4O1xuXHRcdH1cblx0fVxufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBTZXQgYCRpbmxpbmUtYmxvY2stYWxpZ25tZW50YCB0byBgbm9uZWAgb3IgYGZhbHNlYCB0byBkaXNhYmxlIHRoZSBvdXRwdXRcbi8vIG9mIGEgdmVydGljYWwtYWxpZ24gcHJvcGVydHkgaW4gdGhlIGlubGluZS1ibG9jayBtaXhpbi5cbi8vIE9yIHNldCBpdCB0byBhIGxlZ2FsIHZhbHVlIGZvciBgdmVydGljYWwtYWxpZ25gIHRvIGNoYW5nZSB0aGUgZGVmYXVsdC5cbiRpbmxpbmUtYmxvY2stYWxpZ25tZW50OiBtaWRkbGUgIWRlZmF1bHQ7XG5cbi8vIFByb3ZpZGVzIGEgY3Jvc3MtYnJvd3NlciBtZXRob2QgdG8gaW1wbGVtZW50IGBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7YFxuQG1peGluIGlubGluZS1ibG9jaygkYWxpZ25tZW50OiAkaW5saW5lLWJsb2NrLWFsaWdubWVudCkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1tb3ppbGxhIHtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1zdGFjaztcbiAgfVxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBpZiAkYWxpZ25tZW50IGFuZCAkYWxpZ25tZW50ICE9IG5vbmUge1xuICAgIHZlcnRpY2FsLWFsaWduOiAkYWxpZ25tZW50O1xuICB9XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqdmVydGljYWwtYWxpZ246IGF1dG87XG4gICAgem9vbTogMTtcbiAgICAqZGlzcGxheTogaW5saW5lO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3VwcG9ydFwiO1xuXG4vLyBUaGUgYHpvb21gIGFwcHJvYWNoIGdlbmVyYXRlcyBsZXNzIENTUyBidXQgZG9lcyBub3QgdmFsaWRhdGUuXG4vLyBTZXQgdGhpcyB0byBgYmxvY2tgIHRvIHVzZSB0aGUgZGlzcGxheS1wcm9wZXJ0eSB0byBoYWNrIHRoZVxuLy8gZWxlbWVudCB0byBnYWluIGxheW91dC5cbiRkZWZhdWx0LWhhcy1sYXlvdXQtYXBwcm9hY2g6IHpvb20gIWRlZmF1bHQ7XG5cbi8vIFRoaXMgbWl4aW4gY2F1c2VzIGFuIGVsZW1lbnQgbWF0Y2hpbmcgdGhlIHNlbGVjdG9yXG4vLyB0byBnYWluIHRoZSBcImhhc0xheW91dFwiIHByb3BlcnR5IGluIGludGVybmV0IGV4cGxvcmVyLlxuLy8gTW9yZSBpbmZvcm1hdGlvbiBvbiBbaGFzTGF5b3V0XShodHRwOi8vcmVmZXJlbmNlLnNpdGVwb2ludC5jb20vY3NzL2hhc2xheW91dCkuXG5AbWl4aW4gaGFzLWxheW91dCgkYXBwcm9hY2g6ICRkZWZhdWx0LWhhcy1sYXlvdXQtYXBwcm9hY2gpIHtcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgIEBpZiAkYXBwcm9hY2ggPT0gem9vbSB7XG4gICAgICBAaW5jbHVkZSBoYXMtbGF5b3V0LXpvb207XG4gICAgfSBAZWxzZSBpZiAkYXBwcm9hY2ggPT0gYmxvY2sge1xuICAgICAgQGluY2x1ZGUgaGFzLWxheW91dC1ibG9jaztcbiAgICB9IEBlbHNlIHtcbiAgICAgIEB3YXJuIFwiVW5rbm93biBoYXMtbGF5b3V0IGFwcHJvYWNoOiAjeyRhcHByb2FjaH1cIjtcbiAgICAgIEBpbmNsdWRlIGhhcy1sYXlvdXQtem9vbTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGhhcy1sYXlvdXQtem9vbSB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNiBvciAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNyB7XG4gICAgKnpvb206IDE7XG4gIH1cbn1cblxuQG1peGluIGhhcy1sYXlvdXQtYmxvY2sge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gICAgLy8gVGhpcyBtYWtlcyBpZTYgZ2V0IGxheW91dFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvLyBhbmQgdGhpcyBwdXRzIGl0IGJhY2sgdG8gYmxvY2tcbiAgICAmIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgfVxufVxuXG4vLyBBIGhhY2sgdG8gc3VwcGx5IElFNiAoYW5kIGJlbG93KSB3aXRoIGEgZGlmZmVyZW50IHByb3BlcnR5IHZhbHVlLlxuLy8gW1JlYWQgbW9yZV0oaHR0cDovL3d3dy5jc3Nwb3J0YWwuY29tL2Nzcy1oYWNrcy8jaW5fY3NzLWltcG9ydGFudCkuXG5AbWl4aW4gYmFuZy1oYWNrKCRwcm9wZXJ0eSwgJHZhbHVlLCAkaWU2LXZhbHVlKSB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNiB7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0gIWltcG9ydGFudDtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JGllNi12YWx1ZX07XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNoYWRvd1wiO1xuXG4udXN5ZC1ibG9jay1uYXYge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdD4gdWwge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMDtcblxuXHRcdD4gbGkge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0XHRib3JkZXItbGVmdDogMXB4IHNvbGlkICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRhIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0PiBpIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQ+IGxpID4gYSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdHBhZGRpbmc6IDZweCAxMHB4O1xuXHRcdFx0bWFyZ2luOiAwIDVweDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdD4gbGk6aG92ZXIsXG5cdFx0LnVzeWQtYWN0aXZlIHtcblx0XHRcdHotaW5kZXg6IDkwO1xuXG5cdFx0XHQ+IGEge1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRcdGhlaWdodDogMDtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiA1cHg7XG5cdFx0XHRcdGJvcmRlci10b3AtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IC0xMHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC51c3lkLWJsb2NrLXN1Ym5hdiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAyNnB4O1xuXHRcdFx0ei1pbmRleDogMTAwO1xuXHRcdH1cblxuXHRcdD4gbGk6aG92ZXJ7XG5cblx0XHRcdD4gYSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcblx0XHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHR9XG5cblx0XHRcdHNwYW57XG5cdFx0XHRcdGJvcmRlci10b3AtY29sb3I6ICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcblx0XHRcdH1cblxuICAgIFx0XHQudXN5ZC1ibG9jay1zdWJuYXYge1xuICAgIFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgIFx0XHR9XG5cbiAgICBcdFx0c3BhbiB7XG4gICAgXHRcdFx0ei1pbmRleDogMTIwO1xuICAgIFx0XHR9XG5cdFx0fVxuXG5cdFx0PiAudXN5ZC1hY3RpdmU6aG92ZXIge1xuXHRcdFx0PiBhIHtcblx0XHRcdFx0YmFja2dyb3VuZDogJGJyYW5kLXByaW1hcnk7XG5cdFx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGFue1xuXHRcdFx0XHRib3JkZXItdG9wLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuXG4vLyBUaGUgYXBwZWFyZW5jZSBvZiB0aGUgc3ViIG5hdiB2YXJpZXMgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQgaXMgYXBwZWFyaW5nIG9uIGhvdmVyICh1c3lkLXN1Ym5hdi1ob3Zlcilcbi8vIG9yIGl0IGlzIGFwcGVhcmluZyBpbiB0aGUgcGFnZSBvbiBhIHNlY29uZCBsZXZlbCBwYWdlICh1c3lkLXN1Ym5hdi1hY3RpdmUpLiBJdCBpcyBoaWRkZW4gYnkgZGVmYXVsdC5cblxuLnVzeWQtYmxvY2stc3VibmF2IHtcblx0ZGlzcGxheTogbm9uZTtcblx0d2lkdGg6IDEwMCU7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGJhY2tncm91bmQ6ICNmMWYxZjE7XG5cdHBhZGRpbmc6IDMwcHggMTZweCA1NXB4O1xuXHRAaW5jbHVkZSBib3gtc2hhZG93KDBweCAxNXB4IDE1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCkgKTtcbn1cblxuLnVzeWQtYmxvY2stc3VibmF2LWl0ZW0ge1xuXHR3aWR0aDogMjMuNSU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4udXN5ZC1ibG9jay1zdWJuYXYtbGluazpsaW5rLFxuLnVzeWQtYmxvY2stc3VibmF2LWxpbms6dmlzaXRlZCB7XG5cdGNvbG9yOiAjMDAwO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi51c3lkLWJsb2NrLXN1Ym5hdi1saW5rOmhvdmVyIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi51c3lkLXN1Ym5hdi1hY3RpdmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtYXJnaW4tdG9wOiA0MHB4O1xuXHRiYWNrZ3JvdW5kOiAjRkZGO1xuXHRwYWRkaW5nLXRvcDogMTVweDtcblxuXHRoMiB7XG5cdFx0Y29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXHRcdG1hcmdpbjogMCAxNnB4IDEwcHg7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHR9XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0ICAgIHdpZHRoOiAxMDAlO1xuXHQgICAgaGVpZ2h0OiAycHg7XG5cdCAgICBiYWNrZ3JvdW5kOiAjZTY0NjI2O1xuXHQgICAgZGlzcGxheTogYmxvY2s7XG5cdCAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICB0b3A6IC0xM3B4O1xuXHQgICAgbGVmdDogMDtcblx0fVxuXG5cdC51c3lkLWJsb2NrLXN1Ym5hdi1pdGVtcyB7XG5cdFx0YmFja2dyb3VuZDogJGJyYW5kLWNvbG91ci1saWdodC1ncmV5O1xuXHRcdHBhZGRpbmc6IDEwcHggOHB4IDA7XG5cdH1cblxuXHQudXN5ZC1ibG9jay1zdWJuYXYtaXRlbSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiA4cHggOHB4IDEzcHg7XG5cdH1cblxuXHQudXN5ZC1zdWJuYXYtY3VycmVudCB7XG5cdFx0YmFja2dyb3VuZDogI0ZGRjtcblx0fVxufVxuXG4udXN5ZC1ibG9jay1uYXYtdmVydGljYWwge1xuXHQ+IHVsID4gbGkge1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdGJvcmRlci1sZWZ0OiBub25lO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cblx0XHQ+IGEge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdH1cblxuXHRcdCYudXN5ZC1hY3RpdmUge1xuXHRcdFx0c3BhbiB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0XHRib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkYnJhbmQtcHJpbWFyeTtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR0b3A6IDUwJTtcblx0XHRcdFx0cmlnaHQ6IC0xMHB4O1xuXHRcdFx0XHRsZWZ0OiBhdXRvO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAtNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qXG5cdFx0T3ZlcnJpZGluZyBzb21lIHRoaW5ncyBzcGVjaWZpZWQgYnkgdGhlIGFzc3VtZWQgZGVmYXVsdCBob3Jpem9udGFsIG5hdiBzbyB0aGF0IHRoZSB2ZXJ0aWNhbCBuYXYgc3RpbGwgd29ya3MgYXMgYmVmb3JlLlxuXHRcdFRoaXMgaXMgYSBiaXQgb2YgYSBsYXN0LW1pbnV0ZSBoYWNrIGFuZCB1bmRvaW5nIHRoZXNlIHNob3VsZG4ndCBiZSBuZWNlc3NhcnksIHNpbmNlIHRoZSBzdHlsZXMgc2hvdWxkIGJlIGJlaW5nIGFwcGxpZWQgdG8gaG9yaXpvbnRhbFxuXHRcdG5hdnMgYnkgc29tZSBpbWFnaW5hcnkgdXN5ZC1ibG9jay1uYXYtaG9yaXpvbnRhbCBjbGFzcywgcmF0aGVyIHRoYW4gZnJvbSB0aGUgZGVmYXVsdCBibG9jay1uYXYgY2xhc3MuXG5cdFx0SWYgeW91IHdhbnQgdG8gd3JpdGUgc2FpZCBjbGFzcyBhbmQgcmVtb3ZlIHRoaXMgc3R1ZmYsIGZlZWwgZnJlZS4gLSBHcmVnXG5cdFx0Ki9cblx0XHQmOmhvdmVyIHtcblx0XHRcdD4gYSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cblx0XHRcdFx0JiwgJjpob3ZlciB7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji51c3lkLWFjdGl2ZSB7XG5cdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji51c3lkLWFjdGl2ZSB7XG5cdFx0XHRcdHNwYW4ge1xuXHRcdFx0XHRcdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdGJvcmRlci1sZWZ0LWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi8vIEdsb2JhbCBuYXYgaXMgYSBzcGVjaWFsaXNhdGlvbiBvZiBibG9jayBuYXZcblxuLnVzeWQtYmxvY2stbmF2IHtcblx0PiBoMiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4vLyBPbiBtb2JpbGUgZGV2aWNlcyB0aGUgZ2xvYmFsIG5hdiBpcyBhIHVzeWQtYmxvY2stbmF2IHRoYXQgY29sbGFwc2VzIGludG8gYSB2ZXJ0aWNhbCBtZW51XG5AaW5jbHVkZSBtZWRpYS1zbWFsbC1kb3duIHtcblx0LnVzeWQtdWktZ2xvYmFsLWhlYWRpbmcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdC51c3lkLWdsb2JhbC1uYXYge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMDtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdD4gdWwgLnVzeWQtYWN0aXZlID4gYTpsaW5rLFxuXHRcdD4gdWwgLnVzeWQtYWN0aXZlID4gYSB7XG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0YmFja2dyb3VuZDogJGJyYW5kLWNvbG91ci1saWdodC1ncmV5O1xuXHRcdH1cblxuXHRcdD4gdWwge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDEwcHggIzMzMyk7XG5cdFx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkYnJhbmQtY29sb3VyLWxpZ2h0LWdyZXk7XG5cdFx0XHRtYXJnaW46IDMwcHggMCAwIC04cHg7XG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0d2lkdGg6IDgzdnc7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdGNsZWFyOiBib3RoO1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdG1heC1oZWlnaHQ6IDY1dmg7XG4gICAgXHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjRkZGO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHRib3JkZXItdG9wOiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0PiBhIHtcblx0XHRcdFx0XHRwYWRkaW5nOiA5cHggMTBweDtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOiA5cHggMCA5cHggMjdweDtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNGRkY7O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQ+IHVsIHtcblx0XHRcdFx0d2lkdGg6IDg1JTtcblxuXHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRcdD4gc3BhbiB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQudXN5ZC1hY3RpdmUge1xuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0PiBhIHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LnVzeWQtYmxvY2stc3VibmF2IHtcblx0XHRcdFx0cG9zaXRpb246IHN0YXRpYztcblxuXHRcdFx0XHRoMiB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQudXN5ZC1ibG9jay1zdWJuYXYtaXRlbXN7XG5cdFx0XHQgICAgcG9zaXRpb246IHN0YXRpYztcblx0XHRcdCAgICBkaXNwbGF5OiBibG9jaztcblx0XHRcdCAgICBib3gtc2hhZG93OiBub25lO1xuXHRcdFx0ICAgIG1hcmdpbjogMDtcblx0XHRcdCAgICBwYWRkaW5nOiAwO1xuXHRcdFx0ICAgIHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0XHQudXN5ZC1ibG9jay1zdWJuYXYtaXRlbSB7XG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0XHRmb250LXNpemU6IDEycHg7XG5cblx0XHRcdFx0JjpiZWZvcmV7XG5cdFx0XHRcdFx0dG9wOiAxMnB4O1xuXHRcdFx0XHRcdGxlZnQ6IDI4cHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiA5cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0PiBsaSA+IGl7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0ICAgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0ICAgIGNvbG9yOiAjZTY0NjI2O1xuXHRcdFx0ICAgIHBhZGRpbmc6IDZweCA0cHggNXB4IDRweDtcblx0XHRcdCAgICBiYWNrZ3JvdW5kOiAjRENEQ0RDO1xuXHRcdFx0ICAgIG1hcmdpbjogNXB4IDhweCAwIDRweDtcblx0XHRcdCAgICBmb250LXNpemU6IDExcHg7XG5cdFx0XHR9XG5cblx0XHRcdD4gbGk6aG92ZXIge1xuXHRcdFx0XHQudXN5ZC1ibG9jay1zdWJuYXYge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdFx0YTpob3Zlcixcblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0XHRjb2xvcjogIzAwMDtcblx0XHRcdFx0fVxuXHRcdFx0XHQ+IHNwYW4ge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC51c3lkLWJsb2NrLXN1Ym5hdiB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XG5cdFx0XHQgICAgcGFkZGluZzogMDtcblx0XHRcdCAgICBib3gtc2hhZG93OiBub25lO1xuXHRcdFx0fVxuXHRcdFx0PiBsaS51c3lkLXNob3cge1xuXHRcdFx0XHRcblx0XHRcdFx0aS5pY29uLXBsdXM6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OiAnXFxlODIyJ1xuXHRcdFx0XHR9XG5cdFx0XHRcdC51c3lkLWJsb2NrLXN1Ym5hdiB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi51c3lkLWhlcm8ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGhlaWdodDogMjAwcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cblx0Ji51c3lkLWxpZ2h0IHtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvdXItbGlnaHQ7XG5cdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXG5cdFx0LnVzeWQtaGVyby1jb250ZW50IHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvdXItbGlnaHQ7XG5cdFx0fVxuXG5cdFx0LnVzeWQtaGVyby1jb250ZW50LWJvZHkge1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblxuXHRcdFx0PiBoMiB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogJGZvbnQtY29sb3VyLWRhcms7XG5cdFx0fVxuXHR9XG5cblx0Ji51c3lkLWRhcmsge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRiZy1kYXJrZXItY29sb3I7XG5cdFx0Y29sb3I6ICRmb250LWNvbG91ci1saWdodDtcblxuXHRcdC51c3lkLWhlcm8tY29udGVudC1ib2R5IHtcblx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdH1cblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRmb250LWNvbG91ci1saWdodDtcblx0XHR9XG5cdH1cbn1cblxuLnVzeWQtaGVyby1jb250ZW50IHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiAyMDBweDtcblx0d2lkdGg6IHNwYW4td2lkdGgoMykgKyAkZ3JpZEd1dHRlcldpZHRoO1xufVxuXG4udXN5ZC1oZXJvLW1lZGlhIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0ZGlzcGxheTogYmxvY2s7XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0bWluLWhlaWdodDogMjAwcHg7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbC1kb3duIHtcblx0LnVzeWQtaGVybyB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCYudXN5ZC1kYXJrIHtcblx0XHRcdC51c3lkLWhlcm8tY29udGVudC1ib2R5IHtcblx0XHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQudXN5ZC1oZXJvLWNvbnRlbnQge1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxuXG5cdC51c3lkLWhlcm8tbWVkaWEgaW1nIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0bWluLWhlaWdodDogMDtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS14bGFyZ2Uge1xuXHQudXN5ZC1oZXJvLWNvbnRlbnQge1xuXHRcdHdpZHRoOiBzcGFuLXdpZHRoKDMsICRncmlkQ29sdW1uV2lkdGhMYXJnZSwgJGdyaWRHdXR0ZXJXaWR0aExhcmdlKSArICRncmlkR3V0dGVyV2lkdGhMYXJnZTtcblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9vcGFjaXR5XCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaGFkb3dcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy90cmFuc2l0aW9uXCI7XG5cbi8vICRiYXNlLWxheWVyLW9mZnNldDogMTAwMCAhZGVmYXVsdDtcblxuJGJhc2UtZm9udC1zaXplOiAxMHB4O1xuXG4udXN5ZC1zdXJ2ZXktY29udGVudC51aS10aXAtY29udGFpbmVyIHtcblxuICAgICYudWktdGlwLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblxuICAgIC51aS10aXAtYm9keSB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDUwcHggIzAwMCk7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICB9XG5cbiAgICAudWktdGlwLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAxLjNlbSAxLjhlbTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbjogMC4yZW0gMCAwLjVlbTtcbiAgICB9XG5cbiAgICBwLCBsaSB7XG4gICAgICAgIC8vICRiYXNlLWZvbnQtc2l6ZTogMTAuNXB4O1xuICAgICAgICBAaW5jbHVkZSByZW0tc2l6ZSgxLjMpO1xuICAgICAgICArIHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVzeWQtc3VydmV5LWNob2ljZXMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogMmVtIDAgMDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDJlbSAxLjVlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgIC51c3lkLXN1cnZleS1jdHJsLWNsb3NlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KDAuNik7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBvcGFjaXR5KDEpO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDAuMjVzIGVhc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cblxuXG5AaW5jbHVkZSBtZWRpYS14bGFyZ2Uge1xuICAgIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogNDBlbTtcbiAgICAgICAgLnVpLXRpcC1ib2R5IHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogNjBlbTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS14c21hbGwge1xuICAgIC51c3lkLXN1cnZleS1jb250ZW50LnVpLXRpcC1jb250YWluZXIge1xuICAgICAgICB3aWR0aDogOTQlO1xuICAgICAgICAgLnVpLXRpcC1ib2R5IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG5cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL29wYWNpdHlcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvdHJhbnNpdGlvblwiO1xuXG5AaW5jbHVkZSBtZWRpYS1sYXJnZSB7XG5cdC51c3lkLWNvbHVtbi1sZWZ0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogNDclO1xuXHRcdG1hcmdpbi1yaWdodDogMyU7XG5cdH1cblxuXHQudXN5ZC1jb2x1bW4tcmlnaHQge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cbn1cblxuLypcblN0eWxlcyBmb3IgdGhlIGhvbWVwYWdlJ3MgZmF2b3VyaXRlcyBjb250YWluZXIuIFJlbGF0ZXMgdG8gVVNZRC9BcHBzL0ludHJhbmV0L0Zhdm91cml0ZXMuXG4qL1xuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyB7XG5cdC51c3lkLXVpLWFjY29yZGlvbi10aXRsZSB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmc6IDVweCAwO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0aW50KGJsYWNrLCA5MCUpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdCYudXN5ZC11aS1jbG9zZWQge1xuXHRcdFx0Ym9yZGVyLXRvcDogbm9uZTtcblx0XHRcdC51c3lkLXVpLWFjdGlvbi1lZGl0IHtcblx0XHRcdFx0Ly8gRklYTUU6IHNpbmNlIHRoaXMgaXMgbm90IGFjdGl2ZSBhbGwgdGhlIHRpbWUgaXQgc2hvdWxkIGJlIGhpZGRlblxuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYudXN5ZC11aS1vcGVuIHtcblx0XHRcdC51c3lkLXVpLWFjdGlvbi1lZGl0IHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji51c3lkLXVpLWRpc2FibGVkIHtcblx0XHRcdGNvbG9yOiB0aW50KGJsYWNrLCA3NSUpO1xuXHRcdH1cblx0XHRcblx0XHQudXN5ZC11aS1hY3Rpb24taGVscCB7XG5cdFx0XHRAaW5jbHVkZSBvcGFjaXR5KDEpO1xuXHRcdH1cblxuXHRcdC51c3lkLXVpLWFjdGlvbi1lZGl0IHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzKTtcblx0XHR9XG5cblx0XHQudXN5ZC1hY3Rpb24taWNvbiB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRcdCsgLnVzeWQtYWN0aW9uLWljb24ge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC51c3lkLWFjdGlvbi1pY29uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZVxcOTtcblx0fVxuXG5cdC51c3lkLWZhdm91cml0ZXMtdGl0bGUge1xuXHRcdHBhZGRpbmctbGVmdDogNnB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDVweDtcblxuXHRcdC51c3lkLWljb24ge1xuXHRcdFx0bWluLXdpZHRoOiAxNnB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAycHg7XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KGJsYWNrLCA5MCUpO1xuXHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdC51c3lkLWljb24sIC51c3lkLWFjdGlvbi1pY29uICB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRpbnQoYmxhY2ssIDkwJSlcXDk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji51c3lkLXVpLW9wZW4ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdGludChibGFjaywgOTUlKTtcblxuXHRcdFx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRpbnQoYmxhY2ssIDkwJSk7XG5cdFx0XHRcdC51c3lkLWljb24sIC51c3lkLWFjdGlvbi1pY29uIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KGJsYWNrLCA5MCUpXFw5O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC51c3lkLWljb24sIC51c3lkLWFjdGlvbi1pY29uIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdGludChibGFjaywgOTUlKVxcOTtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC51c3lkLWZhdm91cml0ZXMtdXNlci10aXRsZSwgLnVzeWQtZmF2b3VyaXRlcy1sb2dpbnMtdGl0bGUsIC51c3lkLWZhdm91cml0ZXMtcG9wdWxhci10aXRsZSB7XG5cdFx0QGV4dGVuZCAudXN5ZC1mYXZvdXJpdGVzLXRpdGxlO1xuXHR9XG5cblx0Ji51c3lkLWxvYWRpbmcge1xuXHRcdC51c3lkLWFjdGlvbi1mYXZvdXJpdGUge1xuXHRcdFx0QGluY2x1ZGUgb3BhY2l0eSguNSk7XG5cdFx0fVxuXHR9XG5cblx0Ji51c3lkLXdhc20tdXNlci11bmF1dGhlZCB7XG5cdFx0LnVzeWQtYWN0aW9uLWZhdm91cml0ZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC51c3lkLXVpLWFjY29yZGlvbi1wYW5lbCB7XG5cdFx0Ji51c3lkLXVpLW9wZW4ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRpbnQoYmxhY2ssIDkwJSk7XG5cdFx0fVxuXHRcdCYudXN5ZC11aS1jbG9zZWQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQjdXN5ZC1pbnRyYW5ldC1mYXZvdXJpdGVzLWxvZ2lucywgI3VzeWQtaW50cmFuZXQtZmF2b3VyaXRlcy1wb3B1bGFyIHtcblx0XHQudXN5ZC1hY3Rpb24tZmF2b3VyaXRlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdH1cblx0fVxuXG5cdC51c3lkLWFjdGlvbi1kZWxldGUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuXHQudXN5ZC1mYXZvdXJpdGVzLWxpbmsge1xuXHRcdHdpZHRoOiAxNmVtO1xuXHR9XG5cblx0LnVzeWQtZmF2b3VyaXRlcy1jaGFuZ2VkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KHllbGxvdywgNTAlKTtcblx0fVxuXG5cdC51c3lkLWxpbmstbGlzdCB7XG5cdFx0bGkge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMmVtO1xuXHRcdH1cblx0fVxuXHQudXN5ZC1zeXN0ZW0tbG9naW5zIHtcblx0XHRsaSB7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdCAgICB3aWR0aDogNDglO1xuXHRcdCAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHQgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblx0XHQgICAgbWFyZ2luLXRvcDogMC4zZW07XG5cblx0XHQgICAgLnVzeWQtYWN0aW9uLWljb24ge1xuXHRcdCAgICBcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQgICAgXHRyaWdodDogMDtcblx0XHQgICAgXHR0b3A6IDA7XG5cdFx0ICAgIFx0Y29sb3I6ICNjNmM2YzY7XG5cdFx0ICAgIH1cblxuXHRcdCAgICAmOm50aC1jaGlsZCgybisxKXtcblx0XHQgICAgXHRtYXJnaW4tcmlnaHQ6IDIuNSU7XG5cdFx0ICAgIH1cblxuXHRcdCAgICBAbWVkaWEgKG1heC13aWR0aDogMzkwcHgpIHtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDJuKzEpe1xuXHRcdFx0ICAgIFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0ICAgIH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9jb2xvcnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuXG5AbWl4aW4gdXN5ZC1pY29uIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi51c3lkLWljb24teHNtYWxsIHtcblx0QGluY2x1ZGUgdXN5ZC1pY29uO1xuXHRmb250LXNpemU6IDE2cHg7XG5cdG1pbi13aWR0aDogMTZweDtcblx0bWluLWhlaWdodDogMTZweDtcbn1cblxuLnVzeWQtaWNvbi1zbWFsbCB7XG5cdEBpbmNsdWRlIHVzeWQtaWNvbjtcblx0Zm9udC1zaXplOiAyNHB4O1xuXHRtaW4td2lkdGg6IDI0cHg7XG5cdG1pbi1oZWlnaHQ6IDI0cHg7XG59XG5cbi51c3lkLWljb24tbWVkaXVtIHtcblx0QGluY2x1ZGUgdXN5ZC1pY29uO1xuXHRmb250LXNpemU6IDMycHg7XG5cdG1pbi13aWR0aDogMzJweDtcblx0bWluLWhlaWdodDogMzJweDtcbn1cblxuLnVzeWQtaWNvbi1sYXJnZSB7XG5cdEBpbmNsdWRlIHVzeWQtaWNvbjtcblx0Zm9udC1zaXplOiA0OHB4O1xuXHRtaW4td2lkdGg6IDQ4cHg7XG5cdG1pbi1oZWlnaHQ6IDQ4cHg7XG59XG5cbi51c3lkLWljb24teGxhcmdlIHtcblx0QGluY2x1ZGUgdXN5ZC1pY29uO1xuXHRmb250LXNpemU6IDY0cHg7XG5cdG1pbi13aWR0aDogNjRweDtcblx0bWluLWhlaWdodDogNjRweDtcbn1cblxuLnVzeWQtbGFiZWxsZWQtaWNvbiB7XG5cdC51c3lkLWljb24ge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblxuXHRcdCYudXN5ZC1pY29uLXhzbWFsbCB7XG5cdFx0XHRtaW4td2lkdGg6IDE2cHg7XG5cdFx0fVxuXG5cdFx0Ji51c3lkLWljb24tc21hbGwge1xuXHRcdFx0bWluLXdpZHRoOiAyNHB4O1xuXHRcdH1cblxuXHRcdCYudXN5ZC1pY29uLW1lZGl1bSB7XG5cdFx0XHRtaW4td2lkdGg6IDMycHg7XG5cdFx0fVxuXG5cdFx0Ji51c3lkLWljb24tbGFyZ2Uge1xuXHRcdFx0bWluLXdpZHRoOiA0OHB4O1xuXHRcdH1cblxuXHRcdCYudXN5ZC1pY29uLXhsYXJnZSB7XG5cdFx0XHRtaW4td2lkdGg6IDY0cHg7XG5cdFx0fVxuXHR9XG59XG5cbmEge1xuXHQmLnVzeWQtbGFiZWxsZWQtaWNvbiB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0LnVzeWQtaWNvbiB7XG5cdFx0XHR9XG5cdFx0XHQudXN5ZC1pY29uLXRleHQge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLnVzeWQtZGF0ZS1pY29uIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0bWluLXdpZHRoOiAzNXB4O1xuXG5cdC51c3lkLWRhdGUtZGF5IHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXNpemU6IDIwcHg7XG5cdH1cblxuXHQudXN5ZC1kYXRlLW1vbnRoIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQtc2l6ZTogMTBweDtcblx0fVxufVxuIiwiLy9cbi8vIExheW91dHNcbi8vIEZpeGVkLXdpZHRoIGFuZCBmbHVpZCAod2l0aCBzaWRlYmFyKSBsYXlvdXRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi8vIENvbnRhaW5lciAoY2VudGVyZWQsIGZpeGVkLXdpZHRoIGxheW91dHMpXG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyLWZpeGVkKCk7XG59XG5cbi8vIEZsdWlkIGxheW91dHMgKGxlZnQgYWxpZ25lZCwgd2l0aCBzaWRlYmFyLCBtaW4tICYgbWF4LXdpZHRoIGNvbnRlbnQpXG4uY29udGFpbmVyLWZsdWlkIHtcbiAgcGFkZGluZy1yaWdodDogJGdyaWRHdXR0ZXJXaWR0aDtcbiAgcGFkZGluZy1sZWZ0OiAkZ3JpZEd1dHRlcldpZHRoO1xuICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufSIsIi8vIE5PVEU6XG4vLyBUaGlzIGZpbGUgc2VydmVzIGFzIGEgbG9jYWwgaW1wbGVtZW50YXRpb24gb2YgYm9vdHN0cmFwLXJlc3BvbnNpdmUgc28gd2UncmUgYWJsZSB0byBvdmVycmlkZVxuLy8gdGhlIGJha2VkLWluIGJyZWFrcG9pbnQgdmFsdWVzIGluY2x1ZGVkIGluIHRoZSBkaXN0cmlidXRhYmxlIGJvb3RzdHJhcCBwYWNrYWdlIGFuZCBzZXQgb3VyIG93biBpbnN0ZWFkIChlLmcuIG1lZGlhLXNtYWxsLW1pbiBldGMpXG4vLyBTZWUgdGhlIG9yaWdpbmFsIF9ib29zdHJhcC1yZXNwb25zaXZlLnNjc3MgZm9yIHJlZmVyZW5jZVxuXG4vLyBSZXNwb25zaXZlLmNzcy5zY3NzXG4vLyBGb3IgcGhvbmUgYW5kIHRhYmxldCBkZXZpY2VzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuLy8gUkVQRUFUIFZBUklBQkxFUyAmIE1JWElOU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVxdWlyZWQgc2luY2Ugd2UgY29tcGlsZSB0aGUgcmVzcG9uc2l2ZSBzdHVmZiBzZXBhcmF0ZWx5XG5cbi8vIFRoaXMgaXMgZGVzaWduZWQgdG8gYmUgaW5jbHVkZWQgaW4gX2xheW91dC5zY3NzLCBzbyB0aGUgaW5jbHVkZXMgZm9yIG1peGlucy92YXJpYWJsZXMgYXJlIGxvY2F0ZWQgdGhlcmVcblxuXG4vLyBSRVNQT05TSVZFIENMQVNTRVNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBIaWRlIGZyb20gc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnNcbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcbi5oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8vIFZpc2liaWxpdHkgdXRpbGl0aWVzXG5cbi8vIEZvciBkZXNrdG9wc1xuLnZpc2libGUtcGhvbmUgICAgIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4udmlzaWJsZS10YWJsZXQgICAgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbi52aXNpYmxlLWRlc2t0b3AgICB7IH0gLy8gRG9uJ3Qgc2V0IGluaXRpYWxseVxuLmhpZGRlbi1waG9uZSAgICAgIHsgfVxuLmhpZGRlbi10YWJsZXQgICAgIHsgfVxuLmhpZGRlbi1kZXNrdG9wICAgIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8vIFBob25lcyBvbmx5XG4vL0BtZWRpYSAobWF4LXdpZHRoIDogNzY3cHgpIHtcbkBtZWRpYSAobWF4LXdpZHRoIDogJG1lZGlhLXhzbWFsbC1tYXgpIHtcblx0Ly8gU2hvd1xuXHQudmlzaWJsZS1waG9uZSAgICAgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH0gLy8gVXNlIGluaGVyaXQgdG8gcmVzdG9yZSBwcmV2aW91cyBiZWhhdmlvclxuXHQvLyBIaWRlXG5cdC5oaWRkZW4tcGhvbmUgICAgICB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXHQvLyBIaWRlIGV2ZXJ5dGhpbmcgZWxzZVxuXHQuaGlkZGVuLWRlc2t0b3AgICAgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblx0LnZpc2libGUtZGVza3RvcCAgIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbi8vIFRhYmxldHMgJiBzbWFsbCBkZXNrdG9wcyBvbmx5XG4vL0BtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG5AbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXNtYWxsLW1pbikgYW5kIChtYXgtd2lkdGg6ICRtZWRpYS1zbWFsbC1tYXgpIHtcblx0Ly8gU2hvd1xuXHQudmlzaWJsZS10YWJsZXQgICAgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblx0Ly8gSGlkZVxuXHQuaGlkZGVuLXRhYmxldCAgICAgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblx0Ly8gSGlkZSBldmVyeXRoaW5nIGVsc2Vcblx0LmhpZGRlbi1kZXNrdG9wICAgIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG5cdC52aXNpYmxlLWRlc2t0b3AgICB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudCA7IH1cbn1cblxuLy8gVVAgVE8gTEFORFNDQVBFIFBIT05FXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy9AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbkBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteHNtYWxsKSB7XG5cblx0Ly8gU21vb3RoIG91dCB0aGUgY29sbGFwc2luZy9leHBhbmRpbmcgbmF2XG5cdC5uYXYtY29sbGFwc2Uge1xuXHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgLy8gYWN0aXZhdGUgdGhlIEdQVVxuXHR9XG5cblx0Ly8gQmxvY2sgbGV2ZWwgdGhlIHBhZ2UgaGVhZGVyIHNtYWxsIHRhZyBmb3IgcmVhZGFiaWxpdHlcblx0LnBhZ2UtaGVhZGVyIGgxIHNtYWxsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRsaW5lLWhlaWdodDogJGJhc2VMaW5lSGVpZ2h0O1xuXHR9XG5cblx0Ly8gVXBkYXRlIGNoZWNrYm94ZXMgZm9yIGlPU1xuXHRpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0fVxuXG5cdC8vIFJlbW92ZSB0aGUgaG9yaXpvbnRhbCBmb3JtIHN0eWxlc1xuXHQuZm9ybS1ob3Jpem9udGFsIC5jb250cm9sLWdyb3VwID4gbGFiZWwge1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblx0Ly8gTW92ZSBvdmVyIGFsbCBpbnB1dCBjb250cm9scyBhbmQgY29udGVudFxuXHQuZm9ybS1ob3Jpem9udGFsIC5jb250cm9scyB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblx0Ly8gTW92ZSB0aGUgb3B0aW9ucyBsaXN0IGRvd24gdG8gYWxpZ24gd2l0aCBsYWJlbHNcblx0LmZvcm0taG9yaXpvbnRhbCAuY29udHJvbC1saXN0IHtcblx0XHRwYWRkaW5nLXRvcDogMDsgLy8gaGFzIHRvIGJlIHBhZGRpbmcgYmVjYXVzZSBtYXJnaW4gY29sbGFzcGVzXG5cdH1cblx0Ly8gTW92ZSBvdmVyIGJ1dHRvbnMgaW4gLmZvcm0tYWN0aW9ucyB0byBhbGlnbiB3aXRoIC5jb250cm9sc1xuXHQuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWFjdGlvbnMge1xuXHRcdHBhZGRpbmctbGVmdDogMTBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHR9XG5cblx0Ly8gTW9kYWxzXG5cdC5tb2RhbCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogICAxMHB4O1xuXHRcdGxlZnQ6ICAxMHB4O1xuXHRcdHJpZ2h0OiAxMHB4O1xuXHRcdHdpZHRoOiBhdXRvO1xuXHRcdG1hcmdpbjogMDtcblx0XHQmLmZhZGUuaW4geyB0b3A6IGF1dG87IH1cblx0fVxuXHQubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG5cdFx0cGFkZGluZzogMTBweDtcblx0XHRtYXJnaW46IC0xMHB4O1xuXHR9XG5cblx0Ly8gQ2Fyb3VzZWxcblx0LmNhcm91c2VsLWNhcHRpb24ge1xuXHRcdHBvc2l0aW9uOiBzdGF0aWM7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHR9XG5cbn1cblxuXG5cbi8vIExBTkRTQ0FQRSBQSE9ORSBUTyBTTUFMTCBERVNLVE9QICYgUE9SVFJBSVQgVEFCTEVUXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vL0BtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbWFsbC1taW4pIHtcblxuXHQvLyBQYWRkaW5nIHRvIHNldCBjb250ZW50IGluIGEgYml0XG5cdGJvZHkge1xuXHRcdHBhZGRpbmctbGVmdDogMjBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXHR9XG5cdC8vIE5lZ2F0aXZlIGluZGVudCB0aGUgbm93IHN0YXRpYyBcImZpeGVkXCIgbmF2YmFyXG5cdC5uYXZiYXItZml4ZWQtdG9wLCAubmF2YmFyLWZpeGVkLWJvdHRvbSB7XG5cdFx0bWFyZ2luLWxlZnQ6IC0yMHB4O1xuXHRcdG1hcmdpbi1yaWdodDogLTIwcHg7XG5cdH1cblx0Ly8gUmVtb3ZlIHBhZGRpbmcgb24gY29udGFpbmVyIGdpdmVuIGV4cGxpY2l0IHBhZGRpbmcgc2V0IG9uIGJvZHlcblx0LmNvbnRhaW5lci1mbHVpZCB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC8vIFRZUE9HUkFQSFlcblx0Ly8gLS0tLS0tLS0tLVxuXHQvLyBSZXNldCBob3Jpem9udGFsIGRsXG5cdC5kbC1ob3Jpem9udGFsIHtcblx0XHRkdCB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHRcdGNsZWFyOiBub25lO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdH1cblx0XHRkZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cdH1cblxuXHQvLyBHUklEICYgQ09OVEFJTkVSU1xuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBSZW1vdmUgd2lkdGggZnJvbSBjb250YWluZXJzXG5cdC5jb250YWluZXIge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG5cdC8vIEZsdWlkIHJvd3Ncblx0LnJvdy1mbHVpZCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblx0Ly8gVW5kbyBuZWdhdGl2ZSBtYXJnaW4gb24gcm93cyBhbmQgdGh1bWJuYWlsc1xuXHQucm93LCAudGh1bWJuYWlscyB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblx0Ly8gTWFrZSBhbGwgZ3JpZC1zaXplZCBlbGVtZW50cyBibG9jayBsZXZlbCBhZ2FpblxuXHRbY2xhc3MqPVwic3BhblwiXSwgLnJvdy1mbHVpZCBbY2xhc3MqPVwic3BhblwiXSB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQvLyBGT1JNIEZJRUxEU1xuXHQvLyAtLS0tLS0tLS0tLVxuXHQvLyBNYWtlIHNwYW4qIGNsYXNzZXMgZnVsbCB3aWR0aFxuXHQuaW5wdXQtbGFyZ2UsIC5pbnB1dC14bGFyZ2UsIC5pbnB1dC14eGxhcmdlLCBpbnB1dFtjbGFzcyo9XCJzcGFuXCJdLCBzZWxlY3RbY2xhc3MqPVwic3BhblwiXSwgdGV4dGFyZWFbY2xhc3MqPVwic3BhblwiXSwgLnVuZWRpdGFibGUtaW5wdXQge1xuXHRcdEBpbmNsdWRlIGlucHV0LWJsb2NrLWxldmVsKCk7XG5cdH1cblx0Ly8gQnV0IGRvbid0IGxldCBpdCBzY3JldyB1cCBwcmVwZW5kL2FwcGVuZCBpbnB1dHNcblx0LmlucHV0LXByZXBlbmQgaW5wdXQsIC5pbnB1dC1hcHBlbmQgaW5wdXQsIC5pbnB1dC1wcmVwZW5kIGlucHV0W2NsYXNzKj1cInNwYW5cIl0sIC5pbnB1dC1hcHBlbmQgaW5wdXRbY2xhc3MqPVwic3BhblwiXSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrOyAvLyByZWRlY2xhcmUgc28gdGhleSBkb24ndCB3cmFwIHRvIG5ldyBsaW5lc1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG5cblxuXG4vLyBQT1JUUkFJVCBUQUJMRVQgVE8gREVGQVVMVCBERVNLVE9QXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTc5cHgpIHtcbkBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtc21hbGwtbWluKSBhbmQgKG1heC13aWR0aDogJG1lZGlhLXNtYWxsLW1heCkge1xuXG5cdC8vIEZpeGVkIGdyaWRcblx0QGluY2x1ZGUgZ3JpZENvcmUoJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCk7XG5cblx0Ly8gRmx1aWQgZ3JpZFxuXHRAaW5jbHVkZSBncmlkRmx1aWQoJGZsdWlkR3JpZENvbHVtbldpZHRoVGFibGV0LCAkZmx1aWRHcmlkR3V0dGVyV2lkdGhUYWJsZXQpO1xuXG5cdC8vIElucHV0IGdyaWRcblx0QGluY2x1ZGUgZ3JpZElucHV0KCRncmlkQ29sdW1uV2lkdGhUYWJsZXQsICRncmlkR3V0dGVyV2lkdGhUYWJsZXQpO1xuXG5cdC8vIE5vIG5lZWQgdG8gcmVzZXQgLnRodW1ibmFpbHMgaGVyZSBzaW5jZSBpdCdzIHRoZSBzYW1lICRncmlkR3V0dGVyV2lkdGhcblxufVxuXG5cblxuLy8gVEFCTEVUUyBBTkQgQkVMT1dcbi8vIC0tLS0tLS0tLS0tLS0tLS0tXG4vL0BtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuQG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS1zbWFsbC1tYXgpIHtcblxuXHQvLyBVTkZJWCBUSEUgVE9QQkFSXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS1cblx0Ly8gUmVtb3ZlIGFueSBwYWRkaW5nIGZyb20gdGhlIGJvZHlcblx0Ym9keSB7XG5cdFx0cGFkZGluZy10b3A6IDA7XG5cdH1cblx0Ly8gVW5maXggdGhlIG5hdmJhclxuXHQubmF2YmFyLWZpeGVkLXRvcCB7XG5cdFx0cG9zaXRpb246IHN0YXRpYztcblx0XHRtYXJnaW4tYm90dG9tOiAkYmFzZUxpbmVIZWlnaHQ7XG5cdH1cblx0Lm5hdmJhci1maXhlZC10b3AgLm5hdmJhci1pbm5lciB7XG5cdFx0cGFkZGluZzogNXB4O1xuXHR9XG5cdC5uYXZiYXIgLmNvbnRhaW5lciB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXHQvLyBBY2NvdW50IGZvciBicmFuZCBuYW1lXG5cdC5uYXZiYXIgLmJyYW5kIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHRtYXJnaW46IDAgMCAwIC01cHg7XG5cdH1cblxuXHQvLyBDT0xMQVBTSUJMRSBOQVZCQVJcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vIE5hdiBjb2xsYXBzZSBjbGVhcnMgYnJhbmRcblx0Lm5hdi1jb2xsYXBzZSB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblx0Ly8gQmxvY2stbGV2ZWwgdGhlIG5hdlxuXHQubmF2LWNvbGxhcHNlIC5uYXYge1xuXHRcdGZsb2F0OiBub25lO1xuXHRcdG1hcmdpbjogMCAwICgkYmFzZUxpbmVIZWlnaHQgLyAyKTtcblx0fVxuXHQubmF2LWNvbGxhcHNlIC5uYXYgPiBsaSB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdH1cblx0Lm5hdi1jb2xsYXBzZSAubmF2ID4gbGkgPiBhIHtcblx0XHRtYXJnaW4tYm90dG9tOiAycHg7XG5cdH1cblx0Lm5hdi1jb2xsYXBzZSAubmF2ID4gLmRpdmlkZXItdmVydGljYWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblx0Lm5hdi1jb2xsYXBzZSAubmF2IC5uYXYtaGVhZGVyIHtcblx0XHRjb2xvcjogJG5hdmJhclRleHQ7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdH1cblx0Ly8gTmF2IGFuZCBkcm9wZG93biBsaW5rcyBpbiBuYXZiYXJcblx0Lm5hdi1jb2xsYXBzZSAubmF2ID4gbGkgPiBhLCAubmF2LWNvbGxhcHNlIC5kcm9wZG93bi1tZW51IGEge1xuXHRcdHBhZGRpbmc6IDZweCAxNXB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGNvbG9yOiAkbmF2YmFyTGlua0NvbG9yO1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoM3B4KTtcblx0fVxuXHQvLyBCdXR0b25zXG5cdC5uYXYtY29sbGFwc2UgLmJ0biB7XG5cdFx0cGFkZGluZzogNHB4IDEwcHggNHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHR9XG5cdC5uYXYtY29sbGFwc2UgLmRyb3Bkb3duLW1lbnUgbGkgKyBsaSBhIHtcblx0XHRtYXJnaW4tYm90dG9tOiAycHg7XG5cdH1cblx0Lm5hdi1jb2xsYXBzZSAubmF2ID4gbGkgPiBhOmhvdmVyLCAubmF2LWNvbGxhcHNlIC5kcm9wZG93bi1tZW51IGE6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXJCYWNrZ3JvdW5kO1xuXHR9XG5cdC8vIEJ1dHRvbnMgaW4gdGhlIG5hdmJhclxuXHQubmF2LWNvbGxhcHNlLmluIC5idG4tZ3JvdXAge1xuXHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cdC8vIERyb3Bkb3ducyBpbiB0aGUgbmF2YmFyXG5cdC5uYXYtY29sbGFwc2UgLmRyb3Bkb3duLW1lbnUge1xuXHRcdHBvc2l0aW9uOiBzdGF0aWM7XG5cdFx0dG9wOiBhdXRvO1xuXHRcdGxlZnQ6IGF1dG87XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdG1hcmdpbjogMCAxNXB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCk7XG5cdFx0QGluY2x1ZGUgYm94LXNoYWRvdyhub25lKTtcblx0fVxuXHQubmF2LWNvbGxhcHNlIC5kcm9wZG93bi1tZW51OmJlZm9yZSwgLm5hdi1jb2xsYXBzZSAuZHJvcGRvd24tbWVudTphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXHQubmF2LWNvbGxhcHNlIC5kcm9wZG93bi1tZW51IC5kaXZpZGVyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cdC8vIEZvcm1zIGluIG5hdmJhclxuXHQubmF2LWNvbGxhcHNlIC5uYXZiYXItZm9ybSwgLm5hdi1jb2xsYXBzZSAubmF2YmFyLXNlYXJjaCB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0cGFkZGluZzogKCRiYXNlTGluZUhlaWdodCAvIDIpIDE1cHg7XG5cdFx0bWFyZ2luOiAoJGJhc2VMaW5lSGVpZ2h0IC8gMikgMDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgJG5hdmJhckJhY2tncm91bmQ7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRuYXZiYXJCYWNrZ3JvdW5kO1xuXHRcdEBpbmNsdWRlIGJveC1zaGFkb3coI3tpbnNldCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpLCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpfSk7XG5cdH1cblx0Ly8gUHVsbCByaWdodCAoc2Vjb25kYXJ5KSBuYXYgY29udGVudFxuXHQubmF2YmFyIC5uYXYtY29sbGFwc2UgLm5hdi5wdWxsLXJpZ2h0IHtcblx0XHRmbG9hdDogbm9uZTtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXHQvLyBIaWRlIGV2ZXJ5dGhpbmcgaW4gdGhlIG5hdmJhciBzYXZlIC5icmFuZCBhbmQgdG9nZ2xlIGJ1dHRvbiAqL1xuXHQubmF2LWNvbGxhcHNlLCAubmF2LWNvbGxhcHNlLmNvbGxhcHNlIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXHQvLyBOYXZiYXIgYnV0dG9uXG5cdC5uYXZiYXIgLmJ0bi1uYXZiYXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Ly8gU1RBVElDIE5BVkJBUlxuXHQvLyAtLS0tLS0tLS0tLS0tXG5cdC5uYXZiYXItc3RhdGljIC5uYXZiYXItaW5uZXIge1xuXHRcdHBhZGRpbmctbGVmdDogIDEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0fVxufVxuXG5cbi8vIERFRkFVTFQgREVTS1RPUFxuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFJlcXVpcmVkIHRvIG1ha2UgdGhlIGNvbGxhcHNpbmcgbmF2YmFyIHdvcmsgb24gcmVndWxhciBkZXNrdG9wc1xuLy9AbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbkBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtbGFyZ2UtbWluKSB7XG5cdC5uYXYtY29sbGFwc2UuY29sbGFwc2Uge1xuXHRcdGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuXHRcdG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLy8gTEFSR0UgREVTS1RPUCAmIFVQXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuLy9AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG5AbWVkaWEgKG1pbi13aWR0aDogJG1lZGlhLXhsYXJnZS1taW4pIHtcblxuXHQvLyBGaXhlZCBncmlkXG5cdEBpbmNsdWRlIGdyaWRDb3JlKCRncmlkQ29sdW1uV2lkdGhMYXJnZSwgJGdyaWRHdXR0ZXJXaWR0aExhcmdlKTtcblxuXHQvLyBGbHVpZCBncmlkXG5cdEBpbmNsdWRlIGdyaWRGbHVpZCgkZmx1aWRHcmlkQ29sdW1uV2lkdGhMYXJnZSwgJGZsdWlkR3JpZEd1dHRlcldpZHRoTGFyZ2UpO1xuXG5cdC8vIElucHV0IGdyaWRcblx0QGluY2x1ZGUgZ3JpZElucHV0KCRncmlkQ29sdW1uV2lkdGhMYXJnZSwgJGdyaWRHdXR0ZXJXaWR0aExhcmdlKTtcblxuXHQvLyBUaHVtYm5haWxzXG5cdC50aHVtYm5haWxzIHtcblx0XHRtYXJnaW4tbGVmdDogLSRncmlkR3V0dGVyV2lkdGhMYXJnZTtcblx0fVxuXHQudGh1bWJuYWlscyA+IGxpIHtcblx0XHRtYXJnaW4tbGVmdDogJGdyaWRHdXR0ZXJXaWR0aExhcmdlO1xuXHR9XG5cdC5yb3ctZmx1aWQgLnRodW1ibmFpbHMge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG59XG4iLCJAaW1wb3J0IFwiY29sb3JzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zXCI7XG5cbi8vVE9ETzogY2xlYW4gdXAgYnJlYWsgcG9pbnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEJyZWFrIHBvaW50cyBsZWdhY3kgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtZWRpYS14c21hbGw6IDQ4MHB4ICFkZWZhdWx0OyAvLyBQaG9uZXNcbiRtZWRpYS1zbWFsbDogNzY4cHggIWRlZmF1bHQ7IC8vIFRhYmxldHNcbiRtZWRpYS1sYXJnZTogOTgwcHggIWRlZmF1bHQ7IC8vIFNtYWxsIGRlc2t0b3BzIGFuZCBub3RlYm9va3NcbiRtZWRpYS14bGFyZ2U6IDEzMDBweCAhZGVmYXVsdDsgLy8gRGVza3RvcHNcbiRtZWRpYS14c21hbGwtbWF4OiAoJG1lZGlhLXNtYWxsIC0gMSkgIWRlZmF1bHQ7XG4kbWVkaWEtc21hbGwtbWluOiAkbWVkaWEtc21hbGwgIWRlZmF1bHQ7XG4kbWVkaWEtc21hbGwtbWF4OiAoJG1lZGlhLWxhcmdlIC0gMSkgIWRlZmF1bHQ7XG4kbWVkaWEtbGFyZ2UtbWluOiAkbWVkaWEtbGFyZ2UgIWRlZmF1bHQ7XG4kbWVkaWEtbGFyZ2UtbWF4OiAoJG1lZGlhLXhsYXJnZSAtIDEpICFkZWZhdWx0O1xuJG1lZGlhLXhsYXJnZS1taW46ICRtZWRpYS14bGFyZ2UgIWRlZmF1bHQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEJyZWFrIHBvaW50cyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQm9vdHN0cmFwIGJyZWFrcG9pbnRzXG4kc2NyZWVuLXh4cy1tYXg6IDQ3OXB4OyAvLyBNb2JpbGUgcG9ydHJhaXQ7IHN1YnNldCBvZiB0aGUgXCJ4cyBicmVha3BvaW50XCJcblxuJHNjcmVlbi14cy1taW46IDQ4MHB4O1xuJHNjcmVlbi14cy1tYXg6IDc2N3B4O1xuXG4kc2NyZWVuLXNtLW1pbjogNzY4cHg7XG4kc2NyZWVuLXNtLW1heDogOTc5cHg7XG5cbiRzY3JlZW4tbWQtbWluOiA5ODBweDtcbiRzY3JlZW4tbWQtbWF4OiAxMjk5cHg7XG5cbiRzY3JlZW4tbGctbWluOiAxMzAwcHg7XG5cbi8vIE1lZGlhIHF1ZXJ5IHNob3J0aGFuZHMgZS5nLiBAbWVkaWEgKCR0YWJsZXQtdXApIHsgLi4uIH1cbiRtb2JpbGUtbGFuZHNjYXBlLWRvd246IFwibWF4LXdpZHRoOiAjeyRzY3JlZW4teHhzLW1heH1cIjtcbiRtb2JpbGUtbGFuZHNjYXBlLXVwOiBcIm1pbi13aWR0aDogI3skc2NyZWVuLXhzLW1pbn1cIjtcbiR0YWJsZXQtZG93bjogXCJtYXgtd2lkdGg6ICN7JHNjcmVlbi14cy1tYXh9XCI7XG4kdGFibGV0LXVwOiBcIm1pbi13aWR0aDogI3skc2NyZWVuLXNtLW1pbn1cIjtcbiRzbWFsbC1kZXNrdG9wLWRvd246IFwibWF4LXdpZHRoOiAjeyRzY3JlZW4tc20tbWF4fVwiO1xuJHNtYWxsLWRlc2t0b3AtdXA6IFwibWluLXdpZHRoOiAjeyRzY3JlZW4tbWQtbWlufVwiO1xuJGxhcmdlLWRlc2t0b3AtZG93bjogXCJtYXgtd2lkdGg6ICN7JHNjcmVlbi1tZC1tYXh9XCI7XG4kbGFyZ2UtZGVza3RvcC11cDogXCJtaW4td2lkdGg6ICN7JHNjcmVlbi1sZy1taW59XCI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIENvbXBvbmVudHMgcGFyYW1ldGVycyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kZ3JpZENvbHVtbldpZHRoTGFyZ2U6IDgwcHg7XG4kZ3JpZEd1dHRlcldpZHRoTGFyZ2U6IDIwcHg7XG4kZ3JpZENvbHVtbldpZHRoVGFibGV0OiA0N3B4O1xuJGdyaWRHdXR0ZXJXaWR0aFRhYmxldDogMTVweDtcblxuLy8gQ29tcG9uZW50IHNoYXBlcyBhbmQgc2l6ZXNcbiRib3gtcGFkZGluZzogMjBweDtcbiRibGVlZC1zaXplOiA3MHB4O1xuJGNvbXBvbmVudC1nYXA6IDMwcHg7XG4kY29tcG9uZW50LWdhcC1zbWFsbDogMjVweDtcbiRjb21wb25lbnQtZ2FwLXNtYWxsZXI6IDIwcHg7XG4kY29tcG9uZW50LWdhcC1sYXJnZXN0OiA1MHB4O1xuXG4vLyBCb290c3RyYXAgY29udGFpbmVyIHBhZGRpbmdcbiRjb250YWluZXIteHMtcGFkZGluZzogMTBweDtcbiRjb250YWluZXItbXMtcGFkZGluZzogMTRweDtcbiRjb250YWluZXItc20tcGFkZGluZzogMjBweDtcbiRjb250YWluZXItbWQtcGFkZGluZzogOTBweDtcbiRjb250YWluZXItbGctcGFkZGluZzogMTEwcHg7XG5cbi8vRm9ybSBjb250cm9sc1xuJGZvcm0tY29udHJvbC1oZWlnaHQ6IDMwcHg7XG4kZm9ybS1jb250cm9sLWxpbmUtaGVpZ2h0OiAxNnB4O1xuJGZvcm0tY29udHJvbC1kZWZhdWx0LXBhZGRpbmc6ICgoJGZvcm0tY29udHJvbC1oZWlnaHQgLSAkZm9ybS1jb250cm9sLWxpbmUtaGVpZ2h0KSAvIDIpIDE1cHg7XG5cbi8vQ2Fyb3VzZWwgY29uZmlndXJhdGlvblxuJHNwYWNlLWJldHdlZW4tc2xpZGU6IDRweDtcbiRidXR0b24tcG9zaXRpb24tb2Zmc2V0OiAtMjBweDtcblxuLy9Db21wb25lbnQgd2lkdGggY29udHJvbCBzaXplXG4kd2lkdGgtc21hbGw6IDMwJTtcbiR3aWR0aC1tZWRpdW06IDUyJTtcbiR3aWR0aC1sYXJnZTogNzAlO1xuXG4vL0hlYWRpbmdzXG4kdGl0bGUtbGluZS1oZWlnaHQ6IDEuMjtcblxuLy9QYXJhZ3JhcGhzXG4kcGFyYWdyYXBoLXNwYWNpbmc6IDIwcHg7XG5cbi8vWi1pbmRleGVzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEFzc2V0cyBwYXRoIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiR0ZW1wbGF0ZS1iYXNlLXVybDogXCJ2ZW5kb3JcIjtcbiRpbWFnZS1wYXRoOiBcIi4uL2Fzc2V0cy9pbWdcIjtcbiRmb250LXBhdGg6ICcuLi9hc3NldHMvZm9udHMnO1xuXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEZvbnRzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZvbnQgZmFtaWxpZXNcbiRmb250LWZvbnRlbGxvOiAnRm9udGVsbG8nO1xuXG4vLyBGb250ZWxsbyBpY29uIHJlZmVyZW5jZXNcbiRpY29uLXJpZ2h0LW9wZW46IFwiODk0XCI7XG4kaWNvbi1saW5rLWV4dDogXCI4MmVcIjtcbiRpY29uLWRvd25sb2FkOiBcIjg0MlwiO1xuJGljb24tbWFpbC1hbHQ6IFwiODA0XCI7XG4kaWNvbi1zb3J0OiBcIjkyMFwiO1xuJGljb24tc29ydC1kb3duOiBcIjkyMVwiO1xuJGljb24tc29ydC11cDogXCI5MjJcIjtcbiRpY29uLXF1b3RlLWxlZnQ6IFwiODQ5XCI7XG4kaWNvbi1xdW90ZS1yaWdodDogXCI4NGFcIjtcblxuLy8gRm9udCB3ZWlnaHRzXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDEwMDtcbiRmb250LXdlaWdodC1tZWRpdW06IDMwMDtcbiRmb250LXdlaWdodC1yZWd1bGFyOiBub3JtYWw7XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA3MDA7XG4kZm9udC13ZWlnaHQtYm9sZDogYm9sZDtcblxuLy8gRm9udCBzaXplc1xuJGZvbnQtc2l6ZS1iYXNlOiAxMnB4O1xuJGZvbnQtc2l6ZS1zbS1sYXJnZTogMTRweDtcbiRmb250LXNpemUtbGFyZ2U6IDE2cHg7XG4kZm9udC1zaXplLWxhcmdlcjogMThweDtcblxuLy9UT0RPOiB1cGRhdGUgc3Ryb2tlIHN0eWxlc1xuLy8gU3Ryb2tlIHN0eWxlcyBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIGtleWxpbmVzXG4kc3Ryb2tlLXRoaW4tZ3JleTogMXB4IHNvbGlkICNlOGU4ZTg7XG4kc3Ryb2tlLWxpZ2h0LWRhcms6IDFweCBzb2xpZCAkYnJhbmQtZGFyaztcbiRkb3R0ZWQtbGlnaHQtZ3JleTogMXB4IGRvdHRlZCAkYnJhbmQtY29sb3VyLW1lZGl1bS1ncmV5O1xuXG4vLyBBbmltYXRpb25zXG4kYW5pbWF0aW9uLXNwZWVkLW5vcm1hbDogNDAwbXM7XG4kYW5pbWF0aW9uLXNwZWVkLWZhc3Q6IDIwMG1zO1xuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL2xheW91dHNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvZ3JpZFwiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImJvb3RzdHJhcC1yZXNwb25zaXZlXCI7XG5cbi8qXG5cdERlZmluZXMgdGhlIGNvbW1vbiBzdHJ1Y3R1cmFsIGVsZW1lbnRzIHRvIG1vc3QgcGFnZXMsIGJhc2VkIHByaW1hcmlseSBvbiBib290c3RyYXAgZ3JpZCBzdHJ1Y3R1cmUuXG5cblx0Ym9keTogd3JhcHMgdGhlIHByaW1hcnkgY29udGVudCBzZWN0aW9uIG9mIGFueSBwYWdlIGFuZCBpcyBlc3NlbnRpYWxseVxuXHRhIGdyaWQgcm93IGNvbnRhaW5lci5cblxuXHRcdG1lbnUtYXNpZGU6IGNvbnRhaW5zIHRoZSBsZWZ0LWhhbmQgbWVudVxuXG5cdFx0bWFpbjogY29udGFpbnMgdGhlIGNvbnRlbnQgYm9keVxuXG5cdFx0ZmVhdHVyZS1hc2lkZTogY29udGFpbnMgZmVhdHVyZSBwYW5lbHMgZXRjXG4qL1xuXG4udXN5ZC1jbGVhciB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjbGVhcjogYm90aDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRsaW5lLWhlaWdodDogMDtcblx0aGVpZ2h0OiAwO1xufVxuXG4udXN5ZC1zdGFjayB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDEwcHggMDtcbn1cblxuLnVzeWQtcGFnZSB7XG5cdEBleHRlbmQgLmNvbnRhaW5lcjtcbn1cblxuLnVzeWQtYm9keSB7XG5cdEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi51c3lkLW5vLWFzaWRlIC51c3lkLWZlYXR1cmUtYXNpZGUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4udXN5ZC1uby1tZW51IC51c3lkLW1lbnUtYXNpZGUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vLyBPdmVycmlkZSBib290c3JhdHBzJyBicmVha3Rwb2ludCBhdCA3NjggaW5zdGVhZCBvZiA3NjdcbkBtZWRpYShtYXgtd2lkdGg6NzY4cHgpe1xuXHRib2R5IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0fVx0XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhzbWFsbCB7XG5cdGJvZHkge1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHR9XG5cblx0LnVzeWQtYm9keSB7XG5cdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdH1cblxuXHQudXN5ZC1tZW51LWFzaWRlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LnVzeWQtZ3JpZC13cmFwIHtcblx0XHRmbG9hdDogbm9uZTtcblx0fVxuXHRcblx0LnVzeWQtZ3JpZC13cmFwLWltZy1nYWxsZXJ5IHtcblx0XHRmbG9hdDogbm9uZTtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbCB7XG5cdC51c3lkLWJvZHkge1xuXHRcdEBpbmNsdWRlIG1ha2Utcm93KCRncmlkR3V0dGVyV2lkdGhUYWJsZXQpO1xuXHR9XG5cblx0LnVzeWQtZ3JpZC13cmFwIC51c3lkLWdyaWQtd3JhcC1pbWctZ2FsbGVyeSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG5cdH1cblx0XG5cdC51c3lkLWdyaWQtd3JhcCwgLnVzeWQtaW5saW5lLXdyYXAge1xuXHRcdG1hcmdpbi1sZWZ0OiAkZ3JpZEd1dHRlcldpZHRoVGFibGV0O1xuXHR9XG5cblx0LnVzeWQtZ3JpZC13cmFwLWltZy1nYWxsZXJ5LCAudXN5ZC1pbmxpbmUtd3JhcCB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRncmlkR3V0dGVyV2lkdGhUYWJsZXQ7XG5cdH1cblx0XG5cdC51c3lkLWFzaWRlIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oMywgMCwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCk7XG5cdH1cblxuXHQudXN5ZC1tYWluIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oNiwgMCwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCk7XG5cdH1cblxuXHQudXN5ZC1tYWluIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oNiwgMCwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCk7XG5cblx0XHQudXN5ZC1uby1tZW51ICYsIC51c3lkLW5vLWFzaWRlICYge1xuXHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDksIDAsICRncmlkQ29sdW1uV2lkdGhUYWJsZXQsICRncmlkR3V0dGVyV2lkdGhUYWJsZXQpO1xuXHRcdH1cblxuXHRcdC51c3lkLW5vLW1lbnUudXN5ZC1uby1hc2lkZSAmIHtcblx0XHRcdEBpbmNsdWRlIG1ha2Utc3BhbigxMiwgMCwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCk7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtY29udGVudC1wYWdlIHtcblx0XHQudXN5ZC1tYWluIHtcblx0XHRcdEBpbmNsdWRlIG1ha2Utc3Bhbig5LCAwLCAkZ3JpZENvbHVtbldpZHRoVGFibGV0LCAkZ3JpZEd1dHRlcldpZHRoVGFibGV0KTtcblxuXHRcdFx0LnVzeWQtbm8tYXNpZGUgJiB7XG5cdFx0XHRcdEBpbmNsdWRlIG1ha2Utc3BhbigxMiwgMCwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVzeWQtbWVudS1hc2lkZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC8vIENvbXBvbmVudCBzaXplc1xuXHQudXN5ZC14c21hbGwge1xuXHRcdEBpbmNsdWRlIG1ha2Utc3BhbigzLCAwLCAkZ3JpZENvbHVtbldpZHRoVGFibGV0LCAkZ3JpZEd1dHRlcldpZHRoVGFibGV0KTtcblx0fVxuXG5cdC51c3lkLXNtYWxsIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oNiwgMCwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCk7XG5cdH1cblxuXHQudXN5ZC1sYXJnZSB7XG5cdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDksIDAsICRncmlkQ29sdW1uV2lkdGhUYWJsZXQsICRncmlkR3V0dGVyV2lkdGhUYWJsZXQpO1xuXHR9XG5cblx0LnVzeWQteGxhcmdlIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oMTIsIDAsICRncmlkQ29sdW1uV2lkdGhUYWJsZXQsICRncmlkR3V0dGVyV2lkdGhUYWJsZXQpO1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWxhcmdlIHtcblx0LnVzeWQtYm9keSB7XG5cdFx0QGluY2x1ZGUgbWFrZS1yb3coJGdyaWRHdXR0ZXJXaWR0aCk7XG5cdH1cblx0XG5cdC51c3lkLWdyaWQtd3JhcCAudXN5ZC1ncmlkLXdyYXAtaW1nLWdhbGxlcnkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMHB4O1xuXHR9XG5cblx0LnVzeWQtZ3JpZC13cmFwLCAudXN5ZC1pbmxpbmUtd3JhcCB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRncmlkR3V0dGVyV2lkdGg7XG5cdH1cblx0XG5cdC51c3lkLWdyaWQtd3JhcC1pbWctZ2FsbGVyeSwgLnVzeWQtaW5saW5lLXdyYXAge1xuXHRcdG1hcmdpbi1sZWZ0OiAkZ3JpZEd1dHRlcldpZHRoO1xuXHR9XG5cblx0LnVzeWQtYXNpZGUge1xuXHRcdEBpbmNsdWRlIG1ha2Utc3BhbigzLCAwLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKTtcblx0fVxuXG5cdC51c3lkLW1haW4ge1xuXHRcdEBpbmNsdWRlIG1ha2Utc3Bhbig2LCAwLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKTtcblxuXHRcdC51c3lkLW5vLW1lbnUgJiwgLnVzeWQtbm8tYXNpZGUgJiB7XG5cdFx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oOSwgMCwgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCk7XG5cdFx0fVxuXG5cdFx0LnVzeWQtbm8tbWVudS51c3lkLW5vLWFzaWRlICYge1xuXHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDEyLCAwLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKTtcblx0XHR9XG5cdH1cblxuXHQvLyBDb21wb25lbnQgc2l6ZXNcblx0LnVzeWQteHNtYWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1zcGFuKDMsIDAsICRncmlkQ29sdW1uV2lkdGgsICRncmlkR3V0dGVyV2lkdGgpO1xuXHR9XG5cblx0LnVzeWQtc21hbGwge1xuXHRcdEBpbmNsdWRlIG1ha2Utc3Bhbig2LCAwLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKTtcblx0fVxuXG5cdC51c3lkLWxhcmdlIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oOSwgMCwgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCk7XG5cdH1cblxuXHQudXN5ZC14bGFyZ2Uge1xuXHRcdEBpbmNsdWRlIG1ha2Utc3BhbigxMiwgMCwgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCk7XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteGxhcmdlIHtcblx0LnVzeWQtYm9keSB7XG5cdFx0QGluY2x1ZGUgbWFrZS1yb3coJGdyaWRHdXR0ZXJXaWR0aExhcmdlKTtcblx0fVxuXHRcblx0LnVzeWQtZ3JpZC13cmFwIC51c3lkLWdyaWQtd3JhcC1pbWctZ2FsbGVyeSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG5cdH1cblxuXHQudXN5ZC1ncmlkLXdyYXAsIC51c3lkLWlubGluZS13cmFwIHtcblx0XHRtYXJnaW4tbGVmdDogJGdyaWRHdXR0ZXJXaWR0aExhcmdlO1xuXHR9XG5cdFxuXHQudXN5ZC1ncmlkLXdyYXAtaW1nLWdhbGxlcnksIC51c3lkLWlubGluZS13cmFwIHtcblx0XHRtYXJnaW4tbGVmdDogJGdyaWRHdXR0ZXJXaWR0aExhcmdlO1xuXHR9XG5cblx0LnVzeWQtYXNpZGUge1xuXHRcdEBpbmNsdWRlIG1ha2Utc3BhbigzLCAwLCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSk7XG5cdH1cblxuXHQudXN5ZC1tYWluIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oNiwgMCwgJGdyaWRDb2x1bW5XaWR0aExhcmdlLCAkZ3JpZEd1dHRlcldpZHRoTGFyZ2UpO1xuXG5cdFx0LnVzeWQtbm8tbWVudSAmLCAudXN5ZC1uby1hc2lkZSAmIHtcblx0XHRcdEBpbmNsdWRlIG1ha2Utc3Bhbig5LCAwLCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSk7XG5cdFx0fVxuXG5cdFx0LnVzeWQtbm8tbWVudS51c3lkLW5vLWFzaWRlICYge1xuXHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDEyLCAwLCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ29tcG9uZW50IHNpemVzXG5cdC51c3lkLXhzbWFsbCB7XG4gICAgICAgIEBpbmNsdWRlIG1ha2Utc3BhbigzLCAwLCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSk7XG4gICAgfVxuXHQudXN5ZC1zbWFsbCB7XG5cdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDYsIDAsICRncmlkQ29sdW1uV2lkdGhMYXJnZSwgJGdyaWRHdXR0ZXJXaWR0aExhcmdlKTtcblx0fVxuXG5cdC51c3lkLWxhcmdlIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oOSwgMCwgJGdyaWRDb2x1bW5XaWR0aExhcmdlLCAkZ3JpZEd1dHRlcldpZHRoTGFyZ2UpO1xuXHR9XG5cblx0LnVzeWQteGxhcmdlIHtcblx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oMTIsIDAsICRncmlkQ29sdW1uV2lkdGhMYXJnZSwgJGdyaWRHdXR0ZXJXaWR0aExhcmdlKTtcblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi8vIFRoZSBncmlkIHN5c3RlbSB3ZSd2ZSB1c2VkIGlzIGltcGVyZmVjdCBmb3IgQUVNIGFuZCBzb21lIGNvbXBvbmVudHMgbmVlZCB0byBoYXZlIHNwZWNpYWwgd3JhcHBlcnMgb3IgYWRqdXN0bWVudHNcbi8vIGRlcGVuZGluZyBvbiB3aGVyZSB0aGV5J3JlIHBsYWNlZC5cblxuLy8gVGhlIGVkaXQgb3ZlcmxheSBpbiBBRU0gcmVwcmVzZW50cyB0aGUgb3V0bGluZSBvZiB3aGF0IHRoZSBjb21wb25lbnQgc2hvdWxkIGxvb2sgbGlrZS4gV2l0aCBjb21wb25lbnRzIHRoYXQgdXNlXG4vLyBncmlkIHNwYW4gY2xhc3NlcywgdGhpcyB3cmFwcGVyIGNsYXNzIGVuc3VyZXMgdGhlIG92ZXJsYXkgbG9va3MgY29ycmVjdC4gSXQgc2hvdWxkIGJlIHVzZWQgdG8gd3JhcCBhIGNvbXBvbmVudFxuLy8gdXNpbmcgYSBzcGFuKiBvciBzaXplIGNsYXNzICh1c3lkLXNtYWxsLCBldGMpIHdoZW4gaXQgaXMgdXNlZCBpbnNpZGUgYSBjb21wb25lbnQuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbC11cCB7XG5cdC51c3lkLWdyaWQtd3JhcC1jbGVhci5jcS1FZGl0YWJsZS1kb20gKyBkaXY6bm90KC51c3lkLWdyaWQtd3JhcC1jbGVhcikge1xuXHRcdGNsZWFyOiBib3RoOyBcblx0fVxuXHRcblx0LnVzeWQtZ3JpZC13cmFwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0PiAqW2NsYXNzKj1zcGFuXSwgLnVzeWQteHNtYWxsLCAudXN5ZC1zbWFsbCwgLnVzeWQtbGFyZ2UsIC51c3lkLXhsYXJnZSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdH1cblxuXHRcdD4gOmZpcnN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0LnVzeWQtYXNpZGUgJiB7XG5cdFx0XHRmbG9hdDogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtZ3JpZC13cmFwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG59XG5cbi8vIFRoaXMgaXMgdGhlIGVxdWl2YWxlbnQgb2YgZ3JpZCB3cmFwIGZvciBlbGVtZW50cyB0aGF0IHNob3VsZCBzaW1wbHkgc2l0IGlubGluZSBpbnNpZGUgYSByb3cgY29udGFpbmVyXG4vLyBhbmQgbm90IGZsb2F0IG9yIGhhdmUgb3RoZXIgZ3JpZCBwcm9wZXJ0aWVzLiBJdCBpcyBuZWNlc3NhcnkgdG8gb2Zmc2V0IHRoZXNlIGNvbXBvbmVudHMgZnJvbSB0aGUgbGVmdCBieSAkZ3V0dGVyLXdpZHRoIHNvIHRoZXlcbi8vIGRvbid0IGZsb3cgb3V0c2lkZSB0aGUgY29udGFpbmVyLlxuLnVzeWQtaW5saW5lLXdyYXAge1xuXG59XG5cbi8vIFdoZW4gY29tcG9uZW50cyBhcmUgcGxhY2VkIGluIGNvbHVtbnMgd2UgZG9uJ3Qgd2FudCB0aGVtIHRvIGJlIG9mZnNldCB1c2luZyBncmlkIGd1dHRlcnMgb3IgZmxvYXRlZFxuLnVzeWQtY29sdW1uIHtcblx0PiAudXN5ZC1ncmlkLXdyYXAsID4gLnVzeWQtaW5saW5lLXdyYXAge1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdGZsb2F0OiBub25lO1xuXHR9XG59XG5cbi51c3lkLW5vLXdyYXAge1xuXHRAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLnVzeWQtbGluZS1icmVhayB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXHRjbGVhcjogYm90aDtcbn1cblxuLy8gUmVtb3ZlIHBhZGRpbmcgZnJvbSBlbGVtZW50cyB3aGVyZSB0aGUgYm9yZGVyIGhhcyBhbHJlYWR5IGJlZW4gcmVtb3ZlZC5cbi51c3lkLXVpLXNhbnMtcGFkZGluZyAudXN5ZC11aS1zYW5zLWJvcmRlciB7XG5cdHBhZGRpbmctdG9wOiAwO1xuXG5cdC51c3lkLWNsaXBwaW5nIGltZyB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZlYXR1cmUvc2lkZSBhbmQgbWVudSBjb2x1bW4gcmVvcmllbnRhdGlvbiBpbiBBRU0gZWRpdCBtb2RlXG4vL1xuLy8gSW4gZWRpdCBtb2RlIHdlIHN0aWxsIHdhbnQgdG8ga2VlcCB0aGUgZmVhdHVyZSBvciBtZW51IGNvbHVtbnMgYXJvdW5kIHNvIHVzZXJzIGNhbiBkcm9wIHN0dWZmIGludG8gdGhlbVxuXG4uY3Etd2NtLWVkaXQudXN5ZC1uby1hc2lkZSAudXN5ZC1mZWF0dXJlLWFzaWRlIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5jcS13Y20tZWRpdC51c3lkLW5vLW1lbnUgLnVzeWQtbWVudS1hc2lkZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbCB7XG5cdC5jcS13Y20tZWRpdCB7XG5cdFx0Ji51c3lkLW5vLWFzaWRlIC51c3lkLWZlYXR1cmUtYXNpZGUge1xuXHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDksIDMsICRncmlkQ29sdW1uV2lkdGhUYWJsZXQsICRncmlkR3V0dGVyV2lkdGhUYWJsZXQpO1xuXHRcdH1cblxuXHRcdCYudXN5ZC1uby1tZW51IC51c3lkLW1lbnUtYXNpZGUge1xuXHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDEyLCAwLCAkZ3JpZENvbHVtbldpZHRoVGFibGV0LCAkZ3JpZEd1dHRlcldpZHRoVGFibGV0KTtcblx0XHR9XG5cblx0XHQmLnVzeWQtbm8tYXNpZGUudXN5ZC1uby1tZW51IC51c3lkLWZlYXR1cmUtYXNpZGUge1xuXHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDEyLCAwLCAkZ3JpZENvbHVtbldpZHRoVGFibGV0LCAkZ3JpZEd1dHRlcldpZHRoVGFibGV0KTtcblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtbGFyZ2Uge1xuXHQuY3Etd2NtLWVkaXQge1xuXHRcdCYudXN5ZC1uby1hc2lkZSAudXN5ZC1mZWF0dXJlLWFzaWRlIHtcblx0XHRcdEBpbmNsdWRlIG1ha2Utc3Bhbig5LCAzLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKTtcblx0XHR9XG5cblx0XHQmLnVzeWQtbm8tbWVudSAudXN5ZC1tZW51LWFzaWRlIHtcblx0XHRcdEBpbmNsdWRlIG1ha2Utc3BhbigxMiwgMCwgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCk7XG5cdFx0fVxuXG5cdFx0Ji51c3lkLW5vLWFzaWRlLnVzeWQtbm8tbWVudSB7XG5cdFx0XHQudXN5ZC1mZWF0dXJlLWFzaWRlIHtcblx0XHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDEyLCAwLCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteGxhcmdlIHtcblx0LmNxLXdjbS1lZGl0IHtcblx0XHQmLnVzeWQtbm8tYXNpZGUgLnVzeWQtZmVhdHVyZS1hc2lkZSB7XG5cdFx0XHRAaW5jbHVkZSBtYWtlLXNwYW4oOSwgMywgJGdyaWRDb2x1bW5XaWR0aExhcmdlLCAkZ3JpZEd1dHRlcldpZHRoTGFyZ2UpO1xuXHRcdH1cblxuXHRcdCYudXN5ZC1uby1tZW51IC51c3lkLW1lbnUtYXNpZGUge1xuXHRcdFx0QGluY2x1ZGUgbWFrZS1zcGFuKDEyLCAwLCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSk7XG5cdFx0fVxuXG5cdFx0Ji51c3lkLW5vLWFzaWRlLnVzeWQtbm8tbWVudSAudXN5ZC1mZWF0dXJlLWFzaWRlIHtcblx0XHRcdEBpbmNsdWRlIG1ha2Utc3BhbigxMiwgMCwgJGdyaWRDb2x1bW5XaWR0aExhcmdlLCAkZ3JpZEd1dHRlcldpZHRoTGFyZ2UpO1xuXHRcdH1cblx0fVxufSIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGluc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4udXN5ZC1sb2NhbC1oZWFkaW5nIHtcblx0Zm9udC1zaXplOiAxOHB4O1xuXHRwYWRkaW5nOiAyNnB4IDAgMTBweCAwO1xuXHRib3JkZXItdG9wOiAycHggc29saWQgJGJyYW5kLXByaW1hcnk7XG5cblx0YTpsaW5rLFxuXHRhOnZpc2l0ZWQge1xuXHRcdGNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0fVxufVxuXG4udXN5ZC1ob21lLXBhZ2Uge1xuXHQudXN5ZC1sb2NhbC1oZWFkaW5nIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0LnVzeWQtaG9yaXpvbnRhbC1saW5lIHtcblx0XHRtYXJnaW46IDIwcHggMDtcblx0XHRib3JkZXItdG9wLWNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0XHRiYWNrZ3JvdW5kOiAkYnJhbmQtcHJpbWFyeTtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbC1kb3duIHtcblx0LnVzeWQtbG9jYWwtaGVhZGluZyB7XG5cdFx0cGFkZGluZzogMCAwIDEwcHg7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHR9XG5cblx0Ly8gUHVsbCB0aGUgbWFyZ2luIG9mZiB0aGUgY29tbW9uIG5hdiAobm9ybWFsbHkgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgaGVhZGVyKSBhbmQgZ2l2ZSBpdCB0byBsb2NhbCBoZWFkaW5nLFxuXHQvLyB3aGljaCBhcHBlYXJzIGRpcmVjdGx5IHVuZGVyIGl0XG5cdC51c3lkLXNraW5uZWQtcGFnZSB7XG5cdFx0LnVzeWQtdGFicyA+IGgyIHtcblx0XHRcdHRvcDogLTYwcHg7XG5cdFx0fVxuXG5cdFx0LnVzeWQtdWktY29tbW9uLW5hdiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblxuXHRcdC51c3lkLWxvY2FsLWhlYWRpbmcge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHR9XG5cdH1cbn1cblxuLnVzeWQtbG9jYWwtbWFpbiB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNGMUYxRjE7XG5cblx0LnVzeWQtaG9yaXpvbnRhbC1saW5lIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRtYXJnaW46IDA7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogJGJyYW5kLXByaW1hcnk7XG5cdH1cblxuXHQudXN5ZC11aS1tb3JlLWxpbmsge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRhIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtbG9jYWwtaGVhZGluZyB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxOXB4O1xuXHR9XG5cblx0LnVzeWQtbG9jYWwtbWFpbiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGdyaWRHdXR0ZXJXaWR0aDtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXNtYWxsIHtcblx0LnVzeWQtbG9jYWwtbWFpbiB7XG5cdFx0cGFkZGluZzogJGdyaWRHdXR0ZXJXaWR0aFRhYmxldDtcblx0XHRtYXJnaW46IDAgKCRncmlkR3V0dGVyV2lkdGggKiAtMSkgJGdyaWRHdXR0ZXJXaWR0aDtcblxuXHRcdC8vIFBhdCBTLiAtIENvbW1lbnRpbmcgdGhlc2Ugb3V0IGFzIHRoZXkgbWF5IG5vdCBiZSByZWxldmVudCBhbnltb3JlLlxuXHRcdC8vIE5lZ2F0aXZlIG1hcmdpbiBvbiB0aGUgZ3JleSB1c3lkLWxvY2FsLW1haW4gZWxlbWVudCBzaG91bGQgcmVzdWx0IGluIGl0J3Mgd2lkdGggYmVpbmdcblx0XHQvLyB0aGUgc2FtZSBhcyBvdGhlciBzZWN0aW9ucyBtZWFuaW5nIHRoZXNlIGNsYXNzZXMgc2hvdWxkIG5vdCBoYXZlIHRvIGNoYW5nZVxuXHRcdC8qLnVzeWQteHNtYWxsIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDMsICRncmlkQ29sdW1uV2lkdGhUYWJsZXQsICRncmlkR3V0dGVyV2lkdGhUYWJsZXQpIC0gKCRncmlkR3V0dGVyV2lkdGhUYWJsZXQgKiAyKTtcblx0XHR9XG5cblx0XHQudXN5ZC1zbWFsbCB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCg2LCAkZ3JpZENvbHVtbldpZHRoVGFibGV0LCAkZ3JpZEd1dHRlcldpZHRoVGFibGV0KSAtICgkZ3JpZEd1dHRlcldpZHRoVGFibGV0ICogMik7XG5cdFx0fVxuXG5cdFx0LnVzeWQtbGFyZ2Uge1xuXHRcdFx0d2lkdGg6IHNwYW4td2lkdGgoOSwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCkgLSAoJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCAqIDIpO1xuXHRcdH1cblxuXHRcdC51c3lkLXhsYXJnZSB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCgxMiwgJGdyaWRDb2x1bW5XaWR0aFRhYmxldCwgJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCkgLSAoJGdyaWRHdXR0ZXJXaWR0aFRhYmxldCAqIDIpO1xuXHRcdH0qL1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWxhcmdlIHtcblx0LnVzeWQtbG9jYWwtbWFpbiB7XG5cdFx0cGFkZGluZzogJGdyaWRHdXR0ZXJXaWR0aDtcblx0XHRtYXJnaW46IDAgKCRncmlkR3V0dGVyV2lkdGggKiAtMSkgJGdyaWRHdXR0ZXJXaWR0aDtcblxuXHRcdC8vIFBhdCBTLiAtIENvbW1lbnRpbmcgdGhlc2Ugb3V0IGFzIHRoZXkgbWF5IG5vdCBiZSByZWxldmVudCBhbnltb3JlLlxuXHRcdC8vIE5lZ2F0aXZlIG1hcmdpbiBvbiB0aGUgZ3JleSB1c3lkLWxvY2FsLW1haW4gZWxlbWVudCBzaG91bGQgcmVzdWx0IGluIGl0J3Mgd2lkdGggYmVpbmdcblx0XHQvLyB0aGUgc2FtZSBhcyBvdGhlciBzZWN0aW9ucyBtZWFuaW5nIHRoZXNlIGNsYXNzZXMgc2hvdWxkIG5vdCBoYXZlIHRvIGNoYW5nZVxuXHRcdC8qLnVzeWQteHNtYWxsIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDMsICRncmlkQ29sdW1uV2lkdGgsICRncmlkR3V0dGVyV2lkdGgpIC0gKCRncmlkR3V0dGVyV2lkdGggKiAyKTtcblx0XHR9XG5cblx0XHQudXN5ZC1zbWFsbCB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCg2LCAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoKSAtICgkZ3JpZEd1dHRlcldpZHRoICogMik7XG5cdFx0fVxuXG5cdFx0LnVzeWQtbGFyZ2Uge1xuXHRcdFx0d2lkdGg6IHNwYW4td2lkdGgoOSwgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCkgLSAoJGdyaWRHdXR0ZXJXaWR0aCAqIDIpO1xuXHRcdH1cblxuXHRcdC51c3lkLXhsYXJnZSB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCgxMiwgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCkgLSAoJGdyaWRHdXR0ZXJXaWR0aCAqIDIpO1xuXHRcdH0qL1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhsYXJnZSB7XG5cdC51c3lkLWxvY2FsLW1haW4ge1xuXHRcdHBhZGRpbmc6IDQwcHggNDBweCAyMHB4O1xuXHRcdG1hcmdpbjogMCAtNDBweCA1NHB4O1xuXG5cdFx0Ly8gUGF0IFMuIC0gQ29tbWVudGluZyB0aGVzZSBvdXQgYXMgdGhleSBtYXkgbm90IGJlIHJlbGV2ZW50IGFueW1vcmUuXG5cdFx0Ly8gTmVnYXRpdmUgbWFyZ2luIG9uIHRoZSBncmV5IHVzeWQtbG9jYWwtbWFpbiBlbGVtZW50IHNob3VsZCByZXN1bHQgaW4gaXQncyB3aWR0aCBiZWluZ1xuXHRcdC8vIHRoZSBzYW1lIGFzIG90aGVyIHNlY3Rpb25zIG1lYW5pbmcgdGhlc2UgY2xhc3NlcyBzaG91bGQgbm90IGhhdmUgdG8gY2hhbmdlXG5cdFx0LyoudXN5ZC14c21hbGwge1xuXHRcdFx0d2lkdGg6IHNwYW4td2lkdGgoMywgJGdyaWRDb2x1bW5XaWR0aExhcmdlLCAkZ3JpZEd1dHRlcldpZHRoTGFyZ2UpIC0gKCRncmlkR3V0dGVyV2lkdGhMYXJnZSAqIDIpO1xuXHRcdH1cblxuXHRcdC51c3lkLXNtYWxsIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDYsICRncmlkQ29sdW1uV2lkdGhMYXJnZSwgJGdyaWRHdXR0ZXJXaWR0aExhcmdlKSAtICgkZ3JpZEd1dHRlcldpZHRoTGFyZ2UgKiAyKTtcblx0XHR9XG5cblx0XHQudXN5ZC1sYXJnZSB7XG5cdFx0XHR3aWR0aDogc3Bhbi13aWR0aCg5LCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSkgLSAoJGdyaWRHdXR0ZXJXaWR0aExhcmdlICogMik7XG5cdFx0fVxuXG5cdFx0LnVzeWQteGxhcmdlIHtcblx0XHRcdHdpZHRoOiBzcGFuLXdpZHRoKDEyLCAkZ3JpZENvbHVtbldpZHRoTGFyZ2UsICRncmlkR3V0dGVyV2lkdGhMYXJnZSkgLSAoJGdyaWRHdXR0ZXJXaWR0aExhcmdlICogMik7XG5cdFx0fSovXG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGluc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4udXN5ZC1jb2x1bW5zIHtcblx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cdG1hcmdpbi1sZWZ0OiAtJGdyaWRHdXR0ZXJXaWR0aDtcblx0bWFyZ2luLWJvdHRvbTogJGdyaWRHdXR0ZXJXaWR0aDtcblxuXHQudXN5ZC1jb2x1bW4ge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0cGFkZGluZy1sZWZ0OiAkZ3JpZEd1dHRlcldpZHRoO1xuXG5cdFx0Ji51c3lkLWNvbHVtbi1sYXN0IHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0fVxuXHR9XG5cblx0Ji51c3lkLWNvbHVtbnMtMiAudXN5ZC1jb2x1bW4ge1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cblxuXHQmLnVzeWQtY29sdW1ucy0zIC51c3lkLWNvbHVtbiB7XG5cdFx0d2lkdGg6IDMzLjMlO1xuXHR9XG5cblx0Ji51c3lkLWNvbHVtbnMtNCAudXN5ZC1jb2x1bW4ge1xuXHRcdHdpZHRoOiAyNSU7XG5cdH1cblxuXHQmLnVzeWQtY29sdW1ucy01IC51c3lkLWNvbHVtbiB7XG5cdFx0d2lkdGg6IDIwJTtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS14c21hbGwge1xuXHQudXN5ZC1jb2x1bW5zIHtcblx0XHRtYXJnaW4tbGVmdDogLSRncmlkR3V0dGVyV2lkdGg7XG5cdFx0bWFyZ2luLWJvdHRvbTogJGdyaWRHdXR0ZXJXaWR0aDtcblx0XHQ+IC51c3lkLWNvbHVtbiB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6ICRncmlkR3V0dGVyV2lkdGg7XG5cdFx0fVxuXHRcdCYudXN5ZC1jb2x1bW5zLTIgLnVzeWQtY29sdW1uIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbCB7XG5cdC51c3lkLWNvbHVtbnMge1xuXHRcdC51c3lkLWNvbHVtbnMtMiB7XG5cdFx0XHRcdC51c3lkLWNvbHVtbiB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHR9XG5cdFx0bWFyZ2luLWxlZnQ6IC0kZ3JpZEd1dHRlcldpZHRoVGFibGV0O1xuXHRcdG1hcmdpbi1ib3R0b206ICRncmlkR3V0dGVyV2lkdGhUYWJsZXQ7XG5cdFx0PiAudXN5ZC1jb2x1bW4ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAkZ3JpZEd1dHRlcldpZHRoVGFibGV0O1xuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS1sYXJnZSB7XG5cdC51c3lkLWNvbHVtbnMge1xuXHRcdG1hcmdpbi1sZWZ0OiAtJGdyaWRHdXR0ZXJXaWR0aDtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ3JpZEd1dHRlcldpZHRoO1xuXHRcdD4gLnVzeWQtY29sdW1uIHtcblx0XHRcdHBhZGRpbmctbGVmdDogJGdyaWRHdXR0ZXJXaWR0aDtcblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtbGFyZ2Uge1xuXHQudXN5ZC1jb2x1bW5zIHtcblx0XHRtYXJnaW4tbGVmdDogLSRncmlkR3V0dGVyV2lkdGhMYXJnZTtcblx0XHRtYXJnaW4tYm90dG9tOiAkZ3JpZEd1dHRlcldpZHRoTGFyZ2U7XG5cdFx0PiAudXN5ZC1jb2x1bW4ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAkZ3JpZEd1dHRlcldpZHRoTGFyZ2U7XG5cdFx0fVxuXHR9XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zXCI7XG5cbi8qXG5PcmRlcmVkIGFuZCB1bm9yZGVyZWQgbGlzdHNcblxuU3R5bGVndWlkZSAxLjFcbiovXG51bCwgb2wge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cblx0bGkge1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRtYXJnaW46IDAuNzVlbSAwO1xuXHR9XG59XG5cbi8qXG5TdGFuZGFyZCB1bm9yZGVyZWQgY29udGVudCBsaXN0cyB3aXRoIDMgbGV2ZWxzIG9mIHN1cHBvcnRlZCBuZXN0aW5nXG4qL1xuLnVzeWQtdWktc3RhbmRhcmQtbGlzdCB7XG5cdG1hcmdpbjogMWVtIDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cblx0PiBsaSB7XG5cdFx0YmFja2dyb3VuZDogdXJsKCN7JGltYWdlLXBhdGh9L25kYXNoLXJlZC5wbmcpIG5vLXJlcGVhdCA2cHggM3B4O1xuXHRcdHBhZGRpbmctbGVmdDogMjVweDtcblxuXHR9XG5cblx0Ly8gU2xpZ2h0bHkgb3V0IG9mIGNvcnJlY3QgbmVzdGVkIG9yZGVyIChzZWUgYmVsb3cgYWJvdXQgIzYyNylcblx0dWwge1xuXHRcdD4gbGkge1xuXHRcdFx0YmFja2dyb3VuZDogdXJsKCN7JGltYWdlLXBhdGh9L2Rhc2gtcmVkLnBuZykgbm8tcmVwZWF0IDExcHggM3B4O1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyNXB4O1xuXHRcdH1cblx0XHR1bCB7XG5cdFx0XHQ+IGxpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdXJsKCN7JGltYWdlLXBhdGh9L2RvdC1yZWQucG5nKSBuby1yZXBlYXQgMTFweCAzcHg7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMjVweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBUaGlzIGlzIGEgaGFjayB0byBkZWFsIHdpdGggaG93IFRpbnlNQ0UgbmVzdHMgbGlzdHMgKHdoaWNoIGlzIHdyb25nKS5cblx0Ly8gT25jZSAjNjI3IGlzIGZpeGVkLCB0aGlzIHNob3VsZCBiZSByZW1vdmVkXG5cdD4gdWwge1xuXHRcdG1hcmdpbi1sZWZ0OiAyLjNlbTtcblx0XHQ+IHVsIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAyLjNlbTtcblx0XHR9XG5cdH1cbn1cblxuLy8gV2l0aGluIGNlcnRhaW4gY29tcG9uZW50cyBpbiBBRU0sIGxpc3RzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGFwcGVyYW5jZSBhcyB1c3lkLXVpLXN0YW5kYXJkLWxpc3QgYnkgZGVmYXVsdFxuLnVzeWQtYm9keS1jb250ZW50IHVsLCAudXN5ZC1hc2lkZS1jb250ZW50IHVsIHtcblx0QGV4dGVuZCAudXN5ZC11aS1zdGFuZGFyZC1saXN0O1xufVxuXG4udXN5ZC11aS1vcmRlcmVkLWxpc3Qge1xuXHRsaXN0LXN0eWxlOiBkZWNpbWFsIG91dHNpZGU7XG5cdG1hcmdpbi1sZWZ0OiAyLjVlbTtcblxuXHQmLnVzeWQtYWxwaGEtbGlzdCB7XG5cdFx0bGlzdC1zdHlsZTogbG93ZXItYWxwaGEgb3V0c2lkZTtcblx0fVxuXG5cdCYudXN5ZC1yb21hbi1saXN0IHtcblx0XHRsaXN0LXN0eWxlOiBsb3dlci1yb21hbiBvdXRzaWRlO1xuXHR9XG5cblx0Ji51c3lkLXVwcGVyLWFscGhhLWxpc3Qge1xuXHRcdGxpc3Qtc3R5bGU6IHVwcGVyLWFscGhhIG91dHNpZGU7XG5cdH1cblxuXHQmLnVzeWQtdXBwZXItcm9tYW4tbGlzdCB7XG5cdFx0bGlzdC1zdHlsZTogdXBwZXItcm9tYW4gb3V0c2lkZTtcblx0fVxuXG5cdD4gbGkge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0fVxufVxuXG4vLyBGb3Igc3BlY2lmaWMgY29tcG9uZW50cyBpbiBBRU0gdGhhdCBuZWVkIHRvIHVzZSB0aGUgb3JkZXJlZCBsaXN0IHN0eWxlIGFzIHRoZWlyIGRlZmF1bHRcbi51c3lkLWJvZHktY29udGVudCBvbCwgLnVzeWQtYXNpZGUtY29udGVudCBvbCB7XG4gIEBleHRlbmQgLnVzeWQtdWktb3JkZXJlZC1saXN0O1xufVxuXG4vKlxuTGlzdCBvZiB1bm9yZGVyZWQgbGlua3NcbiovXG4udXN5ZC1saW5rLWxpc3Qge1xuXHQ+IGxpIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0Ly8gVXNlIHRoZSBmb250ZWxsbyBpY29uIGZvciBhIHJpZ2h0IGFycm93IGFzIHRoZSBidWxsZXRcblxuXHRcdEBpbmNsdWRlIGJlZm9yZSB7XG5cdFx0XHRAaW5jbHVkZSBmb250ZWxsby1pY29uKCRpY29uLXJpZ2h0LW9wZW4sIDhweCk7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dG9wOiAzcHg7XG5cdFx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLWljb24tbGlzdCB7XG4vLyBPcmlnaW5hbGx5IEkgd2FudGVkIHRoaXMgdG8gYWxsb3cgeW91IHRvIGNyZWF0ZSBlbGVtZW50cyBsaWtlIDxsaSBjbGFzcz1cImljb24tc29tZXRoaW5nXCI+Q29udGVudDwvbGk+IGJ1dCBpdFxuLy8gZG9lc24ndCB3b3JrIGJlY2F1c2Ugb2YgSUU3LCB0aGFua3MgSUU3IChzZWUgQUVNLTMzNCkuIEluc3RlYWQgdGhpcyBqdXN0IGdpdmVzIGVub3VnaCB3aGl0ZXNwYWNlIGZvciBhIGxpc3Qgd2l0aCA8aT4gaWNvbnNcbi8vIHRvIGxvb2sgbmljZS5cbi8vXHQ+IGxpIHtcbi8vXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vXHRcdHBhZGRpbmctbGVmdDogMjVweDtcbi8vXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG4vL1xuLy9cdFx0QGluY2x1ZGUgYmVmb3JlIHtcbi8vXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuLy9cdFx0XHRmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbi8vXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuLy9cdFx0XHRsZWZ0OiAwcHg7XG4vL1x0XHRcdHRvcDogLTNweDtcbi8vXHRcdH1cbi8vXHR9XG5cdD4gbGkge1xuXHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdH1cbn1cblxuLnVzeWQtaW5saW5lLWxpc3Qge1xuXHQ+IGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG5cdH1cblxuXHQmLnB1bGwtcmlnaHQgPiBsaSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDVweDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblxuXHQmLnVzeWQtaWNvbi1saXN0ID4gbGkge1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0fVxufVxuXG4vLyBBIHNldCBvZiBzdHlsZXMgZm9yIGNvbnRyYWN0dWFsIGNsYXVzZXMsIHVzZWQgcHJpbWFyaWx5IGJ5IHRoZSBFbnRlcnByaXNlIEFncmVlbWVudC5cbi8vIFRoZSBuZXN0aW5nIHN0eWxlIGlzOlxuLy8gTnVtYmVyZWRcbi8vICAgTG93ZXJjYXNlIGFscGhhYmV0XG4vLyAgICBMb3dlcmNhc2Ugcm9tYW5cbi8vICAgICAgVXBwZXJjYXNlIGFscGhhYmV0XG4udXN5ZC1jbGF1c2UtbGlzdCB7XG5cdEBleHRlbmQgLnVzeWQtdWktb3JkZXJlZC1saXN0O1xuXG5cdG9sIHtcblx0XHRAZXh0ZW5kIC51c3lkLXVpLW9yZGVyZWQtbGlzdDtcblx0XHRAZXh0ZW5kIC51c3lkLWFscGhhLWxpc3Q7XG5cblx0XHRvbCB7XG5cdFx0XHRAZXh0ZW5kIC51c3lkLXVpLW9yZGVyZWQtbGlzdDtcblx0XHRcdEBleHRlbmQgLnVzeWQtcm9tYW4tbGlzdDtcblxuXHRcdFx0b2wge1xuXHRcdFx0XHRAZXh0ZW5kIC51c3lkLXVpLW9yZGVyZWQtbGlzdDtcblx0XHRcdFx0QGV4dGVuZCAudXN5ZC11cHBlci1hbHBoYS1saXN0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbCB7XG5cdC51c3lkLXVpLWNvbXBhY3QtbGlzdCB7XG5cdFx0bGkge1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRwYWRkaW5nOiAwIDAgMCAzMHB4O1xuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBoaS1kcGkge1xuXHQudXN5ZC11aS1zdGFuZGFyZC1saXN0IHtcblx0XHQ+IGxpIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9uZGFzaC1yZWRAMngucG5nKTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDtcblxuXG5cdFx0XHR1bCB7XG5cdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9kYXNoLXJlZEAyeC5wbmcpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHVsID4gbGkge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9kb3QtcmVkQDJ4LnBuZyk7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiA4cHggOHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qXG5Db2x1bW4gc3VwcG9ydCBmb3IgdmFyaW91cyB0eXBlcyBvZiBsaXN0XG4qL1xuLnVzeWQtbGlzdC0yLWNvbHVtbnMsIC51c3lkLWxpc3QtMy1jb2x1bW5zLCAudXN5ZC1saXN0LTQtY29sdW1ucyB7XG5cdEBpbmNsdWRlIGNsZWFyZml4O1xuXHQ+IGxpIHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdH1cbn1cblxuLnVzeWQtbGlzdC0yLWNvbHVtbnMgPiBsaSB7XG5cdHdpZHRoOiA1MCU7XG5cdCY6bnRoLWNoaWxkKDJuICsgMSkge1xuXHRcdGNsZWFyOiBsZWZ0O1xuXHR9XG59XG5cbi51c3lkLWxpc3QtMy1jb2x1bW5zID4gbGkge1xuXHR3aWR0aDogMzMuMyU7XG5cdCY6bnRoLWNoaWxkKDNuICsgMSkge1xuXHRcdGNsZWFyOiBsZWZ0O1xuXHR9XG59XG5cbi51c3lkLWxpc3QtNC1jb2x1bW5zID4gbGkge1xuXHR3aWR0aDogMjUlO1xuXHQmOm50aC1jaGlsZCg0biArIDEpIHtcblx0XHRjbGVhcjogbGVmdDtcblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4vLyBBIGxpc3Qgb2YgaXRlbXMgd2l0aCBhIGxhYmVsIGFuZCBhIGRldGFpbCBvciB2YWx1ZSwgd2hlcmUgdGhlIGxhYmVsIGlzIGNsZWFybHkgZGVsaW5lYXRlZCBmcm9tIHRoZSBkZXRhaWxcblxuLnVzeWQtbGFiZWxsZWQtbGlzdCwgZGwge1xuXHRmb250LXNpemU6IDEycHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbmR0LCAudXN5ZC1pdGVtLWxhYmVsIHtcblx0Y29sb3I6IHRpbnQoYmxhY2ssIDQ2JSk7IC8vIDU0JSBvcGFjaXR5XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdG1hcmdpbi10b3A6IDVweDtcblx0Y2xlYXI6IGxlZnQ7XG5cblx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxufVxuXG5kZCwgLnVzeWQtaXRlbS1kZXRhaWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0bWFyZ2luLXRvcDogNXB4O1xuXG5cdGR0OmZpcnN0LWNoaWxkICsgJiwgLnVzeWQtaXRlbS1sYWJlbDpmaXJzdC1jaGlsZCArICYge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtbGFiZWxsZWQtbGlzdCwgZGwge1xuXHRcdGR0LCAudXN5ZC1pdGVtLWxhYmVsIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRjbGVhcjogbm9uZTtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHRkZCwgLnVzeWQtaXRlbS1kZXRhaWwge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdH1cblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcIi4uL2NvbG9yc1wiO1xuXG4udXN5ZC11aS10aXRsZS1oaWdobGlnaHRlZCB7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi51c3lkLXVpLWhpZ2hsaWdodCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udXN5ZC11aS1yZXN1bHQtbGlzdCB7XG5cdGJvcmRlcjogbm9uZTtcblx0Ly8gbWF4LXdpZHRoOiA2MGVtO1xufVxuXG4udXN5ZC11aS1yZXN1bHQtaXRlbSB7XG5cdG1hcmdpbi1ib3R0b206IDNlbTtcblxuXHRoMyB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG5cdCYudXN5ZC11aS1hbHQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRpbnQoYmxhY2ssIDk3JSk7XG5cdH1cbn1cblxuLypcblVzZWQgdG8gbWFyayB1cCBhbiBpdGVtIG9mIG1ldGFkYXRhIHN1Y2ggYXMgdGhlIGRhdGUgb2YgYW4gZXZlbnQgb3IgdGhlIGxvY2F0aW9uLiBUZXh0IGNvdWxkIHBvdGVudGlhbGx5IGJlIGFjY29tcGFuaWVkIGJ5IGFuIGljb24uXG4qL1xuLnVzeWQtbWV0YWRhdGEge1xuXHRmb250LXNpemU6IDEycHg7XG5cdGNvbG9yOiB0aW50KGJsYWNrLCA0NSUpO1xuXG5cdGEge1xuXHRcdCY6bGluaywgJjp2aXNpdGVkIHtcblx0XHRcdGNvbG9yOiB0aW50KGJsYWNrLCA0NSUpO1xuXHRcdH1cblxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGNvbG9yOiB0aW50KGJsYWNrLCAyNSUpO1xuXHRcdH1cblx0fVxufVxuXG4udXN5ZC11aS1yZXN1bHQtbWV0YWRhdGEge1xuXHRtYXJnaW46IDA7XG59XG5cbi51c3lkLXVpLXJlc3VsdC11cmwge1xuXHRjb2xvcjogIzRCOTQ1MDtcblx0YSB7XG5cdFx0Y29sb3I6ICM0Qjk0NTA7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteGxhcmdlIHtcblx0LnVzeWQtdWktcmVzdWx0LXJvdyB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG59XG4iLCJAaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaGFkb3dcIjtcblxuLnVzeWQtdWktbWFzayB7XG5cdEBpbmNsdWRlIGxheWVyLW92ZXJsYXk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG59XG5cbi51c3lkLXVpLXVubWFza2VkIHtcblx0QGluY2x1ZGUgbGF5ZXItb3ZlcmxheTtcbn1cblxuLnVzeWQtdWktbWFzay13aW5kb3cge1xuXHRAZXh0ZW5kIC51c3lkLXVpLXVubWFza2VkO1xuXHRAaW5jbHVkZSBib3gtc2hhZG93KDAgMCAxMDBweCAjMDAwKTtcblx0YmFja2dyb3VuZDogd2hpdGU7XG59XG5cbi51c3lkLXVpLW1hc2std2luZG93LXRpdGxlIHtcblx0bWFyZ2luOiAwIDAgMWVtIDA7XG59XG4iLCJAaW1wb3J0IFwiLi4vY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvaW1hZ2VzXCI7XG5cbi51c3lkLW1lbnUge1xuXHRhIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwYWRkaW5nOiA1cHg7XG5cblx0XHQmOmxpbmsge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRcdH1cblxuICAgICAgICAmLnBhZ2UtaGVhZGluZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMHB4IDVweCAwcHg7XG4gICAgICAgIH1cblxuXHRcdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJnLWxpZ2h0ZXN0LWNvbG9yO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXG5cdFx0Jjp2aXNpdGVkIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblx0XHR9XG5cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItbGlnaHQ7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0fVxuXHR9XG5cbiAgICBkaXYge1xuICAgICAgICAmLnVzeWQtYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1saWdodGVzdC1jb2xvcjtcblxuICAgICAgICB9XG4gICAgfVxuXG5cdGxpIHtcblx0XHRib3JkZXItY29sb3I6ICRsaWdodC1ncmV5O1xuXHRcdGJvcmRlci13aWR0aDogMXB4IDAgMCAwO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQmLnVzeWQtYWN0aXZlIHtcblx0XHRcdD4gYSB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmctbGlnaHRlc3QtY29sb3I7XG5cblx0XHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRcdFx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItbGlnaHQ7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWxhcmdlLXVwIHtcblx0LnVzeWQtbmF2LW1lbnUge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cblx0XHRsaSB7XG5cdFx0XHQ+IGEge1xuXHRcdFx0XHRwYWRkaW5nOiA1cHggMjVweCA1cHggMjBweDtcblx0XHRcdFx0YmFja2dyb3VuZDogdXJsKCN7JGltYWdlLXBhdGh9L2Fycm93LXJlZC5wbmcpIG5vLXJlcGVhdCA1cHggOHB4O1xuXG5cdFx0XHRcdEBpbmNsdWRlIGhpLWRwaSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlLXBhdGh9L2Fycm93LXJlZEAyeC5wbmcpO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogOHB4IDhweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQ+IC51c3lkLWFjdGl2YXRvciB7XG5cdFx0XHRcdEBpbmNsdWRlIGJ1dHRvbigkYnJhbmQtcHJpbWFyeSk7XG5cdFx0XHRcdHdpZHRoOiAxNnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogLTIwcHggNXB4IDAgMDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0dG9wOiAyNHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiAxNXB4O1xuXHRcdFx0XHRjb2xvcjogd2hpdGU7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQudXN5ZC1uYXYtc3VibWVudSB7XG5cdFx0XHR1bCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMjBweDtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNpdGlvbihtYXgtaGVpZ2h0IDAuNXMpO1xuXG5cdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB1cmwoI3skaW1hZ2UtcGF0aH0vYXJyb3ctc21hbGwtcmVkLnBuZykgbm8tcmVwZWF0IDVweCA4cHg7XG5cblx0XHRcdFx0XHRcdEBpbmNsdWRlIGhpLWRwaSB7XG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9hcnJvdy1zbWFsbC1yZWRAMngucG5nKTtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiA4cHggOHB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdD4gbGkge1xuXHRcdFx0XHRcdFx0PiBhIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKCN7JGltYWdlLXBhdGh9L2Fycm93LXNtYWxsZXN0LXJlZC5wbmcpIG5vLXJlcGVhdCA1cHggOHB4O1xuXHRcdFx0XHRcdFx0XHRAaW5jbHVkZSBoaS1kcGkge1xuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9hcnJvdy1zbWFsbGVzdC1yZWRAMngucG5nKTtcblx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDhweCA4cHg7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji51c3lkLXNob3cge1xuXHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ji51c3lkLWhpZGUge1xuXHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcblxuLy8gU3RhbmRhcmQgcGFnaW5hdGlvbiBzdHlsZXMgZm9yIG51bWJlcmVkIHBhZ2VzIGluIGEgbGluZVxuLy8gQWxzbyBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUgalF1ZXJ5IGRhdGF0YWJsZXMgcGx1Z2luIGNsYXNzZXNcblxuLnVzeWQtdWktcGFnZXIsIC5kYXRhVGFibGVzX3BhZ2luYXRlIHtcblx0Zm9udC1zaXplOiAxLjNlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdGxpIHtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxufVxuXG4udXN5ZC11aS1wYWdlLWxpbmssIC51c3lkLXVpLXBhZ2UtbGluazp2aXNpdGVkLCAucGFnaW5hdGVfYnV0dG9uIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdHBhZGRpbmc6IDAuMjVlbTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tYm90dG9tOiAwLjI1ZW07XG5cdG1hcmdpbi10b3A6IDAuMjVlbTtcblx0bWFyZ2luLXJpZ2h0OiAwLjFlbTtcblx0bWluLXdpZHRoOiAxLjI1ZW07XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Y29sb3I6ICRsaW5rLWNvbG91cjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCYudXN5ZC11aS1hY3RpdmUsICYuY3VycmVudCB7XG5cdFx0JiwgJjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGNvbG9yOiB0aW50KCMwMDAsIDUwJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRpbnQoIzAwMCwgNzUlKTtcblx0XHRcdGJhY2tncm91bmQ6IHRpbnQoIzAwMCwgOTAlKTtcblx0XHR9XG5cdH1cblxuXHQmOmhvdmVyLCAmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IGxpZ2h0ZW4oJGxpbmstY29sb3VyLCAxMCUpO1xuXHRcdGJhY2tncm91bmQ6IHRpbnQoJGxpbmstY29sb3VyLCA4MCUpO1xuXHR9XG59XG4iLCJAaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiY29tcGFzc1wiO1xuXG4udXN5ZC1uZXdzLWZlYXR1cmUtcm93IHtcblx0bWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuQGluY2x1ZGUgbWVkaWEtc21hbGwge1xuXHQudXN5ZC1tZWRpdW0tc3BhbjMge1xuXHRcdG1hcmdpbi10b3A6IDJlbTtcblxuXHRcdCY6Zmlyc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDJlbTtcblx0XHR9XG5cdH1cbn1cblxuLy8gRmFraW5nIG91dCB0aGUgeWFtbWVyIGljb24gc2luY2Ugbm9uZSBleGlzdHMgY3VycmVudGx5XG4vLyBSRVBMQUNFRCBXSVRIIEFDVFVBTCBGT05URUxMTyBZQU1NRVIgTE9HT1xuLy8uaWNvbi15YW1tZXIge1xuLy9cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgjeyRpbWFnZS1wYXRofS9pY29uLXlhbW1lci5wbmcpIG5vLXJlcGVhdCA1MCUgMDtcbi8vXHRoZWlnaHQ6IDMycHg7XG4vL31cbi8vXG4vL0BpbmNsdWRlIGhpLWRwaSB7XG4vL1x0Lmljb24teWFtbWVyIHtcbi8vXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9pY29uLXlhbW1lckAyeC5wbmcpO1xuLy9cdFx0YmFja2dyb3VuZC1zaXplOiAyMHB4IDE3cHg7XG4vL1x0fVxuLy99XG4iLCJAaW1wb3J0IFwiLi4vY29sb3JzXCI7XG5cbi51c3lkLW5vdGljZSB7XG5cdHBhZGRpbmc6IDFlbTtcblx0Ym9yZGVyLWxlZnQ6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuQG1peGluIG5vdGljZS10ZW1wbGF0ZSgkbmFtZSwgJGJnLCAkZmcpIHtcblx0LnVzeWQtbm90aWNlLSN7JG5hbWV9IHtcblx0XHRAZXh0ZW5kIC51c3lkLW5vdGljZTtcblx0XHRib3JkZXItY29sb3I6ICRmZztcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG5cdFx0Y29sb3I6ICRmZztcblxuXHRcdGEge1xuXHRcdFx0Y29sb3I6ICRmZztcblx0XHR9XG5cblx0XHQudXN5ZC1jbG9zZS1ub3RpY2Uge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0fVxufVxuXG5AaW5jbHVkZSBub3RpY2UtdGVtcGxhdGUoXCJlcnJvclwiLCAkZXJyb3ItYmctY29sb3VyLCAkZXJyb3ItZmctY29sb3VyKTtcbkBpbmNsdWRlIG5vdGljZS10ZW1wbGF0ZShcIndhcm5pbmdcIiwgJHdhcm5pbmctYmctY29sb3VyLCAkd2FybmluZy1mZy1jb2xvdXIpO1xuQGluY2x1ZGUgbm90aWNlLXRlbXBsYXRlKFwiaW5mb1wiLCAkaW5mby1iZy1jb2xvdXIsICRpbmZvLWZnLWNvbG91cik7XG5AaW5jbHVkZSBub3RpY2UtdGVtcGxhdGUoXCJzdWNjZXNzXCIsICRzdWNjZXNzLWJnLWNvbG91ciwgJHN1Y2Nlc3MtZmctY29sb3VyKTtcbiIsIi8vIFxuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGNvbG9ycyBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9jb3JlL2xpYi9jb21wYXNzL2NvcmUvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9jb2xvcnMucmJcbi8vXG5cbi8vIGEgZ2VuZXJpY2l6ZWQgdmVyc2lvbiBvZiBsaWdodGVuL2RhcmtlbiBzbyB0aGF0IG5lZ2F0aXZlIHZhbHVlcyBjYW4gYmUgdXNlZC5cbkBmdW5jdGlvbiBhZGp1c3QtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gYWRqdXN0LWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGFtb3VudCk7XG59XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3MgbGlnaHRuZXNzIGJ5IHNvbWUgcGVyY2VudGFnZS5cbi8vIElmIHRoZSBhbW91bnQgaXMgbmVnYXRpdmUsIHRoZSBjb2xvciBpcyBzY2FsZWQgZGFya2VyLCBpZiBwb3NpdGl2ZSwgaXQgaXMgc2NhbGVkIGxpZ2h0ZXIuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBsaWdodCBvciBkYXJrIGNvbG9yIHVubGVzcyB0aGUgYW1vdW50IGlzIDEwMCUuXG5AZnVuY3Rpb24gc2NhbGUtbGlnaHRuZXNzKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkYW1vdW50KTtcbn1cblxuLy8gYSBnZW5lcmljaXplZCB2ZXJzaW9uIG9mIHNhdHVyYXRlL2Rlc2F0dXJhdGUgc28gdGhhdCBuZWdhdGl2ZSB2YWx1ZXMgY2FuIGJlIHVzZWQuXG5AZnVuY3Rpb24gYWRqdXN0LXNhdHVyYXRpb24oJGNvbG9yLCAkYW1vdW50KSB7XG4gICAgQHJldHVybiBhZGp1c3QtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7XG59XG5cbi8vIFNjYWxlcyBhIGNvbG9yJ3Mgc2F0dXJhdGlvbiBieSBzb21lIHBlcmNlbnRhZ2UuXG4vLyBJZiB0aGUgYW1vdW50IGlzIG5lZ2F0aXZlLCB0aGUgY29sb3IgaXMgZGVzYXR1cmF0ZWQsIGlmIHBvc2l0aXZlLCBpdCBpcyBzYXR1cmF0ZWQuXG4vLyBUaGlzIHdpbGwgbmV2ZXIgcmV0dXJuIGEgcHVyZSBzYXR1cmF0ZWQgb3IgZGVzYXR1cmF0ZWQgY29sb3IgdW5sZXNzIHRoZSBhbW91bnQgaXMgMTAwJS5cbkBmdW5jdGlvbiBzY2FsZS1zYXR1cmF0aW9uKCRjb2xvciwgJGFtb3VudCkge1xuICAgIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7XG59XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50YWdlKSB7XG4gICAgQHJldHVybiBtaXgoIzAwMDAwMCwgJGNvbG9yLCAkcGVyY2VudGFnZSk7XG59XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnRhZ2UpIHtcbiAgICBAcmV0dXJuIG1peCgjZmZmZmZmLCAkY29sb3IsICRwZXJjZW50YWdlKTtcbn1cblxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7XG5cbi51c3lkLW5vdGlmaWVyLWZpeGVkIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR3aWR0aDogMTAwJTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHRAaW5jbHVkZSBsYXllci1vdmVybGF5O1xuXHR6LWluZGV4OiA1MDAwO1xufVxuXG4udXN5ZC1ub3RpZmllci1ub3RpY2Uge1xuXHRwYWRkaW5nOiAwLjgzM2VtIDRlbSAwLjgzM2VtIDAuODMzZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Zm9udC1zaXplOiAxLjJlbTtcblx0QGluY2x1ZGUgYm94LXNoYWRvdygwIDAgM3B4IHJnYmEoIzAwMCwgMC40KSk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQmLnVzeWQtbm90aWZpZXItaW5mbyB7XG5cdFx0YmFja2dyb3VuZDogJHdhcm5pbmctYmctY29sb3VyO1xuXHRcdGJvcmRlci1jb2xvcjogJHdhcm5pbmctZmctY29sb3VyO1xuXHRcdGNvbG9yOiAkd2FybmluZy1mZy1jb2xvdXI7XG5cblx0XHQudXN5ZC1ub3RpZmllci1kaXNtaXNzIHtcblx0XHRcdGNvbG9yOiAkd2FybmluZy1mZy1jb2xvdXI7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGNvbG9yOiBibGFjaztcblx0XHR9XG5cdH1cblxuXHQudXN5ZC1hY3Rpb24ge1xuXHRcdG1hcmdpbjogMCAwIDAgMWVtO1xuXHRcdCsgLnVzeWQtYWN0aW9uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxZW07XG5cdFx0fVxuXHR9XG5cblx0Ji51c3lkLW5vdGlmaWVyLWVycm9yIHtcblx0XHRiYWNrZ3JvdW5kOiAkZXJyb3ItYmctY29sb3VyO1xuXHRcdGJvcmRlci1jb2xvcjogJGVycm9yLWZnLWNvbG91cjtcblx0XHRjb2xvcjogJGVycm9yLWZnLWNvbG91cjtcblxuXHRcdC51c3lkLW5vdGlmaWVyLWRpc21pc3Mge1xuXHRcdFx0Y29sb3I6ICRlcnJvci1mZy1jb2xvdXI7XG5cdFx0fVxuXG5cdFx0YSB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGNvbG9yOiBibGFjaztcblx0XHR9XG5cdH1cblxuXHRidXR0b24ge1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cbn1cblxuLnVzeWQtbm90aWZpZXItZGlzbWlzcyB7XG5cdCRyYWRpdXM6IDEuNWVtO1xuXHRib3JkZXItcmFkaXVzOiA5OWVtO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGhlaWdodDogJHJhZGl1cztcblx0d2lkdGg6ICRyYWRpdXM7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRyaWdodDogMWVtO1xuXHR0b3A6IDAuNTVlbTtcblx0bGluZS1oZWlnaHQ6ICRyYWRpdXM7XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5mYW5jeWJveC13cmFwIC5kb3dubG9hZC1saW5rIHtcblx0Zm9udC1zaXplOiAxLjJlbTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRtYXJnaW46IDFlbSAwIDA7XG5cdC8vIGJhY2tncm91bmQ6IHVybCgjeyRpbWFnZS1wYXRofS9pY29ucy9ncmV5L2Rvd25sb2FkLmdpZikgbm8tcmVwZWF0IDAgNTAlO1xuXHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG4iLCJAaW1wb3J0IFwiY29tcGFzc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9vcGFjaXR5XCI7XG5cbiRiYXNlLWZvbnQtc2l6ZTogMTBweCAhZ2xvYmFsO1xuXG4udXN5ZC1wZXJkaWVtLWNvbmZpZyB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0aW50KGJsYWNrLCA5MCUpO1xuXHRwYWRkaW5nLWJvdHRvbTogMS41ZW07XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi51c3lkLXBlcmRpZW0tY29uZmlnLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdG1hcmdpbjogMCAxMHB4IDVweCAwO1xufVxuXG4udXN5ZC1wZXJkaWVtLWRheXMtYXdheSB7XG5cdGZsb2F0OiBsZWZ0O1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0aW5wdXQge1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG5cbiN1c3lkLXBlcmRpZW0tcmVzZXQge1xuXHRmbG9hdDogbGVmdDtcblx0bWFyZ2luLXRvcDogMWVtO1xufVxuXG4udXN5ZC1wZXJkaWVtLWNvdW50cnkge1xuXHRmbG9hdDogbGVmdDtcblx0bWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4udXN5ZC1wZXJkaWVtLWRheSB7XG5cdGNsZWFyOiBib3RoO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHdoaXRlO1xuXHRwYWRkaW5nOiAxZW0gMDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRpbnQoYmxhY2ssIDkwJSk7XG59XG5cbi51c3lkLXBlcmRpZW0td29ya2luZy1kYXkge1xuXHRmbG9hdDogbGVmdDtcblx0d2lkdGg6ICgxLzYpICogMTAwJTtcblx0KndpZHRoOiAoMS82KSAqIDk5JTtcbn1cblxuLnVzeWQtcGVyZGllbS1wcm92aXNpb25zIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHdpZHRoOiAoNC82KSAqIDEwMCU7XG5cdCp3aWR0aDogKDQvNikgKiA5OSU7XG59XG5cbi51c3lkLXBlcmRpZW0tZGF5LW5vbndvcmtpbmcgLnVzeWQtcGVyZGllbS1wcm92aXNpb25zIHtcblx0QGluY2x1ZGUgb3BhY2l0eSguNSk7XG59XG5cbi51c3lkLXBlcmRpZW0tZGF5LXByb3Zpc2lvbi1sYWJlbCB7XG5cdGZsb2F0OiBsZWZ0O1xuXHR3aWR0aDogKDEvNCkgKiAxMDAlO1xuXHQqd2lkdGg6ICgxLzQpICogOTklO1xuXHRtaW4td2lkdGg6IDkwcHg7XG59XG5cbi51c3lkLXBlcmRpZW0tcHJvdmlzaW9uLXJhdGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnVzeWQtcGVyZGllbS1kYXktdG90YWwge1xuXHRAaW5jbHVkZSByZW0tc2l6ZSgxLjIpO1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0ZmxvYXQ6IGxlZnQ7XG5cdHdpZHRoOiAoMS82KSAqIDEwMCU7XG5cdCp3aWR0aDogKDEvNikgKiA5OSU7XG59XG5cbi51c3lkLXBlcmRpZW0tdG90YWwge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0QGluY2x1ZGUgcmVtLXNpemUoMS40KTtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XG5cdHBhZGRpbmctdG9wOiAxZW07XG59XG5cbi51c3lkLXBlcmRpZW0tdW5jb25maWd1cmVkIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG5cblx0bWFyZ2luOiAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgd2hpdGU7XG5cdHBhZGRpbmc6IDFlbSAwO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdGludChibGFjaywgOTAlKTtcbn1cbiIsIi8vIExBQkVMUyAmIEJBREdFU1xuLy8gLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJhc2UgY2xhc3Nlc1xuLmxhYmVsLCAuYmFkZ2Uge1xuICBmb250LXNpemU6ICRiYXNlRm9udFNpemUgKiAuODQ2O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7IC8vIGVuc3VyZSBwcm9wZXIgbGluZS1oZWlnaHQgaWYgZmxvYXRlZFxuICBjb2xvcjogJHdoaXRlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5TGlnaHQ7XG59XG4vLyBTZXQgdW5pcXVlIHBhZGRpbmcgYW5kIGJvcmRlci1yYWRpaVxuLmxhYmVsIHtcbiAgcGFkZGluZzogMXB4IDRweCAycHg7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoM3B4KTtcbn1cbi5iYWRnZSB7XG4gIHBhZGRpbmc6IDFweCA5cHggMnB4O1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDlweCk7XG59XG5cbi8vIEhvdmVyIHN0YXRlLCBidXQgb25seSBmb3IgbGlua3NcbmEge1xuICAmLmxhYmVsOmhvdmVyLCAmLmJhZGdlOmhvdmVyIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gQ29sb3JzXG4vLyBPbmx5IGdpdmUgYmFja2dyb3VuZC1jb2xvciBkaWZmZXJlbmNlIHRvIGxpbmtzIChhbmQgdG8gc2ltcGxpZnksIHdlIGRvbid0IHF1YWxpZnR5IHdpdGggYGFgIGJ1dCBbaHJlZl0gYXR0cmlidXRlKVxuLy8gSW1wb3J0YW50IChyZWQpXG4ubGFiZWwtaW1wb3J0YW50LCAuYmFkZ2UtaW1wb3J0YW50ICAgICAgICAgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkZXJyb3JUZXh0OyB9XG4ubGFiZWwtaW1wb3J0YW50W2hyZWZdLCAuYmFkZ2UtaW1wb3J0YW50W2hyZWZdICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGVycm9yVGV4dCwgMTAlKTsgfVxuLy8gV2FybmluZ3MgKG9yYW5nZSlcbi5sYWJlbC13YXJuaW5nLCAuYmFkZ2Utd2FybmluZyAgICAgICAgICAgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlOyB9XG4ubGFiZWwtd2FybmluZ1tocmVmXSwgLmJhZGdlLXdhcm5pbmdbaHJlZl0gICAgIHsgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRvcmFuZ2UsIDEwJSk7IH1cbi8vIFN1Y2Nlc3MgKGdyZWVuKVxuLmxhYmVsLXN1Y2Nlc3MsIC5iYWRnZS1zdWNjZXNzICAgICAgICAgICAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICRzdWNjZXNzVGV4dDsgfVxuLmxhYmVsLXN1Y2Nlc3NbaHJlZl0sIC5iYWRnZS1zdWNjZXNzW2hyZWZdICAgICB7IGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkc3VjY2Vzc1RleHQsIDEwJSk7IH1cbi8vIEluZm8gKHR1cnF1b2lzZSlcbi5sYWJlbC1pbmZvLCAuYmFkZ2UtaW5mbyAgICAgICAgICAgICAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5mb1RleHQ7IH1cbi5sYWJlbC1pbmZvW2hyZWZdLCAuYmFkZ2UtaW5mb1tocmVmXSAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGluZm9UZXh0LCAxMCUpOyB9XG4vLyBJbnZlcnNlIChibGFjaylcbi5sYWJlbC1pbnZlcnNlLCAuYmFkZ2UtaW52ZXJzZSAgICAgICAgICAgICAgICB7IGJhY2tncm91bmQtY29sb3I6ICRncmF5RGFyazsgfVxuLmxhYmVsLWludmVyc2VbaHJlZl0sIC5iYWRnZS1pbnZlcnNlW2hyZWZdICAgIHsgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRncmF5RGFyaywgMTAlKTsgfSIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL21peGluc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9sYWJlbHMtYmFkZ2VzXCI7XG5cbi5sYWJlbC13YXJuaW5nLCAuYmFkZ2Utd2FybmluZyB7IGJhY2tncm91bmQtY29sb3I6ICR3YXJuaW5nVGV4dDsgfVxuLmxhYmVsLXdhcm5pbmdbaHJlZl0sIC5iYWRnZS13YXJuaW5nW2hyZWZdIHsgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR3YXJuaW5nVGV4dCwgMTAlKTsgfVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvaW1hZ2VzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaGFkb3dcIjtcblxuLnBkcy1xdWVzdGlvbi10b3Age1xuXHQvLyBAZXh0ZW5kICV1c3lkLWg1O1xuXHRtYXJnaW46IDFlbSAwIDAuNWVtIDA7XG59XG5cbi5wZHMtYm94IHtcblx0YnIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLnBkcy12b3RlLWJ1dHRvbiwgLnBkcy12b3RlLWJ1dHRvbi1sb2FkIHtcblx0QGluY2x1ZGUgYnV0dG9uKCRicmFuZC1wcmltYXJ5KTtcblx0dGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdG1hcmdpbi1yaWdodDogMWVtO1xufVxuXG4ucGRzLWFuc3dlci1ncm91cCB7XG5cdG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuXG4ucGRzLWFuc3dlci1pbnB1dCB7XG5cdGZsb2F0OiBsZWZ0O1xufVxuXG4ucGRzLWlucHV0LWxhYmVsIHtcblx0bWFyZ2luLWxlZnQ6IDIuNWVtO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZy10b3A6IDNweDtcbn1cblxuLy8gLnBkcy12aWV3LXJlc3VsdHMge1xuLy8gXHRAZXh0ZW5kIC51c3lkLXVpLWJ1dHRvbjtcbi8vIFx0QGV4dGVuZCAudXN5ZC11aS1idXR0b24tc2Vjb25kYXJ5O1xuLy8gfVxuXG4ucGRzLXZpZXctcmVzdWx0cywgLnBkcy1yZXR1cm4tcG9sbCB7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBkcy1hbnN3ZXItZ3JvdXAsIC5wZHMtZmVlZGJhY2stZ3JvdXAge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bWFyZ2luOiAxZW0gMDtcbn1cblxuLnBkcy1hbnN3ZXItdGV4dCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucGRzLXZvdGUge1xuXHRtYXJnaW4tdG9wOiAxZW07XG59XG5cbi5wZHMtYW5zd2VyLWZlZWRiYWNrIHtcblx0Ym9yZGVyOiAxcHggc29saWQgdGludChibGFjaywgODAlKTtcblx0cGFkZGluZzogMXB4O1xuXHRtYXJnaW4tdG9wOiAwLjVlbTtcbn1cblxuLnBkcy1hbnN3ZXItZmVlZGJhY2stYmFyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGhlaWdodDogMS41ZW07XG5cdGJhY2tncm91bmQtY29sb3I6IHRpbnQoYmxhY2ssIDg1JSk7XG59XG5cbi51c3lkLXdhc20tdXNlci11bmF1dGhlZCAudXN5ZC1wb2xsIC5wZHMtaW5wdXQtbGFiZWwge1xuXHRjb2xvcjogbGlnaHRlbihibGFjaywgNDUlKTtcbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2ltYWdlc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7XG5cbi51aS1ydHAtYWN0aXZhdG9yIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC51aS1ydHAtbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogOHB0O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlZmVmZWY7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAudWktcnRwLWxhYmVsLXBsdXMtbWludXMge1xuICAgICAgICAgICAgY29sb3I6ICNDRTExMjY7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWktcnRwLWFjdGl2YXRvci5sby1yZXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAzMHB4O1xuICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcbn1cbi51aS1ydHAtYWN0aXZhdG9yLmxvLXJlczpob3ZlciB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG4udWktcnRwLWFjdGl2YXRvci5sby1yZXMgLnVpLXJ0cC1sYWJlbDpob3ZlciB7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cbi51aS1ydHAtYWN0aXZhdG9yLmhpLXJlcyB7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDFweCAwO1xuICAgIG1hcmdpbjogMzBweCAwIDAgLTFweDtcbiAgICB3aWR0aDogNDBweDtcbn1cbi51aS1ydHAtYWN0aXZhdG9yLmhpLXJlczpob3ZlciB7XG4gICAgd2lkdGg6IDQ1cHg7XG59XG4udWktcnRwLWFjdGl2YXRvci5oaS1yZXMgLnVpLXJ0cC1sYWJlbCB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVpLXJ0cC1hY3RpdmF0b3IuaGktcmVzIC51aS1ydHAtbGFiZWw6aG92ZXIge1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbn1cbi51aS1ydHAtYWN0aXZhdG9yLmhpLXJlcyAudWktcnRwLWxhYmVsLXBsdXMtbWludXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzMHB4O1xufVxuLnVpLXJ0cC1zZWN0aW9uIHtcblx0d2lkdGg6IDQxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMC41ZW07XG59XG4udWktcnRwLXNlY3Rpb246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4udWktcnRwLXNlY3Rpb24gcCB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBsaW5lLWhlaWdodDogMTQ1JTtcbn1cbi51aS1ydHAtc2VjdGlvbiBoMSB7XG4gICAgZm9udC1zaXplOiAxNXB0O1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjQ0UxMTI2O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5ydHAtZm9ybSAucXVlc3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMjBweCAwIDVweCAwO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnJ0cC1mb3JtIGxlZ2VuZC5xdWVzdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcblx0Km1hcmdpbi1sZWZ0OiAtN3B4O1xufVxuLnJ0cC1mb3JtIGZpZWxkc2V0IHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLnJ0cC1mb3JtIC5zY2FsZS1zZWxlY3RvciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5ydHAtZm9ybSAuc2NhbGUtc2VsZWN0b3IgbGFiZWwge1xuICAgIHdpZHRoOiAxNC4yJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5ydHAtZm9ybSAuYm9vbGVhbi1zZWxlY3RvciBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAzMCU7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbn1cbi5ydHAtZm9ybSAuc2NhbGUtc2VsZWN0b3IgbGFiZWwgaW5wdXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucnRwLWZvcm0gLnNjYWxlLXNlbGVjdG9yIC5zY2FsZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LXNpemU6IDhwdDtcbiAgICBjb2xvcjogIzc3NztcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG59XG4ucnRwLWZvcm0gLnNjYWxlLXNlbGVjdG9yIGxhYmVsOmhvdmVyIHNwYW4uc2NhbGUge1xuICAgIGNvbG9yOiAjNzc3O1xufVxuXG4ucnRwLXN1Ym1pdCB7XG5cdEBpbmNsdWRlIGJ1dHRvbigkYnJhbmQtc2Vjb25kYXJ5KTtcblx0bWFyZ2luLXRvcDogMWVtO1xuXHRmb250LXNpemU6IDFlbTtcbn1cblxuLnJ0cC1mb3JtICNmZWVkYmFjay1zdGF0dXMge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLypcblNuaXBwZXQ6IGEgc2hvcnQgXCJzdG9yeVwiLCB3aXRoIGFuIGljb24vdGh1bWJuYWlsLCBoZWFkbGluZSBhbmQgc3VtbWFyeSB0ZXh0XG4qL1xuXG4udXN5ZC1zbmlwcGV0IHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0bWFyZ2luLXRvcDogMDtcblx0cGFkZGluZy10b3A6IDEwcHg7XG59XG5cbi51c3lkLXNuaXBwZXQtdGl0bGUge1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cblxuLnVzeWQtc25pcHBldC1pY29uIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcblx0Zm9udC1zaXplOiAyNHB4O1xufVxuXG4udXN5ZC1zbmlwcGV0LWJvZHkge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdHAge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG4udXN5ZC1zbmlwcGV0LXRpdGxlIHtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0bWFyZ2luLWJvdHRvbTogMC4yZW07XG59XG4udXN5ZC1zbmlwcGV0LWRhdGUge1xuXHRmbG9hdDogbGVmdDtcblx0bWFyZ2luOiAwcHggMTVweCAwIDA7XG4gICAgd2lkdGg6IDE2MHB4O1xufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbCB7XG5cdC51c3lkLXNuaXBwZXQudXN5ZC14c21hbGwgLnVzeWQtc25pcHBldC1pY29uIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNoYWRvd1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW4tdG9vbHRpcHNcIjtcblxuJGRlZmF1bHQtbGF5ZXItb2Zmc2V0OiAxMDAwO1xuJGJhc2UtZm9udC1zaXplOiAxMHB4O1xuXG4udXN5ZC11aS1tYXNrIHtcbiAgICAkYmFzZS1sYXllci1vZmZzZXQ6ICRkZWZhdWx0LWxheWVyLW9mZnNldCAhZ2xvYmFsO1xuICAgIEBpbmNsdWRlIGxheWVyLW92ZXJsYXk7XG59XG5cblxuLnVpLWFuY2hvci1zLSB7XG4gICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZyb20tZXZlcnlvbmU7XG4gICAgfVxufVxuXG4udXN5ZC1zdXJ2ZXktY29udGVudCB7XG5cdCRiYXNlLWxheWVyLW9mZnNldDogJGRlZmF1bHQtbGF5ZXItb2Zmc2V0ICsgMTAwMCAhZ2xvYmFsO1xuICAgICRhcnJvdy1zaXplOiAxMnB4ICFnbG9iYWw7XG4gICAgJGJhY2tncm91bmQtY29sb3VyOiAkYmctY29sb3VyLWxpZ2h0ICFnbG9iYWw7XG4gICAgJGZvbnQtY29sb3VyOiAkZm9udC1jb2xvdXItZGFyayAhZ2xvYmFsO1xuICAgICRiYXNlLWZvbnQtc2l6ZTogMTBweCAhZ2xvYmFsO1xuXG5cdEBpbmNsdWRlIHRvb2x0aXA7XG59XG4iLCJAaW1wb3J0ICdjb2xvcnMnO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4kYmFzZS1sYXllci1vZmZzZXQ6IDEwICFkZWZhdWx0ICFnbG9iYWw7XG4kYXJyb3ctc2l6ZTogMTBweCAhZGVmYXVsdCAhZ2xvYmFsO1xuJGJhY2tncm91bmQtY29sb3VyOiAjMzMzICFkZWZhdWx0ICFnbG9iYWw7XG4kZm9udC1jb2xvdXI6ICNmZmYgIWRlZmF1bHQgIWdsb2JhbDtcbiRiYWNrZ3JvdW5kLWNvbG91ci1jb21wYXQ6ICRiYWNrZ3JvdW5kLWNvbG91ciAhZGVmYXVsdCAhZ2xvYmFsO1xuXG5AbWl4aW4gdG9vbHRpcCB7XG5cbiAgICAmLnVpLXRpcC1jb250YWluZXIgeyBcbiAgICAgICAgd2lkdGg6IDE1ZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07IFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IFxuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIEBpbmNsdWRlIGxheWVyLXBvcHVwO1xuXG4gICAgICAgICYudWktYW5jaG9yLW4sICYudWktYW5jaG9yLW5lLCAmLnVpLWFuY2hvci1udyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGFycm93LXNpemU7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkOyBcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lOyAgXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnVpLWFuY2hvci1uIHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnVpLWFuY2hvci1udyB7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgbGVmdDogJGFycm93LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi51aS1hbmNob3ItbmUge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLXMsICYudWktYW5jaG9yLXNlLCAmLnVpLWFuY2hvci1zdyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJGFycm93LXNpemU7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkOyBcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lOyAgXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnVpLWFuY2hvci1zIHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnVpLWFuY2hvci1zdyB7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgbGVmdDogJGFycm93LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi51aS1hbmNob3Itc2Uge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLWUsICYudWktYW5jaG9yLWVzLCAmLnVpLWFuY2hvci1lbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogJGFycm93LXNpemU7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgbGVmdDogLSgkYXJyb3ctc2l6ZSAtIDEpO1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBzb2xpZDsgXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7IFxuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnVpLWFuY2hvci1lIHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtJGFycm93LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnVpLWFuY2hvci1lbiB7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgdG9wOiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLWVzIHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBib3R0b206ICRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICAmLnVpLWFuY2hvci13LCAmLnVpLWFuY2hvci13cywgJi51aS1hbmNob3Itd24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICByaWdodDogLSgkYXJyb3ctc2l6ZSAtIDEpO1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7IFxuICAgICAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDsgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnVpLWFuY2hvci13IHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtJGFycm93LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnVpLWFuY2hvci13biB7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgdG9wOiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLXdzIHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBib3R0b206ICRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnVpLXRpcC1ib2R5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3VyLWNvbXBhdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3VyO1xuICAgICAgICAqYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3VyLWNvbXBhdDtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91cjsgXG4gICAgICAgIG1heC13aWR0aDogMjEwcHg7IFxuICAgICAgICAqbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAqd2lkdGg6IDIxMHB4O1xuICAgICAgICBwYWRkaW5nOiA3cHggOXB4O1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGUtYm94LXNoYWRvdygwLCAwLCA0cHgsIDVweCwgcmdiYSgjMDAwLCAwLjQpKTtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxcHgpO1xuICAgIH1cblxuICAgIC51aS10aXAtYW5jaG9yIHsgXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG4gICAgICAgIHdpZHRoOiAwOyBcbiAgICAgICAgaGVpZ2h0OiAwOyBcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7IFxuICAgICAgICBib3JkZXI6ICRhcnJvdy1zaXplIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG91ci1jb21wYXQ7XG4gICAgICAgIGJvcmRlcjogJGFycm93LXNpemUgc29saWQgJGJhY2tncm91bmQtY29sb3VyO1xuICAgICAgICAqYm9yZGVyOiAkYXJyb3ctc2l6ZSBzb2xpZCAkYmFja2dyb3VuZC1jb2xvdXItY29tcGF0O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLypcbkRhdGEgdGFibGVcblxuU3R5bGVndWlkZSAxLjNcbiovXG50YWJsZSB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JleTtcblx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0bWFyZ2luOiAxMHB4IDA7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdHRoLCB0ZCB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdHBhZGRpbmc6IDVweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyZXk7XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHQrIHAge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAwLjhlbTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLnVzeWQtdWktZW1waGFzaXMtbWlsZCB7XG5cdFx0XHRjb2xvcjogJG1lZGl1bS1ncmV5O1xuXHRcdH1cblx0fVxuXG5cdHRoIHtcblx0XHRiYWNrZ3JvdW5kOiAkYnJhbmQtY29sb3VyLW1lZGl1bS1ncmV5O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JleTtcblx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7XG5cdH1cblxuXHR0Zm9vdCB7XG5cdFx0YmFja2dyb3VuZDogbGlnaHRlbihibGFjaywgOTclKTtcblx0fVxuXG5cdC51c3lkLWFsaWduLWNlbnRlciB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cblx0Ji51c3lkLXVpLWVtcGhhc2lzLW1pbGQge1xuXG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0dGgge1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdGZvbnQtc2l6ZTogMS4zZW07XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRcdGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibGFjaztcblx0XHR9XG5cblx0XHR0ZCB7XG5cdFx0XHRib3JkZXItd2lkdGg6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0LWdyZXk7XG5cdFx0fVxuXG5cdFx0dGQsIHRoIHtcblx0XHRcdHBhZGRpbmc6IDAuNmVtIDAuNWVtIDAuNGVtO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNjY2ZW07XG5cdFx0fVxuXHR9XG59XG5cbi8vIFJpcHBlZCBzdHJhaWdodCBvdXQgb2YgQm9vdHN0cmFwIDMgX3RhYmxlcy5zY3NzIGFuZCBtb2RpZmllZCBmb3IgdGhlIEludHJhbmV0XG4udGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgQG1lZGlhIHNjcmVlbiB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDAuMDElOyAvLyBXb3JrYXJvdW5kIGZvciBJRTkgYnVnIChzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xNDgzNylcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS14c21hbGwge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICAgICAgLW1zLW92ZXJmbG93LXN0eWxlOiAtbXMtYXV0b2hpZGluZy1zY3JvbGxiYXI7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JleTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDA7XG5cbiAgICAgICAgICAgIC8vIFRpZ2h0ZW4gdXAgc3BhY2luZ1xuICAgICAgICAgICAgPiB0YWJsZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcblxuICAgICAgICAgICAgICAgIC8vIE51a2UgdGhlIGFwcHJvcHJpYXRlIGJvcmRlcnMgc28gdGhhdCB0aGUgcGFyZW50IGNhbiBoYW5kbGUgdGhlbVxuICAgICAgICAgICAgICAgID4gdGhlYWQsXG4gICAgICAgICAgICAgICAgPiB0Ym9keSxcbiAgICAgICAgICAgICAgICA+IHRmb290LFxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA+IHRyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4gdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgPiB0aDpsYXN0LWNoaWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgY29udGVudCBkb2Vzbid0IHdyYXBcbiAgICAgICAgICAgICAgICAgICAgICAgID4gdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAvLyBPbmx5IG51a2UgdGhlIGxhc3Qgcm93J3MgYm90dG9tLWJvcmRlciBpbiBgdGJvZHlgIGFuZCBgdGZvb3RgIHNpbmNlXG4gICAgICAgICAgICAgICAgLy8gY2hhbmNlcyBhcmUgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBgdHJgIGluIGEgYHRoZWFkYCBhbmQgdGhhdCB3b3VsZFxuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgYm9yZGVyIGFsdG9nZXRoZXIuXG4gICAgICAgICAgICAgICAgPiB0Ym9keSxcbiAgICAgICAgICAgICAgICA+IHRmb290IHtcbiAgICAgICAgICAgICAgICAgICAgPiB0cjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4gdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICA+IHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLy8gJG1lbnUtcHJpbWFyeTogdGludCgkYnJhbmQtdGVydGlhcnktc3VwcG9ydCwgNzUlKTtcbi8vICRtZW51LXByaW1hcnktYWN0aXZlOiB0aW50KCRicmFuZC10ZXJ0aWFyeS1zdXBwb3J0LCA1MCUpO1xuXG4vLyAkbWVudS1zZWNvbmRhcnk6ICRtZW51LXByaW1hcnktYWN0aXZlO1xuLy8gJG1lbnUtc2Vjb25kYXJ5LWFjdGl2ZTogJGJyYW5kLXRlcnRpYXJ5LXN1cHBvcnQ7XG5cbiRtZW51LXByaW1hcnk6ICNlOGU4ZTg7XG4kbWVudS1wcmltYXJ5LWFjdGl2ZTogI2RlZGVkZTtcblxuJG1lbnUtc2Vjb25kYXJ5OiAkbWVudS1wcmltYXJ5LWFjdGl2ZTtcbiRtZW51LXNlY29uZGFyeS1hY3RpdmU6ICRtZW51LXByaW1hcnktYWN0aXZlO1xuXG4vLyBGb3IgZGV2aWNlcyB0YWJsZXQtc2l6ZWQgYW5kIHVwIHdlIHNob3cgdGhlIHRhYnMgYXMgcmVndWxhciBvbGQgdGFic1xuQGluY2x1ZGUgbWVkaWEtbGFyZ2UtdXAge1xuXHQudXN5ZC10YWJzIHtcblx0XHRiYWNrZ3JvdW5kOiAkYnJhbmQtY29sb3VyLWxpZ2h0LWdyZXk7XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRAaW5jbHVkZSBjbGVhcmZpeDtcblxuXHRcdGEge1xuXHRcdFx0cGFkZGluZzogNnB4IDEwcHg7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHRsaSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdC8vIFRvZ2dsZXIgaXMgdXNlZCBvbmx5IG9uIG1vYmlsZVxuXHRcdFx0PiAudXN5ZC10b2dnbGVyIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBUYWJzXG5cdFx0PiB1bCB7XG5cdFx0XHRwYWRkaW5nOiAwIDRweDtcblxuXHRcdFx0Ly8gVG9wIGxldmVsIG1lbnUgaXRlbXMsIHdoaWNoIGZsb3cgaG9yaXpvbnRhbGx5IGFjcm9zcyB0aGUgdG9wIG9mIHRoZSBwYWdlXG5cdFx0XHQ+IGxpIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1hcmdpbjogOHB4IDRweCAwO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0PiBhIHtcblx0XHRcdFx0XHRwYWRkaW5nOiA2cHggMTBweCA5cHg7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBIaWRlcyBhbmQgc2hvd3MgdGhlIG1lbnUgY29udGFpbmVkIHdpdGhpbiB0aGlzIGxpc3QgaXRlbS4gSXRlbSB3aWxsIGJlIGRpc3BsYXllZCBhcyBhIGRyb3Bkb3duLlxuXHRcdFx0XHQmOmhvdmVyID4gdWwsICYudXN5ZC1zaG93ID4gdWwge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gVGhlIG1lbnUgaXRlbSBpcyBob3ZlcmVkXG5cdFx0XHRcdCY6aG92ZXIsICYudXN5ZC1zaG93IHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1wcmltYXJ5O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gVGhlIGN1cnJlbnRseSBzZWxlY3RlZCB0YWJcblx0XHRcdFx0Ji51c3lkLWFjdGl2ZSB7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIERvbid0IGFwcGx5IGhvdmVyIHN0eWxlc1xuXHRcdFx0XHRcdCY6aG92ZXIgPiBhLCA+IGE6Zm9jdXMsICYudXN5ZC1hY3RpdmUgPiBhIHtcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gRG9uJ3Qgc2hvdyBkcm9wZG93bnMgb24gaG92ZXIgZm9yIHRoZSBhY3RpdmUgdGFiXG5cdFx0XHRcdFx0Ly8gQWxzbyBpZ25vcmUgdGhlIHVzeWQtc2hvdyBjbGFzcyBmb3IgdGhlIHRhYiBkaXNwbGF5LCBzaW5jZSB3ZSBkb24ndCBhY3R1YWxseSB3YW50IHRoZSBhY3RpdmUgbWVudVxuXHRcdFx0XHRcdC8vIHRvIGJlIG9wZW4gb24gZGVza3RvcCwganVzdCBtb2JpbGUuXG5cdFx0XHRcdFx0Jjpob3ZlciA+IHVsLCAmLnVzeWQtc2hvdyA+IHVsIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gRHJvcGRvd24gbGV2ZWwgMVxuXHRcdFx0XHQ+IHVsIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0XHRcdEBpbmNsdWRlIGxheWVyLXBvcHVwO1xuXHRcdFx0XHRcdHRvcDogMTAwJTtcblx0XHRcdFx0XHQqdG9wOiAyNHB4OyAvLyBJRTcgaGVpZ2h0IGZpeFxuXHRcdFx0XHRcdCpoZWlnaHQ6IGF1dG87XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG1lbnUtcHJpbWFyeTtcblxuXHRcdFx0XHRcdC8vIERyb3Bkb3duIGxldmVsIDEgaXRlbXNcblx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRcdHdpZHRoOiAxNTJweDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Jjpob3ZlciA+IGEsID4gYTpmb2N1cywgJi51c3lkLXNob3cgPiBhIHtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG1lbnUtcHJpbWFyeS1hY3RpdmU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIFNob3cgdGhlIHN1Ym1lbnUgb24gaG92ZXJcblx0XHRcdFx0XHRcdCY6aG92ZXIgPiB1bCwgJi51c3lkLXNob3cgPiB1bCB7XG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQmLnVzeWQtc3VibWVudSB7XG5cdFx0XHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlLXBhdGh9L2Fycm93LWRhcmstZ3JleS5wbmcpO1xuXHRcdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIERyb3Bkb3duIGxldmVsIDJcblx0XHRcdFx0XHRcdD4gdWwge1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRtZW51LXNlY29uZGFyeTtcblx0XHRcdFx0XHRcdFx0bGVmdDogMTAwJTtcblx0XHRcdFx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblxuXHRcdFx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDE1MnB4O1xuXHRcdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRcdCY6aG92ZXIgPiBhLCA+IGE6Zm9jdXMsICYudXN5ZC1zaG93ID4gYSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbWVudS1zZWNvbmRhcnktYWN0aXZlO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE1ha2UgbWVudXMgb3BlbiB0byB0aGUgbGVmdFxuXHRcdFx0XHQmLnVzeWQtc3VibWVudS1ydGwge1xuXG5cdFx0XHRcdFx0PiB1bCB7XG5cdFx0XHRcdFx0XHRyaWdodDogMDtcblx0XHRcdFx0XHRcdD4gbGkge1xuXG5cdFx0XHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0Ji51c3lkLXN1Ym1lbnUgPiBhIHtcblx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vYXJyb3ctZGFyay1ncmV5LWxlZnQucG5nKTtcblx0XHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdD4gdWwge1xuXHRcdFx0XHRcdFx0XHRcdHJpZ2h0OiAxMDAlO1xuICAgIFx0XHRcdFx0XHRcdFx0bGVmdDogYXV0bztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBDbGVhcmZpeCB0byBlbnN1cmUgdGhlIG91dGVyIGNvbnRhaW5lciBlbmNhc2VzIHRoZSB0YWJzLCBzaW5jZSBhbGwgdGFicyBhcmUgZmxvYXRlZCBsZWZ0XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGgyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cbn1cblxuJG5hdi1sZXZlbC1pbmRlbnQ6IDMwcHg7XG4kbmF2LWljb24taW5kZW50OiA0cHg7XG5cbkBpbmNsdWRlIG1lZGlhLXNtYWxsLWRvd24ge1xuXHQudXN5ZC10YWJzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgICB0b3A6IDY2cHg7XG5cdCAgICByaWdodDogMDtcblx0ICAgIHdpZHRoOiA1MCU7XG5cblx0XHQ+IGgyIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdGNvbG9yOiAjRkZGO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdCAgICB3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmc6IDhweCAwIDdweCAwO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZDogIzQ0NDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0fVxuXG5cdFx0XHQudXN5ZC1pY29ue1xuXHRcdFx0XHRmb250LXNpemU6IDAuOGVtO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdHBhZGRpbmc6IDEwcHggMTBweCA4cHggJG5hdi1sZXZlbC1pbmRlbnQ7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0JjpiZWZvcmV7XG5cdFx0XHRcdGNvbnRlbnQ6ICdcXGU4OTQnO1xuXHRcdFx0XHRmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdHotaW5kZXg6IDEwO1xuXHRcdFx0XHRyaWdodDogMTRweDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAtN3B4O1xuXHRcdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRcdGNvbG9yOiAkYnJhbmQtcHJpbWFyeTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHR0cmFuc2l0aW9uOiBoZWlnaHQgMXM7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWNvbG91ci1saWdodC1ncmV5O1xuXHRcdH1cblxuXHRcdC8vIFN0eWxlcyBmb3IgZWFjaCBtZW51IGl0ZW0gYW5kIHRoZWlyIGlubmVyIHN1Ym1lbnVzXG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQvLyBNZW51IGl0ZW1zIGZvciB0aGlzIHN1Ym1lbnUgYXJlIGNvbGxhcHNlZFxuXHRcdFx0Ji51c3lkLWhpZGUsICYge1xuXHRcdFx0XHQ+IHVsIHtcblx0XHRcdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gU2hvdyB0aGUgdG9nZ2xlciBhcnJvdyBwb2ludGluZyBkb3duIHRvIGluZGljYXRlIGl0IGNhbiBiZSB1c2VkIHRvIG9wZW4gdGhpcyBtZW51XG5cdFx0XHQ+IC51c3lkLXRvZ2dsZXIge1xuXHRcdFx0XHQvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vYXJyb3ctZG93bi5wbmcpO1xuXHRcdFx0XHRmb250LWZhbWlseTogXCJmb250ZWxsb1wiO1xuXHRcdFx0XHRjb2xvcjogJGJyYW5kLXByaW1hcnk7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdFx0cGFkZGluZzogNnB4IDdweCA0cHggN3B4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjRENEQ0RDO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6ICRuYXYtaWNvbi1pbmRlbnQ7XG5cdFx0XHRcdHRvcDogNXB4O1xuXHRcdFx0XHR6LWluZGV4OiAxMjA7XG5cblx0XHRcdFx0JjpiZWZvcmV7XG5cdFx0XHQgICAgXHRjb250ZW50OiAnXFxlODFlJztcblx0XHRcdCAgICBcdHJpZ2h0OiBhdXRvO1xuXHRcdFx0ICAgIFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ICAgIFx0bWFyZ2luOiAwO1xuXHRcdFx0ICAgIH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gTWVudSBpdGVtcyBmb3IgdGhpcyBzdWJtZW51IGFyZSBvcGVuXG5cdFx0XHQmLnVzeWQtc2hvdyB7XG5cdFx0XHRcdD4gdWwge1xuXHRcdFx0XHRcdGhlaWdodDogYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFNob3cgdGhlIHRvZ2dsZXIgYXJyb3cgcG9pbnRpbmcgdXAgdG8gaW5kaWNhdGUgaXQgY2FuIGJlIHVzZWQgdG8gY2xvc2UgdGhpcyBtZW51XG5cdFx0XHRcdD4gLnVzeWQtdG9nZ2xlcjpiZWZvcmUge1xuXHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGU4MjInO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEJ1dHRvbiBhbGxvd2luZyB0aGUgdXNlciB0byB0b2dnbGUgdGhlIHN1Ym1lbnUgaW5zaWRlIHRoaXMgbWVudSBpdGVtIG9wZW4gYW5kIGNsb3NlZFxuXHRcdFx0PiAudXN5ZC10b2dnbGVyIHtcblx0XHRcdCAgICBib3JkZXI6IDA7XG5cdFx0XHQgICAgZGlzcGxheTogYmxvY2s7XG5cdFx0XHQgICAgZmxvYXQ6IGxlZnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gU2hvd2luZyB0aGUgbWVudSBpdHNlbGZcblx0XHQ+IGgyOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXG5cdFx0XHQrIHVsIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gVGFiIGJ1dHRvbnNcblx0XHQ+IHVsIHtcblx0XHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdFx0ei1pbmRleDogMTAwO1xuICAgIFx0XHRkaXNwbGF5OiBub25lO1xuICAgIFx0XHR3aWR0aDogODB2dztcbiAgICBcdFx0cmlnaHQ6IDA7XG4gICAgXHRcdHBhZGRpbmc6IDEwcHggMTBweDtcbiAgICBcdFx0bWF4LWhlaWdodDogNjV2aDtcbiAgICBcdFx0QGluY2x1ZGUgYm94LXNoYWRvdygwIDAgMTBweCAjMzMzKTtcblxuICAgIFx0XHQmOmhvdmVye1xuICAgIFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuICAgIFx0XHR9XG5cblx0XHRcdD4gbGkge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI0ZGRjtcblxuXHRcdFx0XHQmLnVzeWQtc2hvdyB7XG5cdFx0XHRcdFx0PiB1bCB7XG5cdFx0XHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI0ZGRjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLnVzeWQtYWN0aXZlIHtcblx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gRHJvcGRvd24gbGV2ZWwgMVxuXHRcdFx0XHQ+IHVsIHtcblxuXHRcdFx0XHRcdC8vIERyb3Bkb3duIGxldmVsIDEgaXRlbXNcblx0XHRcdFx0XHQ+IGxpIHtcblx0XHRcdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCAjRkZGO1xuXG5cdFx0XHRcdFx0XHQ+IGEge1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICRuYXYtbGV2ZWwtaW5kZW50ICogMS41O1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQ+IC51c3lkLXRvZ2dsZXIge1xuXHRcdFx0XHRcdFx0XHRsZWZ0OiAoJG5hdi1sZXZlbC1pbmRlbnQgKiAwLjUpICsgJG5hdi1pY29uLWluZGVudDtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ji51c3lkLWFjdGl2ZSB7XG5cdFx0XHRcdFx0XHRcdD4gYSB7XG5cdFx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gRHJvcGRvd24gbGV2ZWwgMlxuXHRcdFx0XHRcdFx0PiB1bCB7XG5cblx0XHRcdFx0XHRcdFx0PiBsaSB7XG5cdFx0XHRcdFx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNGRkZcdDtcblxuXHRcdFx0XHRcdFx0XHRcdCYudXN5ZC1hY3RpdmUge1xuXHRcdFx0XHRcdFx0XHRcdFx0PiBhIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogbGlnaHRlbigkYnJhbmQtdGVydGlhcnktc3VwcG9ydCwgMjUlKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICRuYXYtbGV2ZWwtaW5kZW50ICogMjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtdGFic3tcblx0XHR3aWR0aDogNTAlO1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tdG9wOiAtNDhweDtcblx0XHRwb3NpdGlvbjogc3RhdGljXG5cdH1cblxuXHQudXN5ZC1sb2NhbC1ob21lcGFnZSAudXN5ZC10YWJzLFxuXHQudXN5ZC1za2lubmVkLXBhZ2UgLnVzeWQtdGFic3tcblx0XHRtYXJnaW4tdG9wOiAtMTAwcHg7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLnVzeWQtdGF5bmUge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0YmFja2dyb3VuZDogdXJsKCN7JGltYWdlLXBhdGh9L2NvbXBvbmVudHMvdGF5bmUuZ2lmKTtcblx0d2lkdGg6IDM0OXB4O1xuXHRoZWlnaHQ6IDU1NXB4O1xufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvaGFja3NcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvb3BhY2l0eVwiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaXppbmdcIjtcblxuLnVzeWQtdGlsZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRoZWlnaHQ6IDE2ZW07XG5cdG1hcmdpbi1ib3R0b206IDJlbTtcblx0YmFja2dyb3VuZC1jb2xvcjogI2NkY2RjZDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG5cdCYudXN5ZC10YWxsIHtcblx0XHRoZWlnaHQ6IDIzNXB4O1xuXHR9XG5cblx0Ji51c3lkLWxpZ2h0IHtcblx0XHQudXN5ZC10aWxlLXRpdGxlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRicmFuZC10ZXJ0aWFyeS1zdXBwb3J0O1xuXHRcdH1cblx0fVxuXG5cdC51c3lkLXRpbGUtaGludCB7XG5cdFx0YmFja2dyb3VuZDogYmxhY2s7IC8vIGRlZmF1bHQgZm9yIG9sZGVyIGJyb3dzZXJzXG5cdFx0YmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuODUpO1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogM3B4IDVweDtcblx0XHRib3R0b206IC0xMDAlO1xuLy9cdFx0aGVpZ2h0OiA3NXB4O1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oMC4yNXMgYm90dG9tKTtcblx0XHRAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuXHR9XG5cblx0Jjpob3ZlciB7XG5cdFx0LnVzeWQtdGlsZS1oaW50IHtcblx0XHRcdGJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQudXN5ZC10aWxlLWxpbmsge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0YmFja2dyb3VuZC1zaXplOiAxMDAlO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHQmOmhvdmVyIC51c3lkLXRpbGUtdGl0bGUge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtdGlsZS10aXRsZSB7XG5cdFx0Ly8gRGVmYXVsdCBhbGlnbiB0byB0b3Bcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW46IDA7XG5cdFx0Zm9udC1zaXplOiAxLjRlbTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRjb2xvcjogJGZvbnQtY29sb3VyLWRhcms7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXRlcnRpYXJ5O1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9hcnJvdy1hbHBoYS5wbmcpO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogOTglIDUwJTtcblx0XHRwYWRkaW5nOiAxMHB4IDI1cHggMTBweCAxMHB4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXG5cdFx0Ji51c3lkLWFsaWduLWJvdHRvbSB7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuXG5cdFx0JjpsaW5rIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6dmlzaXRlZCwgJjphY3RpdmUge1xuXHRcdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4udXN5ZC10aWxlLXByb21vIHtcblx0LnVzeWQtdGlsZS10aXRsZSB7XG5cdFx0bWluLWhlaWdodDogMzRweDtcblx0fVxufVxuXG5AaW5jbHVkZSBoaS1kcGkge1xuXHQudXN5ZC10aWxlLXRpdGxlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoI3skaW1hZ2UtcGF0aH0vYXJyb3ctYWxwaGFAMngucG5nKTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IDIwcHggMjBweDtcblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL29wYWNpdHlcIjtcblxuLypcbkEgZ2VuZXJpYyBjb250YWluZXIgZm9yIGJ1dHRvbnMgb3IgbWVudSBpdGVtcywgdXN1YWxseSB0byBiZSBwb3NpdGlvbmVkIGF0IHRoZSB0b3Agb3IgYm90dG9tIG9mIGEgd2lkZ2V0LiBVc2VkIHRvIGRyYXcgb3V0IHBhcnRpY3VsYXIgYWN0aW9uc1xuYW5kIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSB0aGUgYm9keSBvZiB0aGUgd2lkZ2V0LlxuKi9cbi51c3lkLXRvb2xiYXIge1xuXHRiYWNrZ3JvdW5kOiAkYmctbGlnaHRlc3QtY29sb3I7XG5cdHBhZGRpbmc6IDFlbTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLypcbkEgZ2VuZXJpYyBjb250YWluZXIgaW4gd2hpY2ggdG8gZGlzcGxheSBzdGF0dXMgbWVzc2FnZXMgc3VjaCBhcyBsb2FkaW5nIG5vdGljZXMgb3IgZXJyb3IgbWVzc2FnZXMuXG4qL1xuLnVzeWQtc3RhdHVzLWJhciB7XG5cdGJhY2tncm91bmQ6ICRiZy1saWdodGVzdC1jb2xvcjtcblx0cGFkZGluZzogMWVtO1xuXHRmb250LXNpemU6IDEycHg7XG59XG5cbi51c3lkLWFjdGlvbiB7XG5cdC8vIERvZXMgbm90aGluZyBzbyBmYXIsIGp1c3QgYmxvY2tpbmcgdGhlIGlkZWEgb3V0IGZvciBoaW50aW5nIChiZWxvdylcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHQudXN5ZC1pY29uLXRleHQge1xuXHRcdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG59XG5cbi8qXG5BcHBseSB0aGlzIHRvIGEgY29udGFpbmVyIHdpdGggYWN0aW9ucyB0byBhbGxvdyB0aGUgYWN0aW9ucyB0byBoYXZlIGEgXCJoaW50ZWRcIiBlZmZlY3QsIHdoZXJlIHRoZXkgYXJlIHJldmVhbGVkIGFzIHRoZSBpdGVtIGlzIG1vdXNlZCBvdmVyXG4qL1xuQGluY2x1ZGUgbWVkaWEtbGFyZ2UtdXAge1xuXHQudXN5ZC1oaW50ZWQtYWN0aW9ucyB7XG5cdFx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0XHQudXN5ZC1hY3Rpb24sIC51c3lkLWFjdGlvbi1pY29uIHtcblx0XHRcdFx0QGluY2x1ZGUgb3BhY2l0eSguNzUpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC51c3lkLWFjdGlvbiwgLnVzeWQtYWN0aW9uLWljb24ge1xuXHRcdFx0QGluY2x1ZGUgb3BhY2l0eSgwKTtcblx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjI1cyk7XG5cblx0XHRcdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdFx0XHRAaW5jbHVkZSBvcGFjaXR5KDEpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKlxuQSBnZW5lcmFsIGNvbnRhaW5lciBmb3IgYSBzdHJpcCBvZiBhY3Rpb25zLCB1c3VhbGx5IGluIHRoZSBmb3JtIG9mIGFjdGlvbiBpY29ucy5cbiovXG4udXN5ZC1hY3Rpb25zIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLypcbkEgbGlzdCBvZiBhY3Rpb25zIGluIGEgdG9vbGJhci1zdHJpcCBsaWtlIGxheW91dC4gU2ltaWxhciB0byBhbiBpY29uIG1lbnUgaW4gYSBkZXNrdG9wIGFwcGxpY2F0aW9uLlxuKi9cbi51c3lkLWFjdGlvbi1saXN0IHtcblx0QGV4dGVuZCAudXN5ZC1hY3Rpb25zO1xuXHRsaSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luOiAwIDAuNWVtIDAgMDtcblx0fVxufVxuXG4vKlxuQW4gYWN0aW9uIGJ1dHRvbiBwcmVzZW50ZWQgYXMgYW4gaWNvbi4gVXN1YWxseSBzaXRzIGluc2lkZSBhbiBhY3Rpb24gbGlzdC5cblRPRE86IGhhbmRsZSBtdWx0aXBsZSBzaXplc1xuLSAudXN5ZC11aS1idXR0b246IFRoZSBhY3Rpb24gYXBwZWFycyBhcyBhIHN0YW5kYXJkIGJ1dHRvblxuKi9cbi51c3lkLWFjdGlvbi1pY29uIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdGNvbG9yOiAjMDAwOyAvLyBSZXNldCBpY29uIGNvbG91cj9cblxuXHQmOnZpc2l0ZWQge1xuXHRcdGNvbG9yOiAjMDAwO1xuXHR9XG59XG5cbi8qXG5BbiBhY3Rpb24gaWNvbiB3aXRoIHRleHQgdGlwIHRoYXQgcmV2ZWFscyB3aGVuIHRoZSB1c2VyIG1vdXNlcyBvdmVyIHRoZSBlbGVtZW50LlxuKi9cbi51c3lkLWFjdGlvbi1oaW50ZWQtdGV4dCB7XG5cdC8vIFRleHQgZGlzcGxheWVkIHdoZW4gYSB1c2VyIGhvdmVycyBvciBmb2N1c2VzIG9uIHRoZSBhY3Rpb25cblx0LnVzeWQtYWN0aW9uLXRleHQge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXgtd2lkdGg6IDA7XG5cdFx0d2lkdGg6IDA7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSAwLjVzKTtcblx0fVxuXG5cdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdC51c3lkLWFjdGlvbi10ZXh0IHtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiA1cHg7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxufVxuXG4vKlxuQSBzcGVjaWFsIHN0YXRlIG9mIHVsIG9yIG9sIGxpc3RzIHRvIGJlIGFwcGxpZWQgd2hlbiB0aGUgaXRlbXMgYXJlIHNvcnRhYmxlIGJ5IHNvbWUgZHJhZy1hbmQtZHJvcCBtZWNoYW5pc20uXG4qL1xuLnVzeWQtc29ydGFibGUtbGlzdCB7XG5cdHBhZGRpbmctYm90dG9tOiAxMHB4OyAvLyBBbGxvd3MgalF1ZXJ5IFVJIHNvcnRhYmxlIGl0ZW1zIGNvbnN0cmFpbmVkIHRvIHRoaXMgY29udGFpbmVyIHRvIGJlIGRyYWdnZWQgdG8gdGhlIGJvdHRvbVxuXG5cdGxpOmhvdmVyIHtcblx0XHRjdXJzb3I6IG1vdmU7XG5cdH1cbn1cblxuQGluY2x1ZGUgaGktZHBpIHtcblx0LnVzeWQtc29ydGFibGUtbGlzdCB7XG5cdFx0bGkge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlLXBhdGh9L2ljb25zLzE2eDE2L2hhbmRsZS1hbHBoYUAyeC5wbmcpO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG5cdFx0fVxuXG5cdFx0bGk6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCN7JGltYWdlLXBhdGh9L2ljb25zLzE2eDE2L2hhbmRsZUAyeC5wbmcpO1xuXHRcdH1cblx0fVxufVxuXG4vKlxuQSBjb250cm9sIHN0cmlwIGRlc2lnbmVkIHRvIGFwcGVhciB3aGVuIGEgd2lkZ2V0IGlzIGluIGFuIGVkaXRhYmxlIHN0YXRlLiBQZXJtaXRzIGEgc2V0IG9mIHByaW1hcnkgYWN0aW9ucyAoXCJzYXZlXCIsIFwiY2FuY2VsXCIsIFwiZGVsZXRlXCIsIGV0YylcbnRvIGJlIGNvbWJpbmVkIHdpdGggYSBzZXQgb2Ygc2Vjb25kYXJ5IGljb25zIChcImhlbHBcIiwgZXRjKS5cbiovXG4udXN5ZC1lZGl0LWNvbnRyb2xzIHtcblx0QGV4dGVuZCAudXN5ZC10b29sYmFyO1xuXHQudXN5ZC1hY3Rpb25zIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdH1cblx0LnVzeWQtYWN0aW9uLWxpc3Qge1xuXHRcdG1hcmdpbjogMC42ZW0gMCAwIDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmbG9hdDogbGVmdDtcblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3gtc2hhZG93XCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JvcmRlci1yYWRpdXNcIjtcblxuJGJhc2UtbGF5ZXItb2Zmc2V0OiAxMCAhZGVmYXVsdCAhZ2xvYmFsO1xuJGFycm93LXNpemU6IDEwcHggIWRlZmF1bHQgIWdsb2JhbDtcbiRiYWNrZ3JvdW5kLWNvbG91cjogIzMzMyAhZGVmYXVsdCAhZ2xvYmFsO1xuJGZvbnQtY29sb3VyOiAjZmZmICFkZWZhdWx0ICFnbG9iYWw7XG4kYmFja2dyb3VuZC1jb2xvdXItY29tcGF0OiAkYmFja2dyb3VuZC1jb2xvdXIgIWRlZmF1bHQgIWdsb2JhbDtcblxuLnVzeWQtdWktdG9vbHRpcCB7XG5cdCRiYWNrZ3JvdW5kLWNvbG91cjogcmdiYSgwLCAwLCAwLCAwLjg1KSAhZ2xvYmFsO1xuXHQkYmFja2dyb3VuZC1jb2xvdXItY29tcGF0OiB0aW50KGJsYWNrLCAxNSUpICFnbG9iYWw7XG5cdFxuICAgICYudWktdGlwLWNvbnRhaW5lciB7IFxuICAgICAgICB3aWR0aDogMTVlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTsgXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgQGluY2x1ZGUgbGF5ZXItcG9wdXA7XG5cbiAgICAgICAgJi51aS1hbmNob3ItbiwgJi51aS1hbmNob3ItbmUsICYudWktYW5jaG9yLW53IHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7ICBcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYudWktYW5jaG9yLW4ge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYudWktYW5jaG9yLW53IHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnVpLWFuY2hvci1uZSB7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi51aS1hbmNob3ItcywgJi51aS1hbmNob3Itc2UsICYudWktYW5jaG9yLXN3IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7IFxuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7ICBcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQ7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7IFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYudWktYW5jaG9yLXMge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYudWktYW5jaG9yLXN3IHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnVpLWFuY2hvci1zZSB7XG4gICAgICAgICAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi51aS1hbmNob3ItZSwgJi51aS1hbmNob3ItZXMsICYudWktYW5jaG9yLWVuIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtKCRhcnJvdy1zaXplIC0gMSk7XG5cbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOyBcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTsgXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLWUge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0kYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLWVuIHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi51aS1hbmNob3ItZXMge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJGFycm93LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgICYudWktYW5jaG9yLXcsICYudWktYW5jaG9yLXdzLCAmLnVpLWFuY2hvci13biB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRhcnJvdy1zaXplO1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtKCRhcnJvdy1zaXplIC0gMSk7XG5cbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1zdHlsZTogc29saWQ7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTsgXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7IFxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50OyBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLXcge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0kYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudWktYW5jaG9yLXduIHtcbiAgICAgICAgICAgIC51aS10aXAtYW5jaG9yIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRhcnJvdy1zaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi51aS1hbmNob3Itd3Mge1xuICAgICAgICAgICAgLnVpLXRpcC1hbmNob3Ige1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJGFycm93LXNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudWktdGlwLWJvZHkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvdXItY29tcGF0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvdXI7XG4gICAgICAgICpiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvdXItY29tcGF0O1xuICAgICAgICBjb2xvcjogJGZvbnQtY29sb3VyOyBcbiAgICAgICAgbWF4LXdpZHRoOiAyMTBweDsgXG4gICAgICAgICptYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICp3aWR0aDogMjEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDdweCA5cHg7XG4vLyAgICAgICAgQGluY2x1ZGUgc2luZ2xlLWJveC1zaGFkb3coMCwgMCwgM3B4LCAzcHgsIHJnYmEoIzAwMCwgMC44KSk7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMXB4KTtcbiAgICB9XG5cbiAgICAudWktdGlwLWFuY2hvciB7IFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IFxuICAgICAgICB3aWR0aDogMDsgXG4gICAgICAgIGhlaWdodDogMDsgXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwOyBcbiAgICAgICAgYm9yZGVyOiAkYXJyb3ctc2l6ZSBzb2xpZCAkYmFja2dyb3VuZC1jb2xvdXItY29tcGF0O1xuICAgICAgICBib3JkZXI6ICRhcnJvdy1zaXplIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG91cjtcbiAgICAgICAgKmJvcmRlcjogJGFycm93LXNpemUgc29saWQgJGJhY2tncm91bmQtY29sb3VyLWNvbXBhdDtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwidG9vbHRpcHNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL2hhY2tzXCI7XG5cbiRkZWZhdWx0LWxheWVyLW9mZnNldDogMTAwMCAhZ2xvYmFsO1xuJGJhc2UtZm9udC1zaXplOiAxMHB4ICFnbG9iYWw7XG5cbi51c3lkLXVpLW1hc2sge1xuICAgICYudXN5ZC1hcHBzLXR1dG9yaWFsLW1hc2sge1xuICAgICAgICAkYmFzZS1sYXllci1vZmZzZXQ6ICRkZWZhdWx0LWxheWVyLW9mZnNldCAhZGVmYXVsdCAhZ2xvYmFsO1xuICAgICAgICBAaW5jbHVkZSBsYXllci1vdmVybGF5O1xuICAgIH1cbn1cblxuXG4udWktYW5jaG9yLXMtIHtcbiAgICAudWktdGlwLWFuY2hvciB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZnJvbS1ldmVyeW9uZTtcbiAgICB9XG59XG5cbi51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCB7XG5cdCRiYXNlLWxheWVyLW9mZnNldDogJGRlZmF1bHQtbGF5ZXItb2Zmc2V0ICsgMTAwMCAhZGVmYXVsdCAhZ2xvYmFsO1xuICAgICRhcnJvdy1zaXplOiAxMnB4ICFnbG9iYWw7XG4gICAgJGJhY2tncm91bmQtY29sb3VyOiAkYmctY29sb3VyLWxpZ2h0ICFnbG9iYWw7XG4gICAgJGJhY2tncm91bmQtY29sb3VyLWNvbXBhdDogJGJnLWNvbG91ci1saWdodCAhZ2xvYmFsO1xuICAgICRmb250LWNvbG91cjogJGZvbnQtY29sb3VyLWRhcmsgIWdsb2JhbDtcbiAgICAkYmFzZS1mb250LXNpemU6IDEwcHggIWdsb2JhbDtcblxuICAgIC51aS10aXAtYm9keSB7IFxuICAgICAgICAvLyBkaXYge1xuICAgICAgICAvLyAgICAgJGJhc2UtbGF5ZXItb2Zmc2V0OiAkYmFzZS1sYXllci1vZmZzZXQgKyAxO1xuICAgICAgICAvLyAgICAgQGluY2x1ZGUgbGF5ZXItcG9wdXA7XG4gICAgICAgIC8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vIH1cblxuICAgICAgICAudXN5ZC10dXRvcmlhbC1oaW50IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICAudXN5ZC11aS1lbXBoYXNpcy1zdHJvbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgcmVtLXNpemUoMS41KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNWVtO1xuXG4gICAgICAgICAgICAvLyAkaGlnaGxpZ2h0LWNvbG91cjogbGlnaHRlbihibGFjaywgNTAlKTtcbiAgICAgICAgICAgICRoaWdobGlnaHQtY29sb3VyOiAkYnJhbmQtdGVydGlhcnk7XG4gICAgICAgICAgICBjb2xvcjogJGZvbnQtY29sb3VyO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkaGlnaGxpZ2h0LWNvbG91ciwgMzUlKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJGhpZ2hsaWdodC1jb2xvdXIsIDQ1JSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGSVhNRTogVGhlIG1peGluIG5vIGxvbmdlciBleGlzdHMsIHNvIGZvciB0aGlzIHRvIHdvcmsgd2UnbGwgbmVlZCB0byBhZGQgdGhlIGNsYXNzZXMgZGlyZWN0bHkgdG8gdGhlIG1hcmt1cCBmb3IgdHV0b3JpYWwgc3R1ZmZcblx0Ly8gQGluY2x1ZGUgdG9vbHRpcDtcbn1cblxuXG4udXN5ZC1hcHBzLXR1dG9yaWFsLWhvaXN0ZWQge1xuICAgICRiYXNlLWxheWVyLW9mZnNldDogJGRlZmF1bHQtbGF5ZXItb2Zmc2V0ICsgMTAwMCAhZ2xvYmFsO1xuICAgIEBpbmNsdWRlIGxheWVyLXBvcHVwO1xuICAgIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG59XG5cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL29wYWNpdHlcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNoYWRvd1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5cbi8vICRiYXNlLWxheWVyLW9mZnNldDogMTAwMCAhZGVmYXVsdDtcbiRiYXNlLWZvbnQtc2l6ZTogMTBweCAhZ2xvYmFsO1xuLnVzeWQtYXBwcy10dXRvcmlhbC1ob2lzdGVkIHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KDAgMCAxMDBweCAjMDAwKTtcbn1cblxuYm9keSAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQge1xuXG4gICAgJi51aS10aXAtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgLnVpLXRpcC1ib2R5IHtcblx0ICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvdXItbGlnaHQ7XG5cdCAgICBjb2xvcjogJGZvbnQtY29sb3VyLWRhcms7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coMCAwIDUwcHggIzAwMCk7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICB9XG5cbiAgICAudWktdGlwLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAxLjNlbSAxLjhlbTtcbiAgICB9XG5cblx0LnVpLXRpcC1hbmNob3Ige1xuXHRcdGJvcmRlci1jb2xvcjogJGJnLWNvbG91ci1saWdodDtcblx0fVxuXG4gICAgLnVzeWQtYXBwcy10dXRvcmlhbC1idXR0b25zIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIG1hcmdpbjogMS41ZW0gMCAwLjVlbTtcbiAgICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXN5ZC10dXRvcmlhbC1jdHJsLXByZXYge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9wYWNpdHkoMC41KTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgb3BhY2l0eSgxKTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG9wYWNpdHkgMC4yNXMgZWFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLnVzeWQtdWktYWxpZ24tY2VudHJlIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwLjJlbSAwIDAuNWVtO1xuICAgIH1cblxuICAgIHAsIGxpIHtcbiAgICAgICAgLy8gJGJhc2UtZm9udC1zaXplOiAxMC41cHg7XG4gICAgICAgIEBpbmNsdWRlIHJlbS1zaXplKDEuMyk7XG4gICAgICAgICsgcCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuLy8gSG9tZVxuLnVzeWQtdHV0b3JpYWwtc2VhcmNoLWhpbnQge1xuICAgICRiYXNlLWxheWVyLW9mZnNldDogLTEwMDAgIWdsb2JhbDtcblxuICAgIEBpbmNsdWRlIGxheWVyLXBvcHVwO1xuICAgIEBleHRlbmQgJXVzeWQtdHV0b3JpYWwtZGVjb3JhdGlvbjtcblxuICAgIGxlZnQ6IDIxZW07XG4gICAgYm90dG9tOiAyLjVlbTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoI3skaW1hZ2UtcGF0aH0vY29tcG9uZW50cy90dXRvcmlhbC9ob21lLXNlYXJjaC1hcnJvdy5wbmcpO1xuICAgIHdpZHRoOiAxODNweDtcbiAgICBoZWlnaHQ6IDI4OXB4O1xufVxuXG4udXN5ZC11aS1jb250ZW50LWdyb3VwLCAudXN5ZC11aS1jb21tb24tbmF2IHtcbiAgICBAZXh0ZW5kICV1c3lkLXR1dG9yaWFsLWhvaXN0ZWQtYmc7XG59XG5cblxuLy8gRmF2b3VyaXRlc1xuLnVzeWQtaW50cmFuZXQtZmF2b3VyaXRlcyB7XG4gICAgaDIge1xuICAgICAgICBAZXh0ZW5kICV1c3lkLXR1dG9yaWFsLWhvaXN0ZWQtYmc7XG4gICAgICAgIEBpbmNsdWRlIGxheWVyLXBvcHVwKDMwMTApOyAvLyBjbHVkZ2UgbWUgdGVuZGVyLCBjbHVkZ2UgbWUgc3dlZXQhXG4gICAgfVxufVxuLnVzeWQtdWktZXhwYW5kZXItd3JhcHBlciB7XG4gICAgQGV4dGVuZCAldXN5ZC10dXRvcmlhbC1ob2lzdGVkLWJnO1xufVxuXG4ldXN5ZC10dXRvcmlhbC1kZWNvcmF0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbiV1c3lkLXR1dG9yaWFsLWhvaXN0ZWQtYmcudXN5ZC1hcHBzLXR1dG9yaWFsLWhvaXN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhsYXJnZSB7XG4gICAgLnVzeWQtYXBwcy10dXRvcmlhbC1pbnRyYW5ldC1ob21lIHtcblxuICAgICAgICAudXN5ZC1hcHBzLXR1dG9yaWFsLWNvbnRlbnQge1xuXG4gICAgICAgICAgICAudWktdGlwLWJvZHkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNjBlbTtcbiAgICAgICAgICAgICAgICAqbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgICp3aWR0aDogNjBlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnVzeWQtdHV0b3JpYWwtbm9ybWFsLXN0ZXAge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxOWVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnVzeWQtdHV0b3JpYWwtdW5hbmNob3JlZC1zdGVwIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcbiAgIC51c3lkLWFwcHMtdHV0b3JpYWwtaW50cmFuZXQtaG9tZSB7XG4gICAgICAgIC51c3lkLWFwcHMtdHV0b3JpYWwtY29udGVudCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgICAgICptYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICAqd2lkdGg6IDkwJTtcbiAgICAgICAgICAgICAudWktdGlwLWJvZHkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAqbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgICAgICAgICp3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuQGluY2x1ZGUgbWVkaWEteHNtYWxse1xuXHQudXN5ZC1sb2dpbi1jb21wb25lbnR7XG5cdFx0aGVpZ2h0OiAwO1xuXHQgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblx0ICAgIHBhZGRpbmc6IDA7XG5cdCAgICBtYXJnaW46IDAgMCAtMjBweDtcblx0ICAgIGJvcmRlcjogbm9uZTtcblx0fVxufVxuXG4udXN5ZC1ob21lLWxvZ2luLWhlbHAge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMCAwIDAgMTBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogOHB4O1xuXG5cdGxpIHtcblx0XHRtYXJnaW46IDAuMzVlbSAwO1xuXHR9XG59XG5cbi51c3lkLWhvbWUtbG9naW4tYnV0dG9ue1xuXHR3aWR0aDogNzFweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzMy9pbWFnZXNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm94LXNoYWRvd1wiO1xuXG4udXN5ZC15YW1tZXItc2hhcmUge1xuXHRAaW5jbHVkZSBidXR0b24oIzAwNzJjNiwgd2hpdGUpO1xuXHRoZWlnaHQ6IDI3cHg7XG5cdGZvbnQtc2l6ZTogMWVtO1xufVxuXG4udXN5ZC11aS15YW1tZXItc2hhcmUge1xuICBtYXJnaW4tdG9wOiAxcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAxNTBweDtcbn1cblxuLnVzeWQtaWNvbi15YW1tZXIge1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoI3skaW1hZ2UtcGF0aH0vaWNvbnMvMTZ4MTYveWFtbWVyLnBuZykgbm8tcmVwZWF0IHRvcCBsZWZ0O1xuXHRiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcblx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuXHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0KmRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnVzeWQteWFtbWVyLWxvZ2luIHtcblx0cGFkZGluZy10b3A6IDI2cHg7XG5cblx0LnVzeWQteWFtbWVyLWxvZ2luLWxvZ28ge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdGZvbnQtc2l6ZTogNDhweDtcblx0XHRjb2xvcjogIzM5NkI5QTtcblx0fVxuXG5cdC51c3lkLXVpLXN0YW5kYXJkLWxpc3Qge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0bWFyZ2luLXRvcDogMTBweDtcblx0fVxuXG5cdHVsIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgXHRtYXJnaW46IDAgMCAwIDE1cHg7XG5cdH1cblxuXHRwIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luLWxlZnQ6IDE1cHg7XG5cdH1cblx0LnVzeWQtdWktYnV0dG9uLXByaW1hcnk6dmlzaXRlZCwgLnVzeWQtdWktYnV0dG9uLXByaW1hcnk6bGluayB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdH1cbn1cblxuQGluY2x1ZGUgaGktZHBpIHtcblx0LnVzeWQtaWNvbi15YW1tZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgjeyRpbWFnZS1wYXRofS9pY29ucy8xNngxNi95YW1tZXJAMngucG5nKTtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbCB7XG5cdC51c3lkLXlhbW1lci1sb2dpbiB7XG5cdFx0cGFkZGluZy10b3A6IDEwcHg7XG5cdFx0LnVzeWQteWFtbWVyLWxvZ2luLWxvZ28ge1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdH1cblxuXHRcdC51c3lkLXVpLXN0YW5kYXJkLWxpc3Qge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRtYXJnaW46IGluaGVyaXQ7XG5cdFx0fVxuXHR9XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLnVzeWQtc2hvdy14c21hbGwgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbi51c3lkLWhpZGUteHNtYWxsIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4udXN5ZC1zaG93LXNtYWxsIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4udXN5ZC1oaWRlLXNtYWxsIHsgZGlzcGxheTogaW5oZXJpdCAhaW1wb3J0YW50OyB9XG4vLyBOb3RlIHdlIG9taXQgXCJsYXJnZVwiIGFzIGl0J3MgdGhlIGRlZmF1bHQgaW4gY2FzZSBvZiBhbnkgbWVkaWEgcXVlcnkgbm90IHdvcmtpbmduZXNzXG4udXN5ZC1zaG93LXhsYXJnZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuLnVzeWQtaGlkZS14bGFyZ2UgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtc2hvdy14c21hbGwgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblx0LnVzeWQtaGlkZS14c21hbGwgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblx0LnVzeWQtc2hvdy1sYXJnZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxufVxuXG5AaW5jbHVkZSBtZWRpYS1zbWFsbCB7XG5cdC51c3lkLXNob3ctc21hbGwgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblx0LnVzeWQtaGlkZS1zbWFsbCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXHQudXN5ZC1zaG93LWxhcmdlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbkBpbmNsdWRlIG1lZGlhLXhsYXJnZSB7XG5cdC51c3lkLXNob3ctbGFyZ2UgeyBkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7IH1cblx0LnVzeWQtaGlkZS1sYXJnZSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXHQudXN5ZC1zaG93LWxhcmdlIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbi8vIFJlc3BvbnNpdmUgZW1iZWQgKGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9OZXRNYWcvRmx1aWRXaWR0aFZpZGVvL0FydGljbGUtRmx1aWRXaWR0aFZpZGVvLnBocClcbi51c3lkLXJlc3BvbnNpdmUtZW1iZWQge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7IC8qIDE2OjkgKi9cblx0cGFkZGluZy10b3A6IDI1cHg7XG5cdGhlaWdodDogMDtcbn1cblxuLnVzeWQtcmVzcG9uc2l2ZS1lbWJlZCBpZnJhbWUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLnVzeWQtcmVzcG9uc2l2ZS1pbWFnZSB7XG5cdEBpbmNsdWRlIHJlc3BvbnNpdmUtaW1hZ2UoYmxvY2spO1xufVxuIiwiLy8gTWFya2VycyBhcmUgdXNlZCBpbiBBRU0gdG8gcmVwcmVzZW50IGNvbXBvbmVudHMgdGhhdCBkb24ndCBvY2N1cHkgYW55IHNwYWNlIGJ1dCBuZWVkIHRvIGJlIHZpc2libGUgaW5cbi8vIGVkaXQgbW9kZVxuXG4vLyBUaGUgbGluZSBicmVhayBtYXJrZXIvbGFiZWwgaXMgYSBzdXBwb3J0IGNsYXNzIGZvciBBRU0gdGhhdCBwcm92aWRlcyBhIGNsZWFyIGluZGljYXRpb24gdG8gdXNlcnMgd2hlcmUgbGluZSBicmVha3MgaGF2ZSBiZWVuIGluc2VydGVkXG4udXN5ZC1ob3Jpem9udGFsLW1hcmtlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRib3JkZXItdG9wOiAycHggc29saWQgIzc3Nztcblx0aGVpZ2h0OiAwO1xufVxuXG4udXN5ZC1ob3Jpem9udGFsLW1hcmtlci1sYWJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOiAtNnB4O1xuXHRwYWRkaW5nOiAwIDEwcHg7XG5cdGZvbnQtc2l6ZTogIDEycHg7XG5cdGJhY2tncm91bmQ6IHdoaXRlO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yOiAjNzc3O1xufSIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLy8gU3R5bGVzIGZvciB0aGUgalF1ZXJ5IGRhdGF0YWJsZSBwbHVnaW5cbi8vIFBhZ2luYXRpb24gc3R5bGVzIGZvciB0aGUgcGx1Z2luIGFyZSBkZWZpbmVkIGluIHBhZ2luYXRpb24uc2Nzcywgc2luY2UgdGhleSdyZSB0aGUgc3RhbmRhcmQgaW50cmFuZXQgcGFnZXIgc3R5bGVzXG5cbi5zb3J0aW5nOmFmdGVyIHtcblx0QGluY2x1ZGUgZm9udGVsbG8taWNvbigkaWNvbi1zb3J0KTtcbn1cblxuLnNvcnRpbmdfZGVzYzphZnRlciB7XG5cdEBpbmNsdWRlIGZvbnRlbGxvLWljb24oJGljb24tc29ydC1kb3duKTtcbn1cblxuLnNvcnRpbmdfYXNjOmFmdGVyIHtcblx0QGluY2x1ZGUgZm9udGVsbG8taWNvbigkaWNvbi1zb3J0LXVwKTtcbn1cblxuLy8gU2FtZSBhcyB1c3lkLWZvcm0gc3R5bGVzXG4uZGF0YVRhYmxlc19maWx0ZXIge1xuXHRiYWNrZ3JvdW5kOiAkYmctbGlnaHRlc3QtY29sb3I7XG5cdHBhZGRpbmc6IDFlbTtcblxuXHRsYWJlbCB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHRpbnB1dCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLnVzeWQtdG9wLXBhZ2VzIHtcblx0LnVzeWQtaGVscC1hY3Rpb24ge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Y29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuXHR9XG5cblx0aDIge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5AaW1wb3J0IFwiY29tcGFzcy9jc3MzL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJjb21wYXNzL3R5cG9ncmFwaHkvdGV4dC9mb3JjZS13cmFwXCI7XG5cbkBpbmNsdWRlIG1lZGlhLXNtYWxsLXVwIHtcblx0LnVzeWQtc2VhcmNoLW5hdi1jb21wYWN0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LnVzeWQtcmVzdWx0cyB7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRsaWdodC1ncmV5O1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxufVxuXG5AaW5jbHVkZSBtZWRpYS14c21hbGwge1xuXHQudXN5ZC1zZWFyY2gtbmF2IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LnVzeWQtc2VhcmNoLXRvZ2dsZSB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG5cblx0LnVzeWQtc2VhcmNoLW5hdi1jb21wYWN0IHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdGludChibGFjaywgOTAlKTtcblx0XHRtYXJnaW46IDAgLTJlbTtcblxuXHRcdC51c3lkLXNlYXJjaC1mb3JtIHtcblx0XHRcdHBhZGRpbmc6IDAgMjBweCAwIDIwcHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblxuXHRcdC51c3lkLXNlYXJjaC1zdWdnZXN0aW9uIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXHRcdH1cblx0fVxuXG5cdC51c3lkLXNlYXJjaC1leHBhbmRlci1jb250cm9scyB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRwYWRkaW5nOiAxMHB4IDIwcHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0aW50KGJsYWNrLCA5MCUpO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAxcHggMCAwIDA7XG5cdFx0QGluY2x1ZGUgY2xlYXJmaXg7XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogNXB4IDAgMCAwO1xuXHRcdH1cblx0fVxuXG5cdC51c3lkLXNlYXJjaC1leHBhbmRlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdGludChibGFjaywgOTclKTtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHR9XG5cblx0LnVzeWQtc2VhcmNoLWZpbHRlcnMge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB0aW50KGJsYWNrLCA5MCUpO1xuXG5cdFx0LnVzeWQtdWktZm9ybS1saW5lOmxhc3QtY2hpbGQgIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLXNlYXJjaC1xdWVyeS1maWVsZCB7XG5cdHdpZHRoOiA4MCU7XG59XG5cbi51c3lkLXNlYXJjaC1maWx0ZXJzIHtcblx0cGFkZGluZy10b3A6IDEwcHg7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi51c3lkLXNlYXJjaC1maWx0ZXIge1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG5cdGgzIHtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdH1cbn1cblxuLnVzeWQtc2VhcmNoLWZpbHRlci1hY3RpdmUge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnVzeWQtc2VhcmNoLWZvcm0ge1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogMjBweCAwIDAgMDtcblx0QGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcblxuXHQudXN5ZC11aS1mb3JtLWlucHV0IHtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdH1cblxuXHQudXN5ZC11aS1mb3JtLWFjdGlvbnMge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cdFx0d2lkdGg6IDIuNWVtO1xuXHR9XG59XG5cbi51c3lkLXNlYXJjaC1zdWdnZXN0aW9uIHtcblx0bWFyZ2luOiAxNXB4IDA7XG59XG5cbi51c3lkLXNlYXJjaC1uby1yZXN1bHQge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbG9yOiAjNzY3Njc2O1xuXHRmb250LXNpemU6IDE0cHg7XG5cdHBhZGRpbmc6IDI1cHggMTVweDtcblx0Lmljb24tc2VhcmNoIHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG59XG5cbi51c3lkLXJlc3VsdCB7XG5cblx0bWFyZ2luLXRvcDogMzBweDtcblx0bWFyZ2luLWJvdHRvbTogMzBweDtcblxuXHQmLnVzeWQtY2FyZCB7XG5cdFx0cGFkZGluZzogMTBweCAxMHB4IDEwcHggMDtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHRwIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQudXN5ZC1yZXN1bHQtaWNvbiB7XG5cdFx0d2lkdGg6IDMycHggKyA0MHB4O1xuXHRcdGNvbG9yOiB0aW50KGJsYWNrLCA1OCUpOyAvLyA0MiUgb3BhY2l0eVxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IDMycHg7XG5cdH1cblxuXHQudXN5ZC1yZXN1bHQtdGl0bGUge1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0fVxuXG5cdC51c3lkLXJlc3VsdC1tZXRhZGF0YSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRcdGNvbG9yOiB0aW50KGJsYWNrLCA0NiUpOyAvLyA1NCUgb3BhY2l0eVxuXHR9XG5cblx0LnVzeWQtcmVzdWx0LXVybCB7XG5cdFx0Y29sb3I6ICM0Qjk0NTA7XG5cdFx0QGluY2x1ZGUgZm9yY2Utd3JhcCgpO1xuXHR9XG5cbn1cblxuQGluY2x1ZGUgbWVkaWEteHNtYWxsIHtcblx0LnVzeWQtcmVzdWx0IHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdGludChibGFjaywgOTAlKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogMjBweDtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cblx0XHQudXN5ZC1yZXN1bHQtaWNvbiB7XG5cdFx0XHR3aWR0aDogMjRweCArIDIwcHg7XG5cdFx0fVxuXG5cdFx0Ji51c3lkLWNhcmQge1xuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHRpbnQoYmxhY2ssIDYwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi51c3lkLWNvbnRhY3Qge1xuXHRhIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblx0fVxuXG5cdC51c3lkLWNvbnRhY3QtdGl0bGUtZ3JvdXAge1xuXHRcdEBpbmNsdWRlIGNsZWFyZml4O1xuXHR9XG5cblx0LnVzeWQtY29udGFjdC1zdWJ0aXRsZSB7XG5cdFx0Y29sb3I6IHRpbnQoYmxhY2ssIDQ2JSk7IC8vIDU0JSBvcGFjaXR5XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogdGludChibGFjaywgNDYlKTsgLy8gNTQlIG9wYWNpdHlcblx0XHR9XG5cdH1cblxuXHQudXN5ZC1jb250YWN0LWRldGFpbHMge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdH1cblxuXHQudXN5ZC1jb250YWN0LWRldGFpbCB7XG5cdFx0PiAudXN5ZC1pdGVtLWxhYmVsIHtcblx0XHRcdHdpZHRoOiA1MHB4O1xuXHRcdH1cblxuXHRcdC51c3lkLWxhYmVsbGVkLWxpc3Qge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRcdFx0PiAudXN5ZC1pdGVtLWRldGFpbCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE0cHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtY29udGFjdC1hZGRpdGlvbmFsLW51bWJlcnMge1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHR3aGl0ZS1zcGFjZTogbm8td3JhcDtcblx0fVxuXG5cdC51c3lkLWNvbnRhY3QtZGVzY3JpcHRpb24ge1xuXHRcdG1hcmdpbjogMTBweCAwO1xuXHR9XG5cblx0LnVzeWQtY29udGFjdC1tYXAge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0aGVpZ2h0OiAyNTBweDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB0aW50KGJsYWNrLCA5MCUpO1xuXHRcdHdpZHRoOiA5OC41JTtcblxuXHRcdCYudXN5ZC1oaWRlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtY29udGFjdC1lbWFpbCB7XG5cdFx0YSB7XG5cdFx0XHRAaW5jbHVkZSBmb3JjZS13cmFwKCk7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtY29udGFjdC1mdWxsLWFkZHJlc3Mge1xuXHRcdCYudXN5ZC1oaWRlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0LnVzeWQtY29udGFjdC1sb2NhdGlvbiB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblxuXHRcdC51c3lkLXRyaWdnZXItc2hvdy1hZGRyZXNzIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdH1cblx0fVxuXG5cdC51c3lkLWNvbnRhY3QtYWRkcmVzcyB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG59XG5cbkBpbmNsdWRlIG1lZGlhLWxhcmdlLXVwIHtcblx0LnVzeWQtY29udGFjdC51c3lkLWNvbXBhY3Qge1xuXHRcdC51c3lkLWNvbnRhY3QtZGV0YWlsIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdFx0XHQmOm50aC1vZi10eXBlKGV2ZW4pIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIENvbnRhY3QgY2FyZHMgYXJlIHByZXNlbnRlZCBhIGJpdCBsaWtlIGJ1c2luZXNzIGNhcmRzIG9uIGxhcmdlciBzY3JlZW5zXG5cdC51c3lkLWNhcmQge1xuXHRcdC51c3lkLWNvbnRhY3QtZGV0YWlsIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdH1cblxuXHRcdC51c3lkLWNvbnRhY3Qtc3VidGl0bGUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxMHB4O1xuXHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0XHRtYXgtd2lkdGg6IDUwJTtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cblxuXHRcdC51c3lkLWNvbnRhY3QtbG9jYXRpb24ge1xuXHRcdFx0LnVzeWQtaXRlbS1sYWJlbCB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC51c3lkLWNvbnRhY3QtdXJsIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJvdHRvbTogMTBweDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRyaWdodDogMTBweDtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXG5cdFx0XHQudXN5ZC1jb250YWN0LW5hbWUge1xuXHRcdFx0XHRAaW5jbHVkZSBoaWRlLWZyb20tZXllcztcblx0XHRcdH1cblxuXHRcdFx0LnVzeWQtY29udGFjdC1kZXRhaWwge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtc21hbGwtZG93biB7XG5cdC51c3lkLWNvbnRhY3Qge1xuXHRcdC51c3lkLWFwcC1waG9uZWJvb2stdG9vbGJveCB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0fVxuXG5cdFx0LnVzeWQtY29udGFjdC11cmwge1xuXHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG4iLCIvLyBQcmV2ZW50IGxvbmcgdXJscyBhbmQgdGV4dCBmcm9tIGJyZWFraW5nIGxheW91dHNcbi8vIFtvcmlnaW5hbGx5IGZyb20gcGVyaXNoYWJsZXByZXNzLmNvbV0oaHR0cDovL3BlcmlzaGFibGVwcmVzcy5jb20vcHJlc3MvMjAxMC8wNi8wMS93cmFwcGluZy1jb250ZW50LylcbkBtaXhpbiBmb3JjZS13cmFwIHtcbiAgd2hpdGUtc3BhY2U6IHByZTsgICAgICAgICAgIC8vIENTUyAyLjBcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOyAgICAgIC8vIENTUyAyLjFcbiAgd2hpdGUtc3BhY2U6IHByZS1saW5lOyAgICAgIC8vIENTUyAzLjBcbiAgd2hpdGUtc3BhY2U6IC1wcmUtd3JhcDsgICAgIC8vIE9wZXJhIDQtNlxuICB3aGl0ZS1zcGFjZTogLW8tcHJlLXdyYXA7ICAgLy8gT3BlcmEgN1xuICB3aGl0ZS1zcGFjZTogLW1vei1wcmUtd3JhcDsgLy8gTW96aWxsYVxuICB3aGl0ZS1zcGFjZTogLWhwLXByZS13cmFwOyAgLy8gSFAgUHJpbnRlcnNcbiAgd29yZC13cmFwOiBicmVhay13b3JkOyAgICAgIC8vIElFIDUrXG59XG4iLCIvKmNhbGwgdG8gYWN0aW9uIG1vZHVsZSovXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3ZhcmlhYmxlc1wiO1xuXG4kY3RhLXByaW1hcnktYmctY29sb3VyOiAkYnJhbmQtcHJpbWFyeTtcbiRjdGEtcHJpbWFyeS1ob3Zlci1iZy1jb2xvdXI6IGRhcmtlbigkY3RhLXByaW1hcnktYmctY29sb3VyLCA1JSk7XG4kY3RhLXNlY29uZGFyeS1iZy1jb2xvdXI6ICRiZy1kYXJrLWNvbG91cjtcbiRjdGEtc2Vjb25kYXJ5LWhvdmVyLWJnLWNvbG91cjogZGFya2VuKCRjdGEtc2Vjb25kYXJ5LWJnLWNvbG91ciwgNSUpO1xuXG4udXN5ZC1jdGEge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMTVweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGN0YS1wcmltYXJ5LWJnLWNvbG91cjtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRjbGVhcjogYm90aDtcblx0Y29sb3I6IHdoaXRlO1xuXHQmOnZpc2l0ZWR7XG5cdFx0Y29sb3I6d2hpdGU7XG5cdH1cblx0LnVzeWQtdGl0bGUge1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdC51c3lkLXN0cmFwbGluZSB7XG5cdFx0bWFyZ2luOiAxNXB4IDAgMDtcblx0fVxuXG5cdCY6Zm9jdXMsICY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjdGEtcHJpbWFyeS1ob3Zlci1iZy1jb2xvdXI7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cblx0Ji5jaGFyY29hbCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGN0YS1zZWNvbmRhcnktYmctY29sb3VyO1xuXG5cdFx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY3RhLXNlY29uZGFyeS1ob3Zlci1iZy1jb2xvdXI7XG5cdFx0fVxuXHR9XG59XG4iLCIvKnB1bGwgcXVvdGUgbW9kdWxlKi9cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5cbi51c3lkLXB1bGwtcXVvdGUge1xuXHQmLnVzeWQtcXVvdGUtY2xpcCB7XG5cdFx0YmxvY2txdW90ZSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxufVxuIiwiLypjYWxsIHRvIGFjdGlvbiBtb2R1bGUqL1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcblxuJHRpbWVsaW5lLWNvbG91cjogIzQyNDI0Mjtcbi51c3lkLXRpbWVsaW5lc3tcblx0XHRib3JkZXItdG9wOiAycHggc29saWQgJGJyYW5kLXByaW1hcnk7XG5cdFx0bWFyZ2luLXRvcDoyMHB4O1xuXHRcdGgye1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDMwcHg7XG5cdFx0fVxuXHRcdC51c3lkLXNlZ21lbnQge1xuXHRcdFx0cGFkZGluZzoyMHB4IDBweDtcblx0XHRcdG1hcmdpbjowO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBibGFjaztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGNsZWFyOiBib3RoO1xuXHRcdFx0XHQudXN5ZC10aW1lbGluZS1oZWFkaW5ne1xuXHRcdFx0XHRcdGgzLnVzeWQtdGl0bGV7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHVsLnVzeWQtZGF0ZS1mb3JtYXQge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJHRpbWVsaW5lLWNvbG91cjtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0XHRcdFx0XHRib3JkZXI6MXB4IGRvdHRlZCB3aGl0ZTtcblx0XHRcdFx0XHRcdGJveC1zaGFkb3c6IDRweCA0cHggMXB4ICM4ODg7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRtYXJnaW46IDEwcHggMjBweCAyMHB4IDBweDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDE1cHg7XG5cdFx0XHRcdFx0XHRtaW4td2lkdGg6IDY1cHg7XG5cdFx0XHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0XHRcdC51c3lkLXVpLWRhdGV7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOndoaXRlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQudXN5ZC1tb250aCB7XG5cdFx0XHRcdFx0XHRcdC8vdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuXHRcdFx0XHRcdFx0XHQvLy13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHRcdFx0XHRcdFx0Ly8tbW96LXRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cdFx0XHRcdFx0XHRcdC8vLW8tdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHRcdFx0XHRcdFx0Ly8tbXMtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHRcdFx0XHRcdFx0Y29sb3I6ICR0aW1lbGluZS1jb2xvdXI7XG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRcdC51c3lkLXVpLWRhdGV7XG5cdFx0XHRcdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0LnVzeWQtZGF5IHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQudXN5ZC15ZWFyIHtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cblx0XHRcdFx0fVxuLy9zd2FnYXRvIGJoYXR0YVxuXG5cdFx0XHQudXN5ZC1pbWFnZSB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXG5cdFx0XHQudXN5ZC1zdW1tYXJ5IHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0XHRcdH1cblxuXHRcdFx0LnVzeWQtbGluayB7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdGNvbG9yOiAkbGluay1jb2xvdXI7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMjVweDtcblx0XHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQudXN5ZC1idG4tbW9yZSB7XG5cdFx0XHRhLCBhOmhvdmVyIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRjb2xvcjogJGxpbmstdmlzaXRlZC1jb2xvdXI7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRicmFuZC1wcmltYXJ5O1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQudXN5ZC1sZXNze1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC50aW1lbGluZU1vZHVsZSB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRtZWRpYS14c21hbGwtbWF4KSB7XG5cdFx0XHQudXN5ZC10aW1lbGluZS1zZWdtZW50IHtcblx0XHRcdFx0LnVzeWQtaW1hZ2Uge1xuXHRcdFx0XHRcdG1heC13aWR0aDogMzAwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LnVzeWQtdGltZWxpbmUtc2VnbWVudDpudGgtY2hpbGQoMm4rNykge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC51c3lkLXRpbWVsaW5lLm9wZW4ge1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteHNtYWxsLW1heCkge1xuXHRcdFx0LnVzeWQtdGltZWxpbmUtc2VnbWVudDpudGgtY2hpbGQoMm4rNykge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0LnVzeWQtbW9yZSB7XG5cdFx0XHRcdC5zZWVMZXNzIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5zZWVNb3JlIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblxuXHQudXN5ZC10aW1lbGluZSB7XG5cdFx0QG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbWFsbC1taW4pIHtcblx0XHRcdC51c3lkLXNlZ21lbnRzIHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0fVxuXG5cdFx0XHQudXN5ZC1zZWdtZW50czo6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogJyAnO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogMHB4O1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0d2lkdGg6IDFweDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG5cdFx0XHR9XG5cblx0XHRcdC51c3lkLXNlZ21lbnQge1xuXHRcdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMHB4O1xuXHRcdFx0XHQvL3BhZGRpbmctYm90dG9tOiAxNTBweDsgLy8gV2lsbCBzZXQgdGhlIG1pbmltdW0gZGlzdGFuY2UgdG8gbmV4dCB0aW1lbGluZSBzZWdtZW50IGlmIGFwcGVhcmluZyBpbiB0aGUgc2FtZSBjb2x1bW5cblx0XHRcdFx0Ym9yZGVyLWxlZnQ6IG5vbmU7XG5cblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRtaW4taGVpZ2h0OiAwO1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5yaWdodCB7XG5cdFx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0XHRcdHdpZHRoOjQ1JTtcblx0XHRcdFx0XHRwYWRkaW5nOjEwcHg7XG5cdFx0XHRcdFx0Ym9yZGVyOjFweCBzb2xpZCAkdGltZWxpbmUtY29sb3VyO1xuXHRcdFx0XHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0XHRcdC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblxuXHRcdFx0XHRcdC8vcGFkZGluZy1sZWZ0OiA1MHB4LzYwMHB4ICogMTAwJTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYubGVmdCB7XG5cdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdFx0d2lkdGg6NDUlO1xuXHRcdFx0XHRcdHBhZGRpbmc6MTBweDtcblx0XHRcdFx0XHRib3JkZXI6MXB4IHNvbGlkICM0MjQyNDI7XG5cdFx0XHRcdFx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRcdFx0LW1vei1ib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0XHRcdC8vcGFkZGluZy1yaWdodDogNTBweC82MDBweCAqIDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LnVzeWQtYnRuLW1vcmUge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcblxuLnVzeWQtcGFnZS1zdW1tYXJ5IHtcblx0cGFkZGluZy10b3A6IDVweDtcblx0ZGlzcGxheTogYmxvY2s7XG5cblx0cCB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGxpbmUtaGVpZ2h0OiAxNDAlO1xuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdH1cblx0fVxufVxuIiwiQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL3ZlbmRvci9ib290c3RyYXAtc2Fzcy0yLjAuMy92ZW5kb3IvYXNzZXRzL3N0eWxlc2hlZXRzL2Jvb3RzdHJhcC92YXJpYWJsZXNcIjtcblxuLnVzeWQtcHVibGlzaC1kYXRlIHtcblx0cGFkZGluZy10b3A6IDVweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG4iLCIudXN5ZC1kb2N1bWVudC1lbWJlZCB7XG5cdG1hcmdpbi1ib3R0b206MzBweDtcblx0Y2xlYXI6IGJvdGg7XG5cdC51c3lkLXRpdGxlIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHR9XG59XG4iLCJAaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vdmVuZG9yL2Jvb3RzdHJhcC1zYXNzLTIuMC4zL3ZlbmRvci9hc3NldHMvc3R5bGVzaGVldHMvYm9vdHN0cmFwL3ZhcmlhYmxlc1wiO1xuXG4udXN5ZC1uZXdzLWxpc3Rpbmcge1xuXHRtYXJnaW46IDAgMCAyMHB4IDA7XG4vL1x0cGFkZGluZy10b3A6IDMwcHg7XG5cblx0bGkge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRtYXJnaW4tYm90dG9tOiAzNXB4O1xuXG5cdFx0LnVzeWQtdWktbGluayB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRjb2xvcjogJGxpbmstY29sb3VyO1xuXG5cdFx0XHQudXN5ZC1saXN0aW5nLWhlYWRlciB7XG5cdFx0XHRcdG1hcmdpbjogMTVweCAwIDEwcHggMDtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG5cdFx0XHRcdCY6Zm9jdXMsICY6aG92ZXIge1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC51c3lkLXVpLWRhdGUge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdGNvbG9yOiBibGFjaztcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnVzeWQtZGVzY3JpcHRpb24ge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE4cHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0XHRcdHAge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0Ji51c3lkLW5ld3MtYXJ0aWNsZS1saXN0aW5nIHtcblx0XHQudXN5ZC1saXN0aW5nLWhlYWRlciB7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdH1cblx0fVxufVxuXG4udXN5ZC1mZWF0dXJlLWFzaWRlIHtcblx0LnVzeWQtbmV3cy1saXN0aW5nIHtcblx0XHRib3JkZXItdG9wOiAycHggc29saWQgJGJyYW5kLXByaW1hcnk7XG5cdH1cbn1cbiIsIkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi92ZW5kb3IvYm9vdHN0cmFwLXNhc3MtMi4wLjMvdmVuZG9yL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib290c3RyYXAvdmFyaWFibGVzXCI7XG5cbi51c3lkLW1hcHMge1xuXG5cdG1hcmdpbjogMjBweCAwO1xuXG5cdC51c3lkLW1hcCB7XG5cdFx0bWFyZ2luOjE1cHggMDtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAyOTVweDtcblx0fVxuXG5cdC51c3lkLWFkZHJlc3Mge1xuXHRcdGZvbnQtc2l6ZTogMS40ZW07XG5cdH1cblxuXHQudXN5ZC1hZGRyZXNzLWxvY2F0aW9uIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDFlbTtcblx0fVxuXG5cdC51c3lkLWRpcmVjdGlvbi1saW5rIHtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHR9XG5cbn1cblxuLnVzeWQtYXNpZGUge1xuXHQudXN5ZC1tYXAtZ29vZ2xlIHtcblx0XHQudXN5ZC1tYXAge1xuXHRcdFx0QG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbWFsbCkge1xuXHRcdFx0XHR3aWR0aDogMjgwcHg7XG5cdFx0XHRcdGhlaWdodDogMjgwcHg7XG5cdFx0XHR9XG5cdFx0XHRAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtYWxsLW1heCkge1xuXHRcdFx0XHR3aWR0aDogMjIwcHg7XG5cdFx0XHRcdGhlaWdodDogMjgwcHg7XG5cdFx0XHR9XG5cdFx0XHRAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtYWxsKSB7XG5cdFx0XHRcdHdpZHRoOiAxNzFweDtcblx0XHRcdFx0aGVpZ2h0OiAyODBweDtcblx0XHRcdH1cblx0XHRcdEBtZWRpYSAobWF4LXdpZHRoOiAkbWVkaWEteHNtYWxsLW1heCkge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiAyODBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ== */

@charset "UTF-8";
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0; }

/**
    Base
    Base is the fundamental style for the whole site.
    Classes defined fundamental elements such as text and title should be here.
*/
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Figure

Represents an illustration, usually accompanying a body of text. The figure can be positioned relative to the
text, occupy a certain amount of space and optionally have an accompanying caption. Includes percentage width
helpers for CMS-authored content.

Markup: demo.figure.html

Style guide: Blocks.Figure
*/
/*
Figure (Responsive image)

Represents figure with responsive image (Switching between 2 images desktop and vertical tablet/mobile).

Markup: demo.figure.responsive.html

Style guide: Blocks.Figure.responsive
*/
/*
Bleed image (auto-bleed)

Markup: demo.figure.bleed-style.auto.html

Style guide: Blocks.Bleed.Auto
*/
/*
Bleed image (bleed left/right)

.b-box--bleed-left - Box bleeds out to the left
.b-box--bleed-right - Box bleeds out to the right

Markup: demo.figure.bleed-style-lr.html

Style guide: Blocks.Bleed
*/
.b-figure {
  max-width: 100%;
  /**
    Figure (Position)

    left, right and centre

    .b-figure--pull-left - image floats on left side
    .b-figure--pull-right - image floats on right side
    .b-figure--centre - image in the centre

    Markup: demo.figure.responsive.html

    Style guide: Blocks.Figure.position
    */ }
  .b-figure--pull-right {
    float: right;
    margin-left: 30px; }
  .b-figure--pull-left {
    float: left;
    margin-right: 30px; }
  .b-figure--centre {
    float: none;
    margin: auto; }
  .b-figure--width-sm {
    width: 30%; }
  .b-figure--width-md {
    width: 52%; }
  .b-figure--width-lg {
    width: 70%; }
  .b-figure--full-width {
    padding-right: 0;
    padding-left: 0;
    width: 100%; }
  .b-figure__image {
    width: 100%;
    max-width: 100%; }
    .b-figure__image--ratio-7-8 {
      width: 100%;
      padding-bottom: 114.28571%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-16-5 {
      width: 100%;
      padding-bottom: 31.25%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-4-3 {
      width: 100%;
      padding-bottom: 75%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-2-1 {
      width: 100%;
      padding-bottom: 50%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-65-40 {
      width: 100%;
      padding-bottom: 61.53846%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--square {
      width: 100%;
      padding-bottom: 100%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-insights-portal-page .b-figure__image {
      margin: 0; }
  .b-figure__caption {
    margin-top: 15px;
    font-size: 14px;
    font-style: italic; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Icon

Generic icon with different types (e.g. "b-icon b-icon--search" ).

<legend>Svg to icon font</legend>

Create SVG/TTF/EOT/WOFF/WOFF2 icon-font and the scss file from SVG icons with Gulp build-iconfont task. See: https://www.npmjs.com/package/gulp-iconfont

<b>Add a new icon</b>
<ul>
    <li>Create the svg file for the icon and give the file a proper name, the file name is the css class name (e.g. down-arrow.svg, the css class for the icon is 'b-icon--down-arrow')
</li>
    <li>Add the svg file into the '/src/assets/img/icons/svg' folder</li>
    <li>Run the gulp task 'gulp build-iconfont' in a terminal, it adds the icon into the font files 'src/assets/fonts/icon-font.eot/ttf/woff/woff2', and re-generates the scss file 'src/components/icon/svg2iconfont.scss' via the template 'src/components/icon/template.txt'</li>
</ul>


<b>Update an icon</b>
<ul>
    <li>Update the svg file related to the icon in the '/src/assets/img/icons/svg' folder</li>
    <li>Run the gulp task 'gulp build-iconfont' in a terminal, it updates the font files 'src/assets/fonts/icon-font.eot/ttf/woff/woff2', and re-generates the scss file 'src/components/icon/svg2iconfont.scss' via the template 'src/components/icon/template.txt'</li>
</ul>

<b>Delete an icon</b>
<ul>
    <li>Remove the svg file related to the icon in the '/src/assets/img/icons/svg' folder</li>
    <li>Run the gulp task 'gulp build-iconfont' in a terminal, it updates the font files 'src/assets/fonts/icon-font.eot/ttf/woff/woff2', and re-generates the scss file 'src/components/icon/svg2iconfont.scss' via the template 'src/components/icon/template.txt'</li>
</ul>

Style guide: Base.Icon
*/
/*
Icon (icon font)

Generic icon with different types (e.g. "b-icon b-icon--search" ).

.b-icon--bullet - :
.b-icon--close - :
.b-icon--crest - :
.b-icon--down-arrow - :
.b-icon--down-chevron - :
.b-icon--download-icon - :
.b-icon--external-link - :
.b-icon--facebook - :
.b-icon--google-plus - :
.b-icon--instagram - :
.b-icon--left-arrow - :
.b-icon--left-chevron - :
.b-icon--link - :
.b-icon--logo - :
.b-icon--minus - :
.b-icon--plus - :
.b-icon--print - :
.b-icon--right-arrow - :
.b-icon--right-chevron - :
.b-icon--twitter - :
.b-icon--up-chevron - :
.b-icon--youtube - :


Markup: <i class="b-icon {{modifier_class}}"></i>

Style guide: Base.Icon.icon fonts
*/
@font-face {
  font-family: "icon-font";
  src: url("foundation/resources/intranet-components/assets/fonts/icon-font.eot");
  src: url("foundation/resources/intranet-components/assets/fonts/icon-font.eot?#iefix") format("eot"), url("foundation/resources/intranet-components/assets/fonts/icon-font.woff2") format("woff2"), url("foundation/resources/intranet-components/assets/fonts/icon-font.woff") format("woff"), url("foundation/resources/intranet-components/assets/fonts/icon-font.ttf") format("truetype"); }

.b-icon--bullet:before, .b-icon--close:before, .b-icon--crest:before, .b-icon--down-arrow:before, .b-icon--down-chevron:before, .b-icon--download-icon:before, .b-icon--external-link:before, .b-icon--facebook:before, .b-icon--google-plus:before, .b-icon--instagram:before, .b-icon--left-arrow:before, .b-icon--left-chevron:before, .b-icon--link:before, .b-icon--logo:before, .b-icon--minus:before, .b-icon--plus:before, .b-icon--print:before, .b-icon--right-arrow:before, .b-icon--right-chevron:before, .b-icon--twitter:before, .b-icon--up-chevron:before, .b-icon--youtube:before {
  text-transform: none;
  text-decoration: none;
  font-family: "icon-font";
  font-weight: normal;
  font-style: normal;
  font-variant: normal; }

.b-icon--bullet:before {
  content: ""; }

.b-icon--close:before {
  content: ""; }

.b-icon--crest:before {
  content: ""; }

.b-icon--down-arrow:before {
  content: ""; }

.b-icon--down-chevron:before {
  content: ""; }

.b-icon--download-icon:before {
  content: ""; }

.b-icon--external-link:before {
  content: ""; }

.b-icon--facebook:before {
  content: ""; }

.b-icon--google-plus:before {
  content: ""; }

.b-icon--instagram:before {
  content: ""; }

.b-icon--left-arrow:before {
  content: ""; }

.b-icon--left-chevron:before {
  content: ""; }

.b-icon--link:before {
  content: ""; }

.b-icon--logo:before {
  content: ""; }

.b-icon--minus:before {
  content: ""; }

.b-icon--plus:before {
  content: ""; }

.b-icon--print:before {
  content: ""; }

.b-icon--right-arrow:before {
  content: ""; }

.b-icon--right-chevron:before {
  content: ""; }

.b-icon--twitter:before {
  content: ""; }

.b-icon--up-chevron:before {
  content: ""; }

.b-icon--youtube:before {
  content: ""; }

.b-icon {
  /* -------------- variables --------------- */ }
  .b-icon--dark {
    color: black; }
  .b-icon--red {
    color: #e64626; }
  .b-icon--grey {
    color: #b2b2b2; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Link
Intranet link

.b-link--block - make the link display like a block element
.b-link--no-underline - remove underline to the link

Style guide: Base.Link
*/
.b-box--dark .b-link {
  color: #fff; }

.b-link--block {
  display: block; }

.b-link--inline-block {
  display: inline-block; }

.b-link--no-underline {
  text-decoration: none; }
  .b-link--no-underline:focus, .b-link--no-underline:hover {
    text-decoration: none; }

.b-link--dark {
  color: black; }

.b-box--red .b-link {
  color: #fff; }
  .b-box--red .b-link:visited {
    color: #fff; }

/*
Rule

Rules are dividing lines that can be applied to the top or bottom blocks of content.

.b-rule--dotted - 1px grey dotted border around the component
.b-rule--dotted-light-grey-top - 1px grey dotted border top
.b-rule--dotted-light-grey-bottom - 1px grey dotted border bottom
.b-rule--dotted-dark-grey-top - 1px dark dotted border top
.b-rule--dotted-dark-grey-bottom - 1px dark dotted border bottom
.b-rule--stroke-light-dark-top - 1px dark stroke border top
.b-rule--stroke-heavy-dark-top - 3px dark stroke border top
.b-rule--stroke-heavy-dark-bottom - 3px dark stroke border bottom

Markup: demo.rule.html

Style guide: Base.Rule
*/
.b-rule--dotted {
  border: 1px dotted #e8e8e8; }

.b-rule--dotted-light-grey-top {
  border-top: 1px dotted #e8e8e8; }

.b-rule--dotted-light-grey-bottom {
  border-bottom: 1px dotted #e8e8e8; }

.b-rule--dotted-dark-grey-top {
  border-top: 1px dotted #b2b2b2; }

.b-rule--dotted-dark-grey-bottom {
  border-bottom: 1px dotted #b2b2b2; }

.b-rule--stroke-light-dark-top {
  border-top: 1px solid #333; }

.b-rule--stroke-heavy-dark-top {
  border-top: 3px solid #333; }

.b-rule--stroke-heavy-dark-bottom {
  border-bottom: 3px solid #333; }

.b-rule--stroke-medium-red-top {
  border-top: 2px solid #e64626; }

.b-rule--stroke-medium-light-grey {
  border: 2px solid #f1f1f1; }

.b-rule--stroke-medium-link {
  border: 2px solid #12416C; }

/*
Rich content

Rich text style

Style guide: Base.Rich content
*/
.b-rich-content--accordion h4 {
  margin-top: 30px; }

.b-rich-content h1,
.b-rich-content h2,
.b-rich-content h3,
.b-rich-content h4,
.b-rich-content h5,
.b-rich-content h6 {
  margin-top: 25px; }

/*
Title

Titles are specialised headings or heading-like elements with a distinct visual style, intended specifically used as
the title of a page or component.

.b-title--h1 - Level 1 content heading (22px)
.b-title--h2 - Level 2 content heading (20px)
.b-title--h3 - Level 3 content heading (18px)
.b-title--h4 - Level 4 content heading (16px)
.b-title--first - Removes the leading (top) margin from the title
.b-title--red - Title using red brand colour

Markup: <p class="b-title {{modifier_class}}">This is a title</p>

Style guide: Base.Title
*/
.b-title {
  line-height: 1.2;
  font-weight: bold; }
  .b-title--first {
    margin-top: 0; }
  .b-title--h1 {
    font-size: 22px; }
  .b-title--h2 {
    font-size: 20px; }
  .b-title--h3 {
    font-size: 18px; }
  .b-title--h4 {
    font-size: 16px; }
  .b-insights-portal-page .b-news-clip__summary .b-title {
    margin: 0 0 5px;
    font-size: 14px; }

/*
Text

Generic text modifiers for setting things like colour.

.b-text--align-left - Left-aligns the text
.b-text--align-right - Right-aligns the text
.b-text--align-centre - Centre-aligns the text
.b-text--weight-normal - Normal weight text
.b-text--bold - Bold text
.b-text--colour-default - Makes text with page body default colour
.b-text--colour-light - Makes text a light colour, according to the theme (e.g. white)
.b-text--colour-dark - Makes text a dark colour, according to the theme (e.g. black)
.b-text--colour-red - Makes text a red colour, it is for the red colour text
.b-text--size-small - Makes the text smaller than the default size (12px)
.b-text--size-base - Makes the text default body size (14px)
.b-text--size-large - Makes the text large (18px)
.b-text--size-larger - Makes the text larger (20px)
.b-text--upper - Uppercase the text
.b-text--font-label - Apercu Mono font family
.b-text--style-italic - Font italic style
.b-text--not-clickable - make the text not clickable

Markup: demo.text.html

Style guide: Base.Text
*/
.b-text--align-left {
  text-align: left; }

.b-text--align-right {
  text-align: right; }

.b-text--align-centre {
  text-align: center; }

.b-text--normal-weight {
  font-weight: normal; }

.b-text--bold {
  font-weight: bold; }

.b-text--colour-light {
  color: #fff; }

.b-text--colour-dark {
  color: black; }

.b-text--colour-default {
  color: black; }

.b-text--colour-red {
  color: #ce3d20; }

.b-text--colour-grey {
  color: #8c8c8c; }

.b-text--size-base {
  font-size: 12px; }

.b-text--size-sm-large {
  font-size: 14px; }

.b-text--size-large {
  font-size: 16px; }

.b-text--size-larger {
  font-size: 18px; }

.b-text--upper {
  text-transform: uppercase; }

.b-text--underline {
  text-decoration: underline; }

.b-text--nowrap {
  white-space: nowrap; }

.b-text--style-italic {
  font-style: italic; }

.b-text--block {
  display: block; }

.b-text--not-clickable {
  pointer-events: none; }

/*
Hidden

Responsive view hidden modifiers, the src/components/constants.js have hidden modifiers

.b-hidden--sm-desk-up - Hide the component on small desktop up screen
.b-hidden--sm-desk-down - Hide the component on small desktop down screen
.b-hidden--tablet-up - Hide the component on tablet up screen
.b-hidden--tablet-down - Hide the component on tablet down screen
.b-hidden--mobile-landscape-up - Hide the component on mobile landscape up screen
.b-hidden--mobile-landscape-down - Hide the component on mobile landscape down screen

Style guide: Base.Hidden
*/
.b-hidden--fixed {
  display: none !important;
  visibility: hidden !important; }

.b-hidden--opacity {
  opacity: 0 !important; }

.b-hidden--height {
  opacity: 0;
  height: 0;
  overflow: hidden;
  /*
        Hidden flash

        Component FLASH handler modifiers

        .b-hidden--opacity - Keep the component position and size, set the opacity to 0, normally use it to refresh the component content. (e.g. synchronise the content of the left vertical navigation with the mobile navigation)
        .b-hidden--height - Keep the component width, but set the height to 0, normally use it for shifting component states, (e.g. from one column to three columns)


        Style guide: Base.Hidden.flash
        */ }

.b-hidden--sm-desk-up {
  visibility: visible; }
  @media (min-width: 980px) {
    .b-hidden--sm-desk-up {
      display: none !important;
      visibility: hidden !important; } }

.b-hidden--sm-desk-down {
  visibility: visible; }
  @media (max-width: 979px) {
    .b-hidden--sm-desk-down {
      display: none !important;
      visibility: hidden !important; } }

.b-hidden--tablet-up {
  visibility: visible; }
  @media (min-width: 768px) {
    .b-hidden--tablet-up {
      display: none !important;
      visibility: hidden !important; } }

.b-hidden--tablet-down {
  visibility: visible; }
  @media (max-width: 767px) {
    .b-hidden--tablet-down {
      display: none !important;
      visibility: hidden !important; } }

@media (min-width: 480px) {
  .b-hidden--mobile-landscape-up {
    display: none !important;
    visibility: hidden !important; } }

@media (max-width: 479px) {
  .b-hidden--mobile-landscape-down {
    display: none !important;
    visibility: hidden !important; } }

/*
    Blocks
*/
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Box

Generic box container, supporting various colours and bleed effects where the box outline extends outside of their
normal boundaries as part of the "breaking the grid" visual theme.

.b-box--dark - dark box

Markup: demo.box.colour.html

Style guide: Blocks.Box
*/
.b-box {
  display: block;
  padding: 20px;
  /*
    Box (colour)

    .b-box--dark - dark box

    Markup: demo.box.colour.html

    Style guide: Blocks.Box
    */
  /*
    Box (background image)

    It sets the background image to a container, by default the image is in the center and scale to fit the container.

    Four modifiers are provided to change the background image positions:

    .b-box--bg-crop-top - crop image top
    .b-box--bg-crop-bottom - crop image bottom
    .b-box--bg-crop-left - crop image left
    .b-box--bg-crop-right - crop image right

    Markup: demo.box.background.html

    Style guide: Blocks.Box.Background cover
    */
  /*
    Box (padding control)

    .b-box--no-padding - removes padding
    .b-box--no-padding-top - removes padding top
    .b-box--no-padding-right - removes padding right
    .b-box--no-padding-bottom - removes padding bottom
    .b-box--no-padding-left - removes padding left

    .b-box--padding-top - add padding top
    .b-box--padding-right - add padding right
    .b-box--padding-bottom - add padding bottom
    .b-box--padding-left - add padding left

    .b-box--compressed - uses compressed padding (half of default
    .b-box--compressed-top - uses compressed padding on top
    .b-box--compressed-right - uses compressed padding on right
    .b-box--compressed-bottom - uses compressed padding on bottom
    .b-box--compressed-left - uses compressed padding on left
    .b-box--compressed-sides-only - uses compressed padding on left and right only
    .b-box--compressed-top-bottom-only - uses compressed padding on top and bottom only

    .b-box--paragraph-bottom - set bottom space for the paragraph <p> bottom

    Markup: <div class="b-box b-box--grey modifier_class"><p>Box component</p></div>

    Style guide: Blocks.Box padding control
    */
  /*
    Box (bleed left/right)

    .b-box--bleed-left - Box bleeds out to the left
    .b-box--bleed-right - Box bleeds out to the right

    Markup: demo.box.bleed-lr.html

    Style guide: Blocks.box bleed
    */
  /*
    Box (auto-bleed)

    .b-box--bleed - Box bleeds automatically to the left and/or right, depending on it's container

    Markup: demo.box.auto-bleed.html

    Style guide: Blocks.box auto-bleed
    */
  /*
    Box (clear-floats)

    .b-box--clear-floats

    Markup: coming soon!

    Style guide: Blocks.box clear-floats
    */ }
  .b-box--dark {
    background-color: #333;
    color: #fff; }
  .b-box--light-grey {
    background-color: #f1f1f1;
    color: black; }
  .b-box--red {
    background-color: #e64626; }
  .b-box--light {
    background-color: #fff;
    color: black; }
  .b-box--bg-cover {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover; }
  .b-box--bg-crop-top {
    background-position-y: 100%; }
  .b-box--bg-crop-bottom {
    background-position-y: 0; }
  .b-box--bg-crop-left {
    background-position-x: 100%; }
  .b-box--bg-crop-right {
    background-position-x: 0; }
  .b-box--no-padding {
    padding: 0; }
    .b-box--no-padding-top {
      padding-top: 0; }
    .b-box--no-padding-right {
      padding-right: 0; }
    .b-box--no-padding-bottom {
      padding-bottom: 0; }
    .b-box--no-padding-left {
      padding-left: 0; }
  .b-box--padding-top {
    padding-top: 20px; }
  .b-box--padding-right {
    padding-right: 20px; }
  .b-box--padding-bottom {
    padding-bottom: 20px; }
  .b-box--padding-left {
    padding-left: 20px; }
  .b-box--padding-ms-left {
    padding-left: 14px; }
  .b-box--compressed {
    padding: 10px; }
    .b-box--compressed-top {
      padding-top: 10px; }
    .b-box--compressed-right {
      padding-right: 10px; }
    .b-box--compressed-bottom {
      padding-bottom: 10px; }
    .b-box--compressed-left {
      padding-left: 10px; }
    .b-box--compressed-sides-only {
      padding: 20px 10px; }
    .b-box--compressed-top-bottom-only {
      padding: 10px 20px; }
  .b-box--paragraph-bottom {
    padding-bottom: 10px; }
  .b-box--bleed-left, .usyd-inline-wrap .b-box--bleed, .b-news-clip--hero .b-box--bleed {
    margin-left: 0;
    padding-left: 0; }
    @media (min-width: 1300px) {
      .b-box--bleed-left, .usyd-inline-wrap .b-box--bleed, .b-news-clip--hero .b-box--bleed {
        margin-left: -70px;
        padding-left: 70px; } }
    .b-section__container .b-box--bleed-left, .b-section__container .usyd-inline-wrap .b-box--bleed, .usyd-inline-wrap .b-section__container .b-box--bleed, .b-section__container .b-news-clip--hero .b-box--bleed, .b-news-clip--hero .b-section__container .b-box--bleed {
      padding-left: 0; }
      @media (min-width: 768px) {
        .b-section__container .b-box--bleed-left, .b-section__container .usyd-inline-wrap .b-box--bleed, .usyd-inline-wrap .b-section__container .b-box--bleed, .b-section__container .b-news-clip--hero .b-box--bleed, .b-news-clip--hero .b-section__container .b-box--bleed {
          margin-left: -20px; } }
  .b-box--bleed-right, .usyd-aside-content .b-box--bleed {
    margin-right: 0;
    padding-right: 0; }
    @media (min-width: 1300px) {
      .b-box--bleed-right, .usyd-aside-content .b-box--bleed {
        margin-right: -70px;
        padding-right: 70px; } }
    .b-section__container .b-box--bleed-right, .b-section__container .usyd-aside-content .b-box--bleed, .usyd-aside-content .b-section__container .b-box--bleed {
      padding-right: 0; }
      @media (min-width: 768px) {
        .b-section__container .b-box--bleed-right, .b-section__container .usyd-aside-content .b-box--bleed, .usyd-aside-content .b-section__container .b-box--bleed {
          margin-right: -20px; } }
  .b-insights-portal-page .b-box--bleed :not(.b-figure__image) {
    margin-right: -20px;
    margin-left: -20px; }
  .b-box--clear-floats:after {
    display: block;
    clear: both;
    content: ""; }
  .b-box--red-top {
    border-top: 2px solid #e64626;
    padding-top: 18px; }
  .b-box--default-top {
    padding-top: 20px; }
  .b-box--stroke-light-grey {
    border: 2px solid #f1f1f1; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Button

Generic button (e.g. "b-button"). Default .b-button background color or border color.

.b-button--primary - A button with primary background color and 1px border.
.b-button--secondary - A button with white background and 1px border red.
.b-button--disabled - A disabled button

Markup: demo.button.html

Style guide: Blocks.Button
*/
.b-button {
  /* To control button border styles. */
  /* To set default opacity for disabled buttons. */
  /* To build padding for buttons. */
  border: 1px solid transparent;
  border-radius: 0;
  background-color: transparent;
  cursor: pointer;
  padding: 7px 15px;
  text-transform: uppercase;
  line-height: 16px;
  font-size: 12px;
  font-weight: normal; }
  .b-button--primary {
    border-color: #e64626;
    background-color: #e64626;
    cursor: pointer;
    color: #fff; }
  .b-button--no-border {
    border-width: 0; }
  .b-button--full-width {
    /* need to find a better way to override the default CSS reset without using !important */
    width: 100% !important; }
    @media (min-width: 980px) {
      .b-button--full-width {
        width: auto !important; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Figure

Represents an illustration, usually accompanying a body of text. The figure can be positioned relative to the
text, occupy a certain amount of space and optionally have an accompanying caption. Includes percentage width
helpers for CMS-authored content.

Markup: demo.figure.html

Style guide: Blocks.Figure
*/
/*
Figure (Responsive image)

Represents figure with responsive image (Switching between 2 images desktop and vertical tablet/mobile).

Markup: demo.figure.responsive.html

Style guide: Blocks.Figure.responsive
*/
/*
Bleed image (auto-bleed)

Markup: demo.figure.bleed-style.auto.html

Style guide: Blocks.Bleed.Auto
*/
/*
Bleed image (bleed left/right)

.b-box--bleed-left - Box bleeds out to the left
.b-box--bleed-right - Box bleeds out to the right

Markup: demo.figure.bleed-style-lr.html

Style guide: Blocks.Bleed
*/
.b-figure {
  max-width: 100%;
  /**
    Figure (Position)

    left, right and centre

    .b-figure--pull-left - image floats on left side
    .b-figure--pull-right - image floats on right side
    .b-figure--centre - image in the centre

    Markup: demo.figure.responsive.html

    Style guide: Blocks.Figure.position
    */ }
  .b-figure--pull-right {
    float: right;
    margin-left: 30px; }
  .b-figure--pull-left {
    float: left;
    margin-right: 30px; }
  .b-figure--centre {
    float: none;
    margin: auto; }
  .b-figure--width-sm {
    width: 30%; }
  .b-figure--width-md {
    width: 52%; }
  .b-figure--width-lg {
    width: 70%; }
  .b-figure--full-width {
    padding-right: 0;
    padding-left: 0;
    width: 100%; }
  .b-figure__image {
    width: 100%;
    max-width: 100%; }
    .b-figure__image--ratio-7-8 {
      width: 100%;
      padding-bottom: 114.28571%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-16-5 {
      width: 100%;
      padding-bottom: 31.25%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-4-3 {
      width: 100%;
      padding-bottom: 75%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-2-1 {
      width: 100%;
      padding-bottom: 50%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--ratio-65-40 {
      width: 100%;
      padding-bottom: 61.53846%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-figure__image--square {
      width: 100%;
      padding-bottom: 100%;
      padding-top: 0;
      height: 0;
      display: block; }
    .b-insights-portal-page .b-figure__image {
      margin: 0; }
  .b-figure__caption {
    margin-top: 15px;
    font-size: 14px;
    font-style: italic; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/**
Position

Generic positioning for container blocks and child elements.

.b-position--top-level: set the top level position

Style guide: Blocks.Position
*/
.b-position__container {
  /**
        Position (Vertical)

        Vertical position control. By default content is sitting in the middle of the container.

        Style guide: Blocks.Position.vertical
        */ }
  .b-position__container--vertical {
    display: table;
    width: 100%;
    height: 100%; }
    .b-position__container--vertical .b-position__content {
      display: table-cell;
      vertical-align: middle; }

.b-position__content--top {
  vertical-align: top; }

.b-position__content--bottom {
  vertical-align: bottom; }

.b-position--top-level {
  position: relative;
  z-index: 9999; }

/*
See more button

Displays a see more button

Markup: demo.see-more-button.html

Style guide: Blocks.See more button

*/
.b-see-more-button {
  margin-left: 8px;
  vertical-align: middle;
  white-space: nowrap;
  color: #e64626; }
  .b-see-more-button__icon {
    color: #e64626; }
  .b-see-more-button:hover {
    text-decoration: none; }
  .b-see-more-button__bottom--padding {
    padding-bottom: 8px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Form control

TODO: add description

Markup:

Style guide: Blocks.Form control
*/
.b-form-control {
  /**
    * ----------------- variables -----------------
    */
  margin-bottom: 25px;
  /**
    * -----------------  elements  -----------------
    */
  /*
    Form control (label and input-groups inline)

    This is to demonstrate a possible form control style and a way of using the wrapper element.

    Markup:

    Style guide: Blocks.Form control.Wrapper
    */ }
  .b-form-control--no-spacing {
    margin-bottom: 0; }
  .b-form-control--inline {
    display: inline-block;
    vertical-align: top; }
  .b-form-control__wrapper {
    vertical-align: top;
    font-size: 0;
    box-sizing: border-box; }
    .b-form-control__wrapper > * {
      box-sizing: border-box; }
    .b-form-control__wrapper--inline {
      display: inline-block; }
  .b-form-control__label {
    display: block;
    margin-bottom: 10px;
    line-height: 1;
    font-size: 14px;
    font-weight: bold; }
  .b-form-control__input-text {
    display: inline-block;
    border: 1px solid #8c8c8c !important;
    padding: 7px 15px !important;
    height: auto !important;
    line-height: 16px;
    font-size: 12px; }
    .b-top-bar .b-form-control__input-text {
      margin-right: 3px;
      width: calc(100% - 30px) !important; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Form

Note: The form font size for the input element is 14px, to keep it the same as the base font size. General rules: margin between each of the form elements is 20px, the form padding is 25px around 4 sides.

Markup: TODO: need to add

Style guide: Components.Form
*/
/*
Checkbox

General checkbox button, text is grey color by default and is white in the dark form.

Markup: demo.checkbox.base.html

Style guide: Blocks.Checkbox
*/
.b-checkbox {
  /**
    * variables
    */
  cursor: pointer;
  /**
    *  ------------------- elements ---------------------
    */
  /**
    * form dark theme
    */ }
  .b-checkbox__text {
    display: block;
    position: relative;
    padding-left: 34px;
    font-size: 12px; }
    .b-checkbox__text::before {
      display: block;
      position: absolute;
      top: 1px;
      right: 1px;
      bottom: 1px;
      left: 1px;
      background: url("foundation/resources/intranet-components/assets/img/forms/checkboxes.png") 0 0 no-repeat;
      width: 20px;
      height: 20px;
      line-height: 20px;
      content: " "; }
  .b-checkbox__control {
    position: absolute;
    opacity: 0;
    z-index: -1;
    margin: 0; }
    .b-checkbox__control:checked + .b-checkbox__text::before {
      outline: 5px auto -webkit-focus-ring-color;
      outline-offset: -2px;
      background-position: 0 -20px; }
    .b-checkbox__control:-moz-focusring + .b-checkbox__text {
      outline: thin dotted;
      outline-offset: -2px; }
    .b-checkbox__control:hover + .b-checkbox__text,
    .b-checkbox__control:focus + .b-checkbox__text {
      outline: 5px auto -webkit-focus-ring-color; }
  .b-checkbox:hover, .b-checkbox:focus {
    outline: 5px auto -webkit-focus-ring-color;
    outline-offset: -2px; }
  .b-form--dark .b-checkbox__text {
    color: white; }

/*
Dropdown

It will bind the jquery selectmenu on the component initial step.

Currently it depends on the b-input-group selector to control the select button width on screen size changes including the mobile orientation change, as the javascript will use b-input-group as the selector key to get the width for dropdown select button calculation, which means the component should be wrapped by the "b-input-group" selector.

Example "http://localhost:9000/form.html"

Jquery-ui selectmenu api: https://jqueryui.com/selectmenu/

Markup: demo.dropdown.html

Style guide: Blocks.Dropdown

*/
.b-dropdown {
  /*
    * ----------------- Variables ( in this block scope ) --------
    */
  position: relative;
  width: 100%;
  font-size: 12px; }
  .b-dropdown__select {
    opacity: 0;
    width: 100%;
    min-height: 40px; }
  .b-dropdown__fake {
    display: block;
    padding: 5px 10px;
    width: 100%; }
  .b-form--dark .b-dropdown .ui-selectmenu-button.ui-widget .ui-selectmenu-text {
    color: white; }
  .b-dropdown--red {
    background-color: #e64626; }
    .b-dropdown--red:hover {
      background-color: #ce3d20; }
    .b-dropdown--red .b-icon--down-chevron,
    .b-form .b-dropdown--red .b-icon--down-chevron,
    .b-dropdown--red .ui-selectmenu-button.ui-widget .ui-selectmenu-text {
      color: white; }
  .b-dropdown--grey {
    background-color: #eaebed; }
    .b-dropdown--grey .ui-selectmenu-button.ui-widget .ui-selectmenu-text,
    .b-form--dark .b-dropdown--grey .ui-selectmenu-button.ui-widget .ui-selectmenu-text {
      color: black; }
    .b-dropdown--grey .b-icon--down-chevron,
    .b-form .b-dropdown--grey .b-icon--down-chevron {
      color: #e64626; }

/*
    Components
*/
/*
Accordion component
It overrides boostraps accordion classes

Markup: demo.accordion.html

Style guide: Components.Accordion
*/
.b-accordion .collapse.in {
  display: block;
  visibility: visible; }

.b-accordion .collapse {
  display: none;
  visibility: hidden; }

.b-accordion .collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  transition-timing-function: ease;
  transition-duration: .35s;
  transition-property: height, visibility; }

.b-accordion .panel {
  border: 1px solid transparent;
  overflow: hidden; }

.b-accordion__group {
  border-top: 1px solid #e8e8e8; }

.b-accordion__item {
  border-bottom: 1px solid #e8e8e8 !important;
  box-shadow: none; }

.b-accordion__link {
  display: block;
  position: relative;
  cursor: pointer;
  padding-right: 30px;
  color: black !important;
  font-size: 16px;
  font-weight: 700; }
  .b-accordion__link:hover, .b-accordion__link:focus, .b-accordion__link:active {
    color: black; }
  .b-accordion__link::before {
    display: block;
    position: absolute;
    top: 0;
    right: 10px;
    width: 12px;
    height: 24px;
    content: url('foundation/resources/intranet-components/assets/img/icons/svg/minus.svg'); }
  .b-accordion__link.collapsed::before {
    content: url('foundation/resources/intranet-components/assets/img/icons/svg/plus.svg'); }
  .b-accordion__link--normal-weight {
    font-weight: normal; }

.b-accordion__title {
  margin: 24px 0; }

.b-accordion__content {
  padding: 0 0 36px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Carousel

It is built with SwiperJs http://idangero.us/swiper@2.7.6 for IE 9 support

We can upgrade to 3.x.x version once we drop the IE 9 support.

API and configurations: https://github.com/nolimits4web/Swiper/blob/Swiper2/API.md

Demo is in content-page.html

Default it has autoplay and looping slides

Markup: demo.carousel.html

Style guide: Components.Carousel
*/
.b-carousel {
  position: relative; }
  .b-carousel__container {
    position: relative;
    width: 100%;
    height: 100%;
    box-sizing: border-box; }
  .b-carousel__slide-wrapper {
    height: 100%; }
  .b-carousel__slide {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    box-sizing: border-box; }
    .b-carousel__slide--thumb {
      padding-right: 4px;
      padding-left: 4px;
      width: 25%; }
  .b-carousel__button {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 20px;
    text-align: center;
    font-size: 20px;
    /*
        Carousel (button next)

        Markup: carousel-button-next.html

        Style guide: Components.Carousel.Button next
        */
    /*
        Carousel (button prev)

        Markup: carousel-button-prev.html

        Style guide: Components.Carousel.Button prev
        */ }
    .b-carousel__button--next {
      right: -20px;
      left: auto; }
    .b-carousel__button--prev {
      right: auto;
      left: -20px; }

/*
Fact list

A group of fact snippets, the base style

Markup: demo.fact-list.html

Style guide: Components.Fact list
*/
.b-fact-list {
  /*
    Fact

    The fact list item

    Markup: demo.fact.html

    Style guide: Components.Fact list.Fact
    */
  /*
    Fact list (3 rows)

    It displays in 3 rows

    Markup: demo.fact-list-3-rows.html

    Style guide: Components.Fact list.3 rows
    */
  /*
    Fact list (2 columns)

    It stays as the same in mobile, tablet and desktop

    <b>Modifiers</b>
    <p>for the component: b-fact-list--col b-grid-wrapper--col</p>
    <p>for the fact item: 1/2</p>

    Markup: demo.fact-list-2-columns.html

    Style guide: Components.Fact list.2 columns
    */
  /*
    Fact list (3 columns)

    It stays as the same in mobile, tablet and desktop

    <b>Modifiers</b>
    <p>for the component: b-fact-list--col b-grid-wrapper--col</p>
    <p>for the fact item: 1/3--tablet-up</p>

    Markup: demo.fact-list-3-columns.html

    Style guide: Components.Fact list.3 columns
    */
  /*
    Fact list (wrap)

    Wrap the fact list with the other content

    <b>Modifier</b>
    <p>Left:    b-figure--pull-left b-figure--width-md</p>
    <p>Right:   b-figure--pull-right b-figure--width-md</p>

    Markup: demo.fact-list-wrap.html

    Style guide: Components.Fact list.Wrap
    */ }
  .b-fact-list__list-container {
    margin-bottom: 15px; }
  .b-fact-list__item-holder {
    margin-bottom: 15px; }
  .b-fact-list__item {
    padding-bottom: 8px; }
  .b-fact-list--col .b-fact-list__list-container {
    display: table;
    margin-bottom: 30px;
    width: 100%;
    height: 100%; }
  .b-fact-list--col .b-fact-list__item-holder {
    display: table-cell;
    height: 100%; }
  .b-fact-list--col .b-fact-list__item {
    display: table;
    width: 100%;
    height: 100%;
    box-sizing: border-box; }
  @media (min-width: 768px) {
    .b-fact-list--col-tablet-up .b-fact-list__list-container {
      display: table;
      margin-bottom: 30px;
      width: 100%;
      height: 100%; }
    .b-fact-list--col-tablet-up .b-fact-list__item-holder {
      display: table-cell;
      height: 100%; }
    .b-fact-list--col-tablet-up .b-fact-list__item {
      display: table;
      width: 100%;
      height: 100%;
      box-sizing: border-box; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Hero story

Markup: demo.hero-story.html

Style guide: Components.Hero story
*/
.b-hero-story {
  position: relative;
  /*
    Hero story (dark)

    Dark style classes "b-hero-story--dark b-box--dark"

    Markup: demo.hero-story-dark.html

    Style guide: Components.Hero story.Dark
    */ }
  .b-hero-story__container {
    position: relative;
    box-sizing: border-box;
    /*
        Hero story (Text)

        The hero story text content

        Markup: text.html

        Style guide: Components.Hero story.Text
        */
    /*
        Hero story (Figure)

        The hero story figure part, below the small desktop, the image will be shown with 4:3 ratio

        Markup: figure.html

        Style guide: Components.Hero story.Figure
        */ }
    .b-hero-story__container--text {
      padding: 0 0 10px;
      vertical-align: top; }
    .b-hero-story__container--figure {
      height: 100%; }
  .b-hero-story__restriction {
    min-height: 200px; }
    .b-hero-story__restriction.b-hero-story-gallery {
      min-height: 220px; }
  .b-hero-story__figure {
    position: relative;
    width: 100%;
    height: 100%; }
  .b-hero-story__image {
    background: none; }
    @media (max-width: 979px) {
      .b-hero-story__image {
        width: 100%;
        padding-bottom: 75%;
        padding-top: 0;
        height: 0;
        display: block; } }
  @media (min-width: 980px) {
    .b-hero-story {
      display: table; }
      .b-hero-story__container {
        display: table-cell;
        position: relative;
        height: 100%; }
        .b-hero-story__container--text {
          padding: 0 20px 20px 0;
          width: 34.4%; }
        .b-hero-story__container--figure {
          width: 65.6%; } }
  .b-hero-story--dark .b-hero-story__container--text {
    padding: 20px; }
  @media (min-width: 980px) {
    .b-hero-story--dark .b-hero-story__container--text {
      vertical-align: bottom; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Hero story gallery

It has the class "b-js-hero-story-image-gallery" in the hero story component

Markup: demo.hero-story-gallery.html

Style guide: Components.Hero story gallery
*/
.b-hero-story-gallery {
  /*
    Hero story gallery (carousel)

    The hero story gallery carousel

    Markup: gallery.html

    Style guide: Components.Hero story gallery.Carousel
    */ }
  @media (min-width: 980px) {
    .b-hero-story-gallery {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0; } }
  .b-hero-story-gallery__carousel {
    height: 100%; }
  .b-hero-story-gallery__caption {
    position: absolute;
    bottom: 0;
    margin: 0;
    width: 100%;
    box-sizing: border-box; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Image gallery

It displays 4 thumbnails for tablet and desktop view points,
3 thumbnails for mobile view point.

The demo page is article-page.html

Markup: demo.image-gallery.html

Style guide: Components.Image gallery
*/
.b-image-gallery {
  position: relative;
  /*
    Image gallery (Top slide)

    Markup: top-slide.html

    Style guide: Components.Image gallery.Top slide
    */
  /*
    Image gallery (Thumbnail)

    Markup: carousel-slide.html

    Style guide: Components.Image gallery.Thumbnail
    */ }
  .b-image-gallery__top-figure {
    margin-bottom: 15px; }
  .b-image-gallery__top-image {
    border-bottom: 5px solid #fff;
    box-shadow: 0 3px 0 #333; }
  .b-image-gallery--has-nav-buttons {
    margin: auto;
    width: 90%; }
    .b-image-gallery--has-nav-buttons .b-image-gallery__button-next {
      right: -6%; }
    .b-image-gallery--has-nav-buttons .b-image-gallery__button-prev {
      left: -6%; }
    @media (min-width: 480px) {
      .b-image-gallery--has-nav-buttons {
        width: 90%; } }
    @media (min-width: 800px) {
      .b-image-gallery--has-nav-buttons {
        width: 100%; }
        .b-image-gallery--has-nav-buttons .b-image-gallery__button-next {
          right: -20px; }
        .b-image-gallery--has-nav-buttons .b-image-gallery__button-prev {
          left: -20px; } }
    .b-image-gallery--has-nav-buttons .b-image-gallery__thumb-slide {
      width: 33%; }
      @media (min-width: 768px) {
        .b-image-gallery--has-nav-buttons .b-image-gallery__thumb-slide {
          width: 25%; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
News clip

Markup: demo.news-clip.html

Style guide: Components.News clip
*/
.b-news-clip {
  /*
    News clip (Hero)

    The news clip hero component with the default image

    Markup: demo.news-clip-hero.html

    Style guide: Components.News clip.Hero
    */
  /*
    News clip (Hero gallery)

    Markup: demo.news-clip-gallery.html

    Style guide: Components.News clip.Hero gallery
    */ }
  .b-news-clip--hero__figure-holder {
    display: block;
    margin-bottom: 13px; }
  .b-insights-portal-page .b-news-clip__summary {
    background-color: #f1f1f1;
    padding: 10px;
    box-sizing: border-box; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Quote

Styles text as a block-quote automatically surrounds the text with quote marks.

Markup: demo.pull-quote.html

Style guide: Blocks.Quote
*/
.b-pull-quote {
  position: relative;
  padding: 20px 40px;
  line-height: 1.45; }
  .b-pull-quote__content {
    position: relative;
    font-size: 16px;
    font-style: italic; }
    .b-pull-quote__content:before {
      display: block;
      position: absolute;
      top: -10px;
      left: -20px;
      font-size: 30px;
      content: "\201C"; }
  .b-pull-quote__close-quote:after {
    display: inline-block;
    position: relative;
    top: 10px;
    left: 5px;
    line-height: 0;
    font-size: 30px;
    content: "\201D"; }
  .b-pull-quote__footer {
    font-size: 14px;
    font-weight: bold; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Text image

Markup: demo.text-image.html

Style guide: Components.Text image
*/
/**
Text image ( Caption )

Default the text image figure has 30px margin bottom.
If the text image figure has caption,
with the class "b-text-image__figure--with-caption",
the margin bottom will drop 50% to 15px

Style guide: Components.Text-image.caption
*/
/**
Text image (Wrap)

.b-text-image__figure-container--no-wrap - no wrapping text around the image

Markup: demo.text-image--wrap.html

Style guide: Components.Text-image.wrap
*/
/**
Text image (Size)

small, medium, large and full-width

.b-text-image__figure--small - 30% small image
.b-text-image__figure--medium - 52% medium image
.b-text-image__figure--large - 70% large image
.b-text-image__figure--full-width - 100% width image

Markup: demo.text-image--size.html

Style guide: Components.Text-image.size
*/
/**
Text image (Position)

left, right and centre

.b-figure--pull-left - image floats on left side
.b-figure--pull-right - image floats on right side
.b-figure--centre - image in the centre

Markup: demo.text-image--position.html

Style guide: Components.Text-image.position
*/
.b-text-image__figure-container {
  width: 100%; }
  .b-text-image__figure-container--no-wrap {
    overflow: auto; }

.b-text-image__figure {
  margin-bottom: 30px; }
  .b-text-image__figure--with-caption {
    margin-bottom: 15px; }
  @media (min-width: 480px) {
    .b-text-image__figure--small {
      width: 30%; } }
  @media (min-width: 480px) {
    .b-text-image__figure--medium {
      width: 52%; } }
  @media (min-width: 480px) {
    .b-text-image__figure--large {
      width: 70%; } }
  @media (min-width: 480px) {
    .b-text-image__figure--full-width {
      width: 100%; } }
  @media (min-width: 1300px) {
    .b-text-image__figure--full-width {
      padding-right: 0;
      padding-left: 0; } }

.b-text-image__text-container {
  margin-top: -0.8em; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Timeline

Timeline segments are in one column by default, but place in two columns
when the browser size is no smaller than tablet screen size (768px)

Markup: demo.timeline.html

Style guide: Components.Timeline
*/
.b-timeline {
  /*
    Timeline segment

    Markup: demo.segment.html

    Style guide: Components.Timeline.Segment
    */ }
  .b-timeline__date {
    position: relative; }
  .b-timeline__bullet {
    position: absolute;
    top: -5px;
    left: -25px;
    background-color: #fff;
    padding-top: 10px;
    width: 8px;
    height: 20px;
    font-size: 8px; }
  .b-timeline__segment {
    position: relative;
    border-left: 1px solid #333;
    padding-bottom: 30px;
    padding-left: 20px;
    box-sizing: border-box; }
    @media (min-width: 768px) {
      .b-timeline__segment {
        width: 50%; }
        .b-timeline__segment:nth-child(odd) {
          float: left;
          border-right: 1px solid #333;
          border-left: none;
          padding: 25% 20px 15px 0; }
          .b-timeline__segment:nth-child(odd) .b-timeline__bullet {
            right: -25px;
            left: auto; }
        .b-timeline__segment:nth-child(even) {
          float: right;
          border-left: none;
          padding: 25% 0 15px 20px; }
        .b-timeline__segment:first-child {
          padding-top: 0; } }
  @media (min-width: 480px) {
    .b-timeline__figure {
      width: 52%; } }
  @media (min-width: 768px) {
    .b-timeline__figure {
      width: 100%; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Top bar

Top bar component

Markup: demo.top-bar.html

Style guide: Components.Top bar
*/
/*
Uni Snapshot

Displays snapshot of University metrics

Markup: demo.uni-snapshot.html

Style guide: Components.Uni Snapshot

 */
@media (min-width: 768px) {
  .b-uni-snapshot {
    margin-left: 20px; } }

.b-uni-snapshot__tile {
  position: relative;
  padding-top: 70%;
  width: 100%;
  color: #fff; }
  @media (min-width: 480px) {
    .b-uni-snapshot__tile {
      padding-top: 80%; } }
  @media (min-width: 980px) {
    .b-uni-snapshot__tile {
      padding-top: 100%; } }
  .b-uni-snapshot__tile-content {
    position: absolute;
    top: 10px;
    right: 10px;
    bottom: 10px;
    left: 10px; }
  .b-uni-snapshot__tile-title {
    min-height: 32px; }
  .b-uni-snapshot__tile-figure {
    margin-bottom: 5px;
    font-size: 18px; }
  .b-uni-snapshot__tile-compare {
    position: relative;
    margin: 0 0 5px;
    padding-bottom: 10px;
    width: 50%; }
    @media (min-width: 980px) {
      .b-uni-snapshot__tile-compare {
        width: 55%; } }
    @media (min-width: 1300px) {
      .b-uni-snapshot__tile-compare {
        width: 60%; } }
    .b-uni-snapshot__tile-compare:after {
      position: absolute;
      bottom: 0;
      left: 0;
      background-color: #fff;
      width: 15px;
      height: 1px;
      content: ""; }
  .b-uni-snapshot__tile-updated {
    margin: 0; }

.b-uni-snapshot__icon--up, .b-uni-snapshot__icon--down {
  display: inline-block;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  width: 0;
  height: 0; }

.b-uni-snapshot__icon--up {
  border-bottom: 10px solid #fff; }

.b-uni-snapshot__icon--down {
  border-top: 10px solid #fff; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Notification bar

Displays latest notification and link to to notifications page

Markup: demo.notification-bar.html

Style guide: Components.Notification bar

*/
.b-notification-bar {
  padding-top: 28px; }
  @media (min-width: 768px) {
    .b-notification-bar {
      margin-left: 15px; } }
  @media (min-width: 980px) {
    .b-notification-bar {
      margin-left: 20px; } }
  .b-notification-bar__badge {
    text-transform: uppercase;
    color: #e64626;
    font-weight: bold; }
  .b-notification-bar__text {
    margin: 0; }
    @media (max-width: 767px) {
      .b-notification-bar__text.b-text--size-large {
        margin-bottom: 15px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Content Group

Layout component with various options. Has parsys to drop components within.

Markup: demo.content-group.html

Style guide: Components.Content group
*/
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Rich text editor

Rich text editor wrapper

Markup: demo.rich-text-editor.html

Style guide: Components.Rich text editor
 */
.b-insights-portal-page .b-news-clip__summary .b-rte p:last-child {
  margin: 0; }

.b-insights-portal-page .b-rte p {
  margin: 0 0 20px; }
  .b-insights-portal-page .b-rte p:last-child {
    margin: 0 0 30px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Insights tools

Insights tools component

Markup: demo.insights-tools.html

Style guide: Components.Insights tools
*/
.b-insights-tools {
  box-sizing: border-box; }
  .b-insights-tools__tile {
    position: relative;
    padding-top: 100%;
    height: 0;
    box-sizing: border-box; }
    @media (min-width: 480px) {
      .b-insights-tools__tile {
        margin-left: 10px;
        padding-top: calc(80% - 10px - 4px); } }
    @media (min-width: 768px) {
      .b-insights-tools__tile {
        margin-left: 15px;
        padding-top: calc(100% - 15px - 4px); } }
    @media (min-width: 980px) {
      .b-insights-tools__tile {
        margin-left: 20px;
        padding-top: calc(100% - 20px - 4px); } }
  .b-insights-tools__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
  .b-insights-tools__title {
    margin: 20px 0 0;
    min-height: 42px;
    font-size: 16px; }
    @media (min-width: 480px) {
      .b-insights-tools__title {
        font-size: 18px; } }
  .b-insights-tools__icon {
    font-size: 48px; }
  @media (min-width: 980px) {
    .usyd-large .b-insights-tools {
      width: 33.33333%; } }
  @media (min-width: 1300px) {
    .usyd-large .b-insights-tools {
      width: 25%; } }
  @media (min-width: 768px) {
    .usyd-xlarge .b-insights-tools {
      width: 33.33333%; } }
  @media (min-width: 980px) {
    .usyd-xlarge .b-insights-tools {
      width: 25%; } }
  @media (min-width: 1300px) {
    .usyd-xlarge .b-insights-tools {
      width: 20%; } }
  @media (min-width: 768px) {
    .b-insights-portal-page .b-zone--2 .usyd-xlarge .b-insights-tools {
      width: 50%; } }
  @media (min-width: 980px) {
    .b-insights-portal-page .b-zone--2 .usyd-xlarge .b-insights-tools {
      width: 33.33333%; } }
  @media (min-width: 1300px) {
    .b-insights-portal-page .b-zone--2 .usyd-xlarge .b-insights-tools {
      width: 25%; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
New data sets

Markup: demo.new-data-sets.html

Style guide: Components.New data sets
*/
.b-new-data-sets {
  float: left;
  margin-bottom: 20px;
  width: 100%; }
  @media (min-width: 480px) {
    .b-new-data-sets {
      margin-left: 20px;
      width: calc(50% - 20px); } }
  @media (min-width: 980px) {
    .b-new-data-sets {
      width: calc(25% - 20px); } }
  .b-new-data-sets__completion-rates {
    position: relative;
    margin-top: 20px;
    padding-left: 20px; }
  .b-new-data-sets__icon {
    position: absolute;
    top: 1px;
    left: 0; }

/*
Yammer embed

Yammer embed widget component

Markup: demo.yammer-embed.html

Style guide: Components.Yammer embed
*/
@media (min-width: 768px) {
  .b-yammer {
    float: left;
    width: 100%; } }

.b-yammer__link:nth-child(2) {
  margin-left: 20px; }

.b-yammer__embed-area {
  position: relative;
  background-color: #f1f1f1;
  padding-bottom: 100%;
  height: 0; }
  .b-yammer__embed-area iframe {
    position: absolute;
    top: 0;
    left: 0;
    border: 0;
    width: 100%;
    height: 100%; }

/*
Insights Dashboard

Displays available dashboards to the user

Markup: demo.insights-dashboarf.html

Style guide: Components.Insights dashboard

 */
@media (min-width: 768px) {
  .b-insights-dashboard {
    margin-left: 20px; } }

.b-insights-dashboard__component {
  display: none; }

@media (min-width: 768px) {
  .b-insights-dashboard__row {
    margin-left: -20px; } }

.b-insights-dashboard__row:after {
  display: block;
  clear: both;
  content: ""; }

.b-insights-dashboard__col {
  box-sizing: border-box; }
  @media (min-width: 768px) {
    .b-insights-dashboard__col {
      float: left;
      padding-left: 20px;
      width: 50%; } }

.b-insights-dashboard__content {
  width: 100%;
  box-sizing: border-box; }
  @media (min-width: 480px) {
    .b-insights-dashboard__content {
      margin-left: -20px;
      width: calc(100% + 20px); } }
  .b-insights-dashboard__content:after {
    display: block;
    clear: both;
    content: ""; }

.b-insights-dashboard__tile {
  display: block;
  margin-bottom: 20px;
  text-align: center;
  text-decoration: none;
  font-weight: bold;
  box-sizing: border-box; }
  @media (min-width: 480px) {
    .b-insights-dashboard__tile {
      float: left;
      margin-left: 20px;
      width: calc(50% - 20px); } }

.b-insights-dashboard__box {
  display: table;
  width: 100%;
  height: 72px;
  box-sizing: border-box; }
  .b-insights-dashboard__box-content {
    display: table-cell;
    vertical-align: middle; }

.b-insights-dashboard__title:after {
  display: block;
  clear: both;
  content: ""; }

.b-insights-dashboard__title-text {
  display: block; }
  @media (min-width: 768px) {
    .b-insights-dashboard__title-text {
      float: left; } }

.b-insights-dashboard__title-link {
  display: block;
  line-height: 24px;
  font-size: 12px;
  font-weight: normal; }
  @media (min-width: 768px) {
    .b-insights-dashboard__title-link {
      float: right; } }

/*
    Layouts
    Layout classes define the component and page layouts.
*/
/*
Component block

Applies vertical spacing between components, default has margin bottom space for the gap.

.b-component--rich-content      - Rich content component has smaller margin bottom space as the content line height takes 5px at the bottom
.b-component--margin-top-fix    - Add component margin top space
.b-component--margin-no-top     - Remove margin top space
.b-component--loose             - Increased spacing
.b-component--tight             - 50% of the module spacing (15px) normally is for sub components gap
.b-component--mid-tighter       - 20px module spacing
.b-component--tighter           - One third of the module spacing (10px)
.b-component--tightest          - No spacing
.b-component--tiny              - 5px margin bottom space
.b-component--double            - Double module spacing (60px)
.b-component--page-title-top    - Margin top space for component under the page title
.b-component--hidden            - Hide the component
.b-component--rm-float          - Remove float
.b-component--page-specify      - Empty class for page specify value

Markup:
<div style="background:lightpink;">
    <div class="b-component {{modifier_class}} b-box b-box--grey" style="height:100px;">My component</div>
    <p>Next component</p>
</div>

Style guide: Layout.Component
*/
.b-component {
  margin-bottom: 30px; }
  @media (max-width: 767px) {
    .b-component--mobile {
      margin-bottom: 30px; } }
  .b-component--rich-content {
    margin-bottom: 25px; }
  .b-component--margin-top-fix {
    margin-top: 30px; }
  .b-component--margin-no-top {
    margin-top: 0; }
  .b-component--loose {
    margin-bottom: 45px; }
  .b-component--tight {
    margin-bottom: 15px; }
  .b-component--mid-tighter {
    margin-bottom: 20px; }
  .b-component--tighter {
    margin-bottom: 10px; }
  .b-component--tightest {
    margin-bottom: 0; }
  .b-component--tiny {
    margin-bottom: 5px; }
  .b-component--double {
    margin-bottom: 60px; }
  .b-component--page-title-gap {
    margin-top: 12px; }
  .b-component--hidden {
    display: none;
    opacity: 0; }
  .b-component--rm-float {
    float: none; }
  .b-page--section .b-component--position-override {
    float: none; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Grid

It uses with grid http://colourgarden.net/avalanche/ to fix the container alignment issues
caused by the system default grid layout

.b-grid--col
.b-grid--col-tablet-up
.b-grid--col-mobile-up

Style guide: Layout.Grid
*/
.b-grid-wrapper--col {
  margin-right: -20px; }

@media (min-width: 768px) {
  .b-grid-wrapper--col-tablet-up {
    margin-right: -20px; } }

@media (min-width: 480px) {
  .b-grid-wrapper--col-mobile-up {
    margin-right: -20px; } }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/**
Page

General page layout

.b-page--section - section page

Style guide: Layout.Position
*/
.b-page__col--main h1:first-child {
  margin-top: 0;
  margin-bottom: 15px;
  line-height: 1.2; }

.b-page--section .b-component--page-specify {
  float: none; }

/**
*
* Style guide: Layout.Section
*/
.b-section__container {
  box-sizing: border-box; }
  @media (max-width: 767px) {
    .b-section__container {
      padding-right: 20px;
      padding-left: 20px;
      width: 100%; } }
  .b-section__container > * {
    box-sizing: border-box; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/**
Insights Portal page template

Specifice styles for the Insights portal page

Style guide: Layout.Page templates.Insights portal
*/
.b-insights-portal-page .b-zone--1 .new.section,
.b-insights-portal-page .b-zone--2 .new.section
.b-zone--4 .new.section {
  margin-left: 20px; }

/*
Calculating the desired width of a container whist keeping the ratio of width to height fixed. Useful for
calculating the size of containers designed to display images, with the image specified as a background.

This function has two modes:
1. Absolute mode ($baseWidth is specified in px, ems, rems) will calculate the correct height given the width and ratio specified and set fixed values
2. Relative mode ($baseWidth is a percentage) causes the container to scale the height in ratio when the width changes
*/
/**
 * Add a glphyicon to anything!
 */
/*
 * Give elements a nice browser focus appearance (ripped from BS)
 */
/*
 * Reset styles where ul and li elements are being used for semantic meaning, not display. Use sparingly, for compatibility
 * only and take note that this can unintentionally affect nested lists.
 */
/*
Float control

FIXME: this class is the hack of removing floating left, remove this class once we have a chance to refactor the layout of the Intranet

Style guide: Layout.Float hack
*/
.b-float-hack--no-float {
  float: none !important; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy9jb21wb25lbnRzLmNzcyIsInN0eWxlcy9jb21wb25lbnRzLnNjc3MiLCJzdHlsZXMvX21peGlucy5zY3NzIiwiY29tcG9uZW50cy9maWd1cmUvZmlndXJlLnNjc3MiLCJzdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiY29tcG9uZW50cy9pY29uL2ljb24uc2NzcyIsImNvbXBvbmVudHMvaWNvbi9zdmcyaWNvbmZvbnQuc2NzcyIsInN0eWxlcy9fY29sb3JzLnNjc3MiLCJjb21wb25lbnRzL2xpbmsvbGluay5zY3NzIiwiY29tcG9uZW50cy9ydWxlL3J1bGUuc2NzcyIsImNvbXBvbmVudHMvcmljaC1jb250ZW50L3JpY2gtY29udGVudC5zY3NzIiwiY29tcG9uZW50cy90aXRsZS90aXRsZS5zY3NzIiwiY29tcG9uZW50cy90ZXh0L3RleHQuc2NzcyIsImNvbXBvbmVudHMvaGlkZGVuL2hpZGRlbi5zY3NzIiwiY29tcG9uZW50cy9ib3gvYm94LnNjc3MiLCJjb21wb25lbnRzL2J1dHRvbi9idXR0b24uc2NzcyIsImNvbXBvbmVudHMvcG9zaXRpb24vcG9zaXRpb24uc2NzcyIsImNvbXBvbmVudHMvc2VlLW1vcmUtYnV0dG9uL3NlZS1tb3JlLWJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9mb3JtLWNvbnRyb2wvZm9ybS1jb250cm9sLnNjc3MiLCJjb21wb25lbnRzL2Zvcm0vZm9ybS5zY3NzIiwiY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5zY3NzIiwiY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5zY3NzIiwiY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLnNjc3MiLCJjb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLnNjc3MiLCJjb21wb25lbnRzL2ZhY3QtbGlzdC9mYWN0LWxpc3Quc2NzcyIsImNvbXBvbmVudHMvaGVyby1zdG9yeS9oZXJvLXN0b3J5LnNjc3MiLCJjb21wb25lbnRzL2hlcm8tc3RvcnkvaGVyby1zdG9yeS1nYWxsZXJ5LnNjc3MiLCJjb21wb25lbnRzL2ltYWdlLWdhbGxlcnkvaW1hZ2UtZ2FsbGVyeS5zY3NzIiwiY29tcG9uZW50cy9uZXdzLWNsaXAvbmV3cy1jbGlwLnNjc3MiLCJjb21wb25lbnRzL3B1bGwtcXVvdGUvcHVsbC1xdW90ZS5zY3NzIiwiY29tcG9uZW50cy90ZXh0LWltYWdlL3RleHQtaW1hZ2Uuc2NzcyIsImNvbXBvbmVudHMvdGltZWxpbmUvdGltZWxpbmUuc2NzcyIsImNvbXBvbmVudHMvdG9wLWJhci90b3AtYmFyLnNjc3MiLCJjb21wb25lbnRzL3VuaS1zbmFwc2hvdC91bmktc25hcHNob3Quc2NzcyIsImNvbXBvbmVudHMvbm90aWZpY2F0aW9uLWJhci9ub3RpZmljYXRpb24tYmFyLnNjc3MiLCJjb21wb25lbnRzL2NvbnRlbnQtZ3JvdXAvY29udGVudC1ncm91cC5zY3NzIiwiY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3JpY2gtdGV4dC1lZGl0b3Iuc2NzcyIsImNvbXBvbmVudHMvaW5zaWdodHMtdG9vbHMvaW5zaWdodHMtdG9vbHMuc2NzcyIsImNvbXBvbmVudHMvbmV3LWRhdGEtc2V0cy9uZXctZGF0YS1zZXRzLnNjc3MiLCJjb21wb25lbnRzL3lhbW1lci1lbWJlZC95YW1tZXItZW1iZWQuc2NzcyIsImNvbXBvbmVudHMvaW5zaWdodHMtZGFzaGJvYXJkL2luc2lnaHRzLWRhc2hib2FyZC5zY3NzIiwiY29tcG9uZW50cy9jb21wb25lbnQvY29tcG9uZW50LnNjc3MiLCJjb21wb25lbnRzL2dyaWQtd3JhcHBlci9ncmlkLXdyYXBwZXIuc2NzcyIsImNvbXBvbmVudHMvcGFnZS9wYWdlLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb24vc2VjdGlvbi5zY3NzIiwiY29tcG9uZW50cy9wYWdlLXRlbXBsYXRlcy9pbnNpZ2h0cy1wb3J0YWwuc2NzcyIsImNvbXBvbmVudHMvZmxvYXQtaGFjay9mbG9hdC1oYWNrLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEs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QVksRUFDZjs7QXZDb1VUOzs7Ozs7O0VBT0U7QUF3QkY7O0dBRUc7QUFnQkg7O0dBRUc7QUFNSDs7O0dBR0c7QXdDOWRIOzs7Ozs7Ozs7OztFQVdFO0FBRUY7RUFHUSxvQnRDK0JVLEVzQzlCYjs7QUFJRztFQVJSO0lBU1ksb0J0Q3lCTSxFc0N2QmIsRUFBQTs7QUFJRztFQWZSO0lBZ0JZLG9CdENrQk0sRXNDaEJiLEVBQUE7O0F4Q21ZTDs7Ozs7OztFQU9FO0FBd0JGOztHQUVHO0FBZ0JIOztHQUVHO0FBTUg7OztHQUdHO0F5QzlkSDs7Ozs7Ozs7RUFRRTtBQUNGO0VBZ0JnQixjQUFjO0VBQ2Qsb0JBQW9CO0VBQ3BCLGlCdkNpRE8sRXVDaERWOztBQW5CYjtFQTZCWSxZQUFZLEVBQ2Y7O0FDekNUOzs7RUFHRTtBQUNGO0VBR1EsdUJBQXVCLEVBVzFCO0VBVEc7SUFMUjtNQU1ZLG9CeEN1Q007TXdDdENOLG1CeENzQ007TXdDckNOLFlBQVksRUFNbkIsRUFBQTtFQWRMO0lBWVksdUJBQXVCLEVBQzFCOztBMUNtWlQ7Ozs7Ozs7RUFPRTtBQXdCRjs7R0FFRztBQWdCSDs7R0FFRztBQU1IOzs7R0FHRztBMkM5ZEg7Ozs7OztFQU1FO0FBRUY7OztFQU1RLGtCQUFrQixFQUNyQjs7QTNDbVpMOzs7Ozs7O0VBT0U7QUF3QkY7O0dBRUc7QUFnQkg7O0dBRUc7QUFNSDs7O0dBR0c7QTRDL2RIOzs7Ozs7RUFNRTtBQUdGO0VBR1EsdUJBQXVCLEVBQzFCIiwiZmlsZSI6InN0eWxlcy9jb21wb25lbnRzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7IH1cblxuLyoqXG4gICAgQmFzZVxuICAgIEJhc2UgaXMgdGhlIGZ1bmRhbWVudGFsIHN0eWxlIGZvciB0aGUgd2hvbGUgc2l0ZS5cbiAgICBDbGFzc2VzIGRlZmluZWQgZnVuZGFtZW50YWwgZWxlbWVudHMgc3VjaCBhcyB0ZXh0IGFuZCB0aXRsZSBzaG91bGQgYmUgaGVyZS5cbiovXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuRmlndXJlXG5cblJlcHJlc2VudHMgYW4gaWxsdXN0cmF0aW9uLCB1c3VhbGx5IGFjY29tcGFueWluZyBhIGJvZHkgb2YgdGV4dC4gVGhlIGZpZ3VyZSBjYW4gYmUgcG9zaXRpb25lZCByZWxhdGl2ZSB0byB0aGVcbnRleHQsIG9jY3VweSBhIGNlcnRhaW4gYW1vdW50IG9mIHNwYWNlIGFuZCBvcHRpb25hbGx5IGhhdmUgYW4gYWNjb21wYW55aW5nIGNhcHRpb24uIEluY2x1ZGVzIHBlcmNlbnRhZ2Ugd2lkdGhcbmhlbHBlcnMgZm9yIENNUy1hdXRob3JlZCBjb250ZW50LlxuXG5NYXJrdXA6IGRlbW8uZmlndXJlLmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJsb2Nrcy5GaWd1cmVcbiovXG4vKlxuRmlndXJlIChSZXNwb25zaXZlIGltYWdlKVxuXG5SZXByZXNlbnRzIGZpZ3VyZSB3aXRoIHJlc3BvbnNpdmUgaW1hZ2UgKFN3aXRjaGluZyBiZXR3ZWVuIDIgaW1hZ2VzIGRlc2t0b3AgYW5kIHZlcnRpY2FsIHRhYmxldC9tb2JpbGUpLlxuXG5NYXJrdXA6IGRlbW8uZmlndXJlLnJlc3BvbnNpdmUuaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkZpZ3VyZS5yZXNwb25zaXZlXG4qL1xuLypcbkJsZWVkIGltYWdlIChhdXRvLWJsZWVkKVxuXG5NYXJrdXA6IGRlbW8uZmlndXJlLmJsZWVkLXN0eWxlLmF1dG8uaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkJsZWVkLkF1dG9cbiovXG4vKlxuQmxlZWQgaW1hZ2UgKGJsZWVkIGxlZnQvcmlnaHQpXG5cbi5iLWJveC0tYmxlZWQtbGVmdCAtIEJveCBibGVlZHMgb3V0IHRvIHRoZSBsZWZ0XG4uYi1ib3gtLWJsZWVkLXJpZ2h0IC0gQm94IGJsZWVkcyBvdXQgdG8gdGhlIHJpZ2h0XG5cbk1hcmt1cDogZGVtby5maWd1cmUuYmxlZWQtc3R5bGUtbHIuaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkJsZWVkXG4qL1xuLmItZmlndXJlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKipcbiAgICBGaWd1cmUgKFBvc2l0aW9uKVxuXG4gICAgbGVmdCwgcmlnaHQgYW5kIGNlbnRyZVxuXG4gICAgLmItZmlndXJlLS1wdWxsLWxlZnQgLSBpbWFnZSBmbG9hdHMgb24gbGVmdCBzaWRlXG4gICAgLmItZmlndXJlLS1wdWxsLXJpZ2h0IC0gaW1hZ2UgZmxvYXRzIG9uIHJpZ2h0IHNpZGVcbiAgICAuYi1maWd1cmUtLWNlbnRyZSAtIGltYWdlIGluIHRoZSBjZW50cmVcblxuICAgIE1hcmt1cDogZGVtby5maWd1cmUucmVzcG9uc2l2ZS5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLkZpZ3VyZS5wb3NpdGlvblxuICAgICovIH1cbiAgLmItZmlndXJlLS1wdWxsLXJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7IH1cbiAgLmItZmlndXJlLS1wdWxsLWxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMzBweDsgfVxuICAuYi1maWd1cmUtLWNlbnRyZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgbWFyZ2luOiBhdXRvOyB9XG4gIC5iLWZpZ3VyZS0td2lkdGgtc20ge1xuICAgIHdpZHRoOiAzMCU7IH1cbiAgLmItZmlndXJlLS13aWR0aC1tZCB7XG4gICAgd2lkdGg6IDUyJTsgfVxuICAuYi1maWd1cmUtLXdpZHRoLWxnIHtcbiAgICB3aWR0aDogNzAlOyB9XG4gIC5iLWZpZ3VyZS0tZnVsbC13aWR0aCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmItZmlndXJlX19pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgLmItZmlndXJlX19pbWFnZS0tcmF0aW8tNy04IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDExNC4yODU3MSU7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmItZmlndXJlX19pbWFnZS0tcmF0aW8tMTYtNSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzMS4yNSU7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmItZmlndXJlX19pbWFnZS0tcmF0aW8tNC0zIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDc1JTtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYi1maWd1cmVfX2ltYWdlLS1yYXRpby0yLTEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTAlO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5iLWZpZ3VyZV9faW1hZ2UtLXJhdGlvLTY1LTQwIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDYxLjUzODQ2JTtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYi1maWd1cmVfX2ltYWdlLS1zcXVhcmUge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi1maWd1cmVfX2ltYWdlIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAuYi1maWd1cmVfX2NhcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuSWNvblxuXG5HZW5lcmljIGljb24gd2l0aCBkaWZmZXJlbnQgdHlwZXMgKGUuZy4gXCJiLWljb24gYi1pY29uLS1zZWFyY2hcIiApLlxuXG48bGVnZW5kPlN2ZyB0byBpY29uIGZvbnQ8L2xlZ2VuZD5cblxuQ3JlYXRlIFNWRy9UVEYvRU9UL1dPRkYvV09GRjIgaWNvbi1mb250IGFuZCB0aGUgc2NzcyBmaWxlIGZyb20gU1ZHIGljb25zIHdpdGggR3VscCBidWlsZC1pY29uZm9udCB0YXNrLiBTZWU6IGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2d1bHAtaWNvbmZvbnRcblxuPGI+QWRkIGEgbmV3IGljb248L2I+XG48dWw+XG4gICAgPGxpPkNyZWF0ZSB0aGUgc3ZnIGZpbGUgZm9yIHRoZSBpY29uIGFuZCBnaXZlIHRoZSBmaWxlIGEgcHJvcGVyIG5hbWUsIHRoZSBmaWxlIG5hbWUgaXMgdGhlIGNzcyBjbGFzcyBuYW1lIChlLmcuIGRvd24tYXJyb3cuc3ZnLCB0aGUgY3NzIGNsYXNzIGZvciB0aGUgaWNvbiBpcyAnYi1pY29uLS1kb3duLWFycm93JylcbjwvbGk+XG4gICAgPGxpPkFkZCB0aGUgc3ZnIGZpbGUgaW50byB0aGUgJy9zcmMvYXNzZXRzL2ltZy9pY29ucy9zdmcnIGZvbGRlcjwvbGk+XG4gICAgPGxpPlJ1biB0aGUgZ3VscCB0YXNrICdndWxwIGJ1aWxkLWljb25mb250JyBpbiBhIHRlcm1pbmFsLCBpdCBhZGRzIHRoZSBpY29uIGludG8gdGhlIGZvbnQgZmlsZXMgJ3NyYy9hc3NldHMvZm9udHMvaWNvbi1mb250LmVvdC90dGYvd29mZi93b2ZmMicsIGFuZCByZS1nZW5lcmF0ZXMgdGhlIHNjc3MgZmlsZSAnc3JjL2NvbXBvbmVudHMvaWNvbi9zdmcyaWNvbmZvbnQuc2NzcycgdmlhIHRoZSB0ZW1wbGF0ZSAnc3JjL2NvbXBvbmVudHMvaWNvbi90ZW1wbGF0ZS50eHQnPC9saT5cbjwvdWw+XG5cblxuPGI+VXBkYXRlIGFuIGljb248L2I+XG48dWw+XG4gICAgPGxpPlVwZGF0ZSB0aGUgc3ZnIGZpbGUgcmVsYXRlZCB0byB0aGUgaWNvbiBpbiB0aGUgJy9zcmMvYXNzZXRzL2ltZy9pY29ucy9zdmcnIGZvbGRlcjwvbGk+XG4gICAgPGxpPlJ1biB0aGUgZ3VscCB0YXNrICdndWxwIGJ1aWxkLWljb25mb250JyBpbiBhIHRlcm1pbmFsLCBpdCB1cGRhdGVzIHRoZSBmb250IGZpbGVzICdzcmMvYXNzZXRzL2ZvbnRzL2ljb24tZm9udC5lb3QvdHRmL3dvZmYvd29mZjInLCBhbmQgcmUtZ2VuZXJhdGVzIHRoZSBzY3NzIGZpbGUgJ3NyYy9jb21wb25lbnRzL2ljb24vc3ZnMmljb25mb250LnNjc3MnIHZpYSB0aGUgdGVtcGxhdGUgJ3NyYy9jb21wb25lbnRzL2ljb24vdGVtcGxhdGUudHh0JzwvbGk+XG48L3VsPlxuXG48Yj5EZWxldGUgYW4gaWNvbjwvYj5cbjx1bD5cbiAgICA8bGk+UmVtb3ZlIHRoZSBzdmcgZmlsZSByZWxhdGVkIHRvIHRoZSBpY29uIGluIHRoZSAnL3NyYy9hc3NldHMvaW1nL2ljb25zL3N2ZycgZm9sZGVyPC9saT5cbiAgICA8bGk+UnVuIHRoZSBndWxwIHRhc2sgJ2d1bHAgYnVpbGQtaWNvbmZvbnQnIGluIGEgdGVybWluYWwsIGl0IHVwZGF0ZXMgdGhlIGZvbnQgZmlsZXMgJ3NyYy9hc3NldHMvZm9udHMvaWNvbi1mb250LmVvdC90dGYvd29mZi93b2ZmMicsIGFuZCByZS1nZW5lcmF0ZXMgdGhlIHNjc3MgZmlsZSAnc3JjL2NvbXBvbmVudHMvaWNvbi9zdmcyaWNvbmZvbnQuc2NzcycgdmlhIHRoZSB0ZW1wbGF0ZSAnc3JjL2NvbXBvbmVudHMvaWNvbi90ZW1wbGF0ZS50eHQnPC9saT5cbjwvdWw+XG5cblN0eWxlIGd1aWRlOiBCYXNlLkljb25cbiovXG4vKlxuSWNvbiAoaWNvbiBmb250KVxuXG5HZW5lcmljIGljb24gd2l0aCBkaWZmZXJlbnQgdHlwZXMgKGUuZy4gXCJiLWljb24gYi1pY29uLS1zZWFyY2hcIiApLlxuXG4uYi1pY29uLS1idWxsZXQgLSA6XG4uYi1pY29uLS1jbG9zZSAtIDpcbi5iLWljb24tLWNyZXN0IC0gOlxuLmItaWNvbi0tZG93bi1hcnJvdyAtIDpcbi5iLWljb24tLWRvd24tY2hldnJvbiAtIDpcbi5iLWljb24tLWRvd25sb2FkLWljb24gLSA6XG4uYi1pY29uLS1leHRlcm5hbC1saW5rIC0gOlxuLmItaWNvbi0tZmFjZWJvb2sgLSA6XG4uYi1pY29uLS1nb29nbGUtcGx1cyAtIDpcbi5iLWljb24tLWluc3RhZ3JhbSAtIDpcbi5iLWljb24tLWxlZnQtYXJyb3cgLSA6XG4uYi1pY29uLS1sZWZ0LWNoZXZyb24gLSA6XG4uYi1pY29uLS1saW5rIC0gOlxuLmItaWNvbi0tbG9nbyAtIDpcbi5iLWljb24tLW1pbnVzIC0gOlxuLmItaWNvbi0tcGx1cyAtIDpcbi5iLWljb24tLXByaW50IC0gOlxuLmItaWNvbi0tcmlnaHQtYXJyb3cgLSA6XG4uYi1pY29uLS1yaWdodC1jaGV2cm9uIC0gOlxuLmItaWNvbi0tdHdpdHRlciAtIDpcbi5iLWljb24tLXVwLWNoZXZyb24gLSA6XG4uYi1pY29uLS15b3V0dWJlIC0gOlxuXG5cbk1hcmt1cDogPGkgY2xhc3M9XCJiLWljb24ge3ttb2RpZmllcl9jbGFzc319XCI+PC9pPlxuXG5TdHlsZSBndWlkZTogQmFzZS5JY29uLmljb24gZm9udHNcbiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiaWNvbi1mb250XCI7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL2ljb24tZm9udC5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL2ljb24tZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSwgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL2ljb24tZm9udC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL2ljb24tZm9udC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi4uL2Fzc2V0cy9mb250cy9pY29uLWZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpOyB9XG5cbi5iLWljb24tLWJ1bGxldDpiZWZvcmUsIC5iLWljb24tLWNsb3NlOmJlZm9yZSwgLmItaWNvbi0tY3Jlc3Q6YmVmb3JlLCAuYi1pY29uLS1kb3duLWFycm93OmJlZm9yZSwgLmItaWNvbi0tZG93bi1jaGV2cm9uOmJlZm9yZSwgLmItaWNvbi0tZG93bmxvYWQtaWNvbjpiZWZvcmUsIC5iLWljb24tLWV4dGVybmFsLWxpbms6YmVmb3JlLCAuYi1pY29uLS1mYWNlYm9vazpiZWZvcmUsIC5iLWljb24tLWdvb2dsZS1wbHVzOmJlZm9yZSwgLmItaWNvbi0taW5zdGFncmFtOmJlZm9yZSwgLmItaWNvbi0tbGVmdC1hcnJvdzpiZWZvcmUsIC5iLWljb24tLWxlZnQtY2hldnJvbjpiZWZvcmUsIC5iLWljb24tLWxpbms6YmVmb3JlLCAuYi1pY29uLS1sb2dvOmJlZm9yZSwgLmItaWNvbi0tbWludXM6YmVmb3JlLCAuYi1pY29uLS1wbHVzOmJlZm9yZSwgLmItaWNvbi0tcHJpbnQ6YmVmb3JlLCAuYi1pY29uLS1yaWdodC1hcnJvdzpiZWZvcmUsIC5iLWljb24tLXJpZ2h0LWNoZXZyb246YmVmb3JlLCAuYi1pY29uLS10d2l0dGVyOmJlZm9yZSwgLmItaWNvbi0tdXAtY2hldnJvbjpiZWZvcmUsIC5iLWljb24tLXlvdXR1YmU6YmVmb3JlIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwiaWNvbi1mb250XCI7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7IH1cblxuLmItaWNvbi0tYnVsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCBXCI7IH1cblxuLmItaWNvbi0tY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCLugIJcIjsgfVxuXG4uYi1pY29uLS1jcmVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6Ag1wiOyB9XG5cbi5iLWljb24tLWRvd24tYXJyb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCLugIRcIjsgfVxuXG4uYi1pY29uLS1kb3duLWNoZXZyb246YmVmb3JlIHtcbiAgY29udGVudDogXCLugIVcIjsgfVxuXG4uYi1pY29uLS1kb3dubG9hZC1pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCGXCI7IH1cblxuLmItaWNvbi0tZXh0ZXJuYWwtbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIu6Ah1wiOyB9XG5cbi5iLWljb24tLWZhY2Vib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCIXCI7IH1cblxuLmItaWNvbi0tZ29vZ2xlLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCLugIlcIjsgfVxuXG4uYi1pY29uLS1pbnN0YWdyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCLugIpcIjsgfVxuXG4uYi1pY29uLS1sZWZ0LWFycm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCLXCI7IH1cblxuLmItaWNvbi0tbGVmdC1jaGV2cm9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCMXCI7IH1cblxuLmItaWNvbi0tbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIu6AjVwiOyB9XG5cbi5iLWljb24tLWxvZ286YmVmb3JlIHtcbiAgY29udGVudDogXCLugI5cIjsgfVxuXG4uYi1pY29uLS1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIu6Aj1wiOyB9XG5cbi5iLWljb24tLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCLugJBcIjsgfVxuXG4uYi1pY29uLS1wcmludDpiZWZvcmUge1xuICBjb250ZW50OiBcIu6AkVwiOyB9XG5cbi5iLWljb24tLXJpZ2h0LWFycm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCSXCI7IH1cblxuLmItaWNvbi0tcmlnaHQtY2hldnJvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIu6Ak1wiOyB9XG5cbi5iLWljb24tLXR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCLugJRcIjsgfVxuXG4uYi1pY29uLS11cC1jaGV2cm9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi7oCVXCI7IH1cblxuLmItaWNvbi0teW91dHViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIu6AllwiOyB9XG5cbi5iLWljb24ge1xuICAvKiAtLS0tLS0tLS0tLS0tLSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tICovIH1cbiAgLmItaWNvbi0tZGFyayB7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC5iLWljb24tLXJlZCB7XG4gICAgY29sb3I6ICNlNjQ2MjY7IH1cbiAgLmItaWNvbi0tZ3JleSB7XG4gICAgY29sb3I6ICNiMmIyYjI7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcbkxpbmtcbkludHJhbmV0IGxpbmtcblxuLmItbGluay0tYmxvY2sgLSBtYWtlIHRoZSBsaW5rIGRpc3BsYXkgbGlrZSBhIGJsb2NrIGVsZW1lbnRcbi5iLWxpbmstLW5vLXVuZGVybGluZSAtIHJlbW92ZSB1bmRlcmxpbmUgdG8gdGhlIGxpbmtcblxuU3R5bGUgZ3VpZGU6IEJhc2UuTGlua1xuKi9cbi5iLWJveC0tZGFyayAuYi1saW5rIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLmItbGluay0tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYi1saW5rLS1pbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmItbGluay0tbm8tdW5kZXJsaW5lIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5iLWxpbmstLW5vLXVuZGVybGluZTpmb2N1cywgLmItbGluay0tbm8tdW5kZXJsaW5lOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLmItbGluay0tZGFyayB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4uYi1ib3gtLXJlZCAuYi1saW5rIHtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmItYm94LS1yZWQgLmItbGluazp2aXNpdGVkIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4vKlxuUnVsZVxuXG5SdWxlcyBhcmUgZGl2aWRpbmcgbGluZXMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byB0aGUgdG9wIG9yIGJvdHRvbSBibG9ja3Mgb2YgY29udGVudC5cblxuLmItcnVsZS0tZG90dGVkIC0gMXB4IGdyZXkgZG90dGVkIGJvcmRlciBhcm91bmQgdGhlIGNvbXBvbmVudFxuLmItcnVsZS0tZG90dGVkLWxpZ2h0LWdyZXktdG9wIC0gMXB4IGdyZXkgZG90dGVkIGJvcmRlciB0b3Bcbi5iLXJ1bGUtLWRvdHRlZC1saWdodC1ncmV5LWJvdHRvbSAtIDFweCBncmV5IGRvdHRlZCBib3JkZXIgYm90dG9tXG4uYi1ydWxlLS1kb3R0ZWQtZGFyay1ncmV5LXRvcCAtIDFweCBkYXJrIGRvdHRlZCBib3JkZXIgdG9wXG4uYi1ydWxlLS1kb3R0ZWQtZGFyay1ncmV5LWJvdHRvbSAtIDFweCBkYXJrIGRvdHRlZCBib3JkZXIgYm90dG9tXG4uYi1ydWxlLS1zdHJva2UtbGlnaHQtZGFyay10b3AgLSAxcHggZGFyayBzdHJva2UgYm9yZGVyIHRvcFxuLmItcnVsZS0tc3Ryb2tlLWhlYXZ5LWRhcmstdG9wIC0gM3B4IGRhcmsgc3Ryb2tlIGJvcmRlciB0b3Bcbi5iLXJ1bGUtLXN0cm9rZS1oZWF2eS1kYXJrLWJvdHRvbSAtIDNweCBkYXJrIHN0cm9rZSBib3JkZXIgYm90dG9tXG5cbk1hcmt1cDogZGVtby5ydWxlLmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJhc2UuUnVsZVxuKi9cbi5iLXJ1bGUtLWRvdHRlZCB7XG4gIGJvcmRlcjogMXB4IGRvdHRlZCAjZThlOGU4OyB9XG5cbi5iLXJ1bGUtLWRvdHRlZC1saWdodC1ncmV5LXRvcCB7XG4gIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgI2U4ZThlODsgfVxuXG4uYi1ydWxlLS1kb3R0ZWQtbGlnaHQtZ3JleS1ib3R0b20ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNlOGU4ZTg7IH1cblxuLmItcnVsZS0tZG90dGVkLWRhcmstZ3JleS10b3Age1xuICBib3JkZXItdG9wOiAxcHggZG90dGVkICNiMmIyYjI7IH1cblxuLmItcnVsZS0tZG90dGVkLWRhcmstZ3JleS1ib3R0b20ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICNiMmIyYjI7IH1cblxuLmItcnVsZS0tc3Ryb2tlLWxpZ2h0LWRhcmstdG9wIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMzMzM7IH1cblxuLmItcnVsZS0tc3Ryb2tlLWhlYXZ5LWRhcmstdG9wIHtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICMzMzM7IH1cblxuLmItcnVsZS0tc3Ryb2tlLWhlYXZ5LWRhcmstYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICMzMzM7IH1cblxuLmItcnVsZS0tc3Ryb2tlLW1lZGl1bS1yZWQtdG9wIHtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNlNjQ2MjY7IH1cblxuLmItcnVsZS0tc3Ryb2tlLW1lZGl1bS1saWdodC1ncmV5IHtcbiAgYm9yZGVyOiAycHggc29saWQgI2YxZjFmMTsgfVxuXG4uYi1ydWxlLS1zdHJva2UtbWVkaXVtLWxpbmsge1xuICBib3JkZXI6IDJweCBzb2xpZCAjMTI0MTZDOyB9XG5cbi8qXG5SaWNoIGNvbnRlbnRcblxuUmljaCB0ZXh0IHN0eWxlXG5cblN0eWxlIGd1aWRlOiBCYXNlLlJpY2ggY29udGVudFxuKi9cbi5iLXJpY2gtY29udGVudC0tYWNjb3JkaW9uIGg0IHtcbiAgbWFyZ2luLXRvcDogMzBweDsgfVxuXG4uYi1yaWNoLWNvbnRlbnQgaDEsXG4uYi1yaWNoLWNvbnRlbnQgaDIsXG4uYi1yaWNoLWNvbnRlbnQgaDMsXG4uYi1yaWNoLWNvbnRlbnQgaDQsXG4uYi1yaWNoLWNvbnRlbnQgaDUsXG4uYi1yaWNoLWNvbnRlbnQgaDYge1xuICBtYXJnaW4tdG9wOiAyNXB4OyB9XG5cbi8qXG5UaXRsZVxuXG5UaXRsZXMgYXJlIHNwZWNpYWxpc2VkIGhlYWRpbmdzIG9yIGhlYWRpbmctbGlrZSBlbGVtZW50cyB3aXRoIGEgZGlzdGluY3QgdmlzdWFsIHN0eWxlLCBpbnRlbmRlZCBzcGVjaWZpY2FsbHkgdXNlZCBhc1xudGhlIHRpdGxlIG9mIGEgcGFnZSBvciBjb21wb25lbnQuXG5cbi5iLXRpdGxlLS1oMSAtIExldmVsIDEgY29udGVudCBoZWFkaW5nICgyMnB4KVxuLmItdGl0bGUtLWgyIC0gTGV2ZWwgMiBjb250ZW50IGhlYWRpbmcgKDIwcHgpXG4uYi10aXRsZS0taDMgLSBMZXZlbCAzIGNvbnRlbnQgaGVhZGluZyAoMThweClcbi5iLXRpdGxlLS1oNCAtIExldmVsIDQgY29udGVudCBoZWFkaW5nICgxNnB4KVxuLmItdGl0bGUtLWZpcnN0IC0gUmVtb3ZlcyB0aGUgbGVhZGluZyAodG9wKSBtYXJnaW4gZnJvbSB0aGUgdGl0bGVcbi5iLXRpdGxlLS1yZWQgLSBUaXRsZSB1c2luZyByZWQgYnJhbmQgY29sb3VyXG5cbk1hcmt1cDogPHAgY2xhc3M9XCJiLXRpdGxlIHt7bW9kaWZpZXJfY2xhc3N9fVwiPlRoaXMgaXMgYSB0aXRsZTwvcD5cblxuU3R5bGUgZ3VpZGU6IEJhc2UuVGl0bGVcbiovXG4uYi10aXRsZSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5iLXRpdGxlLS1maXJzdCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuYi10aXRsZS0taDEge1xuICAgIGZvbnQtc2l6ZTogMjJweDsgfVxuICAuYi10aXRsZS0taDIge1xuICAgIGZvbnQtc2l6ZTogMjBweDsgfVxuICAuYi10aXRsZS0taDMge1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAuYi10aXRsZS0taDQge1xuICAgIGZvbnQtc2l6ZTogMTZweDsgfVxuICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi1uZXdzLWNsaXBfX3N1bW1hcnkgLmItdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICBmb250LXNpemU6IDE0cHg7IH1cblxuLypcblRleHRcblxuR2VuZXJpYyB0ZXh0IG1vZGlmaWVycyBmb3Igc2V0dGluZyB0aGluZ3MgbGlrZSBjb2xvdXIuXG5cbi5iLXRleHQtLWFsaWduLWxlZnQgLSBMZWZ0LWFsaWducyB0aGUgdGV4dFxuLmItdGV4dC0tYWxpZ24tcmlnaHQgLSBSaWdodC1hbGlnbnMgdGhlIHRleHRcbi5iLXRleHQtLWFsaWduLWNlbnRyZSAtIENlbnRyZS1hbGlnbnMgdGhlIHRleHRcbi5iLXRleHQtLXdlaWdodC1ub3JtYWwgLSBOb3JtYWwgd2VpZ2h0IHRleHRcbi5iLXRleHQtLWJvbGQgLSBCb2xkIHRleHRcbi5iLXRleHQtLWNvbG91ci1kZWZhdWx0IC0gTWFrZXMgdGV4dCB3aXRoIHBhZ2UgYm9keSBkZWZhdWx0IGNvbG91clxuLmItdGV4dC0tY29sb3VyLWxpZ2h0IC0gTWFrZXMgdGV4dCBhIGxpZ2h0IGNvbG91ciwgYWNjb3JkaW5nIHRvIHRoZSB0aGVtZSAoZS5nLiB3aGl0ZSlcbi5iLXRleHQtLWNvbG91ci1kYXJrIC0gTWFrZXMgdGV4dCBhIGRhcmsgY29sb3VyLCBhY2NvcmRpbmcgdG8gdGhlIHRoZW1lIChlLmcuIGJsYWNrKVxuLmItdGV4dC0tY29sb3VyLXJlZCAtIE1ha2VzIHRleHQgYSByZWQgY29sb3VyLCBpdCBpcyBmb3IgdGhlIHJlZCBjb2xvdXIgdGV4dFxuLmItdGV4dC0tc2l6ZS1zbWFsbCAtIE1ha2VzIHRoZSB0ZXh0IHNtYWxsZXIgdGhhbiB0aGUgZGVmYXVsdCBzaXplICgxMnB4KVxuLmItdGV4dC0tc2l6ZS1iYXNlIC0gTWFrZXMgdGhlIHRleHQgZGVmYXVsdCBib2R5IHNpemUgKDE0cHgpXG4uYi10ZXh0LS1zaXplLWxhcmdlIC0gTWFrZXMgdGhlIHRleHQgbGFyZ2UgKDE4cHgpXG4uYi10ZXh0LS1zaXplLWxhcmdlciAtIE1ha2VzIHRoZSB0ZXh0IGxhcmdlciAoMjBweClcbi5iLXRleHQtLXVwcGVyIC0gVXBwZXJjYXNlIHRoZSB0ZXh0XG4uYi10ZXh0LS1mb250LWxhYmVsIC0gQXBlcmN1IE1vbm8gZm9udCBmYW1pbHlcbi5iLXRleHQtLXN0eWxlLWl0YWxpYyAtIEZvbnQgaXRhbGljIHN0eWxlXG4uYi10ZXh0LS1ub3QtY2xpY2thYmxlIC0gbWFrZSB0aGUgdGV4dCBub3QgY2xpY2thYmxlXG5cbk1hcmt1cDogZGVtby50ZXh0Lmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJhc2UuVGV4dFxuKi9cbi5iLXRleHQtLWFsaWduLWxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi5iLXRleHQtLWFsaWduLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLmItdGV4dC0tYWxpZ24tY2VudHJlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5iLXRleHQtLW5vcm1hbC13ZWlnaHQge1xuICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi5iLXRleHQtLWJvbGQge1xuICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4uYi10ZXh0LS1jb2xvdXItbGlnaHQge1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uYi10ZXh0LS1jb2xvdXItZGFyayB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4uYi10ZXh0LS1jb2xvdXItZGVmYXVsdCB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG4uYi10ZXh0LS1jb2xvdXItcmVkIHtcbiAgY29sb3I6ICNjZTNkMjA7IH1cblxuLmItdGV4dC0tY29sb3VyLWdyZXkge1xuICBjb2xvcjogIzhjOGM4YzsgfVxuXG4uYi10ZXh0LS1zaXplLWJhc2Uge1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLmItdGV4dC0tc2l6ZS1zbS1sYXJnZSB7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4uYi10ZXh0LS1zaXplLWxhcmdlIHtcbiAgZm9udC1zaXplOiAxNnB4OyB9XG5cbi5iLXRleHQtLXNpemUtbGFyZ2VyIHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbi5iLXRleHQtLXVwcGVyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4uYi10ZXh0LS11bmRlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4uYi10ZXh0LS1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi5iLXRleHQtLXN0eWxlLWl0YWxpYyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG4uYi10ZXh0LS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5iLXRleHQtLW5vdC1jbGlja2FibGUge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4vKlxuSGlkZGVuXG5cblJlc3BvbnNpdmUgdmlldyBoaWRkZW4gbW9kaWZpZXJzLCB0aGUgc3JjL2NvbXBvbmVudHMvY29uc3RhbnRzLmpzIGhhdmUgaGlkZGVuIG1vZGlmaWVyc1xuXG4uYi1oaWRkZW4tLXNtLWRlc2stdXAgLSBIaWRlIHRoZSBjb21wb25lbnQgb24gc21hbGwgZGVza3RvcCB1cCBzY3JlZW5cbi5iLWhpZGRlbi0tc20tZGVzay1kb3duIC0gSGlkZSB0aGUgY29tcG9uZW50IG9uIHNtYWxsIGRlc2t0b3AgZG93biBzY3JlZW5cbi5iLWhpZGRlbi0tdGFibGV0LXVwIC0gSGlkZSB0aGUgY29tcG9uZW50IG9uIHRhYmxldCB1cCBzY3JlZW5cbi5iLWhpZGRlbi0tdGFibGV0LWRvd24gLSBIaWRlIHRoZSBjb21wb25lbnQgb24gdGFibGV0IGRvd24gc2NyZWVuXG4uYi1oaWRkZW4tLW1vYmlsZS1sYW5kc2NhcGUtdXAgLSBIaWRlIHRoZSBjb21wb25lbnQgb24gbW9iaWxlIGxhbmRzY2FwZSB1cCBzY3JlZW5cbi5iLWhpZGRlbi0tbW9iaWxlLWxhbmRzY2FwZS1kb3duIC0gSGlkZSB0aGUgY29tcG9uZW50IG9uIG1vYmlsZSBsYW5kc2NhcGUgZG93biBzY3JlZW5cblxuU3R5bGUgZ3VpZGU6IEJhc2UuSGlkZGVuXG4qL1xuLmItaGlkZGVuLS1maXhlZCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuLmItaGlkZGVuLS1vcGFjaXR5IHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50OyB9XG5cbi5iLWhpZGRlbi0taGVpZ2h0IHtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvKlxuICAgICAgICBIaWRkZW4gZmxhc2hcblxuICAgICAgICBDb21wb25lbnQgRkxBU0ggaGFuZGxlciBtb2RpZmllcnNcblxuICAgICAgICAuYi1oaWRkZW4tLW9wYWNpdHkgLSBLZWVwIHRoZSBjb21wb25lbnQgcG9zaXRpb24gYW5kIHNpemUsIHNldCB0aGUgb3BhY2l0eSB0byAwLCBub3JtYWxseSB1c2UgaXQgdG8gcmVmcmVzaCB0aGUgY29tcG9uZW50IGNvbnRlbnQuIChlLmcuIHN5bmNocm9uaXNlIHRoZSBjb250ZW50IG9mIHRoZSBsZWZ0IHZlcnRpY2FsIG5hdmlnYXRpb24gd2l0aCB0aGUgbW9iaWxlIG5hdmlnYXRpb24pXG4gICAgICAgIC5iLWhpZGRlbi0taGVpZ2h0IC0gS2VlcCB0aGUgY29tcG9uZW50IHdpZHRoLCBidXQgc2V0IHRoZSBoZWlnaHQgdG8gMCwgbm9ybWFsbHkgdXNlIGl0IGZvciBzaGlmdGluZyBjb21wb25lbnQgc3RhdGVzLCAoZS5nLiBmcm9tIG9uZSBjb2x1bW4gdG8gdGhyZWUgY29sdW1ucylcblxuXG4gICAgICAgIFN0eWxlIGd1aWRlOiBCYXNlLkhpZGRlbi5mbGFzaFxuICAgICAgICAqLyB9XG5cbi5iLWhpZGRlbi0tc20tZGVzay11cCB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgLmItaGlkZGVuLS1zbS1kZXNrLXVwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9IH1cblxuLmItaGlkZGVuLS1zbS1kZXNrLWRvd24ge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5NzlweCkge1xuICAgIC5iLWhpZGRlbi0tc20tZGVzay1kb3duIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9IH1cblxuLmItaGlkZGVuLS10YWJsZXQtdXAge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5iLWhpZGRlbi0tdGFibGV0LXVwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9IH1cblxuLmItaGlkZGVuLS10YWJsZXQtZG93biB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgLmItaGlkZGVuLS10YWJsZXQtZG93biB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuYi1oaWRkZW4tLW1vYmlsZS1sYW5kc2NhcGUtdXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0NzlweCkge1xuICAuYi1oaWRkZW4tLW1vYmlsZS1sYW5kc2NhcGUtZG93biB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9IH1cblxuLypcbiAgICBCbG9ja3NcbiovXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuQm94XG5cbkdlbmVyaWMgYm94IGNvbnRhaW5lciwgc3VwcG9ydGluZyB2YXJpb3VzIGNvbG91cnMgYW5kIGJsZWVkIGVmZmVjdHMgd2hlcmUgdGhlIGJveCBvdXRsaW5lIGV4dGVuZHMgb3V0c2lkZSBvZiB0aGVpclxubm9ybWFsIGJvdW5kYXJpZXMgYXMgcGFydCBvZiB0aGUgXCJicmVha2luZyB0aGUgZ3JpZFwiIHZpc3VhbCB0aGVtZS5cblxuLmItYm94LS1kYXJrIC0gZGFyayBib3hcblxuTWFya3VwOiBkZW1vLmJveC5jb2xvdXIuaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkJveFxuKi9cbi5iLWJveCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAyMHB4O1xuICAvKlxuICAgIEJveCAoY29sb3VyKVxuXG4gICAgLmItYm94LS1kYXJrIC0gZGFyayBib3hcblxuICAgIE1hcmt1cDogZGVtby5ib3guY29sb3VyLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBCbG9ja3MuQm94XG4gICAgKi9cbiAgLypcbiAgICBCb3ggKGJhY2tncm91bmQgaW1hZ2UpXG5cbiAgICBJdCBzZXRzIHRoZSBiYWNrZ3JvdW5kIGltYWdlIHRvIGEgY29udGFpbmVyLCBieSBkZWZhdWx0IHRoZSBpbWFnZSBpcyBpbiB0aGUgY2VudGVyIGFuZCBzY2FsZSB0byBmaXQgdGhlIGNvbnRhaW5lci5cblxuICAgIEZvdXIgbW9kaWZpZXJzIGFyZSBwcm92aWRlZCB0byBjaGFuZ2UgdGhlIGJhY2tncm91bmQgaW1hZ2UgcG9zaXRpb25zOlxuXG4gICAgLmItYm94LS1iZy1jcm9wLXRvcCAtIGNyb3AgaW1hZ2UgdG9wXG4gICAgLmItYm94LS1iZy1jcm9wLWJvdHRvbSAtIGNyb3AgaW1hZ2UgYm90dG9tXG4gICAgLmItYm94LS1iZy1jcm9wLWxlZnQgLSBjcm9wIGltYWdlIGxlZnRcbiAgICAuYi1ib3gtLWJnLWNyb3AtcmlnaHQgLSBjcm9wIGltYWdlIHJpZ2h0XG5cbiAgICBNYXJrdXA6IGRlbW8uYm94LmJhY2tncm91bmQuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IEJsb2Nrcy5Cb3guQmFja2dyb3VuZCBjb3ZlclxuICAgICovXG4gIC8qXG4gICAgQm94IChwYWRkaW5nIGNvbnRyb2wpXG5cbiAgICAuYi1ib3gtLW5vLXBhZGRpbmcgLSByZW1vdmVzIHBhZGRpbmdcbiAgICAuYi1ib3gtLW5vLXBhZGRpbmctdG9wIC0gcmVtb3ZlcyBwYWRkaW5nIHRvcFxuICAgIC5iLWJveC0tbm8tcGFkZGluZy1yaWdodCAtIHJlbW92ZXMgcGFkZGluZyByaWdodFxuICAgIC5iLWJveC0tbm8tcGFkZGluZy1ib3R0b20gLSByZW1vdmVzIHBhZGRpbmcgYm90dG9tXG4gICAgLmItYm94LS1uby1wYWRkaW5nLWxlZnQgLSByZW1vdmVzIHBhZGRpbmcgbGVmdFxuXG4gICAgLmItYm94LS1wYWRkaW5nLXRvcCAtIGFkZCBwYWRkaW5nIHRvcFxuICAgIC5iLWJveC0tcGFkZGluZy1yaWdodCAtIGFkZCBwYWRkaW5nIHJpZ2h0XG4gICAgLmItYm94LS1wYWRkaW5nLWJvdHRvbSAtIGFkZCBwYWRkaW5nIGJvdHRvbVxuICAgIC5iLWJveC0tcGFkZGluZy1sZWZ0IC0gYWRkIHBhZGRpbmcgbGVmdFxuXG4gICAgLmItYm94LS1jb21wcmVzc2VkIC0gdXNlcyBjb21wcmVzc2VkIHBhZGRpbmcgKGhhbGYgb2YgZGVmYXVsdFxuICAgIC5iLWJveC0tY29tcHJlc3NlZC10b3AgLSB1c2VzIGNvbXByZXNzZWQgcGFkZGluZyBvbiB0b3BcbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtcmlnaHQgLSB1c2VzIGNvbXByZXNzZWQgcGFkZGluZyBvbiByaWdodFxuICAgIC5iLWJveC0tY29tcHJlc3NlZC1ib3R0b20gLSB1c2VzIGNvbXByZXNzZWQgcGFkZGluZyBvbiBib3R0b21cbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtbGVmdCAtIHVzZXMgY29tcHJlc3NlZCBwYWRkaW5nIG9uIGxlZnRcbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtc2lkZXMtb25seSAtIHVzZXMgY29tcHJlc3NlZCBwYWRkaW5nIG9uIGxlZnQgYW5kIHJpZ2h0IG9ubHlcbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtdG9wLWJvdHRvbS1vbmx5IC0gdXNlcyBjb21wcmVzc2VkIHBhZGRpbmcgb24gdG9wIGFuZCBib3R0b20gb25seVxuXG4gICAgLmItYm94LS1wYXJhZ3JhcGgtYm90dG9tIC0gc2V0IGJvdHRvbSBzcGFjZSBmb3IgdGhlIHBhcmFncmFwaCA8cD4gYm90dG9tXG5cbiAgICBNYXJrdXA6IDxkaXYgY2xhc3M9XCJiLWJveCBiLWJveC0tZ3JleSBtb2RpZmllcl9jbGFzc1wiPjxwPkJveCBjb21wb25lbnQ8L3A+PC9kaXY+XG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLkJveCBwYWRkaW5nIGNvbnRyb2xcbiAgICAqL1xuICAvKlxuICAgIEJveCAoYmxlZWQgbGVmdC9yaWdodClcblxuICAgIC5iLWJveC0tYmxlZWQtbGVmdCAtIEJveCBibGVlZHMgb3V0IHRvIHRoZSBsZWZ0XG4gICAgLmItYm94LS1ibGVlZC1yaWdodCAtIEJveCBibGVlZHMgb3V0IHRvIHRoZSByaWdodFxuXG4gICAgTWFya3VwOiBkZW1vLmJveC5ibGVlZC1sci5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLmJveCBibGVlZFxuICAgICovXG4gIC8qXG4gICAgQm94IChhdXRvLWJsZWVkKVxuXG4gICAgLmItYm94LS1ibGVlZCAtIEJveCBibGVlZHMgYXV0b21hdGljYWxseSB0byB0aGUgbGVmdCBhbmQvb3IgcmlnaHQsIGRlcGVuZGluZyBvbiBpdCdzIGNvbnRhaW5lclxuXG4gICAgTWFya3VwOiBkZW1vLmJveC5hdXRvLWJsZWVkLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBCbG9ja3MuYm94IGF1dG8tYmxlZWRcbiAgICAqL1xuICAvKlxuICAgIEJveCAoY2xlYXItZmxvYXRzKVxuXG4gICAgLmItYm94LS1jbGVhci1mbG9hdHNcblxuICAgIE1hcmt1cDogY29taW5nIHNvb24hXG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLmJveCBjbGVhci1mbG9hdHNcbiAgICAqLyB9XG4gIC5iLWJveC0tZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzMzMztcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuYi1ib3gtLWxpZ2h0LWdyZXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC5iLWJveC0tcmVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0NjI2OyB9XG4gIC5iLWJveC0tbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgY29sb3I6IGJsYWNrOyB9XG4gIC5iLWJveC0tYmctY292ZXIge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiAgLmItYm94LS1iZy1jcm9wLXRvcCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiAxMDAlOyB9XG4gIC5iLWJveC0tYmctY3JvcC1ib3R0b20ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb24teTogMDsgfVxuICAuYi1ib3gtLWJnLWNyb3AtbGVmdCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAxMDAlOyB9XG4gIC5iLWJveC0tYmctY3JvcC1yaWdodCB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAwOyB9XG4gIC5iLWJveC0tbm8tcGFkZGluZyB7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC5iLWJveC0tbm8tcGFkZGluZy10b3Age1xuICAgICAgcGFkZGluZy10b3A6IDA7IH1cbiAgICAuYi1ib3gtLW5vLXBhZGRpbmctcmlnaHQge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIC5iLWJveC0tbm8tcGFkZGluZy1ib3R0b20ge1xuICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAuYi1ib3gtLW5vLXBhZGRpbmctbGVmdCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmItYm94LS1wYWRkaW5nLXRvcCB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7IH1cbiAgLmItYm94LS1wYWRkaW5nLXJpZ2h0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyB9XG4gIC5iLWJveC0tcGFkZGluZy1ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG4gIC5iLWJveC0tcGFkZGluZy1sZWZ0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbiAgLmItYm94LS1wYWRkaW5nLW1zLWxlZnQge1xuICAgIHBhZGRpbmctbGVmdDogMTRweDsgfVxuICAuYi1ib3gtLWNvbXByZXNzZWQge1xuICAgIHBhZGRpbmc6IDEwcHg7IH1cbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtdG9wIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMHB4OyB9XG4gICAgLmItYm94LS1jb21wcmVzc2VkLXJpZ2h0IHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtYm90dG9tIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4OyB9XG4gICAgLmItYm94LS1jb21wcmVzc2VkLWxlZnQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG4gICAgLmItYm94LS1jb21wcmVzc2VkLXNpZGVzLW9ubHkge1xuICAgICAgcGFkZGluZzogMjBweCAxMHB4OyB9XG4gICAgLmItYm94LS1jb21wcmVzc2VkLXRvcC1ib3R0b20tb25seSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7IH1cbiAgLmItYm94LS1wYXJhZ3JhcGgtYm90dG9tIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAuYi1ib3gtLWJsZWVkLWxlZnQsIC51c3lkLWlubGluZS13cmFwIC5iLWJveC0tYmxlZWQsIC5iLW5ld3MtY2xpcC0taGVybyAuYi1ib3gtLWJsZWVkIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gICAgICAuYi1ib3gtLWJsZWVkLWxlZnQsIC51c3lkLWlubGluZS13cmFwIC5iLWJveC0tYmxlZWQsIC5iLW5ld3MtY2xpcC0taGVybyAuYi1ib3gtLWJsZWVkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC03MHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDcwcHg7IH0gfVxuICAgIC5iLXNlY3Rpb25fX2NvbnRhaW5lciAuYi1ib3gtLWJsZWVkLWxlZnQsIC5iLXNlY3Rpb25fX2NvbnRhaW5lciAudXN5ZC1pbmxpbmUtd3JhcCAuYi1ib3gtLWJsZWVkLCAudXN5ZC1pbmxpbmUtd3JhcCAuYi1zZWN0aW9uX19jb250YWluZXIgLmItYm94LS1ibGVlZCwgLmItc2VjdGlvbl9fY29udGFpbmVyIC5iLW5ld3MtY2xpcC0taGVybyAuYi1ib3gtLWJsZWVkLCAuYi1uZXdzLWNsaXAtLWhlcm8gLmItc2VjdGlvbl9fY29udGFpbmVyIC5iLWJveC0tYmxlZWQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgLmItc2VjdGlvbl9fY29udGFpbmVyIC5iLWJveC0tYmxlZWQtbGVmdCwgLmItc2VjdGlvbl9fY29udGFpbmVyIC51c3lkLWlubGluZS13cmFwIC5iLWJveC0tYmxlZWQsIC51c3lkLWlubGluZS13cmFwIC5iLXNlY3Rpb25fX2NvbnRhaW5lciAuYi1ib3gtLWJsZWVkLCAuYi1zZWN0aW9uX19jb250YWluZXIgLmItbmV3cy1jbGlwLS1oZXJvIC5iLWJveC0tYmxlZWQsIC5iLW5ld3MtY2xpcC0taGVybyAuYi1zZWN0aW9uX19jb250YWluZXIgLmItYm94LS1ibGVlZCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMHB4OyB9IH1cbiAgLmItYm94LS1ibGVlZC1yaWdodCwgLnVzeWQtYXNpZGUtY29udGVudCAuYi1ib3gtLWJsZWVkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgICAgIC5iLWJveC0tYmxlZWQtcmlnaHQsIC51c3lkLWFzaWRlLWNvbnRlbnQgLmItYm94LS1ibGVlZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTcwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDcwcHg7IH0gfVxuICAgIC5iLXNlY3Rpb25fX2NvbnRhaW5lciAuYi1ib3gtLWJsZWVkLXJpZ2h0LCAuYi1zZWN0aW9uX19jb250YWluZXIgLnVzeWQtYXNpZGUtY29udGVudCAuYi1ib3gtLWJsZWVkLCAudXN5ZC1hc2lkZS1jb250ZW50IC5iLXNlY3Rpb25fX2NvbnRhaW5lciAuYi1ib3gtLWJsZWVkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgICAuYi1zZWN0aW9uX19jb250YWluZXIgLmItYm94LS1ibGVlZC1yaWdodCwgLmItc2VjdGlvbl9fY29udGFpbmVyIC51c3lkLWFzaWRlLWNvbnRlbnQgLmItYm94LS1ibGVlZCwgLnVzeWQtYXNpZGUtY29udGVudCAuYi1zZWN0aW9uX19jb250YWluZXIgLmItYm94LS1ibGVlZCB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweDsgfSB9XG4gIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLWJveC0tYmxlZWQgOm5vdCguYi1maWd1cmVfX2ltYWdlKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMjBweDtcbiAgICBtYXJnaW4tbGVmdDogLTIwcHg7IH1cbiAgLmItYm94LS1jbGVhci1mbG9hdHM6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgLmItYm94LS1yZWQtdG9wIHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgI2U2NDYyNjtcbiAgICBwYWRkaW5nLXRvcDogMThweDsgfVxuICAuYi1ib3gtLWRlZmF1bHQtdG9wIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDsgfVxuICAuYi1ib3gtLXN0cm9rZS1saWdodC1ncmV5IHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZjFmMWYxOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5CdXR0b25cblxuR2VuZXJpYyBidXR0b24gKGUuZy4gXCJiLWJ1dHRvblwiKS4gRGVmYXVsdCAuYi1idXR0b24gYmFja2dyb3VuZCBjb2xvciBvciBib3JkZXIgY29sb3IuXG5cbi5iLWJ1dHRvbi0tcHJpbWFyeSAtIEEgYnV0dG9uIHdpdGggcHJpbWFyeSBiYWNrZ3JvdW5kIGNvbG9yIGFuZCAxcHggYm9yZGVyLlxuLmItYnV0dG9uLS1zZWNvbmRhcnkgLSBBIGJ1dHRvbiB3aXRoIHdoaXRlIGJhY2tncm91bmQgYW5kIDFweCBib3JkZXIgcmVkLlxuLmItYnV0dG9uLS1kaXNhYmxlZCAtIEEgZGlzYWJsZWQgYnV0dG9uXG5cbk1hcmt1cDogZGVtby5idXR0b24uaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkJ1dHRvblxuKi9cbi5iLWJ1dHRvbiB7XG4gIC8qIFRvIGNvbnRyb2wgYnV0dG9uIGJvcmRlciBzdHlsZXMuICovXG4gIC8qIFRvIHNldCBkZWZhdWx0IG9wYWNpdHkgZm9yIGRpc2FibGVkIGJ1dHRvbnMuICovXG4gIC8qIFRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMuICovXG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA3cHggMTVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAuYi1idXR0b24tLXByaW1hcnkge1xuICAgIGJvcmRlci1jb2xvcjogI2U2NDYyNjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTY0NjI2O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuYi1idXR0b24tLW5vLWJvcmRlciB7XG4gICAgYm9yZGVyLXdpZHRoOiAwOyB9XG4gIC5iLWJ1dHRvbi0tZnVsbC13aWR0aCB7XG4gICAgLyogbmVlZCB0byBmaW5kIGEgYmV0dGVyIHdheSB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBDU1MgcmVzZXQgd2l0aG91dCB1c2luZyAhaW1wb3J0YW50ICovXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkge1xuICAgICAgLmItYnV0dG9uLS1mdWxsLXdpZHRoIHtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5GaWd1cmVcblxuUmVwcmVzZW50cyBhbiBpbGx1c3RyYXRpb24sIHVzdWFsbHkgYWNjb21wYW55aW5nIGEgYm9keSBvZiB0ZXh0LiBUaGUgZmlndXJlIGNhbiBiZSBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIHRoZVxudGV4dCwgb2NjdXB5IGEgY2VydGFpbiBhbW91bnQgb2Ygc3BhY2UgYW5kIG9wdGlvbmFsbHkgaGF2ZSBhbiBhY2NvbXBhbnlpbmcgY2FwdGlvbi4gSW5jbHVkZXMgcGVyY2VudGFnZSB3aWR0aFxuaGVscGVycyBmb3IgQ01TLWF1dGhvcmVkIGNvbnRlbnQuXG5cbk1hcmt1cDogZGVtby5maWd1cmUuaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkZpZ3VyZVxuKi9cbi8qXG5GaWd1cmUgKFJlc3BvbnNpdmUgaW1hZ2UpXG5cblJlcHJlc2VudHMgZmlndXJlIHdpdGggcmVzcG9uc2l2ZSBpbWFnZSAoU3dpdGNoaW5nIGJldHdlZW4gMiBpbWFnZXMgZGVza3RvcCBhbmQgdmVydGljYWwgdGFibGV0L21vYmlsZSkuXG5cbk1hcmt1cDogZGVtby5maWd1cmUucmVzcG9uc2l2ZS5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuRmlndXJlLnJlc3BvbnNpdmVcbiovXG4vKlxuQmxlZWQgaW1hZ2UgKGF1dG8tYmxlZWQpXG5cbk1hcmt1cDogZGVtby5maWd1cmUuYmxlZWQtc3R5bGUuYXV0by5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuQmxlZWQuQXV0b1xuKi9cbi8qXG5CbGVlZCBpbWFnZSAoYmxlZWQgbGVmdC9yaWdodClcblxuLmItYm94LS1ibGVlZC1sZWZ0IC0gQm94IGJsZWVkcyBvdXQgdG8gdGhlIGxlZnRcbi5iLWJveC0tYmxlZWQtcmlnaHQgLSBCb3ggYmxlZWRzIG91dCB0byB0aGUgcmlnaHRcblxuTWFya3VwOiBkZW1vLmZpZ3VyZS5ibGVlZC1zdHlsZS1sci5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuQmxlZWRcbiovXG4uYi1maWd1cmUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qKlxuICAgIEZpZ3VyZSAoUG9zaXRpb24pXG5cbiAgICBsZWZ0LCByaWdodCBhbmQgY2VudHJlXG5cbiAgICAuYi1maWd1cmUtLXB1bGwtbGVmdCAtIGltYWdlIGZsb2F0cyBvbiBsZWZ0IHNpZGVcbiAgICAuYi1maWd1cmUtLXB1bGwtcmlnaHQgLSBpbWFnZSBmbG9hdHMgb24gcmlnaHQgc2lkZVxuICAgIC5iLWZpZ3VyZS0tY2VudHJlIC0gaW1hZ2UgaW4gdGhlIGNlbnRyZVxuXG4gICAgTWFya3VwOiBkZW1vLmZpZ3VyZS5yZXNwb25zaXZlLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBCbG9ja3MuRmlndXJlLnBvc2l0aW9uXG4gICAgKi8gfVxuICAuYi1maWd1cmUtLXB1bGwtcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogMzBweDsgfVxuICAuYi1maWd1cmUtLXB1bGwtbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMHB4OyB9XG4gIC5iLWZpZ3VyZS0tY2VudHJlIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgLmItZmlndXJlLS13aWR0aC1zbSB7XG4gICAgd2lkdGg6IDMwJTsgfVxuICAuYi1maWd1cmUtLXdpZHRoLW1kIHtcbiAgICB3aWR0aDogNTIlOyB9XG4gIC5iLWZpZ3VyZS0td2lkdGgtbGcge1xuICAgIHdpZHRoOiA3MCU7IH1cbiAgLmItZmlndXJlLS1mdWxsLXdpZHRoIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuYi1maWd1cmVfX2ltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICAuYi1maWd1cmVfX2ltYWdlLS1yYXRpby03LTgge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTE0LjI4NTcxJTtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYi1maWd1cmVfX2ltYWdlLS1yYXRpby0xNi01IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDMxLjI1JTtcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYi1maWd1cmVfX2ltYWdlLS1yYXRpby00LTMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5iLWZpZ3VyZV9faW1hZ2UtLXJhdGlvLTItMSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1MCU7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmItZmlndXJlX19pbWFnZS0tcmF0aW8tNjUtNDAge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNjEuNTM4NDYlO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5iLWZpZ3VyZV9faW1hZ2UtLXNxdWFyZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLWZpZ3VyZV9faW1hZ2Uge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gIC5iLWZpZ3VyZV9fY2FwdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qKlxuUG9zaXRpb25cblxuR2VuZXJpYyBwb3NpdGlvbmluZyBmb3IgY29udGFpbmVyIGJsb2NrcyBhbmQgY2hpbGQgZWxlbWVudHMuXG5cbi5iLXBvc2l0aW9uLS10b3AtbGV2ZWw6IHNldCB0aGUgdG9wIGxldmVsIHBvc2l0aW9uXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuUG9zaXRpb25cbiovXG4uYi1wb3NpdGlvbl9fY29udGFpbmVyIHtcbiAgLyoqXG4gICAgICAgIFBvc2l0aW9uIChWZXJ0aWNhbClcblxuICAgICAgICBWZXJ0aWNhbCBwb3NpdGlvbiBjb250cm9sLiBCeSBkZWZhdWx0IGNvbnRlbnQgaXMgc2l0dGluZyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjb250YWluZXIuXG5cbiAgICAgICAgU3R5bGUgZ3VpZGU6IEJsb2Nrcy5Qb3NpdGlvbi52ZXJ0aWNhbFxuICAgICAgICAqLyB9XG4gIC5iLXBvc2l0aW9uX19jb250YWluZXItLXZlcnRpY2FsIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuYi1wb3NpdGlvbl9fY29udGFpbmVyLS12ZXJ0aWNhbCAuYi1wb3NpdGlvbl9fY29udGVudCB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4uYi1wb3NpdGlvbl9fY29udGVudC0tdG9wIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4uYi1wb3NpdGlvbl9fY29udGVudC0tYm90dG9tIHtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfVxuXG4uYi1wb3NpdGlvbi0tdG9wLWxldmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiA5OTk5OyB9XG5cbi8qXG5TZWUgbW9yZSBidXR0b25cblxuRGlzcGxheXMgYSBzZWUgbW9yZSBidXR0b25cblxuTWFya3VwOiBkZW1vLnNlZS1tb3JlLWJ1dHRvbi5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuU2VlIG1vcmUgYnV0dG9uXG5cbiovXG4uYi1zZWUtbW9yZS1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogI2U2NDYyNjsgfVxuICAuYi1zZWUtbW9yZS1idXR0b25fX2ljb24ge1xuICAgIGNvbG9yOiAjZTY0NjI2OyB9XG4gIC5iLXNlZS1tb3JlLWJ1dHRvbjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5iLXNlZS1tb3JlLWJ1dHRvbl9fYm90dG9tLS1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5Gb3JtIGNvbnRyb2xcblxuVE9ETzogYWRkIGRlc2NyaXB0aW9uXG5cbk1hcmt1cDpcblxuU3R5bGUgZ3VpZGU6IEJsb2Nrcy5Gb3JtIGNvbnRyb2xcbiovXG4uYi1mb3JtLWNvbnRyb2wge1xuICAvKipcbiAgICAqIC0tLS0tLS0tLS0tLS0tLS0tIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLVxuICAgICovXG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIC8qKlxuICAgICogLS0tLS0tLS0tLS0tLS0tLS0gIGVsZW1lbnRzICAtLS0tLS0tLS0tLS0tLS0tLVxuICAgICovXG4gIC8qXG4gICAgRm9ybSBjb250cm9sIChsYWJlbCBhbmQgaW5wdXQtZ3JvdXBzIGlubGluZSlcblxuICAgIFRoaXMgaXMgdG8gZGVtb25zdHJhdGUgYSBwb3NzaWJsZSBmb3JtIGNvbnRyb2wgc3R5bGUgYW5kIGEgd2F5IG9mIHVzaW5nIHRoZSB3cmFwcGVyIGVsZW1lbnQuXG5cbiAgICBNYXJrdXA6XG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLkZvcm0gY29udHJvbC5XcmFwcGVyXG4gICAgKi8gfVxuICAuYi1mb3JtLWNvbnRyb2wtLW5vLXNwYWNpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmItZm9ybS1jb250cm9sLS1pbmxpbmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5iLWZvcm0tY29udHJvbF9fd3JhcHBlciB7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIC5iLWZvcm0tY29udHJvbF9fd3JhcHBlciA+ICoge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAgIC5iLWZvcm0tY29udHJvbF9fd3JhcHBlci0taW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuYi1mb3JtLWNvbnRyb2xfX2xhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuYi1mb3JtLWNvbnRyb2xfX2lucHV0LXRleHQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOGM4YzhjICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogN3B4IDE1cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgICAuYi10b3AtYmFyIC5iLWZvcm0tY29udHJvbF9faW5wdXQtdGV4dCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KSAhaW1wb3J0YW50OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5Gb3JtXG5cbk5vdGU6IFRoZSBmb3JtIGZvbnQgc2l6ZSBmb3IgdGhlIGlucHV0IGVsZW1lbnQgaXMgMTRweCwgdG8ga2VlcCBpdCB0aGUgc2FtZSBhcyB0aGUgYmFzZSBmb250IHNpemUuIEdlbmVyYWwgcnVsZXM6IG1hcmdpbiBiZXR3ZWVuIGVhY2ggb2YgdGhlIGZvcm0gZWxlbWVudHMgaXMgMjBweCwgdGhlIGZvcm0gcGFkZGluZyBpcyAyNXB4IGFyb3VuZCA0IHNpZGVzLlxuXG5NYXJrdXA6IFRPRE86IG5lZWQgdG8gYWRkXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkZvcm1cbiovXG4vKlxuQ2hlY2tib3hcblxuR2VuZXJhbCBjaGVja2JveCBidXR0b24sIHRleHQgaXMgZ3JleSBjb2xvciBieSBkZWZhdWx0IGFuZCBpcyB3aGl0ZSBpbiB0aGUgZGFyayBmb3JtLlxuXG5NYXJrdXA6IGRlbW8uY2hlY2tib3guYmFzZS5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuQ2hlY2tib3hcbiovXG4uYi1jaGVja2JveCB7XG4gIC8qKlxuICAgICogdmFyaWFibGVzXG4gICAgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKipcbiAgICAqICAtLS0tLS0tLS0tLS0tLS0tLS0tIGVsZW1lbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICovXG4gIC8qKlxuICAgICogZm9ybSBkYXJrIHRoZW1lXG4gICAgKi8gfVxuICAuYi1jaGVja2JveF9fdGV4dCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMzRweDtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgICAuYi1jaGVja2JveF9fdGV4dDo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxcHg7XG4gICAgICByaWdodDogMXB4O1xuICAgICAgYm90dG9tOiAxcHg7XG4gICAgICBsZWZ0OiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9hc3NldHMvaW1nL2Zvcm1zL2NoZWNrYm94ZXMucG5nXCIpIDAgMCBuby1yZXBlYXQ7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgY29udGVudDogXCIgXCI7IH1cbiAgLmItY2hlY2tib3hfX2NvbnRyb2wge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5iLWNoZWNrYm94X19jb250cm9sOmNoZWNrZWQgKyAuYi1jaGVja2JveF9fdGV4dDo6YmVmb3JlIHtcbiAgICAgIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjBweDsgfVxuICAgIC5iLWNoZWNrYm94X19jb250cm9sOi1tb3otZm9jdXNyaW5nICsgLmItY2hlY2tib3hfX3RleHQge1xuICAgICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XG4gICAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgfVxuICAgIC5iLWNoZWNrYm94X19jb250cm9sOmhvdmVyICsgLmItY2hlY2tib3hfX3RleHQsXG4gICAgLmItY2hlY2tib3hfX2NvbnRyb2w6Zm9jdXMgKyAuYi1jaGVja2JveF9fdGV4dCB7XG4gICAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7IH1cbiAgLmItY2hlY2tib3g6aG92ZXIsIC5iLWNoZWNrYm94OmZvY3VzIHtcbiAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IH1cbiAgLmItZm9ybS0tZGFyayAuYi1jaGVja2JveF9fdGV4dCB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG5cbi8qXG5Ecm9wZG93blxuXG5JdCB3aWxsIGJpbmQgdGhlIGpxdWVyeSBzZWxlY3RtZW51IG9uIHRoZSBjb21wb25lbnQgaW5pdGlhbCBzdGVwLlxuXG5DdXJyZW50bHkgaXQgZGVwZW5kcyBvbiB0aGUgYi1pbnB1dC1ncm91cCBzZWxlY3RvciB0byBjb250cm9sIHRoZSBzZWxlY3QgYnV0dG9uIHdpZHRoIG9uIHNjcmVlbiBzaXplIGNoYW5nZXMgaW5jbHVkaW5nIHRoZSBtb2JpbGUgb3JpZW50YXRpb24gY2hhbmdlLCBhcyB0aGUgamF2YXNjcmlwdCB3aWxsIHVzZSBiLWlucHV0LWdyb3VwIGFzIHRoZSBzZWxlY3RvciBrZXkgdG8gZ2V0IHRoZSB3aWR0aCBmb3IgZHJvcGRvd24gc2VsZWN0IGJ1dHRvbiBjYWxjdWxhdGlvbiwgd2hpY2ggbWVhbnMgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgd3JhcHBlZCBieSB0aGUgXCJiLWlucHV0LWdyb3VwXCIgc2VsZWN0b3IuXG5cbkV4YW1wbGUgXCJodHRwOi8vbG9jYWxob3N0OjkwMDAvZm9ybS5odG1sXCJcblxuSnF1ZXJ5LXVpIHNlbGVjdG1lbnUgYXBpOiBodHRwczovL2pxdWVyeXVpLmNvbS9zZWxlY3RtZW51L1xuXG5NYXJrdXA6IGRlbW8uZHJvcGRvd24uaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkRyb3Bkb3duXG5cbiovXG4uYi1kcm9wZG93biB7XG4gIC8qXG4gICAgKiAtLS0tLS0tLS0tLS0tLS0tLSBWYXJpYWJsZXMgKCBpbiB0aGlzIGJsb2NrIHNjb3BlICkgLS0tLS0tLS1cbiAgICAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDEycHg7IH1cbiAgLmItZHJvcGRvd25fX3NlbGVjdCB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0MHB4OyB9XG4gIC5iLWRyb3Bkb3duX19mYWtlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuYi1mb3JtLS1kYXJrIC5iLWRyb3Bkb3duIC51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS13aWRnZXQgLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5iLWRyb3Bkb3duLS1yZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNjQ2MjY7IH1cbiAgICAuYi1kcm9wZG93bi0tcmVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZTNkMjA7IH1cbiAgICAuYi1kcm9wZG93bi0tcmVkIC5iLWljb24tLWRvd24tY2hldnJvbixcbiAgICAuYi1mb3JtIC5iLWRyb3Bkb3duLS1yZWQgLmItaWNvbi0tZG93bi1jaGV2cm9uLFxuICAgIC5iLWRyb3Bkb3duLS1yZWQgLnVpLXNlbGVjdG1lbnUtYnV0dG9uLnVpLXdpZGdldCAudWktc2VsZWN0bWVudS10ZXh0IHtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAuYi1kcm9wZG93bi0tZ3JleSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWJlZDsgfVxuICAgIC5iLWRyb3Bkb3duLS1ncmV5IC51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS13aWRnZXQgLnVpLXNlbGVjdG1lbnUtdGV4dCxcbiAgICAuYi1mb3JtLS1kYXJrIC5iLWRyb3Bkb3duLS1ncmV5IC51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS13aWRnZXQgLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG4gICAgICBjb2xvcjogYmxhY2s7IH1cbiAgICAuYi1kcm9wZG93bi0tZ3JleSAuYi1pY29uLS1kb3duLWNoZXZyb24sXG4gICAgLmItZm9ybSAuYi1kcm9wZG93bi0tZ3JleSAuYi1pY29uLS1kb3duLWNoZXZyb24ge1xuICAgICAgY29sb3I6ICNlNjQ2MjY7IH1cblxuLypcbiAgICBDb21wb25lbnRzXG4qL1xuLypcbkFjY29yZGlvbiBjb21wb25lbnRcbkl0IG92ZXJyaWRlcyBib29zdHJhcHMgYWNjb3JkaW9uIGNsYXNzZXNcblxuTWFya3VwOiBkZW1vLmFjY29yZGlvbi5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkFjY29yZGlvblxuKi9cbi5iLWFjY29yZGlvbiAuY29sbGFwc2UuaW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4uYi1hY2NvcmRpb24gLmNvbGxhcHNlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5iLWFjY29yZGlvbiAuY29sbGFwc2luZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjM1cztcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5OyB9XG5cbi5iLWFjY29yZGlvbiAucGFuZWwge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uYi1hY2NvcmRpb25fX2dyb3VwIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlOGU4ZTg7IH1cblxuLmItYWNjb3JkaW9uX19pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOGU4ZTggIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4uYi1hY2NvcmRpb25fX2xpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmItYWNjb3JkaW9uX19saW5rOmhvdmVyLCAuYi1hY2NvcmRpb25fX2xpbms6Zm9jdXMsIC5iLWFjY29yZGlvbl9fbGluazphY3RpdmUge1xuICAgIGNvbG9yOiBibGFjazsgfVxuICAuYi1hY2NvcmRpb25fX2xpbms6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMTBweDtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgY29udGVudDogcmVzb2x2ZShcImFzc2V0cy9pbWcvaWNvbnMvc3ZnL21pbnVzLnN2Z1wiKTsgfVxuICAuYi1hY2NvcmRpb25fX2xpbmsuY29sbGFwc2VkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IHJlc29sdmUoXCJhc3NldHMvaW1nL2ljb25zL3N2Zy9wbHVzLnN2Z1wiKTsgfVxuICAuYi1hY2NvcmRpb25fX2xpbmstLW5vcm1hbC13ZWlnaHQge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLmItYWNjb3JkaW9uX190aXRsZSB7XG4gIG1hcmdpbjogMjRweCAwOyB9XG5cbi5iLWFjY29yZGlvbl9fY29udGVudCB7XG4gIHBhZGRpbmc6IDAgMCAzNnB4OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5DYXJvdXNlbFxuXG5JdCBpcyBidWlsdCB3aXRoIFN3aXBlckpzIGh0dHA6Ly9pZGFuZ2Vyby51cy9zd2lwZXJAMi43LjYgZm9yIElFIDkgc3VwcG9ydFxuXG5XZSBjYW4gdXBncmFkZSB0byAzLngueCB2ZXJzaW9uIG9uY2Ugd2UgZHJvcCB0aGUgSUUgOSBzdXBwb3J0LlxuXG5BUEkgYW5kIGNvbmZpZ3VyYXRpb25zOiBodHRwczovL2dpdGh1Yi5jb20vbm9saW1pdHM0d2ViL1N3aXBlci9ibG9iL1N3aXBlcjIvQVBJLm1kXG5cbkRlbW8gaXMgaW4gY29udGVudC1wYWdlLmh0bWxcblxuRGVmYXVsdCBpdCBoYXMgYXV0b3BsYXkgYW5kIGxvb3Bpbmcgc2xpZGVzXG5cbk1hcmt1cDogZGVtby5jYXJvdXNlbC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkNhcm91c2VsXG4qL1xuLmItY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmItY2Fyb3VzZWxfX2NvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5iLWNhcm91c2VsX19zbGlkZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmItY2Fyb3VzZWxfX3NsaWRlIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgLmItY2Fyb3VzZWxfX3NsaWRlLS10aHVtYiB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgLmItY2Fyb3VzZWxfX2J1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAvKlxuICAgICAgICBDYXJvdXNlbCAoYnV0dG9uIG5leHQpXG5cbiAgICAgICAgTWFya3VwOiBjYXJvdXNlbC1idXR0b24tbmV4dC5odG1sXG5cbiAgICAgICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuQ2Fyb3VzZWwuQnV0dG9uIG5leHRcbiAgICAgICAgKi9cbiAgICAvKlxuICAgICAgICBDYXJvdXNlbCAoYnV0dG9uIHByZXYpXG5cbiAgICAgICAgTWFya3VwOiBjYXJvdXNlbC1idXR0b24tcHJldi5odG1sXG5cbiAgICAgICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuQ2Fyb3VzZWwuQnV0dG9uIHByZXZcbiAgICAgICAgKi8gfVxuICAgIC5iLWNhcm91c2VsX19idXR0b24tLW5leHQge1xuICAgICAgcmlnaHQ6IC0yMHB4O1xuICAgICAgbGVmdDogYXV0bzsgfVxuICAgIC5iLWNhcm91c2VsX19idXR0b24tLXByZXYge1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiAtMjBweDsgfVxuXG4vKlxuRmFjdCBsaXN0XG5cbkEgZ3JvdXAgb2YgZmFjdCBzbmlwcGV0cywgdGhlIGJhc2Ugc3R5bGVcblxuTWFya3VwOiBkZW1vLmZhY3QtbGlzdC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkZhY3QgbGlzdFxuKi9cbi5iLWZhY3QtbGlzdCB7XG4gIC8qXG4gICAgRmFjdFxuXG4gICAgVGhlIGZhY3QgbGlzdCBpdGVtXG5cbiAgICBNYXJrdXA6IGRlbW8uZmFjdC5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5GYWN0IGxpc3QuRmFjdFxuICAgICovXG4gIC8qXG4gICAgRmFjdCBsaXN0ICgzIHJvd3MpXG5cbiAgICBJdCBkaXNwbGF5cyBpbiAzIHJvd3NcblxuICAgIE1hcmt1cDogZGVtby5mYWN0LWxpc3QtMy1yb3dzLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkZhY3QgbGlzdC4zIHJvd3NcbiAgICAqL1xuICAvKlxuICAgIEZhY3QgbGlzdCAoMiBjb2x1bW5zKVxuXG4gICAgSXQgc3RheXMgYXMgdGhlIHNhbWUgaW4gbW9iaWxlLCB0YWJsZXQgYW5kIGRlc2t0b3BcblxuICAgIDxiPk1vZGlmaWVyczwvYj5cbiAgICA8cD5mb3IgdGhlIGNvbXBvbmVudDogYi1mYWN0LWxpc3QtLWNvbCBiLWdyaWQtd3JhcHBlci0tY29sPC9wPlxuICAgIDxwPmZvciB0aGUgZmFjdCBpdGVtOiAxLzI8L3A+XG5cbiAgICBNYXJrdXA6IGRlbW8uZmFjdC1saXN0LTItY29sdW1ucy5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5GYWN0IGxpc3QuMiBjb2x1bW5zXG4gICAgKi9cbiAgLypcbiAgICBGYWN0IGxpc3QgKDMgY29sdW1ucylcblxuICAgIEl0IHN0YXlzIGFzIHRoZSBzYW1lIGluIG1vYmlsZSwgdGFibGV0IGFuZCBkZXNrdG9wXG5cbiAgICA8Yj5Nb2RpZmllcnM8L2I+XG4gICAgPHA+Zm9yIHRoZSBjb21wb25lbnQ6IGItZmFjdC1saXN0LS1jb2wgYi1ncmlkLXdyYXBwZXItLWNvbDwvcD5cbiAgICA8cD5mb3IgdGhlIGZhY3QgaXRlbTogMS8zLS10YWJsZXQtdXA8L3A+XG5cbiAgICBNYXJrdXA6IGRlbW8uZmFjdC1saXN0LTMtY29sdW1ucy5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5GYWN0IGxpc3QuMyBjb2x1bW5zXG4gICAgKi9cbiAgLypcbiAgICBGYWN0IGxpc3QgKHdyYXApXG5cbiAgICBXcmFwIHRoZSBmYWN0IGxpc3Qgd2l0aCB0aGUgb3RoZXIgY29udGVudFxuXG4gICAgPGI+TW9kaWZpZXI8L2I+XG4gICAgPHA+TGVmdDogICAgYi1maWd1cmUtLXB1bGwtbGVmdCBiLWZpZ3VyZS0td2lkdGgtbWQ8L3A+XG4gICAgPHA+UmlnaHQ6ICAgYi1maWd1cmUtLXB1bGwtcmlnaHQgYi1maWd1cmUtLXdpZHRoLW1kPC9wPlxuXG4gICAgTWFya3VwOiBkZW1vLmZhY3QtbGlzdC13cmFwLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkZhY3QgbGlzdC5XcmFwXG4gICAgKi8gfVxuICAuYi1mYWN0LWxpc3RfX2xpc3QtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIC5iLWZhY3QtbGlzdF9faXRlbS1ob2xkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLmItZmFjdC1saXN0X19pdGVtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG4gIC5iLWZhY3QtbGlzdC0tY29sIC5iLWZhY3QtbGlzdF9fbGlzdC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5iLWZhY3QtbGlzdC0tY29sIC5iLWZhY3QtbGlzdF9faXRlbS1ob2xkZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5iLWZhY3QtbGlzdC0tY29sIC5iLWZhY3QtbGlzdF9faXRlbSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmItZmFjdC1saXN0LS1jb2wtdGFibGV0LXVwIC5iLWZhY3QtbGlzdF9fbGlzdC1jb250YWluZXIge1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuYi1mYWN0LWxpc3QtLWNvbC10YWJsZXQtdXAgLmItZmFjdC1saXN0X19pdGVtLWhvbGRlciB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmItZmFjdC1saXN0LS1jb2wtdGFibGV0LXVwIC5iLWZhY3QtbGlzdF9faXRlbSB7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5IZXJvIHN0b3J5XG5cbk1hcmt1cDogZGVtby5oZXJvLXN0b3J5Lmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSGVybyBzdG9yeVxuKi9cbi5iLWhlcm8tc3Rvcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qXG4gICAgSGVybyBzdG9yeSAoZGFyaylcblxuICAgIERhcmsgc3R5bGUgY2xhc3NlcyBcImItaGVyby1zdG9yeS0tZGFyayBiLWJveC0tZGFya1wiXG5cbiAgICBNYXJrdXA6IGRlbW8uaGVyby1zdG9yeS1kYXJrLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkhlcm8gc3RvcnkuRGFya1xuICAgICovIH1cbiAgLmItaGVyby1zdG9yeV9fY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvKlxuICAgICAgICBIZXJvIHN0b3J5IChUZXh0KVxuXG4gICAgICAgIFRoZSBoZXJvIHN0b3J5IHRleHQgY29udGVudFxuXG4gICAgICAgIE1hcmt1cDogdGV4dC5odG1sXG5cbiAgICAgICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSGVybyBzdG9yeS5UZXh0XG4gICAgICAgICovXG4gICAgLypcbiAgICAgICAgSGVybyBzdG9yeSAoRmlndXJlKVxuXG4gICAgICAgIFRoZSBoZXJvIHN0b3J5IGZpZ3VyZSBwYXJ0LCBiZWxvdyB0aGUgc21hbGwgZGVza3RvcCwgdGhlIGltYWdlIHdpbGwgYmUgc2hvd24gd2l0aCA0OjMgcmF0aW9cblxuICAgICAgICBNYXJrdXA6IGZpZ3VyZS5odG1sXG5cbiAgICAgICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSGVybyBzdG9yeS5GaWd1cmVcbiAgICAgICAgKi8gfVxuICAgIC5iLWhlcm8tc3RvcnlfX2NvbnRhaW5lci0tdGV4dCB7XG4gICAgICBwYWRkaW5nOiAwIDAgMTBweDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH1cbiAgICAuYi1oZXJvLXN0b3J5X19jb250YWluZXItLWZpZ3VyZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmItaGVyby1zdG9yeV9fcmVzdHJpY3Rpb24ge1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4OyB9XG4gICAgLmItaGVyby1zdG9yeV9fcmVzdHJpY3Rpb24uYi1oZXJvLXN0b3J5LWdhbGxlcnkge1xuICAgICAgbWluLWhlaWdodDogMjIwcHg7IH1cbiAgLmItaGVyby1zdG9yeV9fZmlndXJlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5iLWhlcm8tc3RvcnlfX2ltYWdlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDk3OXB4KSB7XG4gICAgICAuYi1oZXJvLXN0b3J5X19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNzUlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkge1xuICAgIC5iLWhlcm8tc3Rvcnkge1xuICAgICAgZGlzcGxheTogdGFibGU7IH1cbiAgICAgIC5iLWhlcm8tc3RvcnlfX2NvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgIC5iLWhlcm8tc3RvcnlfX2NvbnRhaW5lci0tdGV4dCB7XG4gICAgICAgICAgcGFkZGluZzogMCAyMHB4IDIwcHggMDtcbiAgICAgICAgICB3aWR0aDogMzQuNCU7IH1cbiAgICAgICAgLmItaGVyby1zdG9yeV9fY29udGFpbmVyLS1maWd1cmUge1xuICAgICAgICAgIHdpZHRoOiA2NS42JTsgfSB9XG4gIC5iLWhlcm8tc3RvcnktLWRhcmsgLmItaGVyby1zdG9yeV9fY29udGFpbmVyLS10ZXh0IHtcbiAgICBwYWRkaW5nOiAyMHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkge1xuICAgIC5iLWhlcm8tc3RvcnktLWRhcmsgLmItaGVyby1zdG9yeV9fY29udGFpbmVyLS10ZXh0IHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH0gfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuSGVybyBzdG9yeSBnYWxsZXJ5XG5cbkl0IGhhcyB0aGUgY2xhc3MgXCJiLWpzLWhlcm8tc3RvcnktaW1hZ2UtZ2FsbGVyeVwiIGluIHRoZSBoZXJvIHN0b3J5IGNvbXBvbmVudFxuXG5NYXJrdXA6IGRlbW8uaGVyby1zdG9yeS1nYWxsZXJ5Lmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSGVybyBzdG9yeSBnYWxsZXJ5XG4qL1xuLmItaGVyby1zdG9yeS1nYWxsZXJ5IHtcbiAgLypcbiAgICBIZXJvIHN0b3J5IGdhbGxlcnkgKGNhcm91c2VsKVxuXG4gICAgVGhlIGhlcm8gc3RvcnkgZ2FsbGVyeSBjYXJvdXNlbFxuXG4gICAgTWFya3VwOiBnYWxsZXJ5Lmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkhlcm8gc3RvcnkgZ2FsbGVyeS5DYXJvdXNlbFxuICAgICovIH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgLmItaGVyby1zdG9yeS1nYWxsZXJ5IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDsgfSB9XG4gIC5iLWhlcm8tc3RvcnktZ2FsbGVyeV9fY2Fyb3VzZWwge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuYi1oZXJvLXN0b3J5LWdhbGxlcnlfX2NhcHRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcbkltYWdlIGdhbGxlcnlcblxuSXQgZGlzcGxheXMgNCB0aHVtYm5haWxzIGZvciB0YWJsZXQgYW5kIGRlc2t0b3AgdmlldyBwb2ludHMsXG4zIHRodW1ibmFpbHMgZm9yIG1vYmlsZSB2aWV3IHBvaW50LlxuXG5UaGUgZGVtbyBwYWdlIGlzIGFydGljbGUtcGFnZS5odG1sXG5cbk1hcmt1cDogZGVtby5pbWFnZS1nYWxsZXJ5Lmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSW1hZ2UgZ2FsbGVyeVxuKi9cbi5iLWltYWdlLWdhbGxlcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qXG4gICAgSW1hZ2UgZ2FsbGVyeSAoVG9wIHNsaWRlKVxuXG4gICAgTWFya3VwOiB0b3Atc2xpZGUuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSW1hZ2UgZ2FsbGVyeS5Ub3Agc2xpZGVcbiAgICAqL1xuICAvKlxuICAgIEltYWdlIGdhbGxlcnkgKFRodW1ibmFpbClcblxuICAgIE1hcmt1cDogY2Fyb3VzZWwtc2xpZGUuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSW1hZ2UgZ2FsbGVyeS5UaHVtYm5haWxcbiAgICAqLyB9XG4gIC5iLWltYWdlLWdhbGxlcnlfX3RvcC1maWd1cmUge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLmItaW1hZ2UtZ2FsbGVyeV9fdG9wLWltYWdlIHtcbiAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDNweCAwICMzMzM7IH1cbiAgLmItaW1hZ2UtZ2FsbGVyeS0taGFzLW5hdi1idXR0b25zIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgd2lkdGg6IDkwJTsgfVxuICAgIC5iLWltYWdlLWdhbGxlcnktLWhhcy1uYXYtYnV0dG9ucyAuYi1pbWFnZS1nYWxsZXJ5X19idXR0b24tbmV4dCB7XG4gICAgICByaWdodDogLTYlOyB9XG4gICAgLmItaW1hZ2UtZ2FsbGVyeS0taGFzLW5hdi1idXR0b25zIC5iLWltYWdlLWdhbGxlcnlfX2J1dHRvbi1wcmV2IHtcbiAgICAgIGxlZnQ6IC02JTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgLmItaW1hZ2UtZ2FsbGVyeS0taGFzLW5hdi1idXR0b25zIHtcbiAgICAgICAgd2lkdGg6IDkwJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwMHB4KSB7XG4gICAgICAuYi1pbWFnZS1nYWxsZXJ5LS1oYXMtbmF2LWJ1dHRvbnMge1xuICAgICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgICAuYi1pbWFnZS1nYWxsZXJ5LS1oYXMtbmF2LWJ1dHRvbnMgLmItaW1hZ2UtZ2FsbGVyeV9fYnV0dG9uLW5leHQge1xuICAgICAgICAgIHJpZ2h0OiAtMjBweDsgfVxuICAgICAgICAuYi1pbWFnZS1nYWxsZXJ5LS1oYXMtbmF2LWJ1dHRvbnMgLmItaW1hZ2UtZ2FsbGVyeV9fYnV0dG9uLXByZXYge1xuICAgICAgICAgIGxlZnQ6IC0yMHB4OyB9IH1cbiAgICAuYi1pbWFnZS1nYWxsZXJ5LS1oYXMtbmF2LWJ1dHRvbnMgLmItaW1hZ2UtZ2FsbGVyeV9fdGh1bWItc2xpZGUge1xuICAgICAgd2lkdGg6IDMzJTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIC5iLWltYWdlLWdhbGxlcnktLWhhcy1uYXYtYnV0dG9ucyAuYi1pbWFnZS1nYWxsZXJ5X190aHVtYi1zbGlkZSB7XG4gICAgICAgICAgd2lkdGg6IDI1JTsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5OZXdzIGNsaXBcblxuTWFya3VwOiBkZW1vLm5ld3MtY2xpcC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLk5ld3MgY2xpcFxuKi9cbi5iLW5ld3MtY2xpcCB7XG4gIC8qXG4gICAgTmV3cyBjbGlwIChIZXJvKVxuXG4gICAgVGhlIG5ld3MgY2xpcCBoZXJvIGNvbXBvbmVudCB3aXRoIHRoZSBkZWZhdWx0IGltYWdlXG5cbiAgICBNYXJrdXA6IGRlbW8ubmV3cy1jbGlwLWhlcm8uaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuTmV3cyBjbGlwLkhlcm9cbiAgICAqL1xuICAvKlxuICAgIE5ld3MgY2xpcCAoSGVybyBnYWxsZXJ5KVxuXG4gICAgTWFya3VwOiBkZW1vLm5ld3MtY2xpcC1nYWxsZXJ5Lmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLk5ld3MgY2xpcC5IZXJvIGdhbGxlcnlcbiAgICAqLyB9XG4gIC5iLW5ld3MtY2xpcC0taGVyb19fZmlndXJlLWhvbGRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTNweDsgfVxuICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi1uZXdzLWNsaXBfX3N1bW1hcnkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5RdW90ZVxuXG5TdHlsZXMgdGV4dCBhcyBhIGJsb2NrLXF1b3RlIGF1dG9tYXRpY2FsbHkgc3Vycm91bmRzIHRoZSB0ZXh0IHdpdGggcXVvdGUgbWFya3MuXG5cbk1hcmt1cDogZGVtby5wdWxsLXF1b3RlLmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJsb2Nrcy5RdW90ZVxuKi9cbi5iLXB1bGwtcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDIwcHggNDBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7IH1cbiAgLmItcHVsbC1xdW90ZV9fY29udGVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cbiAgICAuYi1wdWxsLXF1b3RlX19jb250ZW50OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICBsZWZ0OiAtMjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIGNvbnRlbnQ6IFwiXFwyMDFDXCI7IH1cbiAgLmItcHVsbC1xdW90ZV9fY2xvc2UtcXVvdGU6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxMHB4O1xuICAgIGxlZnQ6IDVweDtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgY29udGVudDogXCJcXDIwMURcIjsgfVxuICAuYi1wdWxsLXF1b3RlX19mb290ZXIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuVGV4dCBpbWFnZVxuXG5NYXJrdXA6IGRlbW8udGV4dC1pbWFnZS5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRleHQgaW1hZ2VcbiovXG4vKipcblRleHQgaW1hZ2UgKCBDYXB0aW9uIClcblxuRGVmYXVsdCB0aGUgdGV4dCBpbWFnZSBmaWd1cmUgaGFzIDMwcHggbWFyZ2luIGJvdHRvbS5cbklmIHRoZSB0ZXh0IGltYWdlIGZpZ3VyZSBoYXMgY2FwdGlvbixcbndpdGggdGhlIGNsYXNzIFwiYi10ZXh0LWltYWdlX19maWd1cmUtLXdpdGgtY2FwdGlvblwiLFxudGhlIG1hcmdpbiBib3R0b20gd2lsbCBkcm9wIDUwJSB0byAxNXB4XG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRleHQtaW1hZ2UuY2FwdGlvblxuKi9cbi8qKlxuVGV4dCBpbWFnZSAoV3JhcClcblxuLmItdGV4dC1pbWFnZV9fZmlndXJlLWNvbnRhaW5lci0tbm8td3JhcCAtIG5vIHdyYXBwaW5nIHRleHQgYXJvdW5kIHRoZSBpbWFnZVxuXG5NYXJrdXA6IGRlbW8udGV4dC1pbWFnZS0td3JhcC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRleHQtaW1hZ2Uud3JhcFxuKi9cbi8qKlxuVGV4dCBpbWFnZSAoU2l6ZSlcblxuc21hbGwsIG1lZGl1bSwgbGFyZ2UgYW5kIGZ1bGwtd2lkdGhcblxuLmItdGV4dC1pbWFnZV9fZmlndXJlLS1zbWFsbCAtIDMwJSBzbWFsbCBpbWFnZVxuLmItdGV4dC1pbWFnZV9fZmlndXJlLS1tZWRpdW0gLSA1MiUgbWVkaXVtIGltYWdlXG4uYi10ZXh0LWltYWdlX19maWd1cmUtLWxhcmdlIC0gNzAlIGxhcmdlIGltYWdlXG4uYi10ZXh0LWltYWdlX19maWd1cmUtLWZ1bGwtd2lkdGggLSAxMDAlIHdpZHRoIGltYWdlXG5cbk1hcmt1cDogZGVtby50ZXh0LWltYWdlLS1zaXplLmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuVGV4dC1pbWFnZS5zaXplXG4qL1xuLyoqXG5UZXh0IGltYWdlIChQb3NpdGlvbilcblxubGVmdCwgcmlnaHQgYW5kIGNlbnRyZVxuXG4uYi1maWd1cmUtLXB1bGwtbGVmdCAtIGltYWdlIGZsb2F0cyBvbiBsZWZ0IHNpZGVcbi5iLWZpZ3VyZS0tcHVsbC1yaWdodCAtIGltYWdlIGZsb2F0cyBvbiByaWdodCBzaWRlXG4uYi1maWd1cmUtLWNlbnRyZSAtIGltYWdlIGluIHRoZSBjZW50cmVcblxuTWFya3VwOiBkZW1vLnRleHQtaW1hZ2UtLXBvc2l0aW9uLmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuVGV4dC1pbWFnZS5wb3NpdGlvblxuKi9cbi5iLXRleHQtaW1hZ2VfX2ZpZ3VyZS1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTsgfVxuICAuYi10ZXh0LWltYWdlX19maWd1cmUtY29udGFpbmVyLS1uby13cmFwIHtcbiAgICBvdmVyZmxvdzogYXV0bzsgfVxuXG4uYi10ZXh0LWltYWdlX19maWd1cmUge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIC5iLXRleHQtaW1hZ2VfX2ZpZ3VyZS0td2l0aC1jYXB0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5iLXRleHQtaW1hZ2VfX2ZpZ3VyZS0tc21hbGwge1xuICAgICAgd2lkdGg6IDMwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5iLXRleHQtaW1hZ2VfX2ZpZ3VyZS0tbWVkaXVtIHtcbiAgICAgIHdpZHRoOiA1MiU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAuYi10ZXh0LWltYWdlX19maWd1cmUtLWxhcmdlIHtcbiAgICAgIHdpZHRoOiA3MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAuYi10ZXh0LWltYWdlX19maWd1cmUtLWZ1bGwtd2lkdGgge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTMwMHB4KSB7XG4gICAgLmItdGV4dC1pbWFnZV9fZmlndXJlLS1mdWxsLXdpZHRoIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG4uYi10ZXh0LWltYWdlX190ZXh0LWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IC0wLjhlbTsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuVGltZWxpbmVcblxuVGltZWxpbmUgc2VnbWVudHMgYXJlIGluIG9uZSBjb2x1bW4gYnkgZGVmYXVsdCwgYnV0IHBsYWNlIGluIHR3byBjb2x1bW5zXG53aGVuIHRoZSBicm93c2VyIHNpemUgaXMgbm8gc21hbGxlciB0aGFuIHRhYmxldCBzY3JlZW4gc2l6ZSAoNzY4cHgpXG5cbk1hcmt1cDogZGVtby50aW1lbGluZS5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRpbWVsaW5lXG4qL1xuLmItdGltZWxpbmUge1xuICAvKlxuICAgIFRpbWVsaW5lIHNlZ21lbnRcblxuICAgIE1hcmt1cDogZGVtby5zZWdtZW50Lmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRpbWVsaW5lLlNlZ21lbnRcbiAgICAqLyB9XG4gIC5iLXRpbWVsaW5lX19kYXRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmItdGltZWxpbmVfX2J1bGxldCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTVweDtcbiAgICBsZWZ0OiAtMjVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogOHB4OyB9XG4gIC5iLXRpbWVsaW5lX19zZWdtZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMzMzO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAuYi10aW1lbGluZV9fc2VnbWVudCB7XG4gICAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgICAgLmItdGltZWxpbmVfX3NlZ21lbnQ6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMzMzM7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgcGFkZGluZzogMjUlIDIwcHggMTVweCAwOyB9XG4gICAgICAgICAgLmItdGltZWxpbmVfX3NlZ21lbnQ6bnRoLWNoaWxkKG9kZCkgLmItdGltZWxpbmVfX2J1bGxldCB7XG4gICAgICAgICAgICByaWdodDogLTI1cHg7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvOyB9XG4gICAgICAgIC5iLXRpbWVsaW5lX19zZWdtZW50Om50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgIHBhZGRpbmc6IDI1JSAwIDE1cHggMjBweDsgfVxuICAgICAgICAuYi10aW1lbGluZV9fc2VnbWVudDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAuYi10aW1lbGluZV9fZmlndXJlIHtcbiAgICAgIHdpZHRoOiA1MiU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuYi10aW1lbGluZV9fZmlndXJlIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcblRvcCBiYXJcblxuVG9wIGJhciBjb21wb25lbnRcblxuTWFya3VwOiBkZW1vLnRvcC1iYXIuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5Ub3AgYmFyXG4qL1xuLypcblVuaSBTbmFwc2hvdFxuXG5EaXNwbGF5cyBzbmFwc2hvdCBvZiBVbml2ZXJzaXR5IG1ldHJpY3NcblxuTWFya3VwOiBkZW1vLnVuaS1zbmFwc2hvdC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlVuaSBTbmFwc2hvdFxuXG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYi11bmktc25hcHNob3Qge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9IH1cblxuLmItdW5pLXNuYXBzaG90X190aWxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogNzAlO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICNmZmY7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgLmItdW5pLXNuYXBzaG90X190aWxlIHtcbiAgICAgIHBhZGRpbmctdG9wOiA4MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAuYi11bmktc25hcHNob3RfX3RpbGUge1xuICAgICAgcGFkZGluZy10b3A6IDEwMCU7IH0gfVxuICAuYi11bmktc25hcHNob3RfX3RpbGUtY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMTBweDtcbiAgICBib3R0b206IDEwcHg7XG4gICAgbGVmdDogMTBweDsgfVxuICAuYi11bmktc25hcHNob3RfX3RpbGUtdGl0bGUge1xuICAgIG1pbi1oZWlnaHQ6IDMycHg7IH1cbiAgLmItdW5pLXNuYXBzaG90X190aWxlLWZpZ3VyZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAuYi11bmktc25hcHNob3RfX3RpbGUtY29tcGFyZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICB3aWR0aDogNTAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAuYi11bmktc25hcHNob3RfX3RpbGUtY29tcGFyZSB7XG4gICAgICAgIHdpZHRoOiA1NSU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgICAgIC5iLXVuaS1zbmFwc2hvdF9fdGlsZS1jb21wYXJlIHtcbiAgICAgICAgd2lkdGg6IDYwJTsgfSB9XG4gICAgLmItdW5pLXNuYXBzaG90X190aWxlLWNvbXBhcmU6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICB3aWR0aDogMTVweDtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgY29udGVudDogXCJcIjsgfVxuICAuYi11bmktc25hcHNob3RfX3RpbGUtdXBkYXRlZCB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5iLXVuaS1zbmFwc2hvdF9faWNvbi0tdXAsIC5iLXVuaS1zbmFwc2hvdF9faWNvbi0tZG93biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7IH1cblxuLmItdW5pLXNuYXBzaG90X19pY29uLS11cCB7XG4gIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgI2ZmZjsgfVxuXG4uYi11bmktc25hcHNob3RfX2ljb24tLWRvd24ge1xuICBib3JkZXItdG9wOiAxMHB4IHNvbGlkICNmZmY7IH1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcbk5vdGlmaWNhdGlvbiBiYXJcblxuRGlzcGxheXMgbGF0ZXN0IG5vdGlmaWNhdGlvbiBhbmQgbGluayB0byB0byBub3RpZmljYXRpb25zIHBhZ2VcblxuTWFya3VwOiBkZW1vLm5vdGlmaWNhdGlvbi1iYXIuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5Ob3RpZmljYXRpb24gYmFyXG5cbiovXG4uYi1ub3RpZmljYXRpb24tYmFyIHtcbiAgcGFkZGluZy10b3A6IDI4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmItbm90aWZpY2F0aW9uLWJhciB7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkge1xuICAgIC5iLW5vdGlmaWNhdGlvbi1iYXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7IH0gfVxuICAuYi1ub3RpZmljYXRpb24tYmFyX19iYWRnZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogI2U2NDYyNjtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuYi1ub3RpZmljYXRpb24tYmFyX190ZXh0IHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5iLW5vdGlmaWNhdGlvbi1iYXJfX3RleHQuYi10ZXh0LS1zaXplLWxhcmdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qXG5Db250ZW50IEdyb3VwXG5cbkxheW91dCBjb21wb25lbnQgd2l0aCB2YXJpb3VzIG9wdGlvbnMuIEhhcyBwYXJzeXMgdG8gZHJvcCBjb21wb25lbnRzIHdpdGhpbi5cblxuTWFya3VwOiBkZW1vLmNvbnRlbnQtZ3JvdXAuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5Db250ZW50IGdyb3VwXG4qL1xuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuLyoqXG4gKiBBZGQgYSBnbHBoeWljb24gdG8gYW55dGhpbmchXG4gKi9cbi8qXG4gKiBHaXZlIGVsZW1lbnRzIGEgbmljZSBicm93c2VyIGZvY3VzIGFwcGVhcmFuY2UgKHJpcHBlZCBmcm9tIEJTKVxuICovXG4vKlxuICogUmVzZXQgc3R5bGVzIHdoZXJlIHVsIGFuZCBsaSBlbGVtZW50cyBhcmUgYmVpbmcgdXNlZCBmb3Igc2VtYW50aWMgbWVhbmluZywgbm90IGRpc3BsYXkuIFVzZSBzcGFyaW5nbHksIGZvciBjb21wYXRpYmlsaXR5XG4gKiBvbmx5IGFuZCB0YWtlIG5vdGUgdGhhdCB0aGlzIGNhbiB1bmludGVudGlvbmFsbHkgYWZmZWN0IG5lc3RlZCBsaXN0cy5cbiAqL1xuLypcblJpY2ggdGV4dCBlZGl0b3JcblxuUmljaCB0ZXh0IGVkaXRvciB3cmFwcGVyXG5cbk1hcmt1cDogZGVtby5yaWNoLXRleHQtZWRpdG9yLmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuUmljaCB0ZXh0IGVkaXRvclxuICovXG4uYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi1uZXdzLWNsaXBfX3N1bW1hcnkgLmItcnRlIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMDsgfVxuXG4uYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi1ydGUgcCB7XG4gIG1hcmdpbjogMCAwIDIwcHg7IH1cbiAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItcnRlIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luOiAwIDAgMzBweDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuSW5zaWdodHMgdG9vbHNcblxuSW5zaWdodHMgdG9vbHMgY29tcG9uZW50XG5cbk1hcmt1cDogZGVtby5pbnNpZ2h0cy10b29scy5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkluc2lnaHRzIHRvb2xzXG4qL1xuLmItaW5zaWdodHMtdG9vbHMge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5iLWluc2lnaHRzLXRvb2xzX190aWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy10b3A6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgIC5iLWluc2lnaHRzLXRvb2xzX190aWxlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKDgwJSAtIDEwcHggLSA0cHgpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIC5iLWluc2lnaHRzLXRvb2xzX190aWxlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKDEwMCUgLSAxNXB4IC0gNHB4KTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgICAuYi1pbnNpZ2h0cy10b29sc19fdGlsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogY2FsYygxMDAlIC0gMjBweCAtIDRweCk7IH0gfVxuICAuYi1pbnNpZ2h0cy10b29sc19fY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgfVxuICAuYi1pbnNpZ2h0cy10b29sc19fdGl0bGUge1xuICAgIG1hcmdpbjogMjBweCAwIDA7XG4gICAgbWluLWhlaWdodDogNDJweDtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgIC5iLWluc2lnaHRzLXRvb2xzX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gIC5iLWluc2lnaHRzLXRvb2xzX19pY29uIHtcbiAgICBmb250LXNpemU6IDQ4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk4MHB4KSB7XG4gICAgLnVzeWQtbGFyZ2UgLmItaW5zaWdodHMtdG9vbHMge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgICAudXN5ZC1sYXJnZSAuYi1pbnNpZ2h0cy10b29scyB7XG4gICAgICB3aWR0aDogMjUlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLnVzeWQteGxhcmdlIC5iLWluc2lnaHRzLXRvb2xzIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAudXN5ZC14bGFyZ2UgLmItaW5zaWdodHMtdG9vbHMge1xuICAgICAgd2lkdGg6IDI1JTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMzAwcHgpIHtcbiAgICAudXN5ZC14bGFyZ2UgLmItaW5zaWdodHMtdG9vbHMge1xuICAgICAgd2lkdGg6IDIwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLXpvbmUtLTIgLnVzeWQteGxhcmdlIC5iLWluc2lnaHRzLXRvb2xzIHtcbiAgICAgIHdpZHRoOiA1MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTgwcHgpIHtcbiAgICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi16b25lLS0yIC51c3lkLXhsYXJnZSAuYi1pbnNpZ2h0cy10b29scyB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEzMDBweCkge1xuICAgIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlIC5iLXpvbmUtLTIgLnVzeWQteGxhcmdlIC5iLWluc2lnaHRzLXRvb2xzIHtcbiAgICAgIHdpZHRoOiAyNSU7IH0gfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuTmV3IGRhdGEgc2V0c1xuXG5NYXJrdXA6IGRlbW8ubmV3LWRhdGEtc2V0cy5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLk5ldyBkYXRhIHNldHNcbiovXG4uYi1uZXctZGF0YS1zZXRzIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5iLW5ldy1kYXRhLXNldHMge1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSAyMHB4KTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5ODBweCkge1xuICAgIC5iLW5ldy1kYXRhLXNldHMge1xuICAgICAgd2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7IH0gfVxuICAuYi1uZXctZGF0YS1zZXRzX19jb21wbGV0aW9uLXJhdGVzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbiAgLmItbmV3LWRhdGEtc2V0c19faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMXB4O1xuICAgIGxlZnQ6IDA7IH1cblxuLypcbllhbW1lciBlbWJlZFxuXG5ZYW1tZXIgZW1iZWQgd2lkZ2V0IGNvbXBvbmVudFxuXG5NYXJrdXA6IGRlbW8ueWFtbWVyLWVtYmVkLmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuWWFtbWVyIGVtYmVkXG4qL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5iLXlhbW1lciB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4uYi15YW1tZXJfX2xpbms6bnRoLWNoaWxkKDIpIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cblxuLmIteWFtbWVyX19lbWJlZC1hcmVhIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuICBwYWRkaW5nLWJvdHRvbTogMTAwJTtcbiAgaGVpZ2h0OiAwOyB9XG4gIC5iLXlhbW1lcl9fZW1iZWQtYXJlYSBpZnJhbWUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG5cbi8qXG5JbnNpZ2h0cyBEYXNoYm9hcmRcblxuRGlzcGxheXMgYXZhaWxhYmxlIGRhc2hib2FyZHMgdG8gdGhlIHVzZXJcblxuTWFya3VwOiBkZW1vLmluc2lnaHRzLWRhc2hib2FyZi5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkluc2lnaHRzIGRhc2hib2FyZFxuXG4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYi1pbnNpZ2h0cy1kYXNoYm9hcmQge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4OyB9IH1cblxuLmItaW5zaWdodHMtZGFzaGJvYXJkX19jb21wb25lbnQge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX3JvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0yMHB4OyB9IH1cblxuLmItaW5zaWdodHMtZGFzaGJvYXJkX19yb3c6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7IH1cblxuLmItaW5zaWdodHMtZGFzaGJvYXJkX19jb2wge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5iLWluc2lnaHRzLWRhc2hib2FyZF9fY29sIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgd2lkdGg6IDUwJTsgfSB9XG5cbi5iLWluc2lnaHRzLWRhc2hib2FyZF9fY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgIC5iLWluc2lnaHRzLWRhc2hib2FyZF9fY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgMjBweCk7IH0gfVxuICAuYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX2NvbnRlbnQ6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuLmItaW5zaWdodHMtZGFzaGJvYXJkX190aWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAuYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX3RpbGUge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpOyB9IH1cblxuLmItaW5zaWdodHMtZGFzaGJvYXJkX19ib3gge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNzJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX2JveC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmItaW5zaWdodHMtZGFzaGJvYXJkX190aXRsZTphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogXCJcIjsgfVxuXG4uYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX3RpdGxlLXRleHQge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX3RpdGxlLXRleHQge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG4uYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX3RpdGxlLWxpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuYi1pbnNpZ2h0cy1kYXNoYm9hcmRfX3RpdGxlLWxpbmsge1xuICAgICAgZmxvYXQ6IHJpZ2h0OyB9IH1cblxuLypcbiAgICBMYXlvdXRzXG4gICAgTGF5b3V0IGNsYXNzZXMgZGVmaW5lIHRoZSBjb21wb25lbnQgYW5kIHBhZ2UgbGF5b3V0cy5cbiovXG4vKlxuQ29tcG9uZW50IGJsb2NrXG5cbkFwcGxpZXMgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIGNvbXBvbmVudHMsIGRlZmF1bHQgaGFzIG1hcmdpbiBib3R0b20gc3BhY2UgZm9yIHRoZSBnYXAuXG5cbi5iLWNvbXBvbmVudC0tcmljaC1jb250ZW50ICAgICAgLSBSaWNoIGNvbnRlbnQgY29tcG9uZW50IGhhcyBzbWFsbGVyIG1hcmdpbiBib3R0b20gc3BhY2UgYXMgdGhlIGNvbnRlbnQgbGluZSBoZWlnaHQgdGFrZXMgNXB4IGF0IHRoZSBib3R0b21cbi5iLWNvbXBvbmVudC0tbWFyZ2luLXRvcC1maXggICAgLSBBZGQgY29tcG9uZW50IG1hcmdpbiB0b3Agc3BhY2Vcbi5iLWNvbXBvbmVudC0tbWFyZ2luLW5vLXRvcCAgICAgLSBSZW1vdmUgbWFyZ2luIHRvcCBzcGFjZVxuLmItY29tcG9uZW50LS1sb29zZSAgICAgICAgICAgICAtIEluY3JlYXNlZCBzcGFjaW5nXG4uYi1jb21wb25lbnQtLXRpZ2h0ICAgICAgICAgICAgIC0gNTAlIG9mIHRoZSBtb2R1bGUgc3BhY2luZyAoMTVweCkgbm9ybWFsbHkgaXMgZm9yIHN1YiBjb21wb25lbnRzIGdhcFxuLmItY29tcG9uZW50LS1taWQtdGlnaHRlciAgICAgICAtIDIwcHggbW9kdWxlIHNwYWNpbmdcbi5iLWNvbXBvbmVudC0tdGlnaHRlciAgICAgICAgICAgLSBPbmUgdGhpcmQgb2YgdGhlIG1vZHVsZSBzcGFjaW5nICgxMHB4KVxuLmItY29tcG9uZW50LS10aWdodGVzdCAgICAgICAgICAtIE5vIHNwYWNpbmdcbi5iLWNvbXBvbmVudC0tdGlueSAgICAgICAgICAgICAgLSA1cHggbWFyZ2luIGJvdHRvbSBzcGFjZVxuLmItY29tcG9uZW50LS1kb3VibGUgICAgICAgICAgICAtIERvdWJsZSBtb2R1bGUgc3BhY2luZyAoNjBweClcbi5iLWNvbXBvbmVudC0tcGFnZS10aXRsZS10b3AgICAgLSBNYXJnaW4gdG9wIHNwYWNlIGZvciBjb21wb25lbnQgdW5kZXIgdGhlIHBhZ2UgdGl0bGVcbi5iLWNvbXBvbmVudC0taGlkZGVuICAgICAgICAgICAgLSBIaWRlIHRoZSBjb21wb25lbnRcbi5iLWNvbXBvbmVudC0tcm0tZmxvYXQgICAgICAgICAgLSBSZW1vdmUgZmxvYXRcbi5iLWNvbXBvbmVudC0tcGFnZS1zcGVjaWZ5ICAgICAgLSBFbXB0eSBjbGFzcyBmb3IgcGFnZSBzcGVjaWZ5IHZhbHVlXG5cbk1hcmt1cDpcbjxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOmxpZ2h0cGluaztcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYi1jb21wb25lbnQge3ttb2RpZmllcl9jbGFzc319IGItYm94IGItYm94LS1ncmV5XCIgc3R5bGU9XCJoZWlnaHQ6MTAwcHg7XCI+TXkgY29tcG9uZW50PC9kaXY+XG4gICAgPHA+TmV4dCBjb21wb25lbnQ8L3A+XG48L2Rpdj5cblxuU3R5bGUgZ3VpZGU6IExheW91dC5Db21wb25lbnRcbiovXG4uYi1jb21wb25lbnQge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5iLWNvbXBvbmVudC0tbW9iaWxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7IH0gfVxuICAuYi1jb21wb25lbnQtLXJpY2gtY29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDsgfVxuICAuYi1jb21wb25lbnQtLW1hcmdpbi10b3AtZml4IHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4OyB9XG4gIC5iLWNvbXBvbmVudC0tbWFyZ2luLW5vLXRvcCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAuYi1jb21wb25lbnQtLWxvb3NlIHtcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4OyB9XG4gIC5iLWNvbXBvbmVudC0tdGlnaHQge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLmItY29tcG9uZW50LS1taWQtdGlnaHRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAuYi1jb21wb25lbnQtLXRpZ2h0ZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgLmItY29tcG9uZW50LS10aWdodGVzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuYi1jb21wb25lbnQtLXRpbnkge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAuYi1jb21wb25lbnQtLWRvdWJsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNjBweDsgfVxuICAuYi1jb21wb25lbnQtLXBhZ2UtdGl0bGUtZ2FwIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4OyB9XG4gIC5iLWNvbXBvbmVudC0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmItY29tcG9uZW50LS1ybS1mbG9hdCB7XG4gICAgZmxvYXQ6IG5vbmU7IH1cbiAgLmItcGFnZS0tc2VjdGlvbiAuYi1jb21wb25lbnQtLXBvc2l0aW9uLW92ZXJyaWRlIHtcbiAgICBmbG9hdDogbm9uZTsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuR3JpZFxuXG5JdCB1c2VzIHdpdGggZ3JpZCBodHRwOi8vY29sb3VyZ2FyZGVuLm5ldC9hdmFsYW5jaGUvIHRvIGZpeCB0aGUgY29udGFpbmVyIGFsaWdubWVudCBpc3N1ZXNcbmNhdXNlZCBieSB0aGUgc3lzdGVtIGRlZmF1bHQgZ3JpZCBsYXlvdXRcblxuLmItZ3JpZC0tY29sXG4uYi1ncmlkLS1jb2wtdGFibGV0LXVwXG4uYi1ncmlkLS1jb2wtbW9iaWxlLXVwXG5cblN0eWxlIGd1aWRlOiBMYXlvdXQuR3JpZFxuKi9cbi5iLWdyaWQtd3JhcHBlci0tY29sIHtcbiAgbWFyZ2luLXJpZ2h0OiAtMjBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmItZ3JpZC13cmFwcGVyLS1jb2wtdGFibGV0LXVwIHtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5iLWdyaWQtd3JhcHBlci0tY29sLW1vYmlsZS11cCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMjBweDsgfSB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qKlxuUGFnZVxuXG5HZW5lcmFsIHBhZ2UgbGF5b3V0XG5cbi5iLXBhZ2UtLXNlY3Rpb24gLSBzZWN0aW9uIHBhZ2VcblxuU3R5bGUgZ3VpZGU6IExheW91dC5Qb3NpdGlvblxuKi9cbi5iLXBhZ2VfX2NvbC0tbWFpbiBoMTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7IH1cblxuLmItcGFnZS0tc2VjdGlvbiAuYi1jb21wb25lbnQtLXBhZ2Utc3BlY2lmeSB7XG4gIGZsb2F0OiBub25lOyB9XG5cbi8qKlxuKlxuKiBTdHlsZSBndWlkZTogTGF5b3V0LlNlY3Rpb25cbiovXG4uYi1zZWN0aW9uX19jb250YWluZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5iLXNlY3Rpb25fX2NvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuYi1zZWN0aW9uX19jb250YWluZXIgPiAqIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi8qXG5DYWxjdWxhdGluZyB0aGUgZGVzaXJlZCB3aWR0aCBvZiBhIGNvbnRhaW5lciB3aGlzdCBrZWVwaW5nIHRoZSByYXRpbyBvZiB3aWR0aCB0byBoZWlnaHQgZml4ZWQuIFVzZWZ1bCBmb3JcbmNhbGN1bGF0aW5nIHRoZSBzaXplIG9mIGNvbnRhaW5lcnMgZGVzaWduZWQgdG8gZGlzcGxheSBpbWFnZXMsIHdpdGggdGhlIGltYWdlIHNwZWNpZmllZCBhcyBhIGJhY2tncm91bmQuXG5cblRoaXMgZnVuY3Rpb24gaGFzIHR3byBtb2RlczpcbjEuIEFic29sdXRlIG1vZGUgKCRiYXNlV2lkdGggaXMgc3BlY2lmaWVkIGluIHB4LCBlbXMsIHJlbXMpIHdpbGwgY2FsY3VsYXRlIHRoZSBjb3JyZWN0IGhlaWdodCBnaXZlbiB0aGUgd2lkdGggYW5kIHJhdGlvIHNwZWNpZmllZCBhbmQgc2V0IGZpeGVkIHZhbHVlc1xuMi4gUmVsYXRpdmUgbW9kZSAoJGJhc2VXaWR0aCBpcyBhIHBlcmNlbnRhZ2UpIGNhdXNlcyB0aGUgY29udGFpbmVyIHRvIHNjYWxlIHRoZSBoZWlnaHQgaW4gcmF0aW8gd2hlbiB0aGUgd2lkdGggY2hhbmdlc1xuKi9cbi8qKlxuICogQWRkIGEgZ2xwaHlpY29uIHRvIGFueXRoaW5nIVxuICovXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuLypcbiAqIFJlc2V0IHN0eWxlcyB3aGVyZSB1bCBhbmQgbGkgZWxlbWVudHMgYXJlIGJlaW5nIHVzZWQgZm9yIHNlbWFudGljIG1lYW5pbmcsIG5vdCBkaXNwbGF5LiBVc2Ugc3BhcmluZ2x5LCBmb3IgY29tcGF0aWJpbGl0eVxuICogb25seSBhbmQgdGFrZSBub3RlIHRoYXQgdGhpcyBjYW4gdW5pbnRlbnRpb25hbGx5IGFmZmVjdCBuZXN0ZWQgbGlzdHMuXG4gKi9cbi8qKlxuSW5zaWdodHMgUG9ydGFsIHBhZ2UgdGVtcGxhdGVcblxuU3BlY2lmaWNlIHN0eWxlcyBmb3IgdGhlIEluc2lnaHRzIHBvcnRhbCBwYWdlXG5cblN0eWxlIGd1aWRlOiBMYXlvdXQuUGFnZSB0ZW1wbGF0ZXMuSW5zaWdodHMgcG9ydGFsXG4qL1xuLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgLmItem9uZS0tMSAubmV3LnNlY3Rpb24sXG4uYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi16b25lLS0yIC5uZXcuc2VjdGlvblxuLmItem9uZS0tNCAubmV3LnNlY3Rpb24ge1xuICBtYXJnaW4tbGVmdDogMjBweDsgfVxuXG4vKlxuQ2FsY3VsYXRpbmcgdGhlIGRlc2lyZWQgd2lkdGggb2YgYSBjb250YWluZXIgd2hpc3Qga2VlcGluZyB0aGUgcmF0aW8gb2Ygd2lkdGggdG8gaGVpZ2h0IGZpeGVkLiBVc2VmdWwgZm9yXG5jYWxjdWxhdGluZyB0aGUgc2l6ZSBvZiBjb250YWluZXJzIGRlc2lnbmVkIHRvIGRpc3BsYXkgaW1hZ2VzLCB3aXRoIHRoZSBpbWFnZSBzcGVjaWZpZWQgYXMgYSBiYWNrZ3JvdW5kLlxuXG5UaGlzIGZ1bmN0aW9uIGhhcyB0d28gbW9kZXM6XG4xLiBBYnNvbHV0ZSBtb2RlICgkYmFzZVdpZHRoIGlzIHNwZWNpZmllZCBpbiBweCwgZW1zLCByZW1zKSB3aWxsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBoZWlnaHQgZ2l2ZW4gdGhlIHdpZHRoIGFuZCByYXRpbyBzcGVjaWZpZWQgYW5kIHNldCBmaXhlZCB2YWx1ZXNcbjIuIFJlbGF0aXZlIG1vZGUgKCRiYXNlV2lkdGggaXMgYSBwZXJjZW50YWdlKSBjYXVzZXMgdGhlIGNvbnRhaW5lciB0byBzY2FsZSB0aGUgaGVpZ2h0IGluIHJhdGlvIHdoZW4gdGhlIHdpZHRoIGNoYW5nZXNcbiovXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuLypcbiAqIEdpdmUgZWxlbWVudHMgYSBuaWNlIGJyb3dzZXIgZm9jdXMgYXBwZWFyYW5jZSAocmlwcGVkIGZyb20gQlMpXG4gKi9cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG4vKlxuRmxvYXQgY29udHJvbFxuXG5GSVhNRTogdGhpcyBjbGFzcyBpcyB0aGUgaGFjayBvZiByZW1vdmluZyBmbG9hdGluZyBsZWZ0LCByZW1vdmUgdGhpcyBjbGFzcyBvbmNlIHdlIGhhdmUgYSBjaGFuY2UgdG8gcmVmYWN0b3IgdGhlIGxheW91dCBvZiB0aGUgSW50cmFuZXRcblxuU3R5bGUgZ3VpZGU6IExheW91dC5GbG9hdCBoYWNrXG4qL1xuLmItZmxvYXQtaGFjay0tbm8tZmxvYXQge1xuICBmbG9hdDogbm9uZSAhaW1wb3J0YW50OyB9XG4iLCIvL1RPRE8gbW92ZSBnbG9iYWwgaW50byAuLi9iYXNlLnNjc3MuXG4vL0dsb2JhbCBmb3IgdGhlIGludHJhbmV0IGNvbXBvbmVudHNcbi5zci1vbmx5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4vKipcbiAgICBCYXNlXG4gICAgQmFzZSBpcyB0aGUgZnVuZGFtZW50YWwgc3R5bGUgZm9yIHRoZSB3aG9sZSBzaXRlLlxuICAgIENsYXNzZXMgZGVmaW5lZCBmdW5kYW1lbnRhbCBlbGVtZW50cyBzdWNoIGFzIHRleHQgYW5kIHRpdGxlIHNob3VsZCBiZSBoZXJlLlxuKi9cbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ZpZ3VyZS9maWd1cmVcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2ljb24vaWNvblwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbGluay9saW5rXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9ydWxlL3J1bGVcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3JpY2gtY29udGVudC9yaWNoLWNvbnRlbnRcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3RpdGxlL3RpdGxlXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy90ZXh0L3RleHRcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2hpZGRlbi9oaWRkZW5cIjtcbi8vQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvaWNvbi9pY29uXCI7XG5cbi8qXG4gICAgQmxvY2tzXG4qL1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvYm94L2JveFwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvblwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvZmlndXJlL2ZpZ3VyZVwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvcG9zaXRpb24vcG9zaXRpb25cIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3NlZS1tb3JlLWJ1dHRvbi9zZWUtbW9yZS1idXR0b25cIjtcbi8vLS0tRm9ybSBibG9ja3MtLS1cbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2xcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Zvcm0vZm9ybVwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3hcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duXCI7XG5cbi8qXG4gICAgQ29tcG9uZW50c1xuKi9cbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb25cIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9mYWN0LWxpc3QvZmFjdC1saXN0XCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9oZXJvLXN0b3J5L2hlcm8tc3RvcnlcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2hlcm8tc3RvcnkvaGVyby1zdG9yeS1nYWxsZXJ5XCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9pbWFnZS1nYWxsZXJ5L2ltYWdlLWdhbGxlcnlcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL25ld3MtY2xpcC9uZXdzLWNsaXBcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3B1bGwtcXVvdGUvcHVsbC1xdW90ZVwiO1xuXG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy90ZXh0LWltYWdlL3RleHQtaW1hZ2VcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3RpbWVsaW5lL3RpbWVsaW5lXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy90b3AtYmFyL3RvcC1iYXJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3VuaS1zbmFwc2hvdC91bmktc25hcHNob3RcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi1iYXIvbm90aWZpY2F0aW9uLWJhclwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvY29udGVudC1ncm91cC9jb250ZW50LWdyb3VwXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3JpY2gtdGV4dC1lZGl0b3JcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2luc2lnaHRzLXRvb2xzL2luc2lnaHRzLXRvb2xzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9uZXctZGF0YS1zZXRzL25ldy1kYXRhLXNldHNcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3lhbW1lci1lbWJlZC95YW1tZXItZW1iZWRcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2luc2lnaHRzLWRhc2hib2FyZC9pbnNpZ2h0cy1kYXNoYm9hcmRcIjtcblxuXG4vKlxuICAgIExheW91dHNcbiAgICBMYXlvdXQgY2xhc3NlcyBkZWZpbmUgdGhlIGNvbXBvbmVudCBhbmQgcGFnZSBsYXlvdXRzLlxuKi9cbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2NvbXBvbmVudC9jb21wb25lbnRcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2dyaWQtd3JhcHBlci9ncmlkLXdyYXBwZXJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL3BhZ2UvcGFnZVwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvc2VjdGlvbi9zZWN0aW9uXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9wYWdlLXRlbXBsYXRlcy9pbnNpZ2h0cy1wb3J0YWxcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnRzL2Zsb2F0LWhhY2svZmxvYXQtaGFja1wiO1xuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImNvbG9yc1wiO1xuXG4vLyBMYXJnZSBkZXNrdG9wcyBhbmQgdXBcbkBtaXhpbiBtZWRpYS14bGFyZ2Uge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEteGxhcmdlLW1pbikge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtZWRpYS1sYXJnZS11cCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1sYXJnZS1taW4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBTbWFsbGVyIGRlc2t0b3BzXG5AbWl4aW4gbWVkaWEtbGFyZ2Uge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtbGFyZ2UtbWluKSBhbmQgKG1heC13aWR0aDogJG1lZGlhLWxhcmdlLW1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtZWRpYS1sYXJnZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLWxhcmdlLW1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtZWRpYS1zbWFsbC11cCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtZWRpYS1zbWFsbC1taW4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBQb3J0cmFpdCB0YWJsZXRzIHVwIHRvIGxhbmRzY2FwZSB0YWJsZXRzXG5AbWl4aW4gbWVkaWEtc21hbGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWVkaWEtc21hbGwtbWluKSBhbmQgKG1heC13aWR0aDogJG1lZGlhLXNtYWxsLW1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtZWRpYS1zbWFsbC1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXNtYWxsLW1heCkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIFBob25lcyB1cCB0byBwb3J0cmFpdCB0YWJsZXRzXG5AbWl4aW4gbWVkaWEteHNtYWxsIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGlhLXhzbWFsbC1tYXgpIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaGktZHBpIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDE0NGRwaSkge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBtYWtlLXJvdygkZ3JpZEd1dHRlcldpZHRoOiAkZ3JpZEd1dHRlcldpZHRoKSB7XG4gICAgbWFyZ2luLWxlZnQ6ICRncmlkR3V0dGVyV2lkdGggKiAtMTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xufVxuXG5AbWl4aW4gbWFrZS1zcGFuKCRjb2x1bW5zOiAxLCAkb2Zmc2V0OiAwLCAkZ3JpZENvbHVtbldpZHRoOiAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoOiAkZ3JpZEd1dHRlcldpZHRoKSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWxlZnQ6ICgkZ3JpZENvbHVtbldpZHRoICogJG9mZnNldCkgKyAoJGdyaWRHdXR0ZXJXaWR0aCAqICgkb2Zmc2V0IC0gMSkpICsgKCRncmlkR3V0dGVyV2lkdGggKiAyKTtcbiAgICB3aWR0aDogc3Bhbi13aWR0aCgkY29sdW1ucywgJGdyaWRDb2x1bW5XaWR0aCwgJGdyaWRHdXR0ZXJXaWR0aCk7XG59XG5cbkBmdW5jdGlvbiBzcGFuLXdpZHRoKCRjb2x1bW5zOiAxLCAkZ3JpZENvbHVtbldpZHRoOiAkZ3JpZENvbHVtbldpZHRoLCAkZ3JpZEd1dHRlcldpZHRoOiAkZ3JpZEd1dHRlcldpZHRoKSB7XG4gICAgQHJldHVybiAoJGdyaWRDb2x1bW5XaWR0aCAqICRjb2x1bW5zKSArICgkZ3JpZEd1dHRlcldpZHRoICogKCRjb2x1bW5zIC0gMSkpO1xufVxuXG5AbWl4aW4gZm9udGVsbG8taWNvbigkaWNvbiwgJHNpemU6IG51bGwpIHtcbiAgICAvLyBTQVNTIGRvZXMgbm90IGhhbmRsZSB0cnlpbmcgdG8gY29uc3RydWN0IHRoZSBlc2NhcGVkIGNoYXJhY3RlciBzZXF1ZW5jZSB3ZWxsLCBzbyB3ZSBuZWVkIHRvIGNvbnN0cnVjdCB0aGUgc3RyaW5nXG4gICAgLy8gd2VpcmRseSB0byBhdm9pZCB0aGUgY29tcGlsZXIgdHJ5aW5nIHRvIHBhcnNlIHdoYXQgd2UncmUgZG9pbmcuIFRoZSBlbmQgcmVzdWx0IHNob3VsZCBiZSB0aGUgZXF1aXZhbGVudCBvZiBzYXlpbmc6XG4gICAgLy8gY29udGVudDogXCJcXGUkaWNvblwiO1xuICAgIC8vIFdoZXJlIGljb24gaXMgYSAzLWRpZ2l0IGNoYXJhY3RlciBjb2RlIGdlbmVyYXRlZCBieSBGb250ZWxsb1xuICAgIGNvbnRlbnQ6IFwiXFxlI3t1bnF1b3RlKCRpY29uKX1cIjtcblxuICAgIGZvbnQtZmFtaWx5OiBmb250ZWxsbztcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAqem9vbTogZXhwcmVzc2lvbiggdGhpcy5ydW50aW1lU3R5bGVbJ3pvb20nXSA9ICcxJywgdGhpcy5pbm5lckhUTUwgPSAnJiN4ZSN7JGljb259OyZuYnNwOycpO1xuICAgIEBpZigkc2l6ZSkge1xuICAgICAgICBmb250LXNpemU6ICRzaXplO1xuICAgIH1cbn1cblxuQG1peGluIHJlc2V0LXdpZHRoIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgZmxvYXQ6IG5vbmU7XG59XG5cbi8vIEhpZGUgYW4gZWxlbWVudCBzbyBpdCdzIGludmlzaWJsZSB0byBldmVyeW9uZSAodmlzdWFsbHkgYW5kIG5vdCByZXBvcnRlZCB2aWEgQS9UcylcbkBtaXhpbiBoaWRlLWZyb20tZXZlcnlvbmUge1xuICAgIEBpbmNsdWRlIGhpZGUtZnJvbS1leWVzO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLyBWaXNpYmlseSBoaWRlIGFuIGVsZW1lbnQsIHJlbWFpbnMgdmlzaWJsZSBpbiB0aGUgRE9NIHNvIEEvVHMgY2FuIHN0aWxsIHJlcG9ydCBpdCB0byB1c2Vyc1xuQG1peGluIGhpZGUtZnJvbS1leWVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTk5OWVtO1xufVxuXG5AbWl4aW4gc2hvdy10by1leWVzIHtcbiAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICBsZWZ0OiBpbmhlcml0O1xufVxuXG5AbWl4aW4gc2hvdy10by1ldmVyeW9uZSB7XG4gICAgQGluY2x1ZGUgc2hvdy10by1leWVzO1xuICAgIGRpc3BsYXk6IGluaGVyaXQ7XG4gICAgdmlzaWJpbGl0eTogaW5oZXJpdDtcbn1cblxuLy8gPCBJRTktY29tcGF0aWJsZSBiZWZvcmUgc2VsZWN0b3Jcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Nvcnlkb3JuaW5nLzIzNjI0ODNcbkBtaXhpbiBiZWZvcmUge1xuICAgICY6YmVmb3JlLCAmID4gLmllLWJlZm9yZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICYge1xuICAgICAgICAvKiA6OmJlZm9yZSBwb2x5ZmlsbCAtIGNyZWF0ZXMgPGkgY2xhc3M9XCJpZS1iZWZvcmVcIj48L2k+ICovXG4gICAgICAgIHpvb206ICN7J2V4cHJlc3Npb24nfSgjeyd0aGlzLnJ1bnRpbWVTdHlsZS56b29tPVwiMVwiLHRoaXMuaW5zZXJ0QmVmb3JlKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaVwiKSwgdGhpcy5maXJzdENoaWxkICkuY2xhc3NOYW1lPVwiaWUtYmVmb3JlXCInfSk7XG4gICAgfVxufVxuXG4vLyA8IElFOS1jb21wYXRpYmxlIGFmdGVyIHNlbGVjdG9yXG4vLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9jb3J5ZG9ybmluZy8yMzYyNDgzXG5AbWl4aW4gYWZ0ZXIge1xuICAgICY6YWZ0ZXIsICYgPiAuaWUtYWZ0ZXIge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAmIHtcbiAgICAgICAgLyogOjphZnRlciBwb2x5ZmlsbCAtIGNyZWF0ZXMgPGkgY2xhc3M9XCJpZS1hZnRlclwiPjwvaT4gKi9cbiAgICAgICAgem9vbTogI3snZXhwcmVzc2lvbid9KCN7J3RoaXMucnVudGltZVN0eWxlLnpvb209XCIxXCIsdGhpcy5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlcIikgKS5jbGFzc05hbWU9XCJpZS1hZnRlclwiJ30pO1xuICAgIH1cbn1cblxuQG1peGluIHJlbS1zaXplKCRzaXplKSB7XG4gICAgQGlmKCRiYXNlLWZvbnQtc2l6ZSkge1xuICAgICAgICBmb250LXNpemU6ICRzaXplICogJGJhc2UtZm9udC1zaXplO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybiBcIk5vIGJhc2UtZm9udC1zaXplIHNwZWNpZmllZCBmb3IgcmVtLXNpemUgbWl4aW47IHVuZXhwZWN0ZWQgYmVoYXZpb3VyIGxpa2VseSBpbiBvbGRlciBicm93c2Vycy5cIjtcbiAgICB9XG4gICAgZm9udC1zaXplOiAjeyRzaXplfXJlbTtcbn1cblxuQG1peGluIHJlc3BvbnNpdmUtaW1hZ2UoJGRpc3BsYXk6IGJsb2NrKSB7XG4gICAgZGlzcGxheTogJGRpc3BsYXk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIHNlbGVjdCgkZm9udC1jb2xvciwgJGZvY3VzLWNvbG9yKSB7XG4gICAgY29sb3I6ICRmb250LWNvbG9yO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiAyOHB4OyAvKiAhPSBJRTcgKi9cbiAgICAqaGVpZ2h0OiBhdXRvOyAvKiBJRTcgKi9cbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRmb250LWNvbG9yLCAzMCUpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoM3B4KTtcbiAgICBAaW5jbHVkZSBzaW5nbGUtYm94LXNoYWRvdygwLCAwLCAycHgsIG51bGwsIHJnYmEoIzAwMCwgMC4yKSk7XG5cbiAgICAqcGFkZGluZzogMCAwIDAgM3B4OyAvKiBJRTcgKi9cbiAgICBwYWRkaW5nOiA0cHggMnB4IDRweCA0cHg7IC8qIElFOCAqL1xuICAgICY6bm90KFtkdW1teV0pIHtcbiAgICAgICAgcGFkZGluZzogNHB4IDJweCAycHggNHB4OyAvKiBOT1QgSUU3L0lFOCAqL1xuICAgIH1cblxuICAgICZbbXVsdGlwbGVdIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woaHVlKCRmb2N1cy1jb2xvciksIDgwJSwgMzAlKTtcbiAgICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZChsaW5lYXItZ3JhZGllbnQoI2ZlZmVmZSwgaHNsKGh1ZSgkZm9jdXMtY29sb3IpLCA5NSUsIDk4JSkpKTtcbiAgICB9XG59XG5cbkBtaXhpbiBzZWxlY3Qtd3JhcCB7XG4gICAgKnBhZGRpbmc6IDNweDtcbn1cblxuQG1peGluIHRleHQtaW5wdXQoJGZvbnQtY29sb3IsICRmb2N1cy1jb2xvcikge1xuICAgIGNvbG9yOiAkZm9udC1jb2xvcjtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgcGFkZGluZzogNHB4IDZweCAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkZm9udC1jb2xvciwgNDAlKTtcbiAgICBAaW5jbHVkZSBzaW5nbGUtYm94LXNoYWRvdygwLCAwLCAycHgsIGZhbHNlLCByZ2JhKCMwMDAsMC4zKSwgdHJ1ZSk7XG5cbiAgICAmOm5vdChbZHVtbXldKSB7XG4gICAgICAgIC8qIENvZGUgZm9yIE5PVCBJRTcvSUU4ICovXG4gICAgICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGhzbChodWUoJGZvY3VzLWNvbG9yKSwgODAlLCA0MCUpO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIHRleHRhcmVhKCRmb250LWNvbG9yLCAkZm9jdXMtY29sb3IpIHtcbiAgICBwYWRkaW5nOiA2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRmb250LWNvbG9yLCA0MCUpO1xuICAgIEBpbmNsdWRlIHNpbmdsZS1ib3gtc2hhZG93KDAsIDAsIDJweCwgZmFsc2UsIHJnYmEoIzAwMCwwLjMpLCB0cnVlKTtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBoc2woaHVlKCRmb2N1cy1jb2xvciksIDgwJSwgNDAlKTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24oJGJnLWNvbG91ciwgJGZvbnQtY29sb3VyOiAjZmZmLCAkcmVjb2xvdXItb25seTogZmFsc2UpIHtcbiAgICBAaWYgKCRyZWNvbG91ci1vbmx5KSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiZy1jb2xvdXI7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvdXI7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kZWZhdWx0KCRiZy1jb2xvdXIsICRmb250LWNvbG91cik7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLW92ZXIoJGJnLWNvbG91ciwgJGZvbnQtY29sb3VyKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kb3duKCRiZy1jb2xvdXIsICRmb250LWNvbG91cik7XG4gICAgfVxuXG4gICAgJjp2aXNpdGVkLCAmOmxpbmsge1xuICAgICAgICBjb2xvcjogJGZvbnQtY29sb3VyO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKGJsYWNrLCA0NiUpO1xuICAgICAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICB9XG59XG5cbkBtaXhpbiB0ZXh0LXNoYWRvdyAoJHg6IDAsICR5OiAwLCAkYmx1cjogMXB4LCAkY29sb3VyOiAjMDAwKSB7XG4gICAgdGV4dC1zaGFkb3c6ICR4ICR5ICRibHVyICRjb2xvdXI7XG59XG5cbkBtaXhpbiBidXR0b24tZGVmYXVsdCgkYmctY29sb3VyLCAkZm9udC1jb2xvdXI6ICNmZmYpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmctY29sb3VyO1xuICAgIGNvbG9yOiAkZm9udC1jb2xvdXI7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygycHgpO1xuXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIGxpbmUtaGVpZ2h0OiAyOXB4OyAvKiBJRTggKi9cbiAgICAqbGluZS1oZWlnaHQ6IDI4cHg7IC8qIElFNyAqL1xuXG4gICAgJjpub3QoW2R1bW15XSkge1xuICAgICAgICBsaW5lLWhlaWdodDogYXV0bzsgLyogTk9UIElFNy9JRTggKi9cbiAgICB9XG5cbiAgICAvLyBNYWlubHkgZm9yIGpRTSBidXR0b25zXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvdXI7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHRleHQtc2hhZG93KDAsIDFweCwgMCwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbn1cblxuLy8gTm90ZTogc3BlY2lmeSB0aGUgZm9udCBzdHlsZSBmb3IgdGhlICpiYXNlKiBidXR0b25cbkBtaXhpbiBidXR0b24tZG93bigkYmctY29sb3VyLCAkZm9udC1jb2xvdXI6ICNmZmYpIHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuQG1peGluIGJ1dHRvbi1vdmVyICgkYmctY29sb3VyLCAkZm9udC1jb2xvdXI6ICNmZmYpIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kKGxpbmVhci1ncmFkaWVudChsaWdodGVuKCRiZy1jb2xvdXIsIDclKSwgZGFya2VuKCRiZy1jb2xvdXIsIDclKSkpO1xuICAgIC8vIElFNyBjb21wbGFpbnMgYWJvdXQgaW5zZWN1cmUgY29udGVudCBpZiB5b3UgYXR0ZW1wdCB0byBsb2FkIGRhdGEgVVJJcyBvbiBIVFRQcyBkb21haW5zLCBzbyB3ZSBoYXZlIHRvIG1ha2Ugc3VyZVxuICAgIC8vIHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGF0dHJpYnV0ZVxuICAgIGJhY2tncm91bmQ6ICN7JGJnLWNvbG91cn1cXDk7XG4gICAgQGluY2x1ZGUgc2luZ2xlLWJveC1zaGFkb3coMCwgMXB4LCA1cHgsIG51bGwsIHJnYmEoIzAwMCwgMC40KSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHotaW5kZXggdG9vbHNcbi8vXG4vLyBVc2UgJGJhc2UtbGF5ZXItb2Zmc2V0IHRvIHNldCB0aGUgXCJzY29wZVwiIGZvciBhIGNvbGxlY3Rpb24gb2Ygei1pbmRleCB2YWx1ZXMuXG4vLyBlLmcuIEEgd2lkZ2V0IG1heSBzZXQgYSBiYXNlIGxheWVyIG9mZnNldCBvZiAxMDAgdG8gZ2l2ZSBpdCBzb21lIHByaW9yaXR5IG92ZXIgb3RoZXIgd2lkZ2V0cy5cbi8vIFlvdSBzaG91bGQgYmUgY2FyZWZ1bCBpbiBjaG9vc2luZyBhbiBvZmZzZXQsIGFzIHlvdXIgY29kZSBtYXkgaGF2ZSB0byBwbGF5IG5pY2Ugd2l0aCBvdGhlciB3aWRnZXRzIHdpdGggei1pbmRleCBvZmZzZXRzLlxuLy9cbi8vIFVzZSAkaW50ZXJuYWwtbGF5ZXItb2Zmc2V0IHRvIGZpbmUgdHVuZSBsYXllciBvcmRlcnMgd2l0aGluIGEgZ3JvdXAgb2YgZWxlbWVudHMuXG4vLyBlLmcuIEEgd2lkZ2V0IG1heSBoYXZlIHR3byBwb3B1cCBtb2RhbHMuIFNldHRpbmcgYW4gJGludGVybmFsLWxheWVyLW9mZnNldCBvZiAwIGFuZCAxIHdpbGwgZ2l2ZSBvbmUgd2luZG93IHByaW9yaXR5LlxuXG4kYmFzZS1sYXllci1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JjZS1sYXllcigpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcbn1cblxuQG1peGluIGxheWVyLXBvcHVwICgkaW50ZXJuYWwtbGF5ZXItb2Zmc2V0OiAwKSB7XG4gICAgJHBvcHVwLWxheWVyLW9mZnNldDogNTAwICFkZWZhdWx0O1xuICAgIHotaW5kZXg6ICRiYXNlLWxheWVyLW9mZnNldCArICRpbnRlcm5hbC1sYXllci1vZmZzZXQgKyA2MDA7XG59XG5cbkBtaXhpbiBsYXllci1vdmVybGF5ICgkaW50ZXJuYWwtbGF5ZXItb2Zmc2V0OiAwKSB7XG4gICAgJG92ZXJsYXktbGF5ZXItb2Zmc2V0OiA1MDAgIWRlZmF1bHQ7XG4gICAgei1pbmRleDogJGJhc2UtbGF5ZXItb2Zmc2V0ICsgJGludGVybmFsLWxheWVyLW9mZnNldCArIDUwMDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNb2Rlcm5penIgc3VwcG9ydCB0ZXN0c1xuLy8gSWYgbW9kZXJuaXpyIGlzIGF2YWlsYWJsZSwgaWYtc3VwcG9ydGVkIGFuZCBpZi1ub3Qtc3VwcG9ydGVkIGFyZSBhIGNvbnZlbmllbnQgd2F5IHRvIG1hcmsgc3R5bGVzIHRoYXQgcmVseVxuLy8gb24gYSBtb2Rlcm5penIgdGVzdFxuLy9cbi8vIEBpbmNsdWRlIGlmLXN1cHBvcnRlZChib3gtc2l6aW5nKSB7XG4vLyBcdFx0LmVsZW1lbnQge1xuLy9cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy9cdFx0fVxuLy8gfVxuXG5AbWl4aW4gaWYtc3VwcG9ydGVkKCRjaGVjaykge1xuICAgIEBpZiAkbW9kZXJuaXpyLXN1cHBvcnQgIT0gdHJ1ZSB7XG4gICAgICAgIEB3YXJuIFwiVGhpcyBmZWF0dXJlIHJlcXVpcmVzIE1vZGVybml6ciB0byBiZSBhdmFpbGFibGUuXCI7XG4gICAgfVxuICAgICRtb2Rlcm5penItc3VwcG9ydC1lbGVtZW50OiBcIlwiICFkZWZhdWx0O1xuICAgICN7JG1vZGVybml6ci1zdXBwb3J0LWVsZW1lbnR9LiN7JGNoZWNrfSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaWYtbm90LXN1cHBvcnRlZCgkY2hlY2spIHtcbiAgICBAaWYgJG1vZGVybml6ci1zdXBwb3J0ICE9IHRydWUge1xuICAgICAgICBAd2FybiBcIlRoaXMgZmVhdHVyZSByZXF1aXJlcyBNb2Rlcm5penIgdG8gYmUgYXZhaWxhYmxlLlwiO1xuICAgIH1cbiAgICAkbW9kZXJuaXpyLXN1cHBvcnQtZWxlbWVudDogXCJcIiAhZGVmYXVsdDtcbiAgICAjeyRtb2Rlcm5penItc3VwcG9ydC1lbGVtZW50fS5uby0jeyRjaGVja30gJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuXG5cbi8vLypcbi8vXHRDcmVhdGVzIGEgd2ViIGZvbnQgZGVmaW5pdGlvbiBiYXNlZCBvbiB0aGUgZGV0YWlscyBwcm92aWRlZC5cbi8vXG4vL1x0JGZvbnQtZmFtaWx5OiBUaGUgbmFtZSBvZiB0aGUgZm9udCBmYW1pbHkgdGhlIGZvbnQgYmVsb25ncyB0by4gVXNlIGluIGNvbWJpbmF0aW9uIHdpdGggJGZvbnQtd2VpZ2h0IGFuZCAkZm9udC1zdHlsZSB0byBjcmVhdGUgZnVsbCBmb250IGZhbWlsaWVzXG4vL1x0JGZvbnQtbmFtZTogTmFtZSBvZiB0aGUgZm9udCBmaWxlcy4gTm90ZSB0aGF0IGZvciBTVkcgZm9udHMgdGhlIGZvbnQgYW5jaG9yIG11c3QgYmUgdGhlIHNhbWUgYXMgJGZvbnQtbmFtZSAoQHNlZSBodHRwOi8vYmlsbHBhdHJpYW5ha29zLm1lL2Jsb2cvMjAxMi8xMi8yNi9maXgtd2ViZm9udC1yZW5kZXJpbmctaXNzdWVzLWluLWNocm9tZS1mb3Itd2luZG93cy8pXG4vL1x0JGZvbnQtZGlyZWN0b3J5OiBQYXRoIHRvIHRoZSBkaXJlY3RvcnkgdGhlIGZvbnQgZmlsZXMgcmVzaWRlIGluXG4vL1x0JGZvbnQtd2VpZ2h0OiBDU1MgZm9udCB3ZWlnaHQgZm9yIHRoaXMgZm9udCBkZWZpbml0aW9uXG4vL1x0JGZvbnQtc3R5bGU6IENTUyBmb250IHN0eWxlIGZvciB0aGlzIGZvbnQgZGVmaW5pdGlvblxuLy9cbi8vXHRFeGFtcGxlOlxuLy9cdEBpbmNsdWRlIGZvbnQoJ0FudHdlcnAnLCAnQW50d2VycC1Cb2xkSXRhbGljJywgJy4uL2ZvbnRzL2FudHdlcnAnLCBib2xkLCBpdGFsaWMpO1xuLy9cbi8vXHRPdXRwdXQ6XG4vL1x0QGZvbnQtZmFjZSB7XG4vL1x0XHRmb250LWZhbWlseTogJ0FudHdlcnAnO1xuLy9cdFx0c3JjOiB1cmwoXCIuLi9mb250cy9hbnR3ZXJwL0FudHdlcnAtQm9sZEl0YWxpYy5lb3RcIik7XG4vL1x0XHRzcmM6IHVybChcIi4uL2ZvbnRzL2FudHdlcnAvQW50d2VycC1Cb2xkSXRhbGljLmVvdD8jaWVmaXhcIikgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoXCIuLi9hc3NldHMvZm9udHMvYW50d2VycC9BbnR3ZXJwLUJvbGRJdGFsaWMud29mZlwiKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKFwiLi4vZm9udHMvYW50d2VycC9BbnR3ZXJwLUJvbGRJdGFsaWMudHRmXCIpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKFwiLi4vZm9udHMvYW50d2VycC9BbnR3ZXJwLUJvbGRJdGFsaWMuc3ZnI0FudHdlcnAtQm9sZEl0YWxpY1wiKSBmb3JtYXQoJ3N2ZycpO1xuLy9cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuLy9cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG4vL1x0XHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4vL1xuLy8vL1xuQG1peGluIGZvbnQoJGZvbnQtZmFtaWx5LCAkZm9udC1uYW1lLCAkZm9udC1kaXJlY3RvcnksICRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXIsICRmb250LXN0eWxlOiBub3JtYWwpIHtcblxuICAgIC8vIFRoaXMgbWFwIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGxpc3Qgb2YgdmFyaW91cyBmb250IHR5cGVzLiBTZWUgdGhlIEBlYWNoIGZ1bmN0aW9uIGJlbG93XG4gICAgJGZvbnQtdHlwZS1tYXA6IChcbiAgICAgICAgJ2VvdD8jaWVmaXgnOiAnZW1iZWRkZWQtb3BlbnR5cGUnLCAvKiBJRTYtSUU4ICovXG4gICAgICAgICd3b2ZmJzogJ3dvZmYnLCAvKiBNb2Rlcm4gQnJvd3NlcnMgKi9cbiAgICAgICAgJ3R0Zic6ICd0cnVldHlwZScsIC8qIFNhZmFyaSwgQW5kcm9pZCwgaU9TICovXG4gICAgICAgICdzdmcjI3skZm9udC1uYW1lfSc6ICdzdmcnLCAvKiBMZWdhY3kgaU9TICovXG4gICAgKSAhZGVmYXVsdDtcblxuICAgIEBmb250LWZhY2Uge1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgICAgICBzcmM6IHVybChcIiN7JGZvbnQtZGlyZWN0b3J5fS8jeyRmb250LW5hbWV9LmVvdFwiKTsgLy8gSUU5IGNvbXBhdGliaWxpdHkgbW9kZXNcbiAgICAgICAgJGZvbnQtbWFwOiAoKTtcbiAgICAgICAgQGVhY2ggJHN1ZmZpeCwgJGZvcm1hdCBpbiAkZm9udC10eXBlLW1hcCB7XG4gICAgICAgICAgICAkZm9udC1tYXA6IGFwcGVuZCgkZm9udC1tYXAsIHVybChcIiN7JGZvbnQtZGlyZWN0b3J5fS8jeyRmb250LW5hbWV9LiN7JHN1ZmZpeH1cIikgZm9ybWF0KCRmb3JtYXQpLCBjb21tYSk7XG4gICAgICAgIH1cbiAgICAgICAgc3JjOiAkZm9udC1tYXA7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRmb250LXN0eWxlO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgICAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIH1cbn1cblxuLypcbkNhbGN1bGF0aW5nIHRoZSBkZXNpcmVkIHdpZHRoIG9mIGEgY29udGFpbmVyIHdoaXN0IGtlZXBpbmcgdGhlIHJhdGlvIG9mIHdpZHRoIHRvIGhlaWdodCBmaXhlZC4gVXNlZnVsIGZvclxuY2FsY3VsYXRpbmcgdGhlIHNpemUgb2YgY29udGFpbmVycyBkZXNpZ25lZCB0byBkaXNwbGF5IGltYWdlcywgd2l0aCB0aGUgaW1hZ2Ugc3BlY2lmaWVkIGFzIGEgYmFja2dyb3VuZC5cblxuVGhpcyBmdW5jdGlvbiBoYXMgdHdvIG1vZGVzOlxuMS4gQWJzb2x1dGUgbW9kZSAoJGJhc2VXaWR0aCBpcyBzcGVjaWZpZWQgaW4gcHgsIGVtcywgcmVtcykgd2lsbCBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgaGVpZ2h0IGdpdmVuIHRoZSB3aWR0aCBhbmQgcmF0aW8gc3BlY2lmaWVkIGFuZCBzZXQgZml4ZWQgdmFsdWVzXG4yLiBSZWxhdGl2ZSBtb2RlICgkYmFzZVdpZHRoIGlzIGEgcGVyY2VudGFnZSkgY2F1c2VzIHRoZSBjb250YWluZXIgdG8gc2NhbGUgdGhlIGhlaWdodCBpbiByYXRpbyB3aGVuIHRoZSB3aWR0aCBjaGFuZ2VzXG4qL1xuQG1peGluIGRpbWVuc2lvbnMtZm9yLXJhdGlvKCRiYXNlV2lkdGgsICRyYXRpb1dpZHRoLCAkcmF0aW9IZWlnaHQpIHtcblxuICAgICRoZWlnaHQ6ICgkYmFzZVdpZHRoICogKCRyYXRpb0hlaWdodCAvICRyYXRpb1dpZHRoKSk7XG4gICAgd2lkdGg6ICRiYXNlV2lkdGg7XG4gICAgQGlmICh1bml0KCRiYXNlV2lkdGgpID09IFwiJVwiKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkaGVpZ2h0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVzIGEgYmxvY2stbGV2ZWwgZWxlbWVudCB0byB3b3JrIHByb3Blcmx5XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtaXhpbiBzdmdmaXgoJGhlaWdodCwgJHBhZGRpbmctYm90dG9tLCAkd2lkdGgpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgcGFkZGluZy1ib3R0b206ICRwYWRkaW5nLWJvdHRvbTtcbiAgICB3aWR0aDogJHdpZHRoO1xufVxuXG4vKipcbiAqIEFkZCBhIGdscGh5aWNvbiB0byBhbnl0aGluZyFcbiAqL1xuQG1peGluIGdseXBoaWNvbigkaWNvbiwgJHNpemU6IG51bGwpIHtcbiAgICBjb250ZW50OiAkaWNvbjtcbiAgICBmb250LWZhbWlseTogJ0dseXBoaWNvbnMgSGFsZmxpbmdzJztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgICBAaWYgKCRzaXplKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHNpemU7XG4gICAgfVxufVxuXG4vKlxuICogR2l2ZSBlbGVtZW50cyBhIG5pY2UgYnJvd3NlciBmb2N1cyBhcHBlYXJhbmNlIChyaXBwZWQgZnJvbSBCUylcbiAqL1xuQG1peGluIGZvY3VzIHtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZDtcbiAgICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbi8qXG4gKiBSZXNldCBzdHlsZXMgd2hlcmUgdWwgYW5kIGxpIGVsZW1lbnRzIGFyZSBiZWluZyB1c2VkIGZvciBzZW1hbnRpYyBtZWFuaW5nLCBub3QgZGlzcGxheS4gVXNlIHNwYXJpbmdseSwgZm9yIGNvbXBhdGliaWxpdHlcbiAqIG9ubHkgYW5kIHRha2Ugbm90ZSB0aGF0IHRoaXMgY2FuIHVuaW50ZW50aW9uYWxseSBhZmZlY3QgbmVzdGVkIGxpc3RzLlxuICovXG5AbWl4aW4gcmVzZXQtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuQG1peGluIHJlc2V0LWxpc3QtaXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8vIFN0cmlwcyB0aGUgbGVhZGluZyBoYXNoIGZyb20gYSBoZXggY29sb3VyLCByZXR1cm5pbmcgYSBzdHJpbmdcbkBmdW5jdGlvbiBzdHJpcC1oYXNoKCRjb2xvdXIpIHtcblxuICAgIC8vIENvbnZlcnQgQ29sb3IgdG8gU3RyaW5nIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgd2l0aCBzdHItc2xpY2VcbiAgICAkY29sb3VyLXN0cmluZzogJGNvbG91ciArIFwiXCI7XG5cbiAgICBAcmV0dXJuIHN0ci1zbGljZSgkY29sb3VyLXN0cmluZywgMik7XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuLypcbkZpZ3VyZVxuXG5SZXByZXNlbnRzIGFuIGlsbHVzdHJhdGlvbiwgdXN1YWxseSBhY2NvbXBhbnlpbmcgYSBib2R5IG9mIHRleHQuIFRoZSBmaWd1cmUgY2FuIGJlIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhlXG50ZXh0LCBvY2N1cHkgYSBjZXJ0YWluIGFtb3VudCBvZiBzcGFjZSBhbmQgb3B0aW9uYWxseSBoYXZlIGFuIGFjY29tcGFueWluZyBjYXB0aW9uLiBJbmNsdWRlcyBwZXJjZW50YWdlIHdpZHRoXG5oZWxwZXJzIGZvciBDTVMtYXV0aG9yZWQgY29udGVudC5cblxuTWFya3VwOiBkZW1vLmZpZ3VyZS5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuRmlndXJlXG4qL1xuXG4vKlxuRmlndXJlIChSZXNwb25zaXZlIGltYWdlKVxuXG5SZXByZXNlbnRzIGZpZ3VyZSB3aXRoIHJlc3BvbnNpdmUgaW1hZ2UgKFN3aXRjaGluZyBiZXR3ZWVuIDIgaW1hZ2VzIGRlc2t0b3AgYW5kIHZlcnRpY2FsIHRhYmxldC9tb2JpbGUpLlxuXG5NYXJrdXA6IGRlbW8uZmlndXJlLnJlc3BvbnNpdmUuaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkZpZ3VyZS5yZXNwb25zaXZlXG4qL1xuXG4vKlxuQmxlZWQgaW1hZ2UgKGF1dG8tYmxlZWQpXG5cbk1hcmt1cDogZGVtby5maWd1cmUuYmxlZWQtc3R5bGUuYXV0by5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuQmxlZWQuQXV0b1xuKi9cblxuLypcbkJsZWVkIGltYWdlIChibGVlZCBsZWZ0L3JpZ2h0KVxuXG4uYi1ib3gtLWJsZWVkLWxlZnQgLSBCb3ggYmxlZWRzIG91dCB0byB0aGUgbGVmdFxuLmItYm94LS1ibGVlZC1yaWdodCAtIEJveCBibGVlZHMgb3V0IHRvIHRoZSByaWdodFxuXG5NYXJrdXA6IGRlbW8uZmlndXJlLmJsZWVkLXN0eWxlLWxyLmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJsb2Nrcy5CbGVlZFxuKi9cblxuLmItZmlndXJlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAvKipcbiAgICBGaWd1cmUgKFBvc2l0aW9uKVxuXG4gICAgbGVmdCwgcmlnaHQgYW5kIGNlbnRyZVxuXG4gICAgLmItZmlndXJlLS1wdWxsLWxlZnQgLSBpbWFnZSBmbG9hdHMgb24gbGVmdCBzaWRlXG4gICAgLmItZmlndXJlLS1wdWxsLXJpZ2h0IC0gaW1hZ2UgZmxvYXRzIG9uIHJpZ2h0IHNpZGVcbiAgICAuYi1maWd1cmUtLWNlbnRyZSAtIGltYWdlIGluIHRoZSBjZW50cmVcblxuICAgIE1hcmt1cDogZGVtby5maWd1cmUucmVzcG9uc2l2ZS5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLkZpZ3VyZS5wb3NpdGlvblxuICAgICovXG4gICAgJi0tcHVsbC1yaWdodCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRjb21wb25lbnQtZ2FwO1xuICAgIH1cblxuICAgICYtLXB1bGwtbGVmdCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRjb21wb25lbnQtZ2FwO1xuICAgIH1cblxuICAgICYtLWNlbnRyZSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuXG4gICAgLy9XaWR0aCBTaXplIGNvbnRyb2xcbiAgICAmLS13aWR0aC1zbSB7XG4gICAgICAgIHdpZHRoOiAkd2lkdGgtc21hbGw7XG4gICAgfVxuXG4gICAgJi0td2lkdGgtbWQge1xuICAgICAgICB3aWR0aDogJHdpZHRoLW1lZGl1bTtcbiAgICB9XG5cbiAgICAmLS13aWR0aC1sZyB7XG4gICAgICAgIHdpZHRoOiAkd2lkdGgtbGFyZ2U7XG4gICAgfVxuXG4gICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtLXJhdGlvLTctOCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBkaW1lbnNpb25zLWZvci1yYXRpbygxMDAlLCA3LCA4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJhdGlvLTE2LTUge1xuICAgICAgICAgICAgQGluY2x1ZGUgZGltZW5zaW9ucy1mb3ItcmF0aW8oMTAwJSwgMTYsIDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmF0aW8tNC0zIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRpbWVuc2lvbnMtZm9yLXJhdGlvKDEwMCUsIDQsIDMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcmF0aW8tMi0xIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRpbWVuc2lvbnMtZm9yLXJhdGlvKDEwMCUsIDIsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9ob21lIHBhZ2UgbmV3cyBjbGlwXG4gICAgICAgICYtLXJhdGlvLTY1LTQwIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRpbWVuc2lvbnMtZm9yLXJhdGlvKDEwMCUsIDY1LCA0MCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcXVhcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgZGltZW5zaW9ucy1mb3ItcmF0aW8oMTAwJSwgMSwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhcHRpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtc20tbGFyZ2U7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiY29sb3JzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zXCI7XG5cbi8vVE9ETzogY2xlYW4gdXAgYnJlYWsgcG9pbnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEJyZWFrIHBvaW50cyBsZWdhY3kgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtZWRpYS14c21hbGw6IDQ4MHB4ICFkZWZhdWx0OyAvLyBQaG9uZXNcbiRtZWRpYS1zbWFsbDogNzY4cHggIWRlZmF1bHQ7IC8vIFRhYmxldHNcbiRtZWRpYS1sYXJnZTogOTgwcHggIWRlZmF1bHQ7IC8vIFNtYWxsIGRlc2t0b3BzIGFuZCBub3RlYm9va3NcbiRtZWRpYS14bGFyZ2U6IDEzMDBweCAhZGVmYXVsdDsgLy8gRGVza3RvcHNcbiRtZWRpYS14c21hbGwtbWF4OiAoJG1lZGlhLXNtYWxsIC0gMSkgIWRlZmF1bHQ7XG4kbWVkaWEtc21hbGwtbWluOiAkbWVkaWEtc21hbGwgIWRlZmF1bHQ7XG4kbWVkaWEtc21hbGwtbWF4OiAoJG1lZGlhLWxhcmdlIC0gMSkgIWRlZmF1bHQ7XG4kbWVkaWEtbGFyZ2UtbWluOiAkbWVkaWEtbGFyZ2UgIWRlZmF1bHQ7XG4kbWVkaWEtbGFyZ2UtbWF4OiAoJG1lZGlhLXhsYXJnZSAtIDEpICFkZWZhdWx0O1xuJG1lZGlhLXhsYXJnZS1taW46ICRtZWRpYS14bGFyZ2UgIWRlZmF1bHQ7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEJyZWFrIHBvaW50cyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQm9vdHN0cmFwIGJyZWFrcG9pbnRzXG4kc2NyZWVuLXh4cy1tYXg6IDQ3OXB4OyAvLyBNb2JpbGUgcG9ydHJhaXQ7IHN1YnNldCBvZiB0aGUgXCJ4cyBicmVha3BvaW50XCJcblxuJHNjcmVlbi14cy1taW46IDQ4MHB4O1xuJHNjcmVlbi14cy1tYXg6IDc2N3B4O1xuXG4kc2NyZWVuLXNtLW1pbjogNzY4cHg7XG4kc2NyZWVuLXNtLW1heDogOTc5cHg7XG5cbiRzY3JlZW4tbWQtbWluOiA5ODBweDtcbiRzY3JlZW4tbWQtbWF4OiAxMjk5cHg7XG5cbiRzY3JlZW4tbGctbWluOiAxMzAwcHg7XG5cbi8vIE1lZGlhIHF1ZXJ5IHNob3J0aGFuZHMgZS5nLiBAbWVkaWEgKCR0YWJsZXQtdXApIHsgLi4uIH1cbiRtb2JpbGUtbGFuZHNjYXBlLWRvd246IFwibWF4LXdpZHRoOiAjeyRzY3JlZW4teHhzLW1heH1cIjtcbiRtb2JpbGUtbGFuZHNjYXBlLXVwOiBcIm1pbi13aWR0aDogI3skc2NyZWVuLXhzLW1pbn1cIjtcbiR0YWJsZXQtZG93bjogXCJtYXgtd2lkdGg6ICN7JHNjcmVlbi14cy1tYXh9XCI7XG4kdGFibGV0LXVwOiBcIm1pbi13aWR0aDogI3skc2NyZWVuLXNtLW1pbn1cIjtcbiRzbWFsbC1kZXNrdG9wLWRvd246IFwibWF4LXdpZHRoOiAjeyRzY3JlZW4tc20tbWF4fVwiO1xuJHNtYWxsLWRlc2t0b3AtdXA6IFwibWluLXdpZHRoOiAjeyRzY3JlZW4tbWQtbWlufVwiO1xuJGxhcmdlLWRlc2t0b3AtZG93bjogXCJtYXgtd2lkdGg6ICN7JHNjcmVlbi1tZC1tYXh9XCI7XG4kbGFyZ2UtZGVza3RvcC11cDogXCJtaW4td2lkdGg6ICN7JHNjcmVlbi1sZy1taW59XCI7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIENvbXBvbmVudHMgcGFyYW1ldGVycyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kZ3JpZENvbHVtbldpZHRoTGFyZ2U6IDgwcHg7XG4kZ3JpZEd1dHRlcldpZHRoTGFyZ2U6IDIwcHg7XG4kZ3JpZENvbHVtbldpZHRoVGFibGV0OiA0N3B4O1xuJGdyaWRHdXR0ZXJXaWR0aFRhYmxldDogMTVweDtcblxuLy8gQ29tcG9uZW50IHNoYXBlcyBhbmQgc2l6ZXNcbiRib3gtcGFkZGluZzogMjBweDtcbiRibGVlZC1zaXplOiA3MHB4O1xuJGNvbXBvbmVudC1nYXA6IDMwcHg7XG4kY29tcG9uZW50LWdhcC1zbWFsbDogMjVweDtcbiRjb21wb25lbnQtZ2FwLXNtYWxsZXI6IDIwcHg7XG4kY29tcG9uZW50LWdhcC1sYXJnZXN0OiA1MHB4O1xuXG4vLyBCb290c3RyYXAgY29udGFpbmVyIHBhZGRpbmdcbiRjb250YWluZXIteHMtcGFkZGluZzogMTBweDtcbiRjb250YWluZXItbXMtcGFkZGluZzogMTRweDtcbiRjb250YWluZXItc20tcGFkZGluZzogMjBweDtcbiRjb250YWluZXItbWQtcGFkZGluZzogOTBweDtcbiRjb250YWluZXItbGctcGFkZGluZzogMTEwcHg7XG5cbi8vRm9ybSBjb250cm9sc1xuJGZvcm0tY29udHJvbC1oZWlnaHQ6IDMwcHg7XG4kZm9ybS1jb250cm9sLWxpbmUtaGVpZ2h0OiAxNnB4O1xuJGZvcm0tY29udHJvbC1kZWZhdWx0LXBhZGRpbmc6ICgoJGZvcm0tY29udHJvbC1oZWlnaHQgLSAkZm9ybS1jb250cm9sLWxpbmUtaGVpZ2h0KSAvIDIpIDE1cHg7XG5cbi8vQ2Fyb3VzZWwgY29uZmlndXJhdGlvblxuJHNwYWNlLWJldHdlZW4tc2xpZGU6IDRweDtcbiRidXR0b24tcG9zaXRpb24tb2Zmc2V0OiAtMjBweDtcblxuLy9Db21wb25lbnQgd2lkdGggY29udHJvbCBzaXplXG4kd2lkdGgtc21hbGw6IDMwJTtcbiR3aWR0aC1tZWRpdW06IDUyJTtcbiR3aWR0aC1sYXJnZTogNzAlO1xuXG4vL0hlYWRpbmdzXG4kdGl0bGUtbGluZS1oZWlnaHQ6IDEuMjtcblxuLy9QYXJhZ3JhcGhzXG4kcGFyYWdyYXBoLXNwYWNpbmc6IDIwcHg7XG5cbi8vWi1pbmRleGVzXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEFzc2V0cyBwYXRoIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiR0ZW1wbGF0ZS1iYXNlLXVybDogXCJ2ZW5kb3JcIjtcbiRpbWFnZS1wYXRoOiBcIi4uL2Fzc2V0cy9pbWdcIjtcbiRmb250LXBhdGg6ICcuLi9hc3NldHMvZm9udHMnO1xuXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEZvbnRzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEZvbnQgZmFtaWxpZXNcbiRmb250LWZvbnRlbGxvOiAnRm9udGVsbG8nO1xuXG4vLyBGb250ZWxsbyBpY29uIHJlZmVyZW5jZXNcbiRpY29uLXJpZ2h0LW9wZW46IFwiODk0XCI7XG4kaWNvbi1saW5rLWV4dDogXCI4MmVcIjtcbiRpY29uLWRvd25sb2FkOiBcIjg0MlwiO1xuJGljb24tbWFpbC1hbHQ6IFwiODA0XCI7XG4kaWNvbi1zb3J0OiBcIjkyMFwiO1xuJGljb24tc29ydC1kb3duOiBcIjkyMVwiO1xuJGljb24tc29ydC11cDogXCI5MjJcIjtcbiRpY29uLXF1b3RlLWxlZnQ6IFwiODQ5XCI7XG4kaWNvbi1xdW90ZS1yaWdodDogXCI4NGFcIjtcblxuLy8gRm9udCB3ZWlnaHRzXG4kZm9udC13ZWlnaHQtbGlnaHQ6IDEwMDtcbiRmb250LXdlaWdodC1tZWRpdW06IDMwMDtcbiRmb250LXdlaWdodC1yZWd1bGFyOiBub3JtYWw7XG4kZm9udC13ZWlnaHQtc2VtaS1ib2xkOiA3MDA7XG4kZm9udC13ZWlnaHQtYm9sZDogYm9sZDtcblxuLy8gRm9udCBzaXplc1xuJGZvbnQtc2l6ZS1iYXNlOiAxMnB4O1xuJGZvbnQtc2l6ZS1zbS1sYXJnZTogMTRweDtcbiRmb250LXNpemUtbGFyZ2U6IDE2cHg7XG4kZm9udC1zaXplLWxhcmdlcjogMThweDtcblxuLy9UT0RPOiB1cGRhdGUgc3Ryb2tlIHN0eWxlc1xuLy8gU3Ryb2tlIHN0eWxlcyBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIGtleWxpbmVzXG4kc3Ryb2tlLXRoaW4tZ3JleTogMXB4IHNvbGlkICNlOGU4ZTg7XG4kc3Ryb2tlLWxpZ2h0LWRhcms6IDFweCBzb2xpZCAkYnJhbmQtZGFyaztcbiRkb3R0ZWQtbGlnaHQtZ3JleTogMXB4IGRvdHRlZCAkYnJhbmQtY29sb3VyLW1lZGl1bS1ncmV5O1xuXG4vLyBBbmltYXRpb25zXG4kYW5pbWF0aW9uLXNwZWVkLW5vcm1hbDogNDAwbXM7XG4kYW5pbWF0aW9uLXNwZWVkLWZhc3Q6IDIwMG1zO1xuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9iZW0tdXRpbHNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcblxuLypcbkljb25cblxuR2VuZXJpYyBpY29uIHdpdGggZGlmZmVyZW50IHR5cGVzIChlLmcuIFwiYi1pY29uIGItaWNvbi0tc2VhcmNoXCIgKS5cblxuPGxlZ2VuZD5TdmcgdG8gaWNvbiBmb250PC9sZWdlbmQ+XG5cbkNyZWF0ZSBTVkcvVFRGL0VPVC9XT0ZGL1dPRkYyIGljb24tZm9udCBhbmQgdGhlIHNjc3MgZmlsZSBmcm9tIFNWRyBpY29ucyB3aXRoIEd1bHAgYnVpbGQtaWNvbmZvbnQgdGFzay4gU2VlOiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ndWxwLWljb25mb250XG5cbjxiPkFkZCBhIG5ldyBpY29uPC9iPlxuPHVsPlxuICAgIDxsaT5DcmVhdGUgdGhlIHN2ZyBmaWxlIGZvciB0aGUgaWNvbiBhbmQgZ2l2ZSB0aGUgZmlsZSBhIHByb3BlciBuYW1lLCB0aGUgZmlsZSBuYW1lIGlzIHRoZSBjc3MgY2xhc3MgbmFtZSAoZS5nLiBkb3duLWFycm93LnN2ZywgdGhlIGNzcyBjbGFzcyBmb3IgdGhlIGljb24gaXMgJ2ItaWNvbi0tZG93bi1hcnJvdycpXG48L2xpPlxuICAgIDxsaT5BZGQgdGhlIHN2ZyBmaWxlIGludG8gdGhlICcvc3JjL2Fzc2V0cy9pbWcvaWNvbnMvc3ZnJyBmb2xkZXI8L2xpPlxuICAgIDxsaT5SdW4gdGhlIGd1bHAgdGFzayAnZ3VscCBidWlsZC1pY29uZm9udCcgaW4gYSB0ZXJtaW5hbCwgaXQgYWRkcyB0aGUgaWNvbiBpbnRvIHRoZSBmb250IGZpbGVzICdzcmMvYXNzZXRzL2ZvbnRzL2ljb24tZm9udC5lb3QvdHRmL3dvZmYvd29mZjInLCBhbmQgcmUtZ2VuZXJhdGVzIHRoZSBzY3NzIGZpbGUgJ3NyYy9jb21wb25lbnRzL2ljb24vc3ZnMmljb25mb250LnNjc3MnIHZpYSB0aGUgdGVtcGxhdGUgJ3NyYy9jb21wb25lbnRzL2ljb24vdGVtcGxhdGUudHh0JzwvbGk+XG48L3VsPlxuXG5cbjxiPlVwZGF0ZSBhbiBpY29uPC9iPlxuPHVsPlxuICAgIDxsaT5VcGRhdGUgdGhlIHN2ZyBmaWxlIHJlbGF0ZWQgdG8gdGhlIGljb24gaW4gdGhlICcvc3JjL2Fzc2V0cy9pbWcvaWNvbnMvc3ZnJyBmb2xkZXI8L2xpPlxuICAgIDxsaT5SdW4gdGhlIGd1bHAgdGFzayAnZ3VscCBidWlsZC1pY29uZm9udCcgaW4gYSB0ZXJtaW5hbCwgaXQgdXBkYXRlcyB0aGUgZm9udCBmaWxlcyAnc3JjL2Fzc2V0cy9mb250cy9pY29uLWZvbnQuZW90L3R0Zi93b2ZmL3dvZmYyJywgYW5kIHJlLWdlbmVyYXRlcyB0aGUgc2NzcyBmaWxlICdzcmMvY29tcG9uZW50cy9pY29uL3N2ZzJpY29uZm9udC5zY3NzJyB2aWEgdGhlIHRlbXBsYXRlICdzcmMvY29tcG9uZW50cy9pY29uL3RlbXBsYXRlLnR4dCc8L2xpPlxuPC91bD5cblxuPGI+RGVsZXRlIGFuIGljb248L2I+XG48dWw+XG4gICAgPGxpPlJlbW92ZSB0aGUgc3ZnIGZpbGUgcmVsYXRlZCB0byB0aGUgaWNvbiBpbiB0aGUgJy9zcmMvYXNzZXRzL2ltZy9pY29ucy9zdmcnIGZvbGRlcjwvbGk+XG4gICAgPGxpPlJ1biB0aGUgZ3VscCB0YXNrICdndWxwIGJ1aWxkLWljb25mb250JyBpbiBhIHRlcm1pbmFsLCBpdCB1cGRhdGVzIHRoZSBmb250IGZpbGVzICdzcmMvYXNzZXRzL2ZvbnRzL2ljb24tZm9udC5lb3QvdHRmL3dvZmYvd29mZjInLCBhbmQgcmUtZ2VuZXJhdGVzIHRoZSBzY3NzIGZpbGUgJ3NyYy9jb21wb25lbnRzL2ljb24vc3ZnMmljb25mb250LnNjc3MnIHZpYSB0aGUgdGVtcGxhdGUgJ3NyYy9jb21wb25lbnRzL2ljb24vdGVtcGxhdGUudHh0JzwvbGk+XG48L3VsPlxuXG5TdHlsZSBndWlkZTogQmFzZS5JY29uXG4qL1xuXG4vL1N2ZyB0byBpY29uIGZvbnRcbkBpbXBvcnQgXCJzdmcyaWNvbmZvbnRcIjtcblxuLmItaWNvbiB7XG4gICAgLyogLS0tLS0tLS0tLS0tLS0gdmFyaWFibGVzIC0tLS0tLS0tLS0tLS0tLSAqL1xuICAgICRpY29uLXNwYWNlOiA1cHg7XG5cbiAgICAmLS1kYXJrIHtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuICAgIH1cblxuICAgICYtLXJlZCB7XG4gICAgICAgIGNvbG9yOiAkYnJhbmQtcmVkO1xuICAgIH1cblxuICAgICYtLWdyZXkge1xuICAgICAgICBjb2xvcjogJGJyYW5kLWNvbG91ci1kYXJrLWdyZXk7XG4gICAgfVxufVxuIiwiLy9UZW1wbGF0ZSBleGFtcGxlOmh0dHBzOi8vZ2l0aHViLmNvbS9iYWNrZmxpcC9ndWxwLWljb25mb250LWNzcy9ibG9iL21hc3Rlci90ZW1wbGF0ZXMvX2ljb25zLnNjc3NcblxuLy9UZW1wYWx0ZS50eHQgaXMgdGhlIHRlbXBsYXRlIGZvciB0aGUgc3ZnMmljb25mb250LnNjc3MgZmlsZS5cblxuLypcbkljb24gKGljb24gZm9udClcblxuR2VuZXJpYyBpY29uIHdpdGggZGlmZmVyZW50IHR5cGVzIChlLmcuIFwiYi1pY29uIGItaWNvbi0tc2VhcmNoXCIgKS5cblxuLmItaWNvbi0tYnVsbGV0IC0gOlxuLmItaWNvbi0tY2xvc2UgLSA6XG4uYi1pY29uLS1jcmVzdCAtIDpcbi5iLWljb24tLWRvd24tYXJyb3cgLSA6XG4uYi1pY29uLS1kb3duLWNoZXZyb24gLSA6XG4uYi1pY29uLS1kb3dubG9hZC1pY29uIC0gOlxuLmItaWNvbi0tZXh0ZXJuYWwtbGluayAtIDpcbi5iLWljb24tLWZhY2Vib29rIC0gOlxuLmItaWNvbi0tZ29vZ2xlLXBsdXMgLSA6XG4uYi1pY29uLS1pbnN0YWdyYW0gLSA6XG4uYi1pY29uLS1sZWZ0LWFycm93IC0gOlxuLmItaWNvbi0tbGVmdC1jaGV2cm9uIC0gOlxuLmItaWNvbi0tbGluayAtIDpcbi5iLWljb24tLWxvZ28gLSA6XG4uYi1pY29uLS1taW51cyAtIDpcbi5iLWljb24tLXBsdXMgLSA6XG4uYi1pY29uLS1wcmludCAtIDpcbi5iLWljb24tLXJpZ2h0LWFycm93IC0gOlxuLmItaWNvbi0tcmlnaHQtY2hldnJvbiAtIDpcbi5iLWljb24tLXR3aXR0ZXIgLSA6XG4uYi1pY29uLS11cC1jaGV2cm9uIC0gOlxuLmItaWNvbi0teW91dHViZSAtIDpcblxuXG5NYXJrdXA6IDxpIGNsYXNzPVwiYi1pY29uIHt7bW9kaWZpZXJfY2xhc3N9fVwiPjwvaT5cblxuU3R5bGUgZ3VpZGU6IEJhc2UuSWNvbi5pY29uIGZvbnRzXG4qL1xuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJpY29uLWZvbnRcIjtcbiAgICBzcmM6IHVybChcIi4uL2Fzc2V0cy9mb250cy9pY29uLWZvbnQuZW90XCIpO1xuICAgIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL2ljb24tZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVvdFwiKSxcbiAgICB1cmwoXCIuLi9hc3NldHMvZm9udHMvaWNvbi1mb250LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHVybChcIi4uL2Fzc2V0cy9mb250cy9pY29uLWZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHVybChcIi4uL2Fzc2V0cy9mb250cy9pY29uLWZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xufVxuXG5cbkBtaXhpbiBiLWljb24tc3R5bGVzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1mYW1pbHk6IFwiaWNvbi1mb250XCI7XG4gICAgLy8td2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAvLy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgLy8gc3BlYWs6IG5vbmU7IC8vIG9ubHkgbmVjZXNzYXJ5IGlmIG5vdCB1c2luZyB0aGUgcHJpdmF0ZSB1bmljb2RlIHJhbmdlIChmaXJzdEdseXBoIG9wdGlvbilcbn1cblxuJWItaWNvbiB7XG4gICAgQGluY2x1ZGUgYi1pY29uLXN0eWxlcztcbn1cblxuQGZ1bmN0aW9uIGItaWNvbi1jaGFyKCRmaWxlbmFtZSkge1xuICAgICRjaGFyOiBcIlwiO1xuXG4gICAgQGlmICRmaWxlbmFtZSA9PSBidWxsZXQge1xuICAgICAgICAkY2hhcjogXCJcXEUwMDFcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBjbG9zZSB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAwMlwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IGNyZXN0IHtcbiAgICAgICAgJGNoYXI6IFwiXFxFMDAzXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gZG93bi1hcnJvdyB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAwNFwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IGRvd24tY2hldnJvbiB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAwNVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IGRvd25sb2FkLWljb24ge1xuICAgICAgICAkY2hhcjogXCJcXEUwMDZcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBleHRlcm5hbC1saW5rIHtcbiAgICAgICAgJGNoYXI6IFwiXFxFMDA3XCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gZmFjZWJvb2sge1xuICAgICAgICAkY2hhcjogXCJcXEUwMDhcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBnb29nbGUtcGx1cyB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAwOVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IGluc3RhZ3JhbSB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAwQVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IGxlZnQtYXJyb3cge1xuICAgICAgICAkY2hhcjogXCJcXEUwMEJcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBsZWZ0LWNoZXZyb24ge1xuICAgICAgICAkY2hhcjogXCJcXEUwMENcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSBsaW5rIHtcbiAgICAgICAgJGNoYXI6IFwiXFxFMDBEXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gbG9nbyB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAwRVwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IG1pbnVzIHtcbiAgICAgICAgJGNoYXI6IFwiXFxFMDBGXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gcGx1cyB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAxMFwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IHByaW50IHtcbiAgICAgICAgJGNoYXI6IFwiXFxFMDExXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gcmlnaHQtYXJyb3cge1xuICAgICAgICAkY2hhcjogXCJcXEUwMTJcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSByaWdodC1jaGV2cm9uIHtcbiAgICAgICAgJGNoYXI6IFwiXFxFMDEzXCI7XG4gICAgfVxuICAgIEBpZiAkZmlsZW5hbWUgPT0gdHdpdHRlciB7XG4gICAgICAgICRjaGFyOiBcIlxcRTAxNFwiO1xuICAgIH1cbiAgICBAaWYgJGZpbGVuYW1lID09IHVwLWNoZXZyb24ge1xuICAgICAgICAkY2hhcjogXCJcXEUwMTVcIjtcbiAgICB9XG4gICAgQGlmICRmaWxlbmFtZSA9PSB5b3V0dWJlIHtcbiAgICAgICAgJGNoYXI6IFwiXFxFMDE2XCI7XG4gICAgfVxuXG4gICAgQHJldHVybiAkY2hhcjtcbn1cblxuQG1peGluIGItaWNvbigkZmlsZW5hbWUsICRpbnNlcnQ6IGJlZm9yZSwgJGV4dGVuZDogdHJ1ZSkge1xuICAgICY6I3skaW5zZXJ0fSB7XG4gICAgICAgIEBpZiAkZXh0ZW5kIHtcbiAgICAgICAgICAgIEBleHRlbmQgJWItaWNvbjtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiLWljb24tc3R5bGVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRlbnQ6IGItaWNvbi1jaGFyKCRmaWxlbmFtZSk7XG4gICAgfVxufVxuXG5cbi5iLWljb24tLWJ1bGxldCB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24oYnVsbGV0KTtcbn1cblxuLmItaWNvbi0tY2xvc2Uge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKGNsb3NlKTtcbn1cblxuLmItaWNvbi0tY3Jlc3Qge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKGNyZXN0KTtcbn1cblxuLmItaWNvbi0tZG93bi1hcnJvdyB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24oZG93bi1hcnJvdyk7XG59XG5cbi5iLWljb24tLWRvd24tY2hldnJvbiB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24oZG93bi1jaGV2cm9uKTtcbn1cblxuLmItaWNvbi0tZG93bmxvYWQtaWNvbiB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24oZG93bmxvYWQtaWNvbik7XG59XG5cbi5iLWljb24tLWV4dGVybmFsLWxpbmsge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKGV4dGVybmFsLWxpbmspO1xufVxuXG4uYi1pY29uLS1mYWNlYm9vayB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24oZmFjZWJvb2spO1xufVxuXG4uYi1pY29uLS1nb29nbGUtcGx1cyB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24oZ29vZ2xlLXBsdXMpO1xufVxuXG4uYi1pY29uLS1pbnN0YWdyYW0ge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKGluc3RhZ3JhbSk7XG59XG5cbi5iLWljb24tLWxlZnQtYXJyb3cge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKGxlZnQtYXJyb3cpO1xufVxuXG4uYi1pY29uLS1sZWZ0LWNoZXZyb24ge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKGxlZnQtY2hldnJvbik7XG59XG5cbi5iLWljb24tLWxpbmsge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKGxpbmspO1xufVxuXG4uYi1pY29uLS1sb2dvIHtcblxuICAgIEBpbmNsdWRlIGItaWNvbihsb2dvKTtcbn1cblxuLmItaWNvbi0tbWludXMge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKG1pbnVzKTtcbn1cblxuLmItaWNvbi0tcGx1cyB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24ocGx1cyk7XG59XG5cbi5iLWljb24tLXByaW50IHtcblxuICAgIEBpbmNsdWRlIGItaWNvbihwcmludCk7XG59XG5cbi5iLWljb24tLXJpZ2h0LWFycm93IHtcblxuICAgIEBpbmNsdWRlIGItaWNvbihyaWdodC1hcnJvdyk7XG59XG5cbi5iLWljb24tLXJpZ2h0LWNoZXZyb24ge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKHJpZ2h0LWNoZXZyb24pO1xufVxuXG4uYi1pY29uLS10d2l0dGVyIHtcblxuICAgIEBpbmNsdWRlIGItaWNvbih0d2l0dGVyKTtcbn1cblxuLmItaWNvbi0tdXAtY2hldnJvbiB7XG5cbiAgICBAaW5jbHVkZSBiLWljb24odXAtY2hldnJvbik7XG59XG5cbi5iLWljb24tLXlvdXR1YmUge1xuXG4gICAgQGluY2x1ZGUgYi1pY29uKHlvdXR1YmUpO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBNYXN0ZXIgYnJhbmQgY29sb3JzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kYnJhbmQtcmVkOiAjZTY0NjI2OyAvL3JnYigyMzAsNzAsMzgpO1xuJGJyYW5kLXJlZC1ob3ZlcjogI2NlM2QyMDsgLy9yZ2IoMjA2LDYxLDMyKTtcbiRicmFuZC1yZWQtc2xpZ2h0bHktdHJhbnNwYXJlbnQ6IHJnYmEoMjMwLDcxLDM5LDAuOTUpO1xuXG4kYnJhbmQtbGlnaHQ6ICNmZmY7XG4kYnJhbmQtZGFyazogIzMzMztcblxuLy8gQnJhbmQgY29sb3Vyc1xuJGJyYW5kLXByaW1hcnk6ICNlNjQ2MjY7XG4kYnJhbmQtc2Vjb25kYXJ5OiAjMTI0MTZDO1xuJGJyYW5kLXRlcnRpYXJ5OiAjRjVBRjAwO1xuJGJyYW5kLXRlcnRpYXJ5LXN1cHBvcnQ6ICNmYmNkNmI7XG5cbiRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTogI2YxZjFmMTsgICAvLyBMaWdodCBncmV5XG4kYnJhbmQtY29sb3VyLW1lZGl1bS1ncmV5OiAjZThlOGU4OyAgLy8gTWVkaXVtIGdyZXlcbiRicmFuZC1jb2xvdXItZGFyay1ncmV5OiAjYjJiMmIyOyAgICAvLyBEYXJrIGdyZXlcbiRicmFuZC1jb2xvdXItZGFya2VyLWdyZXk6ICM4YzhjOGM7ICAgIC8vIERhcmtlciBncmV5XG5cblxuLy9UT0RPOiB0aGUgYmVsb3cgdmFyaWFibGVzIHdpbGwgbmVlZCB0byBjbGVhbiB1cCwgcmVtb3ZlIHRoZSBvbmUgd2hpY2ggaGFzbid0IGJlZW4gdXNlZCBhbmQgbW92ZSB0aGUgdmFyaWFibGVzIGFib3ZlIHRoaXMgY29tbWVudCBhcyBpdCByZWR1Y2UgdGhlIGRldmVsb3BlcnMgcmVhZGluZyBzcGVlZC5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEZvbnQgY29sb3JzIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGZvbnQtY29sb3VyLWxpZ2h0OiAjZmZmO1xuJHN1cHBvcnQtZm9udC1jb2xvdXI6IHRpbnQoYmxhY2ssIDQwJSk7XG4kZm9udC1jb2xvdXItZGFyazogYmxhY2s7IC8vIDEwMCUgYmxhY2sgPSAjMDAwMDAwXG4kZm9udC1jb2xvdXItZGFyay05MDogdGludChibGFjaywgMTAlKTsgLy8gOTAlIGJsYWNrID0gIzE5MTkxOVxuJGZvbnQtY29sb3VyLWRhcmstODA6IHRpbnQoYmxhY2ssIDIwJSk7IC8vIDgwJSBibGFjayA9ICMzMzMzMzNcblxuJGJnLWNvbG91ci1saWdodDogI2ZmZjtcblxuJGxpZ2h0LWdyZXk6IGxpZ2h0ZW4oYmxhY2ssIDkwJSk7XG4kbWVkaXVtLWdyZXk6IGxpZ2h0ZW4oYmxhY2ssIDc1JSk7XG5cbi8vIFN1Yi1icmFuZCBjb2xvdXJzXG5cbiRhZ3JpY3VsdHVyZTogIzNFNTcxMjtcbiRhZ3JpY3VsdHVyZS03NTogdGludCgkYWdyaWN1bHR1cmUsIDI1JSk7IC8vICM2RTgxNERcbiRhZ3JpY3VsdHVyZS01MDogdGludCgkYWdyaWN1bHR1cmUsIDUwJSk7IC8vICM5RUFCODhcblxuJGFydHM6ICMzQ0I2Q0U7XG4kYXJ0cy03NTogdGludCgkYXJ0cywgMjUlKTsgLy8gIzZkYzhkYVxuJGFydHMtNTA6IHRpbnQoJGFydHMsIDUwJSk7IC8vICM5ZGRhZTZcblxuJGFyY2hpdGVjdHVyZTogI0JFRDYwMDtcbiRhcmNoaXRlY3R1cmUtNzU6IHRpbnQoJGFyY2hpdGVjdHVyZSwgMjUlKTsgLy8gI0NFRTAzRlxuJGFyY2hpdGVjdHVyZS01MDogdGludCgkYXJjaGl0ZWN0dXJlLCA1MCUpOyAvLyAjZGVlYTdmXG5cbiRidXNpbmVzczogIzAwMkY1RjtcbiRidXNpbmVzcy03NTogdGludCgkYnVzaW5lc3MsIDI1JSk7IC8vICMzRjYzODdcbiRidXNpbmVzcy01MDogdGludCgkYnVzaW5lc3MsIDUwJSk7IC8vICM3Zjk3YWZcblxuJGVkdWNhdGlvbjogIzAwNmQ3NDtcbiRlZHVjYXRpb24tNzU6IHRpbnQoJGVkdWNhdGlvbiAsIDc1JSk7IC8vICM0MDkyOTdcbiRlZHVjYXRpb24tNTA6IHRpbnQoJGVkdWNhdGlvbiAsIDUwJSk7IC8vICM3ZmI2YjlcblxuJGVuZ2luZWVyaW5nOiAjMDA5OGRiO1xuJGVuZ2luZWVyaW5nLTc1OiB0aW50KCRlbmdpbmVlcmluZyAsIDI1JSk7IC8vICM0MGIyZTRcbiRlbmdpbmVlcmluZy01MDogdGludCgkZW5naW5lZXJpbmcgLCA1MCUpOyAvLyAjN2ZjYmVkXG5cbiRoZWFsdGg6ICMwMGIyYTk7XG4kaGVhbHRoLTc1OiB0aW50KCRoZWFsdGggLCAyNSUpOyAvLyAjNDBjNWJmXG4kaGVhbHRoLTUwOiB0aW50KCRoZWFsdGggLCA1MCUpOyAvLyAjN2ZkOGQ0XG5cbiRkZW50aXN0cnk6ICM0MjE0NWY7XG4kZGVudGlzdHJ5LTc1OiB0aW50KCRkZW50aXN0cnkgLCAyNSUpOyAvLyAjNzE0Zjg3XG4kZGVudGlzdHJ5LTUwOiB0aW50KCRkZW50aXN0cnkgLCA1MCUpOyAvLyAjYTA4OWFmXG5cbiRwaGFybWFjeTogIzcwOTBiNztcbiRwaGFybWFjeS03NTogdGludCgkcGhhcm1hY3kgLCAyNSUpOyAvLyAjOTRhY2M5XG4kcGhhcm1hY3ktNTA6IHRpbnQoJHBoYXJtYWN5ICwgNTAlKTsgLy8gI2I3YzdkYlxuXG4kbGF3OiAjMTI0MTZjO1xuJGxhdy03NTogdGludCgkbGF3ICwgMjUlKTsgLy8gIzRkNzE5MVxuJGxhdy01MDogdGludCgkbGF3ICwgNTAlKTsgLy8gIzg4YTBiNVxuXG4kc2NpZW5jZTogI0UzNzIyMjtcbiRzY2llbmNlLTc1OiB0aW50KCRzY2llbmNlICwgMjUlKTsgLy8gI0VBOTU1OVxuJHNjaWVuY2UtNTA6IHRpbnQoJHNjaWVuY2UgLCA1MCUpOyAvLyAjRjFCODkwXG5cbiRzY2E6ICNkYzdlMDA7XG4kc2NhLTc1OiB0aW50KCRzY2EgLCAyNSUpOyAvLyAjZTU5ZTQwXG4kc2NhLTUwOiB0aW50KCRzY2EgLCA1MCUpOyAvLyAjZWRiZTdmXG5cbiRtdXNpYzogI2Y5YjcyYztcbiRtdXNpYy03NTogdGludCgkbXVzaWMgLCAyNSUpOyAvLyAjZmJjOTYxXG4kbXVzaWMtNTA6IHRpbnQoJG11c2ljICwgNTAlKTsgLy8gI2ZjZGI5NVxuXG4kdmV0c2NpOiAjOGQxYjNkO1xuJHZldHNjaS03NTogdGludCgkdmV0c2NpICwgMjUlKTsgLy8gI2FhNTQ2ZVxuJHZldHNjaS01MDogdGludCgkdmV0c2NpICwgNTAlKTsgLy8gI2M2OGQ5ZVxuXG4kc3lkbmV5LXRhbGVudDogI2I2YmYwMDtcbiRzeWRuZXktdGFsZW50LTc1OiB0aW50KCRzeWRuZXktdGFsZW50ICwgMjUlKTsgLy8gI2M4Y2Y0MFxuJHN5ZG5leS10YWxlbnQtNTA6IHRpbnQoJHN5ZG5leS10YWxlbnQgLCA1MCUpOyAvLyAjZGFkZjdmXG5cbiRjZXQ6ICMwMDY2OTk7XG4kY2V0LTc1OiB0aW50KCRjZXQgLCAyNSUpOyAvLyAjNDA4Y2IzXG4kY2V0LTUwOiB0aW50KCRjZXQgLCA1MCUpOyAvLyAjN2ZiMmNjXG5cbiRtdXNldW1zOiAjMzYxZDJmO1xuJG11c2V1bXMtNzU6IHRpbnQoJG11c2V1bXMgLCAyNSUpOyAvLyAjNjg1NjYzXG4kbXVzZXVtcy01MDogdGludCgkbXVzZXVtcyAsIDUwJSk7IC8vICM5YThlOTdcblxuXG4kbGluay1jb2xvdXI6IGxpZ2h0ZW4oJGJyYW5kLXNlY29uZGFyeSwgMTAlKSAhZ2xvYmFsO1xuJGxpbmstdmlzaXRlZC1jb2xvdXI6IGxpZ2h0ZW4oIzQyMTQ1RiwgMTUlKSAhZ2xvYmFsO1xuXG4kYmctbGlnaHRlc3QtY29sb3I6IGxpZ2h0ZW4oYmxhY2ssIDk3JSkgIWdsb2JhbDtcbiRiZy1saWdodC1jb2xvcjogbGlnaHRlbigkYnJhbmQtdGVydGlhcnktc3VwcG9ydCwgMjAlKSAhZ2xvYmFsO1xuJGJnLWRhcmstY29sb3VyOiBsaWdodGVuKGJsYWNrLCAzMCUpICFnbG9iYWw7XG4kYmctZGFya2VyLWNvbG9yOiBsaWdodGVuKGJsYWNrLCAyMCUpICFnbG9iYWw7XG5cbi8vIEVycm9yIHN0YXRlc1xuJGludmFsaWQtZmllbGQtYmc6ICNmZGY1ZjQ7XG4kaW52YWxpZC1maWVsZC1ib3JkZXI6ICRicmFuZC1yZWQtaG92ZXI7XG4kaW52YWxpZC1maWVsZC1lcnJvci1tc2c6ICRicmFuZC1yZWQtaG92ZXI7XG5cblxuLy8gTm90aWNlICFnbG9iYWxzXG4kZXJyb3ItZmctY29sb3VyOiAjY2UxMTI2ICFnbG9iYWw7XG4kZXJyb3ItYmctY29sb3VyOiB0aW50KCRlcnJvci1mZy1jb2xvdXIsIDk1JSkgIWdsb2JhbDtcbiR3YXJuaW5nLWZnLWNvbG91cjogI2JjNTIwMCAhZ2xvYmFsO1xuJHdhcm5pbmctYmctY29sb3VyOiB0aW50KCNGNUFGMDAsIDk1JSkgIWdsb2JhbDtcbiRpbmZvLWZnLWNvbG91cjogIzEyNDE2YyAhZ2xvYmFsO1xuJGluZm8tYmctY29sb3VyOiB0aW50KCRpbmZvLWZnLWNvbG91ciwgOTUlKSAhZ2xvYmFsO1xuJHN1Y2Nlc3MtZmctY29sb3VyOiAjM2U1NzEyICFnbG9iYWw7XG4kc3VjY2Vzcy1iZy1jb2xvdXI6IHRpbnQoJHN1Y2Nlc3MtZmctY29sb3VyLCA5NSUpICFnbG9iYWw7XG5cbi8vIEJvb3RzdHJhcCBjb2xvdXIgb3ZlcnJpZGVzXG4kZXJyb3JUZXh0OiAkZXJyb3ItZmctY29sb3VyO1xuJGVycm9yQmFja2dyb3VuZDogJGVycm9yLWJnLWNvbG91cjtcblxuJHdhcm5pbmdUZXh0OiAkd2FybmluZy1mZy1jb2xvdXI7XG4kd2FybmluZ0JhY2tncm91bmQ6ICR3YXJuaW5nLWJnLWNvbG91cjtcblxuJHN1Y2Nlc3NUZXh0OiAkc3VjY2Vzcy1mZy1jb2xvdXI7XG4kc3VjY2Vzc0JhY2tncm91bmQ6ICRzdWNjZXNzLWJnLWNvbG91cjtcblxuJGluZm9UZXh0OiAkaW5mby1mZy1jb2xvdXI7XG4kaW5mb0JhY2tncm91bmQ6ICRpbmZvLWJnLWNvbG91cjtcblxuJGVycm9yLWNvbG9yOiAjRTQwQjBCICFnbG9iYWw7XG5cbiV1c3lkLXVpLWxpZ2h0ZXN0LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6IHRpbnQoYmxhY2ssIDkwJSk7XG59XG5cbiV1c3lkLXVpLWxpZ2h0LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6ICRiZy1saWdodC1jb2xvcjtcbn1cblxuJXVzeWQtdWktc3Ryb25nLWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6ICRiZy1kYXJrLWNvbG91cjtcbiAgICBjb2xvcjogd2hpdGU7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbn1cblxuJXVzeWQtdWktc3Ryb25nZXN0LWJhY2tncm91bmQge1xuICAgIGJhY2tncm91bmQ6ICRiZy1kYXJrZXItY29sb3I7XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuXG4vKlxuTGlua1xuSW50cmFuZXQgbGlua1xuXG4uYi1saW5rLS1ibG9jayAtIG1ha2UgdGhlIGxpbmsgZGlzcGxheSBsaWtlIGEgYmxvY2sgZWxlbWVudFxuLmItbGluay0tbm8tdW5kZXJsaW5lIC0gcmVtb3ZlIHVuZGVybGluZSB0byB0aGUgbGlua1xuXG5TdHlsZSBndWlkZTogQmFzZS5MaW5rXG4qL1xuLmItbGluayB7XG5cbiAgICAuYi1ib3gtLWRhcmsgJiB7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvdXItbGlnaHQ7XG4gICAgfVxuXG4gICAgJi0tYmxvY2sgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4gICAgJi0taW5saW5lLWJsb2NrIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbiAgICAmLS1uby11bmRlcmxpbmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kYXJrIHtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuICAgIH1cblxuICAgIC5iLWJveC0tcmVkICYge1xuICAgICAgICBjb2xvcjogJGJyYW5kLWxpZ2h0O1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJGJyYW5kLWxpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcblxuLypcblJ1bGVcblxuUnVsZXMgYXJlIGRpdmlkaW5nIGxpbmVzIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gdGhlIHRvcCBvciBib3R0b20gYmxvY2tzIG9mIGNvbnRlbnQuXG5cbi5iLXJ1bGUtLWRvdHRlZCAtIDFweCBncmV5IGRvdHRlZCBib3JkZXIgYXJvdW5kIHRoZSBjb21wb25lbnRcbi5iLXJ1bGUtLWRvdHRlZC1saWdodC1ncmV5LXRvcCAtIDFweCBncmV5IGRvdHRlZCBib3JkZXIgdG9wXG4uYi1ydWxlLS1kb3R0ZWQtbGlnaHQtZ3JleS1ib3R0b20gLSAxcHggZ3JleSBkb3R0ZWQgYm9yZGVyIGJvdHRvbVxuLmItcnVsZS0tZG90dGVkLWRhcmstZ3JleS10b3AgLSAxcHggZGFyayBkb3R0ZWQgYm9yZGVyIHRvcFxuLmItcnVsZS0tZG90dGVkLWRhcmstZ3JleS1ib3R0b20gLSAxcHggZGFyayBkb3R0ZWQgYm9yZGVyIGJvdHRvbVxuLmItcnVsZS0tc3Ryb2tlLWxpZ2h0LWRhcmstdG9wIC0gMXB4IGRhcmsgc3Ryb2tlIGJvcmRlciB0b3Bcbi5iLXJ1bGUtLXN0cm9rZS1oZWF2eS1kYXJrLXRvcCAtIDNweCBkYXJrIHN0cm9rZSBib3JkZXIgdG9wXG4uYi1ydWxlLS1zdHJva2UtaGVhdnktZGFyay1ib3R0b20gLSAzcHggZGFyayBzdHJva2UgYm9yZGVyIGJvdHRvbVxuXG5NYXJrdXA6IGRlbW8ucnVsZS5odG1sXG5cblN0eWxlIGd1aWRlOiBCYXNlLlJ1bGVcbiovXG5cbi5iLXJ1bGUge1xuXG4gICAgJi0tZG90dGVkIHtcbiAgICAgICAgYm9yZGVyOiAxcHggZG90dGVkICRicmFuZC1jb2xvdXItbWVkaXVtLWdyZXk7XG4gICAgfVxuXG4gICAgJi0tZG90dGVkLWxpZ2h0LWdyZXktdG9wIHtcbiAgICAgICAgYm9yZGVyLXRvcDogJGRvdHRlZC1saWdodC1ncmV5O1xuICAgIH1cblxuICAgICYtLWRvdHRlZC1saWdodC1ncmV5LWJvdHRvbSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgJGJyYW5kLWNvbG91ci1tZWRpdW0tZ3JleTtcbiAgICB9XG5cbiAgICAmLS1kb3R0ZWQtZGFyay1ncmV5LXRvcCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBkb3R0ZWQgJGJyYW5kLWNvbG91ci1kYXJrLWdyZXk7XG4gICAgfVxuXG4gICAgJi0tZG90dGVkLWRhcmstZ3JleS1ib3R0b20ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICRicmFuZC1jb2xvdXItZGFyay1ncmV5O1xuICAgIH1cblxuICAgICYtLXN0cm9rZS1saWdodC1kYXJrLXRvcCB7XG4gICAgICAgIGJvcmRlci10b3A6ICRzdHJva2UtbGlnaHQtZGFyaztcbiAgICB9XG5cbiAgICAmLS1zdHJva2UtaGVhdnktZGFyay10b3Age1xuICAgICAgICBib3JkZXItdG9wOiAzcHggc29saWQgJGJyYW5kLWRhcms7XG4gICAgfVxuXG4gICAgJi0tc3Ryb2tlLWhlYXZ5LWRhcmstYm90dG9tIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRicmFuZC1kYXJrO1xuICAgIH1cblxuICAgICYtLXN0cm9rZS1tZWRpdW0tcmVkLXRvcCB7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkYnJhbmQtcmVkO1xuICAgIH1cblxuICAgICYtLXN0cm9rZS1tZWRpdW0tbGlnaHQtZ3JleSB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcbiAgICB9XG5cbiAgICAmLS1zdHJva2UtbWVkaXVtLWxpbmsge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkYnJhbmQtc2Vjb25kYXJ5O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuXG5cblxuLypcblJpY2ggY29udGVudFxuXG5SaWNoIHRleHQgc3R5bGVcblxuU3R5bGUgZ3VpZGU6IEJhc2UuUmljaCBjb250ZW50XG4qL1xuLy9zYXNzLWxpbnQ6ZGlzYWJsZSBjbGFzcy1uYW1lLWZvcm1hdFxuLmItcmljaC1jb250ZW50IHtcblxuICAgIC8vRklYTUU6IGl0IGlzIGEgaGFjayB0byBhZGQgdGhlIG1hcmdpbiBzcGFjZSBiZXR3ZWVuIHAgdGFnIGFuZCBoNCB0YWcgaW4gYWNjb3JkaW9uXG4gICAgLy9wYW5lbCBjb21wb25lbnQsIGNoYW5nZSB0aGlzIGlmIGl0IGJyZWFrcyBzb21ldGhpbmcgZWxzZS5cbiAgICAmLS1hY2NvcmRpb24ge1xuICAgICAgICBoNCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAkY29tcG9uZW50LWdhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGNvbXBvbmVudC1nYXAtc21hbGw7XG4gICAgfVxuXG59XG4vL3Nhc3MtbGludDplbmFibGUgY2xhc3MtbmFtZS1mb3JtYXRcbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG4vKlxuVGl0bGVcblxuVGl0bGVzIGFyZSBzcGVjaWFsaXNlZCBoZWFkaW5ncyBvciBoZWFkaW5nLWxpa2UgZWxlbWVudHMgd2l0aCBhIGRpc3RpbmN0IHZpc3VhbCBzdHlsZSwgaW50ZW5kZWQgc3BlY2lmaWNhbGx5IHVzZWQgYXNcbnRoZSB0aXRsZSBvZiBhIHBhZ2Ugb3IgY29tcG9uZW50LlxuXG4uYi10aXRsZS0taDEgLSBMZXZlbCAxIGNvbnRlbnQgaGVhZGluZyAoMjJweClcbi5iLXRpdGxlLS1oMiAtIExldmVsIDIgY29udGVudCBoZWFkaW5nICgyMHB4KVxuLmItdGl0bGUtLWgzIC0gTGV2ZWwgMyBjb250ZW50IGhlYWRpbmcgKDE4cHgpXG4uYi10aXRsZS0taDQgLSBMZXZlbCA0IGNvbnRlbnQgaGVhZGluZyAoMTZweClcbi5iLXRpdGxlLS1maXJzdCAtIFJlbW92ZXMgdGhlIGxlYWRpbmcgKHRvcCkgbWFyZ2luIGZyb20gdGhlIHRpdGxlXG4uYi10aXRsZS0tcmVkIC0gVGl0bGUgdXNpbmcgcmVkIGJyYW5kIGNvbG91clxuXG5NYXJrdXA6IDxwIGNsYXNzPVwiYi10aXRsZSB7e21vZGlmaWVyX2NsYXNzfX1cIj5UaGlzIGlzIGEgdGl0bGU8L3A+XG5cblN0eWxlIGd1aWRlOiBCYXNlLlRpdGxlXG4qL1xuLmItdGl0bGUge1xuXG4gICAgbGluZS1oZWlnaHQ6ICR0aXRsZS1saW5lLWhlaWdodDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgICYtLWZpcnN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLS1oMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICB9XG5cbiAgICAmLS1oMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAmLS1oMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG5cbiAgICAmLS1oNCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB9XG5cbiAgICAuYi1uZXdzLWNsaXBfX3N1bW1hcnkgJiB7XG4gICAgICAgIC8vIE5PVEU6IGJlbG93IHF1YWxpZnlpbmcgc2VsZWN0b3IgZXhpc3RzLCBub3QgdG8gYnJlYWsgb3RoZXIgcGFnZXMgd2hlcmUgdGhpcyBjb21wb25lbnQgaXMgdXNlZC5cbiAgICAgICAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgJiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtc20tbGFyZ2U7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLypcblRleHRcblxuR2VuZXJpYyB0ZXh0IG1vZGlmaWVycyBmb3Igc2V0dGluZyB0aGluZ3MgbGlrZSBjb2xvdXIuXG5cbi5iLXRleHQtLWFsaWduLWxlZnQgLSBMZWZ0LWFsaWducyB0aGUgdGV4dFxuLmItdGV4dC0tYWxpZ24tcmlnaHQgLSBSaWdodC1hbGlnbnMgdGhlIHRleHRcbi5iLXRleHQtLWFsaWduLWNlbnRyZSAtIENlbnRyZS1hbGlnbnMgdGhlIHRleHRcbi5iLXRleHQtLXdlaWdodC1ub3JtYWwgLSBOb3JtYWwgd2VpZ2h0IHRleHRcbi5iLXRleHQtLWJvbGQgLSBCb2xkIHRleHRcbi5iLXRleHQtLWNvbG91ci1kZWZhdWx0IC0gTWFrZXMgdGV4dCB3aXRoIHBhZ2UgYm9keSBkZWZhdWx0IGNvbG91clxuLmItdGV4dC0tY29sb3VyLWxpZ2h0IC0gTWFrZXMgdGV4dCBhIGxpZ2h0IGNvbG91ciwgYWNjb3JkaW5nIHRvIHRoZSB0aGVtZSAoZS5nLiB3aGl0ZSlcbi5iLXRleHQtLWNvbG91ci1kYXJrIC0gTWFrZXMgdGV4dCBhIGRhcmsgY29sb3VyLCBhY2NvcmRpbmcgdG8gdGhlIHRoZW1lIChlLmcuIGJsYWNrKVxuLmItdGV4dC0tY29sb3VyLXJlZCAtIE1ha2VzIHRleHQgYSByZWQgY29sb3VyLCBpdCBpcyBmb3IgdGhlIHJlZCBjb2xvdXIgdGV4dFxuLmItdGV4dC0tc2l6ZS1zbWFsbCAtIE1ha2VzIHRoZSB0ZXh0IHNtYWxsZXIgdGhhbiB0aGUgZGVmYXVsdCBzaXplICgxMnB4KVxuLmItdGV4dC0tc2l6ZS1iYXNlIC0gTWFrZXMgdGhlIHRleHQgZGVmYXVsdCBib2R5IHNpemUgKDE0cHgpXG4uYi10ZXh0LS1zaXplLWxhcmdlIC0gTWFrZXMgdGhlIHRleHQgbGFyZ2UgKDE4cHgpXG4uYi10ZXh0LS1zaXplLWxhcmdlciAtIE1ha2VzIHRoZSB0ZXh0IGxhcmdlciAoMjBweClcbi5iLXRleHQtLXVwcGVyIC0gVXBwZXJjYXNlIHRoZSB0ZXh0XG4uYi10ZXh0LS1mb250LWxhYmVsIC0gQXBlcmN1IE1vbm8gZm9udCBmYW1pbHlcbi5iLXRleHQtLXN0eWxlLWl0YWxpYyAtIEZvbnQgaXRhbGljIHN0eWxlXG4uYi10ZXh0LS1ub3QtY2xpY2thYmxlIC0gbWFrZSB0aGUgdGV4dCBub3QgY2xpY2thYmxlXG5cbk1hcmt1cDogZGVtby50ZXh0Lmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJhc2UuVGV4dFxuKi9cbi5iLXRleHQge1xuXG4gICAgJi0tYWxpZ24tbGVmdCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgJi0tYWxpZ24tcmlnaHQge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICAmLS1hbGlnbi1jZW50cmUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJi0tbm9ybWFsLXdlaWdodCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuXG4gICAgJi0tYm9sZCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcbiAgICB9XG5cbiAgICAmLS1jb2xvdXItbGlnaHQge1xuICAgICAgICBjb2xvcjogJGZvbnQtY29sb3VyLWxpZ2h0O1xuICAgIH1cblxuICAgICYtLWNvbG91ci1kYXJrIHtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuICAgIH1cblxuICAgICYtLWNvbG91ci1kZWZhdWx0IHtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuICAgIH1cblxuICAgICYtLWNvbG91ci1yZWQge1xuICAgICAgICBjb2xvcjogJGJyYW5kLXJlZC1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLS1jb2xvdXItZ3JleSB7XG4gICAgICAgIGNvbG9yOiAkYnJhbmQtY29sb3VyLWRhcmtlci1ncmV5O1xuICAgIH1cblxuICAgICYtLXNpemUtYmFzZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuICAgIH1cblxuICAgICYtLXNpemUtc20tbGFyZ2Uge1xuICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtc20tbGFyZ2U7XG4gICAgfVxuXG4gICAgJi0tc2l6ZS1sYXJnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZTtcbiAgICB9XG5cbiAgICAmLS1zaXplLWxhcmdlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1sYXJnZXI7XG4gICAgfVxuXG4gICAgJi0tdXBwZXIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgICYtLXVuZGVybGluZSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICYtLW5vd3JhcCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJi0tc3R5bGUtaXRhbGljIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgICYtLWJsb2NrIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi0tbm90LWNsaWNrYWJsZSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5cbi8qXG5IaWRkZW5cblxuUmVzcG9uc2l2ZSB2aWV3IGhpZGRlbiBtb2RpZmllcnMsIHRoZSBzcmMvY29tcG9uZW50cy9jb25zdGFudHMuanMgaGF2ZSBoaWRkZW4gbW9kaWZpZXJzXG5cbi5iLWhpZGRlbi0tc20tZGVzay11cCAtIEhpZGUgdGhlIGNvbXBvbmVudCBvbiBzbWFsbCBkZXNrdG9wIHVwIHNjcmVlblxuLmItaGlkZGVuLS1zbS1kZXNrLWRvd24gLSBIaWRlIHRoZSBjb21wb25lbnQgb24gc21hbGwgZGVza3RvcCBkb3duIHNjcmVlblxuLmItaGlkZGVuLS10YWJsZXQtdXAgLSBIaWRlIHRoZSBjb21wb25lbnQgb24gdGFibGV0IHVwIHNjcmVlblxuLmItaGlkZGVuLS10YWJsZXQtZG93biAtIEhpZGUgdGhlIGNvbXBvbmVudCBvbiB0YWJsZXQgZG93biBzY3JlZW5cbi5iLWhpZGRlbi0tbW9iaWxlLWxhbmRzY2FwZS11cCAtIEhpZGUgdGhlIGNvbXBvbmVudCBvbiBtb2JpbGUgbGFuZHNjYXBlIHVwIHNjcmVlblxuLmItaGlkZGVuLS1tb2JpbGUtbGFuZHNjYXBlLWRvd24gLSBIaWRlIHRoZSBjb21wb25lbnQgb24gbW9iaWxlIGxhbmRzY2FwZSBkb3duIHNjcmVlblxuXG5TdHlsZSBndWlkZTogQmFzZS5IaWRkZW5cbiovXG4uYi1oaWRkZW4ge1xuXG4gICAgJi0tZml4ZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tIGhhbmRsZSBjb21wb25lbnQgRkxBU0ggLS0tLS0tLS0tLS0tLS0tXG4gICAgJi0tb3BhY2l0eSB7XG4gICAgICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmLS1oZWlnaHQge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLypcbiAgICAgICAgSGlkZGVuIGZsYXNoXG5cbiAgICAgICAgQ29tcG9uZW50IEZMQVNIIGhhbmRsZXIgbW9kaWZpZXJzXG5cbiAgICAgICAgLmItaGlkZGVuLS1vcGFjaXR5IC0gS2VlcCB0aGUgY29tcG9uZW50IHBvc2l0aW9uIGFuZCBzaXplLCBzZXQgdGhlIG9wYWNpdHkgdG8gMCwgbm9ybWFsbHkgdXNlIGl0IHRvIHJlZnJlc2ggdGhlIGNvbXBvbmVudCBjb250ZW50LiAoZS5nLiBzeW5jaHJvbmlzZSB0aGUgY29udGVudCBvZiB0aGUgbGVmdCB2ZXJ0aWNhbCBuYXZpZ2F0aW9uIHdpdGggdGhlIG1vYmlsZSBuYXZpZ2F0aW9uKVxuICAgICAgICAuYi1oaWRkZW4tLWhlaWdodCAtIEtlZXAgdGhlIGNvbXBvbmVudCB3aWR0aCwgYnV0IHNldCB0aGUgaGVpZ2h0IHRvIDAsIG5vcm1hbGx5IHVzZSBpdCBmb3Igc2hpZnRpbmcgY29tcG9uZW50IHN0YXRlcywgKGUuZy4gZnJvbSBvbmUgY29sdW1uIHRvIHRocmVlIGNvbHVtbnMpXG5cblxuICAgICAgICBTdHlsZSBndWlkZTogQmFzZS5IaWRkZW4uZmxhc2hcbiAgICAgICAgKi9cbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLSByZXNwb25zaXZlIHZpZXdzIC0tLS0tLS0tLS0tLS0tLVxuICAgICYtLXNtLWRlc2stdXAge1xuXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgICAgICAgQG1lZGlhICgkc21hbGwtZGVza3RvcC11cCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYtLXNtLWRlc2stZG93biB7XG5cbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcblxuICAgICAgICBAbWVkaWEgKCRzbWFsbC1kZXNrdG9wLWRvd24pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLS10YWJsZXQtdXAge1xuXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgICAgICAgQG1lZGlhICgkdGFibGV0LXVwKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJi0tdGFibGV0LWRvd24ge1xuXG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG5cbiAgICAgICAgQG1lZGlhICgkdGFibGV0LWRvd24pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmLS1tb2JpbGUtbGFuZHNjYXBlLXVwIHtcblxuICAgICAgICBAbWVkaWEgKCRtb2JpbGUtbGFuZHNjYXBlLXVwKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW1vYmlsZS1sYW5kc2NhcGUtZG93biB7XG5cbiAgICAgICAgQG1lZGlhICgkbW9iaWxlLWxhbmRzY2FwZS1kb3duKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcblxuLypcbkJveFxuXG5HZW5lcmljIGJveCBjb250YWluZXIsIHN1cHBvcnRpbmcgdmFyaW91cyBjb2xvdXJzIGFuZCBibGVlZCBlZmZlY3RzIHdoZXJlIHRoZSBib3ggb3V0bGluZSBleHRlbmRzIG91dHNpZGUgb2YgdGhlaXJcbm5vcm1hbCBib3VuZGFyaWVzIGFzIHBhcnQgb2YgdGhlIFwiYnJlYWtpbmcgdGhlIGdyaWRcIiB2aXN1YWwgdGhlbWUuXG5cbi5iLWJveC0tZGFyayAtIGRhcmsgYm94XG5cbk1hcmt1cDogZGVtby5ib3guY29sb3VyLmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJsb2Nrcy5Cb3hcbiovXG4uYi1ib3gge1xuXG4gICAgJGJveC1wYWRkaW5nLWNvbXByZXNzZWQ6ICRib3gtcGFkZGluZyAvIDI7IC8vIFRPRE86IG1vdmUgdG8gdmFyaWFibGVzLnNjc3MgaWYgdXNlZCBvdXRzaWRlIG9mIHNjb3BlXG5cbiAgICAkYm94LXN0cm9rZS1zaXplOiAycHg7XG5cbiAgICAkcmVkLXN0cm9rZS1zaXplOiAycHg7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAkYm94LXBhZGRpbmc7XG5cbiAgICAvKlxuICAgIEJveCAoY29sb3VyKVxuXG4gICAgLmItYm94LS1kYXJrIC0gZGFyayBib3hcblxuICAgIE1hcmt1cDogZGVtby5ib3guY29sb3VyLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBCbG9ja3MuQm94XG4gICAgKi9cbiAgICAmLS1kYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLWRhcms7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvdXItbGlnaHQ7XG4gICAgfVxuXG4gICAgJi0tbGlnaHQtZ3JleSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91ci1kYXJrO1xuICAgIH1cblxuICAgICYtLXJlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1yZWQ7XG4gICAgfVxuXG4gICAgJi0tbGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtbGlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZm9udC1jb2xvdXItZGFyaztcbiAgICB9XG5cbiAgICAvKlxuICAgIEJveCAoYmFja2dyb3VuZCBpbWFnZSlcblxuICAgIEl0IHNldHMgdGhlIGJhY2tncm91bmQgaW1hZ2UgdG8gYSBjb250YWluZXIsIGJ5IGRlZmF1bHQgdGhlIGltYWdlIGlzIGluIHRoZSBjZW50ZXIgYW5kIHNjYWxlIHRvIGZpdCB0aGUgY29udGFpbmVyLlxuXG4gICAgRm91ciBtb2RpZmllcnMgYXJlIHByb3ZpZGVkIHRvIGNoYW5nZSB0aGUgYmFja2dyb3VuZCBpbWFnZSBwb3NpdGlvbnM6XG5cbiAgICAuYi1ib3gtLWJnLWNyb3AtdG9wIC0gY3JvcCBpbWFnZSB0b3BcbiAgICAuYi1ib3gtLWJnLWNyb3AtYm90dG9tIC0gY3JvcCBpbWFnZSBib3R0b21cbiAgICAuYi1ib3gtLWJnLWNyb3AtbGVmdCAtIGNyb3AgaW1hZ2UgbGVmdFxuICAgIC5iLWJveC0tYmctY3JvcC1yaWdodCAtIGNyb3AgaW1hZ2UgcmlnaHRcblxuICAgIE1hcmt1cDogZGVtby5ib3guYmFja2dyb3VuZC5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLkJveC5CYWNrZ3JvdW5kIGNvdmVyXG4gICAgKi9cbiAgICAmLS1iZy1jb3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG5cbiAgICAmLS1iZy1jcm9wIHtcbiAgICAgICAgJi10b3AgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDEwMCU7IH1cbiAgICAgICAgJi1ib3R0b20geyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDA7IH1cbiAgICAgICAgJi1sZWZ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAxMDAlOyB9XG4gICAgICAgICYtcmlnaHQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IDA7IH1cbiAgICB9XG5cbiAgICAvKlxuICAgIEJveCAocGFkZGluZyBjb250cm9sKVxuXG4gICAgLmItYm94LS1uby1wYWRkaW5nIC0gcmVtb3ZlcyBwYWRkaW5nXG4gICAgLmItYm94LS1uby1wYWRkaW5nLXRvcCAtIHJlbW92ZXMgcGFkZGluZyB0b3BcbiAgICAuYi1ib3gtLW5vLXBhZGRpbmctcmlnaHQgLSByZW1vdmVzIHBhZGRpbmcgcmlnaHRcbiAgICAuYi1ib3gtLW5vLXBhZGRpbmctYm90dG9tIC0gcmVtb3ZlcyBwYWRkaW5nIGJvdHRvbVxuICAgIC5iLWJveC0tbm8tcGFkZGluZy1sZWZ0IC0gcmVtb3ZlcyBwYWRkaW5nIGxlZnRcblxuICAgIC5iLWJveC0tcGFkZGluZy10b3AgLSBhZGQgcGFkZGluZyB0b3BcbiAgICAuYi1ib3gtLXBhZGRpbmctcmlnaHQgLSBhZGQgcGFkZGluZyByaWdodFxuICAgIC5iLWJveC0tcGFkZGluZy1ib3R0b20gLSBhZGQgcGFkZGluZyBib3R0b21cbiAgICAuYi1ib3gtLXBhZGRpbmctbGVmdCAtIGFkZCBwYWRkaW5nIGxlZnRcblxuICAgIC5iLWJveC0tY29tcHJlc3NlZCAtIHVzZXMgY29tcHJlc3NlZCBwYWRkaW5nIChoYWxmIG9mIGRlZmF1bHRcbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtdG9wIC0gdXNlcyBjb21wcmVzc2VkIHBhZGRpbmcgb24gdG9wXG4gICAgLmItYm94LS1jb21wcmVzc2VkLXJpZ2h0IC0gdXNlcyBjb21wcmVzc2VkIHBhZGRpbmcgb24gcmlnaHRcbiAgICAuYi1ib3gtLWNvbXByZXNzZWQtYm90dG9tIC0gdXNlcyBjb21wcmVzc2VkIHBhZGRpbmcgb24gYm90dG9tXG4gICAgLmItYm94LS1jb21wcmVzc2VkLWxlZnQgLSB1c2VzIGNvbXByZXNzZWQgcGFkZGluZyBvbiBsZWZ0XG4gICAgLmItYm94LS1jb21wcmVzc2VkLXNpZGVzLW9ubHkgLSB1c2VzIGNvbXByZXNzZWQgcGFkZGluZyBvbiBsZWZ0IGFuZCByaWdodCBvbmx5XG4gICAgLmItYm94LS1jb21wcmVzc2VkLXRvcC1ib3R0b20tb25seSAtIHVzZXMgY29tcHJlc3NlZCBwYWRkaW5nIG9uIHRvcCBhbmQgYm90dG9tIG9ubHlcblxuICAgIC5iLWJveC0tcGFyYWdyYXBoLWJvdHRvbSAtIHNldCBib3R0b20gc3BhY2UgZm9yIHRoZSBwYXJhZ3JhcGggPHA+IGJvdHRvbVxuXG4gICAgTWFya3VwOiA8ZGl2IGNsYXNzPVwiYi1ib3ggYi1ib3gtLWdyZXkgbW9kaWZpZXJfY2xhc3NcIj48cD5Cb3ggY29tcG9uZW50PC9wPjwvZGl2PlxuXG4gICAgU3R5bGUgZ3VpZGU6IEJsb2Nrcy5Cb3ggcGFkZGluZyBjb250cm9sXG4gICAgKi9cbiAgICAmLS1uby1wYWRkaW5nIHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmLXRvcCB7IHBhZGRpbmctdG9wOiAwOyB9XG4gICAgICAgICYtcmlnaHQgeyBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgICAgICYtYm90dG9tIHsgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAgICAgJi1sZWZ0IHsgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgfVxuXG4gICAgJi0tcGFkZGluZyB7XG4gICAgICAgICYtdG9wIHsgcGFkZGluZy10b3A6ICRib3gtcGFkZGluZzsgfVxuICAgICAgICAmLXJpZ2h0IHsgcGFkZGluZy1yaWdodDogJGJveC1wYWRkaW5nOyB9XG4gICAgICAgICYtYm90dG9tIHsgcGFkZGluZy1ib3R0b206ICRib3gtcGFkZGluZzsgfVxuICAgICAgICAmLWxlZnQgeyBwYWRkaW5nLWxlZnQ6ICRib3gtcGFkZGluZzsgfVxuXG4gICAgfVxuXG4gICAgJi0tcGFkZGluZyB7XG4gICAgICAgICYtbXMtbGVmdCB7IHBhZGRpbmctbGVmdDogJGNvbnRhaW5lci1tcy1wYWRkaW5nOyB9XG4gICAgfVxuXG5cblxuICAgICYtLWNvbXByZXNzZWQge1xuICAgICAgICBwYWRkaW5nOiAkYm94LXBhZGRpbmctY29tcHJlc3NlZDtcblxuICAgICAgICAmLXRvcCB7IHBhZGRpbmctdG9wOiAkYm94LXBhZGRpbmctY29tcHJlc3NlZDsgfVxuICAgICAgICAmLXJpZ2h0IHsgcGFkZGluZy1yaWdodDogJGJveC1wYWRkaW5nLWNvbXByZXNzZWQ7IH1cbiAgICAgICAgJi1ib3R0b20geyBwYWRkaW5nLWJvdHRvbTogJGJveC1wYWRkaW5nLWNvbXByZXNzZWQ7IH1cbiAgICAgICAgJi1sZWZ0IHsgcGFkZGluZy1sZWZ0OiAkYm94LXBhZGRpbmctY29tcHJlc3NlZDsgfVxuICAgICAgICAmLXNpZGVzLW9ubHkgeyBwYWRkaW5nOiAkYm94LXBhZGRpbmcgJGJveC1wYWRkaW5nLWNvbXByZXNzZWQ7IH1cbiAgICAgICAgJi10b3AtYm90dG9tLW9ubHkgeyBwYWRkaW5nOiAkYm94LXBhZGRpbmctY29tcHJlc3NlZCAkYm94LXBhZGRpbmc7IH1cbiAgICB9XG5cbiAgICAmLS1wYXJhZ3JhcGgtYm90dG9tIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgfVxuXG5cbiAgICAvKlxuICAgIEJveCAoYmxlZWQgbGVmdC9yaWdodClcblxuICAgIC5iLWJveC0tYmxlZWQtbGVmdCAtIEJveCBibGVlZHMgb3V0IHRvIHRoZSBsZWZ0XG4gICAgLmItYm94LS1ibGVlZC1yaWdodCAtIEJveCBibGVlZHMgb3V0IHRvIHRoZSByaWdodFxuXG4gICAgTWFya3VwOiBkZW1vLmJveC5ibGVlZC1sci5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQmxvY2tzLmJveCBibGVlZFxuICAgICovXG5cbiAgICAvLyBCbGVlZHMgdGhlIGJveCB0byB0aGUgbGVmdCwgb3ZlcmxhcHBpbmcgYW55dGhpbmcgYWxyZWFkeSB0aGVyZVxuICAgICYtLWJsZWVkLWxlZnQge1xuXG4gICAgICAgIC8vIG1vYmlsZSAoZGVmYXVsdClcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICAvLyBsYXJnZSBkZXNrdG9wXG4gICAgICAgIEBtZWRpYSAoJGxhcmdlLWRlc2t0b3AtdXApIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJGJsZWVkLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRibGVlZC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmItc2VjdGlvbl9fY29udGFpbmVyICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgICAgICBAbWVkaWEgKCR0YWJsZXQtdXApIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLSRib3gtcGFkZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLy8gQmxlZWRzIHRoZSBib3ggdG8gdGhlIHJpZ2h0LCBvdmVybGFwcGluZyBhbnl0aGluZyBhbHJlYWR5IHRoZXJlXG4gICAgJi0tYmxlZWQtcmlnaHQge1xuXG4gICAgICAgIC8vIG1vYmlsZSAoZGVmYXVsdClcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIC8vIGxhcmdlIGRlc2t0b3BcbiAgICAgICAgQG1lZGlhICgkbGFyZ2UtZGVza3RvcC11cCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtJGJsZWVkLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYmxlZWQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5iLXNlY3Rpb25fX2NvbnRhaW5lciAmIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgIEBtZWRpYSAoJHRhYmxldC11cCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRib3gtcGFkZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLypcbiAgICBCb3ggKGF1dG8tYmxlZWQpXG5cbiAgICAuYi1ib3gtLWJsZWVkIC0gQm94IGJsZWVkcyBhdXRvbWF0aWNhbGx5IHRvIHRoZSBsZWZ0IGFuZC9vciByaWdodCwgZGVwZW5kaW5nIG9uIGl0J3MgY29udGFpbmVyXG5cbiAgICBNYXJrdXA6IGRlbW8uYm94LmF1dG8tYmxlZWQuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IEJsb2Nrcy5ib3ggYXV0by1ibGVlZFxuICAgICovXG5cbiAgICAmLS1ibGVlZCB7XG5cbiAgICAgICAgLy8gVGhlIHJpZ2h0IHNpZGViYXIgYmxlZWRzIHRvIHRoZSByaWdodFxuICAgICAgICAudXN5ZC1hc2lkZS1jb250ZW50ICYge1xuICAgICAgICAgICAgQGV4dGVuZCAuYi1ib3gtLWJsZWVkLXJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGxlZnQgc2lkZWJhciBibGVlZHMgdG8gdGhlIGxlZnRcbiAgICAgICAgLnVzeWQtaW5saW5lLXdyYXAgJiB7XG4gICAgICAgICAgICBAZXh0ZW5kIC5iLWJveC0tYmxlZWQtbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5iLW5ld3MtY2xpcC0taGVybyAmIHtcbiAgICAgICAgICAgIEBleHRlbmQgLmItYm94LS1ibGVlZC1sZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgJiB7XG4gICAgICAgICAgICA6bm90KC5iLWZpZ3VyZV9faW1hZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kYm94LXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kYm94LXBhZGRpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8qXG4gICAgQm94IChjbGVhci1mbG9hdHMpXG5cbiAgICAuYi1ib3gtLWNsZWFyLWZsb2F0c1xuXG4gICAgTWFya3VwOiBjb21pbmcgc29vbiFcblxuICAgIFN0eWxlIGd1aWRlOiBCbG9ja3MuYm94IGNsZWFyLWZsb2F0c1xuICAgICovXG4gICAgJi0tY2xlYXItZmxvYXRzIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJi0tcmVkLXRvcCB7XG4gICAgICAgIGJvcmRlci10b3A6ICRyZWQtc3Ryb2tlLXNpemUgc29saWQgJGJyYW5kLXJlZDtcbiAgICAgICAgcGFkZGluZy10b3A6ICRib3gtcGFkZGluZyAtICRyZWQtc3Ryb2tlLXNpemU7XG4gICAgfVxuXG4gICAgJi0tZGVmYXVsdC10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogJGJveC1wYWRkaW5nO1xuICAgIH1cblxuICAgICYtLXN0cm9rZSB7XG4gICAgICAgICYtbGlnaHQtZ3JleSB7IGJvcmRlcjogJGJveC1zdHJva2Utc2l6ZSBzb2xpZCAkYnJhbmQtY29sb3VyLWxpZ2h0LWdyZXk7IH1cbiAgICB9XG5cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5cblxuLypcbkJ1dHRvblxuXG5HZW5lcmljIGJ1dHRvbiAoZS5nLiBcImItYnV0dG9uXCIpLiBEZWZhdWx0IC5iLWJ1dHRvbiBiYWNrZ3JvdW5kIGNvbG9yIG9yIGJvcmRlciBjb2xvci5cblxuLmItYnV0dG9uLS1wcmltYXJ5IC0gQSBidXR0b24gd2l0aCBwcmltYXJ5IGJhY2tncm91bmQgY29sb3IgYW5kIDFweCBib3JkZXIuXG4uYi1idXR0b24tLXNlY29uZGFyeSAtIEEgYnV0dG9uIHdpdGggd2hpdGUgYmFja2dyb3VuZCBhbmQgMXB4IGJvcmRlciByZWQuXG4uYi1idXR0b24tLWRpc2FibGVkIC0gQSBkaXNhYmxlZCBidXR0b25cblxuTWFya3VwOiBkZW1vLmJ1dHRvbi5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuQnV0dG9uXG4qL1xuLmItYnV0dG9uIHtcbiAgICAvL1ZhcmlhYmxlcyBmb3IgYnV0dG9ucyBvbmx5XG4gICAgLyogVG8gY29udHJvbCBidXR0b24gYm9yZGVyIHN0eWxlcy4gKi9cbiAgICAkYnV0dG9uLWJvcmRlci13aWR0aDogMXB4O1xuICAgICRidXR0b24tYm9yZGVyLXN0eWxlOiBzb2xpZDtcblxuICAgIC8qIFRvIHNldCBkZWZhdWx0IG9wYWNpdHkgZm9yIGRpc2FibGVkIGJ1dHRvbnMuICovXG4gICAgJGJ1dHRvbi1kaXNhYmxlZC1vcGFjaXR5OiAuNTtcblxuICAgIC8qIFRvIGJ1aWxkIHBhZGRpbmcgZm9yIGJ1dHRvbnMuICovXG5cblxuICAgIGJvcmRlcjogJGJ1dHRvbi1ib3JkZXItd2lkdGggJGJ1dHRvbi1ib3JkZXItc3R5bGUgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogJGZvcm0tY29udHJvbC1kZWZhdWx0LXBhZGRpbmc7XG5cbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1jb250cm9sLWxpbmUtaGVpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtcmVndWxhcjtcblxuICAgICYtLXByaW1hcnkge1xuICAgICAgICBib3JkZXItY29sb3I6ICRicmFuZC1yZWQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1yZWQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6ICRmb250LWNvbG91ci1saWdodDtcbiAgICB9XG5cbiAgICAmLS1uby1ib3JkZXIge1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJi0tZnVsbC13aWR0aCB7XG4gICAgICAgIC8qIG5lZWQgdG8gZmluZCBhIGJldHRlciB3YXkgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgQ1NTIHJlc2V0IHdpdGhvdXQgdXNpbmcgIWltcG9ydGFudCAqL1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgICAgIEBtZWRpYSAoJHNtYWxsLWRlc2t0b3AtdXApIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG4vKipcblBvc2l0aW9uXG5cbkdlbmVyaWMgcG9zaXRpb25pbmcgZm9yIGNvbnRhaW5lciBibG9ja3MgYW5kIGNoaWxkIGVsZW1lbnRzLlxuXG4uYi1wb3NpdGlvbi0tdG9wLWxldmVsOiBzZXQgdGhlIHRvcCBsZXZlbCBwb3NpdGlvblxuXG5TdHlsZSBndWlkZTogQmxvY2tzLlBvc2l0aW9uXG4qL1xuLmItcG9zaXRpb24ge1xuXG4gICAgLy9lbGVtZW50c1xuICAgICZfX2NvbnRhaW5lciB7XG5cbiAgICAgICAgLyoqXG4gICAgICAgIFBvc2l0aW9uIChWZXJ0aWNhbClcblxuICAgICAgICBWZXJ0aWNhbCBwb3NpdGlvbiBjb250cm9sLiBCeSBkZWZhdWx0IGNvbnRlbnQgaXMgc2l0dGluZyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjb250YWluZXIuXG5cbiAgICAgICAgU3R5bGUgZ3VpZGU6IEJsb2Nrcy5Qb3NpdGlvbi52ZXJ0aWNhbFxuICAgICAgICAqL1xuICAgICAgICAmLS12ZXJ0aWNhbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAgICAgIC8vRklYTUU6IHNldHRpbmcgd2lkdGggYW5kIGhlaWdodCAxMDAlIGlzIGZvciB0aGUgaW1hZ2UgZ2FsbGVyeSBuYXYgYnV0dG9ucyxcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTsgICAgIC8vYnV0IGl0IG1heSBsaW1pdCB0aGUgdXNhZ2UsIGNoYW5nZSB0aGlzIGlmIHlvdSB0aGluayBpdCBpcyBiZXR0ZXIuXG5cbiAgICAgICAgICAgIC5iLXBvc2l0aW9uX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuXG4gICAgJl9fY29udGVudCB7XG5cbiAgICAgICAgJi0tdG9wIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ib3R0b20ge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy9tb2RpZmllcnNcbiAgICAmLS10b3AtbGV2ZWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDk5OTk7XG4gICAgfVxuXG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLypcblNlZSBtb3JlIGJ1dHRvblxuXG5EaXNwbGF5cyBhIHNlZSBtb3JlIGJ1dHRvblxuXG5NYXJrdXA6IGRlbW8uc2VlLW1vcmUtYnV0dG9uLmh0bWxcblxuU3R5bGUgZ3VpZGU6IEJsb2Nrcy5TZWUgbW9yZSBidXR0b25cblxuKi9cbi5iLXNlZS1tb3JlLWJ1dHRvbiB7XG5cbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJGJyYW5kLXJlZDtcblxuICAgICZfX2ljb24ge1xuICAgICAgICBjb2xvcjogJGJyYW5kLXJlZDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgICZfX2JvdHRvbS0tcGFkZGluZyB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuXG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcImNvbXBhc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG4vKlxuRm9ybSBjb250cm9sXG5cblRPRE86IGFkZCBkZXNjcmlwdGlvblxuXG5NYXJrdXA6XG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuRm9ybSBjb250cm9sXG4qL1xuXG5cbi5iLWZvcm0tY29udHJvbCB7XG5cbiAgICAvKipcbiAgICAqIC0tLS0tLS0tLS0tLS0tLS0tIHZhcmlhYmxlcyAtLS0tLS0tLS0tLS0tLS0tLVxuICAgICovXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcblxuICAgICYtLW5vLXNwYWNpbmcge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYtLWlubGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIC0tLS0tLS0tLS0tLS0tLS0tICBlbGVtZW50cyAgLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAqL1xuXG4gICAgLypcbiAgICBGb3JtIGNvbnRyb2wgKGxhYmVsIGFuZCBpbnB1dC1ncm91cHMgaW5saW5lKVxuXG4gICAgVGhpcyBpcyB0byBkZW1vbnN0cmF0ZSBhIHBvc3NpYmxlIGZvcm0gY29udHJvbCBzdHlsZSBhbmQgYSB3YXkgb2YgdXNpbmcgdGhlIHdyYXBwZXIgZWxlbWVudC5cblxuICAgIE1hcmt1cDpcblxuICAgIFN0eWxlIGd1aWRlOiBCbG9ja3MuRm9ybSBjb250cm9sLldyYXBwZXJcbiAgICAqL1xuICAgICZfX3dyYXBwZXIge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmxpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgLy8gb3ZlcnJpZGUgYm9vdHN0cmFwXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOyAvLyByZW1vdmUgdGhlIGxhYmVsIHRvcCBhbmQgYm90dG9tIHNwYWNlXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1zbS1sYXJnZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xuICAgIH1cblxuICAgICZfX2lucHV0LXRleHQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSBpbXBvcnRhbnQgZnJvbSBiZWxvdywgb25jZSBsZWdhY3kgc3R5bGVzIGFyZSByZW1vdmVkXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRicmFuZC1jb2xvdXItZGFya2VyLWdyZXkgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogJGZvcm0tY29udHJvbC1kZWZhdWx0LXBhZGRpbmcgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb3JtLWNvbnRyb2wtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlO1xuXG4gICAgICAgIC5iLXRvcC1iYXIgJiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgICAgICAgIC8vIFRPRE86IHJlbW92ZSBpbXBvcnRhbnQgZnJvbSBiZWxvdywgb25jZSBsZWdhY3kgc3R5bGVzIGFyZSByZW1vdmVkXG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLypcbkZvcm1cblxuTm90ZTogVGhlIGZvcm0gZm9udCBzaXplIGZvciB0aGUgaW5wdXQgZWxlbWVudCBpcyAxNHB4LCB0byBrZWVwIGl0IHRoZSBzYW1lIGFzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gR2VuZXJhbCBydWxlczogbWFyZ2luIGJldHdlZW4gZWFjaCBvZiB0aGUgZm9ybSBlbGVtZW50cyBpcyAyMHB4LCB0aGUgZm9ybSBwYWRkaW5nIGlzIDI1cHggYXJvdW5kIDQgc2lkZXMuXG5cbk1hcmt1cDogVE9ETzogbmVlZCB0byBhZGRcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuRm9ybVxuKi9cbi5iLWZvcm0ge1xuXG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzM1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLypcbkNoZWNrYm94XG5cbkdlbmVyYWwgY2hlY2tib3ggYnV0dG9uLCB0ZXh0IGlzIGdyZXkgY29sb3IgYnkgZGVmYXVsdCBhbmQgaXMgd2hpdGUgaW4gdGhlIGRhcmsgZm9ybS5cblxuTWFya3VwOiBkZW1vLmNoZWNrYm94LmJhc2UuaHRtbFxuXG5TdHlsZSBndWlkZTogQmxvY2tzLkNoZWNrYm94XG4qL1xuLmItY2hlY2tib3gge1xuXG4gICAgLyoqXG4gICAgKiB2YXJpYWJsZXNcbiAgICAqL1xuICAgICRib3gtc2l6ZTogMjBweDtcbiAgICAkYm94LW1hcmdpbi1yaWdodDogJGJveC1zaXplICsgMTRweDtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8qKlxuICAgICogIC0tLS0tLS0tLS0tLS0tLS0tLS0gZWxlbWVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgKi9cbiAgICAvL0ZJWE1FOiByYWRpbyBhbmQgY2hlY2tib3ggYXJlIHVzaW5nIHRoZSBzYW1lIGFyY2hpdGVjdHVyZSwgaXQgbWVhbnMgd2UgY2FuIGhhdmUgYSBhYnN0cmFjdCBzdHlsZSBmb3IgYm90aCBvZiB0aGVtXG4gICAgLy9UT0RPOiBob3ZlciBhbmQgZm9jdXMgc3RhdGVcbiAgICAmX190ZXh0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkYm94LW1hcmdpbi1yaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICByaWdodDogMXB4O1xuICAgICAgICAgICAgYm90dG9tOiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAxcHg7XG4gICAgICAgICAgICAvL0ZJWE1FOiBpdCB3aWxsIGJlIGJldHRlciB0byB1c2UgaWNvbiBmb250IGFzIGl0IGlzIG1vcmUgZmxleGlibGUgYW5kIHByZWNpc2VcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybChcIiN7JGltYWdlLXBhdGh9L2Zvcm1zL2NoZWNrYm94ZXMucG5nXCIpIDAgMCBuby1yZXBlYXQ7XG4gICAgICAgICAgICB3aWR0aDogJGJveC1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYm94LXNpemU7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGJveC1zaXplO1xuICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAvL0hpZGUgdGhlIGNoZWNrYm94IGRlZmF1bHQgYm94LCAgYXBwZWFyYW5jZShub25lKSBkb2Vzbid0IHdvcmsgZm9yIElFIGJyb3dzZXJzXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAmOmNoZWNrZWQgKy5iLWNoZWNrYm94X190ZXh0OjpiZWZvcmUge1xuICAgICAgICAgICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwICgtJGJveC1zaXplKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6LW1vei1mb2N1c3JpbmcgKy5iLWNoZWNrYm94X190ZXh0IHtcbiAgICAgICAgICAgIG91dGxpbmU6IHRoaW4gZG90dGVkO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyICsuYi1jaGVja2JveF9fdGV4dCxcbiAgICAgICAgJjpmb2N1cyArLmItY2hlY2tib3hfX3RleHQge1xuICAgICAgICAgICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGZvcm0gZGFyayB0aGVtZVxuICAgICovXG4gICAgLmItZm9ybS0tZGFyayAmIHtcblxuICAgICAgICAmX190ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCJjb21wYXNzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLypcbkRyb3Bkb3duXG5cbkl0IHdpbGwgYmluZCB0aGUganF1ZXJ5IHNlbGVjdG1lbnUgb24gdGhlIGNvbXBvbmVudCBpbml0aWFsIHN0ZXAuXG5cbkN1cnJlbnRseSBpdCBkZXBlbmRzIG9uIHRoZSBiLWlucHV0LWdyb3VwIHNlbGVjdG9yIHRvIGNvbnRyb2wgdGhlIHNlbGVjdCBidXR0b24gd2lkdGggb24gc2NyZWVuIHNpemUgY2hhbmdlcyBpbmNsdWRpbmcgdGhlIG1vYmlsZSBvcmllbnRhdGlvbiBjaGFuZ2UsIGFzIHRoZSBqYXZhc2NyaXB0IHdpbGwgdXNlIGItaW5wdXQtZ3JvdXAgYXMgdGhlIHNlbGVjdG9yIGtleSB0byBnZXQgdGhlIHdpZHRoIGZvciBkcm9wZG93biBzZWxlY3QgYnV0dG9uIGNhbGN1bGF0aW9uLCB3aGljaCBtZWFucyB0aGUgY29tcG9uZW50IHNob3VsZCBiZSB3cmFwcGVkIGJ5IHRoZSBcImItaW5wdXQtZ3JvdXBcIiBzZWxlY3Rvci5cblxuRXhhbXBsZSBcImh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC9mb3JtLmh0bWxcIlxuXG5KcXVlcnktdWkgc2VsZWN0bWVudSBhcGk6IGh0dHBzOi8vanF1ZXJ5dWkuY29tL3NlbGVjdG1lbnUvXG5cbk1hcmt1cDogZGVtby5kcm9wZG93bi5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuRHJvcGRvd25cblxuKi9cblxuLmItZHJvcGRvd24ge1xuICAgIC8qXG4gICAgKiAtLS0tLS0tLS0tLS0tLS0tLSBWYXJpYWJsZXMgKCBpbiB0aGlzIGJsb2NrIHNjb3BlICkgLS0tLS0tLS1cbiAgICAqL1xuICAgIC8vVE9ETzogdXBkYXRlIHZhcmlhYmxlcyB3aXRoIF92YXJpYWJsZXMuc2Nzcyx0aGV5IGhhdmVuJ3QgYmVlbiB2YWxpZGF0ZWQgeWV0LlxuICAgICR0ZXh0LWNvbG9yLXdoaXRlOiB3aGl0ZTtcbiAgICAkdGV4dC1jb2xvci1ibGFjazogYmxhY2s7XG4gICAgJGlucHV0LXNwYWNpbmc6IDEwcHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcblxuICAgICZfX3NlbGVjdCB7XG4gICAgICAgIG9wYWNpdHk6IDA7ICAgICAgICAgLy9TZWxlY3QgYm94IHdpbGwgYmUgc2V0IHRvIGRpc3BsYXkgbm9uZSBhZnRlciBqcXVlcnktdWkgc2VsZWN0bWVtdSgpIGluaXRpYWxpemF0aW9uXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4OyAgIC8vS2VlcCB0aGUgYm94IHNpemUgd2l0aG91dCBmbGFzaGluZyB0aGUgcGFuZWxcbiAgICB9XG5cbiAgICAvLyBOT1RFOiB3aGVuIG9ubHkgMSBpdGVtIG5lZWRzIHRvIGJlIGRpc3BsYXllZCxcbiAgICAvLyAgICAgaW4gYSBzZWxlY3Qgc3R5bGUgYGV4Y2VsIGNlbGxgXG4gICAgJl9fZmFrZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAkaW5wdXQtc3BhY2luZyAvIDIgJGlucHV0LXNwYWNpbmc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5iLWZvcm0tLWRhcmsgJiB7XG4gICAgICAgIC51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS13aWRnZXQge1xuICAgICAgICAgICAgLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yLXdoaXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tcmVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyYW5kLXJlZDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1yZWQtaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYi1pY29uLS1kb3duLWNoZXZyb24sXG4gICAgICAgIC5iLWZvcm0gJiAuYi1pY29uLS1kb3duLWNoZXZyb24sXG4gICAgICAgIC51aS1zZWxlY3RtZW51LWJ1dHRvbi51aS13aWRnZXQgLnVpLXNlbGVjdG1lbnUtdGV4dCB7XG4gICAgICAgICAgICBjb2xvcjogJHRleHQtY29sb3Itd2hpdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ncmV5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWJlZDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1yZWQtaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAudWktc2VsZWN0bWVudS1idXR0b24udWktd2lkZ2V0IC51aS1zZWxlY3RtZW51LXRleHQsXG4gICAgICAgIC5iLWZvcm0tLWRhcmsgJiAudWktc2VsZWN0bWVudS1idXR0b24udWktd2lkZ2V0IC51aS1zZWxlY3RtZW51LXRleHQge1xuICAgICAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yLWJsYWNrO1xuICAgICAgICB9XG5cbiAgICAgICAgLmItaWNvbi0tZG93bi1jaGV2cm9uLFxuICAgICAgICAuYi1mb3JtICYgLmItaWNvbi0tZG93bi1jaGV2cm9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJhbmQtcmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9iZW0tdXRpbHNcIjtcblxuLypcbkFjY29yZGlvbiBjb21wb25lbnRcbkl0IG92ZXJyaWRlcyBib29zdHJhcHMgYWNjb3JkaW9uIGNsYXNzZXNcblxuTWFya3VwOiBkZW1vLmFjY29yZGlvbi5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkFjY29yZGlvblxuKi9cbi5iLWFjY29yZGlvbiB7XG5cbiAgICAvL292ZXJyaWRlIGJvb3RzdHJhcCBjbGFzc2VzXG4gICAgLy9zYXNzLWxpbnQgZGlzYWJsZTpjbGFzcy1uYW1lLWZvcm1hdFxuICAgIC5jb2xsYXBzZS5pbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5jb2xsYXBzZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuY29sbGFwc2luZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjM1cztcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogaGVpZ2h0LCB2aXNpYmlsaXR5O1xuICAgIH1cblxuICAgIC5wYW5lbCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAvL3Nhc3MtbGludCBlbmFibGU6Y2xhc3MtbmFtZS1mb3JtYXRcblxuICAgIC8vYWNjb3JkaW9uIHN0eWxlXG4gICAgJl9fZ3JvdXAge1xuICAgICAgICBib3JkZXItdG9wOiAkc3Ryb2tlLXRoaW4tZ3JleTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJHN0cm9rZS10aGluLWdyZXkgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgICAgICBjb2xvcjogJGZvbnQtY29sb3VyLWRhcmsgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXNlbWktYm9sZDtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGZvbnQtY29sb3VyLWRhcms7XG4gICAgICAgIH1cblxuICAgICAgICAvLysvLSBpY29uIHRvZ2dsZVxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgY29udGVudDogcmVzb2x2ZShcImFzc2V0cy9pbWcvaWNvbnMvc3ZnL21pbnVzLnN2Z1wiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vdXNpbmcgYm9vdHN0cmFwIGNvbGxhcHNlZCBjbGFzc1xuICAgICAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHJlc29sdmUoXCJhc3NldHMvaW1nL2ljb25zL3N2Zy9wbHVzLnN2Z1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5vcm1hbC13ZWlnaHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDI0cHggMDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMCAwIDM2cHg7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG4vKlxuQ2Fyb3VzZWxcblxuSXQgaXMgYnVpbHQgd2l0aCBTd2lwZXJKcyBodHRwOi8vaWRhbmdlcm8udXMvc3dpcGVyQDIuNy42IGZvciBJRSA5IHN1cHBvcnRcblxuV2UgY2FuIHVwZ3JhZGUgdG8gMy54LnggdmVyc2lvbiBvbmNlIHdlIGRyb3AgdGhlIElFIDkgc3VwcG9ydC5cblxuQVBJIGFuZCBjb25maWd1cmF0aW9uczogaHR0cHM6Ly9naXRodWIuY29tL25vbGltaXRzNHdlYi9Td2lwZXIvYmxvYi9Td2lwZXIyL0FQSS5tZFxuXG5EZW1vIGlzIGluIGNvbnRlbnQtcGFnZS5odG1sXG5cbkRlZmF1bHQgaXQgaGFzIGF1dG9wbGF5IGFuZCBsb29waW5nIHNsaWRlc1xuXG5NYXJrdXA6IGRlbW8uY2Fyb3VzZWwuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5DYXJvdXNlbFxuKi9cbi5iLWNhcm91c2VsIHtcblxuICAgIC8vLS0tLS0tLS0gdmFyaWFibGVzIC0tLS0tLS0tXG4gICAgJGNhcm91c2VsLXdpZHRoOiAxMDAlO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLy8tLS0tLS0tLSBlbGVtZW50cyAtLS0tLS0tLVxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6ICRjYXJvdXNlbC13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgICZfX3NsaWRlLXdyYXBwZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fc2xpZGUge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0KCk7XG4gICAgICAgIC8vY2Fyb3VzZWwgZGVmYXVsdCBpcyBvbmUgc2xpZGVcbiAgICAgICAgd2lkdGg6ICRjYXJvdXNlbC13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICYtLXRodW1iIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzcGFjZS1iZXR3ZWVuLXNsaWRlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkc3BhY2UtYmV0d2Vlbi1zbGlkZTtcbiAgICAgICAgICAgIC8vU2V0IHRoZSBkZWZhdWx0IHRodW1iIHdpZHRoIHRvIDI1JVxuICAgICAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMjBweDsgLy9tYWtlIHRoZSBjbGlja2FibGUgYXJlYSAyMHB4IHdpZHRoXG5cbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG5cbiAgICAgICAgLypcbiAgICAgICAgQ2Fyb3VzZWwgKGJ1dHRvbiBuZXh0KVxuXG4gICAgICAgIE1hcmt1cDogY2Fyb3VzZWwtYnV0dG9uLW5leHQuaHRtbFxuXG4gICAgICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkNhcm91c2VsLkJ1dHRvbiBuZXh0XG4gICAgICAgICovXG4gICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgcmlnaHQ6ICRidXR0b24tcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC8qXG4gICAgICAgIENhcm91c2VsIChidXR0b24gcHJldilcblxuICAgICAgICBNYXJrdXA6IGNhcm91c2VsLWJ1dHRvbi1wcmV2Lmh0bWxcblxuICAgICAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5DYXJvdXNlbC5CdXR0b24gcHJldlxuICAgICAgICAqL1xuICAgICAgICAmLS1wcmV2IHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogJGJ1dHRvbi1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5cbi8qXG5GYWN0IGxpc3RcblxuQSBncm91cCBvZiBmYWN0IHNuaXBwZXRzLCB0aGUgYmFzZSBzdHlsZVxuXG5NYXJrdXA6IGRlbW8uZmFjdC1saXN0Lmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuRmFjdCBsaXN0XG4qL1xuXG4uYi1mYWN0LWxpc3Qge1xuXG4gICAgLy8tLS0tLS0tLS0tIEZhY3QgbGlzdCBlbGVtZW50cyAtLS0tLS0tLS0tLVxuICAgICZfX2xpc3QtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBvbmVudC1nYXAgLyAyO1xuICAgIH1cblxuICAgICZfX2l0ZW0taG9sZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBvbmVudC1nYXAgLyAyO1xuICAgIH1cblxuXG4gICAgLypcbiAgICBGYWN0XG5cbiAgICBUaGUgZmFjdCBsaXN0IGl0ZW1cblxuICAgIE1hcmt1cDogZGVtby5mYWN0Lmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkZhY3QgbGlzdC5GYWN0XG4gICAgKi9cbiAgICAmX19pdGVtIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICB9XG5cblxuICAgIC8qXG4gICAgRmFjdCBsaXN0ICgzIHJvd3MpXG5cbiAgICBJdCBkaXNwbGF5cyBpbiAzIHJvd3NcblxuICAgIE1hcmt1cDogZGVtby5mYWN0LWxpc3QtMy1yb3dzLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkZhY3QgbGlzdC4zIHJvd3NcbiAgICAqL1xuXG4gICAgLy8tLS0tLS0tLS0tLS0gRmFjdCBsaXN0IG1vZGlmaWVycyAtLS0tLS0tLS0tLVxuICAgIC8vQ29sdW1uIHZpZXcgbWl4aW5cbiAgICAvL05vdGU6IGl0IGlzIGJldHRlciB0byB1c2UgJSBwbGFjZWhvbGRlciwgYnV0IGl0IGRvZXNuJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyeVxuICAgIEBtaXhpbiBjb2wtdmlldyB7XG5cbiAgICAgICAgLmItZmFjdC1saXN0X19saXN0LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRjb21wb25lbnQtZ2FwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuYi1mYWN0LWxpc3RfX2l0ZW0taG9sZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICB9XG5cbiAgICAgICAgLmItZmFjdC1saXN0X19pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlOyAvL0hBQ0s6IGZpeCBTYWZhcmkgMTAwJSBoZWlnaHQgaW4gdGFibGUgY2VsbFxuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvL0hBQ0s6IGZpeCBGaXJlZm94IDEwMCUgaGVpZ2h0IGluIHRhYmxlIGNlbGxcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLypcbiAgICBGYWN0IGxpc3QgKDIgY29sdW1ucylcblxuICAgIEl0IHN0YXlzIGFzIHRoZSBzYW1lIGluIG1vYmlsZSwgdGFibGV0IGFuZCBkZXNrdG9wXG5cbiAgICA8Yj5Nb2RpZmllcnM8L2I+XG4gICAgPHA+Zm9yIHRoZSBjb21wb25lbnQ6IGItZmFjdC1saXN0LS1jb2wgYi1ncmlkLXdyYXBwZXItLWNvbDwvcD5cbiAgICA8cD5mb3IgdGhlIGZhY3QgaXRlbTogMS8yPC9wPlxuXG4gICAgTWFya3VwOiBkZW1vLmZhY3QtbGlzdC0yLWNvbHVtbnMuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuRmFjdCBsaXN0LjIgY29sdW1uc1xuICAgICovXG4gICAgJi0tY29sIHtcbiAgICAgICAgQGluY2x1ZGUgY29sLXZpZXc7XG4gICAgfVxuXG4gICAgLypcbiAgICBGYWN0IGxpc3QgKDMgY29sdW1ucylcblxuICAgIEl0IHN0YXlzIGFzIHRoZSBzYW1lIGluIG1vYmlsZSwgdGFibGV0IGFuZCBkZXNrdG9wXG5cbiAgICA8Yj5Nb2RpZmllcnM8L2I+XG4gICAgPHA+Zm9yIHRoZSBjb21wb25lbnQ6IGItZmFjdC1saXN0LS1jb2wgYi1ncmlkLXdyYXBwZXItLWNvbDwvcD5cbiAgICA8cD5mb3IgdGhlIGZhY3QgaXRlbTogMS8zLS10YWJsZXQtdXA8L3A+XG5cbiAgICBNYXJrdXA6IGRlbW8uZmFjdC1saXN0LTMtY29sdW1ucy5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5GYWN0IGxpc3QuMyBjb2x1bW5zXG4gICAgKi9cbiAgICAmLS1jb2wtdGFibGV0LXVwIHtcbiAgICAgICAgQG1lZGlhICgkdGFibGV0LXVwKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb2wtdmlldztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qXG4gICAgRmFjdCBsaXN0ICh3cmFwKVxuXG4gICAgV3JhcCB0aGUgZmFjdCBsaXN0IHdpdGggdGhlIG90aGVyIGNvbnRlbnRcblxuICAgIDxiPk1vZGlmaWVyPC9iPlxuICAgIDxwPkxlZnQ6ICAgIGItZmlndXJlLS1wdWxsLWxlZnQgYi1maWd1cmUtLXdpZHRoLW1kPC9wPlxuICAgIDxwPlJpZ2h0OiAgIGItZmlndXJlLS1wdWxsLXJpZ2h0IGItZmlndXJlLS13aWR0aC1tZDwvcD5cblxuICAgIE1hcmt1cDogZGVtby5mYWN0LWxpc3Qtd3JhcC5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5GYWN0IGxpc3QuV3JhcFxuICAgICovXG5cblxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9iZW0tdXRpbHNcIjtcblxuLypcbkhlcm8gc3RvcnlcblxuTWFya3VwOiBkZW1vLmhlcm8tc3RvcnkuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5IZXJvIHN0b3J5XG4qL1xuLmItaGVyby1zdG9yeSB7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAvKlxuICAgICAgICBIZXJvIHN0b3J5IChUZXh0KVxuXG4gICAgICAgIFRoZSBoZXJvIHN0b3J5IHRleHQgY29udGVudFxuXG4gICAgICAgIE1hcmt1cDogdGV4dC5odG1sXG5cbiAgICAgICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSGVybyBzdG9yeS5UZXh0XG4gICAgICAgICovXG4gICAgICAgICYtLXRleHQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwICRjb250YWluZXIteHMtcGFkZGluZztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICBIZXJvIHN0b3J5IChGaWd1cmUpXG5cbiAgICAgICAgVGhlIGhlcm8gc3RvcnkgZmlndXJlIHBhcnQsIGJlbG93IHRoZSBzbWFsbCBkZXNrdG9wLCB0aGUgaW1hZ2Ugd2lsbCBiZSBzaG93biB3aXRoIDQ6MyByYXRpb1xuXG4gICAgICAgIE1hcmt1cDogZmlndXJlLmh0bWxcblxuICAgICAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5IZXJvIHN0b3J5LkZpZ3VyZVxuICAgICAgICAqL1xuICAgICAgICAmLS1maWd1cmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19yZXN0cmljdGlvbiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuXG4gICAgICAgICYuYi1oZXJvLXN0b3J5LWdhbGxlcnkge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMjIwcHg7IC8vYWRkIDIwcHggZXh0cmEgZm9yIHRoZSBnYWxsZXJ5IGZpZ3VyZSBmb3IgdGhlIGNhcHRpb25cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fZmlndXJlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICBAbWVkaWEgKCRzbWFsbC1kZXNrdG9wLWRvd24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGRpbWVuc2lvbnMtZm9yLXJhdGlvKDEwMCUsIDQsIDMpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvL3NtYWxsIGRlc2t0b3AgdXAgc3RhdGVcbiAgICBAbWVkaWEgKCRzbWFsbC1kZXNrdG9wLXVwKSB7XG5cbiAgICAgICAgZGlzcGxheTogdGFibGU7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICYtLXRleHQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgJGNvbnRhaW5lci1zbS1wYWRkaW5nICRjb250YWluZXItc20tcGFkZGluZyAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzNC40JTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tZmlndXJlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNjUuNiU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8qXG4gICAgSGVybyBzdG9yeSAoZGFyaylcblxuICAgIERhcmsgc3R5bGUgY2xhc3NlcyBcImItaGVyby1zdG9yeS0tZGFyayBiLWJveC0tZGFya1wiXG5cbiAgICBNYXJrdXA6IGRlbW8uaGVyby1zdG9yeS1kYXJrLmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkhlcm8gc3RvcnkuRGFya1xuICAgICovXG4gICAgJi0tZGFyayB7XG5cbiAgICAgICAgLmItaGVyby1zdG9yeV9fY29udGFpbmVyLS10ZXh0IHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRjb250YWluZXItc20tcGFkZGluZztcblxuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICgkc21hbGwtZGVza3RvcC11cCkge1xuXG4gICAgICAgICAgICAuYi1oZXJvLXN0b3J5X19jb250YWluZXItLXRleHQge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5cbi8qXG5IZXJvIHN0b3J5IGdhbGxlcnlcblxuSXQgaGFzIHRoZSBjbGFzcyBcImItanMtaGVyby1zdG9yeS1pbWFnZS1nYWxsZXJ5XCIgaW4gdGhlIGhlcm8gc3RvcnkgY29tcG9uZW50XG5cbk1hcmt1cDogZGVtby5oZXJvLXN0b3J5LWdhbGxlcnkuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5IZXJvIHN0b3J5IGdhbGxlcnlcbiovXG4uYi1oZXJvLXN0b3J5LWdhbGxlcnkge1xuXG4gICAgQG1lZGlhICgkc21hbGwtZGVza3RvcC11cCkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAvKlxuICAgIEhlcm8gc3RvcnkgZ2FsbGVyeSAoY2Fyb3VzZWwpXG5cbiAgICBUaGUgaGVybyBzdG9yeSBnYWxsZXJ5IGNhcm91c2VsXG5cbiAgICBNYXJrdXA6IGdhbGxlcnkuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSGVybyBzdG9yeSBnYWxsZXJ5LkNhcm91c2VsXG4gICAgKi9cbiAgICAmX19jYXJvdXNlbCB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19jYXB0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICB9XG5cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLypcbkltYWdlIGdhbGxlcnlcblxuSXQgZGlzcGxheXMgNCB0aHVtYm5haWxzIGZvciB0YWJsZXQgYW5kIGRlc2t0b3AgdmlldyBwb2ludHMsXG4zIHRodW1ibmFpbHMgZm9yIG1vYmlsZSB2aWV3IHBvaW50LlxuXG5UaGUgZGVtbyBwYWdlIGlzIGFydGljbGUtcGFnZS5odG1sXG5cbk1hcmt1cDogZGVtby5pbWFnZS1nYWxsZXJ5Lmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSW1hZ2UgZ2FsbGVyeVxuKi9cbi5iLWltYWdlLWdhbGxlcnkge1xuICAgIC8vdmFyaWFibGVzXG4gICAgJHBlci12aWV3LTQtc2xpZGVzLXdpZHRoOiAyNSU7XG4gICAgJHBlci12aWV3LTMtc2xpZGVzLXdpZHRoOiAzMyU7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuICAgIC8qXG4gICAgSW1hZ2UgZ2FsbGVyeSAoVG9wIHNsaWRlKVxuXG4gICAgTWFya3VwOiB0b3Atc2xpZGUuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSW1hZ2UgZ2FsbGVyeS5Ub3Agc2xpZGVcbiAgICAqL1xuICAgICZfX3RvcC1maWd1cmUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIH1cblxuICAgICZfX3RvcC1pbWFnZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAkYnJhbmQtbGlnaHQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDAgJGJyYW5kLWRhcms7XG4gICAgfVxuXG5cbiAgICAvKlxuICAgIEltYWdlIGdhbGxlcnkgKFRodW1ibmFpbClcblxuICAgIE1hcmt1cDogY2Fyb3VzZWwtc2xpZGUuaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuSW1hZ2UgZ2FsbGVyeS5UaHVtYm5haWxcbiAgICAqL1xuICAgICZfX3RodW1iLXNsaWRlIHt9XG5cbiAgICAmX19idXR0b24tbmV4dCB7fVxuXG4gICAgJl9fYnV0dG9uLXByZXYge31cblxuXG4gICAgLy8tLS0tLS0tLS0tLSBtb2RpZmllcnMgLS0tLS0tLS0tLS0tLVxuICAgICYtLWhhcy1uYXYtYnV0dG9ucyB7XG5cbiAgICAgICAgLy9idXR0b24gcG9zaXRpb24gY29udHJvbFxuICAgICAgICBAbWl4aW4gc2V0LWJ1dHRvbnMtcG9zaXRpb24oJG9mZnNldCkge1xuXG4gICAgICAgICAgICAuYi1pbWFnZS1nYWxsZXJ5X19idXR0b24tbmV4dCB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRvZmZzZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5iLWltYWdlLWdhbGxlcnlfX2J1dHRvbi1wcmV2IHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkb2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBAaW5jbHVkZSBzZXQtYnV0dG9ucy1wb3NpdGlvbigtNiUpO1xuXG4gICAgICAgIEBtZWRpYSAoJG1vYmlsZS1sYW5kc2NhcGUtdXApIHtcbiAgICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgIH1cblxuICAgICAgICAvL05PVEU6IHRoaXMgYnJlYWsgcG9pbnQgZG9lc24ndCBmb2xsb3cgdGhlIHN0YW5kIGJyZWFrIHBvaW50cyBhcyBmb3Igc29sdmluZyB0aGUgU0ktODIzLlxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogODAwcHgpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgc2V0LWJ1dHRvbnMtcG9zaXRpb24oJGJ1dHRvbi1wb3NpdGlvbi1vZmZzZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9OT1RFOiBpdCBpcyByZWxhdGVkIHRvIHRoZSBpbWFnZS1nYWxsZXJ5LmpzIHZpZXdwb2ludCBjaGFuZ2VzIGZ1bmN0aW9uYWxpdHksXG4gICAgICAgIC8vICAgICAgVXBkYXRlIHRoZSBicmVhayBwb2ludCBzaG91bGQgdXBkYXRlIHRoZSBjb25zdCBpbiB0aGUgaW1hZ2UtZ2FsbGVyeSBmdW5jdGlvbmFsaXR5IGFzIHdlbGwuXG4gICAgICAgIC5iLWltYWdlLWdhbGxlcnlfX3RodW1iLXNsaWRlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkcGVyLXZpZXctMy1zbGlkZXMtd2lkdGg7XG5cbiAgICAgICAgICAgIEBtZWRpYSAoJHRhYmxldC11cCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkcGVyLXZpZXctNC1zbGlkZXMtd2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG5cbi8qXG5OZXdzIGNsaXBcblxuTWFya3VwOiBkZW1vLm5ld3MtY2xpcC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLk5ld3MgY2xpcFxuKi9cblxuLmItbmV3cy1jbGlwIHtcblxuICAgIC8qXG4gICAgTmV3cyBjbGlwIChIZXJvKVxuXG4gICAgVGhlIG5ld3MgY2xpcCBoZXJvIGNvbXBvbmVudCB3aXRoIHRoZSBkZWZhdWx0IGltYWdlXG5cbiAgICBNYXJrdXA6IGRlbW8ubmV3cy1jbGlwLWhlcm8uaHRtbFxuXG4gICAgU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuTmV3cyBjbGlwLkhlcm9cbiAgICAqL1xuICAgICYtLWhlcm8ge1xuXG4gICAgICAgICZfX2ZpZ3VyZS1ob2xkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxM3B4O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKlxuICAgIE5ld3MgY2xpcCAoSGVybyBnYWxsZXJ5KVxuXG4gICAgTWFya3VwOiBkZW1vLm5ld3MtY2xpcC1nYWxsZXJ5Lmh0bWxcblxuICAgIFN0eWxlIGd1aWRlOiBDb21wb25lbnRzLk5ld3MgY2xpcC5IZXJvIGdhbGxlcnlcbiAgICAqL1xuICAgICYtLWdhbGxlcnkge1xuICAgIH1cblxuICAgICZfX3N1bW1hcnkge1xuICAgICAgICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuXG4vKlxuUXVvdGVcblxuU3R5bGVzIHRleHQgYXMgYSBibG9jay1xdW90ZSBhdXRvbWF0aWNhbGx5IHN1cnJvdW5kcyB0aGUgdGV4dCB3aXRoIHF1b3RlIG1hcmtzLlxuXG5NYXJrdXA6IGRlbW8ucHVsbC1xdW90ZS5odG1sXG5cblN0eWxlIGd1aWRlOiBCbG9ja3MuUXVvdGVcbiovXG4uYi1wdWxsLXF1b3RlIHtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAkYm94LXBhZGRpbmcgJGJveC1wYWRkaW5nICogMjtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcblxuICAgIC8vLS0tLS1lbGVtZW50cy0tLS0tXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxhcmdlO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0kYm94LXBhZGRpbmcgLyAyO1xuICAgICAgICAgICAgbGVmdDogLSRib3gtcGFkZGluZztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyMDFDXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZS1xdW90ZSB7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgbGVmdDogNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlxcMjAxRFwiO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtLWxhcmdlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbn1cblxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG5cbi8qXG5UZXh0IGltYWdlXG5cbk1hcmt1cDogZGVtby50ZXh0LWltYWdlLmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuVGV4dCBpbWFnZVxuKi9cblxuLyoqXG5UZXh0IGltYWdlICggQ2FwdGlvbiApXG5cbkRlZmF1bHQgdGhlIHRleHQgaW1hZ2UgZmlndXJlIGhhcyAzMHB4IG1hcmdpbiBib3R0b20uXG5JZiB0aGUgdGV4dCBpbWFnZSBmaWd1cmUgaGFzIGNhcHRpb24sXG53aXRoIHRoZSBjbGFzcyBcImItdGV4dC1pbWFnZV9fZmlndXJlLS13aXRoLWNhcHRpb25cIixcbnRoZSBtYXJnaW4gYm90dG9tIHdpbGwgZHJvcCA1MCUgdG8gMTVweFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5UZXh0LWltYWdlLmNhcHRpb25cbiovXG5cbi8qKlxuVGV4dCBpbWFnZSAoV3JhcClcblxuLmItdGV4dC1pbWFnZV9fZmlndXJlLWNvbnRhaW5lci0tbm8td3JhcCAtIG5vIHdyYXBwaW5nIHRleHQgYXJvdW5kIHRoZSBpbWFnZVxuXG5NYXJrdXA6IGRlbW8udGV4dC1pbWFnZS0td3JhcC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRleHQtaW1hZ2Uud3JhcFxuKi9cblxuLyoqXG5UZXh0IGltYWdlIChTaXplKVxuXG5zbWFsbCwgbWVkaXVtLCBsYXJnZSBhbmQgZnVsbC13aWR0aFxuXG4uYi10ZXh0LWltYWdlX19maWd1cmUtLXNtYWxsIC0gMzAlIHNtYWxsIGltYWdlXG4uYi10ZXh0LWltYWdlX19maWd1cmUtLW1lZGl1bSAtIDUyJSBtZWRpdW0gaW1hZ2Vcbi5iLXRleHQtaW1hZ2VfX2ZpZ3VyZS0tbGFyZ2UgLSA3MCUgbGFyZ2UgaW1hZ2Vcbi5iLXRleHQtaW1hZ2VfX2ZpZ3VyZS0tZnVsbC13aWR0aCAtIDEwMCUgd2lkdGggaW1hZ2VcblxuTWFya3VwOiBkZW1vLnRleHQtaW1hZ2UtLXNpemUuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5UZXh0LWltYWdlLnNpemVcbiovXG5cbi8qKlxuVGV4dCBpbWFnZSAoUG9zaXRpb24pXG5cbmxlZnQsIHJpZ2h0IGFuZCBjZW50cmVcblxuLmItZmlndXJlLS1wdWxsLWxlZnQgLSBpbWFnZSBmbG9hdHMgb24gbGVmdCBzaWRlXG4uYi1maWd1cmUtLXB1bGwtcmlnaHQgLSBpbWFnZSBmbG9hdHMgb24gcmlnaHQgc2lkZVxuLmItZmlndXJlLS1jZW50cmUgLSBpbWFnZSBpbiB0aGUgY2VudHJlXG5cbk1hcmt1cDogZGVtby50ZXh0LWltYWdlLS1wb3NpdGlvbi5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRleHQtaW1hZ2UucG9zaXRpb25cbiovXG5cbi5iLXRleHQtaW1hZ2Uge1xuXG4gICAgJl9fZmlndXJlLWNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtLW5vLXdyYXAge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb21wb25lbnQtZ2FwO1xuXG4gICAgICAgICYtLXdpdGgtY2FwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcG9uZW50LWdhcCAvIDI7XG4gICAgICAgIH1cblxuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIEBtZWRpYSAoJG1vYmlsZS1sYW5kc2NhcGUtdXApIHsgIHdpZHRoOiAkd2lkdGgtc21hbGw7ICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tZWRpdW0ge1xuICAgICAgICAgICAgQG1lZGlhICgkbW9iaWxlLWxhbmRzY2FwZS11cCkgeyAgd2lkdGg6ICR3aWR0aC1tZWRpdW07ICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sYXJnZSB7XG4gICAgICAgICAgICBAbWVkaWEgKCRtb2JpbGUtbGFuZHNjYXBlLXVwKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICR3aWR0aC1sYXJnZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICAgICAgQG1lZGlhICgkbW9iaWxlLWxhbmRzY2FwZS11cCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQG1lZGlhICgkbGFyZ2UtZGVza3RvcC11cCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvL2VtcHR5IGNsYXNzIGZvciB3cmFwcGluZyB0aGUgdGV4dFxuICAgICZfX3RleHQtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTAuOGVtOyAvL0hBQ0s6IGZpeCB0aGUgcCB0YWcgbWFyZ2luIHRvcCAwLjhlbVxuICAgIH1cblxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG4vKlxuVGltZWxpbmVcblxuVGltZWxpbmUgc2VnbWVudHMgYXJlIGluIG9uZSBjb2x1bW4gYnkgZGVmYXVsdCwgYnV0IHBsYWNlIGluIHR3byBjb2x1bW5zXG53aGVuIHRoZSBicm93c2VyIHNpemUgaXMgbm8gc21hbGxlciB0aGFuIHRhYmxldCBzY3JlZW4gc2l6ZSAoNzY4cHgpXG5cbk1hcmt1cDogZGVtby50aW1lbGluZS5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLlRpbWVsaW5lXG4qL1xuXG4uYi10aW1lbGluZSB7XG5cbiAgICAvLy0tLS0tLS0tLSB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tXG4gICAgJHNlZ21lbnQtdG9wLW9mZnNldDogMjUlO1xuICAgICRzZWdtZW50LXNpZGUtb2Zmc2V0OiAkY29udGFpbmVyLXNtLXBhZGRpbmc7XG4gICAgJGJ1bGxldC1vZmZzZXQteTogLTVweDtcbiAgICAkYnVsbGV0LW9mZnNldC14OiAkYnVsbGV0LW9mZnNldC15IC0gJHNlZ21lbnQtc2lkZS1vZmZzZXQ7XG4gICAgJGJ1bGxldC1zaXplOiA4cHg7XG5cbiAgICAmX19kYXRlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2J1bGxldCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAkYnVsbGV0LW9mZnNldC15O1xuICAgICAgICBsZWZ0OiAkYnVsbGV0LW9mZnNldC14O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJhbmQtbGlnaHQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkY29udGFpbmVyLXhzLXBhZGRpbmc7XG4gICAgICAgIHdpZHRoOiAkYnVsbGV0LXNpemU7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAkYnVsbGV0LXNpemU7XG4gICAgfVxuXG4gICAgLypcbiAgICBUaW1lbGluZSBzZWdtZW50XG5cbiAgICBNYXJrdXA6IGRlbW8uc2VnbWVudC5odG1sXG5cbiAgICBTdHlsZSBndWlkZTogQ29tcG9uZW50cy5UaW1lbGluZS5TZWdtZW50XG4gICAgKi9cbiAgICAmX19zZWdtZW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItbGVmdDogJHN0cm9rZS1saWdodC1kYXJrO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGNvbXBvbmVudC1nYXA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJHNlZ21lbnQtc2lkZS1vZmZzZXQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQG1lZGlhICgkdGFibGV0LXVwKSB7XG5cbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHN0cm9rZS1saWdodC1kYXJrO1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzZWdtZW50LXRvcC1vZmZzZXQgJGNvbnRhaW5lci1zbS1wYWRkaW5nICgkY29tcG9uZW50LWdhcCAvIDIpIDA7XG5cbiAgICAgICAgICAgICAgICAuYi10aW1lbGluZV9fYnVsbGV0IHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRidWxsZXQtb2Zmc2V0LXg7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRzZWdtZW50LXRvcC1vZmZzZXQgMCAoJGNvbXBvbmVudC1nYXAgLyAyKSAkY29udGFpbmVyLXNtLXBhZGRpbmc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wIDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fZmlndXJlIHtcblxuICAgICAgICBAbWVkaWEgKCRtb2JpbGUtbGFuZHNjYXBlLXVwKSB7XG4gICAgICAgICAgICB3aWR0aDogJHdpZHRoLW1lZGl1bTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAoJHRhYmxldC11cCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcblxuLypcblRvcCBiYXJcblxuVG9wIGJhciBjb21wb25lbnRcblxuTWFya3VwOiBkZW1vLnRvcC1iYXIuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5Ub3AgYmFyXG4qL1xuXG4uYi10b3AtYmFyIHtcblxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5cbi8qXG5VbmkgU25hcHNob3RcblxuRGlzcGxheXMgc25hcHNob3Qgb2YgVW5pdmVyc2l0eSBtZXRyaWNzXG5cbk1hcmt1cDogZGVtby51bmktc25hcHNob3QuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5VbmkgU25hcHNob3RcblxuICovXG5cbi5iLXVuaS1zbmFwc2hvdCB7XG4gICAgQG1lZGlhICgkdGFibGV0LXVwKSB7IG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbiAgICAmX190aWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLXRvcDogNzAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6ICRicmFuZC1saWdodDtcblxuICAgICAgICBAbWVkaWEgKCRtb2JpbGUtbGFuZHNjYXBlLXVwKSB7IHBhZGRpbmctdG9wOiA4MCU7IH1cbiAgICAgICAgQG1lZGlhICgkc21hbGwtZGVza3RvcC11cCkgeyBwYWRkaW5nLXRvcDogMTAwJTsgfVxuXG4gICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLWZpZ3VyZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtbGFyZ2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1jb21wYXJlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDVweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcblxuICAgICAgICAgICAgQG1lZGlhICgkc21hbGwtZGVza3RvcC11cCkgeyB3aWR0aDogNTUlOyB9XG4gICAgICAgICAgICBAbWVkaWEgKCRsYXJnZS1kZXNrdG9wLXVwKSB7IHdpZHRoOiA2MCU7IH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1saWdodDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi11cGRhdGVkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuXG4gICAgICAgICYtLXVwLFxuICAgICAgICAmLS1kb3duIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdXAgeyBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkICRicmFuZC1saWdodDsgfVxuXG4gICAgICAgICYtLWRvd24geyBib3JkZXItdG9wOiAxMHB4IHNvbGlkICRicmFuZC1saWdodDsgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5cbi8qXG5Ob3RpZmljYXRpb24gYmFyXG5cbkRpc3BsYXlzIGxhdGVzdCBub3RpZmljYXRpb24gYW5kIGxpbmsgdG8gdG8gbm90aWZpY2F0aW9ucyBwYWdlXG5cbk1hcmt1cDogZGVtby5ub3RpZmljYXRpb24tYmFyLmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuTm90aWZpY2F0aW9uIGJhclxuXG4qL1xuLmItbm90aWZpY2F0aW9uLWJhciB7XG4gICAgcGFkZGluZy10b3A6IDI4cHg7XG5cbiAgICBAbWVkaWEgKCR0YWJsZXQtdXApIHsgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cbiAgICBAbWVkaWEgKCRzbWFsbC1kZXNrdG9wLXVwKSB7IG1hcmdpbi1sZWZ0OiAyMHB4OyB9XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkYnJhbmQtcmVkO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiByZ2JhKCNmYzAsIC4zKTtcblxuICAgICAgICAmLmItdGV4dC0tc2l6ZS1sYXJnZSB7XG4gICAgICAgICAgICBAbWVkaWEgKCR0YWJsZXQtZG93bikge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9wbGFjZWhvbGRlcnNcIjtcblxuLypcbkNvbnRlbnQgR3JvdXBcblxuTGF5b3V0IGNvbXBvbmVudCB3aXRoIHZhcmlvdXMgb3B0aW9ucy4gSGFzIHBhcnN5cyB0byBkcm9wIGNvbXBvbmVudHMgd2l0aGluLlxuXG5NYXJrdXA6IGRlbW8uY29udGVudC1ncm91cC5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkNvbnRlbnQgZ3JvdXBcbiovXG5cbi5iLWNvbnRlbnQtZ3JvdXAge1xuXG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9wbGFjZWhvbGRlcnNcIjtcblxuXG4vKlxuUmljaCB0ZXh0IGVkaXRvclxuXG5SaWNoIHRleHQgZWRpdG9yIHdyYXBwZXJcblxuTWFya3VwOiBkZW1vLnJpY2gtdGV4dC1lZGl0b3IuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5SaWNoIHRleHQgZWRpdG9yXG4gKi9cblxuLy8gTk9URTogcmV0IGlzIHNob3J0IGZvdCAgcmljaC10ZXh0LWVkaXRvclxuLmItcnRlIHtcbiAgICAvLyBOT1RFOiA8cD4gdGFncyBnZW5lcmF0ZWQgYnkgUlRFXG4gICAgcCB7XG4gICAgICAgIC5iLW5ld3MtY2xpcF9fc3VtbWFyeSAmIHtcbiAgICAgICAgICAgIC5iLWluc2lnaHRzLXBvcnRhbC1wYWdlICYge1xuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7IG1hcmdpbjogMDsgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmItaW5zaWdodHMtcG9ydGFsLXBhZ2UgJiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4O1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDMwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblx0fVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcblxuLypcbkluc2lnaHRzIHRvb2xzXG5cbkluc2lnaHRzIHRvb2xzIGNvbXBvbmVudFxuXG5NYXJrdXA6IGRlbW8uaW5zaWdodHMtdG9vbHMuaHRtbFxuXG5TdHlsZSBndWlkZTogQ29tcG9uZW50cy5JbnNpZ2h0cyB0b29sc1xuKi9cblxuLmItaW5zaWdodHMtdG9vbHMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmX190aWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBtZWRpYSAoJG1vYmlsZS1sYW5kc2NhcGUtdXApIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoODAlIC0gMTBweCAtIDRweCk7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKCR0YWJsZXQtdXApIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoMTAwJSAtIDE1cHggLSA0cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhICgkc21hbGwtZGVza3RvcC11cCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogY2FsYygxMDAlIC0gMjBweCAtIDRweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDAgMDtcbiAgICAgICAgbWluLWhlaWdodDogNDJweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuXG4gICAgICAgIEBtZWRpYSAoJG1vYmlsZS1sYW5kc2NhcGUtdXApIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgfVxuXG4gICAgLnVzeWQtbGFyZ2UgJiB7XG4gICAgICAgIEBtZWRpYSAoJHNtYWxsLWRlc2t0b3AtdXApIHsgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgICAgICBAbWVkaWEgKCRsYXJnZS1kZXNrdG9wLXVwKSB7IHdpZHRoOiAyNSU7IH1cbiAgICB9XG5cbiAgICAudXN5ZC14bGFyZ2UgJiB7XG4gICAgICAgIEBtZWRpYSAoJHRhYmxldC11cCkgeyB3aWR0aDogMzMuMzMzMzMlOyB9XG4gICAgICAgIEBtZWRpYSAoJHNtYWxsLWRlc2t0b3AtdXApIHsgd2lkdGg6IDI1JTsgfVxuICAgICAgICBAbWVkaWEgKCRsYXJnZS1kZXNrdG9wLXVwKSB7IHdpZHRoOiAyMCU7IH1cblxuICAgICAgICAuYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZSAuYi16b25lLS0yICYge1xuICAgICAgICAgICAgQG1lZGlhICgkdGFibGV0LXVwKSB7IHdpZHRoOiA1MCU7IH1cbiAgICAgICAgICAgIEBtZWRpYSAoJHNtYWxsLWRlc2t0b3AtdXApIHsgd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAgICAgICAgICAgQG1lZGlhICgkbGFyZ2UtZGVza3RvcC11cCkgeyB3aWR0aDogMjUlOyB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG4vKlxuTmV3IGRhdGEgc2V0c1xuXG5NYXJrdXA6IGRlbW8ubmV3LWRhdGEtc2V0cy5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLk5ldyBkYXRhIHNldHNcbiovXG5cbi5iLW5ldy1kYXRhLXNldHMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAbWVkaWEgKCRtb2JpbGUtbGFuZHNjYXBlLXVwKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSAyMHB4KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgKCRzbWFsbC1kZXNrdG9wLXVwKSB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDI1JSAtIDIwcHgpO1xuICAgIH1cblxuICAgICZfX2NvbXBsZXRpb24tcmF0ZXMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDFweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLypcbllhbW1lciBlbWJlZFxuXG5ZYW1tZXIgZW1iZWQgd2lkZ2V0IGNvbXBvbmVudFxuXG5NYXJrdXA6IGRlbW8ueWFtbWVyLWVtYmVkLmh0bWxcblxuU3R5bGUgZ3VpZGU6IENvbXBvbmVudHMuWWFtbWVyIGVtYmVkXG4qL1xuLmIteWFtbWVyIHtcbiAgICBAbWVkaWEgKCR0YWJsZXQtdXApIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2VtYmVkLWFyZWEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRicmFuZC1jb2xvdXItbGlnaHQtZ3JleTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gICAgICAgIGhlaWdodDogMDtcblxuICAgICAgICAvL3Nhc3MtbGludDpkaXNhYmxlIGNsYXNzLW5hbWUtZm9ybWF0XG4gICAgICAgIGlmcmFtZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLy9zYXNzLWxpbnQ6ZW5hYmxlIGNsYXNzLW5hbWUtZm9ybWF0XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5cbi8qXG5JbnNpZ2h0cyBEYXNoYm9hcmRcblxuRGlzcGxheXMgYXZhaWxhYmxlIGRhc2hib2FyZHMgdG8gdGhlIHVzZXJcblxuTWFya3VwOiBkZW1vLmluc2lnaHRzLWRhc2hib2FyZi5odG1sXG5cblN0eWxlIGd1aWRlOiBDb21wb25lbnRzLkluc2lnaHRzIGRhc2hib2FyZFxuXG4gKi9cblxuLmItaW5zaWdodHMtZGFzaGJvYXJkIHtcbiAgICBAbWVkaWEgKCR0YWJsZXQtdXApIHsgbWFyZ2luLWxlZnQ6IDIwcHg7IH1cblxuICAgICZfX2NvbXBvbmVudCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fcm93IHtcbiAgICAgICAgQG1lZGlhICgkdGFibGV0LXVwKSB7IG1hcmdpbi1sZWZ0OiAtMjBweDsgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb2wge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBtZWRpYSAoJHRhYmxldC11cCkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBtZWRpYSAoJG1vYmlsZS1sYW5kc2NhcGUtdXApIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyMHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aWxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQG1lZGlhICgkbW9iaWxlLWxhbmRzY2FwZS11cCkge1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm94IHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDcycHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgJi1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgJi10ZXh0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICBAbWVkaWEgKCR0YWJsZXQtdXApIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LXJlZ3VsYXI7XG5cbiAgICAgICAgICAgIEBtZWRpYSAoJHRhYmxldC11cCkge1xuICAgICAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuXG4vKlxuQ29tcG9uZW50IGJsb2NrXG5cbkFwcGxpZXMgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIGNvbXBvbmVudHMsIGRlZmF1bHQgaGFzIG1hcmdpbiBib3R0b20gc3BhY2UgZm9yIHRoZSBnYXAuXG5cbi5iLWNvbXBvbmVudC0tcmljaC1jb250ZW50ICAgICAgLSBSaWNoIGNvbnRlbnQgY29tcG9uZW50IGhhcyBzbWFsbGVyIG1hcmdpbiBib3R0b20gc3BhY2UgYXMgdGhlIGNvbnRlbnQgbGluZSBoZWlnaHQgdGFrZXMgNXB4IGF0IHRoZSBib3R0b21cbi5iLWNvbXBvbmVudC0tbWFyZ2luLXRvcC1maXggICAgLSBBZGQgY29tcG9uZW50IG1hcmdpbiB0b3Agc3BhY2Vcbi5iLWNvbXBvbmVudC0tbWFyZ2luLW5vLXRvcCAgICAgLSBSZW1vdmUgbWFyZ2luIHRvcCBzcGFjZVxuLmItY29tcG9uZW50LS1sb29zZSAgICAgICAgICAgICAtIEluY3JlYXNlZCBzcGFjaW5nXG4uYi1jb21wb25lbnQtLXRpZ2h0ICAgICAgICAgICAgIC0gNTAlIG9mIHRoZSBtb2R1bGUgc3BhY2luZyAoMTVweCkgbm9ybWFsbHkgaXMgZm9yIHN1YiBjb21wb25lbnRzIGdhcFxuLmItY29tcG9uZW50LS1taWQtdGlnaHRlciAgICAgICAtIDIwcHggbW9kdWxlIHNwYWNpbmdcbi5iLWNvbXBvbmVudC0tdGlnaHRlciAgICAgICAgICAgLSBPbmUgdGhpcmQgb2YgdGhlIG1vZHVsZSBzcGFjaW5nICgxMHB4KVxuLmItY29tcG9uZW50LS10aWdodGVzdCAgICAgICAgICAtIE5vIHNwYWNpbmdcbi5iLWNvbXBvbmVudC0tdGlueSAgICAgICAgICAgICAgLSA1cHggbWFyZ2luIGJvdHRvbSBzcGFjZVxuLmItY29tcG9uZW50LS1kb3VibGUgICAgICAgICAgICAtIERvdWJsZSBtb2R1bGUgc3BhY2luZyAoNjBweClcbi5iLWNvbXBvbmVudC0tcGFnZS10aXRsZS10b3AgICAgLSBNYXJnaW4gdG9wIHNwYWNlIGZvciBjb21wb25lbnQgdW5kZXIgdGhlIHBhZ2UgdGl0bGVcbi5iLWNvbXBvbmVudC0taGlkZGVuICAgICAgICAgICAgLSBIaWRlIHRoZSBjb21wb25lbnRcbi5iLWNvbXBvbmVudC0tcm0tZmxvYXQgICAgICAgICAgLSBSZW1vdmUgZmxvYXRcbi5iLWNvbXBvbmVudC0tcGFnZS1zcGVjaWZ5ICAgICAgLSBFbXB0eSBjbGFzcyBmb3IgcGFnZSBzcGVjaWZ5IHZhbHVlXG5cbk1hcmt1cDpcbjxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOmxpZ2h0cGluaztcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYi1jb21wb25lbnQge3ttb2RpZmllcl9jbGFzc319IGItYm94IGItYm94LS1ncmV5XCIgc3R5bGU9XCJoZWlnaHQ6MTAwcHg7XCI+TXkgY29tcG9uZW50PC9kaXY+XG4gICAgPHA+TmV4dCBjb21wb25lbnQ8L3A+XG48L2Rpdj5cblxuU3R5bGUgZ3VpZGU6IExheW91dC5Db21wb25lbnRcbiovXG4uYi1jb21wb25lbnQge1xuXG4gICAgbWFyZ2luLWJvdHRvbTogJGNvbXBvbmVudC1nYXA7XG5cbiAgICAmLS1tb2JpbGUge1xuICAgICAgICBAbWVkaWEgKCR0YWJsZXQtZG93bikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBvbmVudC1nYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1yaWNoLWNvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcG9uZW50LWdhcC1zbWFsbDtcbiAgICB9XG5cbiAgICAmLS1tYXJnaW4tdG9wLWZpeCB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRjb21wb25lbnQtZ2FwO1xuICAgIH1cblxuICAgICYtLW1hcmdpbi1uby10b3Age1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICYtLWxvb3NlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGNvbXBvbmVudC1nYXAgKiAxLjU7XG4gICAgfVxuXG4gICAgJi0tdGlnaHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcG9uZW50LWdhcCAvIDI7XG4gICAgfVxuXG4gICAgJi0tbWlkLXRpZ2h0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkY29tcG9uZW50LWdhcC1zbWFsbGVyO1xuICAgIH1cblxuICAgICYtLXRpZ2h0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgICYtLXRpZ2h0ZXN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLS10aW55IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cblxuICAgICYtLWRvdWJsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRjb21wb25lbnQtZ2FwICogMjtcbiAgICB9XG5cbiAgICAmLS1wYWdlLXRpdGxlLWdhcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgfVxuXG4gICAgJi0taGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAmLS1ybS1mbG9hdCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgIH1cblxuICAgICYtLXBvc2l0aW9uLW92ZXJyaWRlIHtcblxuICAgICAgICAvL0hBQ0s6IEl0IGlzIHVzaW5nIGZvciB0aGUgTmV3cyBjbGlwIGNvbXBvbmVudCB0byByZW1vdmUgZmxvYXQgZm9yIGl0IG9uIHRoZSBzZWN0aW9uIHBhZ2VcbiAgICAgICAgLmItcGFnZS0tc2VjdGlvbiAmIHtcbiAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcblxuLypcbkdyaWRcblxuSXQgdXNlcyB3aXRoIGdyaWQgaHR0cDovL2NvbG91cmdhcmRlbi5uZXQvYXZhbGFuY2hlLyB0byBmaXggdGhlIGNvbnRhaW5lciBhbGlnbm1lbnQgaXNzdWVzXG5jYXVzZWQgYnkgdGhlIHN5c3RlbSBkZWZhdWx0IGdyaWQgbGF5b3V0XG5cbi5iLWdyaWQtLWNvbFxuLmItZ3JpZC0tY29sLXRhYmxldC11cFxuLmItZ3JpZC0tY29sLW1vYmlsZS11cFxuXG5TdHlsZSBndWlkZTogTGF5b3V0LkdyaWRcbiovXG5cbi5iLWdyaWQtd3JhcHBlciB7XG5cbiAgICAmLS1jb2wge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kYm94LXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJi0tY29sLXRhYmxldC11cCB7XG5cbiAgICAgICAgQG1lZGlhICgkdGFibGV0LXVwKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kYm94LXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jb2wtbW9iaWxlLXVwIHtcblxuICAgICAgICBAbWVkaWEgKCRtb2JpbGUtbGFuZHNjYXBlLXVwKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kYm94LXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9jb2xvcnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzXCI7XG5cbi8qKlxuUGFnZVxuXG5HZW5lcmFsIHBhZ2UgbGF5b3V0XG5cbi5iLXBhZ2UtLXNlY3Rpb24gLSBzZWN0aW9uIHBhZ2VcblxuU3R5bGUgZ3VpZGU6IExheW91dC5Qb3NpdGlvblxuKi9cbi5iLXBhZ2Uge1xuXG4gICAgJl9fY29sIHtcblxuICAgICAgICAmLS1zaWRlIHtcblxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWFpbiB7XG5cbiAgICAgICAgICAgIC8vRklYTUU6IGl0IGlzIGhhY2sgdG8gbWFrZSB0aGUgZmlyc3QgaDEgaGFzIHRoZSBjb3JyZWN0IG1hcmdpbiBzcGFjZSxcbiAgICAgICAgICAgIC8vIGFzIGluIHRoZSBwYWdlIHRlbXBsYXRlLCB0aGUgd2hvbGUgcHJzeXMtbWFpbiBpcyBhIGNvbXBvbmVudCwgY2hhbmdpbmcgdGhlXG4gICAgICAgICAgICAvLyB0aGUgd2hvbGUgcHJzeXMtbWFpbiBoYXMgbW9yZSB3b3JrIHRoYW4gYWRkaW5nIGEgc3R5bGUgZm9yIHRoZSBmaXJzdCBoMSBpbiBtYWluXG4gICAgICAgICAgICAvLyBib2R5XG4gICAgICAgICAgICAvLyBpdCBpcyB0aGUgc2FtZSBhcyBcImItdGl0bGUgYi10aXRsZS0taDEgYi10aXRsZS0tZmlyc3RcIlxuICAgICAgICAgICAgaDE6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJHRpdGxlLWxpbmUtaGVpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgICYtLXNlY3Rpb24ge1xuXG4gICAgICAgIC8vSEFDSzogSXQgaXMgdXNpbmcgZm9yIHRoZSBOZXdzIGNsaXAgY29tcG9uZW50IHRvIHJlbW92ZSBmbG9hdCBmb3IgaXQgb24gdGhlIHNlY3Rpb24gcGFnZVxuICAgICAgICAuYi1jb21wb25lbnQtLXBhZ2Utc3BlY2lmeSB7XG4gICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcblxuLyoqXG4qXG4qIFN0eWxlIGd1aWRlOiBMYXlvdXQuU2VjdGlvblxuKi9cbi5iLXNlY3Rpb24ge1xuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBAbWVkaWEgKCR0YWJsZXQtZG93bikge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJveC1wYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkYm94LXBhZGRpbmc7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2JlbS11dGlsc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy9taXhpbnNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvY29sb3JzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlc1wiO1xuXG4vKipcbkluc2lnaHRzIFBvcnRhbCBwYWdlIHRlbXBsYXRlXG5cblNwZWNpZmljZSBzdHlsZXMgZm9yIHRoZSBJbnNpZ2h0cyBwb3J0YWwgcGFnZVxuXG5TdHlsZSBndWlkZTogTGF5b3V0LlBhZ2UgdGVtcGxhdGVzLkluc2lnaHRzIHBvcnRhbFxuKi9cblxuLmItaW5zaWdodHMtcG9ydGFsLXBhZ2Uge1xuICAgIC8vIE5PVEU6IEFFTSBwYXJzeXMgc3R5bGVzXG4gICAgLy8gRklYTUU6IGNoYW5nZSBiLXpvbmUtLSogdG8gYi1pbnNpZ2h0cy1wb3J0YWwtcGFnZV9fem9uZS0tKlxuICAgIC5iLXpvbmUtLTEgLm5ldy5zZWN0aW9uLFxuICAgIC5iLXpvbmUtLTIgLm5ldy5zZWN0aW9uXG4gICAgLmItem9uZS0tNCAubmV3LnNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vc3R5bGVzL21peGluc1wiO1xuQGltcG9ydCBcIi4uLy4uL3N0eWxlcy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi8uLi9zdHlsZXMvYmVtLXV0aWxzXCI7XG5AaW1wb3J0IFwiLi4vLi4vc3R5bGVzL2NvbG9yc1wiO1xuLypcbkZsb2F0IGNvbnRyb2xcblxuRklYTUU6IHRoaXMgY2xhc3MgaXMgdGhlIGhhY2sgb2YgcmVtb3ZpbmcgZmxvYXRpbmcgbGVmdCwgcmVtb3ZlIHRoaXMgY2xhc3Mgb25jZSB3ZSBoYXZlIGEgY2hhbmNlIHRvIHJlZmFjdG9yIHRoZSBsYXlvdXQgb2YgdGhlIEludHJhbmV0XG5cblN0eWxlIGd1aWRlOiBMYXlvdXQuRmxvYXQgaGFja1xuKi9cblxuXG4uYi1mbG9hdC1oYWNrIHtcblxuICAgICYtLW5vLWZsb2F0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbn1cbiJdfQ== */

