@charset "UTF-8";
/*------------------------------------*\
  #MODULES
\*------------------------------------*/
/*------------------------------------*\
  #COLORS
\*------------------------------------*/
.bordercolor-msh {
  border-color: #01adbb;
}

.bordercolor-striges {
  border-color: #764357;
}

.bordercolor-east {
  border-color: #ee7e67;
}

.bordercolor-americas {
  border-color: #83282b;
}

[class*=bordercolor-lieu] {
  border-color: #aaad4a;
}

.bordercolor-omam {
  border-color: #4a678b;
  color: #4a678b;
}

.bordercolor-modernitas {
  border-color: #006d6d;
}

.bordercolor-creg {
  border-color: #d95a57;
}

.bordercolor-ratio-dh {
  border-color: #a8b1dd;
}

/*------------------------------------*\
  #BREAKPOINTS
\*------------------------------------*/
/*------------------------------------*\
  #FONTS
\*------------------------------------*/
body, .ts-label, .tag__link, .publication-date, .ts-small, .ts-body, .form .input-group input, .form label, .footer .body p, .block__time, .block__excerpt, .block__subtitle, .nav__link, .body ul li:before, .body ul li, .body ol li:before, .body ol li, .body dl, .body p, .body {
  font-family: "euclid-regular", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
}

.body blockquote > blockquote p, .body blockquote > p, .body em,
.body i {
  font-family: "euclid-regular-italic", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
}

.body table th, .body dl dt, .body b,
.body strong, .ts-subtitle, .detail__intro.body p, .detail__time, .detail__subtitle, .footer .body h2, .intro__inner, .button, .pagination__link, .block__title, .hero .slide__subtitle, .body h3, .ts-title, .detail__title, .index__title, .hero .slide__title, .body h1,
.body h2 {
  font-family: "euclid-bold", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
}

.body em > b,
.body b > em,
.body i > b,
.body b > i,
.body em > strong,
.body strong > em,
.body i > strong,
.body strong > i {
  font-family: "euclid-bold-italic", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
}

/*------------------------------------*\
    #TYPESIZE/SCALE
\*------------------------------------*/
figcaption, .body code,
.body samp,
.body pre, .body small, .ts-label, .tag__link, .publication-date, .ts-small {
  font-size: 0.75rem;
  line-height: 1.4;
}

.large .tag__link, .ts-body, .form .input-group input, .form label, .footer .body p, .block__time, .block__excerpt, .block__subtitle, .nav__link, .body ul li:before, .body ul li, .body ol li:before, .body ol li, .body dl, .body p, .body {
  font-size: 1rem;
  line-height: 1.4;
}

.ts-subtitle, .detail__intro.body p, .detail__time, .detail__subtitle, .footer .body h2, .intro__inner, .button, .pagination__link, .block__title, .hero .slide__subtitle, .body h3 {
  font-size: 1.125rem;
  line-height: 1.4;
}

.ts-title, .detail__title, .index__title, .hero .slide__title, .body h1,
.body h2 {
  font-size: 2.375rem;
  line-height: 1.2;
}

/*------------------------------------*\
  #SPACING
\*------------------------------------*/
/*------------------------------------*\
  #BORDERS WIDTH
\*------------------------------------*/
/*------------------------------------*\
  #MISC
\*------------------------------------*/
*, *:before, *:after {
  box-sizing: border-box;
}

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

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, menu, nav, section, summary {
  display: block;
}

button, input {
  line-height: normal;
}

button, input, select, textarea {
  font-size: 100%;
  margin: 0;
  vertical-align: baseline;
  *vertical-align: middle;
}

button, input[type=button], input[type=reset], input[type=submit] {
  cursor: pointer;
  *overflow: visible;
}

button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto;
  vertical-align: top;
  resize: vertical;
}

