/* MODULES
------------------------------------------ */
/* COLOURS - http://chir.ag/projects/name-that-color/
------------------------------------------ */
/* Theme colors */
/* WEIGHTS
------------------------------------------ */
/* BASE FONTS
------------------------------------------ */
/* HEADER FONTS
------------------------------------------ */
/* PX TO REM
------------------------------------------ */
/* BREAKPOINT
------------------------------------------ */
/* SVG BG IMG FALLBACK
------------------------------------------ */
/* PX TO REM
------------------------------------------ */
/* BASE PARTIALS
------------------------------------------ */
/* functionality */
/*input[type="radio"].radioForm {
    display: none;
}

input[type="radio"].radioForm + label,
input[type="radio"].radioForm + label > .flag {
    cursor: pointer;
    padding: 0;
    display: inline-block;
}
input[type="radio"].radioForm + label {
    display: block;
    font-size: 1.5em;
    float: right;
    position: relative;
    padding: 1em;
    text-align: center;
    margin: 1em 0;
    width: 70%;
}
input[type="radio"].radioForm + label > .flag {
    bottom: -15px;
    left: -30%;
    position: absolute;
    right: 0;
    top: 5px;
    width:68px;
}*/
/* checked state indicator images */
/*input[type="radio"].radioForm + label > .flag {
  border-radius: 50%;
  border: 1px double #b6b6b6;
  content: '';
  height: 70px;
  transform:scale(1) rotate(0deg);
  width: 70px;
  z-index:2;
}

input[type="radio"].radioForm + label:hover {
   .flag {
    background-color: $col-tangerine;
    border: 1em double $col-white;
    transition: all 0.5s ease;
   }
}

input[type="radio"].radioForm:checked + label > .flag,
input[type="radio"].radioForm + label:active > .flag {
  box-shadow: none;
  border: 1em double $col-white;
  background-color: $col-apple;
  height: 80px;
  left: -32%;
  transition: all 0.5s ease;
  top: 0px;
  width: 80px;
}

input[type="radio"].radioForm + label > .flag,
input[type="radio"].radioForm:checked + label:active > .flag {
  background-color: $col-white;
}*/
/* animation */
/*input[type="radio"].radioForm + label > .flag {
  transition: all 0.5s cubic-bezier(1.000, -0.360, 0.000, 1.385);
  transition-timing-function: cubic-bezier(1.000, -0.360, 0.000, 1.385);
}*/
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0; }

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

fieldset, img {
  border: 0; }

address, caption, cite, code, dfn, th, var {
  font-style: normal;
  font-weight: normal; }

ol, ul {
  list-style: none; }

caption, th {
  text-align: left; }

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal; }

q:before, q:after {
  content: ''; }

abbr, acronym {
  border: 0; }

article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display: block;
  zoom: 1; }

audio, canvas, video {
  display: inline-block;
  *display: inline;
  *zoom: 1; }

*, *:before, *:after {
  box-sizing: border-box; }

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%; }

body {
  color: #4D4F53;
  font-family: "MiloPro", Arial, Helvetica, sans-serif;
  font-size: 1em;
  line-height: 1.4;
  margin: 0;
  position: relative; }

.container {
  margin: 0 auto;
  width: 90%;
  max-width: 73.125em;
  position: relative; }

.container--narrow {
  max-width: 60em; }

.row {
  overflow: hidden; }

/* BASE ELEMENTS
------------------------------------------ */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "MiloPro", Arial, Helvetica, sans-serif;
  margin: 0 0 1.5rem 0;
  line-height: 100%; }

h1, .h1 {
  font-size: 2em; }

h2, .h2 {
  font-size: 32px;
  font-size: 2rem; }

h2.large, .h2.large {
  font-size: 36px;
  font-size: 2.25rem;
  letter-spacing: -1px; }

@media only screen and (min-width: 50em) {
  h2.large, .h2.large {
    font-size: 52px;
    font-size: 3.25rem; } }

h3, .h3 {
  font-size: 1.5em; }

h4, .h4 {
  font-size: 1.4em; }

h5, .h5 {
  font-size: 1.3em; }

h6, .h6 {
  font-size: 1.2em; }

small {
  font-size: 0.85em; }

ul li {
  list-style: none; }

.center {
  text-align: center; }

ol li {
  list-style: none; }

strong, b {
  font-weight: bold; }

em, i {
  font-style: italic; }

p {
  margin-bottom: 1.5rem; }

p.large {
  font-size: 20px;
  font-size: 1.25rem;
  letter-spacing: -1px; }

@media only screen and (min-width: 50em) {
  p.large {
    font-size: 27px;
    font-size: 1.6875rem; } }

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

/* LINKS
------------------------------------------ */
a {
  color: #95989A;
  cursor: pointer;
  outline: 0;
  /* Improve readability when focused and hovered in all browsers: h5bp.com/h */ }

a:hover {
  color: #4D4F53; }

a:focus, a:active {
  outline: none; }

/* BUILD ELEMENTS
------------------------------------------ */
.hide {
  display: none; }

.center-align {
  text-align: center; }

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.cf:after {
  clear: both; }

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
  *zoom: 1; }

.btn {
  font-size: 20px;
  font-size: 1.25rem;
  border: 1px solid #FFFFFF;
  clear: both;
  color: #FFFFFF;
  cursor: pointer;
  display: inline-block;
  padding: 0.5rem 3rem;
  text-decoration: none;
  text-align: center; }