@font-face {
  font-family: "euclid-regular";
  src: url("fonts/EuclidFlex.woff2") format("woff2"), url("fonts/EuclidFlex.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "euclid-regular-italic";
  src: url("fonts/EuclidFlexItalic.woff2") format("woff2"), url("fonts/EuclidFlexItalic.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "euclid-bold";
  src: url("fonts/EuclidFlexBold.woff2") format("woff2"), url("fonts/EuclidFlexBold.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "euclid-bold-ditalic";
  src: url("fonts/EuclidFlexBoldItalic.woff2") format("woff2"), url("fonts/EuclidFlexBoldItalic.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}
/*------------------------------------*\
  #MIXINS
\*------------------------------------*/
/*------------------------------------*\
  #TEXT-STYLES
\*------------------------------------*/
.ts-label, .tag__link, .publication-date {
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.ts-link, .block__link, .nav__link {
  color: #040404;
  text-decoration: none;
}
.ts-link:hover, .block__link:hover, .nav__link:hover {
  color: rgba(4, 4, 4, 0.6);
  text-decoration: none;
}

.ts-body-link, .block__excerpt a, .body a {
  color: #014a94;
  text-decoration: underline;
}
.ts-body-link:hover, .block__excerpt a:hover, .body a:hover {
  color: #014a94;
  text-decoration: underline;
}

/*------------------------------------*\
  #TITLE
\*------------------------------------*/
.body h2,
.body h3,
.body h4 {
  margin-bottom: 1em;
}
.body h2 + h3,
.body h3 + h4 {
  margin-top: 0;
}

/*------------------------------------*\
  #PARAGRAPH
\*------------------------------------*/
.body p {
  margin-bottom: 0.8em;
}

/*------------------------------------*\
  #LINK
\*------------------------------------*/
/*------------------------------------*\
  #BOLD-ITALIC
\*------------------------------------*/
/*------------------------------------*\
  #BLOCKQUOTE
\*------------------------------------*/
.body blockquote {
  padding-left: 1em;
  border-left: 1px solid #040404;
  margin-top: 1em;
}
/*------------------------------------*\
  #DEFINITIONS
\*------------------------------------*/
.body dl dt {
  padding-bottom: 0.3em;
}
.body dl dt:first-of-type {
  padding-top: 0.6em;
  border-top: 1px solid #040404;
}
.body dl dd {
  padding-bottom: 0.6em;
  margin-bottom: 0.6em;
  border-bottom: 1px #040404 solid;
}

/*------------------------------------*\
  #LISTS
\*------------------------------------*/
.body ol {
  counter-reset: li;
}
.body ol li {
  position: relative;
  padding-left: 1.2em;
  margin-bottom: 0.5em;
}
.body ol li:before {
  content: counter(li);
  counter-increment: li;
  position: absolute;
  left: 0;
  color: rgba(4, 4, 4, 0.5);
}
.body ol ol > li:first-of-type {
  margin-top: 0.5em;
}

.body ul li {
  position: relative;
  padding-left: 1.2em;
  margin-bottom: 0.5em;
}
.body ul li:before {
  content: "•";
  position: absolute;
  left: 0;
  font-size: 1em;
}
.body ul ol > li:first-of-type {
  margin-top: 0.5em;
}

/*------------------------------------*\
  #TABLE
\*------------------------------------*/
.body table {
  width: 100%;
}
.body table thead {
  border-bottom: 5px solid #040404;
}
.body table th {
  text-align: left;
}
.body table tbody tr:nth-child(odd) {
  background-color: rgba(4, 4, 4, 0.1);
}
.body table tfoot {
  border-top: 5px solid #040404;
}
.body table th,
.body table td {
  padding: 0.5em 0;
}
@media (max-width: 767px) {
  .body table th,
  .body table td {
    display: block;
  }
}

/*------------------------------------*\
  #SPACING
\*------------------------------------*/
.body p + h1,
.body ul + h1,
.body ol + h1,
.body blockquote + h1,
.body figure + h1,
.body p + h2,
.body ul + h2,
.body ol + h2,
.body blockquote + h2,
.body figure + h2,
.body p + h3,
.body ul + h3,
.body ol + h3,
.body blockquote + h3,
.body figure + h3,
.body p + h4,
.body ul + h4,
.body ol + h4,
.body blockquote + h4,
.body figure + h4,
.body p + h5,
.body ul + h5,
.body ol + h5,
.body blockquote + h5,
.body figure + h5,
.body p + h6,
.body ul + h6,
.body ol + h6,
.body blockquote + h6,
.body figure + h6 {
  margin-top: 0.6em;
}
.body ul,
.body ol,
.body .embed-container {
  margin-bottom: 1em;
}

/*------------------------------------*\
  #MISC
\*------------------------------------*/
.body ol,
.body ul {
  list-style: none;
}
.body sub,
.body sup {
  font-size: 0.75em;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
.body sup {
  top: -0.5em;
}
.body sub {
  bottom: -0.25em;
}
.body abbr {
  border-bottom: 1px dotted #040404;
  cursor: help;
}
.body q:before,
.body cite:before {
  content: '"';
}
.body q:after,
.body cite:after {
  content: '"';
}
.body mark {
  background-color: rgba(4, 4, 4, 0.6);
  color: #040404;
}
.body code,
.body samp,
.body pre {
  font-family: monospace;
}
.body hr {
  background: #040404;
  height: 1px;
  border: none;
  margin: 1.667rem 0;
}

/*------------------------------------*\
  #MEDIA
\*------------------------------------*/
.body .block__image {
  margin: 2.222rem auto;
  width: 66%;
}
@media (max-width: 767px) {
  .body .block__image {
    width: 75%;
  }
}
.body .block__image.small {
  width: 120px;
  margin: 2.222rem 0 2.222rem;
}
.body .block__image.large {
  width: 100%;
}

/*------------------------------------*\
  #MEDIAS
\*------------------------------------*/
img,
video,
object {
  max-width: 100%;
  height: auto;
}

img {
  display: block;
}

img.image-lazy {
  width: 100%;
}
img.image-lazy:not(.lazyloaded) {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}
img.image-lazy.lazyloaded {
  opacity: 1;
  transition: opacity 1s ease-in-out;
}

figcaption {
  margin-top: 0.556rem;
}

.embed-container video {
  width: 100%;
  max-width: 800px;
  height: auto;
}

/*------------------------------------*\
  #MISC
\*------------------------------------*/
.hidden {
  display: none !important;
}

@media (max-width: 1099px) {
  .hidden-small {
    display: none !important;
  }
}

@media (min-width: 1100px) {
  .hidden-large {
    display: none !important;
  }
}

.nav__list {
  list-style: none;
}

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

/*------------------------------------*\
  #GLOBAL
\*------------------------------------*/
.wrapper {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.wrapper .footer {
  margin-top: auto;
}

.layout--indexhibit, .detail__inner, .index, .footer, .header__inner {
  width: 100%;
  padding-left: 5%;
  padding-right: 5%;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
}

/*------------------------------------*\
  #EXTERNAL
\*------------------------------------*/
/*------------------------------------*\
  #PARTIALS
\*------------------------------------*/
/*------------------------------------*\
  #HEADER
\*------------------------------------*/
.header {
  border-top: #01adbb 5px solid;
  background-color: #fbfaf7;
  border-bottom: #cbcbcb 1px solid;
  padding: 1.111rem 0 1.111rem 0;
  position: sticky;
  top: 0;
  z-index: 2;
}

.header-detail {
  padding-top: 3.333rem;
}
.header-detail .detail__title {
  margin-bottom: 0;
}

.header__inner {
  position: relative;
}

.logo__link {
  display: block;
  width: 200px;
}

.logo__img {
  display: block;
  width: 100%;
  height: auto;
}

.icon {
  display: block;
  width: 20px;
  height: 20px;
  background-size: 100% !important;
}
.icon.icon--search {
  background: url("../../assets/front/images/icon-search.svg") center center no-repeat;
}
.icon.icon--menu {
  background: url("../../assets/front/images/icon-menu.svg") center center no-repeat;
}
.icon .icon-text {
  display: none;
}

@media (min-width: 1100px) {
  .menu {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
  }
  .icon--menu {
    display: none;
  }
}
@media (max-width: 1099px) {
  .menu {
    display: none;
  }
}
.icon--menu {
  position: absolute;
  top: 15px;
  right: 5%;
  cursor: pointer;
}

/*------------------------------------*\
  #NAV
\*------------------------------------*/
@media (min-width: 1100px) {
  .nav .nav__item {
    display: inline-block;
  }
  .nav__item:not(:last-child) {
    margin-right: 1.111rem;
  }
}
.nav--secondary {
  padding: 1.111rem 0 1.111rem 0;
}
.nav--secondary .nav__item {
  border-top: 1px solid #cbcbcb;
}
.nav--secondary .nav__item:last-child {
  border-bottom: 1px solid #cbcbcb;
}
@media (min-width: 1100px) {
  .nav--secondary .nav__item {
    margin-right: 0;
  }
}
.nav--secondary .nav__link {
  display: block;
  padding-top: 0.556rem;
  padding-bottom: 0.556rem;
}
.nav--secondary .is-active {
  border-left: 5px solid #01adbb;
  padding-left: 0.5em;
}

@media (max-width: 1099px) {
  .nav--primary {
    margin-top: 1.111rem;
    margin-bottom: 1.111rem;
  }
  .nav--primary .nav__item:not(:last-child) {
    padding-bottom: 0.556rem;
    border-bottom: 1px solid #cbcbcb;
    margin-bottom: 0.556rem;
  }
}
.nav--lang .nav__link:not(.is-active) {
  color: #cbcbcb;
}
.nav--lang .nav__link:not(.is-active):hover {
  color: #040404;
}

.tools .nav,
.tools .nav__item,
.tools .icon--search {
  display: inline-block;
}
.tools .nav__item {
  margin-right: 0.556rem;
}

@media (min-width: 1100px) {
  .nav--primary .nav__link {
    position: relative;
    display: block;
  }
  .nav--primary .nav__link:hover {
    color: #040404;
  }
  .nav--primary .nav__link:hover:after, .nav--primary .nav__link.is-active:after {
    content: "";
    width: 100%;
    height: 5px;
    background-color: #01adbb;
    display: block;
    position: absolute;
    left: 0;
    top: 3.1em;
  }
}

/*------------------------------------*\
  #HERO
\*------------------------------------*/
.hero {
  height: 75vh;
  max-height: 500px;
  width: 100vw;
  position: relative;
  overflow: hidden;
  position: relative;
  border-bottom: 1px solid #cbcbcb;
}
@media (max-width: 767px) {
  .hero {
    max-height: 66vh;
  }
}
.hero .carousel__item {
  display: flex;
  height: 100%;
  width: 100%;
}
.hero .carousel__left,
.hero .carousel__right {
  width: 50%;
}
.hero .carousel__left .block__media {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  width: 100%;
  height: 100%;
  padding: 8vh 12vw;
}
@media (max-width: 1023px) {
  .hero .carousel__left .block__media {
    padding: 15%;
  }
}
.hero .carousel__left img {
  display: block;
  background-color: #e3e3e3;
  margin: 0 auto;
  padding: 0;
  box-shadow: 0 2px 24px 0 rgba(4, 4, 4, 0.5);
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center;
     object-position: center;
}
.hero .carousel__right {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 1023px) {
  .hero .carousel__right {
    flex-basis: 66%;
  }
}
.hero .carousel__right .slide {
  margin: 5% 50px 5% 5%;
}
.hero .slide__title {
  text-decoration: none;
  margin-bottom: 1.111rem;
  color: #040404;
}
@media (max-width: 767px) {
  .hero .slide__title {
    font-size: 1rem;
  }
}
.hero .slide__subtitle {
  display: inline-block;
  text-decoration: none;
  padding-bottom: 0.1em;
  margin-bottom: 0.556rem;
  border-bottom-width: 4px;
  border-bottom-style: solid;
  color: #040404;
}
.hero .slide__link {
  text-decoration: none;
  color: #040404;
}
.hero .carousel__item.color-centre-de-theorie-politique .carousel__left {
  background-color: #cbcbcb;
}

/*------------------------------------*\
  #BLOCK
\*------------------------------------*/
.block__inner {
  background-color: #ffffff;
  border: 1px solid #cbcbcb;
  overflow: auto;
}

.block__section {
  position: relative;
}

.block__text,
.block__info {
  padding-left: 1.111rem;
  padding-right: 1.111rem;
}

.block__text {
  padding-top: 1.111rem;
  padding-bottom: 1.111rem;
}

.block__title + .block__excerpt, .block__subtitle + .block__excerpt {
  margin-top: 0.556rem;
}
.block__content.js-content {
  margin-top: 0.556rem;
}

.block__time {
  margin-bottom: 0.556rem;
}

.block__info {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
}
.block__info .publication-date {
  margin-bottom: 1.111rem;
}

.block__media > picture {
  display: block;
}

@media (min-width: 768px) {
  .block--publication .block__link {
    display: flex;
  }
  .block--publication .block__link .block__media {
    width: 40%;
  }
  .block--publication .block__link .block__text {
    width: 60%;
  }
}
.block--publication .block__link .block__media {
  padding: 1.111rem 0 1.111rem 1.111rem;
}
@media (max-width: 767px) {
  .block--publication .block__link .block__media {
    width: 25%;
    float: left;
    margin-right: 1.111rem;
  }
}
.block--publication .block__link .block__media picture {
  box-shadow: 3px 3px 0 rgba(4, 4, 4, 0.15);
}

/*------------------------------------*\
  #BLOCK-EVENT
\*------------------------------------*/
.block--event .block__media {
  padding: 1.111rem;
  justify-content: center;
}
@media (max-width: 767px) {
  .block--event .block__media {
    padding: 2.222rem;
  }
}
.block--event .block__media picture {
  display: flex;
  justify-content: center;
}
.block--event .block__media img {
  box-shadow: 0 2px 24px 0 rgba(4, 4, 4, 0.5);
  -o-object-fit: fill !important;
     object-fit: fill !important;
  -o-object-position: center !important;
     object-position: center !important;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 200px;
}

.block--event .block__media.color-msh {
  background-color: #01adbb;
}
.block--event .block__media.color-lieu {
  background-color: #aaad4a;
}
.block--event .block__media.color-striges {
  background-color: #764357;
}
.block--event .block__media.color-omam {
  background-color: #4a678b;
}
.block--event .block__media.color-east {
  background-color: #ee7e67;
}
.block--event .block__media.color-americas {
  background-color: #83282b;
}
.block--event .block__media.color-modernitas {
  background-color: #006d6d;
}
.block--event .block__media.color-creg {
  background-color: #d95a57;
}
.block--event .block__media.color-ratio-dh {
  background-color: #a8b1dd;
}

@media (min-width: 768px) {
  .block--event .block__inner {
    display: flex;
  }
  .block--event .block__inner .block__section:first-child {
    width: 25%;
  }
  .block--event .block__inner .block__section:first-child .block__link,
  .block--event .block__inner .block__section:first-child .block__media {
    width: 100%;
    height: 100%;
    display: block;
    display: flex;
  }
  .block--event .block__inner .block__section:first-child img {
    display: block;
    align-self: center;
  }
  .block--event .block__inner .block__section:last-child {
    width: 80%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}
/*------------------------------------*\
  #BLOCK-TEAM
\*------------------------------------*/
@media (min-width: 768px) {
  .block--team-primary .block__link,
  .block--team-secondary .block__inner {
    display: flex;
  }
  .block--team-primary .block__link .block__media,
  .block--team-secondary .block__inner .block__media {
    width: 20%;
  }
  .block--team-primary .block__link .block__text,
  .block--team-secondary .block__inner .block__text {
    width: 80%;
  }
}
.block--team-primary .block__link .block__media,
.block--team-secondary .block__inner .block__media {
  padding: 1.111rem 0 1.111rem 1.111rem;
}
@media (max-width: 767px) {
  .block--team-primary .block__link .block__media,
  .block--team-secondary .block__inner .block__media {
    width: 20%;
    float: left;
    margin-right: 1.111rem;
    padding-bottom: 0;
  }
}

.block--team-secondary .block__inner .block__content {
  margin-bottom: 1.111rem;
}
.block--team-secondary .block__inner .button, .block--team-secondary .block__inner .pagination__link {
  margin-left: 0;
  margin-top: 0.556rem;
  margin-bottom: 1.111rem;
}
@media (min-width: 768px) {
  .block--team-secondary .block__inner {
    display: flex;
  }
  .block--team-secondary .block__inner .block__media {
    width: 10%;
  }
  .block--team-secondary .block__inner .block__text {
    width: 90%;
  }
}

/*------------------------------------*\
  #BLOCK-MEMBER
\*------------------------------------*/
.block--member .block__media {
  float: left;
  padding: 1.111rem;
}

.block--member .block__media img,
.detail--member .detail__media img {
  border-radius: 50%;
  width: 120px !important;
}

.index--sm .block--member .block__inner,
.index--sm .block--member .block__link {
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .index--sm .block--member .block__inner,
  .index--sm .block--member .block__link {
    flex-wrap: wrap;
  }
}
.index--sm .block--member .block__excerpt {
  display: none;
}
@media (min-width: 768px) {
  .index--sm .block--member .block__info {
    margin-left: auto;
  }
}
.index--sm .block--member .block__info .tags {
  margin-top: 0.556rem;
}
.index--sm .block--member .block__media {
  float: none;
  padding-bottom: 1.111rem;
}
@media (max-width: 767px) {
  .index--sm .block--member .block__media {
    display: none;
  }
}
.index--sm .block--member .block__media img {
  height: 2rem !important;
  width: auto !important;
}

/*------------------------------------*\
  #BUTTON
\*------------------------------------*/
.button, .pagination__link {
  background: none;
  border: none;
  padding: 0;
  display: inline-block;
  color: #040404;
  text-decoration: none;
  padding-bottom: 0.3em;
  border-bottom: 1px solid #040404;
}

/*------------------------------------*\
  #TAGS
\*------------------------------------*/
.tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
}

.tag {
  margin-right: 0.556rem;
  margin-bottom: 0.556rem;
}

.tag__link {
  display: block;
  background-color: #cbcbcb;
  color: #ffffff;
  text-decoration: none;
  padding: 0.2em 0.5em;
  border-radius: 3px;
  border: 1px solid transparent;
}
.tag__link:hover {
  background-color: #fbfaf7 !important;
  color: #040404;
  border-color: #cbcbcb;
}
.large .tag__link {
  padding: 0.4em 0.8em;
  border-radius: 6px;
}
@media (max-width: 1023px) {
  .large .tag__link {
    padding: 0.2em 0.5em;
    border-radius: 3px;
    font-size: 0.75rem;
    line-height: 1.4;
  }
}

[class*=msh] .tag__link,
[class*=msh] .carousel__left {
  background-color: #01adbb;
}
[class*=lieu] .tag__link,
[class*=lieu] .carousel__left {
  background-color: #aaad4a;
}
[class*=striges] .tag__link,
[class*=striges] .carousel__left {
  background-color: #764357;
}
[class*=omam] .tag__link,
[class*=omam] .carousel__left {
  background-color: #4a678b;
}
[class*=east] .tag__link,
[class*=east] .carousel__left {
  background-color: #ee7e67;
}
[class*=americas] .tag__link,
[class*=americas] .carousel__left {
  background-color: #83282b;
}
[class*=modernitas] .tag__link,
[class*=modernitas] .carousel__left {
  background-color: #006d6d;
}
[class*=creg] .tag__link,
[class*=creg] .carousel__left {
  background-color: #d95a57;
}
[class*=ratio-dh] .tag__link,
[class*=ratio-dh] .carousel__left {
  background-color: #a8b1dd;
}

/*------------------------------------*\
  #INTRO
\*------------------------------------*/
.intro {
  padding-top: 2.222rem;
  padding-bottom: 3.333rem;
}

/*------------------------------------*\
  #PAGINATION
\*------------------------------------*/
.pagination {
  width: 100%;
  margin-top: 1.667rem;
}

@media (min-width: 768px) {
  .pagination__list {
    display: flex;
    justify-content: space-between;
  }
}

.pagination__list li {
  list-style-type: none;
}

.pagination__link {
  margin-left: 0 !important;
  margin-right: 0 !important;
  margin-bottom: 0.556rem;
}

/*------------------------------------*\
  #FOOTEr
\*------------------------------------*/
.footer {
  border-top: 1px solid #cbcbcb;
}

.footer__inner {
  width: calc(100% + 15px);
  margin-left: -15px;
  padding-top: 1.667rem;
  padding-bottom: 0;
}
@media (min-width: 768px) {
  .footer__inner {
    display: flex;
  }
}

.footer__section {
  padding-left: 15px;
  padding-right: 15px;
  margin-bottom: 1.667rem;
  width: 100%;
}
@media (min-width: 768px) {
  .footer__section {
    width: 33.3333333333%;
  }
}

.footer .body h2 {
  margin-bottom: 0.3em;
}
/*------------------------------------*\
  #FORM
\*------------------------------------*/
.form label {
  display: block;
  margin-bottom: 0.556rem;
}
.form .input-group {
  position: relative;
  border: 1px solid #cbcbcb;
  width: 750px;
  max-width: 100%;
}
.form .input-group input,
.form .input-group button {
  border: none;
  height: 45px;
}
.form .input-group input {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 0.556rem 0.556rem;
}
.form .input-group button {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  font-size: 0;
  width: 40px;
  background: url("images/icon-check.svg") no-repeat center center;
}
.form .input-group button:hover {
  opacity: 0.5;
}

.no-touchevents .form button:hover {
  opacity: 0.5;
}

/*! Flickity v2.3.0
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled {
  position: relative;
}

.flickity-enabled:focus {
  outline: 0;
}

.flickity-viewport {
  overflow: hidden;
  position: relative;
  height: 100%;
}

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%;
}

.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.flickity-enabled.is-draggable .flickity-viewport {
  cursor: move;
  cursor: grab;
}

.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: grabbing;
}

.flickity-button {
  position: absolute;
  border: none;
  color: #333;
  box-shadow: 0 2px 24px 0 rgba(4, 4, 4, 0.5);
}

.flickity-button:hover {
  background: #fbfaf7;
  cursor: pointer;
}

.flickity-button:focus {
  outline: 0;
}

.flickity-button:active {
  opacity: 0.6;
}

.flickity-button:disabled {
  opacity: 0.3;
  cursor: auto;
  pointer-events: none;
}

.flickity-button-icon {
  fill: currentColor;
}

.flickity-prev-next-button {
  top: 50%;
  width: 44px;
  height: 44px;
  border-radius: 3px;
  transform: translateY(-50%);
}
@media (max-width: 1023px) {
  .flickity-prev-next-button {
    width: 30px;
    height: 30px;
  }
}

.flickity-prev-next-button.previous {
  left: 10px;
}

.flickity-prev-next-button.next {
  right: 10px;
}

.flickity-rtl .flickity-prev-next-button.previous {
  left: auto;
  right: 10px;
}

.flickity-rtl .flickity-prev-next-button.next {
  right: auto;
  left: 10px;
}

.flickity-prev-next-button .flickity-button-icon {
  position: absolute;
  left: 20%;
  top: 20%;
  width: 60%;
  height: 60%;
}

.flickity-page-dots {
  position: absolute;
  width: 100%;
  bottom: -25px;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
  line-height: 1;
}

.flickity-rtl .flickity-page-dots {
  direction: rtl;
}

.flickity-page-dots .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 8px;
  background: #333;
  border-radius: 50%;
  opacity: 0.25;
  cursor: pointer;
}

.flickity-page-dots .dot.is-selected {
  opacity: 1;
}

/*------------------------------------*\
  #INDEX
\*------------------------------------*/
.index {
  padding-top: 3.333rem;
  padding-bottom: 3.333rem;
  border-bottom: 1px solid #cbcbcb;
}

.index__title + .index__content {
  margin-top: 3.333rem;
}

.index__title + .nav {
  margin-top: 1.111rem;
  margin-bottom: 3.333rem;
}

.nav--years .is-active {
  border-bottom: 1px solid #01adbb;
}

.index .button, .index .pagination__link {
  display: table;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0.556rem;
}

.index__title + .button, .index__title + .pagination__link {
  margin-bottom: 2.222rem;
  margin-left: 0;
}

.index__content {
  width: calc(100% + 30px);
  margin-left: -15px;
  display: flex;
  flex-wrap: wrap;
}
.index__content .block {
  padding-left: 15px;
  padding-right: 15px;
  margin-bottom: 1.667rem;
  width: 100%;
}

.index--empty .intro {
  padding-bottom: 0;
}

@media (min-width: 768px) {
  .index--events:not(.index--sm) .block,
  .index--teams:not(.index--sm) .block,
  .index--members:not(.index--sm) .block {
    width: 50%;
  }
}

@media (min-width: 768px) {
  .index--news:not(.index--sm) .block,
  .index--videos:not(.index--sm) .block,
  .index--publications:not(.index--sm) .block {
    width: 33.3333333333%;
  }
}

.index--teams .intro {
  border: none;
}

/*------------------------------------*\
  #INDEX-SMALL
\*------------------------------------*/
@media (min-width: 768px) {
  .index--sm .block {
    margin-bottom: 0.556rem;
  }
}

.index--sm .block--event .block__section:first-child {
  display: none;
}
@media (min-width: 768px) {
  .index--sm .block--event .block__section:last-child {
    width: 100% !important;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
  }
  .index--sm .block--event .block__section:last-child .block__text {
    display: flex;
    align-items: baseline;
  }
  .index--sm .block--event .block__section:last-child .block__time {
    margin-bottom: 0;
    order: 3;
    margin-left: 0.556rem;
  }
  .index--sm .block--event .block__section:last-child .publication-date {
    display: none;
  }
}

.index--sm .index__title {
  margin-bottom: 0.556rem;
}

/*------------------------------------*\
  #DETAIL
\*------------------------------------*/
.detail {
  padding-top: 3.333rem;
  padding-bottom: 3.333rem;
}

.detail__inner {
  max-width: 1500px;
}
@media (min-width: 768px) {
  .detail__inner {
    display: flex;
  }
  .detail__inner .detail__text,
  .detail__inner .detail__media {
    flex-grow: 1;
  }
  .detail__inner .detail__text {
    width: 65%;
  }
  .detail__inner .detail__media {
    width: 35%;
  }
  .detail__inner .text__inner,
  .detail__inner .detail__media {
    padding-left: 30px;
    padding-right: 30px;
  }
}

.text__inner {
  max-width: 750px;
  padding-top: 0;
  padding-bottom: 3.333rem;
  background-color: #ffffff;
}
@media (max-width: 767px) {
  .text__inner {
    padding-left: 30px;
    padding-right: 30px;
  }
}

.detail__title {
  padding-top: 0.556rem;
  margin-bottom: 1.111rem;
}

.detail__subtitle {
  margin-bottom: 1.111rem;
}
.detail__title + .detail__subtitle {
  margin-top: -1.111rem;
}

.detail__title + .detail__intro {
  margin-top: -0.556rem;
}

.detail__time {
  margin-bottom: 1.111rem;
}
.detail__title + .detail__time {
  margin-top: -0.556rem;
}

@media (max-width: 767px) {
  .detail__media {
    margin-top: 2.222rem;
  }
}
.detail__media .gallery__item + .gallery__item {
  margin-top: 1.111rem;
}
.detail__media > picture {
  display: block;
}

.detail__featured-img img {
  width: 120px !important;
}
@media (max-width: 767px) {
  .detail__featured-img {
    margin-bottom: 2.222rem;
  }
  .detail__featured-img img {
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 768px) {
  .detail__featured-img {
    float: left;
    padding-right: 1.111rem;
    padding-bottom: 1.111rem;
  }
}

.detail .publication-date {
  display: block;
  padding-top: 1.667rem;
}
.detail .publication-date + .detail__title {
  margin-top: 0.556rem;
}
.detail .tags {
  margin-bottom: 1.667rem;
}

.detail--member .detail__inner {
  justify-content: center !important;
}
.detail--member .detail__text {
  flex-grow: 0;
  order: 2;
}
.detail--member .detail__media {
  max-width: 200px;
  order: 1;
}

/*------------------------------------*\
  #PAGE
\*------------------------------------*/
/*------------------------------------*\
  #SEARCH
\*------------------------------------*/
.form--search {
  margin-top: 3.333rem;
}
.form--search .input-group {
  margin-left: auto;
  margin-right: auto;
}

/*------------------------------------*\
  #LAYOUT-INDEXHIBIT
\*------------------------------------*/
.layout--indexhibit section:last-of-type {
  border-bottom: none;
}
@media (min-width: 768px) {
  .layout--indexhibit {
    display: flex;
  }
  .layout--indexhibit .col1 {
    flex: 0 0 200px;
    margin-right: 30px;
  }
  .layout--indexhibit .col1 .nav__item {
    display: block;
  }
  .layout--indexhibit .col2 {
    width: 100%;
  }
  .layout--indexhibit .header-detail {
    position: sticky;
    top: 4.444rem;
    padding-bottom: 2.222rem;
  }
}

/*------------------------------------*\
  #BASE-STYLES
\*------------------------------------*/
html {
  font-size: 16px;
}
@media (max-width: 767px) {
  html {
    font-size: 16px;
  }
}

body {
  background: #fbfaf7;
  color: #040404;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body ::-moz-selection {
  background-color: rgba(4, 4, 4, 0.2);
  color: #040404;
}
body ::selection {
  background-color: rgba(4, 4, 4, 0.2);
  color: #040404;
}

/*------------------------------------*\
  #PRINT
\*------------------------------------*/
/*------------------------------------*\
  #PRINT STYLE
\*------------------------------------*/
@media print {
  html {
    font-size: 14px;
  }
  @page {
    margin: 2cm 2.5cm;
  }
  body {
    font-family: Georgia, Times, Times New Roman, serif;
    font-size: 16pt;
    line-height: 22pt;
    color: #000000;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  ul,
  ol {
    font-family: Georgia, Times, Times New Roman, serif;
    font-style: normal;
    font-variant: normal;
    font-weight: 400;
  }
  h1 {
    font-size: 32pt;
    line-height: 40pt;
  }
  h2 {
    font-size: 24pt;
    line-height: 30pt;
  }
  h3 {
    font-size: 20pt;
    line-height: 26pt;
  }
  h4 {
    font-size: 14pt;
    line-height: 20pt;
  }
  p,
  ul,
  ol,
  blockquote {
    font-size: 11pt;
    line-height: 16pt;
  }
  blockquote {
    text-align: center;
  }
  small {
    font-size: 9pt;
    line-height: 14pt;
  }
  p {
    page-break-inside: avoid;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    page-break-after: avoid;
  }
  hr {
    border: 0;
    height: 1px;
    background-color: #040404;
    margin: 0.3cm 0;
  }
  .article {
    width: 100%;
    height: auto !important;
    margin: 0;
    display: block;
    padding: 0;
    overflow: visible;
    box-shadow: none;
  }
  .header,
  .footer,
  .section.print {
    display: none !important;
  }
  body {
    background: #fff !important;
    color: #000;
  }
  .body p {
    widows: 3;
    orphans: 3;
  }
  .body a {
    page-break-inside: avoid;
  }
  .body blockquote {
    page-break-inside: avoid;
  }
  .body h1, .body h2, .body h3, .body h4, .body h5, .body h6 {
    page-break-after: avoid;
    page-break-inside: avoid;
  }
  .body img {
    page-break-inside: avoid;
    page-break-after: avoid;
  }
  .body table, .body pre {
    page-break-inside: avoid;
  }
  .body ul, .body ol, .body dl {
    page-break-before: avoid;
  }
  .body a:link, .body a:visited, .body a {
    background: transparent;
    color: #2C51DF;
    font-weight: bold;
    text-decoration: underline;
    text-align: left;
  }
  .body a[href^=http]:after {
    content: " <" attr(href) "> ";
  }
  .body article a[href^="#"]:after {
    content: "";
  }
  .body a:not(:local-link):after {
    content: " <" attr(href) "> ";
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmVlbi5jc3MiLCJzY3JlZW4uc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsInV0aWxzL19yZXNldC5zY3NzIiwidXRpbHMvX2ZvbnRzLnNjc3MiLCJ1dGlscy9fbWl4aW5zLnNjc3MiLCJ1dGlscy9fdHlwb2dyYXBoeS5zY3NzIiwidXRpbHMvX2luY2x1ZGUtbWVkaWEuc2NzcyIsInV0aWxzL19tZWRpYXMuc2NzcyIsInV0aWxzL19taXNjLnNjc3MiLCJ1dGlscy9fZ2xvYmFsLnNjc3MiLCJjb21wb25lbnRzL19oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvX25hdi5zY3NzIiwiY29tcG9uZW50cy9faGVyby5zY3NzIiwiY29tcG9uZW50cy9fYmxvY2suc2NzcyIsImNvbXBvbmVudHMvX2Jsb2NrLWV2ZW50LnNjc3MiLCJjb21wb25lbnRzL19ibG9jay10ZWFtLnNjc3MiLCJjb21wb25lbnRzL19ibG9jay1tZW1iZXIuc2NzcyIsImNvbXBvbmVudHMvX2J1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9fdGFncy5zY3NzIiwiY29tcG9uZW50cy9faW50cm8uc2NzcyIsImNvbXBvbmVudHMvX3BhZ2luYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fZm9ybS5zY3NzIiwiY29tcG9uZW50cy9fZmxpY2tpdHkuc2NzcyIsInRlbXBsYXRlcy9faW5kZXguc2NzcyIsInRlbXBsYXRlcy9faW5kZXgtc20uc2NzcyIsInRlbXBsYXRlcy9fZGV0YWlsLnNjc3MiLCJ0ZW1wbGF0ZXMvX3BhZ2Uuc2NzcyIsInRlbXBsYXRlcy9fc2VhcmNoLnNjc3MiLCJ0ZW1wbGF0ZXMvX2xheW91dC1pbmRleGhpYml0LnNjc3MiLCJ1dGlscy9fcHJpbnQtc3R5bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7O3VDQUFBO0FDQUE7O3VDQUFBO0FBb0JBO0VBQ0kscUJBWFE7QUZEWjs7QUVjQTtFQUNJLHFC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Q0EscUJBQUE7RTFCKzdDSjtFMEI5N0NJO0lBQ0UsYUFBQTtJQUNBLHFCQUFBO0UxQmc4Q047RTBCOTdDSTtJQUNFLGdCQUFBO0lBQ0EsUUFBQTtJQUNBLHFCeEJrSEs7RUY4MENYO0UwQjk3Q0k7SUFDRSxhQUFBO0UxQmc4Q047QUFDRjs7QTBCMzdDQTtFQUNFLHVCeEJ3R1c7QUZzMUNiOztBMkJsK0NBOzt1Q0FBQTtBQUlBO0VBQ0kscUJ6Qm1JUztFeUJsSVQsd0J6QmtJUztBRmsyQ2I7O0EyQmorQ0E7RUFFSSxpQkFBQTtBM0JtK0NKO0FPMTNCUTtFb0IzbUJSO0lBS1EsYUFBQTtFM0JvK0NOO0UyQm4rQ007O0lBRUksWUFBQTtFM0JxK0NWO0UyQm4rQ007SUFDSSxVQUFBO0UzQnErQ1Y7RTJCbitDTTtJQUNJLFVBQUE7RTNCcStDVjtFMkJuK0NNOztJQUVJLGtCekJ5Q1E7SXlCeENSLG1CekJ3Q1E7RUY2N0NsQjtBQUNGOztBMkJqK0NBO0VBQ0ksZ0J6QndIZ0I7RXlCdkhoQixjQUFBO0VBQ0Esd0J6Qm9HUztFeUJuR1QseUJ6QmhDSTtBRm9nRFI7QU9yNUJRO0VvQm5sQlI7SUFNUSxrQnpCNkJZO0l5QjVCWixtQnpCNEJZO0VGMDhDbEI7QUFDRjs7QTJCbitDQTtFQUVJLHFCekI4RlM7RXlCN0ZULHVCekI0RlM7QUZ5NENiOztBMkJuK0NBO0VBRUksdUJ6QndGUztBRjY0Q2I7QTJCcCtDSTtFQUNJLHFCQUFBO0EzQnMrQ1I7O0EyQm4rQ0E7RUFDSSxxQkFBQTtBM0JzK0NKOztBMkJwK0NBO0VBRUksdUJ6QjhFUztBRnc1Q2I7QTJCcitDSTtFQUNJLHFCQUFBO0EzQnUrQ1I7O0FPbDdCUTtFb0JqakJSO0lBRVEsb0J6Qm9FSztFRms2Q1g7QUFDRjtBMkJyK0NJO0VBQ0ksb0J6Qm1FSztBRm82Q2I7QTJCcitDSTtFQUNJLGNBQUE7QTNCdStDUjs7QTJCLzlDSTtFQUNJLHVCQUFBO0EzQmsrQ1I7QU9sOEJRO0VvQmxpQlI7SUFLUSx1QnpCa0RLO0VGaTdDWDtFMkJsK0NNO0lBQ0ksaUJBQUE7SUFD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LGlCQUFBO0lBQ0EsMEJBQUE7SUFDQSxnQkFBQTtFL0J3ckRKO0UrQnRyREU7SUFBcUIsNkJBQUE7RS9CeXJEdkI7RStCeHJERTtJQUE2QixXQUFBO0UvQjJyRC9CO0UrQjFyREU7SUFBMEIsNkJBQUE7RS9CNnJENUI7QUFDRiIsImZpbGUiOiJzY3JlZW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI01PRFVMRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQ09MT1JTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJvcmRlcmNvbG9yLW1zaCB7XG4gIGJvcmRlci1jb2xvcjogIzAxYWRiYjtcbn1cblxuLmJvcmRlcmNvbG9yLXN0cmlnZXMge1xuICBib3JkZXItY29sb3I6ICM3NjQzNTc7XG59XG5cbi5ib3JkZXJjb2xvci1lYXN0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZWU3ZTY3O1xufVxuXG4uYm9yZGVyY29sb3ItYW1lcmljYXMge1xuICBib3JkZXItY29sb3I6ICM4MzI4MmI7XG59XG5cbltjbGFzcyo9Ym9yZGVyY29sb3ItbGlldV0ge1xuICBib3JkZXItY29sb3I6ICNhYWFkNGE7XG59XG5cbi5ib3JkZXJjb2xvci1vbWFtIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGE2NzhiO1xuICBjb2xvcjogIzRhNjc4Yjtcbn1cblxuLmJvcmRlcmNvbG9yLW1vZGVybml0YXMge1xuICBib3JkZXItY29sb3I6ICMwMDZkNmQ7XG59XG5cbi5ib3JkZXJjb2xvci1jcmVnIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDk1YTU3O1xufVxuXG4uYm9yZGVyY29sb3ItcmF0aW8tZGgge1xuICBib3JkZXItY29sb3I6ICNhOGIxZGQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCUkVBS1BPSU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNGT05UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmJvZHksIC50cy1sYWJlbCwgLnRhZ19fbGluaywgLnB1YmxpY2F0aW9uLWRhdGUsIC50cy1zbWFsbCwgLnRzLWJvZHksIC5mb3JtIC5pbnB1dC1ncm91cCBpbnB1dCwgLmZvcm0gbGFiZWwsIC5mb290ZXIgLmJvZHkgcCwgLmJsb2NrX190aW1lLCAuYmxvY2tfX2V4Y2VycHQsIC5ibG9ja19fc3VidGl0bGUsIC5uYXZfX2xpbmssIC5ib2R5IHVsIGxpOmJlZm9yZSwgLmJvZHkgdWwgbGksIC5ib2R5IG9sIGxpOmJlZm9yZSwgLmJvZHkgb2wgbGksIC5ib2R5IGRsLCAuYm9keSBwLCAuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcImV1Y2xpZC1yZWd1bGFyXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmJvZHkgYmxvY2txdW90ZSA+IGJsb2NrcXVvdGUgcCwgLmJvZHkgYmxvY2txdW90ZSA+IHAsIC5ib2R5IGVtLFxuLmJvZHkgaSB7XG4gIGZvbnQtZmFtaWx5OiBcImV1Y2xpZC1yZWd1bGFyLWl0YWxpY1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5ib2R5IHRhYmxlIHRoLCAuYm9keSBkbCBkdCwgLmJvZHkgYixcbi5ib2R5IHN0cm9uZywgLnRzLXN1YnRpdGxlLCAuZGV0YWlsX19pbnRyby5ib2R5IHAsIC5kZXRhaWxfX3RpbWUsIC5kZXRhaWxfX3N1YnRpdGxlLCAuZm9vdGVyIC5ib2R5IGgyLCAuaW50cm9fX2lubmVyLCAuYnV0dG9uLCAucGFnaW5hdGlvbl9fbGluaywgLmJsb2NrX190aXRsZSwgLmhlcm8gLnNsaWRlX19zdWJ0aXRsZSwgLmJvZHkgaDMsIC50cy10aXRsZSwgLmRldGFpbF9fdGl0bGUsIC5pbmRleF9fdGl0bGUsIC5oZXJvIC5zbGlkZV9fdGl0bGUsIC5ib2R5IGgxLFxuLmJvZHkgaDIge1xuICBmb250LWZhbWlseTogXCJldWNsaWQtYm9sZFwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5ib2R5IGVtID4gYixcbi5ib2R5IGIgPiBlbSxcbi5ib2R5IGkgPiBiLFxuLmJvZHkgYiA+IGksXG4uYm9keSBlbSA+IHN0cm9uZyxcbi5ib2R5IHN0cm9uZyA+IGVtLFxuLmJvZHkgaSA+IHN0cm9uZyxcbi5ib2R5IHN0cm9uZyA+IGkge1xuICBmb250LWZhbWlseTogXCJldWNsaWQtYm9sZC1pdGFsaWNcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUWVBFU0laRS9TQ0FMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmZpZ2NhcHRpb24sIC5ib2R5IGNvZGUsXG4uYm9keSBzYW1wLFxuLmJvZHkgcHJlLCAuYm9keSBzbWFsbCwgLnRzLWxhYmVsLCAudGFnX19saW5rLCAucHVibGljYXRpb24tZGF0ZSwgLnRzLXNtYWxsIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4ubGFyZ2UgLnRhZ19fbGluaywgLnRzLWJvZHksIC5mb3JtIC5pbnB1dC1ncm91cCBpbnB1dCwgLmZvcm0gbGFiZWwsIC5mb290ZXIgLmJvZHkgcCwgLmJsb2NrX190aW1lLCAuYmxvY2tfX2V4Y2VycHQsIC5ibG9ja19fc3VidGl0bGUsIC5uYXZfX2xpbmssIC5ib2R5IHVsIGxpOmJlZm9yZSwgLmJvZHkgdWwgbGksIC5ib2R5IG9sIGxpOmJlZm9yZSwgLmJvZHkgb2wgbGksIC5ib2R5IGRsLCAuYm9keSBwLCAuYm9keSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLnRzLXN1YnRpdGxlLCAuZGV0YWlsX19pbnRyby5ib2R5IHAsIC5kZXRhaWxfX3RpbWUsIC5kZXRhaWxfX3N1YnRpdGxlLCAuZm9vdGVyIC5ib2R5IGgyLCAuaW50cm9fX2lubmVyLCAuYnV0dG9uLCAucGFnaW5hdGlvbl9fbGluaywgLmJsb2NrX190aXRsZSwgLmhlcm8gLnNsaWRlX19zdWJ0aXRsZSwgLmJvZHkgaDMge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4udHMtdGl0bGUsIC5kZXRhaWxfX3RpdGxlLCAuaW5kZXhfX3RpdGxlLCAuaGVybyAuc2xpZGVfX3RpdGxlLCAuYm9keSBoMSxcbi5ib2R5IGgyIHtcbiAgZm9udC1zaXplOiAyLjM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1NQQUNJTkdcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQk9SREVSUyBXSURUSFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNSVNDXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5jYXB0aW9uLCB0aCwgdGQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5xLCBibG9ja3F1b3RlIHtcbiAgcXVvdGVzOiBub25lO1xufVxuXG5xOmJlZm9yZSwgcTphZnRlciwgYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBjb250ZW50OiBub25lO1xufVxuXG5hIGltZyB7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmJ1dHRvbiwgaW5wdXQge1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5idXR0b24sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgKnZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbmJ1dHRvbiwgaW5wdXRbdHlwZT1idXR0b25dLCBpbnB1dFt0eXBlPXJlc2V0XSwgaW5wdXRbdHlwZT1zdWJtaXRdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAqb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwgaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJldWNsaWQtcmVndWxhclwiO1xuICBzcmM6IHVybChcImZvbnRzL0V1Y2xpZEZsZXgud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL0V1Y2xpZEZsZXgud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiZXVjbGlkLXJlZ3VsYXItaXRhbGljXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvRXVjbGlkRmxleEl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvRXVjbGlkRmxleEl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJldWNsaWQtYm9sZFwiO1xuICBzcmM6IHVybChcImZvbnRzL0V1Y2xpZEZsZXhCb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9FdWNsaWRGbGV4Qm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJldWNsaWQtYm9sZC1kaXRhbGljXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvRXVjbGlkRmxleEJvbGRJdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL0V1Y2xpZEZsZXhCb2xkSXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI01JWElOU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNURVhULVNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi50cy1sYWJlbCwgLnRhZ19fbGluaywgLnB1YmxpY2F0aW9uLWRhdGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG59XG5cbi50cy1saW5rLCAuYmxvY2tfX2xpbmssIC5uYXZfX2xpbmsge1xuICBjb2xvcjogIzA0MDQwNDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLnRzLWxpbms6aG92ZXIsIC5ibG9ja19fbGluazpob3ZlciwgLm5hdl9fbGluazpob3ZlciB7XG4gIGNvbG9yOiByZ2JhKDQsIDQsIDQsIDAuNik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnRzLWJvZHktbGluaywgLmJsb2NrX19leGNlcnB0IGEsIC5ib2R5IGEge1xuICBjb2xvcjogIzAxNGE5NDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4udHMtYm9keS1saW5rOmhvdmVyLCAuYmxvY2tfX2V4Y2VycHQgYTpob3ZlciwgLmJvZHkgYTpob3ZlciB7XG4gIGNvbG9yOiAjMDE0YTk0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1RJVExFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJvZHkgaDIsXG4uYm9keSBoMyxcbi5ib2R5IGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuLmJvZHkgaDIgKyBoMyxcbi5ib2R5IGgzICsgaDQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjUEFSQUdSQVBIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJvZHkgcCB7XG4gIG1hcmdpbi1ib3R0b206IDAuOGVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTElOS1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCT0xELUlUQUxJQ1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCTE9DS1FVT1RFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJvZHkgYmxvY2txdW90ZSB7XG4gIHBhZGRpbmctbGVmdDogMWVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwNDA0MDQ7XG4gIG1hcmdpbi10b3A6IDFlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNERUZJTklUSU9OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5ib2R5IGRsIGR0IHtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xufVxuLmJvZHkgZGwgZHQ6Zmlyc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctdG9wOiAwLjZlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwNDA0MDQ7XG59XG4uYm9keSBkbCBkZCB7XG4gIHBhZGRpbmctYm90dG9tOiAwLjZlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42ZW07XG4gIGJvcmRlci1ib3R0b206IDFweCAjMDQwNDA0IHNvbGlkO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTElTVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYm9keSBvbCB7XG4gIGNvdW50ZXItcmVzZXQ6IGxpO1xufVxuLmJvZHkgb2wgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMS4yZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuLmJvZHkgb2wgbGk6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihsaSk7XG4gIGNvdW50ZXItaW5jcmVtZW50OiBsaTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogcmdiYSg0LCA0LCA0LCAwLjUpO1xufVxuLmJvZHkgb2wgb2wgPiBsaTpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5cbi5ib2R5IHVsIGxpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDEuMmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbn1cbi5ib2R5IHVsIGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgZm9udC1zaXplOiAxZW07XG59XG4uYm9keSB1bCBvbCA+IGxpOmZpcnN0LW9mLXR5cGUge1xuICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1RBQkxFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJvZHkgdGFibGUge1xuICB3aWR0aDogMTAwJTtcbn1cbi5ib2R5IHRhYmxlIHRoZWFkIHtcbiAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICMwNDA0MDQ7XG59XG4uYm9keSB0YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYm9keSB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNCwgNCwgNCwgMC4xKTtcbn1cbi5ib2R5IHRhYmxlIHRmb290IHtcbiAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMwNDA0MDQ7XG59XG4uYm9keSB0YWJsZSB0aCxcbi5ib2R5IHRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC41ZW0gMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYm9keSB0YWJsZSB0aCxcbiAgLmJvZHkgdGFibGUgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNTUEFDSU5HXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJvZHkgcCArIGgxLFxuLmJvZHkgdWwgKyBoMSxcbi5ib2R5IG9sICsgaDEsXG4uYm9keSBibG9ja3F1b3RlICsgaDEsXG4uYm9keSBmaWd1cmUgKyBoMSxcbi5ib2R5IHAgKyBoMixcbi5ib2R5IHVsICsgaDIsXG4uYm9keSBvbCArIGgyLFxuLmJvZHkgYmxvY2txdW90ZSArIGgyLFxuLmJvZHkgZmlndXJlICsgaDIsXG4uYm9keSBwICsgaDMsXG4uYm9keSB1bCArIGgzLFxuLmJvZHkgb2wgKyBoMyxcbi5ib2R5IGJsb2NrcXVvdGUgKyBoMyxcbi5ib2R5IGZpZ3VyZSArIGgzLFxuLmJvZHkgcCArIGg0LFxuLmJvZHkgdWwgKyBoNCxcbi5ib2R5IG9sICsgaDQsXG4uYm9keSBibG9ja3F1b3RlICsgaDQsXG4uYm9keSBmaWd1cmUgKyBoNCxcbi5ib2R5IHAgKyBoNSxcbi5ib2R5IHVsICsgaDUsXG4uYm9keSBvbCArIGg1LFxuLmJvZHkgYmxvY2txdW90ZSArIGg1LFxuLmJvZHkgZmlndXJlICsgaDUsXG4uYm9keSBwICsgaDYsXG4uYm9keSB1bCArIGg2LFxuLmJvZHkgb2wgKyBoNixcbi5ib2R5IGJsb2NrcXVvdGUgKyBoNixcbi5ib2R5IGZpZ3VyZSArIGg2IHtcbiAgbWFyZ2luLXRvcDogMC42ZW07XG59XG4uYm9keSB1bCxcbi5ib2R5IG9sLFxuLmJvZHkgLmVtYmVkLWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI01JU0NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYm9keSBvbCxcbi5ib2R5IHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbi5ib2R5IHN1Yixcbi5ib2R5IHN1cCB7XG4gIGZvbnQtc2l6ZTogMC43NWVtO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG4uYm9keSBzdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cbi5ib2R5IHN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cbi5ib2R5IGFiYnIge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwNDA0MDQ7XG4gIGN1cnNvcjogaGVscDtcbn1cbi5ib2R5IHE6YmVmb3JlLFxuLmJvZHkgY2l0ZTpiZWZvcmUge1xuICBjb250ZW50OiAnXCInO1xufVxuLmJvZHkgcTphZnRlcixcbi5ib2R5IGNpdGU6YWZ0ZXIge1xuICBjb250ZW50OiAnXCInO1xufVxuLmJvZHkgbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNCwgNCwgNCwgMC42KTtcbiAgY29sb3I6ICMwNDA0MDQ7XG59XG4uYm9keSBjb2RlLFxuLmJvZHkgc2FtcCxcbi5ib2R5IHByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG59XG4uYm9keSBociB7XG4gIGJhY2tncm91bmQ6ICMwNDA0MDQ7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMS42NjdyZW0gMDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI01FRElBXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJvZHkgLmJsb2NrX19pbWFnZSB7XG4gIG1hcmdpbjogMi4yMjJyZW0gYXV0bztcbiAgd2lkdGg6IDY2JTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuYm9keSAuYmxvY2tfX2ltYWdlIHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG59XG4uYm9keSAuYmxvY2tfX2ltYWdlLnNtYWxsIHtcbiAgd2lkdGg6IDEyMHB4O1xuICBtYXJnaW46IDIuMjIycmVtIDAgMi4yMjJyZW07XG59XG4uYm9keSAuYmxvY2tfX2ltYWdlLmxhcmdlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNRURJQVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5pbWcsXG52aWRlbyxcbm9iamVjdCB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuaW1nLmltYWdlLWxhenkge1xuICB3aWR0aDogMTAwJTtcbn1cbmltZy5pbWFnZS1sYXp5Om5vdCgubGF6eWxvYWRlZCkge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2UtaW4tb3V0O1xufVxuaW1nLmltYWdlLWxhenkubGF6eWxvYWRlZCB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMgZWFzZS1pbi1vdXQ7XG59XG5cbmZpZ2NhcHRpb24ge1xuICBtYXJnaW4tdG9wOiAwLjU1NnJlbTtcbn1cblxuLmVtYmVkLWNvbnRhaW5lciB2aWRlbyB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNSVNDXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwOTlweCkge1xuICAuaGlkZGVuLXNtYWxsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAuaGlkZGVuLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLm5hdl9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jbGVhcjo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNHTE9CQUxcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ud3JhcHBlciB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLndyYXBwZXIgLmZvb3RlciB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5sYXlvdXQtLWluZGV4aGliaXQsIC5kZXRhaWxfX2lubmVyLCAuaW5kZXgsIC5mb290ZXIsIC5oZWFkZXJfX2lubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogNSU7XG4gIHBhZGRpbmctcmlnaHQ6IDUlO1xuICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0VYVEVSTkFMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1BBUlRJQUxTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0hFQURFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5oZWFkZXIge1xuICBib3JkZXItdG9wOiAjMDFhZGJiIDVweCBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZmFmNztcbiAgYm9yZGVyLWJvdHRvbTogI2NiY2JjYiAxcHggc29saWQ7XG4gIHBhZGRpbmc6IDEuMTExcmVtIDAgMS4xMTFyZW0gMDtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAyO1xufVxuXG4uaGVhZGVyLWRldGFpbCB7XG4gIHBhZGRpbmctdG9wOiAzLjMzM3JlbTtcbn1cbi5oZWFkZXItZGV0YWlsIC5kZXRhaWxfX3RpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmhlYWRlcl9faW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sb2dvX19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuLmxvZ29fX2ltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uaWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgIWltcG9ydGFudDtcbn1cbi5pY29uLmljb24tLXNlYXJjaCB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uL2Fzc2V0cy9mcm9udC9pbWFnZXMvaWNvbi1zZWFyY2guc3ZnXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xufVxuLmljb24uaWNvbi0tbWVudSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uL2Fzc2V0cy9mcm9udC9pbWFnZXMvaWNvbi1tZW51LnN2Z1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbn1cbi5pY29uIC5pY29uLXRleHQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTEwMHB4KSB7XG4gIC5tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgLmljb24tLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDk5cHgpIHtcbiAgLm1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5pY29uLS1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIHJpZ2h0OiA1JTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTkFWXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAubmF2IC5uYXZfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICAubmF2X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMS4xMTFyZW07XG4gIH1cbn1cbi5uYXYtLXNlY29uZGFyeSB7XG4gIHBhZGRpbmc6IDEuMTExcmVtIDAgMS4xMTFyZW0gMDtcbn1cbi5uYXYtLXNlY29uZGFyeSAubmF2X19pdGVtIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjYmNiY2I7XG59XG4ubmF2LS1zZWNvbmRhcnkgLm5hdl9faXRlbTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYmNiY2I7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTEwMHB4KSB7XG4gIC5uYXYtLXNlY29uZGFyeSAubmF2X19pdGVtIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbi5uYXYtLXNlY29uZGFyeSAubmF2X19saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAwLjU1NnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNTU2cmVtO1xufVxuLm5hdi0tc2Vjb25kYXJ5IC5pcy1hY3RpdmUge1xuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMwMWFkYmI7XG4gIHBhZGRpbmctbGVmdDogMC41ZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDk5cHgpIHtcbiAgLm5hdi0tcHJpbWFyeSB7XG4gICAgbWFyZ2luLXRvcDogMS4xMTFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMS4xMTFyZW07XG4gIH1cbiAgLm5hdi0tcHJpbWFyeSAubmF2X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjU1NnJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NiY2JjYjtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjU1NnJlbTtcbiAgfVxufVxuLm5hdi0tbGFuZyAubmF2X19saW5rOm5vdCguaXMtYWN0aXZlKSB7XG4gIGNvbG9yOiAjY2JjYmNiO1xufVxuLm5hdi0tbGFuZyAubmF2X19saW5rOm5vdCguaXMtYWN0aXZlKTpob3ZlciB7XG4gIGNvbG9yOiAjMDQwNDA0O1xufVxuXG4udG9vbHMgLm5hdixcbi50b29scyAubmF2X19pdGVtLFxuLnRvb2xzIC5pY29uLS1zZWFyY2gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4udG9vbHMgLm5hdl9faXRlbSB7XG4gIG1hcmdpbi1yaWdodDogMC41NTZyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgLm5hdi0tcHJpbWFyeSAubmF2X19saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLm5hdi0tcHJpbWFyeSAubmF2X19saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzA0MDQwNDtcbiAgfVxuICAubmF2LS1wcmltYXJ5IC5uYXZfX2xpbms6aG92ZXI6YWZ0ZXIsIC5uYXYtLXByaW1hcnkgLm5hdl9fbGluay5pcy1hY3RpdmU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAxYWRiYjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDMuMWVtO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNIRVJPXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmhlcm8ge1xuICBoZWlnaHQ6IDc1dmg7XG4gIG1heC1oZWlnaHQ6IDUwMHB4O1xuICB3aWR0aDogMTAwdnc7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NiY2JjYjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGVybyB7XG4gICAgbWF4LWhlaWdodDogNjZ2aDtcbiAgfVxufVxuLmhlcm8gLmNhcm91c2VsX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5oZXJvIC5jYXJvdXNlbF9fbGVmdCxcbi5oZXJvIC5jYXJvdXNlbF9fcmlnaHQge1xuICB3aWR0aDogNTAlO1xufVxuLmhlcm8gLmNhcm91c2VsX19sZWZ0IC5ibG9ja19fbWVkaWEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogOHZoIDEydnc7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5oZXJvIC5jYXJvdXNlbF9fbGVmdCAuYmxvY2tfX21lZGlhIHtcbiAgICBwYWRkaW5nOiAxNSU7XG4gIH1cbn1cbi5oZXJvIC5jYXJvdXNlbF9fbGVmdCBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTNlMztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDI0cHggMCByZ2JhKDQsIDQsIDQsIDAuNSk7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7XG59XG4uaGVybyAuY2Fyb3VzZWxfX3JpZ2h0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5oZXJvIC5jYXJvdXNlbF9fcmlnaHQge1xuICAgIGZsZXgtYmFzaXM6IDY2JTtcbiAgfVxufVxuLmhlcm8gLmNhcm91c2VsX19yaWdodCAuc2xpZGUge1xuICBtYXJnaW46IDUlIDUwcHggNSUgNSU7XG59XG4uaGVybyAuc2xpZGVfX3RpdGxlIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAxLjExMXJlbTtcbiAgY29sb3I6ICMwNDA0MDQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmhlcm8gLnNsaWRlX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG4uaGVybyAuc2xpZGVfX3N1YnRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmctYm90dG9tOiAwLjFlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41NTZyZW07XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGNvbG9yOiAjMDQwNDA0O1xufVxuLmhlcm8gLnNsaWRlX19saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzA0MDQwNDtcbn1cbi5oZXJvIC5jYXJvdXNlbF9faXRlbS5jb2xvci1jZW50cmUtZGUtdGhlb3JpZS1wb2xpdGlxdWUgLmNhcm91c2VsX19sZWZ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NiY2JjYjtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JMT0NLXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJsb2NrX19pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYmNiY2I7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uYmxvY2tfX3NlY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5ibG9ja19fdGV4dCxcbi5ibG9ja19faW5mbyB7XG4gIHBhZGRpbmctbGVmdDogMS4xMTFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuMTExcmVtO1xufVxuXG4uYmxvY2tfX3RleHQge1xuICBwYWRkaW5nLXRvcDogMS4xMTFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjExMXJlbTtcbn1cblxuLmJsb2NrX190aXRsZSArIC5ibG9ja19fZXhjZXJwdCwgLmJsb2NrX19zdWJ0aXRsZSArIC5ibG9ja19fZXhjZXJwdCB7XG4gIG1hcmdpbi10b3A6IDAuNTU2cmVtO1xufVxuLmJsb2NrX19jb250ZW50LmpzLWNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAwLjU1NnJlbTtcbn1cblxuLmJsb2NrX190aW1lIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41NTZyZW07XG59XG5cbi5ibG9ja19faW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xufVxuLmJsb2NrX19pbmZvIC5wdWJsaWNhdGlvbi1kYXRlIHtcbiAgbWFyZ2luLWJvdHRvbTogMS4xMTFyZW07XG59XG5cbi5ibG9ja19fbWVkaWEgPiBwaWN0dXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYmxvY2stLXB1YmxpY2F0aW9uIC5ibG9ja19fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAuYmxvY2stLXB1YmxpY2F0aW9uIC5ibG9ja19fbGluayAuYmxvY2tfX21lZGlhIHtcbiAgICB3aWR0aDogNDAlO1xuICB9XG4gIC5ibG9jay0tcHVibGljYXRpb24gLmJsb2NrX19saW5rIC5ibG9ja19fdGV4dCB7XG4gICAgd2lkdGg6IDYwJTtcbiAgfVxufVxuLmJsb2NrLS1wdWJsaWNhdGlvbiAuYmxvY2tfX2xpbmsgLmJsb2NrX19tZWRpYSB7XG4gIHBhZGRpbmc6IDEuMTExcmVtIDAgMS4xMTFyZW0gMS4xMTFyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmJsb2NrLS1wdWJsaWNhdGlvbiAuYmxvY2tfX2xpbmsgLmJsb2NrX19tZWRpYSB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMTExcmVtO1xuICB9XG59XG4uYmxvY2stLXB1YmxpY2F0aW9uIC5ibG9ja19fbGluayAuYmxvY2tfX21lZGlhIHBpY3R1cmUge1xuICBib3gtc2hhZG93OiAzcHggM3B4IDAgcmdiYSg0LCA0LCA0LCAwLjE1KTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JMT0NLLUVWRU5UXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmJsb2NrLS1ldmVudCAuYmxvY2tfX21lZGlhIHtcbiAgcGFkZGluZzogMS4xMTFyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYSB7XG4gICAgcGFkZGluZzogMi4yMjJyZW07XG4gIH1cbn1cbi5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYSBwaWN0dXJlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uYmxvY2stLWV2ZW50IC5ibG9ja19fbWVkaWEgaW1nIHtcbiAgYm94LXNoYWRvdzogMCAycHggMjRweCAwIHJnYmEoNCwgNCwgNCwgMC41KTtcbiAgb2JqZWN0LWZpdDogZmlsbCAhaW1wb3J0YW50O1xuICBvYmplY3QtcG9zaXRpb246IGNlbnRlciAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xufVxuXG4uYmxvY2stLWV2ZW50IC5ibG9ja19fbWVkaWEuY29sb3ItbXNoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxYWRiYjtcbn1cbi5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYS5jb2xvci1saWV1IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhYWQ0YTtcbn1cbi5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYS5jb2xvci1zdHJpZ2VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NDM1Nztcbn1cbi5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYS5jb2xvci1vbWFtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRhNjc4Yjtcbn1cbi5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYS5jb2xvci1lYXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlN2U2Nztcbn1cbi5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYS5jb2xvci1hbWVyaWNhcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MzI4MmI7XG59XG4uYmxvY2stLWV2ZW50IC5ibG9ja19fbWVkaWEuY29sb3ItbW9kZXJuaXRhcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDZkNmQ7XG59XG4uYmxvY2stLWV2ZW50IC5ibG9ja19fbWVkaWEuY29sb3ItY3JlZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkOTVhNTc7XG59XG4uYmxvY2stLWV2ZW50IC5ibG9ja19fbWVkaWEuY29sb3ItcmF0aW8tZGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThiMWRkO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2NrLS1ldmVudCAuYmxvY2tfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIC5ibG9jay0tZXZlbnQgLmJsb2NrX19pbm5lciAuYmxvY2tfX3NlY3Rpb246Zmlyc3QtY2hpbGQge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmJsb2NrLS1ldmVudCAuYmxvY2tfX2lubmVyIC5ibG9ja19fc2VjdGlvbjpmaXJzdC1jaGlsZCAuYmxvY2tfX2xpbmssXG4gIC5ibG9jay0tZXZlbnQgLmJsb2NrX19pbm5lciAuYmxvY2tfX3NlY3Rpb246Zmlyc3QtY2hpbGQgLmJsb2NrX19tZWRpYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmJsb2NrLS1ldmVudCAuYmxvY2tfX2lubmVyIC5ibG9ja19fc2VjdGlvbjpmaXJzdC1jaGlsZCBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgfVxuICAuYmxvY2stLWV2ZW50IC5ibG9ja19faW5uZXIgLmJsb2NrX19zZWN0aW9uOmxhc3QtY2hpbGQge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxufVxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JMT0NLLVRFQU1cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2NrLS10ZWFtLXByaW1hcnkgLmJsb2NrX19saW5rLFxuICAuYmxvY2stLXRlYW0tc2Vjb25kYXJ5IC5ibG9ja19faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgLmJsb2NrLS10ZWFtLXByaW1hcnkgLmJsb2NrX19saW5rIC5ibG9ja19fbWVkaWEsXG4gIC5ibG9jay0tdGVhbS1zZWNvbmRhcnkgLmJsb2NrX19pbm5lciAuYmxvY2tfX21lZGlhIHtcbiAgICB3aWR0aDogMjAlO1xuICB9XG4gIC5ibG9jay0tdGVhbS1wcmltYXJ5IC5ibG9ja19fbGluayAuYmxvY2tfX3RleHQsXG4gIC5ibG9jay0tdGVhbS1zZWNvbmRhcnkgLmJsb2NrX19pbm5lciAuYmxvY2tfX3RleHQge1xuICAgIHdpZHRoOiA4MCU7XG4gIH1cbn1cbi5ibG9jay0tdGVhbS1wcmltYXJ5IC5ibG9ja19fbGluayAuYmxvY2tfX21lZGlhLFxuLmJsb2NrLS10ZWFtLXNlY29uZGFyeSAuYmxvY2tfX2lubmVyIC5ibG9ja19fbWVkaWEge1xuICBwYWRkaW5nOiAxLjExMXJlbSAwIDEuMTExcmVtIDEuMTExcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5ibG9jay0tdGVhbS1wcmltYXJ5IC5ibG9ja19fbGluayAuYmxvY2tfX21lZGlhLFxuICAuYmxvY2stLXRlYW0tc2Vjb25kYXJ5IC5ibG9ja19faW5uZXIgLmJsb2NrX19tZWRpYSB7XG4gICAgd2lkdGg6IDIwJTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuMTExcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi5ibG9jay0tdGVhbS1zZWNvbmRhcnkgLmJsb2NrX19pbm5lciAuYmxvY2tfX2NvbnRlbnQge1xuICBtYXJnaW4tYm90dG9tOiAxLjExMXJlbTtcbn1cbi5ibG9jay0tdGVhbS1zZWNvbmRhcnkgLmJsb2NrX19pbm5lciAuYnV0dG9uLCAuYmxvY2stLXRlYW0tc2Vjb25kYXJ5IC5ibG9ja19faW5uZXIgLnBhZ2luYXRpb25fX2xpbmsge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogMC41NTZyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMTExcmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ibG9jay0tdGVhbS1zZWNvbmRhcnkgLmJsb2NrX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAuYmxvY2stLXRlYW0tc2Vjb25kYXJ5IC5ibG9ja19faW5uZXIgLmJsb2NrX19tZWRpYSB7XG4gICAgd2lkdGg6IDEwJTtcbiAgfVxuICAuYmxvY2stLXRlYW0tc2Vjb25kYXJ5IC5ibG9ja19faW5uZXIgLmJsb2NrX190ZXh0IHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCTE9DSy1NRU1CRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uYmxvY2stLW1lbWJlciAuYmxvY2tfX21lZGlhIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmc6IDEuMTExcmVtO1xufVxuXG4uYmxvY2stLW1lbWJlciAuYmxvY2tfX21lZGlhIGltZyxcbi5kZXRhaWwtLW1lbWJlciAuZGV0YWlsX19tZWRpYSBpbWcge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xufVxuXG4uaW5kZXgtLXNtIC5ibG9jay0tbWVtYmVyIC5ibG9ja19faW5uZXIsXG4uaW5kZXgtLXNtIC5ibG9jay0tbWVtYmVyIC5ibG9ja19fbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmluZGV4LS1zbSAuYmxvY2stLW1lbWJlciAuYmxvY2tfX2lubmVyLFxuICAuaW5kZXgtLXNtIC5ibG9jay0tbWVtYmVyIC5ibG9ja19fbGluayB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG59XG4uaW5kZXgtLXNtIC5ibG9jay0tbWVtYmVyIC5ibG9ja19fZXhjZXJwdCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmluZGV4LS1zbSAuYmxvY2stLW1lbWJlciAuYmxvY2tfX2luZm8ge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG4uaW5kZXgtLXNtIC5ibG9jay0tbWVtYmVyIC5ibG9ja19faW5mbyAudGFncyB7XG4gIG1hcmdpbi10b3A6IDAuNTU2cmVtO1xufVxuLmluZGV4LS1zbSAuYmxvY2stLW1lbWJlciAuYmxvY2tfX21lZGlhIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHBhZGRpbmctYm90dG9tOiAxLjExMXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW5kZXgtLXNtIC5ibG9jay0tbWVtYmVyIC5ibG9ja19fbWVkaWEge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5pbmRleC0tc20gLmJsb2NrLS1tZW1iZXIgLmJsb2NrX19tZWRpYSBpbWcge1xuICBoZWlnaHQ6IDJyZW0gIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JVVFRPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5idXR0b24sIC5wYWdpbmF0aW9uX19saW5rIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAjMDQwNDA0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmctYm90dG9tOiAwLjNlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwNDA0MDQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNUQUdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLnRhZ3Mge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50YWcge1xuICBtYXJnaW4tcmlnaHQ6IDAuNTU2cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjU1NnJlbTtcbn1cblxuLnRhZ19fbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2JjYmNiO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiAwLjJlbSAwLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi50YWdfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmJmYWY3ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDQwNDA0O1xuICBib3JkZXItY29sb3I6ICNjYmNiY2I7XG59XG4ubGFyZ2UgLnRhZ19fbGluayB7XG4gIHBhZGRpbmc6IDAuNGVtIDAuOGVtO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5sYXJnZSAudGFnX19saW5rIHtcbiAgICBwYWRkaW5nOiAwLjJlbSAwLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIH1cbn1cblxuW2NsYXNzKj1tc2hdIC50YWdfX2xpbmssXG5bY2xhc3MqPW1zaF0gLmNhcm91c2VsX19sZWZ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAxYWRiYjtcbn1cbltjbGFzcyo9bGlldV0gLnRhZ19fbGluayxcbltjbGFzcyo9bGlldV0gLmNhcm91c2VsX19sZWZ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhYWQ0YTtcbn1cbltjbGFzcyo9c3RyaWdlc10gLnRhZ19fbGluayxcbltjbGFzcyo9c3RyaWdlc10gLmNhcm91c2VsX19sZWZ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc2NDM1Nztcbn1cbltjbGFzcyo9b21hbV0gLnRhZ19fbGluayxcbltjbGFzcyo9b21hbV0gLmNhcm91c2VsX19sZWZ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRhNjc4Yjtcbn1cbltjbGFzcyo9ZWFzdF0gLnRhZ19fbGluayxcbltjbGFzcyo9ZWFzdF0gLmNhcm91c2VsX19sZWZ0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlN2U2Nztcbn1cbltjbGFzcyo9YW1lcmljYXNdIC50YWdfX2xpbmssXG5bY2xhc3MqPWFtZXJpY2FzXSAuY2Fyb3VzZWxfX2xlZnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODMyODJiO1xufVxuW2NsYXNzKj1tb2Rlcm5pdGFzXSAudGFnX19saW5rLFxuW2NsYXNzKj1tb2Rlcm5pdGFzXSAuY2Fyb3VzZWxfX2xlZnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2ZDZkO1xufVxuW2NsYXNzKj1jcmVnXSAudGFnX19saW5rLFxuW2NsYXNzKj1jcmVnXSAuY2Fyb3VzZWxfX2xlZnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDk1YTU3O1xufVxuW2NsYXNzKj1yYXRpby1kaF0gLnRhZ19fbGluayxcbltjbGFzcyo9cmF0aW8tZGhdIC5jYXJvdXNlbF9fbGVmdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhOGIxZGQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNJTlRST1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5pbnRybyB7XG4gIHBhZGRpbmctdG9wOiAyLjIyMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuMzMzcmVtO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjUEFHSU5BVElPTlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5wYWdpbmF0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDEuNjY3cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2luYXRpb25fX2xpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbi5wYWdpbmF0aW9uX19saXN0IGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4ucGFnaW5hdGlvbl9fbGluayB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjU1NnJlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0ZPT1RFclxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5mb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2NiY2JjYjtcbn1cblxuLmZvb3Rlcl9faW5uZXIge1xuICB3aWR0aDogY2FsYygxMDAlICsgMTVweCk7XG4gIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgcGFkZGluZy10b3A6IDEuNjY3cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZm9vdGVyX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4uZm9vdGVyX19zZWN0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxLjY2N3JlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlcl9fc2VjdGlvbiB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzMzMlO1xuICB9XG59XG5cbi5mb290ZXIgLmJvZHkgaDIge1xuICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNGT1JNXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmZvcm0gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMC41NTZyZW07XG59XG4uZm9ybSAuaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYmNiY2I7XG4gIHdpZHRoOiA3NTBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmZvcm0gLmlucHV0LWdyb3VwIGlucHV0LFxuLmZvcm0gLmlucHV0LWdyb3VwIGJ1dHRvbiB7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiA0NXB4O1xufVxuLmZvcm0gLmlucHV0LWdyb3VwIGlucHV0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC41NTZyZW0gMC41NTZyZW07XG59XG4uZm9ybSAuaW5wdXQtZ3JvdXAgYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBmb250LXNpemU6IDA7XG4gIHdpZHRoOiA0MHB4O1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvaWNvbi1jaGVjay5zdmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG59XG4uZm9ybSAuaW5wdXQtZ3JvdXAgYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4ubm8tdG91Y2hldmVudHMgLmZvcm0gYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4vKiEgRmxpY2tpdHkgdjIuMy4wXG5odHRwczovL2ZsaWNraXR5Lm1ldGFmaXp6eS5jb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmZsaWNraXR5LWVuYWJsZWQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbGlja2l0eS1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQge1xuICBjdXJzb3I6IG1vdmU7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IGdyYWI7XG59XG5cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQuaXMtcG9pbnRlci1kb3duIHtcbiAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG4uZmxpY2tpdHktYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiAjMzMzO1xuICBib3gtc2hhZG93OiAwIDJweCAyNHB4IDAgcmdiYSg0LCA0LCA0LCAwLjUpO1xufVxuXG4uZmxpY2tpdHktYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2ZiZmFmNztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmxpY2tpdHktYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxuLmZsaWNraXR5LWJ1dHRvbjphY3RpdmUge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5mbGlja2l0eS1idXR0b246ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM7XG4gIGN1cnNvcjogYXV0bztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mbGlja2l0eS1idXR0b24taWNvbiB7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gIH1cbn1cblxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICBsZWZ0OiAxMHB4O1xufVxuXG4uZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgcmlnaHQ6IDEwcHg7XG59XG5cbi5mbGlja2l0eS1ydGwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ucHJldmlvdXMge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMTBweDtcbn1cblxuLmZsaWNraXR5LXJ0bCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwcHg7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIC5mbGlja2l0eS1idXR0b24taWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjAlO1xuICB0b3A6IDIwJTtcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiA2MCU7XG59XG5cbi5mbGlja2l0eS1wYWdlLWRvdHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3R0b206IC0yNXB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5mbGlja2l0eS1ydGwgLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIGRpcmVjdGlvbjogcnRsO1xufVxuXG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIG1hcmdpbjogMCA4cHg7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMC4yNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QuaXMtc2VsZWN0ZWQge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjSU5ERVhcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4uaW5kZXgge1xuICBwYWRkaW5nLXRvcDogMy4zMzNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzLjMzM3JlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjYmNiY2I7XG59XG5cbi5pbmRleF9fdGl0bGUgKyAuaW5kZXhfX2NvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAzLjMzM3JlbTtcbn1cblxuLmluZGV4X190aXRsZSArIC5uYXYge1xuICBtYXJnaW4tdG9wOiAxLjExMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMy4zMzNyZW07XG59XG5cbi5uYXYtLXllYXJzIC5pcy1hY3RpdmUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAxYWRiYjtcbn1cblxuLmluZGV4IC5idXR0b24sIC5pbmRleCAucGFnaW5hdGlvbl9fbGluayB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiAwLjU1NnJlbTtcbn1cblxuLmluZGV4X190aXRsZSArIC5idXR0b24sIC5pbmRleF9fdGl0bGUgKyAucGFnaW5hdGlvbl9fbGluayB7XG4gIG1hcmdpbi1ib3R0b206IDIuMjIycmVtO1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLmluZGV4X19jb250ZW50IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSArIDMwcHgpO1xuICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5pbmRleF9fY29udGVudCAuYmxvY2sge1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEuNjY3cmVtO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmluZGV4LS1lbXB0eSAuaW50cm8ge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5pbmRleC0tZXZlbnRzOm5vdCguaW5kZXgtLXNtKSAuYmxvY2ssXG4gIC5pbmRleC0tdGVhbXM6bm90KC5pbmRleC0tc20pIC5ibG9jayxcbiAgLmluZGV4LS1tZW1iZXJzOm5vdCguaW5kZXgtLXNtKSAuYmxvY2sge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5pbmRleC0tbmV3czpub3QoLmluZGV4LS1zbSkgLmJsb2NrLFxuICAuaW5kZXgtLXZpZGVvczpub3QoLmluZGV4LS1zbSkgLmJsb2NrLFxuICAuaW5kZXgtLXB1YmxpY2F0aW9uczpub3QoLmluZGV4LS1zbSkgLmJsb2NrIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7XG4gIH1cbn1cblxuLmluZGV4LS10ZWFtcyAuaW50cm8ge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNJTkRFWC1TTUFMTFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaW5kZXgtLXNtIC5ibG9jayB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41NTZyZW07XG4gIH1cbn1cblxuLmluZGV4LS1zbSAuYmxvY2stLWV2ZW50IC5ibG9ja19fc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmluZGV4LS1zbSAuYmxvY2stLWV2ZW50IC5ibG9ja19fc2VjdGlvbjpsYXN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICB9XG4gIC5pbmRleC0tc20gLmJsb2NrLS1ldmVudCAuYmxvY2tfX3NlY3Rpb246bGFzdC1jaGlsZCAuYmxvY2tfX3RleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICB9XG4gIC5pbmRleC0tc20gLmJsb2NrLS1ldmVudCAuYmxvY2tfX3NlY3Rpb246bGFzdC1jaGlsZCAuYmxvY2tfX3RpbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgb3JkZXI6IDM7XG4gICAgbWFyZ2luLWxlZnQ6IDAuNTU2cmVtO1xuICB9XG4gIC5pbmRleC0tc20gLmJsb2NrLS1ldmVudCAuYmxvY2tfX3NlY3Rpb246bGFzdC1jaGlsZCAucHVibGljYXRpb24tZGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uaW5kZXgtLXNtIC5pbmRleF9fdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwLjU1NnJlbTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0RFVEFJTFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi5kZXRhaWwge1xuICBwYWRkaW5nLXRvcDogMy4zMzNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAzLjMzM3JlbTtcbn1cblxuLmRldGFpbF9faW5uZXIge1xuICBtYXgtd2lkdGg6IDE1MDBweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuZGV0YWlsX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAuZGV0YWlsX19pbm5lciAuZGV0YWlsX190ZXh0LFxuICAuZGV0YWlsX19pbm5lciAuZGV0YWlsX19tZWRpYSB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG4gIC5kZXRhaWxfX2lubmVyIC5kZXRhaWxfX3RleHQge1xuICAgIHdpZHRoOiA2NSU7XG4gIH1cbiAgLmRldGFpbF9faW5uZXIgLmRldGFpbF9fbWVkaWEge1xuICAgIHdpZHRoOiAzNSU7XG4gIH1cbiAgLmRldGFpbF9faW5uZXIgLnRleHRfX2lubmVyLFxuICAuZGV0YWlsX19pbm5lciAuZGV0YWlsX19tZWRpYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbn1cblxuLnRleHRfX2lubmVyIHtcbiAgbWF4LXdpZHRoOiA3NTBweDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAzLjMzM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAudGV4dF9faW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICB9XG59XG5cbi5kZXRhaWxfX3RpdGxlIHtcbiAgcGFkZGluZy10b3A6IDAuNTU2cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjExMXJlbTtcbn1cblxuLmRldGFpbF9fc3VidGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxLjExMXJlbTtcbn1cbi5kZXRhaWxfX3RpdGxlICsgLmRldGFpbF9fc3VidGl0bGUge1xuICBtYXJnaW4tdG9wOiAtMS4xMTFyZW07XG59XG5cbi5kZXRhaWxfX3RpdGxlICsgLmRldGFpbF9faW50cm8ge1xuICBtYXJnaW4tdG9wOiAtMC41NTZyZW07XG59XG5cbi5kZXRhaWxfX3RpbWUge1xuICBtYXJnaW4tYm90dG9tOiAxLjExMXJlbTtcbn1cbi5kZXRhaWxfX3RpdGxlICsgLmRldGFpbF9fdGltZSB7XG4gIG1hcmdpbi10b3A6IC0wLjU1NnJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5kZXRhaWxfX21lZGlhIHtcbiAgICBtYXJnaW4tdG9wOiAyLjIyMnJlbTtcbiAgfVxufVxuLmRldGFpbF9fbWVkaWEgLmdhbGxlcnlfX2l0ZW0gKyAuZ2FsbGVyeV9faXRlbSB7XG4gIG1hcmdpbi10b3A6IDEuMTExcmVtO1xufVxuLmRldGFpbF9fbWVkaWEgPiBwaWN0dXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5kZXRhaWxfX2ZlYXR1cmVkLWltZyBpbWcge1xuICB3aWR0aDogMTIwcHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuZGV0YWlsX19mZWF0dXJlZC1pbWcge1xuICAgIG1hcmdpbi1ib3R0b206IDIuMjIycmVtO1xuICB9XG4gIC5kZXRhaWxfX2ZlYXR1cmVkLWltZyBpbWcge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5kZXRhaWxfX2ZlYXR1cmVkLWltZyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1yaWdodDogMS4xMTFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEuMTExcmVtO1xuICB9XG59XG5cbi5kZXRhaWwgLnB1YmxpY2F0aW9uLWRhdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDEuNjY3cmVtO1xufVxuLmRldGFpbCAucHVibGljYXRpb24tZGF0ZSArIC5kZXRhaWxfX3RpdGxlIHtcbiAgbWFyZ2luLXRvcDogMC41NTZyZW07XG59XG4uZGV0YWlsIC50YWdzIHtcbiAgbWFyZ2luLWJvdHRvbTogMS42NjdyZW07XG59XG5cbi5kZXRhaWwtLW1lbWJlciAuZGV0YWlsX19pbm5lciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4uZGV0YWlsLS1tZW1iZXIgLmRldGFpbF9fdGV4dCB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgb3JkZXI6IDI7XG59XG4uZGV0YWlsLS1tZW1iZXIgLmRldGFpbF9fbWVkaWEge1xuICBtYXgtd2lkdGg6IDIwMHB4O1xuICBvcmRlcjogMTtcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1BBR0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjU0VBUkNIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLmZvcm0tLXNlYXJjaCB7XG4gIG1hcmdpbi10b3A6IDMuMzMzcmVtO1xufVxuLmZvcm0tLXNlYXJjaCAuaW5wdXQtZ3JvdXAge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTEFZT1VULUlOREVYSElCSVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4ubGF5b3V0LS1pbmRleGhpYml0IHNlY3Rpb246bGFzdC1vZi10eXBlIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubGF5b3V0LS1pbmRleGhpYml0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG4gIC5sYXlvdXQtLWluZGV4aGliaXQgLmNvbDEge1xuICAgIGZsZXg6IDAgMCAyMDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gIH1cbiAgLmxheW91dC0taW5kZXhoaWJpdCAuY29sMSAubmF2X19pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAubGF5b3V0LS1pbmRleGhpYml0IC5jb2wyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAubGF5b3V0LS1pbmRleGhpYml0IC5oZWFkZXItZGV0YWlsIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogNC40NDRyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDIuMjIycmVtO1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCQVNFLVNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmh0bWwge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiAjZmJmYWY3O1xuICBjb2xvcjogIzA0MDQwNDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5ib2R5IDo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQsIDQsIDQsIDAuMik7XG4gIGNvbG9yOiAjMDQwNDA0O1xufVxuYm9keSA6OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNCwgNCwgNCwgMC4yKTtcbiAgY29sb3I6ICMwNDA0MDQ7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQUklOVFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQUklOVCBTVFlMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBtZWRpYSBwcmludCB7XG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAyY20gMi41Y207XG4gIH1cbiAgYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZwdDtcbiAgICBsaW5lLWhlaWdodDogMjJwdDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwLFxuICB1bCxcbiAgb2wge1xuICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBUaW1lcywgVGltZXMgTmV3IFJvbWFuLCBzZXJpZjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuICBoMSB7XG4gICAgZm9udC1zaXplOiAzMnB0O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB0O1xuICB9XG4gIGgyIHtcbiAgICBmb250LXNpemU6IDI0cHQ7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHQ7XG4gIH1cbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMjBwdDtcbiAgICBsaW5lLWhlaWdodDogMjZwdDtcbiAgfVxuICBoNCB7XG4gICAgZm9udC1zaXplOiAxNHB0O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB0O1xuICB9XG4gIHAsXG4gIHVsLFxuICBvbCxcbiAgYmxvY2txdW90ZSB7XG4gICAgZm9udC1zaXplOiAxMXB0O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB0O1xuICB9XG4gIGJsb2NrcXVvdGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiA5cHQ7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHQ7XG4gIH1cbiAgcCB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICB9XG4gIGhyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzA0MDQwNDtcbiAgICBtYXJnaW46IDAuM2NtIDA7XG4gIH1cbiAgLmFydGljbGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLmhlYWRlcixcbiAgLmZvb3RlcixcbiAgLnNlY3Rpb24ucHJpbnQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cbiAgLmJvZHkgcCB7XG4gICAgd2lkb3dzOiAzO1xuICAgIG9ycGhhbnM6IDM7XG4gIH1cbiAgLmJvZHkgYSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIC5ib2R5IGJsb2NrcXVvdGUge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICAuYm9keSBoMSwgLmJvZHkgaDIsIC5ib2R5IGgzLCAuYm9keSBoNCwgLmJvZHkgaDUsIC5ib2R5IGg2IHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgLmJvZHkgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIH1cbiAgLmJvZHkgdGFibGUsIC5ib2R5IHByZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIC5ib2R5IHVsLCAuYm9keSBvbCwgLmJvZHkgZGwge1xuICAgIHBhZ2UtYnJlYWstYmVmb3JlOiBhdm9pZDtcbiAgfVxuICAuYm9keSBhOmxpbmssIC5ib2R5IGE6dmlzaXRlZCwgLmJvZHkgYSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMyQzUxREY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAuYm9keSBhW2hyZWZePWh0dHBdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiA8XCIgYXR0cihocmVmKSBcIj4gXCI7XG4gIH1cbiAgLmJvZHkgYXJ0aWNsZSBhW2hyZWZePVwiI1wiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICAuYm9keSBhOm5vdCg6bG9jYWwtbGluayk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIDxcIiBhdHRyKGhyZWYpIFwiPiBcIjtcbiAgfVxufSIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNT0RVTEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwidXRpbHMvX2luY2x1ZGUtbWVkaWEuc2Nzc1wiO1xuQGltcG9ydCBcIl92YXJpYWJsZXMuc2Nzc1wiO1xuXG5AaW1wb3J0IFwidXRpbHMvX3Jlc2V0LnNjc3NcIjtcbkBpbXBvcnQgXCJ1dGlscy9fZm9udHMuc2Nzc1wiO1xuQGltcG9ydCBcInV0aWxzL19taXhpbnMuc2Nzc1wiO1xuQGltcG9ydCBcInV0aWxzL190eXBvZ3JhcGh5LnNjc3NcIjtcbkBpbXBvcnQgXCJ1dGlscy9fbWVkaWFzLnNjc3NcIjtcbkBpbXBvcnQgXCJ1dGlscy9fbWlzYy5zY3NzXCI7XG5AaW1wb3J0IFwidXRpbHMvX2dsb2JhbC5zY3NzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNFWFRFUk5BTFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gQGltcG9ydCBcImV4dGVybmFsL19mbGlja2l0eS5zY3NzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQQVJUSUFMU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8gY29tcG9uZW50c1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2hlYWRlci5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fbmF2LnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19oZXJvLnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19ibG9jay5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fYmxvY2stZXZlbnQuc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2Jsb2NrLXRlYW0uc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvX2Jsb2NrLW1lbWJlci5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fYnV0dG9uLnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL190YWdzLnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19pbnRyby5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9fZm9vdGVyLnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19mb3JtLnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL19mbGlja2l0eS5zY3NzXCI7XG4vLyB0ZW1wbGF0ZXNcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvX2luZGV4LnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvX2luZGV4LXNtLnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvX2RldGFpbC5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL19wYWdlLnNjc3NcIjtcbkBpbXBvcnQgXCJ0ZW1wbGF0ZXMvX3NlYXJjaC5zY3NzXCI7XG5AaW1wb3J0IFwidGVtcGxhdGVzL19sYXlvdXQtaW5kZXhoaWJpdC5zY3NzXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCQVNFLVNUWUxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuaHRtbCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cbn1cblxuYm9keSB7XG4gICAgQGV4dGVuZCAlZm9udC1ib2R5O1xuICAgIGJhY2tncm91bmQ6ICRib2R5LWNvbG9yO1xuICAgIGNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRiYXNlLWNvbG9yLCAwLjIpO1xuICAgICAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4gICAgfVxuICAgIDo6c2VsZWN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFzZS1jb2xvciwgMC4yKTtcbiAgICAgICAgY29sb3I6ICRiYXNlLWNvbG9yO1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1BSSU5UXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AaW1wb3J0IFwidXRpbHMvX3ByaW50LXN0eWxlLnNjc3NcIjtcbkBtZWRpYSBwcmludCB7XG4gICAgaHRtbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgcHJpbnQtc3R5bGU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQ09MT1JTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBNYWluIGNvbG91ciBwYWxldHRlXG4kd2hpdGU6ICNmZmZmZmY7XG4kYmVpZ2U6ICNmYmZhZjc7XG4kYmxhY2s6ICMwNDA0MDQ7XG4kYmx1ZTogIzAxNGE5NDtcbiRncmF5OiAjY2JjYmNiO1xuJGNvbG9yLW1zaDogIzAxYWRiYjtcbiRjb2xvci1zdHJpZ2VzOiAjNzY0MzU3O1xuJGNvbG9yLWVhc3Q6ICNlZTdlNjc7XG4kY29sb3ItYW1lcmljYXM6ICM4MzI4MmI7XG4kY29sb3ItbGlldTogI2FhYWQ0YTtcbiRjb2xvci1vbWFtOiAjNGE2NzhiO1xuJGNvbG9yLW1vZGVybml0YXM6ICMwMDZkNmQ7XG4kY29sb3ItY3JlZzogI2Q5NWE1NztcbiRjb2xvci1yYXRpby1kaDogI2E4YjFkZDtcblxuLmJvcmRlcmNvbG9yLW1zaCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItbXNoO1xufVxuLmJvcmRlcmNvbG9yLXN0cmlnZXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXN0cmlnZXM7XG59XG4uYm9yZGVyY29sb3ItZWFzdCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZWFzdDtcbn1cbi5ib3JkZXJjb2xvci1hbWVyaWNhcyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItYW1lcmljYXM7XG59XG5bY2xhc3MqPVwiYm9yZGVyY29sb3ItbGlldVwiXSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItbGlldTtcbn1cbi5ib3JkZXJjb2xvci1vbWFtIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1vbWFtO1xuICAgIGNvbG9yOiAkY29sb3Itb21hbTtcbn1cbi5ib3JkZXJjb2xvci1tb2Rlcm5pdGFzIHtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvci1tb2Rlcm5pdGFzO1xufVxuLmJvcmRlcmNvbG9yLWNyZWcge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWNyZWc7XG59XG4uYm9yZGVyY29sb3ItcmF0aW8tZGgge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLXJhdGlvLWRoO1xufVxuXG4vLyBBc3NpZ24gY29sb3VycyB0byB2YXJpYWJsZSByb2xlc1xuJGJvZHktY29sb3I6ICRiZWlnZTtcbiRiYXNlLWNvbG9yOiAkYmxhY2s7XG4kYWN0aW9uOiAkYmx1ZTtcbiRhY3Rpb24tcmVzcG9uc2U6ICRiYXNlLWNvbG9yO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQlJFQUtQT0lOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRicmVha3BvaW50czogKFxuICAgIHhzOiAzMjBweCxcbiAgICBzbTogNzY4cHgsXG4gICAgbWQ6IDEwMjRweCxcbiAgICBsZzogMTEwMHB4LFxuICAgIHhsOiAxNDQwcHgsXG4gICAgeHhsOiAxOTIwcHgsXG4pO1xuXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDMwcHggIWRlZmF1bHQ7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNGT05UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJWZvbnQtYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IFwiZXVjbGlkLXJlZ3VsYXJcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuJWZvbnQtYm9keS1pdGFsaWMge1xuICAgIGZvbnQtZmFtaWx5OiBcImV1Y2xpZC1yZWd1bGFyLWl0YWxpY1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4lZm9udC1ib2R5LWJvbGQge1xuICAgIGZvbnQtZmFtaWx5OiBcImV1Y2xpZC1ib2xkXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbiVmb250LWJvZHktYm9sZC1pdGFsaWMge1xuICAgIGZvbnQtZmFtaWx5OiBcImV1Y2xpZC1ib2xkLWl0YWxpY1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNUWVBFU0laRS9TQ0FMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuJGZvbnQtYmFzZTogMXJlbTtcbiRsaW5lLWhlaWdodDogMS40O1xuJGxpbmUtaGVpZ2h0LXZhcjogMS4yO1xuXG4kZm9udC1zaXplLXNtOiAkZm9udC1iYXNlICogMC43NTsgLy8gMTJcbiRmb250LXNpemUtbWQ6ICRmb250LWJhc2UgKiAxOyAvLyAxNlxuJGZvbnQtc2l6ZS1sZzogJGZvbnQtYmFzZSAqIDEuMTI1OyAvLyAxOFxuJGZvbnQtc2l6ZS14bDogJGZvbnQtYmFzZSAqIDIuMzc1OyAvLyAzOFxuXG4lZm9udC1zaXplLXNtIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbn1cbiVmb250LXNpemUtbWQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xufVxuJWZvbnQtc2l6ZS1sZyB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWxnO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG59XG4lZm9udC1zaXplLXhsIHtcbiAgICBmb250LXNpemU6ICRmb250LXNpemUteGw7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC12YXI7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNTUEFDSU5HXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kc3BhY2luZy1iYXNlOiAxcmVtO1xuXG4kc3BhY2luZy14eHhsOiAkc3BhY2luZy1iYXNlICogNi42Njc7IC8vIDEyMFxuJHNwYWNpbmcteHhsOiAkc3BhY2luZy1iYXNlICogNC40NDQ7IC8vIDgwXG4kc3BhY2luZy14bDogJHNwYWNpbmctYmFzZSAqIDMuMzMzOyAvLyA2MFxuJHNwYWNpbmctbGc6ICRzcGFjaW5nLWJhc2UgKiAyLjIyMjsgLy8gNDBcbiRzcGFjaW5nLW1kOiAkc3BhY2luZy1iYXNlICogMS42Njc7IC8vIDMwXG4kc3BhY2luZy1zbTogJHNwYWNpbmctYmFzZSAqIDEuMTExOyAvLyAyMFxuJHNwYWNpbmcteHM6ICRzcGFjaW5nLWJhc2UgKiAwLjU1NjsgLy8gMTBcbiRzcGFjaW5nLXh4czogJHNwYWNpbmctYmFzZSAqIDAuMjc4OyAvLyA1XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCT1JERVJTIFdJRFRIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4kYm9yZGVyLXdpZHRoLXNtOiAxcHg7XG4kYm9yZGVyLXdpZHRoLW1kOiAkYm9yZGVyLXdpZHRoLXNtICogNTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI01JU0NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbiRjb250ZW50LW1heC13aWR0aDogNzUwcHg7XG4iLCIvLyBHbG9iYWwgcmVzZXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiosICo6YmVmb3JlLCAqOmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDt9XG5cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8geyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IGJvcmRlcjogMDsgZm9udDogaW5oZXJpdDsgZm9udC1zaXplOiAxMDAlOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cbnRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDA7IH1cbmNhcHRpb24sIHRoLCB0ZCB7IHRleHQtYWxpZ246IGxlZnQ7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbnEsIGJsb2NrcXVvdGUgeyBxdW90ZXM6IG5vbmU7IH1cbnE6YmVmb3JlLCBxOmFmdGVyLCBibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlciB7IGNvbnRlbnQ6IFwiXCI7IGNvbnRlbnQ6IG5vbmU7IH1cbmEgaW1nIHsgYm9yZGVyOiBub25lOyB9XG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkgeyBkaXNwbGF5OiBibG9jazsgfVxuXG5cbi8vIEZvcm1zLiBJZiBubyBmb3JtcywgcmVtb3ZlIHRoZXNlIGJhZCBib3lzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5idXR0b24sIGlucHV0IHsgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuYnV0dG9uLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSB7IGZvbnQtc2l6ZTogMTAwJTsgbWFyZ2luOiAwOyB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7ICp2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG5idXR0b24sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIGlucHV0W3R5cGU9XCJyZXNldFwiXSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7IGN1cnNvcjogcG9pbnRlcjsgKm92ZXJmbG93OiB2aXNpYmxlOyB9XG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsIGlucHV0OjotbW96LWZvY3VzLWlubmVyIHsgYm9yZGVyOiAwOyBwYWRkaW5nOiAwOyB9XG50ZXh0YXJlYSB7IG92ZXJmbG93OiBhdXRvOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyByZXNpemU6IHZlcnRpY2FsOyB9XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdldWNsaWQtcmVndWxhcic7XG4gIHNyYzogdXJsKCdmb250cy9FdWNsaWRGbGV4LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnZm9udHMvRXVjbGlkRmxleC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2V1Y2xpZC1yZWd1bGFyLWl0YWxpYyc7XG4gIHNyYzogdXJsKCdmb250cy9FdWNsaWRGbGV4SXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnZm9udHMvRXVjbGlkRmxleEl0YWxpYy53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2V1Y2xpZC1ib2xkJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL0V1Y2xpZEZsZXhCb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnZm9udHMvRXVjbGlkRmxleEJvbGQud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdldWNsaWQtYm9sZC1kaXRhbGljJztcbiAgc3JjOiB1cmwoJ2ZvbnRzL0V1Y2xpZEZsZXhCb2xkSXRhbGljLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnZm9udHMvRXVjbGlkRmxleEJvbGRJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTUlYSU5TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5AbWl4aW4gdGV4dC1vdmVyZmxvdygpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHdpZHRoLCAkaGVpZ2h0KSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6ICgkaGVpZ2h0IC8gJHdpZHRoKSAqIDEwMCU7XG4gIH1cbiAgPiAuY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgfVxufVxuXG5AbWl4aW4gY2xlYXJmaXgoKSB7XG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjVEVYVC1TVFlMRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi50cy10aXRsZSB7XG4gICAgQGV4dGVuZCAlZm9udC1zaXplLXhsO1xuICAgIEBleHRlbmQgJWZvbnQtYm9keS1ib2xkO1xufVxuLnRzLXN1YnRpdGxlIHtcbiAgICBAZXh0ZW5kICVmb250LXNpemUtbGc7XG4gICAgQGV4dGVuZCAlZm9udC1ib2R5LWJvbGQ7XG59XG4udHMtYm9keSB7XG4gICAgQGV4dGVuZCAlZm9udC1zaXplLW1kO1xuICAgIEBleHRlbmQgJWZvbnQtYm9keTtcbn1cbi50cy1zbWFsbCB7XG4gICAgQGV4dGVuZCAlZm9udC1zaXplLXNtO1xuICAgIEBleHRlbmQgJWZvbnQtYm9keTtcbn1cbi50cy1sYWJlbCB7XG4gICAgQGV4dGVuZCAlZm9udC1zaXplLXNtO1xuICAgIEBleHRlbmQgJWZvbnQtYm9keTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbn1cbi50cy1saW5rIHtcbiAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogcmdiYSgkYmFzZS1jb2xvciwgMC42KTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cbi50cy1ib2R5LWxpbmsge1xuICAgIGNvbG9yOiAkYWN0aW9uO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGFjdGlvbjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjVElUTEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5ib2R5IHtcbiAgICBoMSxcbiAgICBoMiB7XG4gICAgICAgIEBleHRlbmQgLnRzLXRpdGxlICFvcHRpb25hbDtcbiAgICB9XG4gICAgaDMge1xuICAgICAgICBAZXh0ZW5kIC50cy1zdWJ0aXRsZSAhb3B0aW9uYWw7XG4gICAgfVxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2IHtcbiAgICAgICAgQGV4dGVuZCAudHMtc3Vic3VidGl0bGUgIW9wdGlvbmFsO1xuICAgIH1cbiAgICBoMixcbiAgICBoMyxcbiAgICBoNCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG4gICAgaDIgKyBoMyxcbiAgICBoMyArIGg0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQQVJBR1JBUEhcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5ib2R5IHtcbiAgICBAZXh0ZW5kIC50cy1ib2R5ICFvcHRpb25hbDtcbiAgICBwIHtcbiAgICAgICAgQGV4dGVuZCAudHMtYm9keSAhb3B0aW9uYWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuOGVtO1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0xJTktcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5ib2R5IGEge1xuICAgIEBleHRlbmQgLnRzLWJvZHktbGluaztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JPTEQtSVRBTElDXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYm9keSB7XG4gICAgZW0sXG4gICAgaSB7XG4gICAgICAgIEBleHRlbmQgJWZvbnQtYm9keS1pdGFsaWM7XG4gICAgfVxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgICAgQGV4dGVuZCAlZm9udC1ib2R5LWJvbGQ7XG4gICAgfVxuICAgIGVtID4gYixcbiAgICBiID4gZW0sXG4gICAgaSA+IGIsXG4gICAgYiA+IGksXG4gICAgZW0gPiBzdHJvbmcsXG4gICAgc3Ryb25nID4gZW0sXG4gICAgaSA+IHN0cm9uZyxcbiAgICBzdHJvbmcgPiBpIHtcbiAgICAgICAgQGV4dGVuZCAlZm9udC1ib2R5LWJvbGQtaXRhbGljO1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JMT0NLUVVPVEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5ib2R5IGJsb2NrcXVvdGUge1xuICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgIGJvcmRlci1sZWZ0OiAkYm9yZGVyLXdpZHRoLXNtIHNvbGlkICRiYXNlLWNvbG9yO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAmID4gcCB7XG4gICAgICAgIEBleHRlbmQgJWZvbnQtYm9keS1pdGFsaWM7XG4gICAgfVxuICAgICYgPiBibG9ja3F1b3RlIHAge1xuICAgICAgICBAZXh0ZW5kICVmb250LWJvZHktaXRhbGljO1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0RFRklOSVRJT05TXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYm9keSBkbCB7XG4gICAgQGV4dGVuZCAudHMtYm9keSAhb3B0aW9uYWw7XG4gICAgZHQge1xuICAgICAgICBAZXh0ZW5kICVmb250LWJvZHktYm9sZDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDAuNmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJGJvcmRlci13aWR0aC1zbSBzb2xpZCAkYmFzZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjZlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC42ZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItd2lkdGgtc20gJGJhc2UtY29sb3Igc29saWQ7XG4gICAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTElTVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIE9SREVSRURcbi5ib2R5IG9sIHtcbiAgICBjb3VudGVyLXJlc2V0OiBsaTtcbiAgICBsaSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjJlbTtcbiAgICAgICAgQGV4dGVuZCAudHMtYm9keSAhb3B0aW9uYWw7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKGxpKTtcbiAgICAgICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBsaTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBAZXh0ZW5kIC50cy1ib2R5ICFvcHRpb25hbDtcbiAgICAgICAgICAgIGNvbG9yOiByZ2JhKCRiYXNlLWNvbG9yLCAwLjUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9sID4gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIH1cbn1cblxuLy8gVU5PUkRFUkVEXG4uYm9keSB1bCB7XG4gICAgbGkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4yZW07XG4gICAgICAgIEBleHRlbmQgLnRzLWJvZHkgIW9wdGlvbmFsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCLigKJcIjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBAZXh0ZW5kIC50cy1ib2R5ICFvcHRpb25hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9sID4gbGk6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1RBQkxFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYm9keSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGhlYWQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoLW1kIHNvbGlkICRiYXNlLWNvbG9yO1xuICAgIH1cbiAgICB0aCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIEBleHRlbmQgJWZvbnQtYm9keS1ib2xkO1xuICAgIH1cbiAgICB0Ym9keSB0ciB7XG4gICAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFzZS1jb2xvciwgMC4xKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0Zm9vdCB7XG4gICAgICAgIGJvcmRlci10b3A6ICRib3JkZXItd2lkdGgtbWQgc29saWQgJGJhc2UtY29sb3I7XG4gICAgfVxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICB0aCxcbiAgICAgICAgdGQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNTUEFDSU5HXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYm9keSB7XG4gICAgcCArIGgxLFxuICAgIHVsICsgaDEsXG4gICAgb2wgKyBoMSxcbiAgICBibG9ja3F1b3RlICsgaDEsXG4gICAgZmlndXJlICsgaDEsXG4gICAgcCArIGgyLFxuICAgIHVsICsgaDIsXG4gICAgb2wgKyBoMixcbiAgICBibG9ja3F1b3RlICsgaDIsXG4gICAgZmlndXJlICsgaDIsXG4gICAgcCArIGgzLFxuICAgIHVsICsgaDMsXG4gICAgb2wgKyBoMyxcbiAgICBibG9ja3F1b3RlICsgaDMsXG4gICAgZmlndXJlICsgaDMsXG4gICAgcCArIGg0LFxuICAgIHVsICsgaDQsXG4gICAgb2wgKyBoNCxcbiAgICBibG9ja3F1b3RlICsgaDQsXG4gICAgZmlndXJlICsgaDQsXG4gICAgcCArIGg1LFxuICAgIHVsICsgaDUsXG4gICAgb2wgKyBoNSxcbiAgICBibG9ja3F1b3RlICsgaDUsXG4gICAgZmlndXJlICsgaDUsXG4gICAgcCArIGg2LFxuICAgIHVsICsgaDYsXG4gICAgb2wgKyBoNixcbiAgICBibG9ja3F1b3RlICsgaDYsXG4gICAgZmlndXJlICsgaDYge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjZlbTtcbiAgICB9XG4gICAgdWwsXG4gICAgb2wsXG4gICAgLmVtYmVkLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNSVNDXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYm9keSB7XG4gICAgb2wsXG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgICBzdWIsXG4gICAgc3VwIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG4gICAgc3VwIHtcbiAgICAgICAgdG9wOiAtMC41ZW07XG4gICAgfVxuICAgIHN1YiB7XG4gICAgICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgICB9XG4gICAgc21hbGwge1xuICAgICAgICBAZXh0ZW5kICVmb250LXNpemUtc207XG4gICAgfVxuICAgIGFiYnIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoLXNtIGRvdHRlZCAkYmFzZS1jb2xvcjtcbiAgICAgICAgY3Vyc29yOiBoZWxwO1xuICAgIH1cbiAgICBxLFxuICAgIGNpdGUge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnXCInO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJ1wiJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBtYXJrIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmFzZS1jb2xvciwgMC42KTtcbiAgICAgICAgY29sb3I6ICRiYXNlLWNvbG9yO1xuICAgIH1cbiAgICBjb2RlLFxuICAgIHNhbXAsXG4gICAgcHJlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgQGV4dGVuZCAlZm9udC1zaXplLXNtO1xuICAgIH1cbiAgICBociB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYXNlLWNvbG9yO1xuICAgICAgICBoZWlnaHQ6ICRib3JkZXItd2lkdGgtc207XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAkc3BhY2luZy1tZCAwO1xuICAgIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI01FRElBXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYm9keSAuYmxvY2tfX2ltYWdlIHtcbiAgICBtYXJnaW46ICRzcGFjaW5nLWxnIGF1dG87XG4gICAgd2lkdGg6IDY2JTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICAgIHdpZHRoOiA3NSU7XG4gICAgfVxuICAgICYuc21hbGwge1xuICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgIG1hcmdpbjogJHNwYWNpbmctbGcgMCAkc3BhY2luZy1sZztcbiAgICB9XG4gICAgJi5sYXJnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cbiIsIi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2Mi4wLjBcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5AY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJzYXNzOm1hcFwiO1xuQHVzZSBcInNhc3M6bGlzdFwiO1xuQHVzZSBcInNhc3M6c3RyaW5nXCI7XG5AdXNlIFwic2FzczptZXRhXCI7XG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICAgXCJwaG9uZVwiOiAzMjBweCxcbiAgICBcInRhYmxldFwiOiA3NjhweCxcbiAgICBcImRlc2t0b3BcIjogMTAyNHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgICBcInNjcmVlblwiOiBcInNjcmVlblwiLFxuICAgIFwicHJpbnRcIjogXCJwcmludFwiLFxuICAgIFwiaGFuZGhlbGRcIjogXCJoYW5kaGVsZFwiLFxuICAgIFwibGFuZHNjYXBlXCI6IFwiKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpXCIsXG4gICAgXCJwb3J0cmFpdFwiOiBcIihvcmllbnRhdGlvbjogcG9ydHJhaXQpXCIsXG4gICAgXCJyZXRpbmEyeFwiOlxuICAgICAgICBcIigtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpXCIsXG4gICAgXCJyZXRpbmEzeFwiOlxuICAgICAgICBcIigtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpXCIsXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgICBcInB4XCI6IDEsXG4gICAgXCJlbVwiOiAwLjAxLFxuICAgIFwicmVtXCI6IDAuMSxcbiAgICBcIlwiOiAwLFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6IFwiZGVza3RvcFwiICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKFwic2NyZWVuXCIsIFwicG9ydHJhaXRcIiwgXCJsYW5kc2NhcGVcIikgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgICBAaWYgbWV0YS5mZWF0dXJlLWV4aXN0cyhcImF0LWVycm9yXCIpIHtcbiAgICAgICAgQGVycm9yICRtZXNzYWdlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAgICAgJF86IG5vb3AoKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gICAgQGlmIGltLWxvZygkbWVzc2FnZSkge1xuICAgIH1cbn1cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge1xufVxuXG4vLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICAgICAgQGlmIGltLWxvZyhcImAjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC5cIikge1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgICAgIEBpZiBub3QgbWFwLmhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAgICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgICAgICAgIEBpZiAoJHByZWZpeCA9PSBcIm1heFwiIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgICAgICAgKCRwcmVmaXggPT0gXCJtaW5cIiBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSBpZiBub3QgbGlzdC5pbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gICAgQGVhY2ggJG9wZXJhdG9yIGluIChcIj49XCIsIFwiPlwiLCBcIjw9XCIsIFwiPFwiLCBcIuKJpVwiLCBcIuKJpFwiKSB7XG4gICAgICAgIEBpZiBzdHJpbmcuaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKFwiTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC5cIik7XG59XG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAgICRwYXJzZWQtZGltZW5zaW9uOiBzdHJpbmcuc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAgICRwYXJzZWQtZGltZW5zaW9uOiBzdHItdHJpbSgkcGFyc2VkLWRpbWVuc2lvbik7XG4gICAgJGRpbWVuc2lvbjogXCJ3aWR0aFwiO1xuXG4gICAgQGlmIHN0cmluZy5sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICAgIH1cblxuICAgIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gICAgQHJldHVybiBpZihsaXN0LmluZGV4KChcIjxcIiwgXCI8PVwiLCBcIuKJpFwiKSwgJG9wZXJhdG9yKSwgXCJtYXhcIiwgXCJtaW5cIik7XG59XG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAkb3BlcmF0b3ItaW5kZXg6IHN0cmluZy5pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgICAkdmFsdWU6IHN0cmluZy5zbGljZShcbiAgICAgICAgJGV4cHJlc3Npb24sXG4gICAgICAgICRvcGVyYXRvci1pbmRleCArIHN0cmluZy5sZW5ndGgoJG9wZXJhdG9yKVxuICAgICk7XG4gICAgJHRyaW1tZWRWYWx1ZTogc3RyLXRyaW0oJHZhbHVlKTtcblxuICAgIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICR0cmltbWVkVmFsdWUpIHtcbiAgICAgICAgJHZhbHVlOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJHRyaW1tZWRWYWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICR2YWx1ZTogdG8tbnVtYmVyKCR0cmltbWVkVmFsdWUpO1xuICAgIH1cblxuICAgICRpbnRlcnZhbDogbWFwLmdldCgkdW5pdC1pbnRlcnZhbHMsIG1hdGgudW5pdCgkdmFsdWUpKTtcblxuICAgIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAgICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgICAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgICAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAgICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAgICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICAgICAkXzogaW0tbG9nKFwiVW5rbm93biB1bml0IGAje21hdGgudW5pdCgkdmFsdWUpfWAuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkb3BlcmF0b3IgPT0gXCI+XCIge1xuICAgICAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSBcIjxcIiB7XG4gICAgICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAgIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEBpZiBtYXAuaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLmdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgICB9XG5cbiAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICAgIEByZXR1cm4gXCIoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pXCI7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGlzdC5sZW5ndGgoJGxpc3QpKSB7XG4gICAgQGlmIGxpc3QubGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgICAgIEByZXR1cm4gKCk7XG4gICAgfVxuXG4gICAgJHJlc3VsdDogKCk7XG5cbiAgICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgICAgICRyZXN1bHQ6IGxpc3QuYXBwZW5kKCRyZXN1bHQsIGxpc3QubnRoKCRsaXN0LCAkaSksIGNvbW1hKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gICAgQGlmIG1ldGEudHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIge1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICB9IEBlbHNlIGlmIG1ldGEudHlwZS1vZigkdmFsdWUpICE9IFwic3RyaW5nXCIge1xuICAgICAgICAkXzogaW0tbG9nKFwiVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy5cIik7XG4gICAgfVxuXG4gICAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICAgJHJlc3VsdDogMDtcbiAgICAkZGlnaXRzOiAwO1xuICAgICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gXCItXCIpO1xuICAgICRudW1iZXJzOiAoXG4gICAgICAgIFwiMFwiOiAwLFxuICAgICAgICBcIjFcIjogMSxcbiAgICAgICAgXCIyXCI6IDIsXG4gICAgICAgIFwiM1wiOiAzLFxuICAgICAgICBcIjRcIjogNCxcbiAgICAgICAgXCI1XCI6IDUsXG4gICAgICAgIFwiNlwiOiA2LFxuICAgICAgICBcIjdcIjogNyxcbiAgICAgICAgXCI4XCI6IDgsXG4gICAgICAgIFwiOVwiOiA5LFxuICAgICk7XG5cbiAgICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gXCIrXCIgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSBcIi1cIikge1xuICAgICAgICAkdmFsdWU6IHN0cmluZy5zbGljZSgkdmFsdWUsIDIpO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyaW5nLmxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgJGNoYXJhY3Rlcjogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgICAgICBAaWYgbm90KGxpc3QuaW5kZXgobWFwLmtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09IFwiLlwiKVxuICAgICAgICB7XG4gICAgICAgICAgICBAcmV0dXJuIHRvLWxlbmd0aChcbiAgICAgICAgICAgICAgICBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSxcbiAgICAgICAgICAgICAgICBzdHJpbmcuc2xpY2UoJHZhbHVlLCAkaSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAgICAgICAkZGlnaXRzOiAxO1xuICAgICAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAuZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWF0aC5kaXYobWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3RlciksICRkaWdpdHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAgICR1bml0czogKFxuICAgICAgICBcInB4XCI6IDFweCxcbiAgICAgICAgXCJjbVwiOiAxY20sXG4gICAgICAgIFwibW1cIjogMW1tLFxuICAgICAgICBcIiVcIjogMSUsXG4gICAgICAgIFwiY2hcIjogMWNoLFxuICAgICAgICBcInBjXCI6IDFwYyxcbiAgICAgICAgXCJpblwiOiAxaW4sXG4gICAgICAgIFwiZW1cIjogMWVtLFxuICAgICAgICBcInJlbVwiOiAxcmVtLFxuICAgICAgICBcInB0XCI6IDFwdCxcbiAgICAgICAgXCJleFwiOiAxZXgsXG4gICAgICAgIFwidndcIjogMXZ3LFxuICAgICAgICBcInZoXCI6IDF2aCxcbiAgICAgICAgXCJ2bWluXCI6IDF2bWluLFxuICAgICAgICBcInZtYXhcIjogMXZtYXgsXG4gICAgKTtcblxuICAgIEBpZiBub3QgbGlzdC5pbmRleChtYXAua2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICAgICAkXzogaW0tbG9nKFwiSW52YWxpZCB1bml0IGAjeyR1bml0fWAuXCIpO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHZhbHVlICogbWFwLmdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0cmltXG4vLy8gQGF1dGhvciBKYWNrIE1jTmljb2xcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gVHJpbXMgYSBzdHJpbmcgb2YgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAtIFZhbHVlIHRvIGJlIHRyaW1tZWRcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ31cbi8vL1xuXG5AZnVuY3Rpb24gc3RyLXRyaW0oJHN0cmluZykge1xuICAgIEBpZiAoc3RyaW5nLnNsaWNlKCRzdHJpbmcsIDEsIDEpID09IFwiIFwiKSB7XG4gICAgICAgIEByZXR1cm4gc3RyLXRyaW0oc3RyaW5nLnNsaWNlKCRzdHJpbmcsIDIpKTtcbiAgICB9IEBlbHNlIGlmIChzdHJpbmcuc2xpY2UoJHN0cmluZywgc3RyaW5nLmxlbmd0aCgkc3RyaW5nKSwgLTEpID09IFwiIFwiKSB7XG4gICAgICAgIEByZXR1cm4gc3RyLXRyaW0oc3RyaW5nLnNsaWNlKCRzdHJpbmcsIDEsIC0yKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gJHN0cmluZztcbiAgICB9XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAgICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAgIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAgICRicmVha3BvaW50czogbWFwLm1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAgICRtZWRpYS1leHByZXNzaW9uczogbWFwLm1lcmdlKFxuICAgICAgICAkbWVkaWEtZXhwcmVzc2lvbnMsXG4gICAgICAgICR0d2Vhay1tZWRpYS1leHByZXNzaW9uc1xuICAgICkgIWdsb2JhbDtcblxuICAgIEBjb250ZW50O1xuXG4gICAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAgICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAgICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICAgIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxpc3QubGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgICAoXG4gICAgICAgICAgICBub3RcbiAgICAgICAgICAgICAgICAkaW0tbWVkaWEtc3VwcG9ydCBhbmRcbiAgICAgICAgICAgICAgICBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKVxuICAgICAgICApXG4gICAge1xuICAgICAgICBAY29udGVudDtcbiAgICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGlzdC5sZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgICAgICBAbWVkaWEgI3tzdHJpbmcudW5xdW90ZShwYXJzZS1leHByZXNzaW9uKGxpc3QubnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAgICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgICAgICAgJHNsaWNlZC1jb25kaXRpb25zOiBzbGljZSgkY29uZGl0aW9ucywgMik7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkc2xpY2VkLWNvbmRpdGlvbnMuLi4pIHtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNRURJQVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmltZyxcbnZpZGVvLFxub2JqZWN0IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG5pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5pbWcuaW1hZ2UtbGF6eSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgJjpub3QoLmxhenlsb2FkZWQpIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLWluLW91dDtcbiAgICB9XG4gICAgJi5sYXp5bG9hZGVkIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAxcyBlYXNlLWluLW91dDtcbiAgICB9XG59XG5cbmZpZ2NhcHRpb24ge1xuICAgIEBleHRlbmQgJWZvbnQtc2l6ZS1zbTtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy14cztcbn1cblxuLy8gLmVtYmVkLWNvbnRhaW5lciB7XG4vLyAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbi8vICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTtcbi8vICAgaGVpZ2h0OiAwO1xuLy8gICBvdmVyZmxvdzogaGlkZGVuO1xuLy8gICBtYXgtd2lkdGg6IDEwMCU7XG4vLyB9XG4vLyAuZW1iZWQtY29udGFpbmVyIGlmcmFtZSxcbi8vIC5lbWJlZC1jb250YWluZXIgb2JqZWN0LFxuLy8gLmVtYmVkLWNvbnRhaW5lciBlbWJlZCB7XG4vLyAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgdG9wOiAwO1xuLy8gICBsZWZ0OiAwO1xuLy8gICB3aWR0aDogMTAwJTtcbi8vICAgaGVpZ2h0OiAxMDAlO1xuLy8gfVxuXG4uZW1iZWQtY29udGFpbmVyIHZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIGhlaWdodDogYXV0bztcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNNSVNDXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5oaWRkZW4tc21hbGwge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxnXCIpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbi5oaWRkZW4tbGFyZ2Uge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sZ1wiKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5uYXZfX2xpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5jbGVhciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjR0xPQkFMXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ud3JhcHBlciB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAuZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICB9XG59XG5cbiVjb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiA1JTtcbiAgcGFkZGluZy1yaWdodDogNSU7XG4gIG1heC13aWR0aDogMTYwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4lcGFnZS1jb250YWluZXIge1xuICBAZXh0ZW5kICVjb250YWluZXI7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2luZy14bDtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXhsO1xufVxuXG4lY29udGVudC1tYXgtd2lkdGgge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNIRUFERVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5oZWFkZXIge1xuICAgIGJvcmRlci10b3A6ICRjb2xvci1tc2ggJGJvcmRlci13aWR0aC1tZCBzb2xpZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiAkZ3JheSAkYm9yZGVyLXdpZHRoLXNtIHNvbGlkO1xuICAgIHBhZGRpbmc6ICRzcGFjaW5nLXNtIDAgJHNwYWNpbmctc20gMDtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAyO1xufVxuXG4uaGVhZGVyLWRldGFpbCB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXhsO1xuICAgIC5kZXRhaWxfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5oZWFkZXJfX2lubmVyIHtcbiAgICBAZXh0ZW5kICVjb250YWluZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vLyBAaW5jbHVkZSBtZWRpYShcIj49bWRcIikge1xuLy8gICAgIC5oZWFkZXIgLm5hdi0tcHJpbWFyeSB7XG4vLyAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vICAgICAgICAgdG9wOiA1MCU7XG4vLyAgICAgICAgIGxlZnQ6IDUwJTtcbi8vICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4vLyAgICAgfVxuLy8gfVxuXG4ubG9nb19fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIwMHB4O1xufVxuXG4ubG9nb19faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgJi5pY29uLS1zZWFyY2gge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi9hc3NldHMvZnJvbnQvaW1hZ2VzL2ljb24tc2VhcmNoLnN2Z1wiKSBjZW50ZXJcbiAgICAgICAgICAgIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgfVxuICAgICYuaWNvbi0tbWVudSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uLy4uL2Fzc2V0cy9mcm9udC9pbWFnZXMvaWNvbi1tZW51LnN2Z1wiKSBjZW50ZXIgY2VudGVyXG4gICAgICAgICAgICBuby1yZXBlYXQ7XG4gICAgfVxuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAhaW1wb3J0YW50O1xuICAgIC5pY29uLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gaGVhZGVyIGRlc2t0b3BcbkBpbmNsdWRlIG1lZGlhKFwiPj1sZ1wiKSB7XG4gICAgLm1lbnUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gICAgLmljb24tLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLy8gaGVhZGVyIG1vYmlsZVxuQGluY2x1ZGUgbWVkaWEoXCI8bGdcIikge1xuICAgIC5tZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5pY29uLS1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIHJpZ2h0OiA1JTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTkFWXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ubmF2X19saW5rIHtcbiAgICBAZXh0ZW5kIC50cy1ib2R5O1xuICAgIEBleHRlbmQgLnRzLWxpbms7XG59XG5cbkBpbmNsdWRlIG1lZGlhKFwiPj1sZ1wiKSB7XG4gICAgLm5hdiAubmF2X19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAubmF2X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXNtO1xuICAgIH1cbn1cblxuLm5hdi0tc2Vjb25kYXJ5IHtcbiAgICBwYWRkaW5nOiAkc3BhY2luZy1zbSAwICRzcGFjaW5nLXNtIDA7XG4gICAgLm5hdl9faXRlbSB7XG4gICAgICAgIGJvcmRlci10b3A6ICRib3JkZXItd2lkdGgtc20gc29saWQgJGdyYXk7XG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoLXNtIHNvbGlkICRncmF5O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sZ1wiKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5hdl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmcteHM7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy14cztcbiAgICB9XG4gICAgLmlzLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYm9yZGVyLXdpZHRoLW1kIHNvbGlkICRjb2xvci1tc2g7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYShcIjxsZ1wiKSB7XG4gICAgLm5hdi0tcHJpbWFyeSB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXNtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbTtcbiAgICB9XG4gICAgLm5hdi0tcHJpbWFyeSAubmF2X19pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmcteHM7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItd2lkdGgtc20gc29saWQgJGdyYXk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXhzO1xuICAgIH1cbn1cblxuLm5hdi0tbGFuZyAubmF2X19saW5rOm5vdCguaXMtYWN0aXZlKSB7XG4gICAgY29sb3I6ICRncmF5O1xuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4gICAgfVxufVxuXG4udG9vbHMge1xuICAgIC5uYXYsXG4gICAgLm5hdl9faXRlbSxcbiAgICAuaWNvbi0tc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAubmF2X19pdGVtIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14cztcbiAgICB9XG59XG5cbi5uYXYtLXByaW1hcnkge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1sZ1wiKSB7XG4gICAgICAgIC5uYXZfX2xpbmsge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyOmFmdGVyLFxuICAgICAgICAgICAgJi5pcy1hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkYm9yZGVyLXdpZHRoLW1kO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tc2g7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgdG9wOiAzLjFlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNIRVJPXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaGVybyB7XG4gICAgaGVpZ2h0OiA3NXZoO1xuICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aC1zbSBzb2xpZCAkZ3JheTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDY2dmg7XG4gICAgfVxuXG4gICAgLmNhcm91c2VsX19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY2Fyb3VzZWxfX2xlZnQsXG4gICAgLmNhcm91c2VsX19yaWdodCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgfVxuXG4gICAgLmNhcm91c2VsX19sZWZ0IHtcbiAgICAgICAgLmJsb2NrX19tZWRpYSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogOHZoIDEydnc7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxtZFwiKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTUlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZTNlMztcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDI0cHggMCByZ2JhKDQsIDQsIDQsIDAuNSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcm91c2VsX19yaWdodCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxtZFwiKSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA2NiU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICAvLyAgICAgZmxleC1iYXNpczogMjUlO1xuICAgICAgICAvLyB9XG4gICAgICAgIC5zbGlkZSB7XG4gICAgICAgICAgICBtYXJnaW46IDUlIDUwcHggNSUgNSU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVfX3RpdGxlIHtcbiAgICAgICAgQGV4dGVuZCAudHMtdGl0bGU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc207XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1tZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2xpZGVfX3N1YnRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBAZXh0ZW5kIC50cy1zdWJ0aXRsZTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4xZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXhzO1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgIH1cbiAgICAuc2xpZGVfX2xpbmsge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkYmxhY2s7XG4gICAgfVxuXG4gICAgLy8gRXhjZXB0aW9uIHBvdXIgbGUgZm9uZCB0cmFuc3BhcmVudFxuICAgIC5jYXJvdXNlbF9faXRlbS5jb2xvci1jZW50cmUtZGUtdGhlb3JpZS1wb2xpdGlxdWUgLmNhcm91c2VsX19sZWZ0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGdyYXk7XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JMT0NLXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYmxvY2tfX2lubmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoLXNtIHNvbGlkICRncmF5O1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4uYmxvY2tfX2xpbmsge1xuICAgIEBleHRlbmQgLnRzLWxpbms7XG59XG5cbi5ibG9ja19fc2VjdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uYmxvY2tfX3RleHQsXG4uYmxvY2tfX2luZm8ge1xuICAgIHBhZGRpbmctbGVmdDogJHNwYWNpbmctc207XG4gICAgcGFkZGluZy1yaWdodDogJHNwYWNpbmctc207XG59XG5cbi5ibG9ja19fdGV4dCB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXNtO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy1zbTtcbn1cbi5ibG9ja19fdGl0bGUge1xuICAgIEBleHRlbmQgLnRzLXN1YnRpdGxlO1xufVxuLmJsb2NrX19zdWJ0aXRsZSB7XG4gICAgQGV4dGVuZCAudHMtYm9keTtcbn1cbi5ibG9ja19fZXhjZXJwdCB7XG4gICAgQGV4dGVuZCAudHMtYm9keTtcbiAgICAuYmxvY2tfX3RpdGxlICsgJixcbiAgICAuYmxvY2tfX3N1YnRpdGxlICsgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXhzO1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgQGV4dGVuZCAudHMtYm9keS1saW5rO1xuICAgIH1cbn1cbi5ibG9ja19fY29udGVudC5qcy1jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy14cztcbn1cblxuLmJsb2NrX190aW1lIHtcbiAgICBAZXh0ZW5kIC50cy1ib2R5O1xuICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXhzO1xufVxuLmJsb2NrX19pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgLnB1YmxpY2F0aW9uLWRhdGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbTtcbiAgICB9XG59XG4ucHVibGljYXRpb24tZGF0ZSB7XG4gICAgQGV4dGVuZCAudHMtbGFiZWw7XG59XG5cbi5ibG9ja19fbWVkaWEge1xuICAgID4gcGljdHVyZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLmJsb2NrLS1wdWJsaWNhdGlvbiAuYmxvY2tfX2xpbmsge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1zbVwiKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC5ibG9ja19fbWVkaWEge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuICAgICAgICAuYmxvY2tfX3RleHQge1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYmxvY2tfX21lZGlhIHtcbiAgICAgICAgcGFkZGluZzogJHNwYWNpbmctc20gMCAkc3BhY2luZy1zbSAkc3BhY2luZy1zbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxzbVwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjaW5nLXNtO1xuICAgICAgICB9XG4gICAgICAgIHBpY3R1cmUge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogM3B4IDNweCAwIHJnYmEoJGJhc2UtY29sb3IsIDAuMTUpO1xuICAgICAgICAgICAgLy8gYm94LXNoYWRvdzogcmdiYSgkYmFzZS1jb2xvciwgMC4yNSkgNHB4IDRweCA0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQkxPQ0stRVZFTlRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5ibG9jay0tZXZlbnQgLmJsb2NrX19tZWRpYSB7XG4gICAgcGFkZGluZzogJHNwYWNpbmctc207XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICBwYWRkaW5nOiAkc3BhY2luZy1sZztcbiAgICB9XG4gICAgcGljdHVyZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAyNHB4IDAgcmdiYSgkYmFzZS1jb2xvciwgMC41KTtcbiAgICAgICAgb2JqZWN0LWZpdDogZmlsbCAhaW1wb3J0YW50O1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgIH1cbn1cblxuLy8gY29sb3JzXG4uYmxvY2stLWV2ZW50IHtcbiAgICAuYmxvY2tfX21lZGlhLmNvbG9yLW1zaCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1tc2g7XG4gICAgfVxuICAgIC5ibG9ja19fbWVkaWEuY29sb3ItbGlldSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1saWV1O1xuICAgIH1cbiAgICAuYmxvY2tfX21lZGlhLmNvbG9yLXN0cmlnZXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc3RyaWdlcztcbiAgICB9XG4gICAgLmJsb2NrX19tZWRpYS5jb2xvci1vbWFtIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW9tYW07XG4gICAgfVxuICAgIC5ibG9ja19fbWVkaWEuY29sb3ItZWFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1lYXN0O1xuICAgIH1cbiAgICAuYmxvY2tfX21lZGlhLmNvbG9yLWFtZXJpY2FzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWFtZXJpY2FzO1xuICAgIH1cbiAgICAuYmxvY2tfX21lZGlhLmNvbG9yLW1vZGVybml0YXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbW9kZXJuaXRhcztcbiAgICB9XG4gICAgLmJsb2NrX19tZWRpYS5jb2xvci1jcmVnIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWNyZWc7XG4gICAgfVxuICAgIC5ibG9ja19fbWVkaWEuY29sb3ItcmF0aW8tZGgge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcmF0aW8tZGg7XG4gICAgfVxufVxuXG4vLyBkZXNrdG9wXG5AaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgIC5ibG9jay0tZXZlbnQgLmJsb2NrX19pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC5ibG9ja19fc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgICAgICAgLmJsb2NrX19saW5rLFxuICAgICAgICAgICAgLmJsb2NrX19tZWRpYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuYmxvY2tfX3NlY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjQkxPQ0stVEVBTVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmJsb2NrLS10ZWFtLXByaW1hcnkgLmJsb2NrX19saW5rLFxuLmJsb2NrLS10ZWFtLXNlY29uZGFyeSAuYmxvY2tfX2lubmVyIHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAuYmxvY2tfX21lZGlhIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIH1cbiAgICAgICAgLmJsb2NrX190ZXh0IHtcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJsb2NrX19tZWRpYSB7XG4gICAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLXNtIDAgJHNwYWNpbmctc20gJHNwYWNpbmctc207XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmctc207XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gc2Vjb25kYXJ5XG4uYmxvY2stLXRlYW0tc2Vjb25kYXJ5IC5ibG9ja19faW5uZXIge1xuICAgIC5ibG9ja19fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXNtO1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXhzO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXNtXCIpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLmJsb2NrX19tZWRpYSB7XG4gICAgICAgICAgICB3aWR0aDogMTAlO1xuICAgICAgICB9XG4gICAgICAgIC5ibG9ja19fdGV4dCB7XG4gICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0JMT0NLLU1FTUJFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmJsb2NrLS1tZW1iZXIgLmJsb2NrX19tZWRpYSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogJHNwYWNpbmctc207XG59XG5cbi5ibG9jay0tbWVtYmVyIC5ibG9ja19fbWVkaWEsXG4uZGV0YWlsLS1tZW1iZXIgLmRldGFpbF9fbWVkaWEge1xuICAgIGltZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEyMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4uaW5kZXgtLXNtIC5ibG9jay0tbWVtYmVyIHtcbiAgICAuYmxvY2tfX2lubmVyLFxuICAgIC5ibG9ja19fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICAuYmxvY2tfX2V4Y2VycHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuYmxvY2tfX2luZm8ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLnRhZ3Mge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNpbmcteHM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJsb2NrX19tZWRpYSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmctc207XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNCVVRUT05cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5idXR0b24ge1xuICAvLyByZXNldFxuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIC8vIHByb3BlcnRpZXNcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAZXh0ZW5kIC50cy1zdWJ0aXRsZTtcbiAgY29sb3I6ICRiYXNlLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBhZGRpbmctYm90dG9tOiAuM2VtO1xuICBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoLXNtIHNvbGlkICRiYXNlLWNvbG9yO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1RBR1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi50YWdzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLnRhZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2luZy14cztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14cztcbn1cbi50YWdfX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmF5O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBleHRlbmQgLnRzLWxhYmVsO1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGgtc20gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZ3JheTtcbiAgICB9XG4gICAgLmxhcmdlICYge1xuICAgICAgICBwYWRkaW5nOiAwLjRlbSAwLjhlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBAZXh0ZW5kICVmb250LXNpemUtbWQ7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPG1kXCIpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMmVtIDAuNWVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXNtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gY29sb3JzXG4udGFnX19saW5rLFxuLmNhcm91c2VsX19sZWZ0IHtcbiAgICBbY2xhc3MqPVwibXNoXCJdICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbXNoO1xuICAgIH1cbiAgICBbY2xhc3MqPVwibGlldVwiXSAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWxpZXU7XG4gICAgfVxuICAgIFtjbGFzcyo9XCJzdHJpZ2VzXCJdICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc3RyaWdlcztcbiAgICB9XG4gICAgW2NsYXNzKj1cIm9tYW1cIl0gJiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1vbWFtO1xuICAgIH1cbiAgICBbY2xhc3MqPVwiZWFzdFwiXSAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVhc3Q7XG4gICAgfVxuICAgIFtjbGFzcyo9XCJhbWVyaWNhc1wiXSAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWFtZXJpY2FzO1xuICAgIH1cbiAgICBbY2xhc3MqPVwibW9kZXJuaXRhc1wiXSAmIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLW1vZGVybml0YXM7XG4gICAgfVxuICAgIFtjbGFzcyo9XCJjcmVnXCJdICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItY3JlZztcbiAgICB9XG4gICAgW2NsYXNzKj1cInJhdGlvLWRoXCJdICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItcmF0aW8tZGg7XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0lOVFJPXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uaW50cm8ge1xuICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbGc7XG4gIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy14bDtcbn1cbi5pbnRyb19faW5uZXIge1xuICBAZXh0ZW5kIC50cy1zdWJ0aXRsZTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICNQQUdJTkFUSU9OXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4ucGFnaW5hdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiAkc3BhY2luZy1tZDtcblxufVxuXG4ucGFnaW5hdGlvbl9fbGlzdHtcbiAgQGluY2x1ZGUgbWVkaWEoXCI+PXNtXCIpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxufVxuXG4ucGFnaW5hdGlvbl9fbGlzdCBsaXtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG59XG5cbi5wYWdpbmF0aW9uX19saW5rIHtcbiAgQGV4dGVuZCAuYnV0dG9uO1xuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteHM7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjRk9PVEVyXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZm9vdGVyIHtcbiAgICBAZXh0ZW5kICVjb250YWluZXI7XG4gICAgYm9yZGVyLXRvcDogJGJvcmRlci13aWR0aC1zbSBzb2xpZCAkZ3JheTtcbn1cbi5mb290ZXJfX2lubmVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgI3tjYWxjKCRncmlkLWd1dHRlci13aWR0aCAvIDIpfSk7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBwYWRkaW5nLXRvcDogJHNwYWNpbmctbWQ7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+PXNtXCIpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG59XG4uZm9vdGVyX19zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gICAgcGFkZGluZy1yaWdodDogY2FsYygkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1tZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gMyk7XG4gICAgfVxufVxuXG4uZm9vdGVyIC5ib2R5IHtcbiAgICBoMiB7XG4gICAgICAgIEBleHRlbmQgLnRzLXN1YnRpdGxlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjNlbTtcbiAgICB9XG4gICAgcCB7XG4gICAgICAgIEBleHRlbmQgLnRzLWJvZHk7XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0ZPUk1cblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cblxuLmZvcm0ge1xuICBsYWJlbCB7XG4gICAgQGV4dGVuZCAudHMtYm9keTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy14cztcbiAgfVxuICAuaW5wdXQtZ3JvdXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6ICRib3JkZXItd2lkdGgtc20gc29saWQgJGdyYXk7XG4gICAgd2lkdGg6ICRjb250ZW50LW1heC13aWR0aDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaW5wdXQsXG4gICAgYnV0dG9uIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGhlaWdodDogNDVweDtcbiAgICB9XG4gICAgaW5wdXQge1xuICAgICAgQGV4dGVuZCAudHMtYm9keTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6ICRzcGFjaW5nLXhzICRzcGFjaW5nLXhzO1xuICAgIH1cbiAgICBidXR0b257XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBmb250LXNpemU6IDA7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGJhY2tncm91bmQ6IHVybCgnaW1hZ2VzL2ljb24tY2hlY2suc3ZnJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiAgLm5vLXRvdWNoZXZlbnRzIC5mb3JtIGJ1dHRvbjpob3ZlciB7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cbiIsIi8qISBGbGlja2l0eSB2Mi4zLjBcbmh0dHBzOi8vZmxpY2tpdHkubWV0YWZpenp5LmNvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uZmxpY2tpdHktZW5hYmxlZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmZsaWNraXR5LWVuYWJsZWQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG59XG4uZmxpY2tpdHktdmlld3BvcnQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5mbGlja2l0eS1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4uZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUge1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cbi5mbGlja2l0eS1lbmFibGVkLmlzLWRyYWdnYWJsZSAuZmxpY2tpdHktdmlld3BvcnQge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgICBjdXJzb3I6IGdyYWI7XG59XG4uZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUgLmZsaWNraXR5LXZpZXdwb3J0LmlzLXBvaW50ZXItZG93biB7XG4gICAgY3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4uZmxpY2tpdHktYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDI0cHggMCByZ2JhKCRiYXNlLWNvbG9yLCAwLjUpO1xufVxuLmZsaWNraXR5LWJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGJlaWdlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5mbGlja2l0eS1idXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG59XG4uZmxpY2tpdHktYnV0dG9uOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMC42O1xufVxuLmZsaWNraXR5LWJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5mbGlja2l0eS1idXR0b24taWNvbiB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xufVxuLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ge1xuICAgIHRvcDogNTAlO1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPG1kXCIpIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICB9XG59XG4uZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5wcmV2aW91cyB7XG4gICAgbGVmdDogMTBweDtcbn1cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLm5leHQge1xuICAgIHJpZ2h0OiAxMHB4O1xufVxuLmZsaWNraXR5LXJ0bCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5wcmV2aW91cyB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMTBweDtcbn1cbi5mbGlja2l0eS1ydGwgLmZsaWNraXR5LXByZXYtbmV4dC1idXR0b24ubmV4dCB7XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogMTBweDtcbn1cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIC5mbGlja2l0eS1idXR0b24taWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDIwJTtcbiAgICB0b3A6IDIwJTtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNjAlO1xufVxuLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogLTI1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG4uZmxpY2tpdHktcnRsIC5mbGlja2l0eS1wYWdlLWRvdHMge1xuICAgIGRpcmVjdGlvbjogcnRsO1xufVxuLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbjogMCA4cHg7XG4gICAgYmFja2dyb3VuZDogIzMzMztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb3BhY2l0eTogMC4yNTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZmxpY2tpdHktcGFnZS1kb3RzIC5kb3QuaXMtc2VsZWN0ZWQge1xuICAgIG9wYWNpdHk6IDE7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjSU5ERVhcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pbmRleCB7XG4gICAgQGV4dGVuZCAlY29udGFpbmVyO1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy14bDtcbiAgICBwYWRkaW5nLWJvdHRvbTogJHNwYWNpbmcteGw7XG4gICAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aC1zbSBzb2xpZCAkZ3JheTtcbn1cblxuLmluZGV4X190aXRsZSB7XG4gICAgQGV4dGVuZCAudHMtdGl0bGU7XG59XG5cbi5pbmRleF9fdGl0bGUgKyAuaW5kZXhfX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6ICRzcGFjaW5nLXhsO1xufVxuXG4uaW5kZXhfX3RpdGxlICsgLm5hdiB7XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmctc207XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteGw7XG59XG4ubmF2LS15ZWFycyAuaXMtYWN0aXZlIHtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyLXdpZHRoLXNtIHNvbGlkICRjb2xvci1tc2g7XG59XG5cbi5pbmRleCAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogJHNwYWNpbmcteHM7XG59XG4uaW5kZXhfX3RpdGxlICsgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbGc7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5pbmRleF9fY29udGVudCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArICN7JGdyaWQtZ3V0dGVyLXdpZHRofSk7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAuYmxvY2sge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMik7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLW1kO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5pbmRleC0tZW1wdHkgLmludHJvIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmluZGV4LS1ldmVudHM6bm90KC5pbmRleC0tc20pLFxuLmluZGV4LS10ZWFtczpub3QoLmluZGV4LS1zbSksXG4uaW5kZXgtLW1lbWJlcnM6bm90KC5pbmRleC0tc20pIHtcbiAgICAuYmxvY2sge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaW5kZXgtLW5ld3M6bm90KC5pbmRleC0tc20pLFxuLmluZGV4LS12aWRlb3M6bm90KC5pbmRleC0tc20pLFxuLmluZGV4LS1wdWJsaWNhdGlvbnM6bm90KC5pbmRleC0tc20pIHtcbiAgICAuYmxvY2sge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIj49c21cIikge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvIDMpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaW5kZXgtLXRlYW1zIC5pbnRybyB7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG4vLyAuaW5kZXgtLW1lbWJlcnMge1xuLy8gICAgIGJvcmRlci1ib3R0b206IDA7XG4vLyAgICAgcGFkZGluZy1ib3R0b206IDA7XG4vLyB9XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjSU5ERVgtU01BTExcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5pbmRleC0tc20gLmJsb2NrIHtcbiAgQGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmcteHM7XG4gIH1cbn1cbi8vIGV2ZW50XG4uaW5kZXgtLXNtIC5ibG9jay0tZXZlbnQge1xuICAuYmxvY2tfX3NlY3Rpb246Zmlyc3QtY2hpbGQge2Rpc3BsYXk6IG5vbmU7fVxuICAuYmxvY2tfX3NlY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAuYmxvY2tfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICB9XG4gICAgICAuYmxvY2tfX3RpbWUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBvcmRlcjogMztcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRzcGFjaW5nLXhzO1xuICAgICAgfVxuICAgICAgLnB1YmxpY2F0aW9uLWRhdGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaW5kZXgtLXNtIC5pbmRleF9fdGl0bGV7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjaW5nLXhzO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI0RFVEFJTFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmRldGFpbCB7XG4gICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLXhsO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy14bDtcbn1cblxuLmRldGFpbF9faW5uZXIge1xuICAgIEBleHRlbmQgJWNvbnRhaW5lcjtcbiAgICBtYXgtd2lkdGg6ICRjb250ZW50LW1heC13aWR0aCAqIDI7XG4gICAgLy8gYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1zbVwiKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC5kZXRhaWxfX3RleHQsXG4gICAgICAgIC5kZXRhaWxfX21lZGlhIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlsX190ZXh0IHtcbiAgICAgICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIH1cbiAgICAgICAgLmRldGFpbF9fbWVkaWEge1xuICAgICAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgfVxuICAgICAgICAudGV4dF9faW5uZXIsXG4gICAgICAgIC5kZXRhaWxfX21lZGlhIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udGV4dF9faW5uZXIge1xuICAgIG1heC13aWR0aDogJGNvbnRlbnQtbWF4LXdpZHRoO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2luZy14bDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRncmlkLWd1dHRlci13aWR0aDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuICAgIH1cbn1cblxuLmRldGFpbF9fdGl0bGUge1xuICAgIEBleHRlbmQgLnRzLXRpdGxlO1xuICAgIHBhZGRpbmctdG9wOiAkc3BhY2luZy14cztcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbTtcbn1cbi5kZXRhaWxfX3N1YnRpdGxlIHtcbiAgICBAZXh0ZW5kIC50cy1zdWJ0aXRsZTtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1zbTtcbiAgICAuZGV0YWlsX190aXRsZSArICYge1xuICAgICAgICBtYXJnaW4tdG9wOiAtJHNwYWNpbmctc207XG4gICAgfVxufVxuLmRldGFpbF9fdGl0bGUgKyAuZGV0YWlsX19pbnRybyB7XG4gICAgbWFyZ2luLXRvcDogLSRzcGFjaW5nLXhzO1xufVxuLmRldGFpbF9fdGltZSB7XG4gICAgQGV4dGVuZCAudHMtc3VidGl0bGU7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctc207XG4gICAgLmRldGFpbF9fdGl0bGUgKyAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLSRzcGFjaW5nLXhzO1xuICAgIH1cbn1cblxuLmRldGFpbF9fbWVkaWEge1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHNtXCIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNpbmctbGc7XG4gICAgfVxuICAgIC5nYWxsZXJ5X19pdGVtICsgLmdhbGxlcnlfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tdG9wOiAkc3BhY2luZy1zbTtcbiAgICB9XG4gICAgPiBwaWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4uZGV0YWlsX19pbnRyby5ib2R5IHAge1xuICAgIEBleHRlbmQgLnRzLXN1YnRpdGxlO1xufVxuLmRldGFpbF9fZmVhdHVyZWQtaW1nIHtcbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTIwcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8c21cIikge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1sZztcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1zbVwiKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3BhY2luZy1zbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLXNtO1xuICAgIH1cbn1cblxuLmRldGFpbCB7XG4gICAgLnB1YmxpY2F0aW9uLWRhdGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZy10b3A6ICRzcGFjaW5nLW1kO1xuICAgIH1cbiAgICAucHVibGljYXRpb24tZGF0ZSArIC5kZXRhaWxfX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNpbmcteHM7XG4gICAgfVxuICAgIC50YWdzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNwYWNpbmctbWQ7XG4gICAgfVxufVxuXG4uZGV0YWlsLS1tZW1iZXIge1xuICAgIC5kZXRhaWxfX2lubmVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLmRldGFpbF9fdGV4dCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgb3JkZXI6IDI7XG4gICAgfVxuICAgIC5kZXRhaWxfX21lZGlhIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgb3JkZXI6IDE7XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1BBR0VcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjU0VBUkNIXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uZm9ybS0tc2VhcmNoIHtcbiAgbWFyZ2luLXRvcDogJHNwYWNpbmcteGw7XG4gIC5pbnB1dC1ncm91cCB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAjTEFZT1VULUlOREVYSElCSVRcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5sYXlvdXQtLWluZGV4aGliaXQge1xuICAgIEBleHRlbmQgJWNvbnRhaW5lcjtcbiAgICBzZWN0aW9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPj1zbVwiKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC5jb2wxIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAyMDBweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGdyaWQtZ3V0dGVyLXdpZHRoO1xuICAgICAgICAgICAgLm5hdl9faXRlbSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmNvbDIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgLmhlYWRlci1kZXRhaWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgIHRvcDogJHNwYWNpbmcteHhsO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjaW5nLWxnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgI1BSSU5UIFNUWUxFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5cbkBtaXhpbiBwcmludC1zdHlsZSB7XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IDJjbSAyLjVjbTtcbiAgfVxuICBib2R5IHtcbiAgICBmb250LWZhbWlseTogR2VvcmdpYSwgVGltZXMsIFRpbWVzIE5ldyBSb21hbiwgc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB0O1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB0O1xuICAgIGNvbG9yOiAjMDAwMDAwO1xuICB9XG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHAsXG4gIHVsLFxuICBvbCB7XG4gICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsIFRpbWVzLCBUaW1lcyBOZXcgUm9tYW4sIHNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgXHRmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgXHRmb250LXdlaWdodDogNDAwO1xuICB9XG4gIGgxIHtcbiAgXHRmb250LXNpemU6IDMycHQ7XG4gIFx0bGluZS1oZWlnaHQ6IDQwcHQ7XG4gIH1cbiAgaDIge1xuICBcdGZvbnQtc2l6ZTogMjRwdDtcbiAgXHRsaW5lLWhlaWdodDogMzBwdDtcbiAgfVxuICBoMyB7XG4gIFx0Zm9udC1zaXplOiAyMHB0O1xuICBcdGxpbmUtaGVpZ2h0OiAyNnB0O1xuICB9XG4gIGg0IHtcbiAgXHRmb250LXNpemU6IDE0cHQ7XG4gIFx0bGluZS1oZWlnaHQ6IDIwcHQ7XG4gIH1cbiAgcCxcbiAgdWwsXG4gIG9sLFxuICBibG9ja3F1b3RlIHtcbiAgXHRmb250LXNpemU6IDExcHQ7XG4gIFx0bGluZS1oZWlnaHQ6IDE2cHQ7XG4gIH1cbiAgYmxvY2txdW90ZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDlwdDtcbiAgICBsaW5lLWhlaWdodDogMTRwdDtcbiAgfVxuICBwIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNntcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuICBociB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICAgIG1hcmdpbjogLjNjbSAwO1xuICB9XG4gIC5hcnRpY2xlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG4gIC5oZWFkZXIsXG4gIC5mb290ZXIsXG4gIC5zZWN0aW9uLnByaW50IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgYm9keSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG4gIC5ib2R5IHtcbiAgICBwIHt3aWRvd3MgOjMgOyBvcnBoYW5zIDogMyA7IH1cbiAgICBhIHtwYWdlLWJyZWFrLWluc2lkZTphdm9pZH1cbiAgICBibG9ja3F1b3RlIHtwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7fVxuICAgIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgeyBwYWdlLWJyZWFrLWFmdGVyOmF2b2lkOyBwYWdlLWJyZWFrLWluc2lkZTphdm9pZCB9XG4gICAgaW1nIHsgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQ7IHBhZ2UtYnJlYWstYWZ0ZXI6YXZvaWQ7IH1cbiAgICB0YWJsZSwgcHJlIHsgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQgfVxuICAgIHVsLCBvbCwgZGwgIHsgcGFnZS1icmVhay1iZWZvcmU6YXZvaWQgfVxuICAgIGE6bGluaywgYTp2aXNpdGVkLCBhIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICMyQzUxREY7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgYVtocmVmXj1odHRwXTphZnRlciB7Y29udGVudDpcIiA8XCIgYXR0cihocmVmKSBcIj4gXCI7fVxuICAgIGFydGljbGUgYVtocmVmXj1cIiNcIl06YWZ0ZXIgeyBjb250ZW50OiBcIlwiO31cbiAgICBhOm5vdCg6bG9jYWwtbGluayk6YWZ0ZXIge2NvbnRlbnQ6XCIgPFwiIGF0dHIoaHJlZikgXCI+IFwiO31cbiAgfVxufVxuIl19 */