.btn:hover {
  background-color: #ededed;
  color: #4D4F53; }

.btn:active {
  background-color: #FFFFFF;
  color: #4D4F53; }

.btn--wide {
  width: 80%; }

input,
textarea,
select {
  margin: 0;
  outline: none;
  padding: 1em;
  width: 100%;
  font-family: "MiloPro", Arial, Helvetica, sans-serif;
  color: #4D4F53;
  font-size: 17px;
  font-size: 1.0625rem; }

select {
  height: 42px;
  line-height: 42px;
  border-radius: 0px !important;
  background-color: #ffffff; }

.pardot-form label, .pardot-form .form-field label, .form label, .form .form-field label {
  color: #FFFFFF;
  font-size: 17px;
  font-size: 1.0625rem;
  line-height: inherit !important; }

.pardot-form input[type="text"],
.pardot-form select, .form input[type="text"],
.form select {
  border: 1px solid #FFF !important;
  padding: 0.7rem !important; }

.pardot-form textarea, .form textarea {
  height: 120px; }

.pardot-form .pd-hidden, .form .pd-hidden {
  margin: 0; }

.pardot-form .submit, .form .submit {
  margin-bottom: 0; }

.pardot-form .pd-radio .value, .pardot-form .pd-checkbox .value, .form .pd-radio .value, .form .pd-checkbox .value {
  display: block;
  padding-top: 3px; }

.pardot-form .pd-radio .value span, .pardot-form .pd-checkbox .value span, .form .pd-radio .value span, .form .pd-checkbox .value span {
  margin-right: 2rem; }

.pardot-form input[type="radio"], .pardot-form input[type="checkbox"], .form input[type="radio"], .form input[type="checkbox"] {
  width: auto;
  margin-right: 7px; }

.pardot-form .error, .form .error {
  font-size: 13px;
  font-size: 0.8125rem;
  margin-top: -1rem;
  font-style: italic;
  margin-bottom: 1.2rem;
  color: #000000; }

.pardot-form input[type="submit"], .form input[type="submit"] {
  font-size: 20px;
  font-size: 1.25rem;
  border: 1px solid #FFFFFF;
  background-color: transparent;
  clear: both;
  color: #FFFFFF;
  cursor: pointer;
  display: inline-block;
  padding: 0.8rem 3rem;
  text-decoration: none;
  text-align: center;
  margin-top: 0.5rem; }

.pardot-form input[type="submit"]:hover, .form input[type="submit"]:hover {
  background-color: #ededed;
  color: #4D4F53; }

.pardot-form input[type="submit"]:active, .form input[type="submit"]:active {
  background-color: #FFFFFF;
  color: #4D4F53; }

/* SMALL/DEFAULT
------------------------------------------ */
.one_twelve, .two_twelve, .three_twelve, .four_twelve,
.five_twelve, .six_twelve, .seven_twelve, .eight_twelve,
.nine_twelve, .ten_twelve, .eleven_twelve, .twelve_twelve {
  margin: 0 0 0.625em 0;
  padding: 1px 0.5%;
  width: 100%;
  float: left;
  margin-left: 0;
  margin-right: 0; }

/* MEDIUM BREAKPOINT
------------------------------------------ */
@media only screen and (min-width: 50em) {
  .one_twelve {
    width: 6.77966%;
    float: left;
    margin-right: 1.69492%; }
  .two_twelve {
    width: 15.25424%;
    float: left;
    margin-right: 1.69492%; }
  .three_twelve {
    width: 23.72881%;
    float: left;
    margin-right: 1.69492%; }
  .four_twelve {
    width: 32.20339%;
    float: left;
    margin-right: 1.69492%; }
  .five_twelve {
    width: 40.67797%;
    float: left;
    margin-right: 1.69492%; }
  .six_twelve {
    width: 49.15254%;
    float: left;
    margin-right: 1.69492%; }
  .seven_twelve {
    width: 57.62712%;
    float: left;
    margin-right: 1.69492%; }
  .eight_twelve {
    width: 66.10169%;
    float: left;
    margin-right: 1.69492%; }
  .nine_twelve {
    width: 74.57627%;
    float: left;
    margin-right: 1.69492%; }
  .ten_twelve {
    width: 83.05085%;
    float: left;
    margin-right: 1.69492%; }
  .eleven_twelve {
    width: 91.52542%;
    float: left;
    margin-right: 1.69492%; }
  .twelve_twelve {
    width: 100%;
    float: left;
    margin-left: 0;
    margin-right: 0; }
  .end-grid {
    float: right;
    margin-right: 0; } }

/* LARGE BREAKPOINT
------------------------------------------ */
.grid {
  box-shadow: 0px 0px 60px -35px #000000;
  display: inline-block;
  width: 100%; }

.grid--social {
  /*background-color: $col-light-grey;*/
  box-shadow: 0 0 60px -45px #000000;
  float: left;
  padding: 2em 1em;
  margin: 0 1%;
  position: relative;
  min-height: 200px;
  width: 31.33333333%; }

.grid--social .share {
  bottom: 50%;
  left: 50%;
  margin: 0 auto;
  max-width: 100px;
  position: absolute;
  -ms-transform: translate(-50%, 50%);
      transform: translate(-50%, 50%); }

@media only screen and (min-width: 50em) {
  .grid--social .share {
    max-width: 200px;
    position: inherit;
    -ms-transform: none;
        transform: none;
    left: inherit; } }

@media only screen and (min-width: 50em) {
  .grid {
    float: left;
    margin: 3% 1%;
    width: 48%; }
  .grid--social {
    margin: 0 1%;
    width: 31.33333333%; } }

.grid label {
  font-size: 1em; }

@font-face {
  font-family: 'MiloPro';
  src: url("//media.steinias.com/ingredion/flickbook/fonts/milopro-webfont.eot");
  src: url("//media.steinias.com/ingredion/flickbook/fonts/milopro-webfont.eot") format("embedded-opentype"), url("//media.steinias.com/ingredion/flickbook/fonts/milopro-webfont.woff") format("woff"), url("//media.steinias.com/ingredion/flickbook/fonts/milopro-webfont.ttf") format("truetype"), url("//media.steinias.com/ingredion/flickbook/fonts/milopro-webfont.svg#svgMiloPro") format("svg"); }

p, a, li {
  font-size: 18px;
  font-size: 1.125rem; }

.logo {
  width: 100px;
  margin-top: 2rem; }

@media only screen and (min-width: 50em) {
  .logo {
    width: 125px;
    margin-top: 3rem; } }

@media only screen and (min-width: 73.125em) {
  .logo {
    width: 155px; } }

.banner {
  height: 220px;
  background-image: url("https://storage.pardot.com/504221/49873/banner.jpg");
  background-size: cover;
  background-position: center center;
  border-bottom: 12px solid #4D4F53; }

@media only screen and (min-width: 36em) {
  .banner {
    height: 300px; } }

@media only screen and (min-width: 50em) {
  .banner {
    height: 300px; } }

.banner.theme-orange {
  border-bottom-color: #F47B20; }

.banner.theme-lime-green {
  border-bottom-color: #CFB002; }

.banner.theme-cyan {
  border-bottom-color: #006A71; }

.banner.theme-pink {
  border-bottom-color: #B8166C; }

.main {
  padding: 3rem 0;
  position: relative; }

.main__copy {
  margin: 0 0 1em; }

@media only screen and (min-width: 50em) {
  .main__copy {
    margin: 1em 0; } }

@media only screen and (min-width: 50em) {
  .main {
    padding: 5rem 0; } }

@media only screen and (min-width: 50em) {
  .content--with-sidebar {
    float: left;
    width: 45%; } }

.content h2 {
  font-weight: bold; }

.content .normal {
  font-weight: normal; }

.content .bold {
  font-weight: bold; }

.content ul li {
  margin: 0 0 1.5rem;
  padding-left: 1.8rem;
  border-left: 5px solid #4D4F53; }

.content ul.theme-orange li {
  border-left-color: #F47B20; }

.content ul.theme-lime-green li {
  border-left-color: #CFB002; }

.content ul.theme-cyan li {
  border-left-color: #006A71; }

.content ul.theme-pink li {
  border-left-color: #B8166C; }

.sidebar {
  margin-top: 3rem;
  position: relative;
  background: #4D4F53;
  color: #FFFFFF;
  padding: 2.5rem 1.5rem; }

.sidebar.theme-orange {
  background: #F47B20; }

.sidebar.theme-lime-green {
  background: #CFB002; }

.sidebar.theme-cyan {
  background: #006A71; }

.sidebar.theme-pink {
  background: #B8166C; }

.sidebar__brochure {
  padding-bottom: 2rem; }

@media only screen and (min-width: 50em) {
  .sidebar {
    float: right;
    width: 45%;
    margin-top: -5rem; } }

@media only screen and (min-width: 73.125em) {
  .sidebar {
    padding: 2.5rem; } }

.sidebar__title {
  font-weight: normal;
  margin: 0; }

.sidebar__form-notes {
  margin: 2rem 0 0;
  font-size: 15px;
  font-size: 0.9375rem; }

.sidebar__form-notes a {
  color: inherit;
  font-size: inherit; }

.sidebar__form-notes a:hover {
  color: inherit; }

.sidebar__ty {
  display: none; }

.grey-cta-block {
  background: #4D4F53;
  color: #FFFFFF;
  padding: 3rem 0;
  text-align: center; }

.grey-cta-block p {
  margin-bottom: 1rem;
  font-size: 20px;
  font-size: 1.25rem; }

.logos {
  text-align: center;
  padding-bottom: 2rem; }

@media only screen and (min-width: 73.125em) {
  .logos {
    padding-bottom: 3rem;
    float: right;
    text-align: right;
    width: 40%; } }

.logos__img {
  display: inline-block;
  width: 100px;
  margin-right: 2rem;
  vertical-align: middle; }

@media only screen and (min-width: 50em) {
  .logos__img {
    margin-right: 3.5rem;
    width: 125px; } }

.logos__img--no-margin {
  margin: 0;
  width: 130px; }

@media only screen and (min-width: 50em) {
  .logos__img--no-margin {
    width: 155px; } }

.footer {
  padding: 3rem 0 2rem;
  overflow: hidden;
  color: #95989A; }

.footer a {
  font-size: inherit;
  color: #95989A; }

.footer__copyright {
  font-size: 14px;
  font-size: 0.875rem;
  text-align: center; }

@media only screen and (min-width: 73.125em) {
  .footer__copyright {
    text-align: left;
    float: left;
    width: 50%; } }

.loader {
  display: none;
  background-color: rgba(255, 255, 255, 0.7);
  background-image: url("https://storage.pardot.com/504221/49871/loading.gif");
  background-repeat: no-repeat;
  background-position: center center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJtb2R1bGVzL192YXJpYWJsZXMuc2NzcyIsIm1vZHVsZXMvX2Z1bmN0aW9ucy5zY3NzIiwibW9kdWxlcy9fbWl4aW5zLnNjc3MiLCJwYXJ0aWFscy9iYXNlL192ZW5kb3Iuc2NzcyIsInBhcnRpYWxzL2Jhc2UvX3Jlc2V0LnNjc3MiLCJwYXJ0aWFscy9iYXNlL19iYXNlLnNjc3MiLCJwYXJ0aWFscy9iYXNlL19idXR0b25zLnNjc3MiLCJwYXJ0aWFscy9iYXNlL19mb3Jtcy5zY3NzIiwicGFydGlhbHMvYmFzZS9fZ3JpZC5zY3NzIiwicGFydGlhbHMvYmFzZS9zdXN5L3N1c3kvb3V0cHV0L3N1cHBvcnQvX3JlbS5zY3NzIiwicGFydGlhbHMvYmFzZS9zdXN5L3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc3Bhbi5zY3NzIiwicGFydGlhbHMvYmFzZS9zdXN5L3N1c3kvb3V0cHV0L3NoYXJlZC9fZGlyZWN0aW9uLnNjc3MiLCJwYXJ0aWFscy9iYXNlL3N1c3kvc3VzeS9sYW5ndWFnZS9zdXN5L19ndXR0ZXJzLnNjc3MiLCJwYXJ0aWFscy9iYXNlL3N1c3kvc3VzeS9sYW5ndWFnZS9zdXN5L19yb3dzLnNjc3MiLCJwYXJ0aWFscy9jb21wb25lbnRzL19tYWluLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7NkNBQzZDO0FDRDdDOzZDQUM2QztBQWE3QyxrQkFBa0I7QUFRbEI7NkNBQzZDO0FBTzdDOzZDQUM2QztBQVE3Qzs2Q0FDNkM7QUN4QzdDOzZDQUM2QztBQ0Q3Qzs2Q0FDNkM7QUFxQjdDOzZDQUM2QztBQVk3Qzs2Q0FDNkM7QUg3QjdDOzZDQUM2QztBSVA3QyxtQkFBbUI7QUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUVILG9DQUFvQztBQUNwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBQ0gsZUFBZTtBQUNmOzs7R0FHRztBQ3RFSDtFQUFpRyxVQUFTO0VBQUMsV0FB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NUQsdUJHNER3QixFSjNEMUI7RUFFRDtJQ0hHLGlCQ3dJb0I7SUR4SXBCLFlFQTREO0lGQTVELHVCRzREd0IsRUp2RDFCO0VBRUQ7SUNQRyxpQkN3SW9CO0lEeElwQixZRUE0RDtJRkE1RCx1Qkc0RHdCLEVKbkQxQjtFQUVEO0lDWEcsaUJDd0lvQjtJRHhJcEIsWUVBNEQ7SUZBNUQsdUJHNER3QixFSi9DMUI7RUFFRDtJQ2ZHLGlCQ3dJb0I7SUR4SXBCLFlFQTREO0lGQTVELHVCRzREd0IsRUozQzFCO0VBRUQ7SUNuQkcsaUJDd0lvQjtJRHhJcEIsWUVBNEQ7SUZBNUQsdUJHNER3QixFSnZDMUI7RUFFRDtJQ3ZCRyxpQkN3SW9CO0lEeElwQixZRUE0RDtJRkE1RCx1Qkc0RHdCLEVKbkMxQjtFQUVEO0lDM0JHLGlCQ3dJb0I7SUR4SXBCLFlFQTREO0lGQTVELHVCRzREd0IsRUovQjFCO0VBRUQ7SUMvQkcsaUJDd0lvQjtJRHhJcEIsWUVBNEQ7SUZBNUQsdUJHNER3QixFSjNCMUI7RUFFRDtJQ25DRyxpQkN3SW9CO0lEeElwQixZRUE0RDtJRkE1RCx1Qkc0RHdCLEVKdkIxQjtFQUVEO0lDdkNHLGlCQ3dJb0I7SUR4SXBCLFlFQTREO0lGQTVELHVCRzREd0IsRUpuQjFCO0VBRUQ7SUMzQ0csWUN3SW9CO0lEeElwQixZRUE0RDtJRkE1RCxlQytFcUI7SUQvRXJCLGdCQ2tGb0IsRUZyQ3RCO0VBRUQ7SUMvQ0csYUVBdUU7SUZBdkUsZ0JJaURzQyxFTEF4QyxFQUFBOztBQUlGOzZDQUM2QztBQU83QztFQUNJLHVDUjdFZTtFUThFZixzQkFBc0I7RUFDekIsWUFBWSxFQXFDWjs7QUF4Q0Q7RUFLRSxzQ0FBc0M7RUFDdEMsbUNSbEZpQjtFUW1GZCxZQUFZO0VBQ2YsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLG9CQUFvQixFQWVwQjs7QUFkQTtFQUNJLFlBQVk7RUFDWixVQUFVO0VBQ2IsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDaEIsb0NBQVc7TUFB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LGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCLEVBWXZCOztBWmhNQTtFWXVLRjtJQWVHLHFCQUFxQjtJQUNyQixhQUFhLEVBU2QsRUFBQTs7QUF6QkY7RUFtQkcsVUFBVTtFQUNWLGFBQWEsRUFJYjs7QVovTEQ7RVl1S0Y7SUFzQkksYUFBYSxFQUVkLEVBQUE7O0FBSUg7RUFDQyxxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLGVkeE1pQixFY3NOakI7O0FBYkE7RUFDQyxtQkFBbUI7RUFDbkIsZWQzTWdCLEVjNE1oQjs7QUFQRjtFWnBLRSxnQlk2S3VCO0VaNUt2QixvQkRuQ3NCO0VhZ050QixtQkFBbUIsRUFNbkI7O0FaN01BO0VZNkxGO0lBWUcsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWixXQUFXLEVBRVosRUFBQTs7QUFHRjtFQUNDLGNBQWM7RUFDZCwyQ0FBa0I7RUFDbEIsNkVBQWtCO0VBQ2xCLDZCQUE2QjtFQUM3QixtQ0FBbUM7RUFDbkMsbUJBQW1CO0VBQ25CLE9BQU87RUFDUCxRQUFRO0VBQ1IsU0FBUztFQUNULFVBQVUsRUFDViIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBNT0RVTEVTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJtb2R1bGVzL192YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL19mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJtb2R1bGVzL19taXhpbnNcIjtcblxuXG4vKiBCQVNFIFBBUlRJQUxTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBpbXBvcnQgXCJwYXJ0aWFscy9iYXNlL192ZW5kb3JcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy9iYXNlL19yZXNldFwiO1xuQGltcG9ydCBcInBhcnRpYWxzL2Jhc2UvX2Jhc2VcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy9iYXNlL19idXR0b25zXCI7XG5AaW1wb3J0IFwicGFydGlhbHMvYmFzZS9fZm9ybXNcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy9iYXNlL19ncmlkXCI7XG5AaW1wb3J0IFwicGFydGlhbHMvY29tcG9uZW50cy9fbWFpbi5zY3NzXCI7XG4iLCIvKiBDT0xPVVJTIC0gaHR0cDovL2NoaXIuYWcvcHJvamVjdHMvbmFtZS10aGF0LWNvbG9yL1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiRjb2wtd2hpdGU6ICNGRkZGRkY7XG4kY29sLWJsYWNrOiAjMDAwMDAwO1xuJGNvbC1kYXJrLWdyZXk6ICM0RDRGNTM7XG4kY29sLWdyZXk6ICM5NTk4OUE7XG5cbiRjb2wtc3RhbmRhcmQ6ICRjb2wtZGFyay1ncmV5O1xuJGNvbC1saW5rOiAkY29sLWdyZXk7XG4kY29sLWxpbmstaG92ZXI6ICRjb2wtZGFyay1ncmV5O1xuJGNvbC1mb290ZXItdGV4dDogJGNvbC1ncmV5O1xuXG5cbi8qIFRoZW1lIGNvbG9ycyAqL1xuXG4kY29sLW9yYW5nZTogI0Y0N0IyMDtcbiRjb2wtbGltZS1ncmVlbjogI0NGQjAwMjtcbiRjb2wtY3lhbjogIzAwNkE3MTtcbiRjb2wtcGluazogI0I4MTY2QztcblxuXG4vKiBXRUlHSFRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJHdlaWdodC1saWdodDogMTAwO1xuJHdlaWdodC1yZWd1bGFyOiA0MDA7XG4kd2VpZ2h0LWJvbGQ6IDYwMDtcblxuXG4vKiBCQVNFIEZPTlRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGJhc2UtZm9udC1mYW1pbHk6ICdNaWxvUHJvJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiRiYXNlLWZvbnQtd2VpZ2h0OiAkd2VpZ2h0LXJlZ3VsYXI7XG4kYmFzZS1mb250LXNpemU6IDFlbTtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjQ7XG5cblxuLyogSEVBREVSIEZPTlRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuJGhlYWRlci1mb250LWZhbWlseTogJ01pbG9Qcm8nLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuIiwiLyogUFggVE8gUkVNXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIGNhbGN1bGF0ZVJlbSgkc2l6ZSkge1xuICAkcmVtU2l6ZTogJHNpemUgLyAxNnB4O1xuICBAcmV0dXJuICN7JHJlbVNpemV9cmVtO1xufSIsIi8qIEJSRUFLUE9JTlRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gYnJlYWtwb2ludCgkcG9pbnQpIHtcblx0QGlmICRwb2ludCA9PSBzbWFsbCB7XG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNmVtKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJHBvaW50ID09IG1lZGl1bSB7XG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MGVtKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJHBvaW50ID09IG1sYXJnZSB7XG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MGVtKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJHBvaW50ID09IGxhcmdlIHtcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDczLjEyNWVtKSB7IEBjb250ZW50OyB9XG5cdH1cblx0QGVsc2UgaWYgJHBvaW50ID09IHJldGluYSB7XG5cdFx0QG1lZGlhIHByaW50LCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogNS80KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7IEBjb250ZW50OyB9XG5cdH1cbn1cblxuXG4vKiBTVkcgQkcgSU1HIEZBTExCQUNLXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gU2FzcyBtaXhpbiBmb3IgU1ZHIHdpdGggZmFsbGJhY2sgc3VwcG9ydCB1c2luZyB0aGUgaW52aXNpYmxlIGdyYWRpZW50IHRlY2huaXF1ZVxuLy8gaHR0cDovL3BhdWdpbmVyLmNvbS9wb3N0LzM2NjE0NjgwNjM2L2ludmlzaWJsZS1ncmFkaWVudC10ZWNobmlxdWVcbkBtaXhpbiB2ZWN0b3ItaW1hZ2UoJGltZywgJGZhbGxiYWNrLCAkcG9zaXRpb246IGNlbnRlciBjZW50ZXIsICRzaXplOiBhdXRvKSB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgkZmFsbGJhY2spICRwb3NpdGlvbiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCksIHVybCgkaW1nKTtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCksIHVybCgkaW1nKTtcblx0YmFja2dyb3VuZC1zaXplOiAkc2l6ZTtcbn1cblxuXG4vKiBQWCBUTyBSRU1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gZm9udC1zaXplKCRzaXplKSB7XG4gIGZvbnQtc2l6ZTogJHNpemU7IC8vRmFsbGJhY2sgaW4gcHhcbiAgZm9udC1zaXplOiBjYWxjdWxhdGVSZW0oJHNpemUpO1xufVxuIiwiXG4vKiBmdW5jdGlvbmFsaXR5ICovXG4vKmlucHV0W3R5cGU9XCJyYWRpb1wiXS5yYWRpb0Zvcm0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXS5yYWRpb0Zvcm0gKyBsYWJlbCxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXS5yYWRpb0Zvcm0gKyBsYWJlbCA+IC5mbGFnIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ucmFkaW9Gb3JtICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgd2lkdGg6IDcwJTtcbn1cbmlucHV0W3R5cGU9XCJyYWRpb1wiXS5yYWRpb0Zvcm0gKyBsYWJlbCA+IC5mbGFnIHtcbiAgICBib3R0b206IC0xNXB4O1xuICAgIGxlZnQ6IC0zMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogNXB4O1xuICAgIHdpZHRoOjY4cHg7XG59Ki9cblxuLyogY2hlY2tlZCBzdGF0ZSBpbmRpY2F0b3IgaW1hZ2VzICovXG4vKmlucHV0W3R5cGU9XCJyYWRpb1wiXS5yYWRpb0Zvcm0gKyBsYWJlbCA+IC5mbGFnIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBkb3VibGUgI2I2YjZiNjtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogNzBweDtcbiAgdHJhbnNmb3JtOnNjYWxlKDEpIHJvdGF0ZSgwZGVnKTtcbiAgd2lkdGg6IDcwcHg7XG4gIHotaW5kZXg6Mjtcbn1cblxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLnJhZGlvRm9ybSArIGxhYmVsOmhvdmVyIHtcbiAgIC5mbGFnIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sLXRhbmdlcmluZTtcbiAgICBib3JkZXI6IDFlbSBkb3VibGUgJGNvbC13aGl0ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC41cyBlYXNlO1xuICAgfVxufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ucmFkaW9Gb3JtOmNoZWNrZWQgKyBsYWJlbCA+IC5mbGFnLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdLnJhZGlvRm9ybSArIGxhYmVsOmFjdGl2ZSA+IC5mbGFnIHtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyOiAxZW0gZG91YmxlICRjb2wtd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2wtYXBwbGU7XG4gIGhlaWdodDogODBweDtcbiAgbGVmdDogLTMyJTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZTtcbiAgdG9wOiAwcHg7XG4gIHdpZHRoOiA4MHB4O1xufVxuXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ucmFkaW9Gb3JtICsgbGFiZWwgPiAuZmxhZyxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXS5yYWRpb0Zvcm06Y2hlY2tlZCArIGxhYmVsOmFjdGl2ZSA+IC5mbGFnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbC13aGl0ZTtcbn0qL1xuLyogYW5pbWF0aW9uICovXG4vKmlucHV0W3R5cGU9XCJyYWRpb1wiXS5yYWRpb0Zvcm0gKyBsYWJlbCA+IC5mbGFnIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXMgY3ViaWMtYmV6aWVyKDEuMDAwLCAtMC4zNjAsIDAuMDAwLCAxLjM4NSk7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMS4wMDAsIC0wLjM2MCwgMC4wMDAsIDEuMzg1KTtcbn0qL1xuIiwiYm9keSxkaXYsZGwsZHQsZGQsdWwsb2wsbGksaDEsaDIsaDMsaDQsaDUsaDYscHJlLGZvcm0sZmllbGRzZXQsaW5wdXQsdGV4dGFyZWEscCxibG9ja3F1b3RlLHRoLHRke21hcmdpbjowO3BhZGRpbmc6MDt9dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JvcmRlci1zcGFjaW5nOjA7fWZpZWxkc2V0LGltZ3tib3JkZXI6MDt9YWRkcmVzcyxjYXB0aW9uLGNpdGUsY29kZSxkZm4sdGgsdmFye2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9b2wsdWx7bGlzdC1zdHlsZTpub25lO31jYXB0aW9uLHRoe3RleHQtYWxpZ246bGVmdDt9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOjEwMCU7Zm9udC13ZWlnaHQ6bm9ybWFsO31xOmJlZm9yZSxxOmFmdGVye2NvbnRlbnQ6Jyc7fWFiYnIsYWNyb255bXtib3JkZXI6MDt9XG5cblxuYXJ0aWNsZSwgYXNpZGUsIGRpYWxvZywgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBuYXYsIHNlY3Rpb24ge1xuXHRkaXNwbGF5OmJsb2NrOyBcblx0em9vbToxO1xufVxuXG5hdWRpbywgY2FudmFzLCB2aWRlbyB7IFxuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICpkaXNwbGF5OiBpbmxpbmU7ICp6b29tOiAxOyBcbn0iLCIqLCAqOmJlZm9yZSwgKjphZnRlciB7XG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sIHtcblx0Zm9udC1zaXplOiAxMDAlO1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG5cdC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG5ib2R5IHtcblx0Y29sb3I6ICRjb2wtc3RhbmRhcmQ7XG5cdGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblx0Zm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG5cdGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcblx0bWFyZ2luOiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jb250YWluZXIge1xuXHRtYXJnaW46IDAgYXV0bztcblx0d2lkdGg6IDkwJTtcblx0bWF4LXdpZHRoOiA3My4xMjVlbTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHQmLS1uYXJyb3cge1xuXHRcdG1heC13aWR0aDogNjBlbTtcblx0fVxufVxuXG4ucm93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG4vKiBCQVNFIEVMRU1FTlRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuXHRmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcblx0bWFyZ2luOjAgMCAxLjVyZW0gMDtcblx0bGluZS1oZWlnaHQ6IDEwMCU7XG59XG5cbmgxLCAuaDEge1xuXHRmb250LXNpemU6IDJlbTtcbn1cblxuaDIsIC5oMiB7XG5cdEBpbmNsdWRlIGZvbnQtc2l6ZSgzMnB4KTtcblx0Ji5sYXJnZSB7XG5cdFx0QGluY2x1ZGUgZm9udC1zaXplKDM2cHgpO1xuXHRcdGxldHRlci1zcGFjaW5nOiAtMXB4O1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRAaW5jbHVkZSBmb250LXNpemUoNTJweCk7XG5cdFx0fVxuXHR9XG59XG5cbmgzLCAuaDMge1xuXHRmb250LXNpemU6IDEuNWVtO1xufVxuXG5oNCwgLmg0IHtcblx0Zm9udC1zaXplOiAxLjRlbTtcbn1cblxuaDUsIC5oNSB7XG5cdGZvbnQtc2l6ZTogMS4zZW07XG59XG5cbmg2LCAuaDYge1xuXHRmb250LXNpemU6IDEuMmVtO1xufVxuXG5zbWFsbCB7XG5cdGZvbnQtc2l6ZTogMC44NWVtO1xufVxuXG51bCB7XG5cdGxpIHtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHR9XG59XG5cbi5jZW50ZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbm9sIGxpIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cblxuc3Ryb25nLCBiIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmVtLCBpIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5wIHtcblx0bWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXHQmLmxhcmdlIHtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMjBweCk7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IC0xcHg7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgyN3B4KTtcblx0XHR9XG5cdH1cbn1cblxuaW1nLCBvYmplY3QsIGVtYmVkIHtcblx0aGVpZ2h0OiBhdXRvO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cblxuLyogTElOS1Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5hIHtcblx0Y29sb3I6ICRjb2wtbGluaztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRvdXRsaW5lOiAwO1xuXHQmOnZpc2l0ZWQge1xuXG5cdH1cblx0Jjpob3ZlciB7XG5cdFx0Y29sb3I6ICRjb2wtbGluay1ob3Zlcjtcblx0fVxuXHQmOmFjdGl2ZSB7XG5cblx0fVxuXHQmOmZvY3VzIHtcblxuXHR9XG5cdC8qIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBob3ZlcmVkIGluIGFsbCBicm93c2VyczogaDVicC5jb20vaCAqL1xuXHQmOmZvY3VzLFxuXHQmOmFjdGl2ZSB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxufVxuXG5cbi8qIEJVSUxEIEVMRU1FTlRTXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmhpZGUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY2VudGVyLWFsaWduIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKipcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuICogICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4gKiAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAqL1xuLmNmOmJlZm9yZSxcbi5jZjphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMiAqL1xufVxuXG4uY2Y6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4vKipcbiAqIEZvciBJRSA2Lzcgb25seVxuICogSW5jbHVkZSB0aGlzIHJ1bGUgdG8gdHJpZ2dlciBoYXNMYXlvdXQgYW5kIGNvbnRhaW4gZmxvYXRzLlxuICovXG4uY2Yge1xuICAgICp6b29tOiAxO1xufVxuXG4iLCJcbi5idG4ge1xuXHRAaW5jbHVkZSBmb250LXNpemUoMjBweCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkICRjb2wtd2hpdGU7XG4gICBjbGVhcjogYm90aDtcblx0Y29sb3I6ICRjb2wtd2hpdGU7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwYWRkaW5nOiAwLjVyZW0gM3JlbTtcbiAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbC13aGl0ZSwgNyUpO1xuXHRcdGNvbG9yOiAkY29sLXN0YW5kYXJkO1xuXHR9XG5cdCY6YWN0aXZlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sLXdoaXRlO1xuXHRcdGNvbG9yOiAkY29sLXN0YW5kYXJkO1xuXHR9XG5cdCYtLXdpZGUge1xuXHRcdHdpZHRoOiA4MCU7XG5cdH1cbn0iLCJpbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0IHtcblx0bWFyZ2luOiAwO1xuXHRvdXRsaW5lOiBub25lO1xuXHRwYWRkaW5nOiAxZW07XG5cdHdpZHRoOiAxMDAlO1xuXHRmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG5cdGNvbG9yOiAkY29sLXN0YW5kYXJkO1xuXHRAaW5jbHVkZSBmb250LXNpemUoMTdweCk7XG59XG5cbnNlbGVjdCB7XG5cdGhlaWdodDogNDJweDtcblx0bGluZS1oZWlnaHQ6IDQycHg7XG5cdGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xufVxuXG4ucGFyZG90LWZvcm0sIC5mb3JtIHtcblx0bGFiZWwsIC5mb3JtLWZpZWxkIGxhYmVsIHtcblx0XHRjb2xvcjogJGNvbC13aGl0ZTtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMTdweCk7XG5cdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcblx0fVxuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSxcblx0c2VsZWN0IHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjRkZGICFpbXBvcnRhbnQ7XG5cdFx0cGFkZGluZzogMC43cmVtICFpbXBvcnRhbnQ7XG5cdH1cblx0dGV4dGFyZWEge1xuXHRcdGhlaWdodDogMTIwcHg7XG5cdH1cblx0LnBkLWhpZGRlbiB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cdC5zdWJtaXQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblx0LnBkLXJhZGlvLCAucGQtY2hlY2tib3gge1xuXHRcdC52YWx1ZSB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBhZGRpbmctdG9wOiAzcHg7XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAycmVtO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRpbnB1dFt0eXBlPVwicmFkaW9cIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiA3cHg7XG5cdH1cblx0LmVycm9yIHtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMTNweCk7XG5cdFx0bWFyZ2luLXRvcDogLTFyZW07XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRcdG1hcmdpbi1ib3R0b206IDEuMnJlbTtcblx0XHRjb2xvcjogJGNvbC1ibGFjaztcblx0fVxuXHRpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMjBweCk7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbC13aGl0ZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0ICAgY2xlYXI6IGJvdGg7XG5cdFx0Y29sb3I6ICRjb2wtd2hpdGU7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nOiAwLjhyZW0gM3JlbTtcblx0ICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW4tdG9wOiAwLjVyZW07XG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbC13aGl0ZSwgNyUpO1xuXHRcdFx0Y29sb3I6ICRjb2wtc3RhbmRhcmQ7XG5cdFx0fVxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2wtd2hpdGU7XG5cdFx0XHRjb2xvcjogJGNvbC1zdGFuZGFyZDtcblx0XHR9XG5cdH1cbn0iLCJAaW1wb3J0IFwiLi9zdXN5L3N1c3lcIjtcblxuLyogU01BTEwvREVGQVVMVFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5vbmVfdHdlbHZlLCAudHdvX3R3ZWx2ZSwgLnRocmVlX3R3ZWx2ZSwgLmZvdXJfdHdlbHZlLFxuLmZpdmVfdHdlbHZlLCAuc2l4X3R3ZWx2ZSwgLnNldmVuX3R3ZWx2ZSwgLmVpZ2h0X3R3ZWx2ZSxcbi5uaW5lX3R3ZWx2ZSwgLnRlbl90d2VsdmUsIC5lbGV2ZW5fdHdlbHZlLCAudHdlbHZlX3R3ZWx2ZSB7XG5cdG1hcmdpbjogMCAwIDAuNjI1ZW0gMDtcblx0cGFkZGluZzogMXB4IDAuNSU7XG5cdEBpbmNsdWRlIHNwYW4oMTIgb2YgMTIpXG59XG5cblxuLyogTUVESVVNIEJSRUFLUE9JTlRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHQub25lX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3BhbigxIG9mIDEyKTtcblx0fVxuXG5cdC50d29fdHdlbHZlIHtcblx0XHRAaW5jbHVkZSBzcGFuKDIgb2YgMTIpO1xuXHR9XG5cblx0LnRocmVlX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3BhbigzIG9mIDEyKTtcblx0fVxuXG5cdC5mb3VyX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3Bhbig0IG9mIDEyKTtcblx0fVxuXG5cdC5maXZlX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3Bhbig1IG9mIDEyKTtcblx0fVxuXG5cdC5zaXhfdHdlbHZlIHtcblx0XHRAaW5jbHVkZSBzcGFuKDYgb2YgMTIpO1xuXHR9XG5cblx0LnNldmVuX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3Bhbig3IG9mIDEyKTtcblx0fVxuXG5cdC5laWdodF90d2VsdmUge1xuXHRcdEBpbmNsdWRlIHNwYW4oOCBvZiAxMik7XG5cdH1cblxuXHQubmluZV90d2VsdmUge1xuXHRcdEBpbmNsdWRlIHNwYW4oOSBvZiAxMik7XG5cdH1cblxuXHQudGVuX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3BhbigxMCBvZiAxMik7XG5cdH1cblxuXHQuZWxldmVuX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3BhbigxMSBvZiAxMik7XG5cdH1cblxuXHQudHdlbHZlX3R3ZWx2ZSB7XG5cdFx0QGluY2x1ZGUgc3BhbigxMiBvZiAxMik7XG5cdH1cblxuXHQuZW5kLWdyaWQge1xuXHRcdEBpbmNsdWRlIGxhc3Q7XG5cdH1cbn1cblxuXG4vKiBMQVJHRSBCUkVBS1BPSU5UXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXG59XG5cblxuLmdyaWQge1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggNjBweCAtMzVweCAkY29sLWJsYWNrO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdCYtLXNvY2lhbCB7XG5cdFx0LypiYWNrZ3JvdW5kLWNvbG9yOiAkY29sLWxpZ2h0LWdyZXk7Ki9cblx0XHRib3gtc2hhZG93OiAwIDAgNjBweCAtNDVweCAkY29sLWJsYWNrO1xuXHQgICAgZmxvYXQ6IGxlZnQ7XG5cdFx0cGFkZGluZzogMmVtIDFlbTtcblx0XHRtYXJnaW46IDAgMSU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1pbi1oZWlnaHQ6IDIwMHB4O1xuXHRcdHdpZHRoOiAzMS4zMzMzMzMzMyU7XG5cdFx0LnNoYXJlIHtcblx0XHQgICAgYm90dG9tOiA1MCU7XG5cdFx0ICAgIGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiAxMDBweDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTtcblx0XHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRcdG1heC13aWR0aDogMjAwcHg7XG5cdFx0XHRcdHBvc2l0aW9uOiBpbmhlcml0O1xuXHRcdFx0XHR0cmFuc2Zvcm06IG5vbmU7XG5cdFx0XHRcdGxlZnQ6IGluaGVyaXQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luOiAzJSAxJTtcblx0XHR3aWR0aDogNDglO1xuXHRcdCYtLXNvY2lhbCB7XG5cdFx0XHRtYXJnaW46IDAgMSU7XG5cdFx0XHR3aWR0aDogMzEuMzMzMzMzMzMlO1xuXHRcdH1cblx0fVxuXHRsYWJlbCB7XG5cdFx0Zm9udC1zaXplOiAxZW07XG5cdH1cbn0iLCIvLyByZW0gU3VwcG9ydFxuLy8gPT09PT09PT09PT1cblxuLy8gcmVtXG4vLyAtLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBvdXRwdXQgZGlyZWN0bHkuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1yZW0oXG4gICRwcm9wLFxuICAkdmFsXG4pIHtcbiAgJF9yZXFzOiAoXG4gICAgdmFyaWFibGU6IHJoeXRobS11bml0IHJlbS13aXRoLXB4LWZhbGxiYWNrLFxuICAgIG1peGluOiByZW0sXG4gICk7XG4gIEBpZiBzdXN5LXN1cHBvcnQocmVtLCAkX3JlcXMsICR3YXJuOiBmYWxzZSkgYW5kICRyaHl0aG0tdW5pdCA9PSByZW0ge1xuICAgIEBpbmNsdWRlIHJlbSgkcHJvcCwgJHZhbCk7XG4gIH0gQGVsc2Uge1xuICAgICN7JHByb3B9OiAkdmFsO1xuICB9XG59XG4iLCIvLyBTcGFuIFN5bnRheFxuLy8gPT09PT09PT09PT1cblxuLy8gU3BhbiBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS1cbi8vIFNldCBhIHNwYW5uaW5nIGVsZW1lbnQgdXNpbmcgc2hvcnRoYW5kIHN5bnRheC5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AbWl4aW4gc3BhbihcbiAgJHNwYW5cbikge1xuICAkaW5zcGVjdDogJHNwYW47XG4gICRzcGFuOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJG91dHB1dDogc3Bhbi1tYXRoKCRzcGFuKTtcbiAgJG5lc3Rpbmc6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGNsZWFyOiBzdXN5LWdldChjbGVhciwgJHNwYW4pO1xuXG4gICRib3g6IHN1c3ktZ2V0KGJveC1zaXppbmcsICRzcGFuKTtcbiAgJGNvbnRlbnQtYm94OiBpZihzdXN5LWdldChnbG9iYWwtYm94LXNpemluZykgIT0gJ2JvcmRlci1ib3gnLCB0cnVlLCBmYWxzZSk7XG4gICRib3g6ICRib3ggb3IgaWYoaXMtaW5zaWRlKCRzcGFuKSBhbmQgJGNvbnRlbnQtYm94LCBib3JkZXItYm94LCBudWxsKTtcblxuICBAaWYgJGNsZWFyID09IGJyZWFrIHtcbiAgICBAaW5jbHVkZSBicmVhaztcbiAgfSBAZWxzZSBpZiAkY2xlYXIgPT0gbm9icmVhayB7XG4gICAgQGluY2x1ZGUgbm9icmVhaztcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChzcGFuLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIG91dHB1dCgoYm94LXNpemluZzogJGJveCkpO1xuICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICBAaWYgdmFsaWQtY29sdW1ucygkbmVzdGluZywgc2lsZW50KSB7XG4gICAgQGluY2x1ZGUgbmVzdGVkKCRzcGFuKSB7IEBjb250ZW50OyB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFNwYW4gW2Z1bmN0aW9uXVxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIHdpZHRoIG9mIGEgc3Bhbi5cbi8vIC0gJHNwYW4gIDogPHNwYW4+XG5AZnVuY3Rpb24gc3BhbihcbiAgJHNwYW5cbikge1xuICBAcmV0dXJuIGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbn1cblxuLy8gU3BhbiBNYXRoXG4vLyAtLS0tLS0tLS1cbi8vIEdldCBhbGwgdGhlIHNwYW4gcmVzdWx0cy5cbi8vIC0gJHNwYW46IDxtYXA+XG5AZnVuY3Rpb24gc3Bhbi1tYXRoKFxuICAkc3BhblxuKSB7XG4gICRuZXN0ICAgICAgICAgICAgIDogaWYoc3VzeS1nZXQocm9sZSwgJHNwYW4pID09IG5lc3QsIHRydWUsIGZhbHNlKTtcbiAgJHNwbGl0LW5lc3QgICAgICAgOiBpZihpcy1zcGxpdCgkc3BhbikgYW5kICRuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRlZGdlICAgICAgICAgICAgIDogZ2V0LWVkZ2UoJHNwYW4pO1xuICAkbG9jYXRpb24gICAgICAgICA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG5cbiAgJGZsb2F0ICAgICAgICAgICAgOiBmcm9tO1xuICAkcGFkZGluZy1iZWZvcmUgICA6IG51bGw7XG4gICRwYWRkaW5nLWFmdGVyICAgIDogbnVsbDtcbiAgJG1hcmdpbi1iZWZvcmUgICAgOiBudWxsO1xuICAkbWFyZ2luLWFmdGVyICAgICA6IG51bGw7XG5cbiAgLy8gY2FsY3VsYXRlIHdpZHRoc1xuICAkc3ByZWFkOiBpbmRleChtYXAtdmFsdWVzKCRzcGFuKSwgc3ByZWFkKTtcbiAgJHNwYW46IGlmKCRzcGxpdC1uZXN0IGFuZCBub3QoJHNwcmVhZCksIG1hcC1tZXJnZSgkc3BhbiwgKHNwcmVhZDogd2lkZSkpLCAkc3Bhbik7XG4gICR3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHNwYW4pO1xuICAkZ3V0dGVyczogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuXG4gIC8vIGFwcGx5IGd1dHRlcnNcbiAgQGlmIGlzLWluc2lkZSgkc3Bhbikge1xuICAgIEBpZiBub3Qoc3VzeS1nZXQocm9sZSwgJHNwYW4pKSB7XG4gICAgICAkcGFkZGluZy1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSk7XG4gICAgICAkcGFkZGluZy1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGlmIG5vdCgkc3BsaXQtbmVzdCkge1xuICAgICAgJG1hcmdpbi1iZWZvcmU6IG1hcC1nZXQoJGd1dHRlcnMsIGJlZm9yZSk7XG4gICAgICAkbWFyZ2luLWFmdGVyOiBtYXAtZ2V0KCRndXR0ZXJzLCBhZnRlcik7XG4gICAgfVxuICB9XG5cbiAgLy8gc3BlY2lhbCBtYXJnaW4gaGFuZGxpbmdcbiAgQGlmIHN1c3ktZ2V0KG91dHB1dCwgJHNwYW4pID09IGlzb2xhdGUgYW5kICRsb2NhdGlvbiB7XG4gICAgJG1hcmdpbi1iZWZvcmU6IGdldC1pc29sYXRpb24oJHNwYW4pO1xuICAgICRtYXJnaW4tYWZ0ZXI6IC0xMDAlO1xuICB9IEBlbHNlIGlmICRlZGdlIHtcbiAgICAkaXMtc3BsaXQ6IGlzLXNwbGl0KCRzcGFuKTtcbiAgICAkcG9zOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRzcGFuKTtcblxuICAgIEBpZiAkZWRnZSA9PSBsYXN0IHtcbiAgICAgICRmbG9hdDogc3VzeS1nZXQobGFzdC1mbG93LCAkc3Bhbik7XG4gICAgfVxuXG4gICAgQGlmIG5vdCgkaXMtc3BsaXQpIHtcbiAgICAgIEBpZiAkZWRnZSA9PSBmdWxsIG9yICgkZWRnZSA9PSBmaXJzdCBhbmQgJHBvcyA9PSBiZWZvcmUpIHtcbiAgICAgICAgJG1hcmdpbi1iZWZvcmU6IDA7XG4gICAgICB9XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gbGFzdCBhbmQgJHBvcyA9PSBhZnRlcikge1xuICAgICAgICAkbWFyZ2luLWFmdGVyOiAwO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAoXG4gICAgd2lkdGggICAgICAgICAgIDogJHdpZHRoLFxuICAgIGZsb2F0ICAgICAgICAgICA6ICRmbG9hdCxcbiAgICBtYXJnaW4tYmVmb3JlICAgOiAkbWFyZ2luLWJlZm9yZSxcbiAgICBtYXJnaW4tYWZ0ZXIgICAgOiAkbWFyZ2luLWFmdGVyLFxuICAgIHBhZGRpbmctYmVmb3JlICA6ICRwYWRkaW5nLWJlZm9yZSxcbiAgICBwYWRkaW5nLWFmdGVyICAgOiAkcGFkZGluZy1hZnRlcixcbiAgICBmbG93ICAgICAgICAgICAgOiBzdXN5LWdldChmbG93LCAkc3BhbiksXG4gICk7XG59XG5cbi8vIEdldCBTcGFuIFdpZHRoXG4vLyAtLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHNwYW4gd2lkdGguXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIGdldC1zcGFuLXdpZHRoKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuXG4gICRuICAgICAgICA6IHN1c3ktZ2V0KHNwYW4sICRzcGFuKTtcbiAgJGxvY2F0aW9uIDogZ2V0LWxvY2F0aW9uKCRzcGFuKTtcbiAgJGNvbHVtbnMgIDogc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pO1xuICAkZ3V0dGVycyAgOiBzdXN5LWdldChndXR0ZXJzLCAkc3Bhbik7XG4gICRzcHJlYWQgICA6IHN1c3ktZ2V0KHNwcmVhZCwgJHNwYW4pO1xuXG4gICRjb250ZXh0ICA6IG51bGw7XG4gICRzcGFuLXN1bSA6IG51bGw7XG4gICR3aWR0aCAgICA6IG51bGw7XG5cbiAgQGlmICRuID09ICdmdWxsJyB7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG4gICAgJHJvbGU6IHN1c3ktZ2V0KHJvbGUsICRzcGFuKTtcbiAgICAkbjogaWYoJHBvcyA9PSBzcGxpdCBhbmQgJHJvbGUgIT0gbmVzdCwgc3VzeS1jb3VudCgkY29sdW1ucyksIDEwMCUpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG4pICE9IG51bWJlciB7XG4gICAgQHdhcm4gXCIoI3t0eXBlLW9mKCRuKX0pICN7JG59IGlzIG5vdCBhIHZhbGlkIHNwYW4uXCI7XG4gIH0gQGVsc2UgaWYgdW5pdGxlc3MoJG4pIHtcbiAgICAkY29udGV4dDogc3VzeS1zdW0oJGNvbHVtbnMsICRndXR0ZXJzLCBpZihpcy1zcGxpdCgkc3BhbiksIHdpZGUsIG5hcnJvdykpO1xuICAgICRzcHJlYWQ6IGlmKGlzLWluc2lkZSgkc3BhbiksICRzcHJlYWQgb3Igd2lkZSwgJHNwcmVhZCk7XG4gICAgJHNwYW4tc3VtOiBzdXN5KCRuLCAkbG9jYXRpb24sICRjb2x1bW5zLCAkZ3V0dGVycywgJHNwcmVhZCk7XG5cbiAgICAkX21hdGg6IHN1c3ktZ2V0KG1hdGgsICRzcGFuKTtcbiAgICAkX2NvbHVtbi13aWR0aDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkc3Bhbik7XG4gICAgQGlmICRfbWF0aCA9PSBzdGF0aWMge1xuICAgICAgJHdpZHRoOiAkc3Bhbi1zdW0gKiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3aWR0aDogcGVyY2VudGFnZSgkc3Bhbi1zdW0gLyAkY29udGV4dCk7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkd2lkdGg6ICRuO1xuICB9XG5cbiAgQHJldHVybiAkd2lkdGg7XG59XG4iLCIvLyBEaXJlY3Rpb24gSGVscGVyc1xuLy8gPT09PT09PT09PT09PT09PT1cblxuLy8gU3VzeSBGbG93IERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gUFJJVkFURVxuQGluY2x1ZGUgc3VzeS1kZWZhdWx0cygoXG4gIGZsb3c6IGx0cixcbikpO1xuXG4vLyBHZXQgRGlyZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlICdmcm9tJyBvciAndG8nIGRpcmVjdGlvbiBvZiBhIGx0ciBvciBydGwgZmxvdy5cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbi8vIC0gWyRrZXldICAgOiBmcm9tIHwgdG9cbkBmdW5jdGlvbiBnZXQtZGlyZWN0aW9uKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdyksXG4gICRrZXk6IGZyb21cbikge1xuICAkcmV0dXJuOiBpZigkZmxvdyA9PSBydGwsIChmcm9tOiByaWdodCwgdG86IGxlZnQpLCAoZnJvbTogbGVmdCwgdG86IHJpZ2h0KSk7XG4gIEByZXR1cm4gbWFwLWdldCgkcmV0dXJuLCAka2V5KTtcbn1cblxuLy8gVG9cbi8vIC0tXG4vLyBSZXR1cm4gdGhlICd0bycgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIHRvKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIHRvKTtcbn1cblxuLy8gRnJvbVxuLy8gLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgZGlyZWN0aW9uIG9mIGEgZmxvd1xuLy8gLSBbJGZsb3ddICA6IGx0ciB8IHJ0bFxuQGZ1bmN0aW9uIGZyb20oXG4gICRmbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBmbG93KVxuKSB7XG4gIEByZXR1cm4gZ2V0LWRpcmVjdGlvbigkZmxvdywgZnJvbSk7XG59XG4iLCIvLyBHdXR0ZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09XG5cblxuLy8gR3V0dGVyc1xuLy8gLS0tLS0tLVxuLy8gU2V0IGd1dHRlcnMgb24gYW4gZWxlbWVudC5cbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxuQG1peGluIGd1dHRlcnMoXG4gICRzcGFuOiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRzcGFuO1xuICAkc3BhbiAgICAgOiBwYXJzZS1ndXR0ZXJzKCRzcGFuKTtcbiAgJF9ndXR0ZXJzIDogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuXG4gICRfb3V0cHV0OiAoXG4gICAgYmVmb3JlOiBtYXAtZ2V0KCRfZ3V0dGVycywgYmVmb3JlKSxcbiAgICBhZnRlcjogbWFwLWdldCgkX2d1dHRlcnMsIGFmdGVyKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkc3BhbiksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGd1dHRlcnMsICRpbnNwZWN0KTtcblxuICBAaWYgaXMtaW5zaWRlKCRzcGFuKSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZy1vdXRwdXQoJF9vdXRwdXQuLi4pO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4tb3V0cHV0KCRfb3V0cHV0Li4uKTtcbiAgfVxufVxuXG5AbWl4aW4gZ3V0dGVyKFxuICAkc3BhbjogJHN1c3lcbikge1xuICBAaW5jbHVkZSBndXR0ZXJzKCRzcGFuKTtcbn1cblxuXG4vLyBHdXR0ZXJcbi8vIC0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIGd1dHRlci5cbi8vIC0gWyRzcGFuXSAgIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGd1dHRlcihcbiAgJHNwYW46ICRzdXN5XG4pIHtcbiAgJHNwYW46IHBhcnNlLWd1dHRlcnMoJHNwYW4pO1xuXG4gICRfZ3V0dGVyczogZ2V0LWd1dHRlcnMoJHNwYW4pO1xuICAkX2d1dHRlcnM6IG1hcC1nZXQoJF9ndXR0ZXJzLCBiZWZvcmUpIG9yIG1hcC1nZXQoJF9ndXR0ZXJzLCBhZnRlcik7XG5cbiAgQHJldHVybiAkX2d1dHRlcnM7XG59XG5cbkBmdW5jdGlvbiBndXR0ZXJzKFxuICAkc3BhbjogJHN1c3lcbikge1xuICBAcmV0dXJuIGd1dHRlcigkc3Bhbik7XG59XG5cblxuLy8gR2V0IEd1dHRlciBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGd1dHRlciB3aWR0aC5cbi8vIC0gWyRjb250ZXh0XTogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ2V0LWd1dHRlci13aWR0aChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3V0dGVycygkY29udGV4dCk7XG5cbiAgJF9ndXR0ZXJzIDogc3VzeS1nZXQoZ3V0dGVycywgJGNvbnRleHQpO1xuICAkX2d1dHRlciAgOiBzdXN5LWdldChndXR0ZXItb3ZlcnJpZGUsICRjb250ZXh0KTtcblxuICBAaWYgJF9ndXR0ZXJzIGFuZCAoJF9ndXR0ZXJzID4gMCkgYW5kIG5vdCgkX2d1dHRlcikge1xuICAgICRfY29sdW1uLXdpZHRoOiBzdXN5LWdldChjb2x1bW4td2lkdGgsICRjb250ZXh0KTtcbiAgICAkX21hdGg6IGd1dHRlci1tYXRoKCRjb250ZXh0KTtcbiAgICBAaWYgJF9tYXRoID09IHN0YXRpYyB7XG4gICAgICAkX2d1dHRlcjogJF9ndXR0ZXJzICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkX2NvbHVtbnMgOiBzdXN5LWdldChjb2x1bW5zLCAkY29udGV4dCk7XG4gICAgICAkX3NwcmVhZCAgOiBpZihpcy1zcGxpdCgkY29udGV4dCksIHdpZGUsIHN1c3ktZ2V0KHNwcmVhZCwgJGNvbnRleHQpKTtcbiAgICAgICRfZ3V0dGVyICA6IHBlcmNlbnRhZ2UoJF9ndXR0ZXJzIC8gc3VzeS1zdW0oJF9jb2x1bW5zLCAkX2d1dHRlcnMsICRfc3ByZWFkKSk7XG4gICAgfVxuICB9XG5cbiAgJF9ndXR0ZXI6IGlmKCRfZ3V0dGVyID09ICduby1ndXR0ZXJzJyBvciAkX2d1dHRlciA9PSAnbm8tZ3V0dGVyJywgbnVsbCwgJF9ndXR0ZXIpO1xuXG4gIEByZXR1cm4gJF9ndXR0ZXI7XG59XG5cblxuLy8gR2V0IEd1dHRlcnNcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gYmVmb3JlIGFuZCBhZnRlciBndXR0ZXIgdmFsdWVzLlxuLy8gLSBbJGNvbnRleHRdOiA8Y29udGV4dD5cbkBmdW5jdGlvbiBnZXQtZ3V0dGVycyhcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGNvbnRleHQgICAgICAgICAgICA6IHBhcnNlLWd1dHRlcnMoJGNvbnRleHQpO1xuXG4gICRfZ3V0dGVyLXBvc2l0aW9uICAgOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcbiAgJF9ndXR0ZXIgICAgICAgICAgICA6IGdldC1ndXR0ZXItd2lkdGgoJGNvbnRleHQpO1xuXG4gICRfcmV0dXJuICAgICAgICAgICAgOiAoYmVmb3JlOiBudWxsLCBhZnRlcjogbnVsbCk7XG5cbiAgQGlmIGlzLXNwbGl0KCRjb250ZXh0KSBhbmQgJF9ndXR0ZXIge1xuICAgICRfZ3V0dGVyOiAkX2d1dHRlciAvIDI7XG4gICAgJF9yZXR1cm46IG1hcC1tZXJnZSgkX3JldHVybiwgKGJlZm9yZTogJF9ndXR0ZXIsIGFmdGVyOiAkX2d1dHRlcikpO1xuICB9IEBlbHNlIHtcbiAgICAkX3JldHVybjogbWFwLW1lcmdlKCRfcmV0dXJuLCAoJF9ndXR0ZXItcG9zaXRpb246ICRfZ3V0dGVyKSk7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuXG5cbi8vIElzIEluc2lkZVxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm5zIHRydWUgaWYgZ3V0dGVycyBhcmUgaW5zaWRlLlxuLy8gJGNvbnRleHQ6IDxjb250ZXh0PlxuQGZ1bmN0aW9uIGlzLWluc2lkZShcbiAgJGNvbnRleHRcbikge1xuICAkX2luc2lkZTogaW5zaWRlIGluc2lkZS1zdGF0aWM7XG4gICRfZ3V0dGVyLXBvc2l0aW9uOiBzdXN5LWdldChndXR0ZXItcG9zaXRpb24sICRjb250ZXh0KTtcblxuICBAcmV0dXJuIGlmKGluZGV4KCRfaW5zaWRlLCAkX2d1dHRlci1wb3NpdGlvbiksIHRydWUsIGZhbHNlKTtcbn1cblxuXG4vLyBJcyBTcGxpdFxuLy8gLS0tLS0tLS1cbi8vIFJldHVybnMgdHJ1ZSBpZiBndXR0ZXJzIGFyZSBzcGxpdC5cbi8vICRjb250ZXh0OiA8Y29udGV4dD5cbkBmdW5jdGlvbiBpcy1zcGxpdChcbiAgJGNvbnRleHRcbikge1xuICAkX3NwbGl0OiBzcGxpdCBpbnNpZGUgaW5zaWRlLXN0YXRpYztcbiAgJF9ndXR0ZXItcG9zaXRpb246IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJGNvbnRleHQpO1xuXG4gIEByZXR1cm4gaWYoaW5kZXgoJF9zcGxpdCwgJF9ndXR0ZXItcG9zaXRpb24pLCB0cnVlLCBmYWxzZSk7XG59XG5cblxuLy8gR3V0dGVyIE1hdGhcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIG1hdGggdG8gdXNlIGZvciBndXR0ZXIgY2FsY3VsYXRpb25zXG4vLyAkY29udGV4dDogPGNvbnRleHQ+XG5AZnVuY3Rpb24gZ3V0dGVyLW1hdGgoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRfcmV0dXJuICA6IHN1c3ktZ2V0KG1hdGgsICRjb250ZXh0KTtcbiAgJF9yZXR1cm4gIDogaWYoc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkY29udGV4dCkgPT0gaW5zaWRlLXN0YXRpYywgc3RhdGljLCAkX3JldHVybik7XG5cbiAgQHJldHVybiAkX3JldHVybjtcbn1cbiIsIi8vIFJvdyBTdGFydCAmIEVuZFxuLy8gPT09PT09PT09PT09PT09XG5cbi8vIEJyZWFrXG4vLyAtLS0tLVxuLy8gQXBwbHkgdG8gYW55IGVsZW1lbnQgdGhhdCBzaG91bGQgZm9yY2UgYSBsaW5lIGJyZWFrLlxuQG1peGluIGJyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogYm90aCkpO1xufVxuXG5cbi8vIE5vQnJlYWtcbi8vIC0tLS0tLS1cbi8vIENhbmNlbCB0aGUgYnJlYWsoKSBlZmZlY3QsIGUuZy4gd2hlbiB1c2luZyBtZWRpYSBxdWVyaWVzLlxuQG1peGluIG5vYnJlYWsge1xuICBAaW5jbHVkZSBvdXRwdXQoKGNsZWFyOiBub25lKSk7XG59XG5cblxuLy8gRnVsbFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8bGF5b3V0IHNob3J0aGFuZD5cbkBtaXhpbiBmdWxsKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCA6ICRjb250ZXh0O1xuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZnVsbCwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBzcGFuKGZ1bGwgb2YgcGFyc2UtZ3JpZCgkY29udGV4dCkgYnJlYWspO1xufVxuXG5cbi8vIEZpcnN0XG4vLyAtLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gZmlyc3QoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gICRpbnNwZWN0ICA6ICRjb250ZXh0O1xuICAkY29udGV4dCAgOiBwYXJzZS1ncmlkKCRjb250ZXh0KTtcbiAgJGZsb3cgICAgIDogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChmaXJzdCwgJGluc3BlY3QpO1xuICBAaWYgbm90KGlzLXNwbGl0KCRjb250ZXh0KSkge1xuICAgIEBpbmNsdWRlIGZsb2F0LWZpcnN0KCRmbG93KTtcbiAgfVxufVxuXG5AbWl4aW4gYWxwaGEoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGZpcnN0KCRjb250ZXh0KTtcbn1cblxuXG4vLyBMYXN0XG4vLyAtLS0tXG4vLyAtIFskY29udGV4dF06IDxzZXR0aW5ncz5cbkBtaXhpbiBsYXN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGxhc3QsICRpbnNwZWN0KTtcblxuICAkb3V0cHV0OiAoXG4gICAgZmxvdzogc3VzeS1nZXQoZmxvdywgJGNvbnRleHQpLFxuICAgIGxhc3QtZmxvdzogc3VzeS1nZXQobGFzdC1mbG93LCAkY29udGV4dCksXG4gICAgbWFyZ2luOiBpZihpcy1zcGxpdCgkY29udGV4dCksIG51bGwsIDApLFxuICApO1xuXG4gIEBpbmNsdWRlIGZsb2F0LWxhc3QoJG91dHB1dC4uLik7XG59XG5cbkBtaXhpbiBvbWVnYShcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgQGluY2x1ZGUgbGFzdCgkY29udGV4dCk7XG59XG5cblxuLy8gR2V0IEVkZ2Vcbi8vIC0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgZWRnZSB2YWx1ZSBiYXNlZCBvbiBsb2NhdGlvbiwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtZWRnZShcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgICA6IHBhcnNlLXNwYW4oJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IHN1c3ktZ2V0KGVkZ2UsICRzcGFuKTtcblxuICBAaWYgbm90KCRlZGdlKSB7XG4gICAgJGNvdW50OiBzdXN5LWNvdW50KHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKSk7XG4gICAgJGxvY2F0aW9uOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAgICRuOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgICAkbnVtYmVyOiBpZih0eXBlLW9mKCRsb2NhdGlvbikgPT0gbnVtYmVyLCB0cnVlLCBmYWxzZSk7XG4gICAgJGluZGV4OiBpZigkbnVtYmVyIGFuZCB1bml0bGVzcygkbG9jYXRpb24pLCB0cnVlLCBmYWxzZSk7XG5cbiAgICBAaWYgJG4gPT0gJGNvdW50IHtcbiAgICAgICRlZGdlOiBmdWxsO1xuICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uIGFuZCAkbiBhbmQgJGluZGV4IHtcbiAgICAgIEBpZiAkbG9jYXRpb24gPT0gMSB7XG4gICAgICAgICRlZGdlOiBpZigkbiA9PSAkY291bnQsIGZ1bGwsIGZpcnN0KTtcbiAgICAgIH0gQGVsc2UgaWYgJGxvY2F0aW9uICsgJG4gLSAxID09ICRjb3VudCB7XG4gICAgICAgICRlZGdlOiBsYXN0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkZWRnZSA9PSBhbHBoYSBvciAkZWRnZSA9PSBvbWVnYSB7XG4gICAgJGVkZ2U6IGlmKCRlZGdlID09IGFscGhhLCBmaXJzdCwgbGFzdCk7XG4gIH1cblxuICBAcmV0dXJuICRlZGdlO1xufVxuXG5cbi8vIEdldCBMb2NhdGlvblxuLy8gLS0tLS0tLS0tLS0tXG4vLyBDYWxjdWxhdGUgbG9jYXRpb24gdmFsdWUgYmFzZWQgb24gZWRnZSwgaWYgcG9zc2libGVcbkBmdW5jdGlvbiBnZXQtbG9jYXRpb24oXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgOiBzdXN5LWdldChsb2NhdGlvbiwgJHNwYW4pO1xuICAkZWRnZSAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJG4gICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG5cbiAgQGlmICRlZGdlIGFuZCBub3QoJGxvY2F0aW9uKSBhbmQgdHlwZS1vZigkbikgPT0gbnVtYmVyIGFuZCB1bml0bGVzcygkbikge1xuICAgIEBpZiAkZWRnZSA9PSBmaXJzdCB7XG4gICAgICAkbG9jYXRpb246IDE7XG4gICAgfSBAZWxzZSBpZiAkZWRnZSA9PSBsYXN0IHtcbiAgICAgICRsb2NhdGlvbjogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpIC0gJG4gKyAxO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxvY2F0aW9uXG59XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdNaWxvUHJvJztcbiAgc3JjOiB1cmwoJy8vbWVkaWEuc3RlaW5pYXMuY29tL2luZ3JlZGlvbi9mbGlja2Jvb2svZm9udHMvbWlsb3Byby13ZWJmb250LmVvdCcpO1xuICBzcmM6IHVybCgnLy9tZWRpYS5zdGVpbmlhcy5jb20vaW5ncmVkaW9uL2ZsaWNrYm9vay9mb250cy9taWxvcHJvLXdlYmZvbnQuZW90JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgIHVybCgnLy9tZWRpYS5zdGVpbmlhcy5jb20vaW5ncmVkaW9uL2ZsaWNrYm9vay9mb250cy9taWxvcHJvLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICAgICAgIHVybCgnLy9tZWRpYS5zdGVpbmlhcy5jb20vaW5ncmVkaW9uL2ZsaWNrYm9vay9mb250cy9taWxvcHJvLXdlYmZvbnQudHRmJykgIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgICAgICB1cmwoJy8vbWVkaWEuc3RlaW5pYXMuY29tL2luZ3JlZGlvbi9mbGlja2Jvb2svZm9udHMvbWlsb3Byby13ZWJmb250LnN2ZyNzdmdNaWxvUHJvJykgZm9ybWF0KCdzdmcnKTtcbn1cblxucCwgYSwgbGkge1xuXHRAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG59XG5cbi5sb2dvIHtcblx0d2lkdGg6IDEwMHB4O1xuXHRtYXJnaW4tdG9wOiAycmVtO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdHdpZHRoOiAxMjVweDtcblx0XHRtYXJnaW4tdG9wOiAzcmVtO1xuXHR9XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHR3aWR0aDogMTU1cHg7XG5cdH1cbn1cblxuLmJhbm5lciB7XG5cdGhlaWdodDogMjIwcHg7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly9zdG9yYWdlLnBhcmRvdC5jb20vNTA0MjIxLzQ5ODczL2Jhbm5lci5qcGcnKTtcblx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0Ym9yZGVyLWJvdHRvbTogMTJweCBzb2xpZCAkY29sLXN0YW5kYXJkO1xuXHRAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsKSB7XG5cdFx0aGVpZ2h0OiAzMDBweDtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdGhlaWdodDogMzgwcHg7XG5cdH1cblx0Ly8gQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSkge1xuXHQvLyBcdGhlaWdodDogNTAwcHg7XG5cdC8vIH1cblx0Ji50aGVtZS1vcmFuZ2Uge1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6ICRjb2wtb3JhbmdlO1xuXHR9XG5cdCYudGhlbWUtbGltZS1ncmVlbiB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbC1saW1lLWdyZWVuO1xuXHR9XG5cdCYudGhlbWUtY3lhbiB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbC1jeWFuO1xuXHR9XG5cdCYudGhlbWUtcGluayB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbC1waW5rO1xuXHR9XG59XG5cbi5tYWluIHtcblx0cGFkZGluZzogM3JlbSAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdCZfX2NvcHkge1xuXHRcdG1hcmdpbjogMCAwIDFlbTtcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuXHRcdFx0bWFyZ2luOiAxZW0gMDtcblx0XHR9XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRwYWRkaW5nOiA1cmVtIDA7XG5cdH1cbn1cblxuLmNvbnRlbnQge1xuXHQmLS13aXRoLXNpZGViYXIge1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA0NSU7XG5cdFx0fVxuXHR9XG5cdGgyIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXHQubm9ybWFsIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG5cdC5ib2xkIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuXHR1bCB7XG5cdFx0bGkge1xuXHRcdFx0bWFyZ2luOiAwIDAgMS41cmVtO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxLjhyZW07XG5cdFx0XHRib3JkZXItbGVmdDogNXB4IHNvbGlkICRjb2wtc3RhbmRhcmQ7XHRcdFx0XG5cdFx0fVxuXHRcdCYudGhlbWUtb3JhbmdlIHtcblx0XHRcdGxpIHtcblx0XHRcdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICRjb2wtb3JhbmdlO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnRoZW1lLWxpbWUtZ3JlZW4ge1xuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItbGVmdC1jb2xvcjogJGNvbC1saW1lLWdyZWVuO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnRoZW1lLWN5YW4ge1xuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItbGVmdC1jb2xvcjogJGNvbC1jeWFuO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmLnRoZW1lLXBpbmsge1xuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItbGVmdC1jb2xvcjogJGNvbC1waW5rO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uc2lkZWJhciB7XG5cdG1hcmdpbi10b3A6IDNyZW07XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0YmFja2dyb3VuZDogJGNvbC1zdGFuZGFyZDtcblx0Y29sb3I6ICRjb2wtd2hpdGU7XG5cdHBhZGRpbmc6IDIuNXJlbSAxLjVyZW07XG5cdCYudGhlbWUtb3JhbmdlIHtcblx0XHRiYWNrZ3JvdW5kOiAkY29sLW9yYW5nZTtcblx0fVxuXHQmLnRoZW1lLWxpbWUtZ3JlZW4ge1xuXHRcdGJhY2tncm91bmQ6ICRjb2wtbGltZS1ncmVlbjtcblx0fVxuXHQmLnRoZW1lLWN5YW4ge1xuXHRcdGJhY2tncm91bmQ6ICRjb2wtY3lhbjtcblx0fVxuXHQmLnRoZW1lLXBpbmsge1xuXHRcdGJhY2tncm91bmQ6ICRjb2wtcGluaztcblx0fVxuXHQmX19icm9jaHVyZSB7XG5cdFx0cGFkZGluZy1ib3R0b206IDJyZW07XG5cdH1cblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0d2lkdGg6IDQ1JTtcblx0XHRtYXJnaW4tdG9wOiAtNXJlbTtcblx0fVxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0cGFkZGluZzogMi41cmVtO1xuXHR9XG5cdCZfX3RpdGxlIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXHQmX19mb3JtIHtcblx0XHQmLW5vdGVzIHtcblx0XHRcdG1hcmdpbjogMnJlbSAwIDA7XG5cdFx0XHRAaW5jbHVkZSBmb250LXNpemUoMTVweCk7XG5cdFx0XHRhIHtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Jl9fdHkge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmdyZXktY3RhLWJsb2NrIHtcblx0YmFja2dyb3VuZDogJGNvbC1zdGFuZGFyZDtcblx0Y29sb3I6ICRjb2wtd2hpdGU7XG5cdHBhZGRpbmc6IDNyZW0gMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxcmVtO1xuXHRcdEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcblx0fVxufVxuXG4ubG9nb3Mge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XHRcblx0cGFkZGluZy1ib3R0b206IDJyZW07XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogM3JlbTtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0d2lkdGg6IDQwJTtcblx0fVxuXHQmX19pbWcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR3aWR0aDogMTAwcHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAycmVtO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMy41cmVtO1xuXHRcdFx0d2lkdGg6IDEyNXB4O1xuXHRcdH1cblx0XHQmLS1uby1tYXJnaW4ge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0d2lkdGg6IDEzMHB4O1xuXHRcdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdFx0d2lkdGg6IDE1NXB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZm9vdGVyIHtcblx0cGFkZGluZzogM3JlbSAwIDJyZW07XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGNvbG9yOiAkY29sLWZvb3Rlci10ZXh0O1xuXHRhIHtcblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdFx0Y29sb3I6ICRjb2wtZm9vdGVyLXRleHQ7XG5cdH1cblx0Jl9fY29weXJpZ2h0IHtcblx0XHRAaW5jbHVkZSBmb250LXNpemUoMTRweCk7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVx0XHRcblx0fVxufVxuXG4ubG9hZGVyIHtcblx0ZGlzcGxheTogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vc3RvcmFnZS5wYXJkb3QuY29tLzUwNDIyMS80OTg3MS9sb2FkaW5nLmdpZicpO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdGJvdHRvbTogMDtcbn0iXX0= */
