@charset "UTF-8";
/* RESET */
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-size: 100%;
  font: inherit;
  vertical-align: baseline; }

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

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

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

/***************************
*   BREAKPOINTS & SIZING
****************************/
/***************************
*          COLORS
****************************/
/***************************
*          FONTS
****************************/
/***************************
*     BACKGROUND COLORS
****************************/
/* TABLET AND MOBILE BREAKPOINTS */
/* KEYFRAMES MIXIN */
/* Bourbon, Neat, Bitters */
button, input[type="button"], input[type="reset"], input[type="submit"], .button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #E82233;
  border: 0;
  border-radius: 2px;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-size: 1em;
  -webkit-font-smoothing: antialiased;
  font-weight: 600;
  line-height: 1;
  padding: 0.75em 1.5em;
  text-decoration: none;
  transition: background-color 150ms ease;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: middle;
  white-space: nowrap; }
  button:hover, input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover, .button:hover {
    background-color: #2ED3D4;
    color: #fff; }
  button:disabled, input[type="button"]:disabled, input[type="reset"]:disabled, input[type="submit"]:disabled, .button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }
    button:disabled:hover, input[type="button"]:disabled:hover, input[type="reset"]:disabled:hover, input[type="submit"]:disabled:hover, .button:disabled:hover {
      background-color: #477dca; }

.input-group-btn button {
  background: #434343;
  color: #fff;
  font-size: 16px; }
  .input-group-btn button:hover {
    background-color: #5A7A7A; }

.button--hero {
  background-color: #719696;
  color: #fff;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-weight: 600;
  font-size: 1.0625em;
  color: #fff;
  line-height: 1.41176;
  padding: 0.375em 1em; }
  @media (max-width: 767px) {
    .button--hero {
      font-size: 0.6875em; } }

.button--accent {
  background-color: #E82233;
  color: #fff; }

.button--large {
  font-weight: 600;
  font-size: 1.25em;
  line-height: 1.4;
  box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.47);
  padding: 0.7em 2em; }
  @media (max-width: 1023px) {
    .button--large {
      padding: 0.7em 2em; } }
  @media (max-width: 767px) {
    .button--large {
      font-size: 1em;
      padding: 0.875em 1.9375em; } }

.button--medium {
  font-weight: 500;
  font-size: 1em;
  line-height: 1.4375;
  padding: 1em 3em;
  background-color: #E82233;
  color: #fff; }
  @media (max-width: 767px) {
    .button--medium {
      font-size: 1em;
      padding: 0.875em 1.625em; } }

.button--small {
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-weight: 500;
  font-size: 0.8125em;
  color: #fff;
  line-height: 1.38462;
  padding: 0.61538em 1em; }

.button--block {
  display: block;
  text-align: center;
  font-weight: bold; }

.button--link {
  font-weight: 500;
  font-size: 0.9375em;
  line-height: 1.2;
  color: #333;
  text-decoration: underline; }

.button--protip {
  color: #63dedf;
  text-transform: uppercase;
  padding: 0.38462em 0.5em;
  border-radius: 100px;
  background-color: transparent;
  border: 2px solid #63dedf;
  font-size: 0.72222em;
  letter-spacing: 0.19px;
  font-weight: 500;
  display: inline-block;
  margin-top: -6px; }
  .button--protip:hover {
    background-color: #63dedf;
    color: #fff; }

.button--email {
  background-color: #202E5F; }

.button--facebook {
  background-color: #3B5998; }

.button--twitter {
  background-color: #55ACEE; }

.button--linkedin {
  background-color: #0976B4; }

.button--inverted {
  color: #E82233;
  background-color: transparent;
  border: 2px solid #E82233; }
  .button--inverted:hover {
    background-color: #E82233; }
  .button--inverted.button--medium {
    padding: 0.875em 2.875em; }

.button .icon--download {
  height: 15px;
  width: 12px;
  fill: #fff;
  margin-right: 5px;
  margin-bottom: -2px; }

.button:hover .icon--download {
  fill: #fff; }

fieldset {
  background-color: rgba(246, 246, 246, 0.865);
  border: 1px solid rgba(151, 151, 151, 0.46);
  margin: 0 0 0.75em;
  padding: 1.5em; }

input,
label,
select {
  display: block;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-size: 1em; }

label {
  font-weight: 600;
  margin-bottom: 0.375em; }
  label.required::after {
    content: "*"; }
  label abbr {
    display: none; }

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -o-appearance: none;
  appearance: none;
  font-weight: 200;
  font-size: 1.1875em;
  line-height: 32px;
  padding: 0.42105em 0.84211em;
  border: 1px solid #ddd;
  background-color: #fff;
  border-radius: 2px;
  transition: 150ms ease;
  height: 50px; }
  select::-ms-expand {
    display: none; }
  select:hover {
    border-color: #c4c4c4; }
  @media (max-width: 1023px) {
    select {
      height: auto;
      line-height: 1.55; } }

input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], input:not([type]), textarea,
select[multiple=multiple] {
  background-color: #fff;
  border: 1px solid rgba(151, 151, 151, 0.46);
  border-radius: 2px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-size: 1em;
  margin-bottom: 0.75em;
  padding: 0.75em;
  transition: border-color 150ms ease;
  width: 100%; }
  input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="email"]:hover, input[type="month"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="time"]:hover, input[type="url"]:hover, input[type="week"]:hover, input:not([type]):hover, textarea:hover,
  select[multiple=multiple]:hover {
    border-color: rgba(82, 82, 82, 0.568); }
  input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="email"]:focus, input[type="month"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="week"]:focus, input:not([type]):focus, textarea:focus,
  select[multiple=multiple]:focus {
    border-color: #477dca;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(55, 112, 192, 0.7);
    outline: none; }
  input[type="color"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="email"]:disabled, input[type="month"]:disabled, input[type="number"]:disabled, input[type="password"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="text"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="week"]:disabled, input:not([type]):disabled, textarea:disabled,
  select[multiple=multiple]:disabled {
    background-color: #f2f2f2;
    cursor: not-allowed; }
    input[type="color"]:disabled:hover, input[type="date"]:disabled:hover, input[type="datetime"]:disabled:hover, input[type="datetime-local"]:disabled:hover, input[type="email"]:disabled:hover, input[type="month"]:disabled:hover, input[type="number"]:disabled:hover, input[type="password"]:disabled:hover, input[type="search"]:disabled:hover, input[type="tel"]:disabled:hover, input[type="text"]:disabled:hover, input[type="time"]:disabled:hover, input[type="url"]:disabled:hover, input[type="week"]:disabled:hover, input:not([type]):disabled:hover, textarea:disabled:hover,
    select[multiple=multiple]:disabled:hover {
      border: 1px solid rgba(151, 151, 151, 0.46); }

textarea {
  resize: vertical; }

input[type="search"] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none; }

input[type="checkbox"],
input[type="radio"] {
  display: inline;
  margin-right: 0.375em; }
  input[type="checkbox"] + label,
  input[type="radio"] + label {
    display: inline-block; }

input[type="file"] {
  margin-bottom: 0.75em;
  width: 100%; }

select {
  margin-bottom: 1.5em;
  max-width: 100%;
  width: auto; }

ul,
ol {
  list-style-type: none;
  margin: 0;
  padding: 0; }

dl {
  margin-bottom: 0.75em; }
  dl dt {
    font-weight: bold;
    margin-top: 0.75em; }
  dl dd {
    margin: 0; }

table {
  border-collapse: collapse;
  -webkit-font-feature-settings: "kern", "liga", "tnum";
          font-feature-settings: "kern", "liga", "tnum";
  margin: 0.75em 0;
  table-layout: fixed;
  width: 100%; }

th {
  border-bottom: 1px solid rgba(71, 71, 71, 0.595);
  font-weight: 600;
  padding: 0.75em 0;
  text-align: left; }

td {
  border-bottom: 1px solid rgba(151, 151, 151, 0.46);
  padding: 0.75em 0; }

tr,
td,
th {
  vertical-align: middle; }

body {
  color: #333;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  -webkit-font-feature-settings: "kern", "liga", "pnum";
          font-feature-settings: "kern", "liga", "pnum";
  font-size: 1em;
  line-height: 1.5; }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-size: 1em;
  line-height: 1.2;
  margin: 0 0 0.75em; }

p {
  margin: 0 0 0.75em; }

a {
  color: #477dca;
  text-decoration: none;
  transition: color 150ms ease; }
  a .icon {
    transition: fill 150ms ease, color 150ms ease; }
  a:hover {
    color: #2ED3D4; }
    a:hover .icon {
      fill: #E82233; }
      a:hover .icon.icon--heart {
        -webkit-animation: heartbeat 1300ms ease 0s infinite normal;
                animation: heartbeat 1300ms ease 0s infinite normal; }
  a.you-like-this .icon {
    fill: #E82233; }
  a.you-like-this:hover .icon.icon--heart {
    -webkit-animation: none;
            animation: none; }

hr {
  border-bottom: 1px solid rgba(151, 151, 151, 0.46);
  border-left: 0;
  border-right: 0;
  border-top: 0;
  margin: 1.5em 0; }

img,
picture {
  margin: 0;
  max-width: 100%; }

@font-face {
  font-family: "HurmeGeometricSans3";
  font-style: normal;
  font-weight: normal;
  src: url("../fonts/301B47_9_0.eot?#iefix") format("embedded-opentype"), url("../fonts/301B47_9_0.woff2") format("woff2"), url("../fonts/301B47_9_0.woff") format("woff"), url("../fonts/301B47_9_0.ttf") format("truetype"), url("../fonts/301B47_9_0.svg#HurmeGeometricSans3") format("svg"); }

@font-face {
  font-family: "HurmeGeometricSans3";
  font-style: normal;
  font-weight: 200;
  src: url("../fonts/301B47_7_0.eot?#iefix") format("embedded-opentype"), url("../fonts/301B47_7_0.woff2") format("woff2"), url("../fonts/301B47_7_0.woff") format("woff"), url("../fonts/301B47_7_0.ttf") format("truetype"), url("../fonts/301B47_7_0.svg#HurmeGeometricSans3") format("svg"); }

@font-face {
  font-family: "HurmeGeometricSans3";
  font-style: italic;
  font-weight: 200;
  src: url("../fonts/301B47_8_0.eot?#iefix") format("embedded-opentype"), url("../fonts/301B47_8_0.woff2") format("woff2"), url("../fonts/301B47_8_0.woff") format("woff"), url("../fonts/301B47_8_0.ttf") format("truetype"), url("../fonts/301B47_8_0.svg#HurmeGeometricSans3") format("svg"); }

@font-face {
  font-family: "HurmeGeometricSans3";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/301B47_A_0.eot?#iefix") format("embedded-opentype"), url("../fonts/301B47_A_0.woff2") format("woff2"), url("../fonts/301B47_A_0.woff") format("woff"), url("../fonts/301B47_A_0.ttf") format("truetype"), url("../fonts/301B47_A_0.svg#HurmeGeometricSans3") format("svg"); }

@font-face {
  font-family: "HurmeGeometricSans3";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/301B47_6_0.eot?#iefix") format("embedded-opentype"), url("../fonts/301B47_6_0.woff2") format("woff2"), url("../fonts/301B47_6_0.woff") format("woff"), url("../fonts/301B47_6_0.ttf") format("truetype"), url("../fonts/301B47_6_0.svg#HurmeGeometricSans3") format("svg"); }

html {
  box-sizing: border-box; }

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

/* Components */
/**********************************
*       General & Overrides
***********************************/
body {
  color: #000; }

img {
  display: block;
  max-width: 100%; }

/**********************************
*   Grid & Containers & Offsets
***********************************/
.container {
  max-width: 68em;
  margin-left: auto;
  margin-right: auto;
  margin: 0 auto;
  max-width: 1024px;
  position: relative;
  width: 90%; }
  .container::after {
    clear: both;
    content: "";
    display: table; }
  .container--large {
    max-width: 1440px; }
  .container--small {
    width: 90%;
    max-width: 800px; }
  .container--xsmall {
    width: 90%;
    max-width: 600px; }
  .container--white {
    background-color: white; }

.row {
  margin-right: -5px;
  margin-left: -5px; }
  .row::after {
    clear: both;
    content: "";
    display: table; }

.column {
  position: relative;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  min-height: 1px; }
  .grid .column {
    border-left: 0;
    border-right: 0; }
  .column.center {
    float: none;
    margin: 0 auto; }

.col-large-1 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 8.33333%; }
  .col-large-1:last-child {
    margin-right: 0; }

.col-offset-1 {
  margin-left: 8.33333%; }

.col-large-2 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 16.66667%; }
  .col-large-2:last-child {
    margin-right: 0; }

.col-offset-2 {
  margin-left: 16.66667%; }

.col-large-3 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 25%; }
  .col-large-3:last-child {
    margin-right: 0; }

.col-offset-3 {
  margin-left: 25%; }

.col-large-4 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 33.33333%; }
  .col-large-4:last-child {
    margin-right: 0; }

.col-offset-4 {
  margin-left: 33.33333%; }

.col-large-5 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 41.66667%; }
  .col-large-5:last-child {
    margin-right: 0; }

.col-offset-5 {
  margin-left: 41.66667%; }

.col-large-6 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 50%; }
  .col-large-6:last-child {
    margin-right: 0; }

.col-offset-6 {
  margin-left: 50%; }

.col-large-7 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 58.33333%; }
  .col-large-7:last-child {
    margin-right: 0; }

.col-offset-7 {
  margin-left: 58.33333%; }

.col-large-8 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 66.66667%; }
  .col-large-8:last-child {
    margin-right: 0; }

.col-offset-8 {
  margin-left: 66.66667%; }

.col-large-9 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 75%; }
  .col-large-9:last-child {
    margin-right: 0; }

.col-offset-9 {
  margin-left: 75%; }

.col-large-10 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 83.33333%; }
  .col-large-10:last-child {
    margin-right: 0; }

.col-offset-10 {
  margin-left: 83.33333%; }

.col-large-11 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 91.66667%; }
  .col-large-11:last-child {
    margin-right: 0; }

.col-offset-11 {
  margin-left: 91.66667%; }

.col-large-12 {
  float: left;
  display: block;
  margin-right: 0%;
  width: 100%; }
  .col-large-12:last-child {
    margin-right: 0; }

.col-offset-12 {
  margin-left: 100%; }

@media (max-width: 1023px) {
  .col-medium-1 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 8.33333%; }
    .col-medium-1:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-2 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 16.66667%; }
    .col-medium-2:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-3 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 25%; }
    .col-medium-3:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-4 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 33.33333%; }
    .col-medium-4:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-5 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 41.66667%; }
    .col-medium-5:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-6 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 50%; }
    .col-medium-6:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-7 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 58.33333%; }
    .col-medium-7:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-8 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 66.66667%; }
    .col-medium-8:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-9 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 75%; }
    .col-medium-9:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-10 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 83.33333%; }
    .col-medium-10:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-11 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 91.66667%; }
    .col-medium-11:last-child {
      margin-right: 0; } }

@media (max-width: 1023px) {
  .col-medium-12 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 100%; }
    .col-medium-12:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-1 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 8.33333%; }
    .col-small-1:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-2 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 16.66667%; }
    .col-small-2:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-3 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 25%; }
    .col-small-3:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-4 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 33.33333%; }
    .col-small-4:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-5 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 41.66667%; }
    .col-small-5:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-6 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 50%; }
    .col-small-6:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-7 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 58.33333%; }
    .col-small-7:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-8 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 66.66667%; }
    .col-small-8:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-9 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 75%; }
    .col-small-9:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-10 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 83.33333%; }
    .col-small-10:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-11 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 91.66667%; }
    .col-small-11:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-12 {
    float: left;
    display: block;
    margin-right: 0%;
    width: 100%; }
    .col-small-12:last-child {
      margin-right: 0; } }

@media (max-width: 767px) {
  .col-small-12 {
    margin-left: 0%; } }

/**********************************
*           Typography
***********************************/
h1, h2, h3, h4, h5, h6 {
  margin-bottom: 0.5em; }

h1, .h1 {
  font-size: 3.5em; }
  @media (max-width: 1023px) {
    h1, .h1 {
      font-size: 2.75em; } }

h2, .h2 {
  font-size: 2.75em; }
  @media (max-width: 1023px) {
    h2, .h2 {
      font-size: 2.125em; } }

h3, .h3 {
  font-size: 2.125em; }
  @media (max-width: 1023px) {
    h3, .h3 {
      font-size: 1.5625em; } }

h4, .h4 {
  font-size: 1.75em; }
  @media (max-width: 1023px) {
    h4, .h4 {
      font-size: 1.375em; } }

h5, .h5 {
  font-size: 1.375em; }
  @media (max-width: 1023px) {
    h5, .h5 {
      font-size: 1.125em; } }

strong {
  font-weight: bold; }

em {
  font-style: italic; }

/**********************************
*         Small little guys
***********************************/
.muted {
  color: #CACACA;
  font-weight: 200;
  font-size: 0.75em; }
  .muted a {
    color: inherit;
    text-decoration: underline; }

.nobr {
  white-space: nowrap; }

.center {
  text-align: center; }

.icon {
  pointer-events: none;
  max-width: 30px;
  max-height: 30px; }

.red-text {
  color: #E82233; }

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

.semi-bold {
  font-weight: 600; }

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

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

@media (max-width: 1023px) {
  .medium-text-left {
    text-align: left; } }

@media (max-width: 767px) {
  .small-text-left {
    text-align: left; } }

@media (max-width: 1023px) {
  .medium-text-right {
    text-align: right; } }

@media (max-width: 767px) {
  .small-text-right {
    text-align: right; } }

.input-group {
  position: relative;
  display: table;
  border-collapse: separate; }
  .input-group[class*="col-"] {
    float: none;
    padding-left: 0;
    padding-right: 0; }
  .input-group .form-control {
    position: relative;
    z-index: 2;
    float: left;
    width: 100%;
    margin-bottom: 0; }
    .input-group .form-control:focus {
      z-index: 3; }

.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell; }
  .input-group-addon:not(:first-child):not(:last-child),
  .input-group-btn:not(:first-child):not(:last-child),
  .input-group .form-control:not(:first-child):not(:last-child) {
    border-radius: 0; }

.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle; }

.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0; }

.input-group-addon:first-child {
  border-right: 0; }

.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0; }

.input-group-addon:last-child {
  border-left: 0; }

.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap; }
  .input-group-btn > .btn {
    position: relative;
    padding: 1.0625em 1.5em 1em; }
    .input-group-btn > .btn + .btn {
      margin-left: -1px; }
    .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {
      z-index: 2; }
  .input-group-btn:first-child > .btn,
  .input-group-btn:first-child > .btn-group {
    margin-right: -1px; }
  .input-group-btn:last-child > .btn,
  .input-group-btn:last-child > .btn-group {
    z-index: 2;
    margin-left: -1px;
    font-size: 16px; }
    @media (max-width: 767px) {
      .input-group-btn:last-child > .btn,
      .input-group-btn:last-child > .btn-group {
        font-size: 14px; } }

.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden; }
  .embed-responsive .embed-responsive-item,
  .embed-responsive iframe,
  .embed-responsive embed,
  .embed-responsive object,
  .embed-responsive video {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    height: 100%;
    width: 100%;
    border: 0; }

.embed-responsive-16by9 {
  padding-bottom: 56.25%; }

.embed-responsive-4by3 {
  padding-bottom: 75%; }

/* Components, global elements */
@-webkit-keyframes heartbeat {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  14% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3); }
  28% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  42% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3); }
  70% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes heartbeat {
  0% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  14% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3); }
  28% {
    -webkit-transform: scale(1);
            transform: scale(1); }
  42% {
    -webkit-transform: scale(1.3);
            transform: scale(1.3); }
  70% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

/* Global */
.nav {
  position: fixed;
  width: 100%;
  background-color: #fff;
  z-index: 998; }
  .nav::after {
    clear: both;
    content: "";
    display: table; }

.branded-nav, .standard-nav {
  height: 60px;
  position: relative; }

.branded-nav {
  border-bottom: 1px solid #EFEFEF; }

.standard-nav {
  box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.09); }

/***************************************
 * The inner contents of the navigation
 ***************************************/
.nav__branding:hover .nav__logo .icon--logo {
  fill: initial;
  fill-opacity: 0.8; }

.nav__branding:hover .nav__brand .icon--logo-type {
  fill: initial;
  fill-opacity: 0.8; }

.nav__logo {
  position: absolute;
  left: 31px;
  top: 50%;
  margin-top: -12px;
  z-index: 1;
  height: auto;
  line-height: 0; }
  .nav__logo .icon--logo {
    height: 28px;
    width: 28px;
    max-width: 28px;
    max-height: 28px;
    transition: all 150ms ease; }
  @media (max-width: 767px) {
    .modal-generic--dark .nav__logo {
      margin-top: -16px; } }

.nav__brand {
  font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-weight: bold;
  font-size: 1.5625em;
  color: #000000;
  line-height: 1;
  padding-top: 17px;
  display: block;
  float: left;
  margin-left: 70px; }
  .nav__brand .icon--logo-type {
    max-width: none;
    transition: all 150ms ease;
    height: 30px;
    width: 130px; }
    .modal-generic--dark .nav__brand .icon--logo-type {
      fill: #fff; }
  @media (max-width: 767px) {
    .modal-generic--dark .nav__brand {
      margin-left: 67px;
      padding-top: 22px; }
      .modal-generic--dark .nav__brand .icon--logo-type {
        width: 100px; } }

.nav__demo {
  font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-weight: bold;
  color: #E82233;
  font-size: 0.875em;
  display: block;
  float: left;
  line-height: 1em;
  margin-left: 10px;
  margin-top: 32px; }

.nav__links.nav--left {
  float: left;
  margin-left: 20px; }

.nav__links.nav--right {
  float: right;
  margin-right: 20px; }

.nav__links.nav--social {
  margin-right: 12px; }

.nav__links .item--hamburger {
  display: none; }

@media (max-width: 1023px) {
  .nav--social {
    display: none; } }

.nav--social .icon {
  max-width: 22px;
  max-height: 22px;
  height: 22px;
  width: 22px;
  fill: #6C6E70; }
  .nav--social .icon:hover {
    fill: #E82233; }

.nav__item {
  display: block;
  float: left;
  margin: 0 0 0 6px; }
  .nav__item.item--social {
    margin: 0 0 0 9px;
    position: relative; }
    .nav__item.item--social .nav__link {
      width: 40px;
      height: 60px;
      padding: 0; }
      .nav__item.item--social .nav__link .icon {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%); }
  .nav__item.item--button {
    margin-top: 9px; }
    .nav__item.item--button.item--circle {
      margin-top: 10px; }
  .nav__item .button {
    padding: 0.73333em 1.33333em 0.73333em;
    text-transform: none;
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 600;
    font-size: 0.9375em;
    line-height: 1.4375em; }
    .nav__item .button--login {
      background-color: #CECECE;
      color: #787878;
      transition: all 150ms ease; }
      .nav__item .button--login:hover {
        background-color: #B1B1B1;
        color: white; }

.nav__link {
  display: block;
  font-weight: 300;
  font-size: 1em;
  letter-spacing: 0.44px;
  color: black;
  padding: 0 5px 0;
  max-height: 60px;
  line-height: 60px; }
  .nav__link strong {
    font-weight: 500;
    text-transform: uppercase;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif; }
  .nav__link:hover,
  .active .nav__link {
    color: #E82233; }
    .nav__link:hover .icon,
    .active .nav__link .icon {
      fill: #E82233; }

.nav .button--me {
  border-radius: 50%;
  line-height: 45px;
  font-size: 1.5em;
  font-weight: 600;
  padding: 0;
  height: 40px;
  width: 40px;
  text-align: center;
  font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  color: white;
  background-color: #E82233; }
  .ie .nav .button--me {
    line-height: 40px; }
  .nav .button--me:hover {
    background-color: #2ED3D4; }

.nav .icon--search {
  height: 20px;
  width: 20px;
  margin-top: 18px; }

.nav .icon--hamburger {
  height: 20px;
  width: 20px;
  margin-top: 18px; }

.nav .icon--arrow-down {
  height: 8px;
  width: 8px;
  margin-bottom: 1px; }

.nav .dropdown .dropdown-menu {
  right: 11px; }

.nav .dropdown--settings .dropdown-menu {
  -webkit-transform: translateX(0);
          transform: translateX(0);
  right: -6px; }
  .nav .dropdown--settings .dropdown-menu:after {
    left: auto;
    right: 6px; }

@media (max-width: 1023px) {
  .nav {
    -webkit-transform: translateY(-60px);
            transform: translateY(-60px); }
    .nav__logo {
      -webkit-transform: translateY(60px);
              transform: translateY(60px); }
    .nav__demo {
      display: none; }
    .nav .item--search, .nav .item--hamburger {
      margin: 0;
      position: absolute;
      right: 0; }
    .nav .item--search {
      margin-right: 60px; }
    .nav .item--hamburger {
      margin-right: 20px; }
    .nav .nav__links.nav--left {
      margin-left: 60px; }
    .nav .nav__links .item--text, .nav .nav__links .item--dropdown, .nav .nav__links .item--button {
      display: none; }
      .nav .nav__links .item--text.item--highlighted, .nav .nav__links .item--dropdown.item--highlighted, .nav .nav__links .item--button.item--highlighted {
        display: block; }
    .nav .nav__links .item--hamburger {
      display: block; } }

/************************
 * Animations on the nav
 ************************/
/* Add css transitions to everything that needs it */
.nav, .nav__logo, .nav__links {
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease; }

/* CSS Animations */
.nav-scrolled.nav {
  -webkit-transform: translateY(-60px);
          transform: translateY(-60px); }

.nav-scrolled .nav__logo {
  -webkit-transform: translateY(60px);
          transform: translateY(60px); }

.nav-scrolled .nav__links.nav--left {
  -webkit-transform: translateX(40px);
          transform: translateX(40px); }
  @media (max-width: 1023px) {
    .nav-scrolled .nav__links.nav--left {
      -webkit-transform: none;
              transform: none; } }

/********************
* THE NAV MODAL
*********************/
.nav-modal .nav__logo:hover .icon--logo {
  fill: white; }

.nav-modal__list.list--links {
  padding-right: 40px;
  border-right: 1px solid #454545; }
  @media (max-width: 767px) {
    .nav-modal__list.list--links {
      padding: 0;
      border-right: none; } }
  .nav-modal__list.list--links > .nav-modal__item {
    border-bottom: 1px solid #454545; }
    .nav-modal__list.list--links > .nav-modal__item:last-child {
      border-bottom: none; }
  .nav-modal__list.list--links .nav-modal__link {
    font-size: 2.375em;
    color: white; }
    .nav-modal__list.list--links .nav-modal__link.link--small {
      font-size: 1.375em;
      color: #BDCDCD; }
    .nav-modal__list.list--links .nav-modal__link.active .icon--arrow-down {
      -webkit-transform: rotate(-180deg);
              transform: rotate(-180deg); }
    @media (max-width: 767px) {
      .nav-modal__list.list--links .nav-modal__link {
        font-size: 1.75em; } }
  .nav-modal__list.list--links .icon--arrow-down {
    fill: white;
    width: 15px;
    height: 15px;
    display: inline-block;
    margin-left: 10px;
    transition: all 0.4s ease; }

.nav-modal__list.list--buttons {
  padding-left: 40px; }
  @media (max-width: 767px) {
    .nav-modal__list.list--buttons {
      padding: 0; } }
  .nav-modal__list.list--buttons .item--circle {
    width: 100%; }

.nav-modal__wrapper {
  overflow: scroll;
  width: 100%;
  height: 100%; }

.nav-modal__links {
  height: 100%;
  padding-top: 88px;
  padding-bottom: 80px;
  display: block; }
  .nav-modal__links::after {
    clear: both;
    content: "";
    display: table; }
  @media (max-width: 767px) {
    .nav-modal__links {
      height: auto; } }

.nav-modal__link {
  padding: 10px 0;
  display: block; }
  .nav-modal__link.button {
    display: block;
    padding: 1.5em;
    text-align: center;
    margin-bottom: 2em;
    font-size: 18px; }
    .nav-modal__link.button.button--login {
      background-color: transparent;
      border: 2px solid white;
      transition: all 150ms ease; }
      .nav-modal__link.button.button--login:hover {
        border-color: #2ED3D4;
        background-color: #2ED3D4; }
    @media (max-width: 767px) {
      .nav-modal__link.button {
        margin: 0.75em 0;
        padding: 1.25em; } }

.nav-modal__branding {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  padding-bottom: 8px;
  background-color: black; }
  .nav-modal__branding .nav__logo {
    -webkit-transform: none;
            transform: none; }
  .nav-modal__branding .nav__brand {
    color: white;
    padding-top: 20px; }
    @media (max-width: 767px) {
      .nav-modal__branding .nav__brand {
        padding-top: 12px; } }
  .nav-modal__branding .nav__demo {
    display: inline-block;
    margin-top: 35px; }
    @media (max-width: 767px) {
      .nav-modal__branding .nav__demo {
        margin-top: 25px; } }
  .nav-modal__branding .nav__links.nav--social {
    display: block; }
    @media (max-width: 767px) {
      .nav-modal__branding .nav__links.nav--social {
        display: none; } }

.nav.nav-modal__list {
  position: relative;
  background: none;
  -webkit-transform: none;
          transform: none; }
  .nav.nav-modal__list .nav-modal__link {
    color: white; }
  .nav.nav-modal__list .nav-modal__item {
    font-size: 1.375em; }
  .nav.nav-modal__list .button--me {
    margin-bottom: 10px;
    width: 60px;
    height: 60px;
    line-height: 66px; }

.hero {
  height: 600px;
  position: relative; }
  @media (max-width: 767px) {
    .hero {
      height: 400px; } }
  .hero .container {
    width: 90%; }
  .hero .hero-cta {
    background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-home.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 50%; }
    @media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-webkit-min-device-pixel-ratio: 1.3020833333333333), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) {
      .hero .hero-cta {
        background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-home_2x.jpg");
        background-size: cover; } }
    .hero .hero-cta .container {
      position: relative;
      z-index: 1; }
  .hero--large {
    height: 750px;
    overflow: hidden; }
    .hero--large .hero__header {
      font-size: 6.25em;
      letter-spacing: 2.77px;
      line-height: 0.92;
      text-transform: uppercase;
      margin-bottom: 0.05em;
      text-shadow: 0px 1px 5px rgba(0, 0, 0, 0.25); }
    .hero--large .hero__subheader {
      font-size: 1.75em;
      font-weight: 200;
      line-height: 1.32143;
      margin-bottom: 2.03571em; }
    .hero--large .hero__cta {
      background-color: white;
      color: #212121;
      transition: all 150ms ease; }
      .hero--large .hero__cta:hover {
        background-color: #2ED3D4;
        color: white; }
    @media (max-width: 1023px) {
      .hero--large {
        min-height: auto;
        height: 580px; }
        .hero--large .hero__header {
          font-size: 4.0625em;
          letter-spacing: 1.8px;
          line-height: 1;
          margin-bottom: 0.4em; }
        .hero--large .hero__subheader {
          font-size: 1.5em;
          letter-spacing: 0.42px;
          line-height: 1.33333;
          margin-bottom: 1.08333em; } }
    @media (max-width: 767px) {
      .hero--large {
        height: 460px;
        font-size: 0.64em;
        text-align: center; }
        .hero--large .hero__header {
          font-size: 3.125em;
          margin-bottom: 0.78125em; }
        .hero--large .hero__subheader {
          margin-bottom: 0.875em; }
        .hero--large .button {
          font-size: 1.46484em; } }
  .hero--medium {
    height: 650px;
    overflow: hidden; }
    .hero--medium .hero-cta:before {
      content: '';
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(58, 107, 107, 0.3); }
    .hero--medium .hero__header {
      font-size: 3.6em;
      line-height: 1.04478; }
    @media (max-width: 1023px) {
      .hero--medium {
        height: 438px; }
        .hero--medium .hero__header {
          font-size: 2.5em; } }
    @media (max-width: 767px) {
      .hero--medium {
        height: 380px; }
        .hero--medium .hero__header {
          font-size: 1.75em; } }
  .hero .hero-bg {
    background-color: #1F1F1F;
    overflow: hidden; }
  .hero--small {
    height: 397px; }
    @media (max-width: 1023px) {
      .hero--small {
        height: 300px; } }
    @media (max-width: 767px) {
      .hero--small {
        height: 256px; } }
    .hero--small .hero__header {
      font-size: 2.75em;
      line-height: 1; }
      @media (max-width: 1023px) {
        .hero--small .hero__header {
          font-size: 2.5em; } }
      @media (max-width: 767px) {
        .hero--small .hero__header {
          font-size: 1.875em; } }
    .hero--small .hero__subheader {
      font-size: 1.25em;
      line-height: 1.75;
      margin-bottom: 0;
      max-width: 80%;
      margin-left: auto;
      margin-right: auto; }
      .hero--small .hero__subheader::after {
        clear: both;
        content: "";
        display: table; }
      @media (max-width: 1023px) {
        .hero--small .hero__subheader {
          max-width: 100%;
          margin-left: auto;
          margin-right: auto;
          font-size: 1.25em; }
          .hero--small .hero__subheader::after {
            clear: both;
            content: "";
            display: table; } }
      @media (max-width: 767px) {
        .hero--small .hero__subheader {
          font-size: 0.9375em; } }
  .hero--hp-logged-in {
    background-color: #F2F5F5; }
  .hero--modal {
    background-color: #1F1F1F; }
  .hero__header {
    margin-bottom: 0.44444em;
    font-weight: bold;
    display: inline-block;
    font-size: 4.1875em;
    color: #fff;
    line-height: 1.04478;
    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5);
    position: relative;
    letter-spacing: 0.5px; }
    @media (max-width: 767px) {
      .hero__header {
        font-size: 1.875em; } }
  .hero__description {
    font-weight: 200;
    font-size: 1.125em;
    color: #CACACA;
    line-height: 1.72222;
    margin-bottom: 1.44444em; }
  .hero__subheader {
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-size: 1.25em;
    color: #fff;
    line-height: 1.2;
    font-weight: 200;
    margin-bottom: 0; }
    .hero__subheader a {
      color: #fff; }
    .hero__subheader strong {
      font-weight: 400; }
    @media (max-width: 767px) {
      .hero__subheader {
        font-size: 0.75em; } }
  .hero__stats li {
    float: left;
    display: block;
    margin-right: 0%;
    width: 33.33333%;
    color: #2ED3D4;
    font-size: 3.5em;
    position: relative;
    line-height: 1;
    border-left: 1px solid rgba(151, 151, 151, 0.46);
    padding-left: 0.53571em; }
    .hero__stats li:last-child {
      margin-right: 0; }
    .hero__stats li:first-child {
      border-left: 0;
      padding-left: 0; }
      .hero__stats li:first-child span {
        left: 40px; }
    .hero__stats li span {
      color: #fff;
      font-weight: 200;
      font-size: 0.26786em;
      display: inline-block;
      position: absolute;
      left: 70px;
      top: 4px;
      right: 30px;
      line-height: 1.6; }
  .hero__category {
    margin-bottom: 2em; }
  .hero__avatar {
    display: inline-block; }
  .hero--collections {
    color: #fff;
    height: auto; }
    .hero--collections .hero__header {
      text-transform: none;
      font-size: 3.125em;
      letter-spacing: 0.37px;
      line-height: 1.18;
      text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); }
    .hero--collections .hero__subheader {
      font-size: 1.25em; }
    .hero--collections .hero-cta {
      position: static;
      margin-top: 120px;
      padding-top: 4.875em;
      padding-bottom: 4.875em; }
      @media (max-width: 1023px) {
        .hero--collections .hero-cta {
          margin-top: 60px; } }
      @media (max-width: 767px) {
        .hero--collections .hero-cta {
          margin-top: 60px; } }
      .hero--collections .hero-cta:before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(31, 31, 31, 0.8); }
    .hero--collections .collection-info {
      padding-right: 7.125em; }
    .hero--collections .collection-content {
      padding-top: 1.1875em; }
      .hero--collections .collection-content:before {
        margin-bottom: 1.1875em;
        content: '';
        width: 130px;
        height: 7px;
        background-color: #2ED3D4;
        display: block; }
      .hero--collections .collection-content h4 {
        font-size: 1.125em;
        line-height: 1.44444; }
        .hero--collections .collection-content h4 small {
          font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
          font-weight: 200;
          font-style: italic;
          font-size: 0.83333em;
          color: #CACACA;
          border-left: 1px solid #E82233;
          padding-left: 8px;
          margin-left: 4px; }
        .hero--collections .collection-content h4 .icon {
          fill: #fff;
          max-width: 14px;
          max-height: 11px;
          margin-right: 6px; }
      .hero--collections .collection-content ul {
        list-style: disc inside;
        font-weight: 200; }
        .hero--collections .collection-content ul li {
          margin: 2px 0; }
    .hero--collections .collection-form {
      border-left: 2px solid #fff;
      padding-left: 1.875em;
      position: absolute;
      right: 0;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%); }
      @media (max-width: 1023px) {
        .hero--collections .collection-form {
          -webkit-transform: none;
                  transform: none;
          position: static;
          padding-left: 0;
          border-left: 0;
          margin-top: 1.875em; } }
      .hero--collections .collection-form label h3 {
        font-weight: 200;
        font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
        font-size: 1.875em;
        line-height: 1.3;
        margin-bottom: 1.66667em; }
      .hero--collections .collection-form .muted {
        margin-bottom: 0; }
        .hero--collections .collection-form .muted label {
          color: #fff;
          font-weight: 200;
          margin-bottom: 2.33333em; }
      .hero--collections .collection-form .button {
        margin-bottom: 1.5625em; }
  .hero--collections-loggedin .collection-content {
    padding-top: 0.3125em; }
    .hero--collections-loggedin .collection-content:before {
      display: none; }
    .hero--collections-loggedin .collection-content h4 small {
      border-left: 0;
      padding-left: 0;
      margin-left: 0; }

.block {
  position: absolute;
  width: 660px;
  height: 600px;
  top: 0; }
  .block--large {
    height: 1200px; }
    .block--large.block--left {
      margin-top: -710px;
      left: 50%;
      -webkit-transform: rotate(-26deg);
              transform: rotate(-26deg);
      opacity: 0.83;
      margin-left: -1340px;
      width: 1200px; }
      @media (max-width: 1023px) {
        .block--large.block--left {
          width: 600px;
          height: 800px;
          margin-top: -500px;
          left: -200px;
          margin-left: 0; } }
      @media (max-width: 767px) {
        .block--large.block--left {
          left: -560px; } }
    .block--large.block--right {
      margin-top: -600px;
      right: -720px;
      -webkit-transform: rotate(64deg);
              transform: rotate(64deg);
      opacity: 0.77; }
      @media (max-width: 1023px) {
        .block--large.block--right {
          width: 300px;
          height: 800px;
          right: -400px;
          margin-top: -400px; } }
      @media (max-width: 767px) {
        .block--large.block--right {
          margin-top: -500px;
          right: -450px; } }
  .block--left {
    left: -300px;
    top: 50%;
    margin-top: -300px;
    -webkit-transform: rotate(17deg);
            transform: rotate(17deg); }
    @media (max-width: 1023px) {
      .block--left {
        left: -400px; } }
    @media (max-width: 767px) {
      .block--left {
        left: -500px; } }
    .block--left.block--small {
      left: -400px;
      margin-top: -600px; }
      @media (max-width: 767px) {
        .block--left.block--small {
          left: -440px;
          margin-top: -640px; } }
  .block--right {
    right: -300px;
    top: 50%;
    margin-top: -300px;
    -webkit-transform: rotate(27deg);
            transform: rotate(27deg); }
    @media (max-width: 1023px) {
      .block--right {
        right: -440px; } }
    @media (max-width: 767px) {
      .block--right {
        right: -560px; } }
    .block--right.block--small {
      right: -500px;
      margin-top: -470px;
      -webkit-transform: rotate(27deg);
              transform: rotate(27deg); }
      @media (max-width: 767px) {
        .block--right.block--small {
          right: -580px;
          margin-top: -470px; } }
  .block--gray {
    background-color: #ddd; }
  .block--red {
    background-color: #E82233; }
  .block--blue {
    border: 24px solid #2ED3D4; }

/*******************
 * THE HERO SLIDER
 *******************/
.hero-slider {
  height: auto;
  box-shadow: 0px 2px 20px 0px rgba(0, 0, 0, 0.2); }
  .hero-slider__top {
    padding: 12em 0 2.625em 0; }
    @media (max-width: 767px) {
      .hero-slider__top {
        padding: 6em 0 2em 0; } }
  .hero-slider__bottom {
    padding-bottom: 2em; }
  @media (max-width: 767px) {
    .hero-slider__intro {
      display: none; } }
  .hero-slider .intro__header {
    font-weight: 800;
    margin-bottom: 0;
    font-size: 3em; }
  .hero-slider__topics {
    text-align: right; }
    @media (max-width: 767px) {
      .hero-slider__topics {
        text-align: left; } }
  .hero-slider .topics__name {
    margin-bottom: 0;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 500;
    font-size: 1.625em; }
  .hero-slider .topics__title {
    margin-bottom: 1em;
    font-size: 1em; }
  .hero-slider .topic-buttons .button {
    position: relative;
    font-size: 0.875em;
    margin-bottom: 0.4em;
    border: 2px solid #5A7A7A;
    border-radius: 2px;
    padding: 0.42857em 0.92857em;
    padding-right: 2em;
    background-color: #5A7A7A;
    transition: all 0.3s ease; }
    .hero-slider .topic-buttons .button .close {
      font-size: 1.8em;
      position: absolute;
      top: 0;
      line-height: 1.16;
      font-weight: 100;
      right: 0.24em; }
    .hero-slider .topic-buttons .button:hover {
      background-color: #2ED3D4;
      border-color: #2ED3D4; }
    .hero-slider .topic-buttons .button--inverse {
      background-color: transparent;
      color: #5A7A7A; }
      .hero-slider .topic-buttons .button--inverse:hover {
        color: white; }
  .hero-slider .topics__edit {
    display: inline-block;
    color: #5A7A7A;
    text-decoration: underline;
    margin-top: 1em;
    font-size: 0.875em; }
    .hero-slider .topics__edit:hover {
      color: black; }
    @media (max-width: 767px) {
      .hero-slider .topics__edit {
        position: absolute;
        margin: 0;
        top: 0;
        right: 0; } }

/******************
* THE GENERAL MODAL
*******************/
.modal {
  visibility: hidden; }

.modal-generic {
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  background-color: rgba(255, 255, 255, 0.94);
  z-index: 999; }
  .modal-generic.modal-generic--dark {
    background-color: rgba(0, 0, 0, 0.94); }
    .modal-generic.modal-generic--dark .modal-generic__close:hover .icon--close {
      fill: #E82233; }
    .modal-generic.modal-generic--dark .icon--close {
      fill: white; }
  .modal-generic .modal-generic__close {
    position: absolute;
    display: block;
    top: 20px;
    right: 20px;
    z-index: 1000; }
  .modal-generic .icon--close {
    fill: black;
    height: 30px;
    width: 30px; }

/******************
* THE NAV MODAL
*******************/
/******************
* THE HERO MODAL
*******************/
.hero-cta {
  z-index: 1; }

.hero-modal {
  z-index: 2;
  background-color: #1F1F1F; }
  .hero-modal__close-wrapper {
    position: absolute;
    top: -40px;
    right: -40px;
    display: block;
    margin: 0;
    line-height: 1; }
    @media (max-width: 1023px) {
      .hero-modal__close-wrapper {
        top: -20px;
        right: 0; } }
  .hero-modal .modal-close {
    display: block; }
    .hero-modal .modal-close .icon--close {
      fill: white; }
    .hero-modal .modal-close:hover .icon--close {
      fill: #E82233; }

/******************
* THE SEARCH MODAL
*******************/
.search-modal input[type="text"].search-modal__input {
  border: none;
  box-shadow: none;
  color: #434343;
  border: none;
  box-shadow: none;
  color: #434343;
  width: 90%;
  position: absolute;
  top: 50%;
  left: 5%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: transparent;
  text-align: center;
  font-size: 4.5em;
  font-weight: 600; }
  @media (max-width: 1023px) {
    .search-modal input[type="text"].search-modal__input {
      font-size: 3em; } }
  @media (max-width: 767px) {
    .search-modal input[type="text"].search-modal__input {
      font-size: 1.5em; } }

/******************
* THE VIDEO MODAL
*******************/
.video-modal__trigger {
  position: relative;
  display: block; }
  .video-modal__trigger .icon--video {
    width: 126px;
    height: 126px;
    max-width: none;
    max-height: none;
    fill: white;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -63px;
    margin-left: -63px; }
    @media (max-width: 767px) {
      .video-modal__trigger .icon--video {
        width: 80px;
        height: 80px;
        margin-top: -40px;
        margin-left: -40px; } }
  .video-modal__trigger:hover .icon--video {
    fill: #2ED3D4; }

/******************
* THE TOPICS MODAL
*******************/
.topics-modal__wrapper {
  width: 600px;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  text-align: center; }
  @media (max-width: 767px) {
    .topics-modal__wrapper {
      width: 90%;
      text-align: left; } }
  .topics-modal__wrapper .button {
    margin: 0.4em; }

.dropdown-icon {
  display: block; }
  .dropdown-icon .icon {
    display: block;
    max-width: 32px;
    height: 30px;
    width: 32px;
    margin-right: auto;
    margin-bottom: 0.6875em;
    margin-left: auto; }
    .dropdown-icon .icon.icon--share {
      fill: rgba(90, 122, 122, 0.5); }
  .dropdown-icon:hover .icon--share,
  .dropdown.active .dropdown-icon .icon--share {
    fill: #E82233; }

.dropdown {
  position: relative; }
  .no-js .dropdown:hover .dropdown-menu {
    display: block; }
  .dropdown .dropdown-menu {
    display: none;
    position: absolute;
    top: 80%;
    background-color: #fff;
    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.37);
    border-radius: 4px;
    min-width: 160px;
    border-radius: 2px;
    padding: 1.125em 0;
    z-index: 2;
    -webkit-transform: translateX(50%);
            transform: translateX(50%); }
    .dropdown .dropdown-menu:after {
      content: '';
      position: absolute;
      width: 11px;
      height: 11px;
      -webkit-transform: rotate(45deg) translateX(-50%);
              transform: rotate(45deg) translateX(-50%);
      top: -1px;
      left: 50%;
      box-shadow: -2px -2px 4px -1px rgba(0, 0, 0, 0.37);
      background-color: #fff;
      z-index: -1; }
    .dropdown .dropdown-menu li {
      line-height: 1.23077; }
      .dropdown .dropdown-menu li > a {
        padding: 0.38462em 1.53846em;
        font-size: 0.8125em;
        letter-spacing: 0.28px;
        color: #000;
        display: block;
        text-align: center;
        transition: 150ms ease; }
        .dropdown .dropdown-menu li > a:hover {
          color: #E82233; }
    .dropdown .dropdown-menu--right {
      left: 100%;
      top: 0; }
      .dropdown .dropdown-menu--right:after {
        content: '';
        position: absolute;
        width: 24px;
        height: 24px;
        -webkit-transform: rotate(45deg) translateY(-70%);
                transform: rotate(45deg) translateY(-70%);
        top: 50%;
        left: -22px;
        box-shadow: -3px 3px 4px -3px rgba(0, 0, 0, 0.37);
        background-color: #fff;
        z-index: -1; }
      .dropdown .dropdown-menu--right li {
        float: left;
        position: relative; }
  .dropdown--like .dropdown-menu {
    box-shadow: none;
    background-color: rgba(90, 122, 122, 0.89);
    color: #fff;
    padding: 0.5em 0.625em;
    top: 110%;
    right: -5px;
    -webkit-transform: translateX(0);
            transform: translateX(0);
    left: auto;
    text-align: center;
    height: auto;
    min-width: 200px; }
    .dropdown--like .dropdown-menu p, .dropdown--like .dropdown-menu a {
      font-size: 0.875em;
      line-height: 1.45455;
      color: #fff;
      font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      font-weight: 400;
      margin: 0; }
    .dropdown--like .dropdown-menu a {
      text-decoration: underline;
      font-size: 1em; }
    .dropdown--like .dropdown-menu:after {
      bottom: 100%;
      right: 12px;
      left: auto;
      border: solid transparent;
      content: " ";
      height: 0;
      width: 0;
      position: absolute;
      pointer-events: none;
      border-color: transparent;
      border-bottom-color: rgba(90, 122, 122, 0.89);
      border-width: 4px;
      margin-left: -4px;
      -webkit-transform: none;
              transform: none;
      background: none;
      top: auto;
      box-shadow: none; }
  .dropdown--inverted .dropdown-menu {
    background-color: #000;
    color: #fff; }
    .dropdown--inverted .dropdown-menu li > a {
      color: #fff; }
      .dropdown--inverted .dropdown-menu li > a:hover {
        color: #E82233; }
    .dropdown--inverted .dropdown-menu:after {
      background-color: #000; }
  .dropdown--select .dropdown-toggle {
    font-size: 1.125em;
    color: #434343;
    letter-spacing: 0.5px;
    line-height: 1.8;
    display: block;
    text-align: left;
    position: relative;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 0.44444em 0.88889em;
    transition: 150ms ease; }
    .dropdown--select .dropdown-toggle:hover {
      border-color: #c4c4c4; }
    .dropdown--select .dropdown-toggle .icon--arrow-down {
      position: absolute;
      right: 0.88889em;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      height: 9px;
      width: 9px; }
  .dropdown--select.active .icon--arrow-down {
    -webkit-transform: rotate(180deg) translateY(50%);
            transform: rotate(180deg) translateY(50%); }
  .dropdown--select .dropdown-menu {
    top: 96%;
    box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.37);
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border: 1px solid rgba(151, 151, 151, 0.46);
    border-top: 0;
    width: 100%;
    -webkit-transform: translateX(0);
            transform: translateX(0);
    padding-top: 0.3125em;
    padding-bottom: 0.625em; }
    .dropdown--select .dropdown-menu li > a,
    .dropdown--select .dropdown-menu li > label {
      color: #434343;
      text-align: left;
      font-size: 1.125em;
      padding: 0.55556em 0.88889em;
      font-weight: 400;
      margin-bottom: 0; }
      .dropdown--select .dropdown-menu li > a:hover,
      .dropdown--select .dropdown-menu li > label:hover {
        color: #E82233; }
      .dropdown--select .dropdown-menu li > a input[type="checkbox"],
      .dropdown--select .dropdown-menu li > label input[type="checkbox"] {
        margin: 0 0.55556em 0 0; }
    .dropdown--select .dropdown-menu label {
      transition: 150ms ease; }
    .dropdown--select .dropdown-menu:after {
      content: none; }
    @media (max-width: 1023px) {
      .dropdown--select .dropdown-menu {
        min-width: 0; } }

.collapse-menu {
  transition: all 400ms ease;
  overflow: hidden; }

.footer {
  background-color: #292826;
  padding: 4.1875em;
  color: #B7B7B7;
  position: relative; }
  .footer .container {
    max-width: 1173px; }
  @media (max-width: 767px) {
    .footer .row {
      padding: 0; } }
  .footer .column {
    float: left;
    display: block;
    margin-right: 0%;
    width: 18.18182%; }
    .footer .column:last-child {
      margin-right: 0; }
    @media (max-width: 767px) {
      .footer .column {
        float: left;
        display: block;
        margin-right: 0%;
        width: 50%;
        margin-right: 0;
        text-align: center; }
        .footer .column:last-child {
          margin-right: 0; }
        .footer .column ul {
          display: none; } }
    .footer .column ul {
      font-size: 0.85em; }
  .footer .column-larger {
    float: left;
    display: block;
    margin-right: 0%;
    width: 27.27273%; }
    .footer .column-larger:last-child {
      margin-right: 0; }
    @media (max-width: 767px) {
      .footer .column-larger {
        float: left;
        display: block;
        margin-right: 0%;
        width: 50%;
        position: static; }
        .footer .column-larger:last-child {
          margin-right: 0; } }
  .footer__bottom {
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    padding: 0.57692em 0.76923em; }
    .footer__bottom::after {
      clear: both;
      content: "";
      display: table; }
    .footer__bottom p {
      font-size: 0.85em;
      color: #929292;
      line-height: 30px;
      margin: 0; }
    @media (max-width: 1023px) {
      .footer__bottom p {
        font-size: 1.25em;
        line-height: 38px; } }
    @media (max-width: 767px) {
      .footer__bottom {
        background-color: #000; }
        .footer__bottom p {
          font-size: 0.8125em;
          line-height: 26px; } }
  .footer .copy {
    float: left; }
  .footer .made-by {
    float: right; }
  .footer h5 {
    font-size: 0.85em; }
    .footer h5 a {
      font-weight: bold;
      color: #787878;
      letter-spacing: 0.71px;
      text-transform: uppercase; }
  .footer a {
    font-weight: 200;
    font-size: 1em;
    color: #787878;
    letter-spacing: 0.3px;
    line-height: 2; }
  .footer__connect {
    border-top: 1px solid rgba(151, 151, 151, 0.46);
    margin-top: 3.75em;
    padding-top: 2.3125em;
    text-align: center; }
    .footer__connect p {
      font-size: 0.85em;
      color: #787878; }
    .footer__connect ul {
      max-width: 553px;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 1.5em; }
      .footer__connect ul::after {
        clear: both;
        content: "";
        display: table; }
    .footer__connect li {
      float: left;
      width: 14.28571%;
      text-align: center; }
      .footer__connect li > a {
        display: block;
        height: 48px;
        width: 48px;
        margin-right: auto;
        margin-left: auto;
        background-color: #6C6E70;
        border-radius: 24px;
        position: relative; }
        .footer__connect li > a .icon {
          height: 24px;
          width: 24px;
          fill: #292826;
          position: absolute;
          left: 50%;
          top: 50%;
          -webkit-transform: translate(-50%, -50%);
                  transform: translate(-50%, -50%); }
  @media (max-width: 1023px) {
    .footer {
      padding: 2.1875em 0 5em; } }
  @media (max-width: 767px) {
    .footer {
      padding: 2.1875em 0 3.125em; }
      .footer .column {
        margin-bottom: 1.25em; }
      .footer__connect {
        padding-top: 1.25em;
        text-align: center;
        margin-top: 0.9375em; }
        .footer__connect li {
          width: 24%;
          float: none;
          display: inline-block;
          margin-bottom: 0.625em; } }

.fill1 {
  fill: #E72133; }

.fill2 {
  fill: #B51826; }

.fill4 {
  fill: #3D9CA1; }

.fill5 {
  fill: #2ED3D4; }

.icon--logo {
  fill: #2E2A26; }
  .modal-generic--dark .icon--logo {
    fill: #fff; }

/* Sections */
/**********************
*
* Sections
*
***********************/
.page-section {
  padding: 4.6875em 0;
  background-color: #F5F5F5;
  border-bottom: 1px solid rgba(151, 151, 151, 0.46); }
  @media (max-width: 767px) {
    .page-section {
      padding: 2.1875em 0; } }

/**********************
*
* MASTER CLASS SECTION
*
***********************/
.callout {
  color: #fff;
  padding-top: 5em;
  padding-bottom: 5em;
  background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-masterclass.jpg");
  background-repeat: no-repeat;
  background-size: cover;
  background-color: #F5F5F5;
  background-position: 50% 50%; }
  @media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-webkit-min-device-pixel-ratio: 1.3020833333333333), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) {
    .callout {
      background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-masterclass_2x.jpg");
      background-size: cover; } }
  @media (max-width: 1023px) {
    .callout {
      padding: 2.1875em 0; } }
  @media (max-width: 767px) {
    .callout {
      text-align: center; } }
  .callout__header {
    font-weight: bold;
    font-size: 5em;
    letter-spacing: 1px;
    line-height: 0.975;
    text-transform: uppercase;
    margin-bottom: 0.125em; }
    @media (max-width: 1023px) {
      .callout__header {
        font-size: 3.125em; } }
    @media (max-width: 767px) {
      .callout__header {
        font-size: 1.875em; } }
  .callout__paragraph {
    font-size: 1.1875em;
    line-height: 1.47368;
    margin-bottom: 1.57895em;
    font-weight: 200; }
    @media (max-width: 767px) {
      .callout__paragraph {
        font-size: 1em; } }
  .callout--content {
    height: 650px;
    background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-scalability.jpg");
    position: relative;
    overflow: hidden; }
    @media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-webkit-min-device-pixel-ratio: 1.3020833333333333), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) {
      .callout--content {
        background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-scalability_2x.jpg");
        background-size: cover; } }
    .callout--content .container {
      /* autoprefixer: off */
      display: -webkit-box;
      display: -moz-box;
      display: box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      /* autoprefixer: on */
      -webkit-box-orient: horizontal;
      -moz-box-orient: horizontal;
      box-orient: horizontal;
      -webkit-box-direction: normal;
      -moz-box-direction: normal;
      box-direction: normal;
      -webkit-flex-direction: row;
      -moz-flex-direction: row;
      flex-direction: row;
      -ms-flex-direction: row;
      -webkit-box-align: end;
      -moz-box-align: end;
      box-align: end;
      -webkit-align-items: flex-end;
      -moz-align-items: flex-end;
      -ms-align-items: flex-end;
      -o-align-items: flex-end;
      align-items: flex-end;
      -ms-flex-align: end; }
      .callout--content .container .column:first-child {
        box-flex: 1;
        -webkit-flex: 1 58.33333%;
        -moz-flex: 1 58.33333%;
        -ms-flex: 1 58.33333%;
        flex: 1 58.33333%; }
      .callout--content .container .column:last-child {
        text-align: right;
        box-flex: 1;
        -webkit-flex: 1 41.66667%;
        -moz-flex: 1 41.66667%;
        -ms-flex: 1 41.66667%;
        flex: 1 41.66667%; }
      .callout--content .container .column.callout__description {
        box-flex: 1;
        -webkit-flex: 1 auto;
        -moz-flex: 1 auto;
        -ms-flex: 1 auto;
        flex: 1 auto; }
    .callout--content .block--left {
      height: 1200px;
      width: 1200px;
      -webkit-transform: rotate(45deg);
              transform: rotate(45deg);
      left: 50%;
      margin-top: -680px;
      margin-left: -1350px; }
    .callout--content .block--right {
      margin-top: -300px;
      right: -850px;
      -webkit-transform: rotate(54deg);
              transform: rotate(54deg); }
    .callout--content .callout__header {
      margin-bottom: -0.2em;
      text-shadow: 0px 2px 6px rgba(0, 0, 0, 0.1); }
    .callout--content .button {
      background-color: #fff;
      color: #000;
      transition: all 150ms ease; }
      .callout--content .button:hover {
        background-color: #2ED3D4;
        color: white; }
    @media (max-width: 1023px) {
      .callout--content {
        padding-top: 3em;
        padding-bottom: 3em;
        height: auto; }
        .callout--content .callout__header {
          font-size: 3.125em;
          margin-bottom: 0.3em;
          line-height: 1.2; }
        .callout--content .container {
          box-orient: vertical;
          box-direction: normal;
          -webkit-flex-direction: column;
          -moz-flex-direction: column;
          flex-direction: column;
          -ms-flex-direction: column; }
          .callout--content .container .column.callout__description {
            box-flex: 1;
            -webkit-flex: 1 auto;
            -moz-flex: 1 auto;
            -ms-flex: 1 auto;
            flex: 1 auto; } }
    @media (max-width: 767px) {
      .callout--content {
        padding-top: 2.1875em;
        padding-bottom: 2.1875em;
        height: auto; }
        .callout--content .callout__header {
          font-size: 2em; }
        .callout--content .container {
          box-orient: vertical;
          box-direction: normal;
          -webkit-flex-direction: column;
          -moz-flex-direction: column;
          flex-direction: column;
          -ms-flex-direction: column; }
          .callout--content .container .callout__header {
            margin-bottom: 0.33333em; }
          .callout--content .container .callout__description.column {
            text-align: left; } }
  .callout--master-class.cta .container {
    background: none;
    padding-top: 0;
    padding-bottom: 0; }
  .callout--hiring {
    background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-hiring.jpg"); }
    @media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-webkit-min-device-pixel-ratio: 1.3020833333333333), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) {
      .callout--hiring {
        background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-hiring_2x.jpg");
        background-size: cover; } }
  .callout--enroll {
    color: #000;
    background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-enroll.jpg"); }
    @media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-webkit-min-device-pixel-ratio: 1.3020833333333333), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) {
      .callout--enroll {
        background-image: url("/d5/wp-content/themes/academy-newscred/img/bg-enroll_2x.jpg");
        background-size: cover; } }
    .callout--enroll .callout__header {
      font-weight: 500;
      font-size: 2.375em;
      color: #1F1F1F;
      letter-spacing: 0.94px;
      line-height: 1.10526;
      text-transform: none; }
    .callout--enroll .muted {
      display: block;
      font-size: 14px;
      color: #1F1F1F;
      margin: 12px 0 0 20px; }
  .callout--share {
    background: #2ED3D4;
    color: #000;
    padding-top: 2.125em;
    padding-bottom: 2.125em; }
    .callout--share p {
      font-weight: 200;
      font-size: 1.5em;
      line-height: 1.25;
      margin: 0;
      line-height: 60px; }
      @media (max-width: 1023px) {
        .callout--share p {
          line-height: 1.4em;
          margin-bottom: 1em; } }
    .callout--share ul li {
      float: left;
      display: block;
      margin-right: 0%;
      width: 25%; }
      .callout--share ul li:last-child {
        margin-right: 0; }
      .callout--share ul li a {
        background-color: #fff;
        border-radius: 100px;
        height: 60px;
        width: 60px;
        padding: 0;
        position: relative; }
        .callout--share ul li a .icon {
          position: absolute;
          left: 50%;
          top: 50%;
          -webkit-transform: translate(-50%, -50%);
                  transform: translate(-50%, -50%);
          fill: #2ED3D4; }
        .callout--share ul li a:hover {
          background-color: #E82233; }
        .callout--share ul li a:hover .icon {
          fill: white; }

/**********************
*
* TOPICS SECTION
*
***********************/
.topics.topics-shared-section {
  padding: 5.5em 0; }

.topics {
  padding: 5.5em 0;
  background-color: black;
  color: #fff;
  text-align: center; }
  .topics__header {
    font-weight: 500;
    font-size: 2.375em;
    line-height: 1.10526;
    text-transform: uppercase;
    margin-bottom: 0.6em; }
    @media (max-width: 767px) {
      .topics__header {
        font-size: 1em; } }
  .topics__subheader {
    color: #fff;
    font-weight: 200;
    margin-right: auto;
    margin-bottom: 0;
    margin-left: auto; }
    @media screen and (min-width: 1024px) {
      .topics__subheader {
        width: 80%; } }
    @media (max-width: 767px) {
      .topics__subheader {
        font-size: 0.9375em; } }
    .topics__subheader .button {
      font-size: 0.9375em;
      margin-right: 0.26667em;
      margin-bottom: 0.4em;
      background-color: #5A7A7A; }
      .topics__subheader .button:hover {
        background-color: #2ED3D4; }
  .topics__link {
    color: #fff;
    text-decoration: none;
    transition: all 0.33s ease;
    font-size: 18px;
    font-weight: 100;
    padding: 8px;
    border: 1px solid white;
    border-radius: 2px;
    white-space: nowrap;
    display: inline-block;
    margin: 0.1em;
    transition: all 150ms ease; }
    .topics__link:hover {
      background-color: #5A7A7A;
      border-color: #5A7A7A;
      color: white; }

/**********************
*
* FEATURED COLLECTIONS SECTION
*
***********************/
.featured-collections {
  padding: 3.125em 0;
  background-color: #F5F5F5; }
  @media (max-width: 767px) {
    .featured-collections {
      padding: 2.375em 0; } }
  @media (max-width: 1023px) {
    .featured-collections__resources {
      padding-bottom: 1.875em;
      border-bottom: 1px solid rgba(151, 151, 151, 0.46);
      margin-bottom: 1.875em; } }
  .featured-collections__more-box {
    position: relative;
    overflow: hidden;
    text-align: center;
    border-right: 1px solid rgba(151, 151, 151, 0.46);
    float: none;
    display: inline-block;
    margin: 0 -2px;
    margin-bottom: 20px; }
    .featured-collections__more-box:last-child {
      border-right: none; }
    .featured-collections__more-box > a {
      color: #000;
      display: block;
      width: 100%;
      height: 0;
      padding-bottom: 76%;
      position: relative; }
      .featured-collections__more-box > a:hover .icon {
        color: #2ED3D4; }
      .featured-collections__more-box > a .icon {
        display: block;
        max-width: none;
        max-height: none;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        margin-top: -13px;
        fill: #000;
        color: #E82233; }
      @media (max-width: 1023px) {
        .featured-collections__more-box > a {
          padding-bottom: 100%;
          font-size: 0.75em; } }
      @media (max-width: 767px) {
        .featured-collections__more-box > a {
          padding-bottom: 50%; } }
    @media (max-width: 767px) {
      .featured-collections__more-box:nth-child(2n) {
        margin-right: 0;
        border-right: 0; } }
  .featured-collections__more-text {
    font-weight: 500;
    position: absolute;
    bottom: 5px;
    left: 0;
    right: 0;
    font-size: 1.1875em;
    line-height: 1.2; }
  .featured-collections__more-collections::after {
    clear: both;
    content: "";
    display: table; }
  .featured-collections__more-collections h4 {
    font-weight: 200; }
  .featured-collections__more-collections .content-header-container {
    margin-bottom: 2.5em; }
  @media (max-width: 1023px) {
    .featured-collections__more-collections .content-header-container {
      margin-bottom: 1.125em; }
      .featured-collections__more-collections .content-header-container h4 {
        font-size: 1.375em; } }
  @media (max-width: 767px) {
    .featured-collections__more-collections {
      font-size: 0.875em; } }
  .featured-collections__boxes {
    margin-bottom: 3.4375em; }
    @media (max-width: 767px) {
      .featured-collections__boxes {
        margin-bottom: 1.5em; } }
  .featured-collections .button--link {
    display: inline-block;
    font-size: 1em; }

/**********************
* Trending section
***********************/
.trending {
  padding: 2.5em 0;
  background-color: #ffffff; }
  .trending-boxes--featured {
    margin-bottom: 3.4375em; }
    @media (max-width: 767px) {
      .trending-boxes--featured {
        margin-bottom: 1.5em; } }
  .trending__feature {
    width: 100%; }
  .trending__feature-image {
    max-width: 100%; }
  @media (max-width: 1023px) {
    .trending {
      padding: 2.1875em 0; }
      .trending__boxes {
        margin-bottom: 2.1875em; }
      .trending .container > .row--flex {
        /* autoprefixer: off */
        display: -webkit-box;
        display: -moz-box;
        display: box;
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flexbox;
        display: flex;
        /* autoprefixer: on */
        -webkit-box-orient: vertical;
        -moz-box-orient: vertical;
        box-orient: vertical;
        -webkit-box-direction: normal;
        -moz-box-direction: normal;
        box-direction: normal;
        -webkit-flex-direction: column;
        -moz-flex-direction: column;
        flex-direction: column;
        -ms-flex-direction: column; }
        .trending .container > .row--flex .column {
          border-left: 0;
          border-right: 0; }
        .trending .container > .row--flex > .column:first-child {
          box-ordinal-group: 2;
          -webkit-order: 2;
          -moz-order: 2;
          order: 2;
          -ms-flex-order: 2; }
        .trending .container > .row--flex > .column:last-child {
          box-ordinal-group: 1;
          -webkit-order: 1;
          -moz-order: 1;
          order: 1;
          -ms-flex-order: 1; } }

/**********************
* Profile
***********************/
.profile__pic {
  height: 143px;
  width: 143px;
  border-radius: 200px;
  overflow: hidden;
  margin-bottom: 1.25em; }

.profile__header {
  font-weight: bold;
  font-size: 2.625em;
  letter-spacing: 0.5px;
  line-height: 1.2381;
  margin-bottom: 0.38095em; }

.profile__subhead {
  font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-weight: 200;
  font-size: 0.9375em;
  line-height: 1.2;
  margin-bottom: 2em;
  margin-bottom: 1.5vw;
  margin-bottom: 1.5vmax; }

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

.profile__social li {
  float: left;
  margin-right: 10px; }

.profile__social a {
  height: 32px;
  width: 32px;
  border-radius: 16px;
  background-color: #B7B7B7;
  display: block;
  text-align: center;
  position: relative;
  transition: background-color 150ms ease; }
  .profile__social a:hover {
    background-color: #E82233; }
  .profile__social a .icon {
    fill: #fff;
    max-width: 16px;
    max-height: 14px;
    height: 14px;
    width: 16px;
    top: 40%;
    position: relative;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%); }
    @media (max-width: 767px) {
      .profile__social a .icon {
        -webkit-transform: translateY(-110%);
                transform: translateY(-110%); } }

/* Shared */
.subscribe {
  background-color: #2ED3D4;
  padding: 3.375em 0;
  color: #fff; }
  .subscribe label {
    margin: 0; }
    .subscribe label h4 {
      margin: 0 0 0.28em;
      font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      font-weight: 400;
      font-size: 3.125em;
      font-weight: 200;
      letter-spacing: 0.94px;
      line-height: 0.9;
      text-transform: uppercase; }
    .subscribe label p {
      margin-bottom: 0;
      font-size: 1.25em;
      line-height: 1.3;
      font-weight: 400; }
  .subscribe .center {
    top: 50%;
    position: absolute;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 8.33333%; }
    @media (max-width: 767px) {
      .subscribe .center {
        position: relative;
        top: 0;
        -webkit-transform: none;
                transform: none; } }
  .subscribe .input-group input[type="text"],
  .subscribe .input-group input[type="email"] {
    padding: 0.90625em 1.5em; }
  .subscribe .input-group .input-group-btn button {
    padding: 1.125em 1.5em; }
  @media (max-width: 767px) {
    .subscribe .input-group {
      position: static;
      -webkit-transform: none;
              transform: none; } }
  @media (max-width: 1023px) {
    .subscribe label h4 {
      font-size: 2em; }
    .subscribe .center {
      margin-left: 0%;
      right: 0; } }
  @media (max-width: 767px) {
    .subscribe {
      font-size: 0.875em; }
      .subscribe label h4 {
        font-size: 2.57143em; }
      .subscribe label p {
        margin-bottom: 0.71429em; } }

.sidebar-wrapper {
  width: 360px;
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(75%);
          transform: translateX(75%);
  z-index: 10; }
  @media screen and (max-width: 1440px) {
    .sidebar-wrapper {
      -webkit-transform: translateX(100%);
              transform: translateX(100%); } }
  @media (max-width: 1023px) {
    .sidebar-wrapper {
      position: static;
      -webkit-transform: none;
              transform: none;
      float: left;
      display: block;
      margin-right: 0%;
      width: 100%; }
      .sidebar-wrapper:last-child {
        margin-right: 0; } }
  .sidebar-wrapper.bottom, .sidebar-wrapper.posted-bottom {
    top: auto;
    bottom: 0;
    position: absolute; }
  .sidebar-wrapper.fixed {
    position: fixed;
    top: 100px; }

.share-wrapper {
  width: 105px;
  position: absolute;
  z-index: 10;
  text-align: center;
  -webkit-transform: translateX(-125%);
          transform: translateX(-125%); }
  @media screen and (max-width: 1440px) {
    .share-wrapper {
      -webkit-transform: translateX(-90%);
              transform: translateX(-90%); } }
  .share-wrapper li {
    margin-bottom: 2.3125em; }
    .share-wrapper li:first-child {
      text-transform: uppercase; }
  .share-wrapper a {
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 500;
    font-size: 0.75em;
    color: #9B9B9B;
    letter-spacing: 0.94px;
    line-height: 1.17647; }
  @media (max-width: 1023px) {
    .share-wrapper {
      position: static;
      float: left;
      display: block;
      margin-right: 0%;
      width: 100%;
      padding-top: 2em;
      border-top: 1px solid rgba(151, 151, 151, 0.46);
      -webkit-transform: none;
              transform: none; }
      .share-wrapper:last-child {
        margin-right: 0; }
      .content--collections .share-wrapper {
        border-bottom: 1px solid rgba(151, 151, 151, 0.46);
        padding-bottom: 2em;
        box-ordinal-group: 2;
        -webkit-order: 2;
        -moz-order: 2;
        order: 2;
        -ms-flex-order: 2;
        margin-bottom: 2.5em; }
      .share-wrapper ul::after {
        clear: both;
        content: "";
        display: table; }
      .share-wrapper > ul > li {
        float: left;
        display: block;
        margin-right: 0%;
        width: 50%;
        margin-bottom: 0; }
        .share-wrapper > ul > li:last-child {
          margin-right: 0; }
        .share-wrapper > ul > li:first-child {
          border-right: 1px solid rgba(151, 151, 151, 0.46); }
        .share-wrapper > ul > li .dropdown-icon .icon {
          display: inline;
          margin-bottom: -8px;
          margin-right: 5px; } }
  .share-wrapper .dropdown-icon .icon {
    width: 22px;
    height: 22px; }
  .share-wrapper.bottom, .share-wrapper.posted-bottom {
    top: auto;
    bottom: 0;
    position: absolute; }
  .share-wrapper.fixed {
    position: fixed;
    top: 100px; }

.sidebar__header {
  font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-size: 1.5625em;
  font-weight: 200;
  color: #787878;
  letter-spacing: 0.83px;
  line-height: 1.68;
  text-transform: uppercase; }

.sidebar__link-list .content-box {
  margin-bottom: 0.8125em; }
  .sidebar__link-list .content-box .content-box__text {
    background-color: #F5F5F5; }
  .sidebar__link-list .content-box:last-child {
    border: none; }

/**********************
*
* Content Boxes
*
***********************/
.content-box {
  display: block;
  margin-bottom: 0.625em;
  position: relative; }
  .content-box::after {
    clear: both;
    content: "";
    display: table; }
  @media (max-width: 767px) {
    .content-box {
      font-size: 0.875em; } }
  .content-box:before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    border: 0 solid #2ED3D4;
    transition: border-width 150ms ease;
    z-index: 1;
    pointer-events: none; }
  .content-box:hover:before {
    border-width: 7px; }
  .content-box .like-link,
  .content-box .dropdown--like {
    font-size: 1em;
    display: block;
    position: absolute;
    right: 0.8125em;
    top: 0.8125em; }
    .content-box .like-link .like-link,
    .content-box .dropdown--like .like-link {
      position: static; }
    .content-box .like-link .icon,
    .content-box .dropdown--like .icon {
      height: 18px;
      width: 22px; }
  .content-box .description p {
    font-size: inherit; }
  .content-box p {
    font-size: 15px;
    color: #434343;
    line-height: 1.5; }
  .content-box__half {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    right: 5px; }
    .content-box__half:first-child {
      background-size: cover;
      background-position: 50% 50%;
      left: 5px;
      right: 50%; }
      .content-box__half:first-child:after {
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        right: 0;
        content: ''; }
  .content-box__pic {
    display: block; }
  .content-box__text {
    position: relative;
    padding: 1em;
    background-color: #fff; }
    @media (max-width: 767px) {
      .content-box__text {
        padding-right: 1.5em; } }
    .content-box__text.small {
      padding: 1em 1.375em; }
      @media screen and (max-width: 1200px) and (min-width: 1024px) {
        .content-box__text.small {
          padding: 0.75em 0.875em; } }
    .content-box__text a {
      color: #434343; }
    .content-box__text .content-box__title {
      font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      font-size: 1.1em;
      line-height: 1.3;
      font-weight: 500;
      display: block; }
    .content-box__text .button--medium {
      color: #fff; }
    .content-box__text .topic-link {
      font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      color: #5A7A7A;
      font-size: 1em;
      display: block;
      margin-bottom: 0.375em;
      letter-spacing: 0.53px;
      font-weight: normal; }
      .content-box__text .topic-link span {
        color: #fff;
        background-color: #719696;
        padding: 0.0625em 0.4375em;
        margin-right: 0.4375em;
        display: inline-block;
        border-radius: 2px; }
    .content-box__text .post-categories a {
      font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      color: #5A7A7A;
      font-size: 1em;
      display: block;
      margin-bottom: 0.375em;
      letter-spacing: 0.53px;
      font-weight: normal; }
    .content-box__text .meta {
      font-weight: 200;
      font-size: 0.875em;
      line-height: 1.1875;
      position: absolute;
      left: 1.42857em;
      right: 1.42857em;
      bottom: 1.42857em;
      margin-bottom: 0;
      text-transform: uppercase;
      color: #333; }
      .content-box__text .meta a {
        font-size: 1em;
        color: #333;
        font-weight: 200; }
      .content-box__text .meta .icon {
        height: 12px;
        width: 12px;
        fill: #CBCBCB;
        margin-right: 4px;
        margin-bottom: -1px; }
      .content-box__text .meta .button {
        font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
        font-weight: bold;
        text-transform: none;
        color: #fff; }
    @media (min-width: 1024px) and (max-width: 1440px) {
      .content-box__text .meta {
        font-size: 0.97vw;
        font-size: 0.97vmax; } }
    @media (min-width: 1024px) and (max-width: 1440px) {
      .content-box__text .description {
        font-size: 1.11vw;
        font-size: 1.11vmax; } }
    .content-box__text .meta-addon {
      padding-left: 0.5em;
      margin-left: 0.5em;
      border-left: 1px solid black; }
  .content-box--image {
    height: 0;
    padding-bottom: 126%; }
    @media (max-width: 767px) {
      .content-box--image {
        padding-bottom: 92%; } }
    .content-box--image:before {
      left: 5px;
      right: 5px; }
    .content-box--image .content-box__pic {
      position: absolute;
      left: 5px;
      right: 5px;
      top: 0;
      bottom: 48%;
      background-color: transparent;
      background-repeat: no-repeat;
      background-position: 50% 50%;
      background-size: cover; }
    .content-box--image .content-box__text {
      background-color: #fff;
      position: absolute;
      right: 5px;
      left: 5px;
      top: 52%;
      bottom: 0; }
    .content-box--image.content-box--progress .content-box__text {
      padding-top: 1em;
      top: 52%; }
    @media (min-width: 1024px) and (max-width: 1440px) {
      .content-box--image.content-box--progress .content-box__title {
        -webkit-line-clamp: 1; } }   
    .content-box--image .content-box__title {
      /* autoprefixer: off */
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: box;
      -webkit-box-orient: vertical;
      -moz-box-orient: vertical;
      box-orient: vertical;
      -webkit-box-pack: start;
      -moz-box-pack: start;
      box-pack: start;
      -ms-flex-pack: start;
      -webkit-box-align: stretch;
      -moz-box-align: stretch;
      box-align: stretch;
      -ms-flex-align: stretch;
      /* autoprefixer: on */
      -webkit-line-clamp: 3;
      overflow: hidden; }
    @media (min-width: 768px) and (max-width: 1440px) {
      .content-box--image .content-box__title {
        -webkit-line-clamp: 2;
      } 
    }
  .content-box--promo:before {
    content: normal; }
  .content-box--promo label {
    text-transform: uppercase;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-size: 2em;
    font-weight: 200;
    color: #fff;
    line-height: 0.9;
    font-weight: 200;
    margin-bottom: 0.42222em; }
    @media screen and (max-width: 1500px) {
      .content-box--promo label {
        font-size: 2.1vw;
        font-size: 2.1vmax; } }
    @media (max-width: 767px) {
      .content-box--promo label {
        font-size: 1.875em; } }
  .content-box--promo .content-box__text {
    padding: 1.875em 1.5em;
    background-color: #2ED3D4; }
  @media screen and (max-width: 1390px) and (min-width: 1024px) {
    .content-box--promo .form-control {
      border-radius: 2px;
      float: none; }
    .content-box--promo .input-group {
      display: block; }
    .content-box--promo .input-group-btn {
      display: block;
      white-space: normal;
      margin-top: 10px;
      width: 100%; }
      .content-box--promo .input-group-btn button, .content-box--promo .input-group-btn > .btn {
        width: 100%;
        border-radius: 2px; } }
  .content-box--square {
    padding-bottom: 100%; }
    .content-box--square > a {
      display: block; }
    .content-box--square .content-box__pic {
      bottom: 0; }
  .content-box--resource {
    padding-bottom: 120%;
    height: 0; }
    .content-box--resource:before {
      display: none; }
    @media (max-width: 767px) {
      .content-box--resource {
        padding-bottom: 92%; } }
    .content-box--resource.resource--large {
      padding-bottom: 60%; }
      @media (max-width: 767px) {
        .content-box--resource.resource--large {
          padding-bottom: 92%; } }
      .content-box--resource.resource--large .content-box__text {
        padding: 2.64706em 2.47059em; }
        @media (min-width: 1024px) and (max-width: 1440px) {
          .content-box--resource.resource--large .content-box__text {
            padding: 2.4vw;
            padding: 2.4vmax; } }
        @media (max-width: 767px) {
          .content-box--resource.resource--large .content-box__text {
            padding: 16px; } }
        .content-box--resource.resource--large .content-box__text .content-box__title {
          font-size: 2.23529em; }
          @media (min-width: 1024px) and (max-width: 1440px) {
            .content-box--resource.resource--large .content-box__text .content-box__title {
              font-size: 2.64vw;
              font-size: 2.64vmax; } }
          @media (max-width: 767px) {
            .content-box--resource.resource--large .content-box__text .content-box__title {
              font-size: 1.47059em;
              line-height: 1.2;
              letter-spacing: 0.5px; } }
        .content-box--resource.resource--large .content-box__text .description {
          /* autoprefixer: off */
          display: -webkit-box;
          display: -moz-box;
          display: -ms-flexbox;
          display: box;
          -webkit-box-orient: vertical;
          -moz-box-orient: vertical;
          box-orient: vertical;
          -webkit-box-pack: start;
          -moz-box-pack: start;
          box-pack: start;
          -ms-flex-pack: start;
          -webkit-box-align: stretch;
          -moz-box-align: stretch;
          box-align: stretch;
          -ms-flex-align: stretch;
          /* autoprefixer: on */
          overflow: hidden;
          -webkit-line-clamp: 4; }
          @media screen and (max-width: 1500px) {
            .content-box--resource.resource--large .content-box__text .description {
              -webkit-line-clamp: 3; } }
        .content-box--resource.resource--large .content-box__text .meta {
          left: 3em;
          right: 3em;
          bottom: 3.21429em; }
          @media (min-width: 1024px) and (max-width: 1440px) {
            .content-box--resource.resource--large .content-box__text .meta {
              left: 2.4vmax;
              right: 2.4vmax;
              bottom: 2.4vmax;
              left: 2.4vw;
              right: 2.4vw;
              bottom: 2.4vw; } }
          @media (max-width: 767px) {
            .content-box--resource.resource--large .content-box__text .meta {
              left: 16px;
              right: 16px;
              bottom: 16px; } }
    .content-box--resource.resource--wide {
      padding-bottom: 81%; }
    .content-box--resource.resource--inverse .content-box__text {
      background-color: #1F1F1F;
      background-image: url("/d5/wp-content/themes/academy-newscred/img/resources-tile-bg.png");
      background-repeat: no-repeat;
      background-position: 90% 50%;
      background-size: 40% auto; }
      @media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-webkit-min-device-pixel-ratio: 1.3020833333333333), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) {
        .content-box--resource.resource--inverse .content-box__text {
          background-image: url("/d5/wp-content/themes/academy-newscred/img/resources-tile-bg_2x.png");
          background-size: cover; } }
      @media (max-width: 767px) {
        .content-box--resource.resource--inverse .content-box__text {
          background-image: none; } }
      .content-box--resource.resource--inverse .content-box__text .content-box__title {
        color: white; }
      .content-box--resource.resource--inverse .content-box__text .description {
        color: #8F8F8F; }
      .content-box--resource.resource--inverse .content-box__text a:hover {
        color: white; }
    .content-box--resource .content-box__text {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 5px;
      right: 5px;
      background-color: white;
      font-size: 1.0625em; }
      @media (max-width: 767px) {
        .content-box--resource .content-box__text {
          padding: 16px; }
          .content-box--resource .content-box__text .button {
            display: block;
            text-align: center; } }
      @media screen and (min-width: 1025px) {
        .content-box--resource .content-box__text .content-box__title {
          font-size: 1.47059em; } }
      @media (min-width: 1024px) and (max-width: 1440px) {
        .content-box--resource .content-box__text .content-box__title {
          font-size: 1.85vw;
          font-size: 1.85vmax; } }
      @media screen and (max-width: 1500px) {
        .content-box--resource .content-box__text .description {
          /* autoprefixer: off */
          display: -webkit-box;
          display: -moz-box;
          display: -ms-flexbox;
          display: box;
          -webkit-box-orient: vertical;
          -moz-box-orient: vertical;
          box-orient: vertical;
          -webkit-box-pack: start;
          -moz-box-pack: start;
          box-pack: start;
          -ms-flex-pack: start;
          -webkit-box-align: stretch;
          -moz-box-align: stretch;
          box-align: stretch;
          -ms-flex-align: stretch;
          /* autoprefixer: on */
          overflow: hidden;
          -webkit-line-clamp: 3; } }
      .content-box--resource .content-box__text .meta .button .icon {
        fill: #fff; }
  .content-box--large {
    height: 0;
    padding-bottom: 42%;
    background: none;
    overflow: hidden; }
    .content-box--large:before {
      left: 5px;
      right: 5px; }
    .content-box--large .description {
      font-weight: 200;
      font-size: 1em;
      color: #434343;
      line-height: 1.5625; }
      @media (min-width: 1024px) and (max-width: 1440px) {
        .content-box--large .description {
          font-size: 1.11vw;
          font-size: 1.11vmax;
          display: -webkit-box;
          -webkit-line-clamp: 3;
          -webkit-box-orient: vertical;
          overflow: hidden; }
          .content-box--large .description p {
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden; } }
      @media (max-width: 1023px) {
        .content-box--large .description {
          display: none; } }
    .content-box--large .content-box__text {
      background-color: #fff;
      padding: 1em 3.375em 1em 1.25em;
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0; }
    .content-box--large .meta {
      left: 20px;
      right: 20px; }
    .content-box--large .content-box__title {
      font-size: 2.375em;
      line-height: 1.1;
      letter-spacing: 0.25px;
      font-weight: bold;
      margin-bottom: 0.15789em; }
      @media (min-width: 1024px) and (max-width: 1440px) {
        .content-box--large .content-box__title {
          font-size: 2.64vw;
          font-size: 2.64vmax; } }
    @media (max-width: 1023px) {
      .content-box--large {
        height: auto;
        padding-bottom: 126%; }
        .content-box--large .content-box__pic {
          right: 5px;
          bottom: 48%; }
        .content-box--large .content-box__half:last-child {
          right: 5px;
          top: 52%;
          left: 5px; }
        .content-box--large .content-box__text {
          padding: 1.125em 1.375em; }
        .content-box--large .content-box__title {
          font-size: 1.1875em;
          font-weight: 500; } }
    @media (max-width: 767px) {
      .content-box--large {
        position: relative;
        padding-bottom: 92%; }
        .content-box--large a {
          font-size: 1.71429em; }
        .content-box--large .meta {
          left: 1.35714em;
          right: 1.35714em;
          bottom: 1.14286em; } }
  .content-box--profile {
    padding-bottom: 63%; }
    .content-box--profile:before {
      left: 5px;
      right: 5px;
      display: none; }
    .content-box--profile .content-box__half {
      background-color: #fff; }
      @media (max-width: 1023px) {
        .content-box--profile .content-box__half:first-child {
          right: 5px;
          bottom: 48%; } }
    @media (min-width: 1024px) and (max-width: 1440px) {
      .content-box--profile .profile__pic {
        height: 8.7vw;
        width: 8.7vw;
        height: 8.7vmax;
        width: 8.7vmax; } }
    @media screen and (max-width: 1023px) and (min-width: 767px) {
      .content-box--profile .profile__pic {
        height: 14vw;
        width: 14vw;
        height: 14vmax;
        width: 14vmax; } }
    .content-box--profile .profile,
    .content-box--profile .content-box__text {
      padding: 1.875em;
      position: absolute;
      left: 5px;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      background-color: transparent; }
    .content-box--profile .profile {
      z-index: 1; }
      @media (max-width: 1023px) {
        .content-box--profile .profile__pic {
          position: absolute; }
        .content-box--profile .profile__header {
          margin-left: 170px;
          margin-top: 30px;
          margin-bottom: 50px;
          font-size: 1.875em; } }
      @media (max-width: 767px) {
        .content-box--profile .profile {
          padding: 1em; }
          .content-box--profile .profile__pic {
            height: 70px;
            width: 70px; }
          .content-box--profile .profile__header {
            margin-left: 90px;
            margin-top: 5px;
            margin-bottom: 5px;
            min-height: 62px; }
          .content-box--profile .profile__subhead {
            margin-bottom: 10px; } }
    @media (min-width: 1024px) and (max-width: 1440px) {
      .content-box--profile .profile__header {
        font-size: 2.23vw;
        font-size: 2.23vmax; } }
    @media screen and (max-width: 1023px) and (min-width: 767px) {
      .content-box--profile .profile__header {
        margin-top: 3.4vw;
        margin-bottom: 3.4vw;
        margin-left: 16vw;
        padding-bottom: 1.5vw;
        margin-top: 3.4vmax;
        margin-bottom: 3.4mvax;
        margin-left: 16vmax;
        padding-bottom: 1.5vmax; } }
    .content-box--profile .description {
      display: block; }
      .content-box--profile .description p {
        font-size: 1.1875em;
        line-height: 1.73684; }
        @media (min-width: 1024px) and (max-width: 1440px) {
          .content-box--profile .description p {
            font-size: 0.9375em;
            font-size: 1.1vw;
            font-size: 1.1vmax; } }
        @media screen and (max-width: 1023px) and (min-width: 767px) {
          .content-box--profile .description p {
            font-size: 0.9375em;
            font-size: 1.47vw;
            font-size: 1.47vmax; } }
        @media screen and (max-width: 375px) {
          .content-box--profile .description p {
            font-size: 0.9375em;
            font-size: 2.4vw;
            font-size: 2.4vmax; } }
        .content-box--profile .description p:last-child {
          margin-bottom: 0; }
    .content-box--profile .content-box__text {
      height: auto;
      padding-left: 0;
      bottom: auto; }
      @media (max-width: 1023px) {
        .content-box--profile .content-box__text {
          position: static;
          -webkit-transform: none;
                  transform: none;
          padding: 1.125em 1.375em; } }
    @media (max-width: 1023px) {
      .content-box--profile {
        padding-bottom: 126%; } }
  .content-box--collection .content-box__title {
    color: #fff; }
  .content-box--collection .content-box__text {
    background-color: #1F1F1F;
    color: #fff; }
    @media screen and (max-width: 1300px) and (min-width: 1024px) {
      .content-box--collection .content-box__text {
        padding: 0.75em; } }
    .content-box--collection .content-box__text .topic-link {
      color: #719696; }
    .content-box--collection .content-box__text .meta {
      color: #CBCBCB;
      font-weight: 400; }
      .content-box--collection .content-box__text .meta a {
        color: #CBCBCB;
        text-transform: none;
        font-weight: 200;
        font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
        font-size: 0.875em; }
      .content-box--collection .content-box__text .meta .button {
        color: #fff;
        font-weight: bold;
        font-size: 1em; }
    .content-box--collection .content-box__text .meta-addon {
      border-color: #CBCBCB; }
  .content-box--collection.content-box--wide .content-box__text {
    padding-right: 1em;
    padding-left: 1em; }
  @media (max-width: 1023px) {
    .content-box--collection .content-box__title {
      /* autoprefixer: off */
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: box;
      -webkit-box-orient: vertical;
      -moz-box-orient: vertical;
      box-orient: vertical;
      -webkit-box-pack: start;
      -moz-box-pack: start;
      box-pack: start;
      -ms-flex-pack: start;
      -webkit-box-align: stretch;
      -moz-box-align: stretch;
      box-align: stretch;
      -ms-flex-align: stretch;
      /* autoprefixer: on */
      -webkit-line-clamp: 5;
      overflow: hidden; } }
  @media screen and (max-width: 800px) {
    .content-box--collection .content-box__title {
      -webkit-line-clamp: 3; } }
  @media (max-width: 767px) {
    .content-box--collection {
      position: relative;
      width: 100%; }
      .content-box--collection .like-link {
        top: 1.375em;
        bottom: auto; }
      .content-box--collection .content-box__title {
        color: #fff;
        -webkit-line-clamp: 3;
        overflow: hidden;
        margin-bottom: 0.41667em; } }
  .content-box--wide {
    padding-bottom: 92%; }
  .content-box--progress {
    height: 0;
    padding-bottom: 126%; }
    .content-box--progress:before {
      left: 5px;
      right: 5px; }
    .content-box--progress.content-box--wide {
      padding-bottom: 94.7%; }
      @media (max-width: 1023px) {
        .content-box--progress.content-box--wide {
          padding-bottom: 126%; } }
      @media (max-width: 767px) {
        .content-box--progress.content-box--wide {
          padding-bottom: 92%; } }
      .content-box--progress.content-box--wide .topic-link {
        margin-bottom: 0.9375em; }
      .content-box--progress.content-box--wide.content-box--collection .topic-link {
        margin-bottom: 0.375em; }
      .content-box--progress.content-box--wide .content-box__title {
        margin-bottom: 10px; }
    .content-box--progress .content-box__text {
      position: absolute;
      left: 5px;
      right: 5px;
      top: 0;
      bottom: 0;
      padding-top: 3.1875em; }
      @media (min-width: 1024px) and (max-width: 1440px) {
        .content-box--progress .content-box__text {
          padding-top: 3.3vw;
          padding-top: 3.3vmax; } }
    @media screen and (min-width: 1440px) {
      .content-box--progress .content-box__title {
        font-size: 1.5625em;
        letter-spacing: 0.5px;
        line-height: 1.28; }
      .content-box--progress .description {
        font-weight: 200;
        font-size: 1em;
        color: #212121;
        line-height: 1.61111; } }
    .content-box--progress .meta {
      color: #434343;
      min-height: 56px; }
      .content-box--progress .meta::after {
        clear: both;
        content: "";
        display: table; }
    .content-box--progress .completed {
      float: left;
      font-size: 0.93333em;
      font-weight: 400;
      text-transform: none;
      padding-right: 85px; }
    .content-box--progress .button {
      position: absolute;
      right: 0; }
  .content-box--event {
    color: #fff;
    height: 0;
    padding-bottom: 126%; }
    .content-box--event:before {
      display: none; }
    .content-box--event .content-box__text {
      background-color: #1F1F1F;
      height: auto;
      position: absolute;
      left: 5px;
      right: 5px;
      top: 0;
      bottom: 0;
      padding-top: 3em; }
      @media (min-width: 1024px) and (max-width: 1440px) {
        .content-box--event .content-box__text {
          padding-top: 3.3vw;
          padding-top: 3.3vmax; } }
      @media (max-width: 767px) {
        .content-box--event .content-box__text {
          padding-bottom: 6.875em; } }
    .content-box--event .content-box__title {
      font-size: 1.5625em; }
      @media (min-width: 1024px) and (max-width: 1440px) {
        .content-box--event .content-box__title {
          font-size: 1.74vw;
          font-size: 1.74vmax; } }
    .content-box--event .description {
      color: #fff;
      font-weight: 200;
      font-size: 1em;
      /* autoprefixer: off */
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: box;
      -webkit-box-orient: vertical;
      -moz-box-orient: vertical;
      box-orient: vertical;
      -webkit-box-pack: start;
      -moz-box-pack: start;
      box-pack: start;
      -ms-flex-pack: start;
      -webkit-box-align: stretch;
      -moz-box-align: stretch;
      box-align: stretch;
      -ms-flex-align: stretch;
      /* autoprefixer: on */
      -webkit-line-clamp: 4;
      overflow: hidden; }
      @media screen and (max-width: 1550px) {
        .content-box--event .description {
          -webkit-line-clamp: 1; } }
      @media screen and (max-width: 1250px) and (min-width: 1024px) {
        .content-box--event .description {
          -webkit-line-clamp: 1; } }
      @media screen and (min-width: 400px) and (max-width: 767px) {
        .content-box--event .description {
          display: block; } }
    .content-box--event .meta {
      position: absolute;
      left: 1.25em;
      right: 1.25em;
      bottom: 1.25em;
      border-top: 1px solid #E82233;
      padding-top: 8px;
      font-size: 1em; }
      .content-box--event .meta p {
        font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
        font-weight: 200;
        font-size: 1em;
        color: #fff;
        position: relative; }
      .content-box--event .meta a {
        color: #fff;
        font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif; }
      .content-box--event .meta .button {
        font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
        padding: 1em 3.0625em;
        font-size: 1em;
        line-height: 1.4375; }
    @media (min-width: 1024px) and (max-width: 1440px) {
      .content-box--event .meta,
      .content-box--event .description {
        font-size: 1.11vw;
        font-size: 1.11vmax; } }
    @media (max-width: 1023px) {
      .content-box--event {
        padding-bottom: 115%; } }

.content-header-container {
  position: relative;
  margin-bottom: 0.875em; }
  .content-header-container h4 {
    font-size: 2.375em;
    font-weight: 200;
    margin-bottom: 0; }
  .content-header-container h5 {
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-size: 1.25em;
    color: #9B9B9B;
    font-weight: 200;
    line-height: 1.4; }
  @media (max-width: 1023px) {
    .content-header-container {
      margin-bottom: 1.1875em; }
      .content-header-container h4 {
        font-size: 2em; }
      .content-header-container h5 {
        font-size: 1.125em; } }
  @media (max-width: 767px) {
    .content-header-container {
      margin-bottom: 1.1875em; }
      .content-header-container h4 {
        font-size: 1.25em; }
      .content-header-container h5 {
        font-size: 0.9375em; } }

.cta {
  background-color: #F5F5F5; }
  .cta .container {
    padding: 5em 7.375em;
    padding: 5em 6vw;
    padding: 5em 6vmax;
    background-color: #fff;
    max-width: 1410px;
    margin-left: auto;
    margin-right: auto; }
    .cta .container::after {
      clear: both;
      content: "";
      display: table; }
    @media (max-width: 1023px) {
      .cta .container {
        padding: 1.75em 1.6875em; } }
    @media (max-width: 767px) {
      .cta .container {
        padding: 1.75em 1.25em; } }
  .cta__description {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    float: left;
    display: block;
    margin-right: 0%;
    width: 33.33333%; }
    .cta__description:last-child {
      margin-right: 0; }
    @media (max-width: 767px) {
      .cta__description {
        float: left;
        display: block;
        margin-right: 0%;
        width: 100%;
        margin-right: 0;
        position: static;
        -webkit-transform: none;
                transform: none;
        float: none;
        margin-bottom: 1.25em; }
        .cta__description:last-child {
          margin-right: 0; } }
  .cta__header {
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 600;
    font-size: 4.75em;
    color: #1F1F1F;
    letter-spacing: 1px;
    line-height: 0.85;
    text-transform: uppercase;
    margin-bottom: 0.00391em; }
    @media (min-width: 1024px) and (max-width: 1440px) {
      .cta__header {
        font-size: 5.25vw;
        font-size: 5.25vmax; } }
    .cta__header span {
      display: block; }
      .cta__header span:first-child {
        color: #E82233; }
      .cta__header span:nth-child(2) {
        color: #2ED3D4; }
    @media (max-width: 1023px) {
      .cta__header {
        font-size: 3.125em;
        line-height: 1;
        margin-bottom: 0.42em; } }
    @media (max-width: 767px) {
      .cta__header {
        font-size: 2.5em;
        margin-bottom: 0.25em; } }
  .cta__paragraph {
    font-size: 1.25em;
    line-height: 1.4;
    margin-bottom: 1.5em; }
    @media (max-width: 767px) {
      .cta__paragraph {
        font-size: 1em;
        margin-bottom: 0.625em; } }
  .cta__button {
    text-transform: capitalize; }
  .cta .content-box {
    max-width: 700px;
    float: left;
    display: block;
    margin-right: 0%;
    width: 50%;
    float: right;
    margin-bottom: 0;
    padding-bottom: 36.7%; }
    .cta .content-box:last-child {
      margin-right: 0; }
    .cta .content-box h4 {
      font-weight: 500; }
    @media (max-width: 1023px) {
      .cta .content-box {
        height: auto;
        padding-bottom: 0; }
        .cta .content-box .content-box__text {
          position: static;
          padding-bottom: 9.375em;
          margin-left: 5px;
          margin-right: 5px; } }
    @media (max-width: 767px) {
      .cta .content-box {
        float: left;
        display: block;
        margin-right: 0%;
        width: 100%;
        margin-right: 0;
        float: none; }
        .cta .content-box:last-child {
          margin-right: 0; } }

.icon--topic-management {
  height: 75px;
  width: 65px; }
  @media (max-width: 1023px) {
    .icon--topic-management {
      height: 45px;
      width: 45px; } }

.icon--topic-inspiration {
  height: 88px;
  width: 54px; }
  @media (max-width: 1023px) {
    .icon--topic-inspiration {
      height: 53px;
      width: 32px; } }

.icon--topic-industry-leaders {
  height: 78px;
  width: 90px; }
  @media (max-width: 1023px) {
    .icon--topic-industry-leaders {
      height: 46px;
      width: 59px; } }

.icon--topic-measurement {
  height: 75px;
  width: 70px; }
  @media (max-width: 1023px) {
    .icon--topic-measurement {
      height: 44px;
      width: 42px; } }

.icon--topic-audience {
  height: 58px;
  width: 99px; }
  @media (max-width: 1023px) {
    .icon--topic-audience {
      height: 34px;
      width: 58px; } }

.icon--topic-strategy {
  height: 76px;
  width: 76px; }
  @media (max-width: 1023px) {
    .icon--topic-strategy {
      height: 45px;
      width: 45px; } }

.icon-override {
  fill: black; }

.icon--heart {
  fill: rgba(90, 122, 122, 0.5); }

.gallery-inner {
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden; }

.gallery {
  white-space: nowrap; }

.gallery-item {
  max-width: 100%;
  display: inline-block;
  width: 100%;
  white-space: normal;
  vertical-align: top;
  margin-right: -3px; }
  .gallery-item .column {
    border-left: 0;
    border-right: 0; }
  .gallery-item .load-more {
    display: inline-block;
    width: 100%;
    padding-top: 1em;
    font-size: 16px;
    font-weight: 600; }

.togglenav {
  margin: 0 5px 20px 5px; }
  .togglenav__items {
    border-bottom: 4px solid black; }
    .togglenav__items::after {
      clear: both;
      content: "";
      display: table; }
  .togglenav__item {
    display: inline-block;
    margin-bottom: 22px; }
    @media (max-width: 767px) {
      .togglenav__item {
        width: 33%;
        float: left;
        display: block;
        margin-bottom: 0; } }
  .togglenav-link {
    color: black;
    padding: 20px 0;
    margin-right: 20px;
    font-size: 1.25em;
    border-bottom: 8px solid transparent;
    transition: all 0.33s ease;
    font-weight: 200; }
    .togglenav-link:hover, .togglenav-link.active {
      color: #E82233;
      border-bottom: 8px solid #E82233; }
    .togglenav-link.active {
      font-weight: 500; }
    @media (max-width: 767px) {
      .togglenav-link {
        display: block;
        margin-bottom: -4px;
        font-size: 18px;
        line-height: 1.2;
        padding: 0;
        height: 60px; } }

.progress-bar {
  width: 100%;
  position: fixed;
  top: 60px;
  left: 0;
  z-index: 980; }
  .progress-bar .bar, .progress-bar .bar-mask {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 7px; }
  .progress-bar .bar-mask {
    background-color: #2ED3D4;
    -webkit-transform-origin: 0 0;
            transform-origin: 0 0;
    -webkit-transform: scaleX(0);
            transform: scaleX(0); }
  @media (max-width: 1023px) {
    .progress-bar {
      top: 60px; } }
  @media (max-width: 767px) {
    .progress-bar {
      top: 60px; } }

.progress {
  background: #434343;
  border-radius: 2px;
  height: 18px;
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  margin-bottom: 0.5em; }
  .progress__bar {
    float: left;
    height: 100%;
    width: 0;
    font-size: 0.75em;
    line-height: 20px;
    color: #fff;
    text-align: center;
    background-color: #2ED3D4;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    transition: width .6s ease; }

/* Pages */
/**********************
* Hero
***********************/
.hero-cta, .hero-modal {
  position: absolute;
  top: 120px;
  left: 0;
  width: 100%;
  bottom: 0; }
  .hero-cta .container.vcenter, .hero-modal .container.vcenter {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%); }
    @media (max-width: 1023px) {
      .hero-cta .container.vcenter, .hero-modal .container.vcenter {
        padding-left: 0; } }
  .hero-cta .container--large, .hero-modal .container--large {
    max-width: 1170px;
    margin-left: auto;
    margin-right: auto; }
    .hero-cta .container--large::after, .hero-modal .container--large::after {
      clear: both;
      content: "";
      display: table; }
  @media (max-width: 1023px) {
    .hero-cta, .hero-modal {
      top: 60px; } }
  @media (max-width: 767px) {
    .hero-cta, .hero-modal {
      top: 60px; } }

.hero--homepage-cta {
  height: 680px; }
  @media (max-width: 767px) {
    .hero--homepage-cta .hero-cta {
      background: none;
      background-color: #1F1F1F; } }
  .hero--homepage-cta .hero-cta .container--large {
    max-width: 1440px; }
  @media (max-width: 1023px) {
    .hero--homepage-cta {
      height: 580px; } }
  @media (max-width: 767px) {
    .hero--homepage-cta {
      height: 448px; } }
  .hero--homepage-cta .hero__header {
    font-size: 4.5em;
    margin-bottom: 0.13889em;
    text-shadow: none; }
    @media (max-width: 1023px) {
      .hero--homepage-cta .hero__header {
        font-size: 4.0625em; } }
    .hero--homepage-cta .hero__header.hero-header--modal {
      font-size: 2em;
      font-weight: 500; }
  .hero--homepage-cta .hero__subheader {
    font-size: 1.4em;
    margin-bottom: 1.2em; }
    @media (max-width: 1023px) {
      .hero--homepage-cta .hero__subheader {
        font-size: 1.5em; } }
  .hero--homepage-cta .hero-modal .row--description {
    margin: 54px 0; }
    @media (max-width: 1023px) {
      .hero--homepage-cta .hero-modal .row--description {
        margin: 36px 0; } }
    @media (max-width: 767px) {
      .hero--homepage-cta .hero-modal .row--description {
        margin: 16px 0; } }
    .hero--homepage-cta .hero-modal .row--description .column {
      border-right: 2px solid white;
      padding: 0 40px; }
      @media (max-width: 1023px) {
        .hero--homepage-cta .hero-modal .row--description .column {
          padding: 0 20px; } }
      @media (max-width: 767px) {
        .hero--homepage-cta .hero-modal .row--description .column {
          padding: 0 10px; } }
      .hero--homepage-cta .hero-modal .row--description .column:last-child {
        border-right: none; }
  @media (max-width: 1023px) {
    .hero--homepage-cta .hero-modal .hero__header {
      padding: 0 40px; } }
  @media (max-width: 767px) {
    .hero--homepage-cta .hero-modal .hero__header {
      padding: 0 20px;
      font-size: 32px; } }
  @media (max-width: 767px) {
    .hero--homepage-cta .hero-modal .hero__header.hero-header--modal {
      font-size: 24px; } }
  .hero--homepage-cta .hero-modal .icon {
    color: #E82233; }
    @media (max-width: 767px) {
      .hero--homepage-cta .hero-modal .icon.icon--close {
        width: 20px;
        height: 20px; } }
    .hero--homepage-cta .hero-modal .icon--description {
      max-width: 100%;
      max-height: 100%;
      width: 120px;
      height: 120px;
      fill: white; }
      @media (max-width: 1023px) {
        .hero--homepage-cta .hero-modal .icon--description {
          width: 100px;
          height: 100px; } }
      @media (max-width: 767px) {
        .hero--homepage-cta .hero-modal .icon--description {
          width: 60px;
          height: 60px; } }
  .hero--homepage-cta .hero-modal__description {
    color: white;
    fill: white; }
  .hero--homepage-cta .hero-modal .hero__cta {
    background-color: #E82233;
    color: white; }
    .hero--homepage-cta .hero-modal .hero__cta:hover {
      background-color: #2ED3D4; }

.content {
  margin: 2.5em 0; }
  .content .container {
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto; }
    .content .container::after {
      clear: both;
      content: "";
      display: table; }
  .content .dropdown .dropdown-toggle {
    text-transform: uppercase; }
  .content .dropdown .dropdown-menu {
    min-width: 360px;
    font-size: 0.875em;
    font-weight: 500;
    text-align: center;
    padding: 1.71429em;
    line-height: 1.28571; }
    .content .dropdown .dropdown-menu--right {
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%); }
    .content .dropdown .dropdown-menu li {
      margin: 0 0.3125em;
      width: auto; }
      .content .dropdown .dropdown-menu li > a {
        height: 50px;
        width: 50px;
        padding: 0;
        text-align: center;
        display: block;
        margin-top: 2px; }
        .content .dropdown .dropdown-menu li > a .icon {
          height: 22px;
          width: 22px;
          fill: #fff;
          position: absolute;
          left: 50%;
          top: 50%;
          -webkit-transform: translate(-50%, -50%);
                  transform: translate(-50%, -50%); }
      .content .dropdown .dropdown-menu li:first-child {
        margin-right: 10px;
        margin-left: 0; }
    .content .dropdown .dropdown-menu li > span {
      color: #E82233;
      line-height: 44px;
      font-size: 2.64286em;
      font-weight: 600;
      display: block;
      line-height: 1; }
  @media (max-width: 1023px) {
    .content .dropdown .dropdown-menu--right {
      top: 200%;
      left: 50%;
      -webkit-transform: translateX(-50%);
              transform: translateX(-50%); }
      .content .dropdown .dropdown-menu--right:after {
        top: -11px;
        left: 50%;
        -webkit-transform: rotate(45deg);
                transform: rotate(45deg);
        box-shadow: -2px -2px 4px -2px rgba(0, 0, 0, 0.37); } }
  @media (max-width: 767px) {
    .content .dropdown .dropdown-menu--right {
      left: 0; }
      .content .dropdown .dropdown-menu--right:after {
        left: 70%; } }

.article-wrapper {
  float: left;
  width: 71.5%;
  padding-left: 45px; }
  @media (max-width: 1023px) {
    .article-wrapper {
      padding-left: 0;
      float: left;
      display: block;
      margin-right: 0%;
      width: 100%;
      margin-right: 0;
      /* autoprefixer: off */
      display: -webkit-box;
      display: -moz-box;
      display: box;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flexbox;
      display: flex;
      /* autoprefixer: on */
      -webkit-box-orient: vertical;
      -moz-box-orient: vertical;
      box-orient: vertical;
      -webkit-box-direction: normal;
      -moz-box-direction: normal;
      box-direction: normal;
      -webkit-flex-direction: column;
      -moz-flex-direction: column;
      flex-direction: column;
      -ms-flex-direction: column; }
      .article-wrapper:last-child {
        margin-right: 0; } }

.article {
  width: 100%;
  padding-right: 2.8125em;
  position: relative; }
  .article::after {
    clear: both;
    content: "";
    display: table; }
  .article h4 {
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 500;
    font-size: 1.6875em;
    line-height: 1.2;
    color: #1F1F1F; }
  .article > p {
    font-size: 1.1em;
    letter-spacing: 0.01em;
    font-weight: 200;
    color: black;
    line-height: 1.8;
    margin-bottom: 1.5em; }
  .article a {
    color: #5A7A7A;
    text-decoration: underline; }
    .article a:hover {
      color: #7C9B9C; }
  .article h5 {
    font-size: 0.9em;
    color: #9B9B9B;
    margin-bottom: 2em;
    text-align: center; }
  .article__intro h4 {
    font-size: 1.5em;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    color: #333;
    line-height: 1.33333;
    font-weight: 200; }
    @media (max-width: 767px) {
      .article__intro h4 {
        font-size: 1.125em; } }
  @media (max-width: 1023px) {
    .article {
      float: left;
      display: block;
      margin-right: 0%;
      width: 100%;
      margin-left: 0%;
      box-ordinal-group: -1;
      -webkit-order: -1;
      -moz-order: -1;
      order: -1;
      -ms-flex-order: -1;
      padding-right: 0; }
      .article:last-child {
        margin-right: 0; }
      .article h4 {
        font-size: 1.625em; } }
  @media (max-width: 767px) {
    .article {
      font-size: 0.84375em; } }

.article-footer {
  margin-bottom: 0;
  padding-top: 2em;
  padding-bottom: 4.375em;
  display: block;
  margin-right: 0%;
  width: 100%;
  padding-right: 2.8125em;
  background-color: #f3f3f3; }
  .article-footer:last-child {
    margin-right: 0; }
  .article-footer .button {
    color: #fff;
    text-decoration: none; }
  @media (max-width: 1023px) {
    .article-footer {
      float: left;
      display: block;
      margin-right: 0%;
      width: 100%;
      margin-left: 0%;
      padding-right: 0;
      padding-bottom: 2.375em;
      border-bottom: 1px solid rgba(151, 151, 151, 0.46); }
      .article-footer:last-child {
        margin-right: 0; }
      .article-footer--collections {
        border-bottom: 0;
        margin-bottom: 0; } }

.numbered-list {
  margin: 2.5em 0 1.5em;
  counter-reset: list; }
  .numbered-list::after {
    clear: both;
    content: "";
    display: table; }
  .numbered-list > li {
    font-size: 1.1875em;
    margin-bottom: 1.31579em;
    padding-left: 1.57895em; }
    @media (max-width: 767px) {
      .numbered-list > li {
        padding-left: 2em; } }
    .numbered-list > li:before {
      counter-increment: list;
      content: counter(list) ".";
      font-weight: bold;
      position: absolute;
      text-align: right;
      display: inline-block;
      font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      color: #E82233;
      margin-left: -68px;
      margin-top: 1px;
      width: 50px; }
  .numbered-list__content .author {
    font-weight: 500;
    font-size: 0.925em;
    color: #434343;
    line-height: 1.35135;
    max-width: 70%; }
  .numbered-list__item-header {
    font-weight: bold; }
  @media (max-width: 1023px) {
    .numbered-list__content .author {
      max-width: none; } }
  .numbered-list.numbered-list--large .numbered-list__item-header {
    font-size: 1.5625em;
    text-decoration: underline; }
  .numbered-list.numbered-list--large > li:before {
    color: black;
    font-size: 1.5625em;
    margin-top: 3px; }

.bulleted-list {
  padding: 1em 1em 1em 1.875em;
  list-style: none;
  margin: 26px 0;
  position: relative; }
  .bulleted-list > li {
    font-size: 1.2em;
    margin-bottom: 10px;
    padding-left: 0.2em; }
    .bulleted-list > li:before {
      content: "• ";
      color: #E82233;
      position: absolute;
      left: 0;
      font-size: 1.5em;
      line-height: 0.75; }

.author {
  position: relative;
  padding-left: 54px; }
  .author::after {
    clear: both;
    content: "";
    display: table; }
  .author--img {
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -20px; }

.interview {
  margin: 2.5em 0 0.1875em; }
  .interview::after {
    clear: both;
    content: "";
    display: table; }
  .interview dt:before {
    content: 'Q'; }
  .interview dd:before {
    content: 'A';
    color: #477dca; }
  .interview dt:before, .interview dd:before {
    display: inline-block;
    position: absolute;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 600;
    font-size: 1.1875em;
    margin-top: 6px;
    color: #212121;
    line-height: 1.2;
    color: #E82233; }
  .interview > dl {
    margin-bottom: 2.3125em; }
  .interview dd > p,
  .interview dt > p {
    margin-left: 40px;
    color: #212121; }
    .interview dd > p a,
    .interview dt > p a {
      font-style: italic; }
  .interview dt > p {
    font-weight: 500;
    font-size: 1.375em;
    line-height: 1.40909; }
  .interview dd > p {
    font-size: 1.1875em;
    line-height: 1.63158; }
  @media (max-width: 767px) {
    .interview {
      font-size: 0.84375em; } }

.pullquote {
  margin-right: auto;
  margin-bottom: 3.875em;
  margin-left: auto;
  max-width: 85%; }
  .pullquote .icon {
    display: block;
    margin-right: auto;
    margin-left: auto;
    height: 63px;
    width: 81px;
    max-width: none;
    max-height: none;
    fill: #5A7A7A;
    margin-bottom: 0.6875em; }
  .pullquote em {
    text-align: center;
    display: block;
    opacity: 0.82;
    font-size: 1.75em;
    font-weight: 200;
    color: #4B6767;
    line-height: 1.4;
    margin-bottom: 0.85714em; }
  .pullquote cite {
    text-align: center;
    width: 53%;
    display: block;
    margin: 0 auto;
    position: relative;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 500;
    font-size: 0.9375em;
    color: #434343;
    line-height: 1.2;
    font-weight: 200; }
    .pullquote cite strong {
      font-weight: 500; }
    @media (max-width: 767px) {
      .pullquote cite {
        width: 100%; } }
    .pullquote cite.has-img {
      text-align: left;
      padding: 0 0 0 60px;
      margin-bottom: 5em; }
    .pullquote cite img {
      position: absolute;
      left: 0;
      top: 50%;
      margin-top: -25px; }
    .pullquote cite:after {
      content: '';
      width: 100px;
      height: 7px;
      background-color: #E82233;
      position: absolute;
      bottom: -30px;
      left: 50%;
      margin-left: -50px; }
  @media (max-width: 767px) {
    .pullquote .icon {
      height: 39px;
      width: 50px; }
    .pullquote em {
      font-size: 1.25em; } }

.graphics {
  position: relative; }
  .graphics figcaption {
    font-size: 0.765em;
    color: #787878;
    line-height: 1.14379;
    font-style: italic;
    padding: 1.06209em 0; }
  .graphics__fullsize {
    float: right;
    color: black; }
  .graphics.ar-50:before {
    content: '';
    padding-bottom: 50%;
    height: 0;
    display: block; }
  .graphics__image {
    position: absolute;
    left: 0;
    right: 0;
    top: 0; }

[data-action="zoom"] {
  cursor: pointer;
  cursor: -webkit-zoom-in; }

.post-date-modified p {
  font-style: italic;
  font-weight: 400;
}

.post-tags {
  margin: 0 auto;
  width: 71.5%; }
  .post-tags::after {
    clear: both;
    content: "";
    display: table; }
  .post-tags h5 {
    font-size: 1.875em;
    color: #1F1F1F;
    font-weight: 200; }

@media (max-width: 1023px) {
  .post-tags {
    width: 100%;
  }
}

.tags a {
  margin-right: 0.26667em;
  margin-bottom: 0.4em;
  font-weight: 500;
  background-color: #5A7A7A; }

.card-user {
  padding-top: 2.25em;
  border-top: 1px solid rgba(151, 151, 151, 0.46); }
  .card-user__image {
    float: right;
    border-radius: 100px;
    overflow: hidden; }
    @media (max-width: 767px) {
      .card-user__image {
        float: none;
        margin-bottom: 1.25em; } }
  .card-user__content {
    margin-right: 196px; }
    .card-user__content em {
      color: #666666; }
    @media (max-width: 767px) {
      .card-user__content {
        margin-right: 0; } }
  .card-user__name {
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 600;
    font-size: 1.875em;
    line-height: 1;
    margin-bottom: 0.43333em; }
    .card-user__name small {
      display: block;
      font-size: 0.6em;
      line-height: 1.22222;
      margin-top: 0.26667em; }
  .card-user__more {
    display: block;
    margin: 1em 0 0; }
  .card-user__description {
    font-size: 1em;
    color: #434343;
    line-height: 1.625; }
  @media (max-width: 767px) {
    .card-user {
      text-align: center; }
      .card-user__image {
        display: inline-block; }
      .card-user__content {
        text-align: left; } }

.paragraph-controls {
  margin-bottom: 1em;
  margin-top: -0.5em; }

.markup-protip {
  background-color: transparent;
  background-image: linear-gradient(#e0f9f9 0, #e0f9f9 100%);
  transition: 200ms background-color;
  cursor: pointer; }

.content--collections {
  overflow-x: hidden; }
  @media (max-width: 1023px) {
    .content--collections .article {
      box-ordinal-group: 0;
      -webkit-order: 0;
      -moz-order: 0;
      order: 0;
      -ms-flex-order: 0; } }

.article__header {
  font-size: 3.75em;
  line-height: 1.1;
  font-weight: bold;
  margin-bottom: 0.2em; }
  @media (max-width: 1023px) {
    .article__header {
      font-size: 2em; } }

.article--collections p:last-child {
  margin-bottom: 0; }

/***********************
* The article separators
************************/
.article-separator {
  padding: 0 2em 2em 0;
  margin: 3em 2.8125em 4em 0;
  position: relative;
  border-bottom: 7px solid black; }
  .article-separator::after {
    clear: both;
    content: "";
    display: table; }
  @media (max-width: 1023px) {
    .article-separator {
      box-ordinal-group: 0;
      -webkit-order: 0;
      -moz-order: 0;
      order: 0;
      -ms-flex-order: 0;
      margin-right: 0; } }
  .article-separator h5 {
    color: #999;
    font-size: 1.25em;
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 200;
    margin-bottom: 24px; }
  .article-separator ul {
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-size: 1.1875em;
    font-weight: bold; }
  .article-separator li {
    margin-top: 18px; }
    .article-separator li .icon {
      max-width: 20px;
      max-height: 20px;
      height: 20px;
      width: 20px; }
    .article-separator li .icon--build {
      margin-bottom: -2px; }
  .article-separator a {
    color: #E82233;
    font-weight: 400;
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif; }
    .article-separator a:hover {
      color: black; }

/***********************
* The article footer area
************************/
.article-footer--collections {
  float: none; }
  .article-footer--collections h6 {
    font-weight: 200;
    font-size: 1.25em;
    color: #9B9B9B;
    line-height: 1.4;
    margin-bottom: 1em; }

.collection-related {
  padding-left: 30px; }
  @media (max-width: 767px) {
    .collection-related {
      padding-left: 0;
      margin-top: 30px; } }

.collection-box__inner {
  padding: 3.5625em 1.875em 2.0625em;
  background-color: #000;
  color: #fff;
  display: block; }
  .collection-box__inner:hover .icon {
    fill: #fff;
    color: #2ED3D4; }
  .collection-box__inner:hover .collection-box__link {
    color: #2ED3D4; }
  @media (max-width: 1023px) {
    .collection-box__inner {
      padding-top: 1.875em;
      padding-bottom: 1.875em; } }

.collection-box__title {
  font-weight: 500;
  font-size: 2.1875em;
  line-height: 1.17143;
  color: #fff; }
  @media (max-width: 1023px) {
    .collection-box__title {
      font-size: 1.5em; } }

.collection-box__icon {
  height: 60px;
  width: 53px;
  max-width: none;
  max-height: none;
  color: #E82233;
  fill: #fff;
  margin-bottom: 1.4375em; }
  @media (max-width: 1023px) {
    .collection-box__icon {
      height: 40px;
      width: 33px; } }

.collection-box__description {
  font-weight: 200;
  color: #C5C5C5;
  line-height: 1.625; }

.collection-box__link {
  font-weight: 500;
  font-size: 0.875em;
  color: #E82233;
  line-height: 1.28571;
  transition: color 150ms ease; }

/***********************
* The article sidebar navigation
************************/
.sidebar__navigation .sidebar__item {
  background-color: #F2F5F5;
  margin-bottom: 5px;
  font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-weight: 500;
  font-size: 1.125em;
  position: relative;
  transition: 150ms ease; }
  .sidebar__navigation .sidebar__item .icon--check {
    fill: #5A7A7A;
    position: absolute;
    right: 0.8125em;
    top: 50%;
    height: 22px;
    width: 22px;
    transition: 150ms ease;
    -webkit-transform: translateY(-50%) scale(0);
            transform: translateY(-50%) scale(0); }
  .sidebar__navigation .sidebar__item.chapter {
    background-color: black;
    font-weight: 600;
    color: white;
    padding: 1em 1em 1em 2.25em; }
    .sidebar__navigation .sidebar__item.chapter .icon {
      fill: #fff;
      margin-bottom: 2px;
      max-width: 13px;
      max-height: 10px;
      height: 10px;
      width: 13px;
      margin-left: -26px;
      margin-right: 5px; }
  .sidebar__navigation .sidebar__item.active {
    background-color: #fff; }
    .sidebar__navigation .sidebar__item.active .sidebar__link {
      color: #E82233; }
  .sidebar__navigation .sidebar__item.read .sidebar__link {
    color: #719696;
    padding-right: 3em; }
  .sidebar__navigation .sidebar__item.read .icon--check {
    -webkit-transform: translateY(-50%) scale(1);
            transform: translateY(-50%) scale(1); }

.sidebar__navigation .sidebar__link {
  padding: 1em;
  color: black;
  display: block; }
  .sidebar__navigation .sidebar__link:hover {
    color: #E82233; }

/***********************
* Logged out article
************************/
.content--logged-out .article {
  overflow: hidden;
  position: relative; }
  .content--logged-out .article:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 240px;
    bottom: 0;
    left: 0;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), white); }

.article-unlock {
  float: left;
  width: calc(100% - 2.8125em);
  background-color: #2ED3D4;
  color: white;
  padding: 2em;
  border-radius: 2px;
  position: relative; }
  @media (max-width: 1023px) {
    .article-unlock {
      margin: 0 0 2.5em;
      width: 100%; } }
  .article-unlock__header, .article-unlock__subheader {
    text-transform: uppercase;
    margin: 0; }
  .article-unlock__header {
    font-weight: 500; }
  .article-unlock__subheader {
    font-weight: 200; }
  .article-unlock__access {
    padding-left: 3.3125em;
    position: relative; }
    .article-unlock__access .icon {
      fill: #fff;
      max-width: 39px;
      max-height: 52px;
      height: 52px;
      width: 39px;
      position: absolute;
      left: 0;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%); }
  .article-unlock__signup {
    text-align: right;
    position: absolute;
    right: 2em;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    max-width: 160px; }
    .article-unlock__signup .button {
      box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.42); }
      .article-unlock__signup .button:hover {
        background-color: #5A7A7A; }
    .article-unlock__signup .muted {
      color: #434343;
      margin-top: 5px;
      margin-bottom: 0; }
      .article-unlock__signup .muted a {
        color: #fff; }

.topics {
  padding: 7.375em 0;
  background-color: black;
  color: #fff;
  text-align: center; }
  .topics-page__section {
    padding: 3.75em 0; }
    @media (max-width: 767px) {
      .topics-page__section {
        padding: 2.5em 0; } }
  @media (max-width: 1023px) {
    .topics {
      padding: 2.9375em 0; } }
  @media (max-width: 767px) {
    .topics {
      padding: 2.5em 0; } }
  .topics-page__section .load-more {
    font-weight: 400;
    padding: 1.25em 0 0 0; }
    @media (max-width: 767px) {
      .topics-page__section .load-more {
        margin-bottom: -1.5em; } }
  .topics-page__sidebar .icon {
    margin-bottom: 0;
    max-width: 39px;
    max-height: 52px;
    height: 52px;
    width: 39px;
    color: #5A7A7A; }
  .topics-page__sidebar h5 {
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 200;
    font-size: 1.25em;
    color: #9B9B9B;
    line-height: 1.4;
    margin-bottom: 0.75em; }
  @media (max-width: 1023px) {
    .topics-page__sidebar .icon {
      float: left;
      margin-top: -9px; } }
  @media (max-width: 767px) {
    .topics-page__sidebar .icon {
      max-width: 26px;
      max-height: 22px;
      margin-top: -3px; }
    .topics-page__sidebar h5 {
      font-size: 0.8125em;
      margin-bottom: 1.53846em; } }
  .topics-page__hero {
    height: 500px; }
    .topics-page__hero .dropdown {
      display: inline-block; }
    .topics-page__hero .hero-cta {
      background-image: none;
      background-position: 50% 50%; }
    .topics-page__hero .block--red {
      left: -480px;
      margin-top: -320px;
      -webkit-transform: rotate(30deg);
              transform: rotate(30deg); }
    .topics-page__hero .block--blue {
      right: -660px;
      margin-top: -400px;
      -webkit-transform: rotate(30deg);
              transform: rotate(30deg); }
      @media (max-width: 767px) {
        .topics-page__hero .block--blue {
          right: -700px; } }
    .topics-page__hero .hero__header {
      margin-bottom: 0.16667em; }
      .topics-page__hero .hero__header a {
        color: #fff;
        display: block; }
      .topics-page__hero .hero__header .icon {
        max-width: 65px;
        max-height: none;
        display: block;
        margin-right: auto;
        margin-left: auto;
        margin-bottom: 0.43056em;
        fill: #fff;
        color: #E82233; }
        .topics-page__hero .hero__header .icon.icon--topic-industry-leaders, .topics-page__hero .hero__header .icon.icon--topic-audience {
          max-width: 75px; }
      .topics-page__hero .hero__header .dropdown-toggle:hover .icon--arrow-down-thin {
        fill: #2ED3D4; }
      .topics-page__hero .hero__header .icon--arrow-down-thin {
        width: 30px;
        height: 15px;
        display: inline;
        margin-bottom: 5px; }
        @media (max-width: 1023px) {
          .topics-page__hero .hero__header .icon--arrow-down-thin {
            width: 30px;
            margin-bottom: 0; } }
    .topics-page__hero .hero__subheader {
      font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      color: #ddd; }
      .topics-page__hero .hero__subheader p {
        margin: 0; }
    .topics-page__hero .active .hero__header .icon--arrow-down-thin {
      fill: #E82233; }
    .topics-page__hero .active .hero__header .dropdown-toggle:hover .icon--arrow-down-thin {
      fill: #E82233; }
    .topics-page__hero .dropdown-menu {
      top: 96%;
      right: 17px;
      font-size: 0.36364em; }
      .topics-page__hero .dropdown-menu li > a {
        font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
        font-size: 0.9375em;
        text-shadow: none;
        color: #1F1F1F; }
      .topics-page__hero .dropdown-menu:after {
        display: none; }
      @media (max-width: 1023px) {
        .topics-page__hero .dropdown-menu {
          right: 18px; }
          .topics-page__hero .dropdown-menu li > a {
            font-size: 1.31248em; } }
      @media (max-width: 767px) {
        .topics-page__hero .dropdown-menu {
          right: 88px;
          top: 120%;
          font-size: 0.69565em; }
          .topics-page__hero .dropdown-menu li > a {
            font-size: 0.75em; }
          .topics-page__hero .dropdown-menu:after {
            left: auto;
            right: 6%; } }
    @media (max-width: 1023px) {
      .topics-page__hero {
        height: 378px; } }
    @media (max-width: 767px) {
      .topics-page__hero {
        height: 310px; }
        .topics-page__hero .hero__header {
          font-size: 1.4375em; }
          .topics-page__hero .hero__header .icon--topic-management {
            display: none; }
          .topics-page__hero .hero__header .icon--arrow-down-thin {
            width: 15px;
            height: 15px; } }
  .topics-page__header {
    font-size: 2.375em;
    font-weight: 200;
    margin-bottom: 0.26316em;
    line-height: 1;
    margin: 10px 0; }
    @media (max-width: 1023px) {
      .topics-page__header {
        padding-left: 50px; } }
    @media (max-width: 767px) {
      .topics-page__header {
        padding-left: 32px;
        font-size: 1.3125em; } }
  .topics-page__dig-deeper h6 {
    font-size: 1.125em;
    color: #8F8F8F;
    font-weight: 500;
    color: black; }
  .topics-page__dig-deeper .button--small {
    font-size: 0.9375em;
    margin-bottom: 0.4em; }
  @media (max-width: 1023px) {
    .topics-page__dig-deeper .button--link {
      margin-bottom: 2.5em;
      display: inline-block; } }

@media screen and (min-width: 1024px) {
  .events-page__hero {
    height: 400px; } }

.events-page__hero .hero-bg {
  background-color: #F5F5F5; }

.events-page__hero .hero__header {
  text-shadow: none;
  color: #000; }

.events-page__hero .hero__subheader {
  margin-top: 1em;
  margin-bottom: .5em;
  color: #999;
  font-size: 1em;
  letter-spacing: .4px; 
}

.search-results__hero {
  height: 397px; }
  .ie .search-results__hero {
    overflow: hidden; }
  @media (max-width: 1023px) {
    .search-results__hero {
      height: 300px; } }
  @media (max-width: 767px) {
    .search-results__hero {
      height: 280px; } }
  .search-results__hero .hero-cta {
    background: none;
    background-color: #1F1F1F; }
  .search-results__hero .search-results__input {
    -webkit-appearance: none;
    color: #fff;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-size: 4.1875em;
    letter-spacing: 0.5px;
    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5);
    background: none;
    padding: 0;
    border: 0;
    font-weight: bold;
    box-shadow: none;
    margin-bottom: 0; }
    @media (max-width: 1023px) {
      .search-results__hero .search-results__input {
        font-size: 3em; } }
    @media (max-width: 767px) {
      .search-results__hero .search-results__input {
        font-size: 1.5em; } }
    .search-results__hero .search-results__input:focus {
      border: none;
      box-shadow: none; }

.search-results__number {
  font-weight: 200;
  font-size: 1.25em;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 0.55em;
  display: inline-block; }

.search-results__muted {
  font-style: italic;
  font-size: 1em;
  color: #888888;
  line-height: 1.16667; }

.search-results__results {
  background-color: #F5F5F5;
  padding-top: 0; }

.search-results__filter-bar {
  padding: 1.6875em 0;
  text-align: center; }
  .search-results__filter-bar h5 {
    margin: 0;
    line-height: 3.33333em;
    font-weight: 200;
    font-size: 0.9375em;
    color: #434343;
    letter-spacing: 0.75px;
    text-transform: uppercase; }
    .search-results__filter-bar h5 .icon {
      fill: #E82233;
      height: 1.06667em;
      width: 1.2em;
      margin-right: 6px;
      margin-bottom: -2px; }
      @media (max-width: 767px) {
        .search-results__filter-bar h5 .icon {
          margin-right: 0; } }
  .search-results__filter-bar .column--select {
    position: relative; }
    .search-results__filter-bar .column--select .icon--arrow-down {
      position: absolute;
      position: absolute;
      right: 0.88889em;
      top: 50%;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%);
      height: 9px;
      width: 9px; }
  .search-results__filter-bar select {
    display: block;
    width: 100%;
    margin: 0; }
    .search-results__filter-bar select:hover + .icon {
      fill: #E82233; }
  .search-results__filter-bar .button--block {
    line-height: 1.625em;
    background-color: #E82233;
    color: #fff;
    width: 100%; }

@media (max-width: 1023px) {
  .search-results__filter-bar {
    font-size: 0.875em; }
    .search-results__filter-bar > .column {
      margin-left: 0%; } }

@media (max-width: 767px) {
  .search-results__filter-bar {
    font-size: 0.625em; }
    .search-results__filter-bar .column {
      margin-left: 0%;
      border-width: 2px; }
      .search-results__filter-bar .column--submit {
        margin-top: 1em; } }

.search-pagination {
  margin-top: 4em; }
  .search-pagination__list {
    list-style: none;
    text-align: center; }
  .search-pagination__item {
    display: inline-block;
    font-size: 1.125em;
    font-weight: 500;
    font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    padding: 0 11px; }
    @media (max-width: 767px) {
      .search-pagination__item {
        font-size: 1em;
        padding: 0 3px; } }
  .search-pagination__link {
    color: black; }
    .search-pagination__link:hover {
      color: #E82233; }
    .search-pagination__link.active {
      color: #E82233; }
  .search-pagination .nav-links {
    text-align: center; }
    .search-pagination .nav-links a, .search-pagination .nav-links span {
      display: inline-block;
      font-size: 1.125em;
      font-weight: 500;
      font-family: "HurmeGeometricSans3", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      padding: 0 11px;
      color: black; }
      .search-pagination .nav-links a:hover, .search-pagination .nav-links a.active, .search-pagination .nav-links a.current, .search-pagination .nav-links span:hover, .search-pagination .nav-links span.active, .search-pagination .nav-links span.current {
        color: #E82233; }
      @media (max-width: 767px) {
        .search-pagination .nav-links a, .search-pagination .nav-links span {
          font-size: 1em;
          padding: 0 3px; } }
  .search-pagination .icon--arrow-down {
    width: 12px;
    height: 12px; }
  .search-pagination .icon--prev {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }
  .search-pagination .icon--next {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  .search-pagination .screen-reader-text {
    display: none; }

@media (max-width: 1023px) {
  .resources-page__hero {
    height: 300px; } }

@media (max-width: 767px) {
  .resources-page__hero {
    height: 200px; } }

.resources-page__resources {
  padding-top: 0; }

@media (max-width: 1023px) {
  .news-and-events-page__hero {
    height: 300px; } }

@media (max-width: 767px) {
  .news-and-events-page__hero {
    height: 200px; } }

.news-and-events-page__news-and-events {
  padding-top: 0; }

.hero--onboarding {
  height: 100vh;
  min-height: 800px; }
  @media (max-width: 1023px) {
    .hero--onboarding {
      max-height: 820px;
      min-height: 740px; } }
  @media (max-width: 767px) {
    .hero--onboarding {
      max-height: 660px;
      min-height: 600px; } }
  .hero--onboarding .hero-cta {
    background: none; }
  .hero--onboarding .hero-bg {
    background-color: #1F1F1F; }
  @media (max-width: 767px) {
    .hero--onboarding .secondary-text {
      font-size: 1.35em; } }

.onboarding__header, .onboarding__subheader {
  color: white; }

.onboarding__header {
  font-size: 2.875em;
  font-weight: 800;
  margin-bottom: 0.2em; }

.onboarding__subheader {
  font-size: 1.3125em;
  line-height: 1.5em;
  color: #9B9B9B;
  font-weight: 200;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif; }

.onboarding__link {
  color: #9B9B9B;
  text-decoration: underline; }

.onboarding-modal {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0; }
  .onboarding-modal__top {
    height: 120px;
    background-color: white;
    color: #9B9B9B;
    font-size: 1.25em; }
    .onboarding-modal__top p {
      font-weight: 200;
      margin-bottom: 0; }
  .onboarding-modal__bottom {
    height: 100%;
    margin-top: 60px; }

/******************
* FORMS AND INPUTS
*******************/
input[type="text"].onboarding__input, input[type="email"].onboarding__input, input[type="password"].onboarding__input {
  font-size: 1.125em;
  padding: 1em; }
  @media (max-width: 767px) {
    input[type="text"].onboarding__input, input[type="email"].onboarding__input, input[type="password"].onboarding__input {
      font-size: 14px; } }

select.onboarding-information__select {
  padding: 0;
  font-size: 0.9em;
  line-height: 1.3;
  margin: 0;
  display: inline-block;
  width: 86px;
  border: none;
  background: none;
  color: #B7B7B7;
  border-radius: 0;
  border-bottom: 1px solid #b7b7b7;
  height: 36px; }
  @media (max-width: 767px) {
    select.onboarding-information__select {
      width: 60px;
      height: 24px; } }
  select.onboarding-information__select optgroup {
    font-size: 14px; }
  select.onboarding-information__select:focus {
    outline: none; }
  .active select.onboarding-information__select {
    color: #2ED3D4;
    border-bottom: none; }

.onboarding-select-wrapper {
  position: relative;
  display: inline-block;
  margin-right: 24px; }
  .onboarding-select-wrapper .icon {
    position: absolute;
    top: 50%;
    right: -18px;
    margin-top: -4px;
    width: 12px;
    height: 12px;
    fill: #B7B7B7; }
  .onboarding-select-wrapper.active .icon {
    fill: #2ED3D4; }

.onboarding__form {
  color: white;
  margin: 2em 0; }
  .onboarding__form.form--details {
    margin: 1em 0; }
  .onboarding__form label {
    color: #9C9C9C;
    font-size: 0.9375em;
    font-weight: 200; }
  .onboarding__form.onboarding-information {
    font-size: 1.6em;
    font-weight: 200; }
    .onboarding__form.onboarding-information p {
      margin: 0; }
    .onboarding__form.onboarding-information .onboarding-information__input {
      box-shadow: none;
      -webkit-appearance: none;
      background: none;
      padding: 0;
      border: 0;
      color: white;
      display: inline-block;
      min-width: 20px;
      color: #B7B7B7;
      word-wrap: break-word;
      word-break: break-word;
      height: 40px;
      border-bottom: 1px solid #b7b7b7;
      padding-bottom: 6px; }
      @media (max-width: 767px) {
        .onboarding__form.onboarding-information .onboarding-information__input {
          height: 26px; } }
      .onboarding__form.onboarding-information .onboarding-information__input.active, .onboarding__form.onboarding-information .onboarding-information__input:focus {
        text-decoration: none;
        color: #2ED3D4;
        outline: none;
        text-align: center;
        border-bottom: none; }
      .onboarding__form.onboarding-information .onboarding-information__input:after {
        content: attr(data-default); }
      .onboarding__form.onboarding-information .onboarding-information__input:focus:after, .onboarding__form.onboarding-information .onboarding-information__input.active:after {
        display: none; }
      .onboarding__form.onboarding-information .onboarding-information__input:hover {
        cursor: text; }
    .onboarding__form.onboarding-information .onboarding-information__dropdown {
      position: relative;
      display: inline-block; }
      .onboarding__form.onboarding-information .onboarding-information__dropdown .form-control {
        margin-bottom: 0;
        padding: 0;
        font-size: 100%;
        line-height: 1em;
        background: none;
        color: white;
        border: none; }
        .onboarding__form.onboarding-information .onboarding-information__dropdown .form-control:focus {
          border: none;
          box-shadow: none;
          -webkit-appearance: none;
          outline: none; }
      .onboarding__form.onboarding-information .onboarding-information__dropdown .icon {
        position: absolute;
        right: 0.88889em;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        height: 9px;
        width: 9px; }

.button.button--complete-signup {
  background-color: #C6C6C6; }
  .button.button--complete-signup.active {
    background-color: #E82233; }
    .button.button--complete-signup.active:hover {
      background-color: #2ED3D4; }

.hero a.onboarding--form-button, .hero input[type="submit"].onboarding--form-button {
  background-color: #C6C6C6;
  color: white;
  display: block;
  font-size: 1.1875em;
  font-weight: 600;
  letter-spacing: 0.5px;
  line-height: 1.4;
  box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.47);
  padding: 1em 3em;
  cursor: not-allowed;
  pointer-events: none; }
  .hero a.onboarding--form-button:hover, .hero input[type="submit"].onboarding--form-button:hover {
    background-color: #C6C6C6;
    color: white; }
  @media (max-width: 767px) {
    .hero a.onboarding--form-button, .hero input[type="submit"].onboarding--form-button {
      font-size: 14px; } }
  .hero a.onboarding--form-button.center, .hero input[type="submit"].onboarding--form-button.center {
    margin: 0 auto; }
  .hero a.onboarding--form-button.full-width, .hero input[type="submit"].onboarding--form-button.full-width {
    width: 100%;
    margin-top: 1em; }
  .hero a.onboarding--form-button.active, .hero input[type="submit"].onboarding--form-button.active {
    background-color: #E82233;
    cursor: default;
    pointer-events: auto; }
    .hero a.onboarding--form-button.active:hover, .hero input[type="submit"].onboarding--form-button.active:hover {
      background-color: #2ED3D4; }

.onboarding__signup-link {
  color: #9B9B9B;
  margin-top: 1.5em;
  font-weight: 200; }
  .onboarding__signup-link a {
    color: #2ED3D4;
    text-decoration: underline; }

.masterclass-page__hero {
  height: 640px; }
  .masterclass-page__hero.masterclass-page__hero-logged-in {
    height: 470px; }
    .masterclass-page__hero.masterclass-page__hero-logged-in .hero-bg {
      background-color: #1F1F1F; }
    .masterclass-page__hero.masterclass-page__hero-logged-in .hero__header {
      font-size: 3em;
      margin-bottom: 0.60417em; }
    .masterclass-page__hero.masterclass-page__hero-logged-in .hero__subheader {
      margin-bottom: 0; }
  .masterclass-page__hero .hero-bg {
    background-color: black; }
  .masterclass-page__hero .hero__header {
    font-size: 4.375em; }
    @media (max-width: 767px) {
      .masterclass-page__hero .hero__header {
        font-size: 3em; } }
  .masterclass-page__hero .hero__subheader {
    margin-bottom: 35px; }
  .masterclass-page__hero .button {
    margin-right: 10px; }
  .masterclass-page__hero .muted {
    font-size: 0.875em; }
  @media (max-width: 767px) {
    .masterclass-page__hero .hero__stats {
      margin-bottom: 1em; } }

.masterclass-page__section {
  padding-top: 70px; }
  .masterclass-page__section h3 {
    font-weight: 200;
    font-size: 1.875em;
    letter-spacing: 0.45px;
    line-height: 1.4;
    margin-bottom: 2.33333em; }
  .masterclass-page__section h2 {
    font-size: 2.375em;
    font-weight: 200;
    margin-bottom: 1.28947em;
    line-height: 1.42105; }
  @media (max-width: 1023px) {
    .masterclass-page__section .topics-page__header {
      padding-left: 0; } }
  .masterclass-page__section .content-box__text {
    padding: 2.5em;
    position: relative; }
    .masterclass-page__section .content-box__text .icon-container {
      height: 80px;
      width: 80px;
      padding: 16px;
      background-color: #F2F5F5;
      border-radius: 40px;
      position: absolute;
      top: 50%;
      right: 40px;
      -webkit-transform: translateY(-50%);
              transform: translateY(-50%); }
    .masterclass-page__section .content-box__text .icon {
      color: #E82233;
      fill: #434343;
      max-width: none;
      max-height: none;
      height: 48px;
      width: 48px; }
    .masterclass-page__section .content-box__text .content-box__title {
      font-size: 25px;
      margin-bottom: 5px; }
      .masterclass-page__section .content-box__text .content-box__title .muted {
        font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
        font-size: 0.52em;
        color: #CACACA; }
    .masterclass-page__section .content-box__text .description {
      font-size: 16px;
      font-weight: 200; }
    .masterclass-page__section .content-box__text .muted {
      font-size: 0.8125em;
      color: #CACACA;
      margin: 15px 0 0; }
      .masterclass-page__section .content-box__text .muted .button {
        color: #fff;
        font-size: 13px;
        text-decoration: none;
        margin-left: 10px; }
  @media (max-width: 767px) {
    .masterclass-page__section.callout--enroll .button {
      display: block;
      margin-bottom: 1em; } }

.masterclass-page__progress {
  padding-top: 142px; }
  @media (max-width: 767px) {
    .masterclass-page__progress {
      padding-top: 82px; } }

.masterclass-page__section-logged-in .content-box__text .icon {
  color: #434343; }

.masterclass-page__section-logged-in .content-box:before {
  display: none; }

.masterclass-page__profiles {
  color: #fff;
  background-color: #1F1F1F; }
  .masterclass-page__profiles h4 {
    font-weight: 200;
    font-size: 38px;
    margin-bottom: 40px; }
  .masterclass-page__profiles .profile {
    float: left;
    display: block;
    margin-right: 0%;
    width: 25%; }
    .masterclass-page__profiles .profile:last-child {
      margin-right: 0; }
    @media (max-width: 767px) {
      .masterclass-page__profiles .profile {
        float: left;
        display: block;
        margin-right: 0%;
        width: 50%; }
        .masterclass-page__profiles .profile:last-child {
          margin-right: 0; } }
    .masterclass-page__profiles .profile__pic {
      margin-right: auto;
      margin-left: auto; }
    .masterclass-page__profiles .profile__header {
      font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
      font-size: 1em; }
    .masterclass-page__profiles .profile__subhead {
      font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif; }

.testimonials {
  float: left;
  display: block;
  margin-right: 0%;
  width: 66.66667%;
  margin-left: 16.66667%; }
  .testimonials:last-child {
    margin-right: 0; }
  .testimonials__title {
    float: left;
    display: block;
    margin-right: 0%;
    width: 58.33333%;
    margin-left: 20.83333%; }
    .testimonials__title:last-child {
      margin-right: 0; }
  @media (max-width: 1023px) {
    .testimonials {
      float: left;
      display: block;
      margin-right: 0%;
      width: 100%;
      margin-left: 0%; }
      .testimonials:last-child {
        margin-right: 0; }
      .testimonials__title {
        float: left;
        display: block;
        margin-right: 0%;
        width: 100%;
        margin-left: 0%; }
        .testimonials__title:last-child {
          margin-right: 0; } }

.wells {
  border: 1px solid #D6D6D6;
  border-radius: 2px;
  padding: 4.0625em 0;
  position: relative;
  margin-bottom: 90px; }
  .wells::after {
    clear: both;
    content: "";
    display: table; }
  .wells__title {
    position: absolute;
    left: 50%;
    top: 0;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    font-weight: 500;
    font-size: 1.1875em;
    text-transform: uppercase;
    letter-spacing: 1px;
    background-color: white;
    padding-right: 5px;
    padding-left: 5px; }
  .wells .nav-wrapper {
    position: absolute;
    width: 100%;
    height: 1px;
    top: 50%;
    z-index: 1; }
    .wells .nav-wrapper .left, .wells .nav-wrapper .right {
      position: absolute;
      top: 0;
      display: block;
      height: 20px;
      width: 7px;
      margin-top: -10px; }
      .wells .nav-wrapper .left:hover .icon, .wells .nav-wrapper .right:hover .icon {
        fill: #bdbdbd; }
    .wells .nav-wrapper .left {
      left: 19px; }
      .wells .nav-wrapper .left .icon {
        -webkit-transform: scaleX(-1);
                transform: scaleX(-1); }
    .wells .nav-wrapper .right {
      right: 19px; }
    .wells .nav-wrapper .icon {
      fill: #D6D6D6;
      height: 20px;
      width: 7px; }
  .wells .well {
    float: left;
    display: block;
    margin-right: 0%;
    width: 33.33333%;
    border-right: 1px solid #D6D6D6; }
    .wells .well:last-child {
      margin-right: 0; }
    @media (max-width: 767px) {
      .wells .well {
        float: left;
        display: block;
        margin-right: 0%;
        width: 100%;
        border-right: none; }
        .wells .well:last-child {
          margin-right: 0; } }
    .wells .well:last-child {
      border: none; }
    .wells .well .icon {
      height: 62px;
      width: 62px;
      max-width: none;
      max-height: none;
      fill: #434343;
      color: #E82233; }
      @media (max-width: 767px) {
        .wells .well .icon {
          margin-top: 30px;
          margin-bottom: -22px; } }
    .wells .well p {
      font-weight: 200;
      font-size: 1.1875em;
      color: #1F1F1F;
      line-height: 1.73684;
      margin: 0;
      padding-right: 34px;
      padding-left: 34px; }
  @media (max-width: 767px) {
    .wells--multiple {
      padding: 0; } }
  @media (max-width: 767px) {
    .wells--multiple .well {
      margin: 0; } }
  @media (max-width: 767px) {
    .wells--multiple .well:last-child p {
      border-bottom: 0; } }
  @media (max-width: 767px) {
    .wells--multiple .well p {
      padding: 1.5em 0;
      margin: 0 2em;
      border-bottom: 1px solid #D6D6D6; } }
  @media (max-width: 767px) {
    .wells--slideshow {
      margin-bottom: 0; } }
  .wells--slideshow .quote {
    position: absolute;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
    top: 0;
    padding: 5px;
    background-color: white; }
    .wells--slideshow .quote .icon {
      fill: #E82233;
      height: 39px;
      width: 50px;
      max-width: none;
      max-height: none; }
  .wells--slideshow .gallery-inner {
    height: auto; }
  .wells--slideshow .well {
    float: left;
    display: block;
    margin-right: 0%;
    width: 100%; }
    .wells--slideshow .well:last-child {
      margin-right: 0; }
    .wells--slideshow .well .muted {
      color: #B7B7B7;
      margin-top: 20px;
      margin-bottom: 0;
      font-size: 1em; }

.panel {
  background-color: #EBEBEB;
  padding: 0.6875em 2.5em;
  box-shadow: inset 0px 2px 15px -5px rgba(0, 0, 0, 0.08); }
  .panel__collapse ul {
    padding-top: 0.625em;
    padding-bottom: 0.625em; }
  .panel__collapse .task {
    overflow: hidden;
    padding-bottom: 8px; }
    .panel__collapse .task:last-child a:before {
      display: none; }
  .panel__collapse .task a {
    font-weight: 200;
    font-size: 1em;
    color: #1F1F1F;
    line-height: 21px;
    display: inline-block;
    position: relative;
    padding-left: 35px; }
    .panel__collapse .task a:before {
      content: '';
      width: 1px;
      height: 200px;
      position: absolute;
      left: 10px;
      top: 0;
      background-color: #ddd; }
    .panel__collapse .task a:after {
      content: '';
      height: 21px;
      width: 21px;
      background-color: white;
      position: absolute;
      left: 0;
      top: 0;
      border: 1px solid #ddd;
      border-radius: 15px; }
    .panel__collapse .task a .icon {
      position: absolute;
      left: 0;
      top: 0;
      height: 21px;
      width: 21px;
      vertical-align: top;
      fill: #2ED3D4;
      z-index: 5; }
  .panel__heading {
    font-size: 0.9375em; }
    .panel__heading a {
      color: #E82233; }
    .panel__heading span {
      text-decoration: underline; }

.overall-progress {
  position: relative;
  height: 170px;
  width: 170px;
  margin-right: auto;
  margin-left: auto; }
  .overall-progress:after {
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    height: 170px;
    width: 170px;
    border-radius: 85px;
    border: 10px solid #434343;
    z-index: -1; }
  .overall-progress.no-progress-bg:after {
    display: none; }
  .overall-progress__text {
    position: absolute;
    left: 5%;
    top: 36px;
    width: 90%;
    text-align: center;
    font-size: 56px;
    color: #fff;
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    margin: 0;
    font-weight: 200; }
    .overall-progress__text span {
      font-size: 16px;
      display: block; }
  .overall-progress .radial-progress-canvas {
    height: 170px;
    width: 170px; }
  .overall-progress .icon {
    position: absolute;
    left: 50%;
    top: 50%;
    -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }
  .content-box .overall-progress {
    height: 76px;
    width: 76px;
    margin: -3px;
    position: absolute;
    right: 2.5em;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    background-color: #F2F5F5;
    border-radius: 40px; }
    .content-box .overall-progress .radial-progress-canvas {
      height: 80px;
      width: 80px;
      margin: -2px; }
    .content-box .overall-progress__text {
      font-size: 0.9375em;
      top: auto;
      bottom: 0;
      left: auto;
      right: 0;
      height: 20px;
      width: 20px;
      background-color: #2ED3D4;
      border-radius: 10px;
      line-height: 20px; }

/****************************
*
* MASTERCLASS OVERVIEW PAGE
*
*****************************/
.masterclass-overview__page {
  padding-top: 0; }
  .masterclass-overview__page .container {
    padding: 88px; }
    @media (max-width: 1023px) {
      .masterclass-overview__page .container {
        padding: 44px; } }
    @media (max-width: 767px) {
      .masterclass-overview__page .container {
        padding: 22px; } }
  @media (max-width: 767px) {
    .masterclass-overview__page .overview--bullets {
      margin-bottom: 1em; } }

.masterclass-overview__hero-cta .masterclass-overview__icon {
  position: absolute;
  width: 80px;
  height: 80px;
  padding: 16px;
  border-radius: 40px;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  background-color: #EBEBEB; }
  @media (max-width: 767px) {
    .masterclass-overview__hero-cta .masterclass-overview__icon {
      width: 40px;
      height: 40px; } }
  .masterclass-overview__hero-cta .masterclass-overview__icon .icon {
    fill: #434343;
    color: #E82233;
    max-width: none;
    max-height: none;
    height: 46px;
    width: 46px; }

.masterclass-overview__hero-cta .masterclass-overview__header.hero__header {
  font-size: 3em;
  margin-bottom: 0;
  margin-left: 100px; }
  @media (max-width: 767px) {
    .masterclass-overview__hero-cta .masterclass-overview__header.hero__header {
      font-size: 2em;
      margin-left: 60px; } }

.masterclass-overview__hero-cta .masterclass-overview__subheader {
  font-size: 0.9375em;
  font-weight: 100;
  margin-left: 100px;
  text-transform: uppercase; }
  @media (max-width: 767px) {
    .masterclass-overview__hero-cta .masterclass-overview__subheader {
      margin-left: 60px; } }

.bullets-list {
  list-style: disc;
  padding-left: 20px; }

.bullets-item {
  padding-bottom: 1em;
  font-weight: 100;
  font-size: 1.1875em; }

.masterclass-overview__header {
  font-size: 2.375em;
  font-weight: 100;
  margin-bottom: 1em; }
  @media (max-width: 767px) {
    .masterclass-overview__header {
      font-size: 1.75em;
      margin-bottom: 0.6em; } }

.featuring-author__header {
  font-size: 1.5625em;
  margin-bottom: 0; }

.featuring-author__subheader {
  font-size: 0.875em;
  font-weight: 100;
  color: #CACACA; }

.featuring-author-box {
  background-color: #1F1F1F;
  color: white;
  padding: 32px;
  margin-bottom: 20px; }
  .featuring-author-box:last-child {
    margin-bottom: 0; }

.featuring-author__top {
  margin-left: 78px;
  position: relative; }

.featuring-author__profile-picture {
  position: absolute;
  left: -78px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  border-radius: 50%;
  overflow: hidden; }

.featuring-author__bottom p {
  font-weight: 100;
  margin-bottom: 0;
  margin-top: 34px;
  color: #F2F5F5; }

.masterclass-overview__cta {
  margin-top: 60px; }
  .masterclass-overview__cta .button {
    padding: 18px;
    font-size: 1.25em; }

/****************************
*
* MASTERCLASS PROGRESS PAGE
*
*****************************/
.masterclass-progress__sidebar h1 {
  background-color: #fff;
  padding: 0.64em 0.96em;
  font-weight: bold;
  font-size: 1.5625em;
  letter-spacing: 0.5px;
  line-height: 1.28;
  margin: 0;
  position: relative; }
  .masterclass-progress__sidebar h1 .muted {
    display: block;
    font-size: 0.52em;
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif; }
  .masterclass-progress__sidebar h1 a {
    color: black;
    display: block; }
  .masterclass-progress__sidebar h1 .icon--arrow-down-thin {
    fill: #D6D6D6;
    height: 10px;
    width: 11px;
    position: absolute;
    right: 0.96em;
    top: 50%;
    -webkit-transform: translateY(-50%) scaleY(1);
            transform: translateY(-50%) scaleY(1); }
  .masterclass-progress__sidebar h1 .active .icon--arrow-down-thin {
    -webkit-transform: translateY(-50%) scaleY(-1);
            transform: translateY(-50%) scaleY(-1); }

.masterclass-progress__sidebar .panel {
  padding: 0; }
  .masterclass-progress__sidebar .panel li > a {
    border-bottom: 1px solid #D6D6D6;
    padding: 1.125em 1.8125em;
    display: block;
    color: #1F1F1F;
    font-weight: 200; }
    .masterclass-progress__sidebar .panel li > a small {
      font-size: 13px;
      color: #9B9B9B;
      line-height: 16px;
      display: block; }
  .masterclass-progress__sidebar .panel li ul {
    padding: 24px 0;
    border-bottom: 1px solid #D6D6D6; }
  .masterclass-progress__sidebar .panel li .task {
    padding-bottom: 15px;
    margin-bottom: 0; }
    .masterclass-progress__sidebar .panel li .task:last-child {
      padding-bottom: 0; }
  .masterclass-progress__sidebar .panel li .task a {
    border: none;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    margin-right: 1.8125em;
    margin-left: 1.8125em; }
  .masterclass-progress__sidebar .panel li:last-child > a {
    border-bottom: 0; }

.masterclass-progress__content .container--white {
  padding: 2.25em 2.875em; }

@media (max-width: 767px) {
  .masterclass-progress__content {
    padding: 1.375em; } }

.masterclass-progress__content h1 {
  font-weight: bold;
  font-size: 3em;
  line-height: 1.10417; }
  .masterclass-progress__content h1 small {
    font-size: 0.3125em;
    text-transform: uppercase;
    font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
    font-weight: 400;
    display: block;
    margin-bottom: 15px; }

.masterclass-progress__quiz {
  text-align: center; }
  .masterclass-progress__quiz .container--white {
    padding: 4.75em 7.5em; }
    @media (max-width: 1023px) {
      .masterclass-progress__quiz .container--white {
        padding: 2.75em; } }
    @media (max-width: 767px) {
      .masterclass-progress__quiz .container--white {
        padding: 1.375em; } }
  .masterclass-progress__quiz h1 {
    font-size: 2.375em;
    margin-bottom: 1.23684em; }
  .masterclass-progress__quiz ul {
    text-align: left; }
    .masterclass-progress__quiz ul li {
      margin-bottom: 9px; }
    .masterclass-progress__quiz ul a {
      display: block;
      border: 1px solid rgba(151, 151, 151, 0.46);
      border-radius: 2px;
      font-weight: 200;
      font-size: 1.1875em;
      color: #1F1F1F;
      line-height: 1.73684;
      padding: 0.36842em 1.89474em 0.36842em 0.94737em;
      transition: 150ms ease;
      position: relative; }
      .masterclass-progress__quiz ul a:hover {
        border-color: #8F8F8F; }
      .masterclass-progress__quiz ul a:after,
      .masterclass-progress__quiz ul a .icon--check2 {
        position: absolute;
        right: 15px;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%); }
      .masterclass-progress__quiz ul a .icon--check2 {
        height: 14px;
        width: 20px;
        fill: #2ED3D4; }
    .masterclass-progress__quiz ul .correct a {
      border: 2px solid #2ED3D4; }
    .masterclass-progress__quiz ul .incorrect a {
      border: 2px solid #E82233; }
      .masterclass-progress__quiz ul .incorrect a:after {
        content: '✕';
        color: #E82233;
        font-size: 1.2em; }

.masterclass-progress__score .container--white {
  padding-right: 236px;
  padding-left: 236px; }
  @media (max-width: 1023px) {
    .masterclass-progress__score .container--white {
      padding: 2.75em; } }
  @media (max-width: 767px) {
    .masterclass-progress__score .container--white {
      padding: 1.375em; } }

.masterclass-progress__score h1 {
  font-size: 8.75em;
  font-weight: 500;
  margin-bottom: 0;
  line-height: 1; }
  .masterclass-progress__score h1 small {
    font-size: 0.10714em;
    color: #8F8F8F; }

.masterclass-progress__score p {
  font-size: 1.5em;
  font-weight: 200; }
  .masterclass-progress__score p strong {
    font-weight: 500; }

.masterclass-progress__score .button--medium {
  font-size: 1.25em;
  font-weight: 500; }

.masterclass-progress__score .well {
  background-color: #F2F5F5;
  padding: 2.8125em 7.625em;
  border-radius: 2px;
  margin-top: 60px; }
  @media (max-width: 767px) {
    .masterclass-progress__score .well {
      padding: 1.375em; } }
  .masterclass-progress__score .well .icon-container {
    margin-right: auto;
    margin-left: auto;
    height: 80px;
    width: 80px;
    padding: 16px;
    background-color: #fff;
    border-radius: 40px;
    margin-bottom: 13px; }
    .masterclass-progress__score .well .icon-container .icon {
      fill: #434343;
      height: 46px;
      width: 46px;
      max-width: none;
      max-height: none; }
  .masterclass-progress__score .well p {
    font-size: 1.1875em;
    margin-bottom: 1.05263em; }
  .masterclass-progress__score .well--badge {
    text-align: left;
    padding: 2.25em 2.625em 2.25em 10.0625em;
    position: relative; }
    @media (max-width: 767px) {
      .masterclass-progress__score .well--badge {
        padding: 1.375em; } }
    .masterclass-progress__score .well--badge .icon-container {
      position: absolute;
      left: 2.625em;
      top: 2.25em;
      height: 90px;
      width: 90px;
      border-radius: 45px;
      padding-right: 20px;
      padding-left: 20px; }
      .masterclass-progress__score .well--badge .icon-container .icon {
        height: 52px;
        width: 52px; }
    .masterclass-progress__score .well--badge p {
      font-size: 1.5em;
      margin-bottom: 30px;
      padding-bottom: 30px;
      border-bottom: 1px solid white; }
    .masterclass-progress__score .well--badge__link::after {
      clear: both;
      content: "";
      display: table; }
    .masterclass-progress__score .well--badge__link .linkedin-button {
      float: left; }
    .masterclass-progress__score .well--badge__link p {
      float: left;
      margin: 0;
      padding: 0;
      border: 0;
      font-size: 1em;
      margin: -5px 0 0 26px; }
    @media (max-width: 767px) {
      .masterclass-progress__score .well--badge__link .linkedin-button, .masterclass-progress__score .well--badge__link p {
        float: none; }
      .masterclass-progress__score .well--badge__link p {
        margin: 10px 0 0; } }

.responsive-video-wrapper {
  width: 90%;
  max-width: 800px;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%); }
  .responsive-video-wrapper .video__header {
    font-size: 1.5625em;
    margin-bottom: 0.2em; }
  .responsive-video-wrapper .video__subheader {
    font-size: 0.9375em;
    text-transform: uppercase;
    font-weight: 400;
    margin-bottom: 1em; }

/* add 3 line */
.webinar.content-box--event{
  cursor: pointer !important;
}
.webinar.content-box--event .description{
  -webkit-line-clamp: 3 !important;
}

/* TCLabs styles */

.tclabs-events .row.grid {
  width: auto;
}

.tclabs-events .content-box .content-box__text {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.tclabs-events .content-box .content-box__text-inner {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 5px;
  right: 5px;
  z-index: 2;
  padding: 3em 1em 1em;
  background-color: transparent;
}

.tclabs-events .content-box .overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.4);
}

.callout--tclabs h1 {
  font-size: 3em;
}

.callout--tclabs form {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  -ms-align-items: center;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  width: auto !important;
}

.callout--tclabs form.mktoForm .mktoOffset,
.callout--tclabs form.mktoForm .mktoFieldWrap .mktoGutter.mktoHasWidth {
  display: none;
}

.callout--tclabs form.mktoForm .mktoFieldWrap input {
  margin-bottom: 0;
  margin-right: .5rem;
  border: none;
  background-color: #fff;
  border: 1px solid rgba(151, 151, 151, 0.46);
  border-radius: 2px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-size: 1em;
  margin-bottom: 0.75em;
  padding: 0.75em;
  transition: border-color 150ms ease;
  width: 230px !important;
  height: auto;
}


.callout--tclabs form.mktoForm .mktoButtonRow {
  flex-basis: 100% !important;
  clear: both;
}

.callout--tclabs form.mktoForm .mktoFieldWrap label {
  display: none;  
}

.callout--tclabs form.mktoForm .mktoButtonWrap.mktoSimple {
  margin-left: 0 !important;
}

.callout--tclabs form.mktoForm .mktoButtonWrap.mktoSimple button.mktoButton {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #E82233;
  background-image: none;
  border: 0;
  border-radius: 2px;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "adelle-sans", Helvetica Neue, Helvetica, Roboto, Arial, sans-serif;
  font-size: 1em;
  -webkit-font-smoothing: antialiased;
  font-weight: 600;
  line-height: 1;
  padding: 0.75em 1.5em;
  text-decoration: none;
  transition: background-color 150ms ease;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  vertical-align: middle;
  white-space: nowrap;
  height: auto;
}


/* TC Labs */

.tclabs-hero {
  min-height: 450px;
}

.tclabs-hero .hero-cta:last-of-type {
  margin-top: 0;
  margin-bottom: 2rem;
}

.tclabs-hero .hero-cta img {
  margin: 2rem auto;
  width: 80px;
}

.tclabs-events .content-box .content-box__text .meta a {
  color: #fff;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsImNvbXBvbmVudHMvX3Jlc2V0LnNjc3MiLCJjb21wb25lbnRzL192YXJpYWJsZXMuc2NzcyIsImNvbXBvbmVudHMvX21peGlucy5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImJvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsImJvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsImJvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsImJvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsImJvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwiYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsImJvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImJvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsImJvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsImJvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsImJvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJiYXNlL19idXR0b25zLnNjc3MiLCJiYXNlL19mb3Jtcy5zY3NzIiwiYmFzZS9fbGlzdHMuc2NzcyIsImJhc2UvX3RhYmxlcy5zY3NzIiwiYmFzZS9fdHlwb2dyYXBoeS5zY3NzIiwiYmFzZS9fZm9udHMuc2NzcyIsImJhc2UvX2dyaWQtc2V0dGluZ3Muc2NzcyIsIm5lYXQvX25lYXQtaGVscGVycy5zY3NzIiwibmVhdC9mdW5jdGlvbnMvX3ByaXZhdGUuc2NzcyIsIm5lYXQvZnVuY3Rpb25zL19uZXctYnJlYWtwb2ludC5zY3NzIiwibmVhdC9zZXR0aW5ncy9fZ3JpZC5zY3NzIiwibmVhdC9zZXR0aW5ncy9fdmlzdWFsLWdyaWQuc2NzcyIsIm5lYXQvc2V0dGluZ3MvX2Rpc2FibGUtd2FybmluZ3Muc2NzcyIsIm5lYXQvX25lYXQuc2NzcyIsIm5lYXQvZ3JpZC9fcHJpdmF0ZS5zY3NzIiwibmVhdC9ncmlkL19ib3gtc2l6aW5nLnNjc3MiLCJuZWF0L2dyaWQvX29tZWdhLnNjc3MiLCJuZWF0L2dyaWQvX291dGVyLWNvbnRhaW5lci5zY3NzIiwibmVhdC9ncmlkL19zcGFuLWNvbHVtbnMuc2NzcyIsIm5lYXQvZ3JpZC9fcm93LnNjc3MiLCJuZWF0L2dyaWQvX3NoaWZ0LnNjc3MiLCJuZWF0L2dyaWQvX3BhZC5zY3NzIiwibmVhdC9ncmlkL19maWxsLXBhcmVudC5zY3NzIiwibmVhdC9ncmlkL19tZWRpYS5zY3NzIiwibmVhdC9ncmlkL190by1kZXByZWNhdGUuc2NzcyIsIm5lYXQvZ3JpZC9fdmlzdWFsLWdyaWQuc2NzcyIsIm5lYXQvZ3JpZC9fZGlzcGxheS1jb250ZXh0LnNjc3MiLCJuZWF0L2dyaWQvX2RpcmVjdGlvbi1jb250ZXh0LnNjc3MiLCJjb21wb25lbnRzL19iYXNlLnNjc3MiLCJjb21wb25lbnRzL19pbnB1dC1ncm91cHMuc2NzcyIsImNvbXBvbmVudHMvX3Jlc3BvbnNpdmUtZW1iZWQuc2NzcyIsImNvbXBvbmVudHMvX2tleWZyYW1lcy5zY3NzIiwiZ2xvYmFsL19uYXYuc2NzcyIsImdsb2JhbC9faGVyby5zY3NzIiwiZ2xvYmFsL19tb2RhbC5zY3NzIiwiZ2xvYmFsL19kcm9wZG93bnMuc2NzcyIsImdsb2JhbC9fY29sbGFwc2Uuc2NzcyIsImdsb2JhbC9fZm9vdGVyLnNjc3MiLCJnbG9iYWwvX2xvZ28uc2NzcyIsInNlY3Rpb25zL19tYWluLnNjc3MiLCJzaGFyZWQvX3N1YnNjcmliZS5zY3NzIiwic2hhcmVkL19zaWRlYmFyLnNjc3MiLCJzaGFyZWQvX2NvbnRlbnQtYm94ZXMuc2NzcyIsInNoYXJlZC9faGVhZGVycy5zY3NzIiwic2hhcmVkL19jdGFzLnNjc3MiLCJzaGFyZWQvX2ljb25zLnNjc3MiLCJzaGFyZWQvX3NpbXBsZS1nYWxsZXJ5LnNjc3MiLCJzaGFyZWQvX3Byb2dyZXNzLWJhci5zY3NzIiwicGFnZXMvX2hvbWVwYWdlLnNjc3MiLCJwYWdlcy9fY29udGVudC1kZXRhaWwtcGFnZS5zY3NzIiwicGFnZXMvX2NvbGxlY3Rpb25zLWRldGFpbC1wYWdlLnNjc3MiLCJwYWdlcy9fdG9waWNzLnNjc3MiLCJwYWdlcy9fc2VhcmNoLXJlc3VsdHMuc2NzcyIsInBhZ2VzL19yZXNvdXJjZXMuc2NzcyIsInBhZ2VzL19uZXdzLWFuZC1ldmVudHMuc2NzcyIsInBhZ2VzL19vbmJvYXJkaW5nLnNjc3MiLCJwYWdlcy9fbWFzdGVyY2xhc3Muc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBSRVNFVCAqL1xuQGltcG9ydCBcImNvbXBvbmVudHMvcmVzZXRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvbWl4aW5zXCI7XG5cbi8qIEJvdXJib24sIE5lYXQsIEJpdHRlcnMgKi9cbkBpbXBvcnQgXCJib3VyYm9uL2JvdXJib25cIjtcbkBpbXBvcnQgXCJiYXNlL2Jhc2VcIjtcbkBpbXBvcnQgXCJiYXNlL2dyaWQtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJuZWF0L25lYXRcIjtcblxuLyogQ29tcG9uZW50cyAqL1xuQGltcG9ydCBcImNvbXBvbmVudHMvYmFzZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvaW5wdXQtZ3JvdXBzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkXCI7XG5cbi8qIENvbXBvbmVudHMsIGdsb2JhbCBlbGVtZW50cyAqL1xuQGltcG9ydCBcImNvbXBvbmVudHMva2V5ZnJhbWVzXCI7XG5cbi8qIEdsb2JhbCAqL1xuQGltcG9ydCBcImdsb2JhbC9uYXZcIjtcbkBpbXBvcnQgXCJnbG9iYWwvaGVyb1wiO1xuQGltcG9ydCBcImdsb2JhbC9tb2RhbFwiO1xuQGltcG9ydCBcImdsb2JhbC9kcm9wZG93bnNcIjtcbkBpbXBvcnQgXCJnbG9iYWwvY29sbGFwc2VcIjtcbkBpbXBvcnQgXCJnbG9iYWwvZm9vdGVyXCI7XG5AaW1wb3J0IFwiZ2xvYmFsL2xvZ29cIjtcblxuLyogU2VjdGlvbnMgKi9cbkBpbXBvcnQgXCJzZWN0aW9ucy9tYWluXCI7XG5cbi8qIFNoYXJlZCAqL1xuQGltcG9ydCBcInNoYXJlZC9zdWJzY3JpYmVcIjtcbkBpbXBvcnQgXCJzaGFyZWQvc2lkZWJhclwiO1xuQGltcG9ydCBcInNoYXJlZC9jb250ZW50LWJveGVzXCI7XG5AaW1wb3J0IFwic2hhcmVkL2hlYWRlcnNcIjtcbkBpbXBvcnQgXCJzaGFyZWQvY3Rhc1wiO1xuQGltcG9ydCBcInNoYXJlZC9pY29uc1wiO1xuQGltcG9ydCBcInNoYXJlZC9zaW1wbGUtZ2FsbGVyeVwiO1xuQGltcG9ydCBcInNoYXJlZC9wcm9ncmVzcy1iYXJcIjtcblxuLyogUGFnZXMgKi9cbkBpbXBvcnQgXCJwYWdlcy9ob21lcGFnZVwiO1xuQGltcG9ydCBcInBhZ2VzL2NvbnRlbnQtZGV0YWlsLXBhZ2VcIjtcbkBpbXBvcnQgXCJwYWdlcy9jb2xsZWN0aW9ucy1kZXRhaWwtcGFnZVwiO1xuQGltcG9ydCBcInBhZ2VzL3RvcGljc1wiO1xuQGltcG9ydCBcInBhZ2VzL3NlYXJjaC1yZXN1bHRzXCI7XG5AaW1wb3J0IFwicGFnZXMvcmVzb3VyY2VzXCI7XG5AaW1wb3J0IFwicGFnZXMvbmV3cy1hbmQtZXZlbnRzXCI7XG5AaW1wb3J0IFwicGFnZXMvb25ib2FyZGluZ1wiO1xuQGltcG9ydCBcInBhZ2VzL21hc3RlcmNsYXNzXCI7XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBodHRwOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY3NzL3Jlc2V0L1xuKiB2Mi4wIHwgMjAxMTAxMjZcbiogTGljZW5zZTogbm9uZSAocHVibGljIGRvbWFpbilcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AbWl4aW4gbWV5ZXItcmVzZXQge1xuICBodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxMDAlO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG5cbiAgLy8gSFRNTDUgZGlzcGxheS1yb2xlIHJlc2V0IGZvciBvbGRlciBicm93c2Vyc1xuICBhcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIHNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIGJvZHkge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIG9sLCB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuICBibG9ja3F1b3RlLCBxIHtcbiAgICBxdW90ZXM6IG5vbmU7XG4gIH1cbiAgYmxvY2txdW90ZSB7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuICB9XG4gIHEge1xuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBjb250ZW50OiBub25lO1xuICAgIH1cbiAgfVxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxufVxuXG5AaW5jbHVkZSBtZXllci1yZXNldDsiLCIvKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qICAgQlJFQUtQT0lOVFMgJiBTSVpJTkdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4kbWVkaXVtOiAxMDIzcHg7XG4kc21hbGw6IDc2N3B4O1xuJGNvbnRhaW5lcjogMTAyNHB4O1xuJGNvbnRhaW5lci1sYXJnZTogMTQ0MHB4O1xuJGNvbnRhaW5lci1zbWFsbDogODAwcHg7XG4kY29udGFpbmVyLXhzbWFsbDogNjAwcHg7XG4kZ2xvYmFsLW5hdi1oZWlnaHQtbGFyZ2U6IDYwcHg7XG4kZ2xvYmFsLW5hdi1oZWlnaHQtbWVkaXVtOiA2MHB4O1xuJGdsb2JhbC1uYXYtaGVpZ2h0LXNtYWxsOiA2MHB4O1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qICAgICAgICAgIENPTE9SU1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiRyZWQ6ICNFODIyMzM7XG4kdGVhbDogIzJFRDNENDtcbiRsaWdodC10ZWFsOiAjN0M5QjlDO1xuJGRhcmstdGVhbDogIzRCNjc2NztcbiRzaWx2ZXI6ICNDQUNBQ0E7XG4kdHVuZG9yYTogIzQzNDM0MztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiAgICAgICAgICBGT05UU1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiRncmVlbjogIzVBN0E3QTtcbiRhbG1vc3QtYmxhY2s6ICMyMTIxMjE7XG4kbmVhci1ibGFjazogIzFGMUYxRjtcbiRkYXJrLW11dGVkOiAjQ0JDQkNCO1xuJGRhcmstbXV0ZWQyOiAjQjdCN0I3O1xuJGJ1dHRvbi1jb2xvcjogIzc4Nzg3ODtcbiRzZWFyY2gtcGxhY2Vob2xkZXI6ICM5QjlCOUI7XG4kc2VhcmNoLWNvbG9yOiAjNDM0MzQzO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qICAgICBCQUNLR1JPVU5EIENPTE9SU1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiRidXR0b24tYmctY29sb3I6ICNjZWNlY2U7XG4kY2FyZC1iYWNrZ3JvdW5kLWNvbG9yOiAjRjVGNUY1O1xuJHRlYWwtYmFja2dyb3VuZC1jb2xvcjogIzJFRDNENDtcbiRkYXJrLWJhY2tncm91bmQtY29sb3I6ICMyOTI4MjY7XG4iLCIvKiBUQUJMRVQgQU5EIE1PQklMRSBCUkVBS1BPSU5UUyAqL1xuQG1peGluIHZpZXdwb3J0KCRzaXplKSB7XG4gIEBpZiAkc2l6ZSA9PSBsYXJnZS1vbmx5IHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSBhbmQgKG1heC13aWR0aDogMTQ0MHB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblx0QGlmICRzaXplID09IG1lZGl1bSB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6JG1lZGl1bSkge1xuXHRcdFx0QGNvbnRlbnQ7XG5cdFx0fVxuXHR9XG5cdEBpZiAkc2l6ZSA9PSBzbWFsbCB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6JHNtYWxsKSB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdH1cbn1cblxuLyogS0VZRlJBTUVTIE1JWElOICovXG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7IEBjb250ZW50IH1cbiAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHsgQGNvbnRlbnQgfVxuICBALW8ta2V5ZnJhbWVzICN7JG5hbWV9IHsgQGNvbnRlbnQgfVxuICBAa2V5ZnJhbWVzICN7JG5hbWV9IHsgQGNvbnRlbnQgfVxufVxuIiwiLy8gQm91cmJvbiA0LjIuNlxuLy8gaHR0cDovL2JvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDExLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2Fzc2lnbi1pbnB1dHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1zaXplXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLXJlbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90aW50XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RyYW5zaXRpb24tcHJvcGVydHktbmFtZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9kaXJlY3Rpb25hbC12YWx1ZXNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItYW5nbGUtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWFyZy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZW5kZXItZ3JhZGllbnRzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9zdHItdG8tbnVtXCI7XG5cbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5nc1wiO1xuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ltYWdlLXJlbmRlcmluZ1wiO1xuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XG5AaW1wb3J0IFwiY3NzMy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3BlcnNwZWN0aXZlXCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9zZWxlY3Rpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNmb3JtXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2l0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xuXG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1jb2xvclwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1zdHlsZVwiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItd2lkdGhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcImFkZG9ucy9lbGxpcHNpc1wiO1xuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImFkZG9ucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJhZGRvbnMvbWFyZ2luXCI7XG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3NpemVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGV4dC1pbnB1dHNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xuQGltcG9ydCBcImFkZG9ucy90cmlhbmdsZVwiO1xuQGltcG9ydCBcImFkZG9ucy93b3JkLXdyYXBcIjtcblxuQGltcG9ydCBcImJvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZ1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2xvYmFsIHZhcmlhYmxlcyB0byBlbmFibGUgb3IgZGlzYWJsZSB2ZW5kb3IgcHJlZml4ZXNcblxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0O1xuIiwiJGVtLWJhc2U6IDE2cHggIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIGdsb2JhbCBzZXR0aW5nIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgJGFzc2V0LXBpcGVsaW5lYCB2YXJpYWJsZSBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGFjY2VwdCBpdC5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcbiIsIkBmdW5jdGlvbiBhc3NpZ24taW5wdXRzKCRpbnB1dHMsICRwc2V1ZG86IG51bGwpIHtcbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb2dyYW1hdGljYWxseSBkZXRlcm1pbmVzIHdoZXRoZXIgYSBjb2xvciBpcyBsaWdodCBvciBkYXJrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3JvYm90cy50aG91Z2h0Ym90LmNvbS9jbG9zZXItbG9vay1jb2xvci1saWdodG5lc3Ncbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBpcy1saWdodCgkY29sb3IpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gaXMtbGlnaHQoJGhleC1jb2xvcikge1xuICAkLWxvY2FsLXJlZDogcmVkKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ibHVlOiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWxpZ2h0bmVzczogKCQtbG9jYWwtcmVkICogMC4yMTI2ICsgJC1sb2NhbC1ncmVlbiAqIDAuNzE1MiArICQtbG9jYWwtYmx1ZSAqIDAuMDcyMikgLyAyNTU7XG5cbiAgQHJldHVybiAkLWxvY2FsLWxpZ2h0bmVzcyA+IDAuNjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG5cbkBmdW5jdGlvbiBpcy1udW1iZXIoJHZhbHVlKSB7XG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuXG5AZnVuY3Rpb24gaXMtc2l6ZSgkdmFsdWUpIHtcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIGNvbnRhaW5zKFwiZmlsbFwiIFwiZml0LWNvbnRlbnRcIiBcIm1pbi1jb250ZW50XCIgXCJtYXgtY29udGVudFwiLCAkdmFsdWUpO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIGVtKDEyKSB3aGVuIHRoZSBwYXJlbnQgaXMgMTZweFxuLy8gaWYgdGhlIHBhcmVudCBpcyBhbm90aGVyIHZhbHVlIHNheSAyNHB4IHdyaXRlIGVtKDEyLCAyNClcblxuQGZ1bmN0aW9uIGVtKCRweHZhbCwgJGJhc2U6ICRlbS1iYXNlKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuXG4gICRiYXNlOiAkZW0tYmFzZTtcbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkbmV3LXByb3BzOiAoKTtcblxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xuICAgICRuZXctcHJvcHM6IGFwcGVuZCgkbmV3LXByb3BzLCB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3IpLCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRuZXctcHJvcHM7XG59XG5cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUoJHByb3AsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCIvLyBTY2FsaW5nIFZhcmlhYmxlc1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xuJG1ham9yLXNlY29uZDogICAgIDEuMTI1O1xuJG1pbm9yLXRoaXJkOiAgICAgIDEuMjtcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xuJHBlcmZlY3QtZm91cnRoOiAgIDEuMzMzO1xuJGF1Z21lbnRlZC1mb3VydGg6IDEuNDE0O1xuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcbiRtaW5vci1zaXh0aDogICAgICAxLjY7XG4kbWFqb3Itc2l4dGg6ICAgICAgMS42Njc7XG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XG4kbWFqb3Itc2V2ZW50aDogICAgMS44NzU7XG4kb2N0YXZlOiAgICAgICAgICAgMjtcbiRtYWpvci10ZW50aDogICAgICAyLjU7XG4kbWFqb3ItZWxldmVudGg6ICAgMi42Njc7XG4kbWFqb3ItdHdlbGZ0aDogICAgMztcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xuXG4kbW9kdWxhci1zY2FsZS1yYXRpbzogJHBlcmZlY3QtZm91cnRoICFkZWZhdWx0O1xuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xuXG5AZnVuY3Rpb24gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWU6ICRtb2R1bGFyLXNjYWxlLWJhc2UsICRyYXRpbzogJG1vZHVsYXItc2NhbGUtcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHN0ci10by1udW0gZm4uXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX2NvbnZlcnQtdW5pdHMoJG51bWJlciwgJHVuaXQpIHtcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xuICAkdW5pdHM6ICAgMXB4LCAxY20sIDFtbSwgMSUsIDFjaCwgMXBpY2EsIDFpbiwgMWVtLCAxcmVtLCAxcHQsIDFwYywgMWV4LCAxdncsIDF2aCwgMXZtaW4sIDF2bWF4LCAxZGVnLCAxcmFkLCAxZ3JhZCwgMXR1cm47XG4gICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICR1bml0KTtcblxuICBAaWYgbm90ICRpbmRleCB7XG4gICAgQHdhcm4gXCJVbmtub3duIHVuaXQgYCN7JHVuaXR9YC5cIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XG4gICAgQHdhcm4gXCJgI3skbnVtYmVyfSBpcyBub3QgYSBudW1iZXJgXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEByZXR1cm4gJG51bWJlciAqIG50aCgkdW5pdHMsICRpbmRleCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcbi8vL1xuLy8vIEBpZ25vcmUgWW91IGNhbiBhbHNvIHVzZSBgZmFsc2VgIGluc3RlYWQgb2YgYG51bGxgLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBkaXJlY3Rpb25hbCB2YWx1ZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIDEwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9XG5cbkBmdW5jdGlvbiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpIHtcbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAcmV0dXJuICRncmFkaWVudC1wb3NpdGlvbnM7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KSB7XG4gICRvZmZzZXQ6IG51bGw7XG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHVuaXQtbG9uZzogICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcbiAgICAgICgkdW5pdC1sb25nID09IFwidHVyblwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtbG9uZyA9PSBcImdyYWRcIiwgLTEwMGdyYWQgKiAzLCAtMC43NXR1cm4pO1xuICB9XG5cbiAgQGVsc2UgaWYgKCR1bml0LXNob3J0ID09IFwiZGVnXCIpIG9yXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XG4gICAgJG9mZnNldDogaWYoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIiwgLTkwICogMywgMS42cmFkKTtcbiAgfVxuXG4gIEBpZiAkb2Zmc2V0IHtcbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAoJG9mZnNldCAtICRudW0pICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaGFzLW11bHRpcGxlLXZhbHM6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcIiBcIik7XG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XG4gICRoYXMtYW5nbGU6IGlzLW51bWJlcihzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgMSkpO1xuXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xuICAgICRncmFkaWVudHM6IF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtc2luZ2xlLXBvc2l0aW9uICE9IFwiXCIge1xuICAgICRwb3M6IHVucXVvdGUoJGhhcy1zaW5nbGUtcG9zaXRpb24gKyBcIlwiKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRoYXMtYW5nbGUge1xuICAgIC8vIFJvdGF0ZSBkZWdyZWUgZm9yIHdlYmtpdFxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuICBAcmV0dXJuICRkZWdyZWUgJHNwZWM7XG59XG5cbkBmdW5jdGlvbiBfcG9zaXRpb24tZmxpcHBlcigkcG9zKSB7XG4gIEByZXR1cm4gaWYoJHBvcyA9PSBsZWZ0LCByaWdodCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHRvcCwgYm90dG9tLCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSBib3R0b20sIHRvcCwgbnVsbCk7XG59XG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXG5AZnVuY3Rpb24gX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpIHtcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XG4gICR2YWwtMjogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRoYXMtbXVsdGlwbGUtdmFscyArIDEsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdmFsLTM6IG51bGw7XG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcblxuICBAaWYgJGhhcy12YWwtMyB7XG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcbiAgICAkdmFsLTI6IHN0ci1zbGljZSgkdmFsLTIsIDEsICRoYXMtdmFsLTMgLSAxKTtcbiAgfVxuXG4gICRwb3M6IF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMSkgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0yKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTMpO1xuICAkcG9zOiB1bnF1b3RlKCRwb3MgKyBcIlwiKTtcblxuICAvLyBVc2Ugb2xkIHNwZWMgZm9yIHdlYmtpdFxuICBAaWYgJHZhbC0xID09IFwidG9cIiB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSkge1xuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xuICAkcG9zOiAgICAgICAgbnRoKCRncmFkaWVudC1wb3MsIDIpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgJHByZS1zcGVjOiB1bnF1b3RlKGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpKVxuICAgICAgICAgICAgIHVucXVvdGUoaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sXCIsIG51bGwpKTtcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG5cbiAgJHNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyRwb3Mtc3BlY31cIjtcblxuICAvLyBBZGQgY29tbWFcbiAgQGlmICgkc3BlYyAhPSBcIiAgXCIpIHtcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcbiAgfVxuXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XG5cbiAgQGlmICRpcy1zcGVjLXN5bnRheCBhbmQgJGlzLXNwZWMtc3ludGF4ID4gMSB7XG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICAgJHBvczogYXBwZW5kKCRwb3MsICRrZXl3b3JkLCBjb21tYSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmICRpcy1zcGVjLXN5bnRheCA9PSAxIHtcbiAgICAkcG9zOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGlzLXNwZWMtc3ludGF4ICsgMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICRwb3MgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIGlmIHN0ci1pbmRleCgkaW1hZ2UsIFwiY292ZXJcIikgb3Igc3RyLWluZGV4KCRpbWFnZSwgXCJjb250YWluXCIpIHtcbiAgICBAd2FybiBcIlJhZGlhbC1ncmFkaWVudCBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIGNvbmZvcm0gdG8gbGF0ZXN0IHNwZWMuXCI7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IG51bGwsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiLy8gVXNlciBmb3IgbGluZWFyIGFuZCByYWRpYWwgZ3JhZGllbnRzIHdpdGhpbiBiYWNrZ3JvdW5kLWltYWdlIG9yIGJvcmRlci1pbWFnZSBwcm9wZXJ0aWVzXG5cbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcbiAgJHByZS1zcGVjOiBudWxsO1xuICAkc3BlYzogbnVsbDtcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XG4gIEBpZiAkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIge1xuICAgIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zIHtcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IHJhZGlhbCB7XG4gICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XG4gIH1cblxuICBAaWYgJHZlbmRvciB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IC0jeyR2ZW5kb3J9LSN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHByZS1zcGVjfSAkZ3JhZGllbnRzKTtcbiAgfVxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogXCIjeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRzcGVjfSAjeyRncmFkaWVudHN9KVwiO1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiB1bnF1b3RlKCR2ZW5kb3ItZ3JhZGllbnRzKTtcbiAgfVxuICBAcmV0dXJuICR2ZW5kb3ItZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XG4gICRzaGFwZS1zaXplLXNwZWM6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkc2hhcGUtc2l6ZSB7XG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XG4gICAgICAkdmFsdWU6IG51bGw7XG4gICAgfVxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcbiAgfVxuICBAcmV0dXJuICRzaGFwZS1zaXplLXNwZWM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIGxpbmVhci9yYWRpYWwtZ3JhZGllbnQtcGFyc2Vycy5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfc3RyLXRvLW51bSgkc3RyaW5nKSB7XG4gIC8vIE1hdHJpY2VzXG4gICRzdHJpbmdzOiBcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIjtcbiAgJG51bWJlcnM6ICAwICAgMSAgIDIgICAzICAgNCAgIDUgICA2ICAgNyAgIDggICA5O1xuXG4gIC8vIFJlc3VsdFxuICAkcmVzdWx0OiAwO1xuICAkZGl2aWRlcjogMDtcbiAgJG1pbnVzOiBmYWxzZTtcblxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLVwiIHtcbiAgICAgICRtaW51czogdHJ1ZTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICRkaXZpZGVyOiAxO1xuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xuICAgICAgICBAcmV0dXJuIF9jb252ZXJ0LXVuaXRzKCRyZXN1bHQsIHN0ci1zbGljZSgkc3RyaW5nLCAkaSkpO1xuICAgICAgfVxuXG4gICAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG5cbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIE1vdmUgdGhlIGRlY2ltYWwgZG90IHRvIHRoZSBsZWZ0XG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xuICAgICAgICAkbnVtYmVyOiAkbnVtYmVyIC8gJGRpdmlkZXI7XG4gICAgICB9XG5cbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAkbnVtYmVyO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbn1cbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxuLy8gRWFjaCBvZiB0aGVzZSBtaXhpbnMgc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgbGlzdHMgb2YgdmFsdWVzLCB3aGljaCBhbGxvd3MgZGlmZmVyZW50IHRyYW5zaXRpb25zIGZvciBpbmRpdmlkdWFsIHByb3BlcnRpZXMgdG8gYmUgZGVzY3JpYmVkIGluIGEgc2luZ2xlIHN0eWxlIHJ1bGUuIEVhY2ggdmFsdWUgaW4gdGhlIGxpc3QgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIGF0IHRoYXQgc2FtZSBwb3NpdGlvbiBpbiB0aGUgb3RoZXIgcHJvcGVydGllcy5cblxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24sICRhbmltYXRpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLW5hbWUoJG5hbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50KCR2YWx1ZXMuLi4pIHtcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24taXRlcmF0aW9uLWNvdW50LCAkdmFsdWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbigkZGlyZWN0aW9ucy4uLikge1xuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIC8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYXBwZWFyYW5jZSwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCJAbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZCBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmRzIHVzaW5nIHNob3J0aGFuZFxuLy8gbm90YXRpb24uXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gICR3ZWJraXQtaW1hZ2VzOiAoKTtcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcblxuICBAZWFjaCAkaW1hZ2UgaW4gJGltYWdlcyB7XG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XG4gICAgJHNwZWMtaW1hZ2U6ICgpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRpbWFnZSwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRpbWFnZSwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogJGltYWdlO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiAgbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAkd2Via2l0LWltYWdlczogYXBwZW5kKCR3ZWJraXQtaW1hZ2VzLCAkd2Via2l0LWltYWdlLCBjb21tYSk7XG4gICAgJHNwZWMtaW1hZ2VzOiAgIGFwcGVuZCgkc3BlYy1pbWFnZXMsICAgJHNwZWMtaW1hZ2UsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogJHdlYmtpdC1pbWFnZXM7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcbn1cbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGJvcmRlcnMuLi4pIHtcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcbiAgJHNwZWMtYm9yZGVyczogKCk7XG5cbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XG4gICAgJHdlYmtpdC1ib3JkZXI6ICgpO1xuICAgICRzcGVjLWJvcmRlcjogKCk7XG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xuXG4gICAgQGlmICRib3JkZXItdHlwZSA9PSBzdHJpbmcgb3IgbGlzdCB7XG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xuICAgICRzcGVjLWJvcmRlcnM6ICAgYXBwZW5kKCRzcGVjLWJvcmRlcnMsICAgJHNwZWMtYm9yZGVyLCAgIGNvbW1hKTtcbiAgfVxuXG4gIC13ZWJraXQtYm9yZGVyLWltYWdlOiAkd2Via2l0LWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLWltYWdlOiAkc3BlYy1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikgMjAgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpIDIwIDMwIDQwIDUwIHN0cmV0Y2ggcm91bmQpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XG4iLCJAbWl4aW4gY2FsYygkcHJvcGVydHksICR2YWx1ZSkge1xuICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcbn1cbiIsIkBtaXhpbiBjb2x1bW5zKCRhcmc6IGF1dG8pIHtcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICAvLyBub3JtYWwgfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1nYXAsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZmlsbCgkYXJnOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICAvLyA8Ym9yZGVyLXdpZHRoPiB8fCA8Ym9yZGVyLXN0eWxlPiB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLWNvbG9yLCAkY29sb3IsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGU6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXdpZHRoLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tc3BhbigkYXJnOiBub25lKSB7XG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiQG1peGluIGZvbnQtZmFjZShcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkd2VpZ2h0OiBub3JtYWwsXG4gICRzdHlsZTogbm9ybWFsLFxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0czogZW90IHdvZmYyIHdvZmYgdHRmIHN2Zykge1xuXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG5cbiAgICBzcmM6IGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAgICAgJGZvbnQtZmFtaWx5LFxuICAgICAgJGZpbGUtcGF0aCxcbiAgICAgICRhc3NldC1waXBlbGluZSxcbiAgICAgICRmaWxlLWZvcm1hdHMsXG4gICAgICAkZm9udC11cmwtcHJlZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQG1peGluIGZvbnQtZmVhdHVyZS1zZXR0aW5ncygkc2V0dGluZ3MuLi4pIHtcbiAgQGlmIGxlbmd0aCgkc2V0dGluZ3MpID09IDAgeyAkc2V0dGluZ3M6IG5vbmU7IH1cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCIvLyBIaURQSSBtaXhpbi4gRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICAvLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTphdXRvKSB7XG5cbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7IC8vIElFOCtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xuICB9XG59XG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcbkBtaXhpbiBrZXlmcmFtZXMoJG5hbWUpIHtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0OiAgICAkcHJlZml4LWZvci13ZWJraXQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0OiAkcHJlZml4LWZvci1taWNyb3NvZnQ7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhOiAgICAgJHByZWZpeC1mb3Itb3BlcmE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0IHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3Itd2Via2l0OiB0cnVlICFnbG9iYWw7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtbW96LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdCAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMgICAgICAhZ2xvYmFsO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcbiAgICBAa2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRnMTA6ICRnOTsgJGc5OiAkZzg7ICRnODogJGc3OyAkZzc6ICRnNjsgJGc2OiAkZzU7XG4gICAgJGc1OiAkZzQ7ICRnNDogJGczOyAkZzM6ICRnMjsgJGcyOiAkZzE7ICRnMTogJHBvcztcbiAgICAkcG9zOiBudWxsO1xuICB9XG5cbiAgQGlmICRwb3Mge1xuICAgICRwb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKTtcbiAgICAkcG9zLWRlZ3JlZTogbnRoKCRwb3NpdGlvbnMsIDEpO1xuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XG4gIH1cblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XG5cbiAgLy8gSWYgJGZhbGxiYWNrIGlzIGEgY29sb3IgdXNlIHRoYXQgY29sb3IgYXMgdGhlIGZhbGxiYWNrIGNvbG9yXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgkcG9zLWRlZ3JlZSAkZnVsbCk7IC8vIFNhZmFyaSA1LjErLCBDaHJvbWVcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gcGVyc3BlY3RpdmUoJGRlcHRoOiBub25lKSB7XG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZSwgJGRlcHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCR2YWx1ZTogNTAlIDUwJSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihwZXJzcGVjdGl2ZS1vcmlnaW4sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRnMTogIG50aCgkZGF0YSwgMSk7XG4gICRnMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSk7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmlyc3QtY29sb3I6IG50aCgkZnVsbCwgMSk7XG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRmaXJzdC1jb2xvciwgMSk7XG5cbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICAvLyBBZGQgQ29tbWFzIGFuZCBzcGFjZXNcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XG4gICRwb3M6ICAgICAgICBpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAgJGZhbGxiYWNrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCh1bnF1b3RlKCN7JHBvc30jeyRzaGFwZS1zaXplfSN7JGZ1bGx9KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJyYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaWYgJGN1cnJlbnQtc2VsZWN0b3Ige1xyXG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICAmOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIDo6LW1vei1zZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICA6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gdGV4dC1kZWNvcmF0aW9uKCR2YWx1ZSkge1xuLy8gPHRleHQtZGVjb3JhdGlvbi1saW5lPiB8fCA8dGV4dC1kZWNvcmF0aW9uLXN0eWxlPiB8fCA8dGV4dC1kZWNvcmF0aW9uLWNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIC8vIHgtYXhpcyAtIGxlZnQgfCBjZW50ZXIgfCByaWdodCAgfCBsZW5ndGggfCAlXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXG4gIC8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSgkc3R5bGU6IGZsYXQpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vIFNob3J0aGFuZCBtaXhpbi4gU3VwcG9ydHMgbXVsdGlwbGUgcGFyZW50aGVzZXMtZGVsaW1pbmF0ZWQgdmFsdWVzIGZvciBlYWNoIHZhcmlhYmxlLlxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24gKG9wYWNpdHkgMXMgZWFzZS1pbiAycywgd2lkdGggMnMgZWFzZS1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbi1wcm9wZXJ0eSAodHJhbnNmb3JtLCBvcGFjaXR5KTtcblxuQG1peGluIHRyYW5zaXRpb24oJHByb3BlcnRpZXMuLi4pIHtcbiAgLy8gRml4IGZvciB2ZW5kb3ItcHJlZml4IHRyYW5zZm9ybSBwcm9wZXJ0eVxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xuICAkd2Via2l0OiAoKTtcbiAgJG1vejogKCk7XG4gICRzcGVjOiAoKTtcblxuICAvLyBDcmVhdGUgbGlzdHMgZm9yIHZlbmRvci1wcmVmaXhlZCB0cmFuc2Zvcm1cbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiBudGgoJGxpc3QsIDEpID09IFwidHJhbnNmb3JtXCIge1xuICAgICAgJG5lZWRzLXByZWZpeGVzOiB0cnVlO1xuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MjogLW1vei10cmFuc2Zvcm07XG4gICAgICAkbGlzdDM6ICgpO1xuXG4gICAgICBAZWFjaCAkdmFyIGluICRsaXN0IHtcbiAgICAgICAgJGxpc3QzOiBqb2luKCRsaXN0MywgJHZhcik7XG5cbiAgICAgICAgQGlmICR2YXIgIT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAgICAgJGxpc3QxOiBqb2luKCRsaXN0MSwgJHZhcik7XG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0MSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QyKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHdlYmtpdDogYXBwZW5kKCR3ZWJraXQsICRsaXN0LCBjb21tYSk7XG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdCwgY29tbWEpO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkbmVlZHMtcHJlZml4ZXMge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246ICRtb3o7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkc3BlYztcbiAgfSBAZWxzZSB7XG4gICAgQGlmIGxlbmd0aCgkcHJvcGVydGllcykgPj0gMSB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRwcm9wZXJ0aWVzOiBhbGwgMC4xNXMgZWFzZS1vdXQgMHM7XG4gICAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24tcHJvcGVydHkoJHByb3BlcnRpZXMuLi4pIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gdXNlci1zZWxlY3QoJHZhbHVlOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIGNvbG9yLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItcmFkaXVzYCBvbiBib3RoIGNvcm5lcnMgb24gdGhlIHNpZGUgb2YgYSBib3guXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHJhZGlpXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoM3B4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1zdHlsZWAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1zdHlsZWBcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci13aWR0aCgxZW0gbnVsbCAyMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxuXG5AbWl4aW4gYm9yZGVyLXdpZHRoKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcbiRhbGwtYnV0dG9ucy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtYnV0dG9ucy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgZm9jdXMpO1xuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XG5cbiRhbGwtYnV0dG9uLWlucHV0czogICAgICAgICRhbGwtYnV0dG9ucztcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtZm9jdXM6ICAkYWxsLWJ1dHRvbnMtZm9jdXM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtaG92ZXI6ICAkYWxsLWJ1dHRvbnMtaG92ZXI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBpbmNsdWRlIGEgY2xlYXJmaXggZm9yIGNvbnRhaW5pbmcgZmxvYXRzLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL2Nzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCBbMTAwJV1cbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8vICAgICBtYXgtd2lkdGg6IDEwMCU7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbi8vLyAgIH1cblxuQG1peGluIGVsbGlwc2lzKCR3aWR0aDogMTAwJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRnZW9yZ2lhOiBcIkdlb3JnaWFcIiwgXCJDYW1icmlhXCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFwiVGltZXNcIiwgc2VyaWY7XG5cbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGhlbHZldGljYTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIlJvYm90b1wiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJUYWhvbWFcIiwgXCJWZXJkYW5hXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbW9ub3NwYWNlOiBcIkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ub1wiLCBcIkNvbnNvbGFzXCIsIFwiQ291cmllclwiLCBtb25vc3BhY2U7XG5cbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR2ZXJkYW5hOiBcIlZlcmRhbmFcIiwgXCJHZW5ldmFcIiwgc2Fucy1zZXJpZjtcbiIsIi8vLyBIaWRlcyB0aGUgdGV4dCBpbiBhbiBlbGVtZW50LCBjb21tb25seSB1c2VkIHRvIHNob3cgYW4gaW1hZ2UuIFNvbWUgZWxlbWVudHMgd2lsbCBuZWVkIGJsb2NrLWxldmVsIHN0eWxlcyBhcHBsaWVkLlxuLy8vXG4vLy8gQGxpbmsgaHR0cDovL3plbGRtYW4uY29tLzIwMTIvMDMvMDEvcmVwbGFjaW5nLXRoZS05OTk5cHgtaGFjay1uZXctaW1hZ2UtcmVwbGFjZW1lbnRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcblxuQG1peGluIGhpZGUtdGV4dCgkaGVpZ2h0OiBudWxsKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAxMDElO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpZiAkaGVpZ2h0IHtcbiAgICBAd2FybiBcIlRoZSBgaGlkZS10ZXh0YCBtaXhpbiBoYXMgY2hhbmdlZCBhbmQgbm8gbG9uZ2VyIHJlcXVpcmVzIGEgaGVpZ2h0LiBUaGUgaGVpZ2h0IGFyZ3VtZW50IHdpbGwgbm8gbG9uZ2VyIGJlIGFjY2VwdGVkIGluIHY1LjAuMFwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBtYXJnaW5gIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDEwcHggM2VtIDIwdmgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAyMHZoO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBtYXJnaW5gXG5cbkBtaXhpbiBtYXJnaW4oJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkobWFyZ2luLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3Igc2V0dGluZyBhbiBlbGVtZW504oCZcyBwb3NpdGlvbi4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtQb3NpdGlvbn0gJHBvc2l0aW9uIFtyZWxhdGl2ZV1cbi8vLyAgIEEgQ1NTIHBvc2l0aW9uIHZhbHVlXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICRjb29yZGluYXRlcyBbbnVsbCBudWxsIG51bGwgbnVsbF1cbi8vLyAgIExpc3Qgb2YgdmFsdWVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGUgNC12YWx1ZSBzeW50YXggZm9yIHRoZSBlZGdlcyBvZiBhIGJveFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbGVmdDogMTBlbTtcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xuLy8vICAgICB0b3A6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gdW5wYWNrXG5cbkBtaXhpbiBwb3NpdGlvbigkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IG51bGwgbnVsbCBudWxsIG51bGwpIHtcbiAgQGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSBsaXN0IHtcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcbiAgICAkcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgICB1cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhpZHBpIHtcbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJhY2tncm91bmQtc2l6ZTogJGJhY2tncm91bmQtc2l6ZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30sXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXG4vLy8gICB0ZXh0YXJlYTphY3RpdmUge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRlXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImVtYWlsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm1vbnRoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwid2Vla1wiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0Om5vdChbdHlwZV0pJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJGJhc2UtY29sb3I7XG4gICAgJHRleHQtc2l6ZTogJHN0eWxlO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuICAgICRzdHlsZTogc2ltcGxlO1xuXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgQHdhcm4gXCJUaGUgYnV0dG9uIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXG5AbWl4aW4gYnV0dG9uc3R5bGUoJHR5cGUsICRiLWNvbG9yLCAkdC1zaXplLCAkcGFkKSB7XG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBzaGlueSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHBpbGwgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgLy8gQ29sb3JlZCBidXR0b25cbiAgQGlmICR0eXBlID09IHNpbXBsZSB7XG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XG4gICAgQGluY2x1ZGUgc2hpbnkoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHBpbGwge1xuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IGZsYXQge1xuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxufVxuXG4vLyBTaW1wbGUgQnV0dG9uXG5AbWl4aW4gc2ltcGxlKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOCUsICRsaWdodG5lc3M6IC0xNCUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBTaGlueSBCdXR0b25cbkBtaXhpbiBzaGlueSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMjYsICRncmVlbjogLTEyNywgJGJsdWU6IC0xMjIpO1xuICAkZm91cnRoLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNzksICAkZ3JlZW46IC03MCwgICRibHVlOiAtNDYpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xuICAkc2Vjb25kLXN0b3A6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNTYsICAkZ3JlZW46IC01MCwgICRibHVlOiAtMzMpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTQwLCAkZ3JlZW46IC0xNDEsICRibHVlOiAtMTE0KTtcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRmb3VydGgtc3RvcDogICBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gICAgJHRoaXJkLXN0b3A6ICAgIGdyYXlzY2FsZSgkdGhpcmQtc3RvcCk7XG4gIH1cblxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xuICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtNjYsICRncmVlbjogLTYyLCAkYmx1ZTogLTUxKTtcbiAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTkzLCAkZ3JlZW46IC04NSwgJGJsdWU6IC02Nik7XG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XG4gICAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkc2Vjb25kLXN0b3AtaG92ZXIpO1xuICAgICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJHRoaXJkLXN0b3AtaG92ZXIpO1xuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNlY29uZC1zdG9wLWhvdmVyIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcmQtc3RvcC1ob3ZlciAgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gUGlsbCBCdXR0b25cbkBtaXhpbiBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtMTElLCAkbGlnaHRuZXNzOiAtMjYlKTtcbiAgJGJvcmRlci1zaWRlczogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMjElLCAkbGlnaHRuZXNzOiAtMjElKTtcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMSUsICAkbGlnaHRuZXNzOiAgNyUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxNCUsICRsaWdodG5lc3M6IC0xMCUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgJGJvcmRlci10b3A6ICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XG4gIH1cblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1ob3ZlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDYsICAkc2F0dXJhdGlvbjogLTIuNSUsICRsaWdodG5lc3M6IC0zMCUpO1xuICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAxMSwgJHNhdHVyYXRpb246ICA2JSwgICAkbGlnaHRuZXNzOiAtMzElKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNSwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTIxLjUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBncmF5c2NhbGUoJGFjdGl2ZS1jb2xvcik7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZDogJGFjdGl2ZS1jb2xvcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b20tYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA2cHggM3B4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gRmxhdCBCdXR0b25cbkBtaXhpbiBmbGF0KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vLyBGbGV4aWJsZSBncmlkXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWdyaWQgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBGbGV4aWJsZSBndXR0ZXJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcblxuICBAd2FybiBcIlRoZSBmbGV4LWd1dHRlciBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xuXG4gIEB3YXJuIFwiVGhlIGdyaWQtd2lkdGggZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ29sZGVuLXJhdGlvKCR2YWx1ZSwgJGluY3JlbWVudCkge1xuICBAcmV0dXJuIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlLCAkcmF0aW86ICRnb2xkZW4pO1xuXG4gIEB3YXJuIFwiVGhlIGdvbGRlbi1yYXRpbyBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBQbGVhc2UgdXNlIHRoZSBtb2R1bGFyLXNjYWxlIGZ1bmN0aW9uLCBpbnN0ZWFkLlwiO1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkYm94KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgQHdhcm4gXCJUaGUgYm94LXNpemluZyBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlLiBUaGlzIHByb3BlcnR5IGNhbiBub3cgYmUgdXNlZCB1bi1wcmVmaXhlZC5cIjtcbn1cbiIsIi8vIEJpdHRlcnMgMS4xLjBcbi8vIGh0dHA6Ly9iaXR0ZXJzLmJvdXJib24uaW9cbi8vIENvcHlyaWdodCAyMDEzLTIwMTUgdGhvdWdodGJvdCwgaW5jLlxuLy8gTUlUIExpY2Vuc2VcblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG4vLyBOZWF0IFNldHRpbmdzIC0tIHVuY29tbWVudCBpZiB1c2luZyBOZWF0IC0tIG11c3QgYmUgaW1wb3J0ZWQgYmVmb3JlIE5lYXRcbi8vIEBpbXBvcnQgXCJncmlkLXNldHRpbmdzXCI7XG5cbkBpbXBvcnQgXCJidXR0b25zXCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcbkBpbXBvcnQgXCJsaXN0c1wiO1xuQGltcG9ydCBcInRhYmxlc1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHlcIjtcbkBpbXBvcnQgXCJmb250c1wiO1xuIiwiLy8gVHlwb2dyYXBoeVxuJGJhc2UtZm9udC1mYW1pbHk6IFwiYWRlbGxlLXNhbnNcIiwgI3skaGVsdmV0aWNhfTtcbiRoZWFkaW5nLWZvbnQtZmFtaWx5OiAnSHVybWVHZW9tZXRyaWNTYW5zMycsICN7JGhlbHZldGljYX07XG5cbi8vIEZvbnQgU2l6ZXNcbiRiYXNlLWZvbnQtc2l6ZTogMWVtO1xuXG4vLyBMaW5lIGhlaWdodFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNTtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjI7XG5cbi8vIE90aGVyIFNpemVzXG4kYmFzZS1ib3JkZXItcmFkaXVzOiAycHg7XG4kYmFzZS1zcGFjaW5nOiAkYmFzZS1saW5lLWhlaWdodCAqIDFlbTtcbiRzbWFsbC1zcGFjaW5nOiAkYmFzZS1zcGFjaW5nIC8gMjtcbiRiYXNlLXotaW5kZXg6IDA7XG5cbi8vIENvbG9yc1xuJGJsdWU6ICM0NzdkY2E7XG4kZ3JheTogIzhGOEY4RjtcbiRkYXJrLWdyYXk6ICMzMzM7XG4kbWVkaXVtLWdyYXk6ICM5OTk7XG4kbGlnaHQtZ3JheTogI2RkZDtcbiRpY29uLWdyYXk6ICM2QzZFNzA7XG4kc2VwYXJhdG9yLWdyYXk6ICNGMkY1RjU7XG4kZ3JlZW46ICM1QTdBN0E7XG4kZGFyay1ncmVlbjogIzdDOUI5QztcblxuLy8gRm9udCBDb2xvcnNcbiRiYXNlLWZvbnQtY29sb3I6ICRkYXJrLWdyYXk7XG4kYWN0aW9uLWNvbG9yOiAkYmx1ZTtcbiRidXR0b24tY29sb3I6ICM3ODc4Nzg7XG5cbi8vIEJvcmRlclxuJGJhc2UtYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgjOTc5Nzk3LCAwLjU0KTtcbiRiYXNlLWJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcblxuLy8gQmFja2dyb3VuZCBDb2xvcnNcbiRiYXNlLWJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4kc2Vjb25kYXJ5LWJhY2tncm91bmQtY29sb3I6IHRpbnQoJGJhc2UtYm9yZGVyLWNvbG9yLCA3NSUpO1xuXG4vLyBGb3Jtc1xuJGZvcm0tYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoIzAwMCwgMC4wNik7XG4kZm9ybS1ib3gtc2hhZG93LWZvY3VzOiAkZm9ybS1ib3gtc2hhZG93LCAwIDAgNXB4IGFkanVzdC1jb2xvcigkYWN0aW9uLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUsICRhbHBoYTogLTAuMyk7XG5cbi8vIEFuaW1hdGlvbnNcbiRiYXNlLWR1cmF0aW9uOiAxNTBtcztcbiRiYXNlLXRpbWluZzogZWFzZTtcbiIsIiN7JGFsbC1idXR0b25zfSwgLmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6ICRzbWFsbC1zcGFjaW5nICRiYXNlLXNwYWNpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYmFzZS1kdXJhdGlvbiAkYmFzZS10aW1pbmc7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICY6aG92ZXIge1xuICAvLyAmOmZvY3VzIHtcbiAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYWN0aW9uLWNvbG9yLCAyMCUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5pbnB1dC1ncm91cC1idG4gYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogJHR1bmRvcmE7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDE2cHg7XG4gICY6aG92ZXIge1xuICAvLyAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gIH1cbn1cblxuLmJ1dHRvbiB7XG5cbiAgJi0taGVybyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZ3JlZW4sIDEwJSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiBlbSgxN3B4KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogKDI0cHgvMTdweCk7XG4gICAgcGFkZGluZzogZW0oNnB4KSBlbSgxNnB4KTtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBmb250LXNpemU6IGVtKDExcHgpO1xuICAgIH1cbiAgfVxuXG4gICYtLWFjY2VudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICYtLWxhcmdlIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG4gICAgbGluZS1oZWlnaHQ6ICgyOHB4LzIwcHgpO1xuICAgIGJveC1zaGFkb3c6IDBweCAxcHggMnB4IDBweCByZ2JhKDAsMCwwLDAuNDcpO1xuICAgIHBhZGRpbmc6IGVtKDE0cHgsIDIwcHgpIGVtKDQwcHgsIDIwcHgpO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBwYWRkaW5nOiBlbSgxNHB4LCAyMHB4KSBlbSg0MHB4LCAyMHB4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgICAgIHBhZGRpbmc6IGVtKDE0cHgsIDE2cHgpIGVtKDMxcHgsIDE2cHgpO1xuICAgIH1cbiAgfVxuXG4gICYtLW1lZGl1bSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IGVtKDE2cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAoMjNweC8xNnB4KTtcbiAgICBwYWRkaW5nOiBlbSgxNnB4KSBlbSg0OHB4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgICBwYWRkaW5nOiBlbSgxNHB4LCAxNnB4KSBlbSgyNnB4LCAxNnB4KTtcbiAgICB9XG4gIH1cblxuICAmLS1zbWFsbCB7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiBlbSgxM3B4KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogKDE4cHgvMTNweCk7XG4gICAgcGFkZGluZzogZW0oOHB4LCAxM3B4KSAxZW07XG4gIH1cblxuICAmLS1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgLy8gY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAmLS1saW5rIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgbGluZS1oZWlnaHQ6ICgyNHB4LzIwcHgpO1xuICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgJi0tcHJvdGlwIHtcbiAgICBjb2xvcjogIzYzZGVkZjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmc6IGVtKDVweCwgMTNweCkgMC41ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzYzZGVkZjtcbiAgICBmb250LXNpemU6IGVtKDEzcHgsIDE4cHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjE5cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAmOmhvdmVye1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzYzZGVkZjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gICYtLWVtYWlsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjAyRTVGO1xuICB9XG5cbiAgJi0tZmFjZWJvb2sge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzQjU5OTg7XG4gIH1cblxuICAmLS10d2l0dGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTVBQ0VFO1xuICB9XG5cbiAgJi0tbGlua2VkaW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwOTc2QjQ7XG4gIH1cblxuICAmLS1pbnZlcnRlZCB7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgJHJlZDtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgfVxuICAgICYuYnV0dG9uLS1tZWRpdW0ge1xuICAgICAgcGFkZGluZzogZW0oMTRweCkgZW0oNDZweCk7XG4gICAgfVxuICB9XG5cbiAgLmljb24tLWRvd25sb2FkIHtcbiAgICBAaW5jbHVkZSBzaXplKDEycHggMTVweCk7XG4gICAgZmlsbDogI2ZmZjtcbiAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCA1cHggLTJweCBudWxsKTtcbiAgfVxuICAmOmhvdmVyIC5pY29uLS1kb3dubG9hZCB7XG4gICAgZmlsbDogI2ZmZjtcbiAgfVxuXG59XG4iLCJmaWVsZHNldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktYmFja2dyb3VuZC1jb2xvcjtcbiAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gIG1hcmdpbjogMCAwICRzbWFsbC1zcGFjaW5nO1xuICBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nO1xufVxuXG5pbnB1dCxcbmxhYmVsLFxuc2VsZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG59XG5cbmxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmcgLyAyO1xuXG4gICYucmVxdWlyZWQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIipcIjtcbiAgfVxuXG4gIGFiYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuc2VsZWN0IHtcbiAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgZm9udC1zaXplOiBlbSgxOXB4KTtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIEBpbmNsdWRlIHBhZGRpbmcoZW0oOHB4LCAxOXB4KSBlbSgxNnB4LCAxOXB4KSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHRyYW5zaXRpb246ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgaGVpZ2h0OiA1MHB4O1xuICAmOjotbXMtZXhwYW5kIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRsaWdodC1ncmF5LCAxMCUpO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICB9XG59XG5cbiN7JGFsbC10ZXh0LWlucHV0c30sXG5zZWxlY3RbbXVsdGlwbGU9bXVsdGlwbGVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gIGJveC1zaGFkb3c6ICRmb3JtLWJveC1zaGFkb3c7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICAvLyBwYWRkaW5nOiAkYmFzZS1zcGFjaW5nIC8gMy4yO1xuICBwYWRkaW5nOiBlbSgxMnB4KTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiBzaGFkZSgkYmFzZS1ib3JkZXItY29sb3IsIDIwJSk7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRhY3Rpb24tY29sb3I7XG4gICAgYm94LXNoYWRvdzogJGZvcm0tYm94LXNoYWRvdy1mb2N1cztcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoJGJhc2UtYmFja2dyb3VuZC1jb2xvciwgNSUpO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogJGJhc2UtYm9yZGVyO1xuICAgIH1cbiAgfVxufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbi1yaWdodDogJHNtYWxsLXNwYWNpbmcgLyAyO1xuXG4gICsgbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICB3aWR0aDogMTAwJTtcbn1cblxuc2VsZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bztcbn1cbiIsInVsLFxub2wge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICAmJWRlZmF1bHQtdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRiYXNlLXNwYWNpbmc7XG4gIH1cblxuICAmJWRlZmF1bHQtb2wge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZztcbiAgICBwYWRkaW5nLWxlZnQ6ICRiYXNlLXNwYWNpbmc7XG4gIH1cbn1cblxuZGwge1xuICBtYXJnaW4tYm90dG9tOiAkc21hbGwtc3BhY2luZztcblxuICBkdCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luLXRvcDogJHNtYWxsLXNwYWNpbmc7XG4gIH1cblxuICBkZCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG4iLCJ0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJrZXJuXCIsIFwibGlnYVwiLCBcInRudW1cIjtcbiAgbWFyZ2luOiAkc21hbGwtc3BhY2luZyAwO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbn1cblxudGgge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgc2hhZGUoJGJhc2UtYm9yZGVyLWNvbG9yLCAyNSUpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAkc21hbGwtc3BhY2luZyAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG50ZCB7XG4gIGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcbiAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcgMDtcbn1cblxudHIsXG50ZCxcbnRoIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsImJvZHkge1xuICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwia2VyblwiLCBcImxpZ2FcIiwgXCJwbnVtXCI7XG4gIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGJhc2UtbGluZS1oZWlnaHQ7XG59XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkaGVhZGluZy1saW5lLWhlaWdodDtcbiAgbWFyZ2luOiAwIDAgJHNtYWxsLXNwYWNpbmc7XG59XG5cbnAge1xuICBtYXJnaW46IDAgMCAkc21hbGwtc3BhY2luZztcbn1cblxuYSB7XG4gIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcblxuICAuaWNvbiB7XG4gICAgdHJhbnNpdGlvbjogZmlsbCAkYmFzZS1kdXJhdGlvbiAkYmFzZS10aW1pbmcsIGNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHRlYWw7XG4gICAgLmljb24ge1xuICAgICAgZmlsbDogJHJlZDtcbiAgICAgICYuaWNvbi0taGVhcnQge1xuICAgICAgICBhbmltYXRpb246IGhlYXJ0YmVhdCAxMzAwbXMgZWFzZSAwcyBpbmZpbml0ZSBub3JtYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYueW91LWxpa2UtdGhpcyB7XG4gICAgLmljb24ge1xuICAgICAgZmlsbDogJHJlZDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAuaWNvbiB7XG4gICAgICAgICYuaWNvbi0taGVhcnQge1xuICAgICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5ociB7XG4gIGJvcmRlci1ib3R0b206ICRiYXNlLWJvcmRlcjtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLXRvcDogMDtcbiAgbWFyZ2luOiAkYmFzZS1zcGFjaW5nIDA7XG59XG5cbmltZyxcbnBpY3R1cmUge1xuICBtYXJnaW46IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbiIsIkBpbmNsdWRlIGZvbnQtZmFjZSgnSHVybWVHZW9tZXRyaWNTYW5zMycsICcuLi9mb250cy8zMDFCNDdfOV8wJyk7XG5AaW5jbHVkZSBmb250LWZhY2UoJ0h1cm1lR2VvbWV0cmljU2FuczMnLCAnLi4vZm9udHMvMzAxQjQ3XzdfMCcsIDIwMCk7XG5AaW5jbHVkZSBmb250LWZhY2UoJ0h1cm1lR2VvbWV0cmljU2FuczMnLCAnLi4vZm9udHMvMzAxQjQ3XzhfMCcsIDIwMCwgaXRhbGljKTtcbkBpbmNsdWRlIGZvbnQtZmFjZSgnSHVybWVHZW9tZXRyaWNTYW5zMycsICcuLi9mb250cy8zMDFCNDdfQV8wJywgNTAwKTtcbkBpbmNsdWRlIGZvbnQtZmFjZSgnSHVybWVHZW9tZXRyaWNTYW5zMycsICcuLi9mb250cy8zMDFCNDdfNl8wJywgNjAwKTtcbiIsIkBpbXBvcnQgXCIuLi9uZWF0L25lYXQtaGVscGVyc1wiOyAvLyBvciBcIi4uL25lYXQvbmVhdC1oZWxwZXJzXCIgd2hlbiBub3QgaW4gUmFpbHNcblxuLy8gTmVhdCBPdmVycmlkZXNcbiRjb2x1bW46IDExMHB4O1xuJGd1dHRlcjogMHB4O1xuJGdyaWQtY29sdW1uczogMTI7XG4vLyAkbWF4LXdpZHRoOiAxNDQwcHg7XG5cbi8vIE5lYXQgQnJlYWtwb2ludHNcbiRtZWRpdW0tc2NyZWVuOiA2MDBweDtcbiRsYXJnZS1zY3JlZW46IDkwMHB4O1xuXG4kbWVkaXVtLXNjcmVlbi11cDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRtZWRpdW0tc2NyZWVuIDQpO1xuJGxhcmdlLXNjcmVlbi11cDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICRsYXJnZS1zY3JlZW4gOCk7XG4iLCIvLyBGdW5jdGlvbnNcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9uZXctYnJlYWtwb2ludFwiO1xuXG4vLyBTZXR0aW5nc1xuQGltcG9ydCBcInNldHRpbmdzL2dyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Rpc2FibGUtd2FybmluZ3NcIjtcbiIsIi8vIE5vdCBmdW5jdGlvbiBmb3IgTGlic2FzcyBjb21wYXRpYmlsaXR5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy9saWJzYXNzL2lzc3Vlcy8zNjhcbkBmdW5jdGlvbiBpcy1ub3QoJHZhbHVlKSB7XG4gIEByZXR1cm4gaWYoJHZhbHVlLCBmYWxzZSwgdHJ1ZSk7XG59XG5cbi8vIENoZWNrcyBpZiBhIG51bWJlciBpcyBldmVuXG5AZnVuY3Rpb24gaXMtZXZlbigkaW50KSB7XG4gIEByZXR1cm4gJGludCAlIDIgPT0gMDtcbn1cblxuLy8gQ2hlY2tzIGlmIGFuIGVsZW1lbnQgYmVsb25ncyB0byBhIGxpc3Qgb3Igbm90XG5AZnVuY3Rpb24gYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KG5vdC1iZWxvbmdzLXRvKCR0ZXN0ZWQtaXRlbSwgJGxpc3QpKTtcbn1cblxuQGZ1bmN0aW9uIG5vdC1iZWxvbmdzLXRvKCR0ZXN0ZWQtaXRlbSwgJGxpc3QpIHtcbiAgQHJldHVybiBpcy1ub3QoaW5kZXgoJGxpc3QsICR0ZXN0ZWQtaXRlbSkpO1xufVxuXG4vLyBDb250YWlucyBkaXNwbGF5IHZhbHVlXG5AZnVuY3Rpb24gY29udGFpbnMtZGlzcGxheS12YWx1ZSgkcXVlcnkpIHtcbiAgQHJldHVybiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpXG4gICAgICAgb3IgYmVsb25ncy10byhibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLWJsb2NrLCAkcXVlcnkpXG4gICAgICAgb3IgYmVsb25ncy10byhpbmxpbmUsICRxdWVyeSk7XG59XG5cbi8vIFBhcnNlcyB0aGUgZmlyc3QgYXJndW1lbnQgb2Ygc3Bhbi1jb2x1bW5zKClcbkBmdW5jdGlvbiBjb250YWluZXItc3Bhbigkc3BhbjogJHNwYW4pIHtcbiAgQGlmIGxlbmd0aCgkc3BhbikgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNwYW4sIDMpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc3BhbikgPT0gMiB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNwYW4sIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkZ3JpZC1jb2x1bW5zO1xufVxuXG5AZnVuY3Rpb24gY29udGFpbmVyLXNoaWZ0KCRzaGlmdDogJHNoaWZ0KSB7XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdCAhZ2xvYmFsO1xuXG4gIEBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAzIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDMpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hpZnQpID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzaGlmdCwgMik7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuLy8gR2VuZXJhdGVzIGEgc3RyaXBlZCBiYWNrZ3JvdW5kXG5AZnVuY3Rpb24gZ3JhZGllbnQtc3RvcHMoJGdyaWQtY29sdW1ucywgJGNvbG9yOiAkdmlzdWFsLWdyaWQtY29sb3IpIHtcbiAgJHRyYW5zcGFyZW50OiB0cmFuc3BhcmVudDtcblxuICAkY29sdW1uLXdpZHRoOiBmbGV4LWdyaWQoMSwgJGdyaWQtY29sdW1ucyk7XG4gICRndXR0ZXItd2lkdGg6IGZsZXgtZ3V0dGVyKCRncmlkLWNvbHVtbnMpO1xuICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi13aWR0aDtcblxuICAkdmFsdWVzOiAoJHRyYW5zcGFyZW50IDAsICRjb2xvciAwKTtcblxuICBAZm9yICRpIGZyb20gMSB0byAkZ3JpZC1jb2x1bW5zKjIge1xuICAgIEBpZiBpcy1ldmVuKCRpKSB7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJGNvbG9yICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi1vZmZzZXQgKyAkY29sdW1uLXdpZHRoO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGd1dHRlci13aWR0aDtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZXM7XG59XG5cbi8vIExheW91dCBkaXJlY3Rpb25cbkBmdW5jdGlvbiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQsICRkZWZhdWx0KSB7XG4gICRkaXJlY3Rpb246IG51bGw7XG5cbiAgQGlmIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJMVFJcIiBvciB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiUlRMXCIge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkbGF5b3V0KTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRkZWZhdWx0KTtcbiAgfVxuXG4gIEByZXR1cm4gJGRpcmVjdGlvbjtcbn1cblxuQGZ1bmN0aW9uIGRpcmVjdGlvbi1mcm9tLWxheW91dCgkbGF5b3V0KSB7XG4gICRkaXJlY3Rpb246IG51bGw7XG5cbiAgQGlmIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJMVFJcIiB7XG4gICAgJGRpcmVjdGlvbjogcmlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGxlZnQ7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogbGVmdDtcblxuICBAaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQ7XG4gIH1cblxuICBAcmV0dXJuICRvcHBvc2l0ZS1kaXJlY3Rpb247XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBSZXR1cm5zIGEgbWVkaWEgY29udGV4dCAobWVkaWEgcXVlcnkgLyBncmlkIGNvbnRleHQpIHRoYXQgY2FuIGJlIHN0b3JlZCBpbiBhIHZhcmlhYmxlIGFuZCBwYXNzZWQgdG8gYG1lZGlhKClgIGFzIGEgc2luZ2xlLWtleXdvcmQgYXJndW1lbnQuIE1lZGlhIGNvbnRleHRzIGRlZmluZWQgdXNpbmcgYG5ldy1icmVha3BvaW50YCBhcmUgdXNlZCBieSB0aGUgdmlzdWFsIGdyaWQsIGFzIGxvbmcgYXMgdGhleSBhcmUgZGVmaW5lZCBiZWZvcmUgaW1wb3J0aW5nIE5lYXQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeVxuLy8vICAgQSBsaXN0IG9mIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFuZCB2YWx1ZXMuIEVhY2ggYCRmZWF0dXJlYCBzaG91bGQgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYCR2YWx1ZWAuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgYCR2YWx1ZWAgaW4gYCRxdWVyeWAsIGAkZGVmYXVsdC1mZWF0dXJlYCBpcyBnb2luZyB0byBiZSB1c2VkLlxuLy8vXG4vLy8gICBUaGUgbnVtYmVyIG9mIHRvdGFsIGNvbHVtbnMgaW4gdGhlIGdyaWQgY2FuIGJlIHNldCBieSBwYXNzaW5nIGAkY29sdW1uc2AgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCAob3ZlcnJpZGVzIGAkdG90YWwtY29sdW1uc2ApLiBGb3IgYSBsaXN0IG9mIHZhbGlkIHZhbHVlcyBmb3IgYCRmZWF0dXJlYCwgY2xpY2sgW2hlcmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYTEpLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJHRvdGFsLWNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBpbiB0aGUgbmV3IGdyaWQgY29udGV4dC4gQ2FuIGJlIHNldCBhcyBhIHNob3J0aGFuZCBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkbW9iaWxlOiBuZXctYnJlYWtwb2ludChtYXgtd2lkdGggNDgwcHggNCk7XG4vLy9cbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWVkaWEoJG1vYmlsZSkge1xuLy8vICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAgLmVsZW1lbnQge1xuLy8vICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogNy40MjI5NyU7XG4vLy8gICAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIH1cbi8vLyAgICAgLmVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgICB9XG4vLy8gICB9XG5cbkBmdW5jdGlvbiBuZXctYnJlYWtwb2ludCgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgICRxdWVyeTogJGRlZmF1bHQtZmVhdHVyZSBudGgoJHF1ZXJ5LCAxKSAkdG90YWwtY29sdW1ucztcbiAgfSBAZWxzZSBpZiBpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSB7XG4gICAgJHF1ZXJ5OiBhcHBlbmQoJHF1ZXJ5LCAkdG90YWwtY29sdW1ucyk7XG4gIH1cblxuICBAaWYgaXMtbm90KGJlbG9uZ3MtdG8oJHF1ZXJ5LCAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMpKSB7XG4gICAgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzOiBhcHBlbmQoJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzLCAkcXVlcnksIGNvbW1hKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGNvbHVtbi4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkZ3V0dGVyYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBtb2R1bGFyLXNjYWxlKCkgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI21vZHVsYXItc2NhbGUpLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiBtb2R1bGFyLXNjYWxlKDMsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGd1dHRlci4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkY29sdW1uYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBtb2R1bGFyLXNjYWxlKCkgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI21vZHVsYXItc2NhbGUpLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRndXR0ZXI6IG1vZHVsYXItc2NhbGUoMSwgMWVtLCAkZ29sZGVuKSAhZGVmYXVsdDtcbi8vICRndXR0ZXI6IDBweDtcblxuLy8vIFNldHMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLiBJdHMgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gaW5zaWRlIGEgbWVkaWEgcXVlcnkgdXNpbmcgdGhlIGBtZWRpYSgpYCBtaXhpbi4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0bGVzcylcblxuJGdyaWQtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBtYXgtd2lkdGggcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdGhhdCBpbmNsdWRlcyBgb3V0ZXItY29udGFpbmVyKClgLiBUbyBsZWFybiBtb3JlIGFib3V0IGBlbSgpYCBzZWUgW0JvdXJib24gZG9jc10oaHR0cDovL2JvdXJib24uaW8vZG9jcy8jcHgtdG8tZW0pLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG4vLy9cbiRtYXgtd2lkdGg6IGVtKDEwODgpICFkZWZhdWx0O1xuXG4vLy8gV2hlbiBzZXQgdG8gdHJ1ZSwgaXQgc2V0cyB0aGUgYm94LXNpemluZyBwcm9wZXJ0eSBvZiBhbGwgZWxlbWVudHMgdG8gYGJvcmRlci1ib3hgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaHRtbCB7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbi8vL1xuLy8vICAgKiwgKjo6YWZ0ZXIsICo6OmJlZm9yZSB7XG4vLy8gICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4vLy8gICB9XG5cbiRib3JkZXItYm94LXNpemluZzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGRlZmF1bHQgW21lZGlhIGZlYXR1cmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYSkgdGhhdCBgbWVkaWEoKWAgYW5kIGBuZXctYnJlYWtwb2ludCgpYCByZXZlcnQgdG8gd2hlbiBvbmx5IGEgYnJlYWtwb2ludCB2YWx1ZSBpcyBwYXNzZWQuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtZmVhdHVyZTogbWluLXdpZHRoOyAvLyBEZWZhdWx0IEBtZWRpYSBmZWF0dXJlIGZvciB0aGUgYnJlYWtwb2ludCgpIG1peGluXG5cbi8vL1NldHMgdGhlIGRlZmF1bHQgbGF5b3V0IGRpcmVjdGlvbiBvZiB0aGUgZ3JpZC4gQ2FuIGJlIGBMVFJgIG9yIGBSVExgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy9AdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlzcGxheXMgdGhlIHZpc3VhbCBncmlkIHdoZW4gc2V0IHRvIHRydWUuIFRoZSBvdmVybGFpZCBncmlkIG1heSBiZSBmZXcgcGl4ZWxzIG9mZiBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXIncyByZW5kZXJpbmcgZW5naW5lIGFuZCBwaXhlbCByb3VuZGluZyBhbGdvcml0aG0uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJHZpc3VhbC1ncmlkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHZpc3VhbCBncmlkIGNvbG9yLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIENvbG9yXG5cbiR2aXN1YWwtZ3JpZC1jb2xvcjogI2VlZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGB6LWluZGV4YCBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIENhbiBiZSBgYmFja2AgKGJlaGluZCBjb250ZW50KSBvciBgZnJvbnRgIChpbiBmcm9udCBvZiBjb250ZW50KS4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJHZpc3VhbC1ncmlkLWluZGV4OiBiYWNrICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgb3BhY2l0eSBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0bGVzcylcblxuJHZpc3VhbC1ncmlkLW9wYWNpdHk6IDAuNCAhZGVmYXVsdDtcblxuJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc2FibGUgYWxsIGRlcHJlY2F0aW9uIHdhcm5pbmdzLiBEZWZhdWx0cyB0byBgZmFsc2VgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kZGlzYWJsZS13YXJuaW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbkBtaXhpbiAtbmVhdC13YXJuKCRtZXNzYWdlKSB7XG4gIEBpZiAkZGlzYWJsZS13YXJuaW5ncyA9PSBmYWxzZSB7XG4gICAgQHdhcm4gXCIjeyRtZXNzYWdlfVwiO1xuICB9XG59XG4iLCIvLyBOZWF0IDEuNy4yXG4vLyBodHRwOi8vbmVhdC5ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMi0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgXCJuZWF0LWhlbHBlcnNcIjtcblxuLy8gR3JpZFxuQGltcG9ydCBcImdyaWQvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImdyaWQvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImdyaWQvb21lZ2FcIjtcbkBpbXBvcnQgXCJncmlkL291dGVyLWNvbnRhaW5lclwiO1xuQGltcG9ydCBcImdyaWQvc3Bhbi1jb2x1bW5zXCI7XG5AaW1wb3J0IFwiZ3JpZC9yb3dcIjtcbkBpbXBvcnQgXCJncmlkL3NoaWZ0XCI7XG5AaW1wb3J0IFwiZ3JpZC9wYWRcIjtcbkBpbXBvcnQgXCJncmlkL2ZpbGwtcGFyZW50XCI7XG5AaW1wb3J0IFwiZ3JpZC9tZWRpYVwiO1xuQGltcG9ydCBcImdyaWQvdG8tZGVwcmVjYXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcImdyaWQvZGlzcGxheS1jb250ZXh0XCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXJlY3Rpb24tY29udGV4dFwiO1xuIiwiJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0O1xuJGZnLWNvbHVtbjogJGNvbHVtbjtcbiRmZy1ndXR0ZXI6ICRndXR0ZXI7XG4kZmctbWF4LWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4kY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFkZWZhdWx0O1xuJGxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbHVtbnMpIHtcbiAgQGlmICRjb2x1bW5zICE9ICRncmlkLWNvbHVtbnMge1xuICAgICRwYXJlbnQtY29sdW1uczogJGNvbHVtbnMgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSkge1xuICBAcmV0dXJuICRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSA9PSB0cnVlIG9yICRkaXNwbGF5ID09IHRhYmxlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IHRydWUge1xuICBodG1sIHsgLy8gaHR0cDovL2JpdC5seS8xcWsydFZSXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICoge1xuICAgICYsXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBSZW1vdmVzIHRoZSBlbGVtZW50J3MgZ3V0dGVyIG1hcmdpbiwgcmVnYXJkbGVzcyBvZiBpdHMgcG9zaXRpb24gaW4gdGhlIGdyaWQgaGllcmFyY2h5IG9yIGRpc3BsYXkgcHJvcGVydHkuIEl0IGNhbiB0YXJnZXQgYSBzcGVjaWZpYyBlbGVtZW50LCBvciBldmVyeSBgbnRoLWNoaWxkYCBvY2N1cnJlbmNlLiBXb3JrcyBvbmx5IHdpdGggYGJsb2NrYCBsYXlvdXRzLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnkgW2Jsb2NrXVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHMuIFN1cHBvcnRlZCBhcmd1bWVudHMgYXJlIGBudGgtY2hpbGRgIHNlbGVjdG9ycyAodGFyZ2V0cyBhIHNwZWNpZmljIHBzZXVkbyBlbGVtZW50KSBhbmQgYGF1dG9gICh0YXJnZXRzIGBsYXN0LWNoaWxkYCkuXG4vLy9cbi8vLyAgIFdoZW4gcGFzc2VkIGFuIGBudGgtY2hpbGRgIGFyZ3VtZW50IG9mIHR5cGUgYCpuYCB3aXRoIGBibG9ja2AgZGlzcGxheSwgdGhlIG9tZWdhIG1peGluIGF1dG9tYXRpY2FsbHkgYWRkcyBhIGNsZWFyIHRvIHRoZSBgKm4rMWAgdGggZWxlbWVudC4gTm90ZSB0aGF0IGNvbXBvc2l0ZSBhcmd1bWVudHMgc3VjaCBhcyBgMm4rMWAgZG8gbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLlxuLy8vXG4vLy8gICAqKkRlcHJlY2F0aW9uIHdhcm5pbmcqKjogVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSBgJGRpcmVjdGlvbmAgYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIGByb3coJGRpcmVjdGlvbilgIG9yIHNldCBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAgaW5zdGVhZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2EoNG4pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4pIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKzEpIHtcbi8vLyAgICAgY2xlYXI6IGxlZnQ7XG4vLy8gICB9XG5cbkBtaXhpbiBvbWVnYSgkcXVlcnk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gICR0YWJsZTogYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KTtcbiAgJGF1dG86IGJlbG9uZ3MtdG8oYXV0bywgJHF1ZXJ5KTtcblxuICBAaWYgJGRpcmVjdGlvbiAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSAkZGlyZWN0aW9uIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICB9XG5cbiAgQGlmICR0YWJsZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiBubyBsb25nZXIgcmVtb3ZlcyBwYWRkaW5nIGluIHRhYmxlIGxheW91dHMuXCIpO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkgYW5kICR0YWJsZSA9PSBmYWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKG50aCgkcXVlcnksIDEpLCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUb28gbWFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBvbWVnYSgpIG1peGluLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSkge1xuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIgYW5kIHVuaXQoJHF1ZXJ5KSA9PSBcIm5cIiB7XG4gICAgJjpudGgtY2hpbGQoI3skcXVlcnl9KzEpIHtcbiAgICAgIGNsZWFyOiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCBhIG91dGVyIGNvbnRhaW5lciBieSBjZW50cmluZyBpdCBpbiB0aGUgdmlld3BvcnQsIGNsZWFyaW5nIGl0cyBmbG9hdHMsIGFuZCBzZXR0aW5nIGl0cyBgbWF4LXdpZHRoYC5cbi8vLyBBbHRob3VnaCBvcHRpb25hbCwgdXNpbmcgYG91dGVyLWNvbnRhaW5lcmAgaXMgcmVjb21tZW5kZWQuIFRoZSBtaXhpbiBjYW4gYmUgY2FsbGVkIG9uIG1vcmUgdGhhbiBvbmUgZWxlbWVudCBwZXIgcGFnZSwgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgbmVzdGVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgW3VuaXRdfSAkbG9jYWwtbWF4LXdpZHRoIFskbWF4LXdpZHRoXVxuLy8vICAgTWF4IHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuIENhbiBiZSBhIHBlcmNlbnRhZ2Ugb3IgYSBtZWFzdXJlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgKnpvb206IDE7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgIH1cblxuQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6ICRsb2NhbC1tYXgtd2lkdGg7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW4gZWxlbWVudCBzaG91bGQgc3Bhbi4gSWYgdGhlIHNlbGVjdG9yIGlzIG5lc3RlZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgaXRzIHBhcmVudCBlbGVtZW50IHNob3VsZCBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgYXMgd2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNwYW5cbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIGAkY29sdW1uc2AsIHRoZSB1bml0bGVzcyBudW1iZXIgb2YgY29sdW1ucyB0aGUgZWxlbWVudCBzcGFucyAocmVxdWlyZWQpLCBhbmQgYCRjb250YWluZXItY29sdW1uc2AsIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGUgcGFyZW50IGVsZW1lbnQgc3BhbnMgKG9wdGlvbmFsKS5cbi8vL1xuLy8vICAgSWYgb25seSBvbmUgdmFsdWUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIHRoYXQgaXQncyBgJGNvbHVtbnNgIGFuZCB0aGF0IHRoYXQgYCRjb250YWluZXItY29sdW1uc2AgaXMgZXF1YWwgdG8gYCRncmlkLWNvbHVtbnNgLCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyAgIFRoZSB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vICAgYCRjb2x1bW5zYCBhbHNvIGFjY2VwdHMgZGVjaW1hbHMgZm9yIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gYnJlYWsgb3V0IG9mIHRoZSBzdGFuZGFyZCBncmlkLiBFLmcuIFBhc3NpbmcgYDIuNGAgaW4gYSBzdGFuZGFyZCAxMiBjb2x1bW4gZ3JpZCB3aWxsIGRpdmlkZSB0aGUgcm93IGludG8gNSBjb2x1bW5zLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQuIEJ5IGRlZmF1bHQgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERlc2lnbmF0ZXMgdGhlIGVsZW1lbnQgYXMgYSByb3cgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXQuIEl0IGNsZWFycyB0aGUgZmxvYXRzIG9uIHRoZSBlbGVtZW50IGFuZCBzZXRzIGl0cyBkaXNwbGF5IHByb3BlcnR5LiBSb3dzIGNhbid0IGJlIG5lc3RlZCwgYnV0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIHJvdyBlbGVtZW504oCUd2l0aCBkaWZmZXJlbnQgZGlzcGxheSBwcm9wZXJ0aWVz4oCUcGVyIGxheW91dC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbZGVmYXVsdF1cbi8vLyAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGRpc3BsYXkgY29udGV4dCB0aGF0IHdpbGwgYmUgdXNlZCBieSBpdHMgY2hpbGRyZW4uIENhbiBiZSBgYmxvY2tgIG9yIGB0YWJsZWAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbl1cbi8vLyAgU2V0cyB0aGUgbGF5b3V0IGRpcmVjdGlvbi4gQ2FuIGJlIGBMVFJgIChsZWZ0LXRvLXJpZ2h0KSBvciBgUlRMYCAocmlnaHQtdG8tbGVmdCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIHJvdygpO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICAqem9vbTogMTtcbi8vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjb250ZW50OiBcIiBcIjtcbi8vLyAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vIH1cbi8vL1xuLy8vIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNsZWFyOiBib3RoO1xuLy8vIH1cblxuQG1peGluIHJvdygkZGlzcGxheTogZGVmYXVsdCwgJGRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbikge1xuICBAaWYgJGRpcmVjdGlvbiAhPSAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXJlY3Rpb24gYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRpcmVjdGlvbiAhZ2xvYmFsO1xuXG4gIEBpZiAkZGlzcGxheSAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXNwbGF5IGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gIEBpZiAkZGlzcGxheSA9PSB0YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IHRydWUgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMuIFBvc2l0aXZlIGFyZ3VtZW50cyBzaGlmdCB0aGUgZWxlbWVudCB0byB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24sIHdoaWxlIG5lZ2F0aXZlIG9uZXMgc2hpZnQgaXQgdG8gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICRuLWNvbHVtbnMgWzFdXG4vLy8gICBOdW1iZXIgb2YgY29sdW1ucyBieSB3aGljaCB0aGUgZWxlbWVudCBzaGlmdHMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTI1LjU4OTQxJTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0KCRuLWNvbHVtbnM6IDEpIHtcbiAgQGluY2x1ZGUgc2hpZnQtaW4tY29udGV4dCgkbi1jb2x1bW5zKTtcbn1cblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucywgaW4gYSBzcGVjaWZpYyBuZXN0aW5nIGNvbnRleHQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGlmdFxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IChgJGNvbHVtbnNgKSBhbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIHRoZSBwYXJlbnQgZWxlbWVudCAoYCRjb250YWluZXItY29sdW1uc2ApLlxuLy8vXG4vLy8gICBUaGUgdHdvIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zIG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTUyLjQxNDU4JTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0LWluLWNvbnRleHQoJHNoaWZ0OiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMpIHtcbiAgJG4tY29sdW1uczogbnRoKCRzaGlmdCwgMSk7XG4gICRwYXJlbnQtY29sdW1uczogY29udGFpbmVyLXNoaWZ0KCRzaGlmdCkgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJG4tY29sdW1ucyAqIGZsZXgtZ3JpZCgxLCAkcGFyZW50LWNvbHVtbnMpICsgJG4tY29sdW1ucyAqIGZsZXgtZ3V0dGVyKCRwYXJlbnQtY29sdW1ucyk7XG5cbiAgLy8gUmVzZXQgbmVzdGluZyBjb250ZXh0XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQWRkcyBwYWRkaW5nIHRvIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcGFkZGluZyBbZmxleC1ndXR0ZXIoKV1cbi8vLyAgIEEgbGlzdCBvZiBwYWRkaW5nIHZhbHVlKHMpIHRvIHVzZS4gUGFzc2luZyBgZGVmYXVsdGAgaW4gdGhlIGxpc3Qgd2lsbCByZXN1bHQgaW4gdXNpbmcgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBhZGRpbmcgdmFsdWUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkKDMwcHggLTIwcHggMTBweCBkZWZhdWx0KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZzogMzBweCAtMjBweCAxMHB4IDIuMzU3NjUlO1xuLy8vICAgfVxuXG5AbWl4aW4gcGFkKCRwYWRkaW5nOiBmbGV4LWd1dHRlcigpKSB7XG4gICRwYWRkaW5nLWxpc3Q6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkcGFkZGluZyB7XG4gICAgJHZhbHVlOiBpZigkdmFsdWUgPT0gJ2RlZmF1bHQnLCBmbGV4LWd1dHRlcigpLCAkdmFsdWUpO1xuICAgICRwYWRkaW5nLWxpc3Q6IGpvaW4oJHBhZGRpbmctbGlzdCwgJHZhbHVlKTtcbiAgfVxuICBwYWRkaW5nOiAkcGFkZGluZy1saXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRm9yY2VzIHRoZSBlbGVtZW50IHRvIGZpbGwgaXRzIHBhcmVudCBjb250YWluZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8vICAgfVxuXG5AbWl4aW4gZmlsbC1wYXJlbnQoKSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gZmFsc2Uge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgYSBtZWRpYS1xdWVyeSBibG9jayB3aXRoIGFuIG9wdGlvbmFsIGdyaWQgY29udGV4dCAodGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQpLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLCB3aGVyZSBlYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vICAgRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuXG4vLy9cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSg3NjlweCkge1xuLy8vICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1lZGlhKG1pbi13aWR0aCAzMjBweCBtYXgtd2lkdGggNDgwcHgsIDYpIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuXG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJGxvb3AtdG86IGxlbmd0aCgkcXVlcnkpO1xuICAgICRtZWRpYS1xdWVyeTogXCJzY3JlZW4gYW5kIFwiO1xuICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuXG4gICAgQGlmIGlzLW5vdChpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSkge1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgJGxvb3AtdG8pICFnbG9iYWw7XG4gICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgIH1cblxuICAgICRpOiAxO1xuICAgIEB3aGlsZSAkaSA8PSAkbG9vcC10byB7XG4gICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiKFwiICsgbnRoKCRxdWVyeSwgJGkpICsgXCI6IFwiICsgbnRoKCRxdWVyeSwgJGkgKyAxKSArIFwiKSBcIjtcblxuICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcImFuZCBcIjtcbiAgICAgIH1cblxuICAgICAgJGk6ICRpICsgMjtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaWEtcXVlcnl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeTokZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgYnJlYWtwb2ludCgpIG1peGluIHdhcyByZW5hbWVkIHRvIG1lZGlhKCkgaW4gTmVhdCAxLjAuIFBsZWFzZSB1cGRhdGUgeW91ciBwcm9qZWN0IHdpdGggdGhlIG5ldyBzeW50YXggYmVmb3JlIHRoZSBuZXh0IHZlcnNpb24gYnVtcC5cIik7XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgMyk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCA1KTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGJyZWFrcG9pbnQoKS4gUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLW9tZWdhKCRudGgsICRkaXNwbGF5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG50aC1vbWVnYSgpIG1peGluIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2Ugb21lZ2EoKSBpbnN0ZWFkLlwiKTtcbiAgQGluY2x1ZGUgb21lZ2EoJG50aCAkZGlzcGxheSwgJGRpcmVjdGlvbik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5IHRvIGBibG9ja2AuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIGRpc3BsYXlcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheVxuXG5AbWl4aW4gcmVzZXQtZGlzcGxheSB7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlzcGxheSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlIHNldCBpbiBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgbGF5b3V0IGRpcmVjdGlvbiBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KCRkaXJlY3Rpb246IFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWxheW91dC1kaXJlY3Rpb24ge1xuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXJlY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgYm90aCB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gYW5kIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUsIFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSB0YWJsZSBhbmQgcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1hbGw7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXkgYW5kIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWFsbCB7XG4gIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4gIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBncmlkLWNvbHVtbi1ncmFkaWVudCgkdmFsdWVzLi4uKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICN7JHZhbHVlc30pXCIpO1xufVxuXG5AaWYgJHZpc3VhbC1ncmlkID09IHRydWUgb3IgJHZpc3VhbC1ncmlkID09IHllcyB7XG4gIGJvZHk6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIG9wYWNpdHk6ICR2aXN1YWwtZ3JpZC1vcGFjaXR5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gYmFjayB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gZnJvbnQge1xuICAgICAgei1pbmRleDogOTk5OTtcbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMge1xuICAgICAgQGlmICRicmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIERpc3BsYXkgdmFsdWUgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYHRhYmxlYCBvciBgYmxvY2tgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgQGluY2x1ZGUgZGlzcGxheS1jb250ZXh0KHRhYmxlKSB7XG4vLy8gICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpc3BsYXktY29udGV4dCgkZGlzcGxheTogYmxvY2spIHtcbiAgJHNjb3BlLWRpc3BsYXk6ICRjb250YWluZXItZGlzcGxheS10YWJsZTtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkZGlzcGxheSA9PSB0YWJsZSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJHNjb3BlLWRpc3BsYXkgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbbGVmdC10by1yaWdodF1cbi8vLyAgIExheW91dCBkaXJlY3Rpb24gdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYGxlZnQtdG8tcmlnaHRgIG9yIGByaWdodC10by1sZWZ0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgQGluY2x1ZGUgZGlyZWN0aW9uLWNvbnRleHQocmlnaHQtdG8tbGVmdCkge1xuLy8vICAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICBmbG9hdDogcmlnaHQ7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpcmVjdGlvbi1jb250ZXh0KCRkaXJlY3Rpb246IGxlZnQtdG8tcmlnaHQpIHtcbiAgJHNjb3BlLWRpcmVjdGlvbjogJGxheW91dC1kaXJlY3Rpb247XG5cbiAgQGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJsZWZ0LXRvLXJpZ2h0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWdsb2JhbDtcbiAgfSBAZWxzZSBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwicmlnaHQtdG8tbGVmdFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogUlRMICFnbG9iYWw7XG4gIH1cblxuICBAY29udGVudDtcblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJHNjb3BlLWRpcmVjdGlvbiAhZ2xvYmFsO1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogICAgICAgR2VuZXJhbCAmIE92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5ib2R5IHtcblx0Y29sb3I6IzAwMDtcbn1cbmltZyB7XG5cdGRpc3BsYXk6YmxvY2s7XG5cdG1heC13aWR0aDoxMDAlO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiAgIEdyaWQgJiBDb250YWluZXJzICYgT2Zmc2V0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4uY29udGFpbmVyIHtcblx0QGluY2x1ZGUgb3V0ZXItY29udGFpbmVyO1xuICBtYXJnaW46IDAgYXV0bztcblx0bWF4LXdpZHRoOiAkY29udGFpbmVyO1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgd2lkdGg6IDkwJTtcblx0Ji0tbGFyZ2Uge1xuXHRcdG1heC13aWR0aDokY29udGFpbmVyLWxhcmdlO1xuXHR9XG5cdCYtLXNtYWxsIHtcbiAgICB3aWR0aDogOTAlO1xuXHRcdG1heC13aWR0aDokY29udGFpbmVyLXNtYWxsO1xuXHR9XG4gICYtLXhzbWFsbCB7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6ICRjb250YWluZXIteHNtYWxsO1xuICB9XG4gICYtLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuLnJvdyB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBAaW5jbHVkZSBtYXJnaW4obnVsbCAtNXB4KTtcbn1cbi5jb2x1bW4ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIC5ncmlkICYge1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgfVxuXHQmLmNlbnRlciB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cdH1cbn1cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xuXHQuY29sLWxhcmdlLSN7JGl9IHtcblx0XHRAaW5jbHVkZSBzcGFuLWNvbHVtbnMoJGkpO1xuXHR9XG5cdC5jb2wtb2Zmc2V0LSN7JGl9IHtcblx0XHRAaW5jbHVkZSBzaGlmdCgkaSk7XG5cdH1cbn1cbkBmb3IgJGkgZnJvbSAxIHRocm91Z2ggMTIge1xuICAuY29sLW1lZGl1bS0jeyRpfSB7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoJGkpO1xuICAgIH1cbiAgfVxufVxuQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAxMiB7XG4gIC5jb2wtc21hbGwtI3skaX0ge1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoJGkpO1xuICAgIH1cbiAgfVxufVxuLmNvbC1zbWFsbC0xMiB7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgQGluY2x1ZGUgc2hpZnQoMCk7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogICAgICAgICAgIFR5cG9ncmFwaHlcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuaDEsIC5oMSB7XG5cdGZvbnQtc2l6ZTplbSg1Nik7XG5cdEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuXHRcdGZvbnQtc2l6ZTplbSg0NCk7XG5cdH1cbn1cbmgyLCAuaDIge1xuXHRmb250LXNpemU6IGVtKDQ0KTtcblx0QGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG5cdFx0Zm9udC1zaXplOmVtKDM0KTtcblx0fVxufVxuaDMsIC5oMyB7XG5cdGZvbnQtc2l6ZTogZW0oMzQpO1xuXHRAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcblx0XHRmb250LXNpemU6ZW0oMjUpO1xuXHR9XG59XG5oNCwgLmg0IHtcblx0Zm9udC1zaXplOiBlbSgyOCk7XG5cdEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuXHRcdGZvbnQtc2l6ZTplbSgyMik7XG5cdH1cbn1cbmg1LCAuaDUge1xuXHRmb250LXNpemU6ZW0oMjIpO1xuXHRAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcblx0XHRmb250LXNpemU6ZW0oMTgpO1xuXHR9XG59XG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbmVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiAgICAgICAgIFNtYWxsIGxpdHRsZSBndXlzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5tdXRlZCB7XG4gIGNvbG9yOiAkc2lsdmVyO1xuICBmb250LXdlaWdodDogMjAwO1xuICBmb250LXNpemU6IGVtKDEycHgpO1xuICBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxufVxuLm5vYnIge1xuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XG59XG4uY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmljb24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWF4LXdpZHRoOiAzMHB4O1xuICBtYXgtaGVpZ2h0OiAzMHB4O1xufVxuLnJlZC10ZXh0IHtcbiAgY29sb3I6ICRyZWQ7XG59XG4uc3Itb25seSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgYm9yZGVyOiAwO1xufVxuLnNlbWktYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi50ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4ubWVkaXVtLXRleHQtbGVmdCB7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbi5zbWFsbC10ZXh0LWxlZnQge1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbi5tZWRpdW0tdGV4dC1yaWdodCB7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG4uc21hbGwtdGV4dC1yaWdodCB7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cbiIsIi8vXG4vLyBJbnB1dCBncm91cHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJhc2Ugc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IC8vIEZvciBkcm9wZG93bnNcbiAgZGlzcGxheTogdGFibGU7XG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IC8vIHByZXZlbnQgaW5wdXQgZ3JvdXBzIGZyb20gaW5oZXJpdGluZyBib3JkZXIgc3R5bGVzIGZyb20gdGFibGUgY2VsbHMgd2hlbiBwbGFjZWQgd2l0aGluIGEgdGFibGVcblxuICAvLyBVbmRvIHBhZGRpbmcgYW5kIGZsb2F0IG9mIGdyaWQgY2xhc3Nlc1xuICAmW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgLmZvcm0tY29udHJvbCB7XG4gICAgLy8gRW5zdXJlIHRoYXQgdGhlIGlucHV0IGlzIGFsd2F5cyBhYm92ZSB0aGUgKmFwcGVuZGVkKiBhZGRvbiBidXR0b24gZm9yXG4gICAgLy8gcHJvcGVyIGJvcmRlciBjb2xvcnMuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAvLyBJRTkgZnViYXJzIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGUgaW4gdGV4dCBpbnB1dHMgYW5kIHRoZSBhcnJvd3Mgb25cbiAgICAvLyBzZWxlY3QgZWxlbWVudHMgaW4gaW5wdXQgZ3JvdXBzLiBUbyBmaXggaXQsIHdlIGZsb2F0IHRoZSBpbnB1dC4gRGV0YWlsczpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTYxI2lzc3VlY29tbWVudC0yODkzNjg1NVxuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBcbiAgICAmOmZvY3VzIHtcbiAgICAgIHotaW5kZXg6IDM7XG4gICAgfVxuICB9XG59XG5cblxuLy8gRGlzcGxheSBhcyB0YWJsZS1jZWxsXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYWRkb24sXG4uaW5wdXQtZ3JvdXAtYnRuLFxuLmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXG4gICY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgfVxufVxuLy8gQWRkb24gYW5kIGFkZG9uIHdyYXBwZXIgZm9yIGJ1dHRvbnNcbi5pbnB1dC1ncm91cC1hZGRvbixcbi5pbnB1dC1ncm91cC1idG4ge1xuICB3aWR0aDogMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8vIE1hdGNoIHRoZSBpbnB1dHNcbn1cblxuLy8gUmVzZXQgcm91bmRlZCBjb3JuZXJzXG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCxcbi5pbnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG4tZ3JvdXAgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5kcm9wZG93bi10b2dnbGUsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XG4gIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IDA7XG59XG4uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpsYXN0LWNoaWxkLFxuLmlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGQsXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuYnRuLFxuLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNoaWxkID4gLmJ0bi1ncm91cCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQgPiAuZHJvcGRvd24tdG9nZ2xlLFxuLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAtYnRuOmZpcnN0LWNoaWxkID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7XG59XG4uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4vLyBCdXR0b24gaW5wdXQgZ3JvdXBzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uaW5wdXQtZ3JvdXAtYnRuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBKYW5raWx5IHByZXZlbnQgaW5wdXQgYnV0dG9uIGdyb3VwcyBmcm9tIHdyYXBwaW5nIHdpdGggYHdoaXRlLXNwYWNlYCBhbmRcbiAgLy8gYGZvbnQtc2l6ZWAgaW4gY29tYmluYXRpb24gd2l0aCBgaW5saW5lLWJsb2NrYCBvbiBidXR0b25zLlxuICBmb250LXNpemU6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLy8gTmVnYXRpdmUgbWFyZ2luIGZvciBzcGFjaW5nLCBwb3NpdGlvbiBmb3IgYnJpbmdpbmcgaG92ZXJlZC9mb2N1c2VkL2FjdGl2ZWRcbiAgLy8gZWxlbWVudCBhYm92ZSB0aGUgc2libGluZ3MuXG4gID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IGVtKDE3cHgpIGVtKDI0cHgpIGVtKDE2cHgpO1xuICAgICsgLmJ0biB7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICB9XG4gICAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgYnV0dG9uIHRvIHRoZSBmcm9udFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5lZ2F0aXZlIG1hcmdpbiB0byBvbmx5IGhhdmUgYSAxcHggYm9yZGVyIGJldHdlZW4gdGhlIHR3b1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICA+IC5idG4sXG4gICAgPiAuYnRuLWdyb3VwIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFweDtcbiAgICB9XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICA+IC5idG4sXG4gICAgPiAuYnRuLWdyb3VwIHtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRW1iZWRzIHJlc3BvbnNpdmVcbi8vXG4vLyBDcmVkaXQ6IE5pY29sYXMgR2FsbGFnaGVyIGFuZCBTVUlUIENTUy5cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLmVtYmVkLXJlc3BvbnNpdmUtaXRlbSxcbiAgaWZyYW1lLFxuICBlbWJlZCxcbiAgb2JqZWN0LFxuICB2aWRlbyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi8vIE1vZGlmaWVyIGNsYXNzIGZvciAxNjo5IGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtMTZieTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xufVxuXG4vLyBNb2RpZmllciBjbGFzcyBmb3IgNDozIGFzcGVjdCByYXRpb1xuLmVtYmVkLXJlc3BvbnNpdmUtNGJ5MyB7XG4gIHBhZGRpbmctYm90dG9tOiA3NSU7XG59XG4iLCJAaW5jbHVkZSBrZXlmcmFtZXMoaGVhcnRiZWF0KSB7XG4gIDAlICB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAxNCUgIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XG4gIH1cbiAgMjglICB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA0MiUgIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMyk7XG4gIH1cbiAgNzAlICB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuIiwiLm5hdiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHotaW5kZXg6IDk5ODtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG4uYnJhbmRlZC1uYXYsIC5zdGFuZGFyZC1uYXYge1xuICBoZWlnaHQ6ICRnbG9iYWwtbmF2LWhlaWdodC1sYXJnZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmJyYW5kZWQtbmF2IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFRkVGRUY7XG59XG4uc3RhbmRhcmQtbmF2IHtcbiAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggMHB4IHJnYmEoMCwwLDAsMC4wOSk7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFRoZSBpbm5lciBjb250ZW50cyBvZiB0aGUgbmF2aWdhdGlvblxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5uYXYge1xuICAmX19icmFuZGluZyB7XG4gICAgJjpob3ZlciB7XG4gICAgICAubmF2X19sb2dvIHtcbiAgICAgICAgLmljb24tLWxvZ28ge1xuICAgICAgICAgIGZpbGw6IGluaXRpYWw7XG4gICAgICAgICAgZmlsbC1vcGFjaXR5OiAwLjg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5uYXZfX2JyYW5kIHtcbiAgICAgICAgLmljb24tLWxvZ28tdHlwZSB7XG4gICAgICAgICAgZmlsbDogaW5pdGlhbDtcbiAgICAgICAgICBmaWxsLW9wYWNpdHk6IDAuODtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19sb2dvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMzFweDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMTJweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICAuaWNvbi0tbG9nbyB7XG4gICAgICBAaW5jbHVkZSBzaXplKDI4cHgpO1xuICAgICAgbWF4LXdpZHRoOiAyOHB4O1xuICAgICAgbWF4LWhlaWdodDogMjhweDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlO1xuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICAubW9kYWwtZ2VuZXJpYy0tZGFyayAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTE2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2JyYW5kIHtcbiAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiBlbSgyNXB4KTtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nLXRvcDogMTdweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogNzBweDtcbiAgICAuaWNvbi0tbG9nby10eXBlIHtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlO1xuICAgICAgQGluY2x1ZGUgc2l6ZSgxMzBweCAzMHB4KTtcbiAgICAgIC5tb2RhbC1nZW5lcmljLS1kYXJrICYge1xuICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICAubW9kYWwtZ2VuZXJpYy0tZGFyayAmIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDY3cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMnB4O1xuICAgICAgICAuaWNvbi0tbG9nby10eXBlIHtcbiAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fZGVtbyB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAkcmVkO1xuICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICB9XG4gICZfX2xpbmtzIHtcbiAgICAmLm5hdi0tbGVmdCB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIH1cbiAgICAmLm5hdi0tcmlnaHQge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cbiAgICAmLm5hdi0tc29jaWFsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB9XG4gICAgLml0ZW0tLWhhbWJ1cmdlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAmLS1zb2NpYWwge1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmljb24ge1xuICAgICAgbWF4LXdpZHRoOiAyMnB4O1xuICAgICAgbWF4LWhlaWdodDogMjJweDtcbiAgICAgIEBpbmNsdWRlIHNpemUoMjJweCk7XG4gICAgICBmaWxsOiAkaWNvbi1ncmF5O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAwIDAgNnB4O1xuICAgICYuaXRlbS0tc29jaWFsIHtcbiAgICAgIG1hcmdpbjogMCAwIDAgOXB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLm5hdl9fbGluayB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5pdGVtLS1idXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgICAgJi5pdGVtLS1jaXJjbGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgIHBhZGRpbmc6IGVtKDExcHgsIDE1cHgpIGVtKDIwcHgsIDE1cHgpIGVtKDExcHgsIDE1cHgpO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zaXplOiBlbSgxNXB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiBlbSgyM3B4KTtcbiAgICAgICYtLWxvZ2luIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0NFQ0VDRTtcbiAgICAgICAgY29sb3I6ICRidXR0b24tY29sb3I7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjFCMUIxO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNDRweDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgcGFkZGluZzogMCA1cHggMDtcbiAgICBtYXgtaGVpZ2h0OiAkZ2xvYmFsLW5hdi1oZWlnaHQtbGFyZ2U7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbmF2LWhlaWdodC1sYXJnZTtcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgfVxuICAgICY6aG92ZXIsXG4gICAgLmFjdGl2ZSAmIHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgLmljb24ge1xuICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuYnV0dG9uLS1tZSB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICAgIGZvbnQtc2l6ZTogZW0oMjRweCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIEBpbmNsdWRlIHNpemUoNDBweCA0MHB4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIC5pZSAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsO1xuICAgIH1cbiAgfVxuICAuaWNvbi0tc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBzaXplKDIwcHgpO1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gIH1cbiAgLmljb24tLWhhbWJ1cmdlciB7XG4gICAgQGluY2x1ZGUgc2l6ZSgyMHB4KTtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICB9XG4gIC5pY29uLS1hcnJvdy1kb3duIHtcbiAgICBAaW5jbHVkZSBzaXplKDhweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMXB4O1xuICB9XG4gIC5kcm9wZG93biB7XG4gICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgcmlnaHQ6IDExcHhcbiAgICB9XG4gICAgJi0tc2V0dGluZ3Mge1xuICAgICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIHJpZ2h0OiAtNnB4O1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHJpZ2h0OiA2cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kZ2xvYmFsLW5hdi1oZWlnaHQtbGFyZ2UpO1xuICAgICZfX2xvZ28ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRnbG9iYWwtbmF2LWhlaWdodC1sYXJnZSk7XG4gICAgfVxuICAgICZfX2RlbW8ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLml0ZW0tLXNlYXJjaCwgLml0ZW0tLWhhbWJ1cmdlciB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gICAgLml0ZW0tLXNlYXJjaCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDYwcHg7XG4gICAgfVxuICAgIC5pdGVtLS1oYW1idXJnZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cbiAgICAubmF2X19saW5rcyB7XG4gICAgICAmLm5hdi0tbGVmdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2MHB4O1xuICAgICAgfVxuICAgICAgLml0ZW0tLXRleHQsIC5pdGVtLS1kcm9wZG93biwgLml0ZW0tLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICYuaXRlbS0taGlnaGxpZ2h0ZWQge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaXRlbS0taGFtYnVyZ2VyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQW5pbWF0aW9ucyBvbiB0aGUgbmF2XG4gKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQWRkIGNzcyB0cmFuc2l0aW9ucyB0byBldmVyeXRoaW5nIHRoYXQgbmVlZHMgaXQgKi9cbi5uYXYsIC5uYXZfX2xvZ28sIC5uYXZfX2xpbmtzIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTtcbn1cbi8qIENTUyBBbmltYXRpb25zICovXG4ubmF2LXNjcm9sbGVkIHtcbiAgJi5uYXYge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGdsb2JhbC1uYXYtaGVpZ2h0LWxhcmdlKTtcbiAgfVxuICAubmF2X19sb2dvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGdsb2JhbC1uYXYtaGVpZ2h0LWxhcmdlKTtcbiAgfVxuICAubmF2X19saW5rcyB7XG4gICAgJi5uYXYtLWxlZnQge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwcHgpO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqXG4qIFRIRSBOQVYgTU9EQUxcbioqKioqKioqKioqKioqKioqKioqKi9cbi5uYXYtbW9kYWwge1xuICAubmF2X19sb2dvOmhvdmVyIHtcbiAgICAuaWNvbi0tbG9nbyB7XG4gICAgICBmaWxsOiB3aGl0ZTtcbiAgICB9XG4gIH1cbiAgJl9fbGlzdCB7XG4gICAgJi5saXN0LS1saW5rcyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQ1NDU0NTtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIH1cbiAgICAgID4gLm5hdi1tb2RhbF9faXRlbSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDU0NTQ1O1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5uYXYtbW9kYWxfX2xpbmsge1xuICAgICAgICBmb250LXNpemU6IGVtKDM4cHgpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICYubGluay0tc21hbGwge1xuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMjJweCk7XG4gICAgICAgICAgY29sb3I6ICNCRENEQ0Q7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIC5pY29uLS1hcnJvdy1kb3duIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS43NWVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaWNvbi0tYXJyb3ctZG93biB7XG4gICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmxpc3QtLWJ1dHRvbnMge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICAgIC5pdGVtLS1jaXJjbGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fd3JhcHBlciB7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgJl9fbGlua3Mge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogODhweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogODBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxuICAmX19saW5rIHtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJi5idXR0b24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxLjVlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICYuYnV0dG9uLS1sb2dpbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2U7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJHRlYWw7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgIG1hcmdpbjogMC43NWVtIDA7XG4gICAgICAgIHBhZGRpbmc6IDEuMjVlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fYnJhbmRpbmcge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIC5uYXZfX2xvZ28ge1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgICAubmF2X19icmFuZCB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgfVxuICAgIH1cbiAgICAubmF2X19kZW1vIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgfVxuICAgIH1cbiAgICAubmF2X19saW5rcy5uYXYtLXNvY2lhbCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4ubmF2Lm5hdi1tb2RhbF9fbGlzdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgdHJhbnNmb3JtOiBub25lO1xuICAubmF2LW1vZGFsX19saW5rIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cbiAgLm5hdi1tb2RhbF9faXRlbSB7XG4gICAgZm9udC1zaXplOiBlbSgyMnB4KTtcbiAgfVxuICAuYnV0dG9uLS1tZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDY2cHg7XG4gIH1cbn1cbiIsIi5oZXJvIHtcbiAgaGVpZ2h0OiA2MDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgfVxuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogOTAlO1xuICB9XG4gIC5oZXJvLWN0YSB7XG4gICAgQGluY2x1ZGUgcmV0aW5hLWltYWdlKFwiL3dwLWNvbnRlbnQvdGhlbWVzL2FjYWRlbXktbmV3c2NyZWQvaW1nL2JnLWhvbWVcIiwgY292ZXIsIGpwZyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgfVxuICAmLS1sYXJnZSB7XG4gICAgaGVpZ2h0OiA2MzBweCArICgkZ2xvYmFsLW5hdi1oZWlnaHQtbGFyZ2UgKiAyKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC5oZXJvX19oZWFkZXIge1xuICAgICAgZm9udC1zaXplOiBlbSgxMDBweCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMi43N3B4O1xuICAgICAgbGluZS1oZWlnaHQ6ICg5MnB4LzEwMHB4KTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSg1cHgsIDEwMHB4KTtcbiAgICAgIHRleHQtc2hhZG93OiAwcHggMXB4IDVweCByZ2JhKDAsMCwwLDAuMjUpO1xuICAgIH1cbiAgICAuaGVyb19fc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjhweCk7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgbGluZS1oZWlnaHQ6ICgzN3B4LzI4cHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oNTdweCwgMjhweCk7XG4gICAgfVxuICAgIC5oZXJvX19jdGEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBjb2xvcjogJGFsbW9zdC1ibGFjaztcbiAgICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBlYXNlO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgICAgaGVpZ2h0OiA1MjBweCArICRnbG9iYWwtbmF2LWhlaWdodC1tZWRpdW07XG4gICAgICAuaGVyb19faGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSg2NXB4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogKDY1cHgvNjVweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGVtKDI2cHgsIDY1cHgpO1xuICAgICAgfVxuICAgICAgLmhlcm9fX3N1YmhlYWRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMjRweCk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjQycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoMzJweC8yNHB4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMjZweCwgMjRweCk7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIGhlaWdodDogNDAwcHggICsgJGdsb2JhbC1uYXYtaGVpZ2h0LXNtYWxsO1xuICAgICAgZm9udC1zaXplOiBlbSgxMC4yNHB4KTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIC5oZXJvX19oZWFkZXIge1xuICAgICAgICBmb250LXNpemU6IGVtKDMycHgsIDEwLjI0cHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgyNXB4LCAzMnB4KTtcbiAgICAgIH1cbiAgICAgIC5oZXJvX19zdWJoZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgxNHB4KTtcbiAgICAgIH1cbiAgICAgIC5idXR0b24ge1xuICAgICAgICBmb250LXNpemU6IGVtKDE1cHgsIDEwLjI0cHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS1tZWRpdW0ge1xuICAgIGhlaWdodDogNTMwcHggKyAoJGdsb2JhbC1uYXYtaGVpZ2h0LWxhcmdlICogMik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAuaGVyby1jdGEge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCMzQTZCNkIsIDAuNyk7XG4gICAgICB9XG4gICAgfVxuICAgIC5oZXJvX19oZWFkZXIge1xuICAgICAgZm9udC1zaXplOiAzLjZlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAoNzBweC82N3B4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIGhlaWdodDogMzE4cHggKyAoJGdsb2JhbC1uYXYtaGVpZ2h0LW1lZGl1bSAqIDIpO1xuICAgICAgLmhlcm9fX2hlYWRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oNDBweCk7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIGhlaWdodDogMjYwcHggKyAoJGdsb2JhbC1uYXYtaGVpZ2h0LXNtYWxsICogMik7XG4gICAgICAuaGVyb19faGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgyOHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmhlcm8tYmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuZWFyLWJsYWNrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgJi0tc21hbGwge1xuICAgIGhlaWdodDogMzk3cHg7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgaGVpZ2h0OiAyNTZweDtcbiAgICB9XG4gICAgLmhlcm9fX2hlYWRlciB7XG4gICAgICBmb250LXNpemU6IGVtKDQ0cHgpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgICBmb250LXNpemU6IGVtKDQwcHgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBmb250LXNpemU6IGVtKDMwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgICAuaGVyb19fc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG4gICAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoODAlKTtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKTtcbiAgICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNXB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0taHAtbG9nZ2VkLWluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VwYXJhdG9yLWdyYXk7XG4gIH1cbiAgJi0tbW9kYWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuZWFyLWJsYWNrO1xuICB9XG4gICZfX2hlYWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMzIsIDcyKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiBlbSg2N3B4KTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBsaW5lLWhlaWdodDogKDcwcHgvNjdweCk7XG4gICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMXB4IHJnYmEoMCwwLDAsMC41MCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBmb250LXNpemU6IGVtKDMwcHgpO1xuICAgIH1cbiAgfVxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBmb250LXNpemU6IGVtKDE4cHgpO1xuICAgIGNvbG9yOiAkc2lsdmVyO1xuICAgIGxpbmUtaGVpZ2h0OiAoMzFweC8xOHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgyNnB4LCAxOHB4KTtcbiAgfVxuICAmX19zdWJoZWFkZXIge1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAoMjRweC8yMHB4KTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTJweCk7XG4gICAgfVxuICB9XG4gICZfX3N0YXRzIHtcbiAgICBsaSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSBvZiAzKTtcbiAgICAgIGNvbG9yOiAkdGVhbDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNTZweCk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIGJvcmRlci1sZWZ0OiAkYmFzZS1ib3JkZXI7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGVtKDMwcHgsIDU2cHgpO1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGxlZnQ6IDQwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNXB4LCA1NnB4KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDcwcHg7XG4gICAgICAgIHRvcDogNHB4O1xuICAgICAgICByaWdodDogMzBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fY2F0ZWdvcnkge1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDMycHgpO1xuICB9XG4gICZfX2F2YXRhciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gICYtLWNvbGxlY3Rpb25zIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLmhlcm9fX2hlYWRlciB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNTBweCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4zN3B4O1xuICAgICAgbGluZS1oZWlnaHQ6ICg1OXB4LzUwcHgpO1xuICAgICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMXB4IHJnYmEoMCwwLDAsMC41MCk7XG4gICAgfVxuICAgIC5oZXJvX19zdWJoZWFkZXIge1xuICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICB9XG4gICAgLmhlcm8tY3RhIHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW5hdi1oZWlnaHQtbGFyZ2UqMjtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oNzhweCkgbnVsbCk7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW5hdi1oZWlnaHQtbWVkaXVtO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBtYXJnaW4tdG9wOiAkZ2xvYmFsLW5hdi1oZWlnaHQtc21hbGw7XG4gICAgICB9XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG5lYXItYmxhY2ssIDAuMik7XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2xsZWN0aW9uLWluZm8ge1xuICAgICAgcGFkZGluZy1yaWdodDogZW0oMTE0cHgpO1xuICAgIH1cbiAgICAuY29sbGVjdGlvbi1jb250ZW50IHtcbiAgICAgIHBhZGRpbmctdG9wOiBlbSgxOXB4KTtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMTlweCk7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTMwcHg7XG4gICAgICAgIGhlaWdodDogN3B4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVhbDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICBoNCB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMThweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoMjZweC8xOHB4KTtcbiAgICAgICAgc21hbGwge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICBmb250LXNpemU6IGVtKDE1cHgsIDE4cHgpO1xuICAgICAgICAgIGNvbG9yOiAkc2lsdmVyO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHJlZDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICB9XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICAgIG1heC13aWR0aDogMTRweDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMXB4O1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB1bCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IGRpc2MgaW5zaWRlO1xuICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgbWFyZ2luOiAycHggMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuY29sbGVjdGlvbi1mb3JtIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2ZmZjtcbiAgICAgIHBhZGRpbmctbGVmdDogZW0oMzBweCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiBlbSgzMHB4KTtcbiAgICAgIH1cbiAgICAgIGxhYmVsIGgzIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IGVtKDMwcHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogKDM5cHgvMzBweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGVtKDMwcHgsIDE4cHgpO1xuICAgICAgfVxuICAgICAgLm11dGVkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMjhweCwgMTJweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgyNXB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tY29sbGVjdGlvbnMtbG9nZ2VkaW4ge1xuICAgIC5jb2xsZWN0aW9uLWNvbnRlbnQge1xuICAgICAgcGFkZGluZy10b3A6IGVtKDVweCk7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICBoNCBzbWFsbCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYmxvY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA2NjBweDtcbiAgaGVpZ2h0OiA2MDBweDtcbiAgdG9wOiAwO1xuICAmLS1sYXJnZSB7XG4gICAgaGVpZ2h0OiAxMjAwcHg7XG4gICAgJi5ibG9jay0tbGVmdCB7XG4gICAgICBtYXJnaW4tdG9wOiAtNzEwcHg7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjZkZWcpO1xuICAgICAgb3BhY2l0eTogMC44MztcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTM0MHB4O1xuICAgICAgd2lkdGg6IDEyMDBweDtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgICB3aWR0aDogNjAwcHg7XG4gICAgICAgIGhlaWdodDogODAwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC01MDBweDtcbiAgICAgICAgbGVmdDogLTIwMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgIGxlZnQ6IC01NjBweDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5ibG9jay0tcmlnaHQge1xuICAgICAgbWFyZ2luLXRvcDogLTYwMHB4O1xuICAgICAgcmlnaHQ6IC03MjBweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDY0ZGVnKTtcbiAgICAgIG9wYWNpdHk6IDAuNzc7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICBoZWlnaHQ6IDgwMHB4O1xuICAgICAgICByaWdodDogLTQwMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtNDAwcHg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNTAwcHg7XG4gICAgICAgIHJpZ2h0OiAtNDUwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLWxlZnQge1xuICAgIGxlZnQ6IC0zMDBweDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMzAwcHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTdkZWcpO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgbGVmdDogLTQwMHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgbGVmdDogLTUwMHB4O1xuICAgIH1cbiAgICAmLmJsb2NrLS1zbWFsbCB7XG4gICAgICBsZWZ0OiAtNDAwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAtNjAwcHg7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICBsZWZ0OiAtNDQwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC02NDBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tcmlnaHQge1xuICAgIHJpZ2h0OiAtMzAwcHg7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTMwMHB4O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDI3ZGVnKTtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgIHJpZ2h0OiAtNDQwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICByaWdodDogLTU2MHB4O1xuICAgIH1cbiAgICAmLmJsb2NrLS1zbWFsbCB7XG4gICAgICByaWdodDogLTUwMHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTQ3MHB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjdkZWcpO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgcmlnaHQ6IC01ODBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTQ3MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS1ncmF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgfVxuICAmLS1yZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gIH1cbiAgJi0tYmx1ZSB7XG4gICAgYm9yZGVyOiAyNHB4IHNvbGlkICR0ZWFsO1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqXG4gKiBUSEUgSEVSTyBTTElERVJcbiAqKioqKioqKioqKioqKioqKioqL1xuLmhlcm8tc2xpZGVyIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDIwcHggMHB4IHJnYmEoMCwwLDAsMC4yMCk7XG4gICZfX3RvcCB7XG4gICAgcGFkZGluZzogMTJlbSAwIGVtKDQycHgpIDA7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIHBhZGRpbmc6IDZlbSAwIDJlbSAwO1xuICAgIH1cbiAgfVxuICAmX19ib3R0b20ge1xuICAgIHBhZGRpbmctYm90dG9tOiAyZW07XG4gIH1cbiAgJl9faW50cm8ge1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICAuaW50cm9fX2hlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogZW0oNDhweCk7XG4gIH1cbiAgJl9fdG9waWNzIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbiAgLnRvcGljc19fbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IGVtKDI2cHgpO1xuICB9XG4gIC50b3BpY3NfX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgfVxuICAudG9waWMtYnV0dG9ucyB7XG4gICAgLmJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oNnB4LCAxNXB4KTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRncmVlbjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIHBhZGRpbmc6IGVtKDZweCwgMTRweCkgZW0oMTNweCwgMTRweCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgLmNsb3NlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjhlbTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE2O1xuICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICByaWdodDogMC4yNGVtO1xuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsO1xuICAgICAgICBib3JkZXItY29sb3I6ICR0ZWFsO1xuICAgICAgfVxuICAgICAgJi0taW52ZXJzZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJGdyZWVuO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLnRvcGljc19fZWRpdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAkZ3JlZW47XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qKioqKioqKioqKioqKioqKipcbiogVEhFIEdFTkVSQUwgTU9EQUxcbioqKioqKioqKioqKioqKioqKiovXG4ubW9kYWwge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4ubW9kYWwtZ2VuZXJpYyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOTQpO1xuICB6LWluZGV4OiA5OTk7XG4gICYubW9kYWwtZ2VuZXJpYy0tZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjk0KTtcbiAgICAubW9kYWwtZ2VuZXJpY19fY2xvc2U6aG92ZXIge1xuICAgICAgLmljb24tLWNsb3NlIHtcbiAgICAgICAgZmlsbDogJHJlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmljb24tLWNsb3NlIHtcbiAgICAgIGZpbGw6IHdoaXRlO1xuICAgIH1cbiAgfVxuICAubW9kYWwtZ2VuZXJpY19fY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgei1pbmRleDogMTAwMDtcbiAgfVxuICAuaWNvbi0tY2xvc2Uge1xuICAgIGZpbGw6IGJsYWNrO1xuICAgIEBpbmNsdWRlIHNpemUoMzBweCk7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKlxuKiBUSEUgTkFWIE1PREFMXG4qKioqKioqKioqKioqKioqKioqL1xuLm5hdi1tb2RhbCB7XG59XG5cbi8qKioqKioqKioqKioqKioqKipcbiogVEhFIEhFUk8gTU9EQUxcbioqKioqKioqKioqKioqKioqKiovXG4uaGVyby1jdGEge1xuICB6LWluZGV4OiAxO1xufVxuLmhlcm8tbW9kYWwge1xuICB6LWluZGV4OiAyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmVhci1ibGFjaztcbiAgJl9fY2xvc2Utd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTQwcHg7XG4gICAgcmlnaHQ6IC00MHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgIHRvcDogLTIwcHg7XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gIH1cbiAgLm1vZGFsLWNsb3NlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAuaWNvbiB7XG4gICAgICAmLS1jbG9zZSB7XG4gICAgICAgIGZpbGw6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmhvdmVyIHtcbiAgICAgIC5pY29uIHtcbiAgICAgICAgJi0tY2xvc2Uge1xuICAgICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKlxuKiBUSEUgU0VBUkNIIE1PREFMXG4qKioqKioqKioqKioqKioqKioqL1xuLnNlYXJjaC1tb2RhbCB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLnNlYXJjaC1tb2RhbF9faW5wdXQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkc2VhcmNoLWNvbG9yO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkdHVuZG9yYTtcbiAgICB3aWR0aDogOTAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1JTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogZW0oNzJweCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNDhweCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBmb250LXNpemU6IGVtKDI0cHgpO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqXG4qIFRIRSBWSURFTyBNT0RBTFxuKioqKioqKioqKioqKioqKioqKi9cbi52aWRlby1tb2RhbF9fdHJpZ2dlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC5pY29uLS12aWRlbyB7XG4gICAgd2lkdGg6IDEyNnB4O1xuICAgIGhlaWdodDogMTI2cHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgZmlsbDogd2hpdGU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtNjNweDtcbiAgICBtYXJnaW4tbGVmdDogLTYzcHg7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTQwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTQwcHg7XG4gICAgfVxuICB9XG4gICY6aG92ZXIge1xuICAgIC5pY29uLS12aWRlbyB7XG4gICAgICBmaWxsOiAkdGVhbDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKlxuKiBUSEUgVE9QSUNTIE1PREFMXG4qKioqKioqKioqKioqKioqKioqL1xuLnRvcGljcy1tb2RhbF9fd3JhcHBlciB7XG4gIHdpZHRoOiA2MDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgIHdpZHRoOiA5MCU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDAuNGVtO1xuICB9XG59XG4iLCIuZHJvcGRvd24taWNvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAuaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAzMnB4O1xuICAgIEBpbmNsdWRlIHNpemUoMzJweCAzMHB4KTtcbiAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBhdXRvIGVtKDExcHgpKTtcbiAgICAmLmljb24tLXNoYXJlIHtcbiAgICAgIGZpbGw6IHRyYW5zcGFyZW50aXplKCRncmVlbiwgMC41KTtcbiAgICB9XG4gIH1cbiAgJjpob3ZlciAuaWNvbi0tc2hhcmUsXG4gIC5kcm9wZG93bi5hY3RpdmUgJiAuaWNvbi0tc2hhcmUge1xuICAgIGZpbGw6ICRyZWQ7XG4gIH1cbn1cbi5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLm5vLWpzICYge1xuICAgICY6aG92ZXIgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDgwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDBweCAwcHggNHB4IDBweCByZ2JhKDAsMCwwLDAuMzcpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBtaW4td2lkdGg6IDE2MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBwYWRkaW5nOiBlbSgxOHB4KSAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUwJSk7XG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMXB4O1xuICAgICAgaGVpZ2h0OiAxMXB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB0b3A6IC0xcHg7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBib3gtc2hhZG93OiAtMnB4IC0ycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjM3KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG4gICAgbGkge1xuICAgICAgbGluZS1oZWlnaHQ6ICgxNnB4LzEzcHgpO1xuICAgICAgPiBhIHtcbiAgICAgICAgcGFkZGluZzogZW0oNXB4LCAxM3B4KSBlbSgyMHB4LCAxM3B4KTtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxM3B4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMjhweDtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi0tcmlnaHQge1xuICAgICAgbGVmdDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlWSgtNzAlKTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IC0yMnB4O1xuICAgICAgICBib3gtc2hhZG93OiAtM3B4IDNweCA0cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMzcpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgIH1cbiAgICAgIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tbGlrZSB7XG4gICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCM1QTdBN0EsIDAuMTEpO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiBlbSg4cHgpIGVtKDEwcHgpO1xuICAgICAgdG9wOiAxMTAlO1xuICAgICAgcmlnaHQ6IC01cHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgIHAsIGEge1xuICAgICAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogKDE2cHgvMTFweCk7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxMXB4LCAxMXB4KTtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAxMnB4O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSg5MCwgMTIyLCAxMjIsIDAuODkpO1xuICAgICAgICBib3JkZXItd2lkdGg6IDRweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS1pbnZlcnRlZCB7XG4gICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbGkge1xuICAgICAgICA+IGEge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tc2VsZWN0IHtcbiAgICAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMThweCk7XG4gICAgICBjb2xvcjogJHR1bmRvcmE7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodC1ncmF5O1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgcGFkZGluZzogZW0oOHB4LCAxOHB4KSBlbSgxNnB4LCAxOHB4KTtcbiAgICAgIHRyYW5zaXRpb246ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkbGlnaHQtZ3JheSwgMTAlKTtcbiAgICAgIH1cbiAgICAgIC5pY29uLS1hcnJvdy1kb3duIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogZW0oMTZweCwgMThweCk7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoOXB4IDlweCk7XG4gICAgICB9XG4gICAgfVxuICAgICYuYWN0aXZlIHtcbiAgICAgIC5pY29uLS1hcnJvdy1kb3duIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKDUwJSk7XG4gICAgICB9XG4gICAgfVxuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIHRvcDogOTYlO1xuICAgICAgYm94LXNoYWRvdzogMHB4IDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMzcpO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDVweCkgbnVsbCBlbSgxMHB4KSk7XG4gICAgICBsaSA+IGEsXG4gICAgICBsaSA+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICR0dW5kb3JhO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6IGVtKDE4cHgpO1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDEwcHgsIDE4cHgpIGVtKDE2cHgsIDE4cHgpKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICBtYXJnaW46IDAgZW0oMTBweCwgMThweCkgMCAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsYWJlbCB7XG4gICAgICAgIHRyYW5zaXRpb246ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmNvbGxhcHNlLW1lbnUge1xuICB0cmFuc2l0aW9uOiBhbGwgNDAwbXMgZWFzZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiIsIi5mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1iYWNrZ3JvdW5kLWNvbG9yO1xuICBwYWRkaW5nOiBlbSg2N3B4KTtcbiAgY29sb3I6ICRkYXJrLW11dGVkMjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDExNzNweDtcbiAgfVxuICAucm93IHtcbiAgICAvLyBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIC8vICAgcGFkZGluZy1yaWdodDogcGVyY2VudGFnZSgxLzMpO1xuICAgIC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMiBvZiAxMSk7XG4gICAgLy8gQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAvLyAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxIG9mIDIpO1xuICAgIC8vICAgbWFyZ2luLWJvdHRvbTogZW0oMjBweCk7XG4gICAgLy8gfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxIG9mIDIpO1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIH1cbiAgfVxuICAuY29sdW1uLWxhcmdlciB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgMTEpO1xuICAgIC8vIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLy8gICB0b3A6IDA7XG4gICAgLy8gICByaWdodDogMDtcbiAgICAvLyAgIGxlZnQ6IHBlcmNlbnRhZ2UoMi8zKTtcbiAgICAvLyB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEgb2YgMik7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIH1cbiAgfVxuICAmX19ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiBlbSgxNXB4LCAyNnB4KSBlbSgyMHB4LCAyNnB4KTtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgICAgY29sb3I6IGxpZ2h0ZW4oJGJ1dHRvbi1jb2xvciwgMTAlKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTNweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuY29weSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLm1hZGUtYnkge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxuICBoNSB7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLWNvbG9yO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNzFweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICB9XG4gIGEge1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgY29sb3I6ICRidXR0b24tY29sb3I7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAoMzJweC8xNnB4KTtcbiAgfVxuICAmX19jb25uZWN0IHtcbiAgICBib3JkZXItdG9wOiAkYmFzZS1ib3JkZXI7XG4gICAgbWFyZ2luLXRvcDogZW0oNjBweCk7XG4gICAgcGFkZGluZy10b3A6IGVtKDM3cHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgICAgY29sb3I6ICRidXR0b24tY29sb3I7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig1NTNweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSgyNHB4KTtcbiAgICB9XG4gICAgbGkgIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6ICgxMDAlLzcpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgPiBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoNDhweCk7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8pO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1ncmF5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBAaW5jbHVkZSBzaXplKDI0cHgpO1xuICAgICAgICAgIGZpbGw6ICRkYXJrLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oMzVweCkgMCBlbSg4MHB4KSk7XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oMzVweCkgMCBlbSg1MHB4KSk7XG4gICAgLmNvbHVtbiB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSgyMHB4KTtcbiAgICB9XG4gICAgJl9fY29ubmVjdCB7XG4gICAgICBwYWRkaW5nLXRvcDogZW0oMjBweCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tdG9wOiBlbSgxNXB4KTtcbiAgICAgIGxpIHtcbiAgICAgICAgd2lkdGg6IDI0JTtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMTBweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuZmlsbDEge1xuICBmaWxsOiAjRTcyMTMzO1xufVxuLmZpbGwyIHtcbiAgZmlsbDogI0I1MTgyNjtcbn1cbi5maWxsNCB7XG4gIGZpbGw6ICMzRDlDQTE7XG59XG4uZmlsbDUge1xuICBmaWxsOiAjMkVEM0Q0O1xufVxuLmljb24tLWxvZ28ge1xuICBmaWxsOiAjMkUyQTI2O1xuICAubW9kYWwtZ2VuZXJpYy0tZGFyayAmIHtcbiAgICBmaWxsOiAjZmZmO1xuICB9XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKlxuKlxuKiBTZWN0aW9uc1xuKlxuKioqKioqKioqKioqKioqKioqKioqKiovXG4ucGFnZS1zZWN0aW9uIHtcbiAgcGFkZGluZzogZW0oNzVweCkgMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmFja2dyb3VuZC1jb2xvcjtcbiAgYm9yZGVyLWJvdHRvbTogJGJhc2UtYm9yZGVyO1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgcGFkZGluZzogZW0oMzVweCkgMDtcbiAgfVxufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKipcbipcbiogTUFTVEVSIENMQVNTIFNFQ1RJT05cbipcbioqKioqKioqKioqKioqKioqKioqKioqL1xuLmNhbGxvdXQge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGFkZGluZyhlbSg4MHB4KSBudWxsKTtcbiAgQGluY2x1ZGUgcmV0aW5hLWltYWdlKCcvd3AtY29udGVudC90aGVtZXMvYWNhZGVteS1uZXdzY3JlZC9pbWcvYmctbWFzdGVyY2xhc3MnLCBjb3ZlciwganBnKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmFja2dyb3VuZC1jb2xvcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICBwYWRkaW5nOiBlbSgzNXB4KSAwO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgJl9faGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IGVtKDgwcHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgbGluZS1oZWlnaHQ6ICg3OHB4LzgwcHgpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMTBweCwgODBweCk7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNTBweCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMzBweCk7XG4gICAgfVxuICB9XG4gICZfX3BhcmFncmFwaCB7XG4gICAgZm9udC1zaXplOiBlbSgxOXB4KTtcbiAgICBsaW5lLWhlaWdodDogKDI4cHgvMTlweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMzBweCwgMTlweCk7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBmb250LXNpemU6IGVtKDE2cHgpO1xuICAgIH1cbiAgfVxuICAmLS1jb250ZW50IHtcbiAgICBoZWlnaHQ6IDY1MHB4O1xuICAgIEBpbmNsdWRlIHJldGluYS1pbWFnZSgnL3dwLWNvbnRlbnQvdGhlbWVzL2FjYWRlbXktbmV3c2NyZWQvaW1nL2JnLXNjYWxhYmlsaXR5JywgY292ZXIsIGpwZyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogb24gKi9cbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG4gICAgICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG4gICAgICAuY29sdW1uIHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIHBlcmNlbnRhZ2UoNyAvIDEyKSk7XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgcGVyY2VudGFnZSg1IC8gMTIpKTtcbiAgICAgICAgfVxuICAgICAgICAmLmNhbGxvdXRfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmJsb2NrLS1sZWZ0IHtcbiAgICBcdEBpbmNsdWRlIHNpemUoMTIwMHB4KTtcbiAgICBcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBcdGxlZnQ6IDUwJTtcbiAgICBcdEBpbmNsdWRlIG1hcmdpbigtNjgwcHggbnVsbCBudWxsIC0xMzUwcHgpO1xuICAgIH1cbiAgICAuYmxvY2stLXJpZ2h0IHtcbiAgICBcdG1hcmdpbi10b3A6IC0zMDBweDtcbiAgICAgIHJpZ2h0OiAtODUwcHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1NGRlZyk7XG4gICAgfVxuICAgIC5jYWxsb3V0X19oZWFkZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oLTE2cHgsIDgwcHgpO1xuICAgICAgdGV4dC1zaGFkb3c6IDBweCAycHggNnB4IHJnYmEoMCwwLDAsMC4xMCk7XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2U7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWw7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oNDhweCkgbnVsbCk7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAuY2FsbG91dF9faGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSg1MHB4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMTVweCwgNTBweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoNjBweC81MHB4KTtcbiAgICAgIH1cbiAgICAgIC5jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgICAgICAuY29sdW1uLmNhbGxvdXRfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgYXV0byk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhlbSgzNXB4KSBudWxsKTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIC5jYWxsb3V0X19oZWFkZXIge1xuICAgICAgICBmb250LXNpemU6IGVtKDMycHgpO1xuICAgICAgfVxuICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAgIC5jYWxsb3V0X19oZWFkZXIge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IGVtKDEwcHgsIDMwcHgpO1xuICAgICAgICB9XG4gICAgICAgIC5jYWxsb3V0X19kZXNjcmlwdGlvbi5jb2x1bW4ge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tbWFzdGVyLWNsYXNzIHtcbiAgICAmLmN0YSAuY29udGFpbmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDAgbnVsbCk7XG4gICAgfVxuICB9XG4gICYtLWhpcmluZyB7XG4gICAgQGluY2x1ZGUgcmV0aW5hLWltYWdlKCcvd3AtY29udGVudC90aGVtZXMvYWNhZGVteS1uZXdzY3JlZC9pbWcvYmctaGlyaW5nJywgY292ZXIsIGpwZyk7XG4gIH1cbiAgJi0tZW5yb2xsIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBAaW5jbHVkZSByZXRpbmEtaW1hZ2UoJy93cC1jb250ZW50L3RoZW1lcy9hY2FkZW15LW5ld3NjcmVkL2ltZy9iZy1lbnJvbGwnLCBjb3ZlciwganBnKTtcbiAgICAuY2FsbG91dF9faGVhZGVyIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LXNpemU6IGVtKDM4cHgpO1xuICAgICAgY29sb3I6ICRuZWFyLWJsYWNrO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuOTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAoNDJweC8zOHB4KTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgICAubXV0ZWQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjb2xvcjogJG5lYXItYmxhY2s7XG4gICAgICBtYXJnaW46IDEycHggMCAwIDIwcHg7XG4gICAgfVxuICB9XG4gICYtLXNoYXJlIHtcbiAgICBiYWNrZ3JvdW5kOiAkdGVhbDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDM0cHgpIG51bGwpO1xuICAgIHAge1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjRweCk7XG4gICAgICBsaW5lLWhlaWdodDogKDMwcHgvMjRweCk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaW5lLWhlaWdodDogNjBweDtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgICBsaW5lLWhlaWdodDogMS40ZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgdWwge1xuICAgICAgbGkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiAxMik7XG4gICAgICAgIGEge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSg2MHB4KTtcbiAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDApO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgZmlsbDogJHRlYWw7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpob3ZlciAuaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKipcbipcbiogVE9QSUNTIFNFQ1RJT05cbipcbioqKioqKioqKioqKioqKioqKioqKioqL1xuLnRvcGljcy50b3BpY3Mtc2hhcmVkLXNlY3Rpb24ge1xuICBwYWRkaW5nOiBlbSg4OHB4KSAwO1xufVxuLnRvcGljcyB7XG4gIHBhZGRpbmc6IGVtKDg4cHgpIDA7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmX19oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiBlbSgzOHB4KTtcbiAgICBsaW5lLWhlaWdodDogKDQycHgvMzhweCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjZlbTtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBmb250LXNpemU6IGVtKDE2cHgpO1xuICAgIH1cbiAgfVxuICAmX19zdWJoZWFkZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byAwKTtcbiAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggMTAyNHB4KXtcbiAgICAgIHdpZHRoOiA4MCU7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgZm9udC1zaXplOiBlbSgxNXB4KTtcbiAgICAgIG1hcmdpbi1yaWdodDogMC4yNjY2N2VtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC40ZW07XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2xpbmsge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zM3MgZWFzZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMC4xZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGVhc2U7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICBib3JkZXItY29sb3I6ICRncmVlbjtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKipcbipcbiogRkVBVFVSRUQgQ09MTEVDVElPTlMgU0VDVElPTlxuKlxuKioqKioqKioqKioqKioqKioqKioqKiovXG4uZmVhdHVyZWQtY29sbGVjdGlvbnMge1xuICBwYWRkaW5nOiBlbSg1MHB4KSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgcGFkZGluZzogZW0oMzhweCkgMDtcbiAgfVxuICAmX19yZXNvdXJjZXMge1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogZW0oMzBweCk7XG4gICAgICBib3JkZXItYm90dG9tOiAkYmFzZS1ib3JkZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSgzMHB4KTtcbiAgICB9XG4gIH1cbiAgJl9fbW9yZS1ib3gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmlnaHQ6ICRiYXNlLWJvcmRlcjtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwIC0ycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgICA+IGEge1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1ib3R0b206IDc2JTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgY29sb3I6ICR0ZWFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xM3B4O1xuICAgICAgICBmaWxsOiAjMDAwO1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICAgICAgICBmb250LXNpemU6IGVtKDE1cHgsIDIwcHgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNTAlO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX21vcmUtdGV4dCB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiA1cHg7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBmb250LXNpemU6IGVtKDE5cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIH1cbiAgJl9fbW9yZS1jb2xsZWN0aW9ucyB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgaDQge1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICB9XG4gICAgLmNvbnRlbnQtaGVhZGVyLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSg0MHB4LCAxNnB4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIC5jb250ZW50LWhlYWRlci1jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgxOHB4LCAxNnB4KTtcbiAgICAgICAgaDQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMjJweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgZm9udC1zaXplOiBlbSgxNHB4KTtcbiAgICB9XG4gIH1cbiAgJl9fYm94ZXMge1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDU1cHgpO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSgyNHB4KTtcbiAgICB9XG4gIH1cbiAgLmJ1dHRvbi0tbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKipcbiogVHJlbmRpbmcgc2VjdGlvblxuKioqKioqKioqKioqKioqKioqKioqKiovXG4udHJlbmRpbmcge1xuICBwYWRkaW5nOiBlbSg0MHB4KSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAmLWJveGVzLS1mZWF0dXJlZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oNTVweCk7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGVtKDI0cHgpO1xuICAgIH1cbiAgfVxuICAmX19mZWF0dXJlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAmX19mZWF0dXJlLWltYWdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICBwYWRkaW5nOiBlbSgzNXB4KSAwO1xuICAgICZfX2JveGVzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGVtKDM1cHgpO1xuICAgIH1cbiAgICAuY29udGFpbmVyID4gLnJvdy0tZmxleCB7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICAgICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogb24gKi9cbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG4gICAgICAuY29sdW1uIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIH1cbiAgICAgID4gLmNvbHVtbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIG9yZGVyKDIpO1xuICAgICAgfVxuICAgICAgPiAuY29sdW1uOmxhc3QtY2hpbGQge1xuICAgICAgICBAaW5jbHVkZSBvcmRlcigxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqXG4qIFByb2ZpbGVcbioqKioqKioqKioqKioqKioqKioqKioqL1xuLnByb2ZpbGUge1xuICAmX19waWMge1xuICAgIEBpbmNsdWRlIHNpemUoMTQzcHgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMjBweCk7XG4gIH1cbiAgJl9faGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6IGVtKDQycHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICBsaW5lLWhlaWdodDogKDUycHgvNDJweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMTZweCwgNDJweCk7XG4gIH1cbiAgJl9fc3ViaGVhZCB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgZm9udC1zaXplOiBlbSgxNXB4KTtcbiAgICBsaW5lLWhlaWdodDogKDE4cHgvMTVweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMzBweCwgMTVweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41dnc7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41dm1heDtcbiAgfVxuICAmX19zb2NpYWwge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIGxpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoMzJweCk7XG4gICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstbXV0ZWQyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zIGVhc2U7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICAgIC5pY29uIHtcbiAgICAgICAgZmlsbDogI2ZmZjtcbiAgICAgICAgbWF4LXdpZHRoOiAxNnB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNHB4O1xuICAgICAgICBAaW5jbHVkZSBzaXplKDE2cHggMTRweCk7XG4gICAgICAgIHRvcDogNDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTEwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLnN1YnNjcmliZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsLWJhY2tncm91bmQtY29sb3I7XG4gIHBhZGRpbmc6IGVtKDU0cHgpIDA7XG4gIGNvbG9yOiAjZmZmO1xuICBsYWJlbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGg0IHtcbiAgICAgIG1hcmdpbjogMCAwIGVtKDE0cHgsIDUwcHgpO1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNTBweCk7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuOTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgICBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgICAgbGluZS1oZWlnaHQ6ICgyNnB4LzIwcHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB9XG4gIH1cbiAgLmNlbnRlciB7XG4gICAgdG9wOiA1MCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICByaWdodDogOC4zMzMzMyU7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLmlucHV0LWdyb3VwIHtcbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgICAgcGFkZGluZzogZW0oMTQuNXB4LCAxNnB4KSBlbSgyNHB4LCAxNnB4KTtcbiAgICB9XG4gICAgLmlucHV0LWdyb3VwLWJ0biBidXR0b24ge1xuICAgICAgcGFkZGluZzogZW0oMThweCwgMTZweCkgZW0oMjRweCwgMTZweCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgbGFiZWwge1xuICAgICAgaDQge1xuICAgICAgICBmb250LXNpemU6IGVtKDMycHgpO1xuICAgICAgfVxuICAgIH1cbiAgICAuY2VudGVyIHtcbiAgICAgIEBpbmNsdWRlIHNoaWZ0KDApO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICAgIGxhYmVsIHtcbiAgICAgIGg0IHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgzNnB4LCAxNHB4KTtcbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgxMHB4LCAxNHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5zaWRlYmFyLXdyYXBwZXIge1xuICB3aWR0aDogI3soMyAvIDEyKSokY29udGFpbmVyLWxhcmdlfTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg3NSUpO1xuICB6LWluZGV4OiAxMDtcbiAgQGluY2x1ZGUgbWVkaWEobWF4LXdpZHRoIDE0NDBweCl7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgfVxuXG4gICYuYm90dG9tLCAmLnBvc3RlZC1ib3R0b20ge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gICYuZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDEwMHB4O1xuICB9XG59XG4uc2hhcmUtd3JhcHBlciB7XG4gIHdpZHRoOiAxMDVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEyNSUpO1xuICBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggMTQ0MHB4KXtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTkwJSk7XG4gIH1cbiAgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDM3cHgpO1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAwLjc1ZW07XG4gICAgY29sb3I6ICRzZWFyY2gtcGxhY2Vob2xkZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuOTRweDtcbiAgICBsaW5lLWhlaWdodDogKDIwcHgvMTdweCk7XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgcGFkZGluZy10b3A6IGVtKDMycHgpO1xuICAgIGJvcmRlci10b3A6ICRiYXNlLWJvcmRlcjtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgLmNvbnRlbnQtLWNvbGxlY3Rpb25zICYge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGJhc2UtYm9yZGVyO1xuICAgICAgcGFkZGluZy1ib3R0b206IGVtKDMycHgpO1xuICAgICAgQGluY2x1ZGUgb3JkZXIoMik7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSg0MHB4KTtcbiAgICB9XG4gICAgdWwge1xuICAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgfVxuICAgID4gdWwgPiBsaSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGJhc2UtYm9yZGVyO1xuICAgICAgfVxuICAgICAgLmRyb3Bkb3duLWljb24gLmljb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC04cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZHJvcGRvd24taWNvbiB7XG4gICAgLmljb24ge1xuICAgICAgd2lkdGg6IDIycHg7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgfVxuICB9XG4gICYuYm90dG9tLCAmLnBvc3RlZC1ib3R0b20ge1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gICYuZml4ZWQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDEwMHB4O1xuICB9XG59XG5cbi5zaWRlYmFyIHtcbiAgJl9faGVhZGVyIHtcbiAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiBlbSgyNXB4KTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGNvbG9yOiAkYnV0dG9uLWNvbG9yO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjgzcHg7XG4gICAgbGluZS1oZWlnaHQ6ICg0MnB4LzI1cHgpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cbiAgJl9fbGluay1saXN0IHtcbiAgICAuY29udGVudC1ib3gge1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMTNweCk7XG4gICAgICAuY29udGVudC1ib3hfX3RleHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKipcbipcbiogQ29udGVudCBCb3hlc1xuKlxuKioqKioqKioqKioqKioqKioqKioqKiovXG4uY29udGVudC1ib3gge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogZW0oMTBweCwgMTZweCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICB9XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvcmRlcjogMCBzb2xpZCAkdGVhbDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItd2lkdGggJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgYm9yZGVyLXdpZHRoOiA3cHg7XG4gICAgfVxuICB9XG4gIC5saWtlLWxpbmssXG4gIC5kcm9wZG93bi0tbGlrZSB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiBlbSgxM3B4KTtcbiAgICB0b3A6IGVtKDEzcHgpO1xuICAgIC5saWtlLWxpbmsge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG4gICAgLmljb24ge1xuICAgICAgQGluY2x1ZGUgc2l6ZSgyMnB4IDE4cHgpO1xuICAgIH1cbiAgfVxuICAuZGVzY3JpcHRpb24ge1xuICAgIHAge1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIH1cbiAgfVxuICBwIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICR0dW5kb3JhO1xuICAgIGxpbmUtaGVpZ2h0OiAoMjFweC8xNHB4KTtcbiAgfVxuICAmX19oYWxmIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgcmlnaHQ6IDVweDtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgICAgbGVmdDogNXB4O1xuICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3BpYyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgJl9fdGV4dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IGVtKDE2cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgcGFkZGluZy1yaWdodDogZW0oMjRweCk7XG4gICAgfVxuICAgICYuc21hbGwge1xuICAgICAgcGFkZGluZzogZW0oMTZweCkgZW0oMjJweCk7XG4gICAgICBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggMTIwMHB4IG1pbi13aWR0aCAkY29udGFpbmVyKXtcbiAgICAgICAgcGFkZGluZzogZW0oMTJweCkgZW0oMTRweCk7XG4gICAgICB9XG4gICAgfVxuICAgIGEge1xuICAgICAgY29sb3I6ICR0dW5kb3JhO1xuICAgIH1cbiAgICAuY29udGVudC1ib3hfX3RpdGxlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTcuNnB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5idXR0b24tLW1lZGl1bSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gICAgLnRvcGljLWxpbmsge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgY29sb3I6ICRncmVlbjtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IGVtKDZweCwgMTZweCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41M3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkZ3JlZW4sIDEwJSk7XG4gICAgICAgIHBhZGRpbmc6IGVtKDFweCkgZW0oN3B4KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBlbSg3cHgpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnBvc3QtY2F0ZWdvcmllcyB7XG4gICAgICBhIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICBjb2xvcjogJGdyZWVuO1xuICAgICAgICBmb250LXNpemU6IGVtKDE2cHgpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oNnB4LCAxNnB4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIH1cbiAgICB9XG4gICAgLm1ldGEge1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgICBsaW5lLWhlaWdodDogKDE5cHgvMTZweCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiBlbSgyMHB4LCAxNHB4KTtcbiAgICAgIHJpZ2h0OiBlbSgyMHB4LCAxNHB4KTtcbiAgICAgIGJvdHRvbTogZW0oMjBweCwgMTRweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIH1cbiAgICAgIC5pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMnB4KTtcbiAgICAgICAgZmlsbDogJGRhcmstbXV0ZWQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgICAgfVxuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIH1cbiAgICB9XG4gICAgLm1ldGEge1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobGFyZ2Utb25seSkge1xuICAgICAgICBmb250LXNpemU6IDAuOTd2dztcbiAgICAgICAgZm9udC1zaXplOiAwLjk3dm1heDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KGxhcmdlLW9ubHkpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjExdnc7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMXZtYXg7XG4gICAgICB9XG4gICAgfVxuICAgIC5tZXRhLWFkZG9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICBtYXJnaW4tbGVmdDogMC41ZW07XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGJsYWNrO1xuICAgIH1cbiAgfVxuICAmLS1pbWFnZSB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMjYlO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICBcdHBhZGRpbmctYm90dG9tOiA5MiU7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDVweDtcbiAgICAgIHJpZ2h0OiA1cHg7XG4gICAgfVxuICAgIC5jb250ZW50LWJveF9fcGljIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDVweDtcbiAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3R0b206IDQ4JTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIH1cbiAgICAuY29udGVudC1ib3hfX3RleHQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICB0b3A6IDUyJTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICB9XG4gICAgJi5jb250ZW50LWJveC0tcHJvZ3Jlc3Mge1xuICAgICAgLmNvbnRlbnQtYm94X190ZXh0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IGVtKDE2cHgpO1xuICAgICAgICB0b3A6IDUyJTtcbiAgICAgIH1cbiAgICAgIC5jb250ZW50LWJveF9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSB2aWV3cG9ydChsYXJnZS1vbmx5KXtcbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRlbnQtYm94X190aXRsZSB7XG4gICAgICAvKiBhdXRvcHJlZml4ZXI6IG9mZiAqL1xuICAgICAgQGluY2x1ZGUgYm94KHZlcnRpY2FsKTtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogb24gKi9cbiAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICB9XG4gICYtLXByb21vIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub3JtYWw7XG4gICAgfVxuICAgIGxhYmVsIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgICBmb250LXNpemU6IGVtKDMycHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuOTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSgxOXB4LCA0NXB4KTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCAxNTAwcHgpe1xuICAgICAgICBmb250LXNpemU6IDIuMXZ3O1xuICAgICAgICBmb250LXNpemU6IDIuMXZtYXg7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMzBweCk7XG4gICAgICB9XG4gICAgfVxuICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICBwYWRkaW5nOiBlbSgzMHB4KSBlbSgyNHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZWFsLWJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCAxMzkwcHggbWluLXdpZHRoIDEwMjRweCl7XG4gICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5pbnB1dC1ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmlucHV0LWdyb3VwLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYnV0dG9uLCA+IC5idG4ge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS1zcXVhcmUge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMDAlO1xuICAgID4gYSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLmNvbnRlbnQtYm94X19waWMge1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuICAmLS1yZXNvdXJjZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEyMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MiU7XG4gICAgfVxuICAgICYucmVzb3VyY2UtLWxhcmdlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2MCU7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA5MiU7XG4gICAgICB9XG4gICAgICAuY29udGVudC1ib3hfX3RleHQge1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDQ1cHgsIDE3cHgpIGVtKDQycHgsIDE3cHgpKTtcbiAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQobGFyZ2Utb25seSkge1xuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMi40dncpO1xuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMi40dm1heCk7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRlbnQtYm94X190aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiBlbSgzOHB4LCAxN3B4KTtcbiAgICAgICAgICBAaW5jbHVkZSB2aWV3cG9ydChsYXJnZS1vbmx5KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNjR2dztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi42NHZtYXg7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMjVweCwgMTdweCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogKDI0cHgvMjBweCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgICAgICAgICBAaW5jbHVkZSBib3godmVydGljYWwpO1xuICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogb24gKi9cbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogNDtcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggMTUwMHB4KXtcbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm1ldGEge1xuICAgICAgICAgIGxlZnQ6IGVtKDQycHgsIDE0cHgpO1xuICAgICAgICAgIHJpZ2h0OiBlbSg0MnB4LCAxNHB4KTtcbiAgICAgICAgICBib3R0b206IGVtKDQ1cHgsIDE0cHgpO1xuICAgICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KGxhcmdlLW9ubHkpIHtcbiAgICAgICAgICAgIGxlZnQ6IDIuNHZtYXg7XG4gICAgICAgICAgICByaWdodDogMi40dm1heDtcbiAgICAgICAgICAgIGJvdHRvbTogMi40dm1heDtcbiAgICAgICAgICAgIGxlZnQ6IDIuNHZ3O1xuICAgICAgICAgICAgcmlnaHQ6IDIuNHZ3O1xuICAgICAgICAgICAgYm90dG9tOiAyLjR2dztcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICAgICAgbGVmdDogMTZweDtcbiAgICAgICAgICAgIHJpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgYm90dG9tOiAxNnB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLnJlc291cmNlLS13aWRlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA4MSU7XG4gICAgfVxuICAgICYucmVzb3VyY2UtLWludmVyc2Uge1xuICAgICAgLmNvbnRlbnQtYm94X190ZXh0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5lYXItYmxhY2s7XG4gICAgICAgIEBpbmNsdWRlIHJldGluYS1pbWFnZShcIi93cC1jb250ZW50L3RoZW1lcy9hY2FkZW15LW5ld3NjcmVkL2ltZy9yZXNvdXJjZXMtdGlsZS1iZ1wiLCBjb3ZlciwgcG5nKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogOTAlIDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiA0MCUgYXV0bztcbiAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRlbnQtYm94X190aXRsZSB7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgY29sb3I6ICRncmF5O1xuICAgICAgICB9XG4gICAgICAgIGE6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuY29udGVudC1ib3hfX3RleHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogNXB4O1xuICAgICAgcmlnaHQ6IDVweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC1zaXplOiBlbSgxN3B4KTtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY29udGVudC1ib3hfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEobWluLXdpZHRoICN7JGNvbnRhaW5lciArIDF9KXtcbiAgICAgICAgICBmb250LXNpemU6IGVtKDI1cHgsIDE3cHgpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KGxhcmdlLW9ubHkpe1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44NXZ3O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS44NXZtYXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCAxNTAwcHgpe1xuICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gICAgICAgICAgQGluY2x1ZGUgYm94KHZlcnRpY2FsKTtcbiAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IG9uICovXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5tZXRhIC5idXR0b24gLmljb24ge1xuICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmLS1sYXJnZSB7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA0MiU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICY6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDVweDtcbiAgICAgIHJpZ2h0OiA1cHg7XG4gICAgfVxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICBjb2xvcjogJHR1bmRvcmE7XG4gICAgICBsaW5lLWhlaWdodDogKDI1cHgvMTZweCk7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChsYXJnZS1vbmx5KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMXZ3O1xuICAgICAgICBmb250LXNpemU6IDEuMTF2bWF4O1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwIHtcbiAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29udGVudC1ib3hfX3RleHQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oMTZweCkgZW0oNTRweCkgZW0oMTZweCkgZW0oMjBweCkpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgIH1cbiAgICAubWV0YSB7XG4gICAgICBsZWZ0OiAyMHB4O1xuICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgfVxuICAgIC5jb250ZW50LWJveF9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiBlbSgzOHB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4yNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSg2cHgsIDM4cHgpO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobGFyZ2Utb25seSkge1xuICAgICAgICBmb250LXNpemU6IDIuNjR2dztcbiAgICAgICAgZm9udC1zaXplOiAyLjY0dm1heDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxMjYlO1xuICAgICAgLmNvbnRlbnQtYm94X19waWMge1xuICAgICAgICByaWdodDogNXB4O1xuICAgICAgICBib3R0b206IDQ4JTtcbiAgICAgIH1cbiAgICAgIC5jb250ZW50LWJveF9faGFsZjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgdG9wOiA1MiU7XG4gICAgICAgIGxlZnQ6IDVweDtcbiAgICAgIH1cbiAgICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oMThweCkgZW0oMjJweCkpO1xuICAgICAgfVxuICAgICAgLmNvbnRlbnQtYm94X190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTlweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5MiU7XG4gICAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgyNHB4LCAxNHB4KTtcbiAgICAgIH1cbiAgICAgIC5tZXRhIHtcbiAgICAgICAgbGVmdDogZW0oMTlweCwgMTRweCk7XG4gICAgICAgIHJpZ2h0OiBlbSgxOXB4LCAxNHB4KTtcbiAgICAgICAgYm90dG9tOiBlbSgxNnB4LCAxNHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tcHJvZmlsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDYzJTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICByaWdodDogNXB4O1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLmNvbnRlbnQtYm94X19oYWxmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICByaWdodDogNXB4O1xuICAgICAgICAgIGJvdHRvbTogNDglO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5wcm9maWxlX19waWMge1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobGFyZ2Utb25seSl7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoOC43dncpO1xuICAgICAgICBAaW5jbHVkZSBzaXplKDguN3ZtYXgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LXdpZHRoICN7JGNvbnRhaW5lciAtIDF9IG1pbi13aWR0aCAkc21hbGwpe1xuICAgICAgICBAaW5jbHVkZSBzaXplKDE0dncpO1xuICAgICAgICBAaW5jbHVkZSBzaXplKDE0dm1heCk7XG4gICAgICB9XG4gICAgfVxuICAgIC5wcm9maWxlLFxuICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICBwYWRkaW5nOiBlbSgzMHB4KTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDVweDtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICAgIC5wcm9maWxlIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgICAmX19waWMge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNzBweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiBlbSgzMHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDE2cHgpKTtcbiAgICAgICAgJl9fcGljIHtcbiAgICAgICAgICBAaW5jbHVkZSBzaXplKDcwcHgpO1xuICAgICAgICB9XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDkwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDVweCBudWxsKTtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA2MnB4O1xuICAgICAgICB9XG4gICAgICAgICZfX3N1YmhlYWQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLnByb2ZpbGVfX2hlYWRlciB7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChsYXJnZS1vbmx5KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi4yM3Z3O1xuICAgICAgICBmb250LXNpemU6IDIuMjN2bWF4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LXdpZHRoICN7JGNvbnRhaW5lciAtIDF9IG1pbi13aWR0aCAkc21hbGwpe1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMy40dncgbnVsbCAzLjR2dyAxNnZ3KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNXZ3O1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMy40dm1heCBudWxsIDMuNG12YXggMTZ2bWF4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNXZtYXg7XG4gICAgICB9XG4gICAgfVxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHAge1xuICAgICAgICBmb250LXNpemU6IGVtKDE5cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogKDMzcHgvMTlweCk7XG4gICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KGxhcmdlLW9ubHkpe1xuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjF2dztcbiAgICAgICAgICBmb250LXNpemU6IDEuMXZtYXg7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LXdpZHRoICN7JGNvbnRhaW5lciAtIDF9IG1pbi13aWR0aCAkc21hbGwpe1xuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjQ3dnc7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjQ3dm1heDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggMzc1cHgpe1xuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgICAgICAgZm9udC1zaXplOiAyLjR2dztcbiAgICAgICAgICBmb250LXNpemU6IDIuNHZtYXg7XG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oMThweCkgZW0oMjJweCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgcGFkZGluZy1ib3R0b206IDEyNiU7XG4gICAgfVxuICB9XG4gICYtLWNvbGxlY3Rpb24ge1xuICAgIC5jb250ZW50LWJveF9fdGl0bGUge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmVhci1ibGFjaztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgQGluY2x1ZGUgbWVkaWEobWF4LXdpZHRoIDEzMDBweCBtaW4td2lkdGggJGNvbnRhaW5lcil7XG4gICAgICAgIHBhZGRpbmc6IGVtKDEycHgpO1xuICAgICAgfVxuICAgICAgLnRvcGljLWxpbmsge1xuICAgICAgICBjb2xvcjogbGlnaHRlbigkZ3JlZW4sIDEwJSk7XG4gICAgICB9XG4gICAgICAubWV0YSB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1tdXRlZDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICRkYXJrLW11dGVkO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgICAgIH1cbiAgICAgICAgLmJ1dHRvbiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgZm9udC1zaXplOiBlbSgxNXB4LCAxNXB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLm1ldGEtYWRkb24ge1xuICAgICAgICBib3JkZXItY29sb3I6ICRkYXJrLW11dGVkO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmNvbnRlbnQtYm94LS13aWRlIHtcbiAgICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBlbSgxNnB4KSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICAuY29udGVudC1ib3hfX3RpdGxlIHtcbiAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgICAgICAgQGluY2x1ZGUgYm94KHZlcnRpY2FsKTtcbiAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBvbiAqL1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCA4MDBweCl7XG4gICAgICAuY29udGVudC1ib3hfX3RpdGxlIHtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIC5saWtlLWxpbmsge1xuICAgICAgICB0b3A6IGVtKDIycHgpO1xuICAgICAgICBib3R0b206IGF1dG87XG4gICAgICB9XG4gICAgICAuY29udGVudC1ib3hfX3RpdGxlIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMTBweCwgMjRweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtLXdpZGUge1xuICAgIHBhZGRpbmctYm90dG9tOiA5MiU7XG4gIH1cbiAgJi0tcHJvZ3Jlc3Mge1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTI2JTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICByaWdodDogNXB4O1xuICAgIH1cbiAgICAmLmNvbnRlbnQtYm94LS13aWRlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA5NC43JTtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMjYlO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOTIlO1xuICAgICAgfVxuICAgICAgLnRvcGljLWxpbmsge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgxNXB4KTtcbiAgICAgIH1cbiAgICAgICYuY29udGVudC1ib3gtLWNvbGxlY3Rpb24gLnRvcGljLWxpbmsge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjM3NWVtO1xuICAgICAgfVxuICAgICAgLmNvbnRlbnQtYm94X190aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICByaWdodDogNXB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IGVtKDUxcHgpO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobGFyZ2Utb25seSkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMy4zdnc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzLjN2bWF4O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggJGNvbnRhaW5lci1sYXJnZSl7XG4gICAgICAuY29udGVudC1ib3hfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgyNXB4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogKDMycHgvMjVweCk7XG4gICAgICB9XG4gICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgICBmb250LXNpemU6IGVtKDE2cHgpO1xuICAgICAgICBjb2xvcjogJGFsbW9zdC1ibGFjaztcbiAgICAgICAgbGluZS1oZWlnaHQ6ICgyOXB4LzE4cHgpO1xuICAgICAgfVxuICAgIH1cbiAgICAubWV0YSB7XG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgIGNvbG9yOiAkdHVuZG9yYTtcbiAgICAgIG1pbi1oZWlnaHQ6IDU2cHg7XG4gICAgfVxuICAgIC5jb21wbGV0ZWQge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBmb250LXNpemU6IGVtKDE0cHgsIDE1cHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgcGFkZGluZy1yaWdodDogODVweDtcbiAgICB9XG4gICAgLmJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gIH1cbiAgJi0tZXZlbnQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGhlaWdodDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTI2JTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAuY29udGVudC1ib3hfX3RleHQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG5lYXItYmxhY2s7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICByaWdodDogNXB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IGVtKDQ4cHgpO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobGFyZ2Utb25seSkge1xuICAgICAgICBwYWRkaW5nLXRvcDogMy4zdnc7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzLjN2bWF4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogZW0oMTEwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgICAuY29udGVudC1ib3hfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjVweCk7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChsYXJnZS1vbmx5KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43NHZ3O1xuICAgICAgICBmb250LXNpemU6IDEuNzR2bWF4O1xuICAgICAgfVxuICAgIH1cbiAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgICAgIC8qIGF1dG9wcmVmaXhlcjogb2ZmICovXG4gICAgICBAaW5jbHVkZSBib3godmVydGljYWwpO1xuICAgICAgLyogYXV0b3ByZWZpeGVyOiBvbiAqL1xuICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiA0O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCAxNTUwcHgpe1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggMTI1MHB4IG1pbi13aWR0aCAxMDI0cHgpe1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSBtZWRpYShtaW4td2lkdGggNDAwcHggbWF4LXdpZHRoICRzbWFsbCl7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgICAubWV0YSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiBlbSgyMHB4KTtcbiAgICAgIHJpZ2h0OiBlbSgyMHB4KTtcbiAgICAgIGJvdHRvbTogZW0oMjBweCk7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHJlZDtcbiAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICBmb250LXNpemU6IGVtKDE2cHgpO1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgICAgfVxuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgcGFkZGluZzogZW0oMTZweCkgZW0oNDlweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoMjNweC8xNnB4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgLm1ldGEsXG4gICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KGxhcmdlLW9ubHkpIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjExdnc7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMXZtYXg7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTE1JTtcbiAgICB9XG4gIH1cbn1cbiIsIi5jb250ZW50LWhlYWRlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IGVtKDE0cHgpO1xuICBoNCB7XG4gICAgZm9udC1zaXplOiBlbSgzOHB4KTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgaDUge1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgIGNvbG9yOiAkc2VhcmNoLXBsYWNlaG9sZGVyO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgbGluZS1oZWlnaHQ6ICgyOHB4LzIwcHgpO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMTlweCk7XG4gICAgaDQge1xuICAgICAgZm9udC1zaXplOiBlbSgzMnB4KTtcbiAgICB9XG4gICAgaDUge1xuICAgICAgZm9udC1zaXplOiBlbSgxOHB4KTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDE5cHgpO1xuICAgIGg0IHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG4gICAgfVxuICAgIGg1IHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgfVxuICB9XG59XG4iLCIuY3RhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmFja2dyb3VuZC1jb2xvcjtcbiAgLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogZW0oODBweCkgZW0oMTE4cHgpO1xuICAgIHBhZGRpbmc6IGVtKDgwcHgpIDZ2dztcbiAgICBwYWRkaW5nOiBlbSg4MHB4KSA2dm1heDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigkY29udGFpbmVyLWxhcmdlIC0gMzApO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBwYWRkaW5nOiBlbSgyOHB4KSBlbSgyN3B4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgcGFkZGluZzogZW0oMjhweCkgZW0oMjBweCk7XG4gICAgfVxuICB9XG4gICZfX2Rlc2NyaXB0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSBvZiAxKTtcbiAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMjBweCk7XG4gICAgfVxuICB9XG4gICZfX2hlYWRlciB7XG4gICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiBlbSg3NnB4KTtcbiAgICBjb2xvcjogJG5lYXItYmxhY2s7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBsaW5lLWhlaWdodDogKDY4cHgvODBweCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSg1cHgvODBweCk7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobGFyZ2Utb25seSkge1xuICAgICAgZm9udC1zaXplOiA1LjI1dnc7XG4gICAgICBmb250LXNpemU6IDUuMjV2bWF4O1xuICAgIH1cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgfVxuICAgICAgJjpudGgtY2hpbGQoMil7XG4gICAgICAgIGNvbG9yOiAkdGVhbDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNTBweCk7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIG1hcmdpbi1ib3R0b206IGVtKDIxcHgsIDUwcHgpO1xuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBmb250LXNpemU6IGVtKDQwcHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMTBweCwgNDBweCk7XG4gICAgfVxuICB9XG4gICZfX3BhcmFncmFwaCB7XG4gICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICBsaW5lLWhlaWdodDogKDI4cHgvMjBweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMzBweCwgMjBweCk7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IGVtKDEwcHgsIDE2cHgpO1xuICAgIH1cbiAgfVxuICAmX19idXR0b24ge1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB9XG4gIC5jb250ZW50LWJveCB7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDM2LjclO1xuICAgIGg0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIC5jb250ZW50LWJveF9fdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBlbSgxNTBweCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSBvZiAxKTtcbiAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIuaWNvbi0tdG9waWMtbWFuYWdlbWVudCB7XG4gIEBpbmNsdWRlIHNpemUoNjVweCA3NXB4KTtcbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICBAaW5jbHVkZSBzaXplKDQ1cHggNDVweCk7XG4gIH1cbn1cbi5pY29uLS10b3BpYy1pbnNwaXJhdGlvbiB7XG4gIEBpbmNsdWRlIHNpemUoNTRweCA4OHB4KTtcbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICBAaW5jbHVkZSBzaXplKDMycHggNTNweCk7XG4gIH1cbn1cbi5pY29uLS10b3BpYy1pbmR1c3RyeS1sZWFkZXJzIHtcbiAgQGluY2x1ZGUgc2l6ZSg5MHB4IDc4cHgpO1xuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIEBpbmNsdWRlIHNpemUoNTlweCA0NnB4KTtcbiAgfVxufVxuLmljb24tLXRvcGljLW1lYXN1cmVtZW50IHtcbiAgQGluY2x1ZGUgc2l6ZSg3MHB4IDc1cHgpO1xuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIEBpbmNsdWRlIHNpemUoNDJweCA0NHB4KTtcbiAgfVxufVxuLmljb24tLXRvcGljLWF1ZGllbmNlIHtcbiAgQGluY2x1ZGUgc2l6ZSg5OXB4IDU4cHgpO1xuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIEBpbmNsdWRlIHNpemUoNThweCAzNHB4KTtcbiAgfVxufVxuLmljb24tLXRvcGljLXN0cmF0ZWd5IHtcbiAgQGluY2x1ZGUgc2l6ZSg3NnB4KTtcbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICBAaW5jbHVkZSBzaXplKDQ1cHggNDVweCk7XG4gIH1cbn1cbi5pY29uLW92ZXJyaWRlIHtcbiAgZmlsbDogYmxhY2s7XG59XG4uaWNvbi0taGVhcnQge1xuICBmaWxsOiB0cmFuc3BhcmVudGl6ZSgkZ3JlZW4sIDAuNSk7XG59XG4iLCIuZ2FsbGVyeS1pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5nYWxsZXJ5IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5nYWxsZXJ5LWl0ZW0ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIG1hcmdpbi1yaWdodDogLTNweDtcbiAgLmNvbHVtbiB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICB9XG4gIC5sb2FkLW1vcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMWVtO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG59XG4udG9nZ2xlbmF2IHtcbiAgbWFyZ2luOiAwIDVweCAyMHB4IDVweDtcbiAgJl9faXRlbXMge1xuICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCBibGFjaztcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuICAmX19pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMjJweDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgd2lkdGg6IDMzJTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuICAmLWxpbmsge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogZW0oMjBweCk7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjMzcyBlYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgJjpob3ZlciwgJi5hY3RpdmUge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgI0U4MjIzMztcbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTRweDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLnByb2dyZXNzLWJhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogJGdsb2JhbC1uYXYtaGVpZ2h0LWxhcmdlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA5ODA7XG4gIC5iYXIsIC5iYXItbWFzayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogN3B4O1xuICB9XG4gIC5iYXItbWFzayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWw7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgdG9wOiAkZ2xvYmFsLW5hdi1oZWlnaHQtbWVkaXVtO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICB0b3A6ICRnbG9iYWwtbmF2LWhlaWdodC1zbWFsbDtcbiAgfVxufVxuXG4ucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiAkdHVuZG9yYTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4xKTtcbiAgbWFyZ2luLWJvdHRvbTogZW0oOHB4KTtcbiAgJl9fYmFyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDA7XG4gICAgZm9udC1zaXplOiBlbSgxMnB4KTtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWw7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMTUpO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIC42cyBlYXNlO1xuICB9XG59XG4iLCIvKioqKioqKioqKioqKioqKioqKioqKlxuKiBIZXJvXG4qKioqKioqKioqKioqKioqKioqKioqKi9cbi5oZXJvLWN0YSwgLmhlcm8tbW9kYWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJGdsb2JhbC1uYXYtaGVpZ2h0LWxhcmdlICogMjtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTogMDtcbiAgLmNvbnRhaW5lci52Y2VudGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgLmNvbnRhaW5lci0tbGFyZ2Uge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMTcwcHgpO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgdG9wOiAkZ2xvYmFsLW5hdi1oZWlnaHQtbWVkaXVtO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICB0b3A6ICRnbG9iYWwtbmF2LWhlaWdodC1zbWFsbDtcbiAgfVxufVxuLmhlcm8tLWhvbWVwYWdlLWN0YSB7XG4gIC5oZXJvLWN0YSB7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmVhci1ibGFjaztcbiAgICB9XG4gICAgLmNvbnRhaW5lci0tbGFyZ2Uge1xuICAgICAgbWF4LXdpZHRoOiAxNDQwcHg7XG4gICAgfVxuICB9XG4gIGhlaWdodDogNjgwcHg7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgIGhlaWdodDogNTgwcHg7XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICBoZWlnaHQ6IDQ0OHB4O1xuICB9XG4gIC5oZXJvX19oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogZW0oNzJweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMTBweCwgNzJweCk7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICBmb250LXNpemU6IGVtKDY1cHgpO1xuICAgIH1cbiAgICAmLmhlcm8taGVhZGVyLS1tb2RhbCB7XG4gICAgICBmb250LXNpemU6IGVtKDMycHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG4gIH1cbiAgLmhlcm9fX3N1YmhlYWRlciB7XG4gICAgZm9udC1zaXplOiBlbSgyMi40cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMmVtO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgZm9udC1zaXplOiBlbSgyNHB4KTtcbiAgICB9XG4gIH1cbiAgLmhlcm8tbW9kYWwge1xuICAgIC5yb3cge1xuICAgICAgJi0tZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW46IDU0cHggMDtcbiAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICAgICAgbWFyZ2luOiAzNnB4IDA7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgICBtYXJnaW46IDE2cHggMDtcbiAgICAgICAgfVxuICAgICAgICAuY29sdW1uIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDQwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5oZXJvX19oZWFkZXIge1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgfVxuICAgICAgJi5oZXJvLWhlYWRlci0tbW9kYWwge1xuICAgICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuaWNvbiB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICAgICYuaWNvbi0tY2xvc2Uge1xuICAgICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi0tZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcbiAgICAgICAgZmlsbDogd2hpdGU7XG4gICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICZfX2Rlc2NyaXB0aW9uIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZpbGw6IHdoaXRlO1xuICAgIH1cbiAgICAuaGVyb19fY3RhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuY29udGVudCB7XG4gIG1hcmdpbjogZW0oNDBweCkgMDtcbiAgLmNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEyNjBweCk7XG4gIH1cbiAgLmRyb3Bkb3duIHtcbiAgICAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgIG1pbi13aWR0aDogMzYwcHg7XG4gICAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IGVtKDI0cHgsIDE0cHgpO1xuICAgICAgbGluZS1oZWlnaHQ6ICgxOHB4LzE0cHgpO1xuICAgICAgJi0tcmlnaHQge1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgfVxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDAgZW0oNXB4KTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgID4gYSB7XG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSg1MHB4KTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSgyMnB4KTtcbiAgICAgICAgICAgIGZpbGw6ICNmZmY7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICBsaW5lLWhlaWdodDogNDRweDtcbiAgICAgICAgZm9udC1zaXplOiBlbSgzN3B4LCAxNHB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICAmLS1yaWdodCB7XG4gICAgICAgICAgdG9wOiAyMDAlO1xuICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IC0xMXB4O1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogLTJweCAtMnB4IDRweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4zNyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgJi0tcmlnaHQge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBsZWZ0OiA3MCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hcnRpY2xlLXdyYXBwZXIge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDcxLjUlO1xuICBwYWRkaW5nLWxlZnQ6IDQ1cHg7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgLyogYXV0b3ByZWZpeGVyOiBvZmYgKi9cbiAgICBAaW5jbHVkZSBkaXNwbGF5KGZsZXgpO1xuICAgIC8qIGF1dG9wcmVmaXhlcjogb24gKi9cbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICB9XG59XG4uYXJ0aWNsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiBlbSg0NXB4KTtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaDQge1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMjdweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJG5lYXItYmxhY2s7XG4gIH1cbiAgPiBwIHtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgyN3B4LCAxOHB4KTtcbiAgfVxuICBhIHtcbiAgICBjb2xvcjogJGdyZWVuO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRkYXJrLWdyZWVuO1xuICAgIH1cbiAgfVxuICBoNSB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBjb2xvcjogJHNlYXJjaC1wbGFjZWhvbGRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICZfX2ludHJvIHtcbiAgICBoNCB7XG4gICAgICBmb250LXNpemU6IGVtKDI0cHgpO1xuICAgICAgZm9udC1mYW1pbHk6ICRoZWFkaW5nLWZvbnQtZmFtaWx5O1xuICAgICAgY29sb3I6ICRkYXJrLWdyYXk7XG4gICAgICBsaW5lLWhlaWdodDogKDMycHgvMjRweCk7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBmb250LXNpemU6IGVtKDE4cHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgQGluY2x1ZGUgc2hpZnQoMCk7XG4gICAgQGluY2x1ZGUgb3JkZXIoLTEpO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgaDQge1xuICAgICAgZm9udC1zaXplOiBlbSgyNnB4KTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIGZvbnQtc2l6ZTogZW0oMTMuNXB4KTtcbiAgfVxufVxuLmFydGljbGUtZm9vdGVyIHtcbiAgcGFkZGluZy10b3A6IDJlbTtcbiAgcGFkZGluZy1ib3R0b206IGVtKDcwcHgpO1xuICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICBwYWRkaW5nLXJpZ2h0OiBlbSg0NXB4KTtcbiAgLmJ1dHRvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgICBAaW5jbHVkZSBzaGlmdCgwKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiBlbSgzOHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgzNHB4KTtcbiAgICBib3JkZXItYm90dG9tOiAkYmFzZS1ib3JkZXI7XG5cbiAgICAmLS1jb2xsZWN0aW9ucyB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLm51bWJlcmVkLWxpc3Qge1xuICBtYXJnaW46IGVtKDQwcHgpIDAgZW0oMjRweCk7XG4gIGNvdW50ZXItcmVzZXQ6IGxpc3Q7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICA+IGxpIHtcbiAgICBmb250LXNpemU6IGVtKDE5cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDI1cHgsIDE5cHgpO1xuICAgIHBhZGRpbmctbGVmdDogZW0oMzBweCwgMTlweCk7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgcGFkZGluZy1sZWZ0OiBlbSgzOHB4LCAxOXB4KTtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGxpc3Q7XG4gICAgICBjb250ZW50OiBjb3VudGVyKGxpc3QpIFwiLlwiO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgbWFyZ2luLWxlZnQ6IC02OHB4O1xuICAgICAgbWFyZ2luLXRvcDogMXB4O1xuICAgICAgd2lkdGg6IDUwcHg7XG4gICAgfVxuICB9XG4gICZfX2NvbnRlbnQge1xuICAgIC5hdXRob3Ige1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTQuOHB4KTtcbiAgICAgIGNvbG9yOiAkdHVuZG9yYTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAoMjBweC8xNC44cHgpO1xuICAgICAgbWF4LXdpZHRoOiA3MCU7XG4gICAgfVxuICB9XG4gICZfX2l0ZW0taGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICZfX2NvbnRlbnQge1xuICAgICAgLmF1dGhvciB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi5udW1iZXJlZC1saXN0LS1sYXJnZSB7XG4gICAgLm51bWJlcmVkLWxpc3RfX2l0ZW0taGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjUpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICAgID4gbGkge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMjUpO1xuICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5idWxsZXRlZC1saXN0IHtcbiAgcGFkZGluZzogMWVtIDFlbSAxZW0gZW0oMzApO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDI2cHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICA+IGxpIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjJlbTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIuKAoiBcIjtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICBsaW5lLWhlaWdodDogMC43NTtcbiAgICB9XG4gIH1cbn1cblxuLmF1dGhvciB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogNTRweDtcbiAgJi0taW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgfVxufVxuXG4uaW50ZXJ2aWV3IHtcbiAgbWFyZ2luOiBlbSg0MHB4KSAwIGVtKDNweCk7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBkdDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdRJztcbiAgfVxuICBkZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICdBJztcbiAgICBjb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgfVxuICBkdDpiZWZvcmUsIGRkOmJlZm9yZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IGVtKDE5cHgpO1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICBjb2xvcjogJGFsbW9zdC1ibGFjaztcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAkcmVkO1xuICB9XG4gID4gZGwge1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDM3cHgpO1xuICB9XG4gIGRkID4gcCxcbiAgZHQgPiBwIHtcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICBjb2xvcjogJGFsbW9zdC1ibGFjaztcbiAgICBhIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gIH1cbiAgZHQgPiBwIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMjJweCk7XG4gICAgbGluZS1oZWlnaHQ6ICgzMXB4LzIycHgpO1xuICB9XG4gIGRkID4gcCB7XG4gICAgZm9udC1zaXplOiBlbSgxOXB4KTtcbiAgICBsaW5lLWhlaWdodDogKDMxcHgvMTlweCk7XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIGZvbnQtc2l6ZTogZW0oMTMuNXB4KTtcbiAgfVxufVxuXG4ucHVsbHF1b3RlIHtcbiAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byBlbSg2MnB4KSk7XG4gIG1heC13aWR0aDogODUlO1xuICAuaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byk7XG4gICAgQGluY2x1ZGUgc2l6ZSg4MXB4IDYzcHgpO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIGZpbGw6ICRncmVlbjtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgxMXB4KTtcbiAgfVxuICBlbSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDAuODI7XG4gICAgZm9udC1zaXplOiBlbSgyOHB4KTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGNvbG9yOiAkZGFyay10ZWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oMjRweCwgMjhweCk7XG4gIH1cbiAgY2l0ZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiA1MyU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgY29sb3I6ICR0dW5kb3JhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgICYuaGFzLWltZyB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcGFkZGluZzogMCAwIDAgNjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDVlbTtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC0yNXB4O1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMzBweDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNTBweDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIC5pY29uIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoNTBweCAzOXB4KTtcbiAgICB9XG4gICAgZW0ge1xuICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICB9XG4gIH1cbn1cblxuLmdyYXBoaWNzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmaWdjYXB0aW9uIHtcbiAgICBmb250LXNpemU6IGVtKDEyLjI0cHgpO1xuICAgIGNvbG9yOiAkYnV0dG9uLWNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAoMTRweC8xMi4yNHB4KTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgcGFkZGluZzogZW0oMTNweCwgMTIuMjRweCkgMDtcbiAgfVxuICAmX19mdWxsc2l6ZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxuICAmLmFyLTUwOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcGFkZGluZy1ib3R0b206IDUwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgJl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgfVxufVxuXG5bZGF0YS1hY3Rpb249XCJ6b29tXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IC13ZWJraXQtem9vbS1pbjtcbn1cblxuLnBvc3QtdGFncyB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBwYWRkaW5nOiBlbSgyMnB4KSAwIGVtKDE1cHgpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICBoNSB7XG4gICAgZm9udC1zaXplOiBlbSgzMHB4KTtcbiAgICBjb2xvcjogJG5lYXItYmxhY2s7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgfVxufVxuLnRhZ3Mge1xuICBhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGVtKDRweCwgMTVweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogZW0oNnB4LCAxNXB4KTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcbiAgfVxufVxuXG4uY2FyZC11c2VyIHtcbiAgcGFkZGluZy10b3A6IGVtKDM2cHgpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICAmX19pbWFnZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiBlbSgyMHB4KTtcbiAgICB9XG4gIH1cbiAgJl9fY29udGVudCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxOTZweDtcbiAgICBlbSB7XG4gICAgICBjb2xvcjogbGlnaHRlbihibGFjaywgNDAlKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICAmX19uYW1lIHtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IGVtKDMwcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDEzcHgsIDMwcHgpO1xuICAgIHNtYWxsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiBlbSgxOHB4LCAzMHB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAoMjJweC8xOHB4KTtcbiAgICAgIG1hcmdpbi10b3A6IGVtKDhweCwgMzBweCk7XG4gICAgfVxuICB9XG4gICZfX21vcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMWVtIDAgMDtcbiAgfVxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgICBjb2xvcjogJHR1bmRvcmE7XG4gICAgbGluZS1oZWlnaHQ6ICgyNnB4LzE2cHgpO1xuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgJl9faW1hZ2Uge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAmX19jb250ZW50IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi5wYXJhZ3JhcGgtY29udHJvbHMge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIG1hcmdpbi10b3A6IC0wLjVlbTtcbn1cbi5tYXJrdXAtcHJvdGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgjZTBmOWY5IDAsICNlMGY5ZjkgMTAwJSk7XG4gIHRyYW5zaXRpb246IDIwMG1zIGJhY2tncm91bmQtY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbiIsIi5jb250ZW50LS1jb2xsZWN0aW9ucyB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgLmFydGljbGUge1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBAaW5jbHVkZSBvcmRlcigwKTtcbiAgICB9XG4gIH1cbn1cbi5hcnRpY2xlIHtcbiAgJl9faGVhZGVyIHtcbiAgICBmb250LXNpemU6IGVtKDYwcHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAoNjZweC82MHB4KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjJlbTtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgZm9udC1zaXplOiBlbSgzMnB4KTtcbiAgICB9XG4gIH1cbiAgJi0tY29sbGVjdGlvbnMge1xuICAgIHAge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqXG4qIFRoZSBhcnRpY2xlIHNlcGFyYXRvcnNcbioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5hcnRpY2xlLXNlcGFyYXRvciB7XG4gIHBhZGRpbmc6IDAgMmVtIDJlbSAwO1xuICBtYXJnaW46IDNlbSBlbSg0NXB4KSA0ZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiA3cHggc29saWQgYmxhY2s7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIEBpbmNsdWRlIG9yZGVyKDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICBoNSB7XG4gICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cbiAgdWwge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICBmb250LXNpemU6IGVtKDE5cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIGxpIHtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgIC5pY29uIHtcbiAgICAgIG1heC13aWR0aDogMjBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDIwcHg7XG4gICAgICBAaW5jbHVkZSBzaXplKDIwcHgpO1xuICAgIH1cbiAgICAuaWNvbi0tYnVpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTJweDtcbiAgICB9XG4gIH1cbiAgYSB7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKlxuKiBUaGUgYXJ0aWNsZSBmb290ZXIgYXJlYVxuKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmFydGljbGUtZm9vdGVyLS1jb2xsZWN0aW9ucyB7XG4gIGZsb2F0OiBub25lO1xuICBoNiB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgIGNvbG9yOiAjOUI5QjlCO1xuICAgIGxpbmUtaGVpZ2h0OiAoMjhweC8yMHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgyMHB4LCAyMHB4KTtcbiAgfVxufVxuLmNvbGxlY3Rpb24tcmVsYXRlZCB7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICB9XG59XG4uY29sbGVjdGlvbi1ib3gge1xuICAmX19pbm5lciB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhlbSg1N3B4KSBlbSgzMHB4KSBlbSgzM3B4KSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAmOmhvdmVyIHtcbiAgICAgIC5pY29uIHtcbiAgICAgICAgZmlsbDogI2ZmZjtcbiAgICAgICAgY29sb3I6ICR0ZWFsO1xuICAgICAgfVxuICAgICAgLmNvbGxlY3Rpb24tYm94X19saW5rIHtcbiAgICAgICAgY29sb3I6ICR0ZWFsO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhlbSgzMHB4KSBudWxsKTtcbiAgICB9XG4gIH1cbiAgJl9fdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiBlbSgzNXB4KTtcbiAgICBsaW5lLWhlaWdodDogKDQxcHgvMzVweCk7XG4gICAgY29sb3I6ICNmZmY7XG5cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjRweCk7XG4gICAgfVxuICB9XG4gICZfX2ljb24ge1xuICAgIEBpbmNsdWRlIHNpemUoNTNweCA2MHB4KTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBjb2xvcjogJHJlZDtcbiAgICBmaWxsOiAjZmZmO1xuICAgIG1hcmdpbi1ib3R0b206IGVtKDIzcHgpO1xuXG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICBAaW5jbHVkZSBzaXplKDMzcHggNDBweCk7XG4gICAgfVxuICB9XG4gICZfX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIGNvbG9yOiAjQzVDNUM1O1xuICAgIGxpbmUtaGVpZ2h0OiAoMjZweC8xNnB4KTtcbiAgfVxuICAmX19saW5rIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMTRweCk7XG4gICAgY29sb3I6ICRyZWQ7XG4gICAgbGluZS1oZWlnaHQ6ICgxOHB4LzE0cHgpO1xuICAgIHRyYW5zaXRpb246IGNvbG9yICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKipcbiogVGhlIGFydGljbGUgc2lkZWJhciBuYXZpZ2F0aW9uXG4qKioqKioqKioqKioqKioqKioqKioqKiovXG4uc2lkZWJhcl9fbmF2aWdhdGlvbiB7XG4gIC5zaWRlYmFyX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VwYXJhdG9yLWdyYXk7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogZW0oMThweCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb246ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgICAuaWNvbi0tY2hlY2sge1xuICAgICAgLy8gZGlzcGxheTogbm9uZTtcbiAgICAgIGZpbGw6ICRncmVlbjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiBlbSgxM3B4KTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgQGluY2x1ZGUgc2l6ZSgyMnB4KTtcbiAgICAgIHRyYW5zaXRpb246ICRiYXNlLWR1cmF0aW9uICRiYXNlLXRpbWluZztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgwKTtcbiAgICB9XG4gICAgJi5jaGFwdGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDFlbSAxZW0gMWVtIGVtKDM2cHgpO1xuICAgICAgLmljb24ge1xuICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgICAgIG1heC13aWR0aDogMTNweDtcbiAgICAgICAgbWF4LWhlaWdodDogMTBweDtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxM3B4IDEwcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTI2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgLnNpZGViYXJfX2xpbmsge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5yZWFkIHtcbiAgICAgIC5zaWRlYmFyX19saW5rIHtcbiAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGdyZWVuLCAxMCUpO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiBlbSg0OHB4KTtcbiAgICAgIH1cbiAgICAgIC5pY29uLS1jaGVjayB7XG4gICAgICAgIC8vIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5zaWRlYmFyX19saW5rIHtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKlxuKiBMb2dnZWQgb3V0IGFydGljbGVcbioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5jb250ZW50LS1sb2dnZWQtb3V0IHtcbiAgLmFydGljbGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMjQwcHg7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwwKSwgcmdiYSgyNTUsMjU1LDI1NSwxKSlcbiAgICB9XG4gIH1cbn1cbi5hcnRpY2xlLXVubG9jayB7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogY2FsYygxMDAlIC0gI3tlbSg0NXB4KX0pO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVhbDtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAyZW07XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgIG1hcmdpbjogMCAwIGVtKDQwcHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gICZfX2hlYWRlciwgJl9fc3ViaGVhZGVyIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAmX19oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbiAgJl9fc3ViaGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICB9XG4gICZfX2FjY2VzcyB7XG4gICAgcGFkZGluZy1sZWZ0OiBlbSg1M3B4KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLmljb24ge1xuICAgICAgZmlsbDogI2ZmZjtcbiAgICAgIG1heC13aWR0aDogMzlweDtcbiAgICAgIG1heC1oZWlnaHQ6IDUycHg7XG4gICAgICBAaW5jbHVkZSBzaXplKDM5cHggNTJweCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgfVxuICB9XG4gICZfX3NpZ251cCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyZW07XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIG1heC13aWR0aDogMTYwcHg7XG4gICAgLmJ1dHRvbiB7XG4gICAgICBib3gtc2hhZG93OiAwcHggMXB4IDBweCAwcHggcmdiYSgwLDAsMCwwLjQyKTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICB9XG4gICAgfVxuICAgIC5tdXRlZCB7XG4gICAgICBjb2xvcjogJHR1bmRvcmE7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4oNXB4IG51bGwgMCk7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIudG9waWNzIHtcbiAgcGFkZGluZzogZW0oMTE4cHgpIDA7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAmLXBhZ2VfX3NlY3Rpb24ge1xuICAgIHBhZGRpbmc6IGVtKDYwcHgpIDA7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIHBhZGRpbmc6IGVtKDQwcHgpIDA7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgcGFkZGluZzogZW0oNDdweCkgMDtcbiAgfVxuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgcGFkZGluZzogZW0oMzVweCwgMTRweCkgMDtcbiAgfVxuICAmLXBhZ2VfX3NlY3Rpb24ge1xuICAgIC5sb2FkLW1vcmUge1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIHBhZGRpbmc6IGVtKDIwcHgpIDAgMCAwO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgtMjRweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtcGFnZV9fc2lkZWJhciB7XG4gICAgLmljb24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1heC13aWR0aDogMzlweDtcbiAgICAgIG1heC1oZWlnaHQ6IDUycHg7XG4gICAgICBAaW5jbHVkZSBzaXplKDM5cHggNTJweCk7XG4gICAgICBjb2xvcjogJGdyZWVuO1xuICAgIH1cbiAgICBoNSB7XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICAgIGNvbG9yOiAkc2VhcmNoLXBsYWNlaG9sZGVyO1xuICAgICAgbGluZS1oZWlnaHQ6ICgyOHB4LzIwcHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMTVweCwgMjBweCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICAuaWNvbiB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAtOXB4O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICAuaWNvbiB7XG4gICAgICAgIG1heC13aWR0aDogMjZweDtcbiAgICAgICAgbWF4LWhlaWdodDogMjJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgIH1cbiAgICAgIGg1IHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxM3B4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogZW0oMjBweCwgMTNweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICYtcGFnZV9faGVybyB7XG4gICAgaGVpZ2h0OiA1MDBweDtcbiAgICAuZHJvcGRvd24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgICAuaGVyby1jdGEge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgfVxuICAgIC5ibG9jay0tcmVkIHtcbiAgICAgIGxlZnQ6IC00ODBweDtcbiAgICAgIG1hcmdpbi10b3A6IC0zMjBweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMwZGVnKTtcbiAgICB9XG4gICAgLmJsb2NrLS1ibHVlIHtcbiAgICAgIHJpZ2h0OiAtNjYwcHg7XG4gICAgICBtYXJnaW4tdG9wOiAtNDAwcHg7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzMGRlZyk7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICByaWdodDogLTcwMHB4O1xuICAgICAgfVxuICAgIH1cbiAgICAuaGVyb19faGVhZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGVtKDEwcHgsIDYwcHgpO1xuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5pY29uIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2NXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGVtKDMxcHgsIDcycHgpO1xuICAgICAgICBmaWxsOiAjZmZmO1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgJi5pY29uLS10b3BpYy1pbmR1c3RyeS1sZWFkZXJzLFxuICAgICAgICAmLmljb24tLXRvcGljLWF1ZGllbmNlIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDc1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5kcm9wZG93bi10b2dnbGU6aG92ZXIge1xuICAgICAgICAuaWNvbi0tYXJyb3ctZG93bi10aGluIHtcbiAgICAgICAgICBmaWxsOiAkdGVhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmljb24tLWFycm93LWRvd24tdGhpbiB7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5oZXJvX19zdWJoZWFkZXIge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgICAgY29sb3I6ICRsaWdodC1ncmF5O1xuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFjdGl2ZSAuaGVyb19faGVhZGVyIHtcbiAgICAgIC5pY29uLS1hcnJvdy1kb3duLXRoaW4ge1xuICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgfVxuICAgICAgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciB7XG4gICAgICAgIC5pY29uLS1hcnJvdy1kb3duLXRoaW4ge1xuICAgICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmRyb3Bkb3duLW1lbnUge1xuICAgICAgdG9wOiA5NiU7XG4gICAgICByaWdodDogMTdweDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCwgNDRweCk7XG4gICAgICBsaSA+IGEge1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgICBjb2xvcjogJG5lYXItYmxhY2s7XG4gICAgICB9XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICAgIHJpZ2h0OiAxOHB4O1xuICAgICAgICBsaSA+IGEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTRweCwgMTAuNjY2OHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgcmlnaHQ6IDg4cHg7XG4gICAgICAgIHRvcDogMTIwJTtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNnB4LCAyM3B4KTtcbiAgICAgICAgbGkgPiBhIHtcbiAgICAgICAgICBmb250LXNpemU6IGVtKDEycHgsIDE2cHgpO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgcmlnaHQ6IDYlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICBoZWlnaHQ6IDMxOHB4ICsgJGdsb2JhbC1uYXYtaGVpZ2h0LW1lZGl1bTtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgaGVpZ2h0OiAyNTBweCArICRnbG9iYWwtbmF2LWhlaWdodC1zbWFsbDtcbiAgICAgIC5oZXJvX19oZWFkZXIge1xuICAgICAgICBmb250LXNpemU6IGVtKDIzcHgpO1xuICAgICAgICAuaWNvbi0tdG9waWMtbWFuYWdlbWVudCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuaWNvbi0tYXJyb3ctZG93bi10aGluIHtcbiAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi1wYWdlX19oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogZW0oMzhweCk7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgxMHB4LCAzOHB4KTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgcGFkZGluZy1sZWZ0OiA1MHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICBmb250LXNpemU6IGVtKDIxcHgpO1xuICAgIH1cbiAgfVxuICAmLXBhZ2VfX2RpZy1kZWVwZXIge1xuICAgIGg2IHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMThweCk7XG4gICAgICBjb2xvcjogJGdyYXk7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgICAuYnV0dG9uLS1zbWFsbCB7XG4gICAgICBmb250LXNpemU6IGVtKDE1cHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oNnB4LCAxNXB4KTtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgIC5idXR0b24tLWxpbmsge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSg0MHB4KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLmV2ZW50cy1wYWdlIHtcbiAgJl9faGVybyB7XG4gICAgQGluY2x1ZGUgbWVkaWEobWluLXdpZHRoIDEwMjRweCl7XG4gICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgIH1cbiAgICAuaGVyby1iZyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgICAuaGVyb19faGVhZGVyIHtcbiAgICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgfVxuICAgIC5oZXJvX19zdWJoZWFkZXIge1xuICAgICAgY29sb3I6ICRtZWRpdW0tZ3JheTtcbiAgICB9XG4gIH1cbn1cbiIsIi5zZWFyY2gtcmVzdWx0cyB7XG4gICZfX2hlcm8ge1xuICAgIGhlaWdodDogMjc3cHggKyAoJGdsb2JhbC1uYXYtaGVpZ2h0LWxhcmdlICogMik7XG4gICAgLmllICYge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgICBoZWlnaHQ6IDE4MCArICgkZ2xvYmFsLW5hdi1oZWlnaHQtbWVkaXVtICogMik7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBoZWlnaHQ6IDE2MCArICgkZ2xvYmFsLW5hdi1oZWlnaHQtc21hbGwgKiAyKTtcbiAgICB9XG4gICAgLmhlcm8tY3RhIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmVhci1ibGFjaztcbiAgICB9XG4gICAgLnNlYXJjaC1yZXN1bHRzX19pbnB1dCB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNjdweCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICB0ZXh0LXNoYWRvdzogMHB4IDFweCAxcHggcmdiYSgwLDAsMCwwLjUwKTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgICBmb250LXNpemU6IGVtKDQ4cHgpO1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgyNHB4KTtcbiAgICAgIH1cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX251bWJlciB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAoMjRweC8yMHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiBlbSgxMXB4LCAyMHB4KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbiAgJl9fbXV0ZWQge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBjb2xvcjogIzg4ODg4ODtcbiAgICBsaW5lLWhlaWdodDogKDE0cHgvMTJweCk7XG4gIH1cbiAgJl9fcmVzdWx0cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxuICAmX19maWx0ZXItYmFyIHtcbiAgICBwYWRkaW5nOiBlbSgyN3B4KSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoNSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBsaW5lLWhlaWdodDogZW0oNTBweCwgMTVweCk7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgZm9udC1zaXplOiBlbSgxNXB4KTtcbiAgICAgIGNvbG9yOiAkdHVuZG9yYTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjc1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgLmljb24ge1xuICAgICAgICBmaWxsOiAkcmVkO1xuICAgICAgICBAaW5jbHVkZSBzaXplKGVtKDE4cHgsIDE1cHgpIGVtKDE2cHgsIDE1cHgpKTtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgNnB4IC0ycHggbnVsbCk7XG4gICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2x1bW4tLXNlbGVjdCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAuaWNvbi0tYXJyb3ctZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogZW0oMTZweCwgMThweCk7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoOXB4IDlweCk7XG4gICAgICB9XG4gICAgfVxuICAgIHNlbGVjdCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgJjpob3ZlciArIC5pY29uIHtcbiAgICAgICAgZmlsbDogJHJlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmJ1dHRvbi0tYmxvY2sge1xuICAgICAgbGluZS1oZWlnaHQ6IGVtKDI2cHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgJl9fZmlsdGVyLWJhciB7XG4gICAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgc2hpZnQoMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAmX19maWx0ZXItYmFyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTBweCk7XG4gICAgICAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgc2hpZnQoMCk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgICAmLS1zdWJtaXQge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLnNlYXJjaC1wYWdpbmF0aW9uIHtcbiAgbWFyZ2luLXRvcDogNGVtO1xuICAmX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAmX19pdGVtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiBlbSgxOHB4KTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGluZy1mb250LWZhbWlseTtcbiAgICBwYWRkaW5nOiAwIDExcHg7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgcGFkZGluZzogMCAzcHg7XG4gICAgfVxuICB9XG4gICZfX2xpbmsge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG4gIH1cbiAgLm5hdi1saW5rcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGEsIHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiBlbSgxOHB4KTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBmb250LWZhbWlseTogJGhlYWRpbmctZm9udC1mYW1pbHk7XG4gICAgICBwYWRkaW5nOiAwIDExcHg7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAmOmhvdmVyLCAmLmFjdGl2ZSwgJi5jdXJyZW50IHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgcGFkZGluZzogMCAzcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5pY29uLS1hcnJvdy1kb3duIHtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gIH1cbiAgLmljb24tLXByZXYge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgfVxuICAuaWNvbi0tbmV4dCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgfVxuICAuc2NyZWVuLXJlYWRlci10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIucmVzb3VyY2VzIHtcbiAgJi1wYWdlX19oZXJvIHtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgIH1cbiAgfVxuICAmLXBhZ2VfX3Jlc291cmNlcyB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gIH1cbn1cbiIsIi5uZXdzLWFuZC1ldmVudHMge1xuICAmLXBhZ2VfX2hlcm8ge1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSkge1xuICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG4gICYtcGFnZV9fbmV3cy1hbmQtZXZlbnRzIHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgfVxufVxuIiwiLmhlcm8tLW9uYm9hcmRpbmcge1xuICBoZWlnaHQ6IDEwMHZoO1xuICBtaW4taGVpZ2h0OiA4MDBweDtcbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKSB7XG4gICAgbWF4LWhlaWdodDogODIwcHg7XG4gICAgbWluLWhlaWdodDogNzQwcHg7XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICBtYXgtaGVpZ2h0OiA2NjBweDtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcbiAgfVxuICAuaGVyby1jdGEge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgLmhlcm8tYmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuZWFyLWJsYWNrO1xuICB9XG4gIC5zZWNvbmRhcnktdGV4dCB7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zNWVtO1xuICAgIH1cbiAgfVxufVxuLm9uYm9hcmRpbmcge1xuICAmX19oZWFkZXIsICZfX3N1YmhlYWRlciB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG4gICZfX2hlYWRlciB7XG4gICAgZm9udC1zaXplOiBlbSg0NnB4KTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMmVtO1xuICB9XG4gICZfX3N1YmhlYWRlciB7XG4gICAgZm9udC1zaXplOiBlbSgyMXB4KTtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgY29sb3I6ICM5QjlCOUI7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gIH1cbiAgJl9fbGluayB7XG4gICAgY29sb3I6ICM5QjlCOUI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbn1cbi5vbmJvYXJkaW5nLW1vZGFsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICAmX190b3Age1xuICAgIGhlaWdodDogMTIwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6ICM5QjlCOUI7XG4gICAgZm9udC1zaXplOiBlbSgyMHB4KTtcbiAgICBwIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuICAmX19ib3R0b20ge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKipcbiogRk9STVMgQU5EIElOUFVUU1xuKioqKioqKioqKioqKioqKioqKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLm9uYm9hcmRpbmdfX2lucHV0LCBpbnB1dFt0eXBlPVwiZW1haWxcIl0ub25ib2FyZGluZ19faW5wdXQsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5vbmJvYXJkaW5nX19pbnB1dCB7XG4gIGZvbnQtc2l6ZTogZW0oMThweCk7XG4gIHBhZGRpbmc6IDFlbTtcbiAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cbnNlbGVjdC5vbmJvYXJkaW5nLWluZm9ybWF0aW9uX19zZWxlY3Qge1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDAuOWVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDg2cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6ICNCN0I3Qjc7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYjdiN2I3O1xuICBoZWlnaHQ6IDM2cHg7XG4gIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICB9XG4gIG9wdGdyb3VwIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICAuYWN0aXZlICYge1xuICAgIGNvbG9yOiAkdGVhbDtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG59XG4ub25ib2FyZGluZy1zZWxlY3Qtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XG4gIC5pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IC0xOHB4O1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIGZpbGw6ICNCN0I3Qjc7XG4gIH1cbiAgJi5hY3RpdmUge1xuICAgIC5pY29uIHtcbiAgICAgIGZpbGw6ICR0ZWFsO1xuICAgIH1cbiAgfVxufVxuLm9uYm9hcmRpbmdfX2Zvcm0ge1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbjogMmVtIDA7XG4gICYuZm9ybS0tZGV0YWlscyB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgfVxuICBsYWJlbCB7XG4gICAgY29sb3I6ICM5QzlDOUM7XG4gICAgZm9udC1zaXplOiBlbSgxNXB4KTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICB9XG4gICYub25ib2FyZGluZy1pbmZvcm1hdGlvbiB7XG4gICAgZm9udC1zaXplOiAxLjZlbTtcbiAgICBmb250LXdlaWdodDogMjAwO1xuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAub25ib2FyZGluZy1pbmZvcm1hdGlvbl9faW5wdXQge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWluLXdpZHRoOiAyMHB4O1xuICAgICAgY29sb3I6ICNCN0I3Qjc7XG4gICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiN2I3Yjc7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUsICY6Zm9jdXMge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkdGVhbDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1kZWZhdWx0KTtcbiAgICAgIH1cbiAgICAgICY6Zm9jdXM6YWZ0ZXIsICYuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHRleHQ7XG4gICAgICB9XG4gICAgfVxuICAgIC5vbmJvYXJkaW5nLWluZm9ybWF0aW9uX19kcm9wZG93biB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMC44ODg4OWVtO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBoZWlnaHQ6IDlweDtcbiAgICAgICAgd2lkdGg6IDlweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5idXR0b24ge1xuICAmLmJ1dHRvbi0tY29tcGxldGUtc2lnbnVwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzZDNkM2O1xuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlYWw7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4uaGVybyBhLm9uYm9hcmRpbmctLWZvcm0tYnV0dG9uLCAuaGVybyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLm9uYm9hcmRpbmctLWZvcm0tYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0M2QzZDNjtcbiAgY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiBlbSgxOXB4KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICBsaW5lLWhlaWdodDogMS40O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjQ3KTtcbiAgcGFkZGluZzogMWVtIDNlbTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNDNkM2QzY7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG4gIC8vIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuICAmLmNlbnRlciB7XG4gICAgbWFyZ2luOjAgYXV0bztcbiAgfVxuICAmLmZ1bGwtd2lkdGgge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgfVxuICAmLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVhbDtcbiAgICB9XG4gIH1cbn1cbi5vbmJvYXJkaW5nX19zaWdudXAtbGluayB7XG4gIGNvbG9yOiAjOUI5QjlCO1xuICBtYXJnaW4tdG9wOiAxLjVlbTtcbiAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgYSB7XG4gICAgY29sb3I6ICR0ZWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG59XG4iLCIubWFzdGVyY2xhc3MtcGFnZSB7XG4gICZfX2hlcm8ge1xuICAgIGhlaWdodDogNjQwcHg7XG4gICAgJi5tYXN0ZXJjbGFzcy1wYWdlX19oZXJvLWxvZ2dlZC1pbiB7XG4gICAgICBoZWlnaHQ6IDQ3MHB4O1xuICAgICAgLmhlcm8tYmcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbmVhci1ibGFjazsgfVxuICAgICAgLmhlcm9fX2hlYWRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oNDhweCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGVtKDI5cHgsIDQ4cHgpO1xuICAgICAgfVxuICAgICAgLmhlcm9fX3N1YmhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5oZXJvLWJnIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAgIH1cbiAgICAuaGVyb19faGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oNzBweCk7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICBmb250LXNpemU6IGVtKDQ4cHgpO1xuICAgICAgfVxuICAgIH1cbiAgICAuaGVyb19fc3ViaGVhZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgfVxuICAgIC5idXR0b24ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgICAubXV0ZWQge1xuICAgICAgZm9udC1zaXplOiBlbSgxNHB4KTtcbiAgICB9XG4gICAgLmhlcm9fX3N0YXRzIHtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDcwcHg7XG4gICAgaDMge1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMzBweCk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC40NXB4O1xuICAgICAgbGluZS1oZWlnaHQ6ICg0MnB4LzMwcHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oNzBweCwgMzBweCk7XG4gICAgfVxuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMzhweCk7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oNDlweCwgMzhweCk7XG4gICAgICBsaW5lLWhlaWdodDogKDU0cHgvMzhweCk7XG4gICAgfVxuICAgIC50b3BpY3MtcGFnZV9faGVhZGVyIHtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KG1lZGl1bSl7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbnRlbnQtYm94X190ZXh0IHtcbiAgICAgIHBhZGRpbmc6IGVtKDQwcHgpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLmljb24tY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg4MHB4KTtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlcGFyYXRvci1ncmF5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogNDBweDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgfVxuICAgICAgLmljb24ge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgZmlsbDogJHR1bmRvcmE7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg0OHB4KTtcbiAgICAgIH1cbiAgICAgIC5jb250ZW50LWJveF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDI1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgLm11dGVkIHtcbiAgICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgICAgZm9udC1zaXplOiBlbSgxM3B4LCAyNXB4KTtcbiAgICAgICAgICBjb2xvcjogJHNpbHZlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgfVxuICAgICAgLm11dGVkIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxM3B4KTtcbiAgICAgICAgY29sb3I6ICRzaWx2ZXI7XG4gICAgICAgIG1hcmdpbjogMTVweCAwIDA7XG4gICAgICAgIC5idXR0b24ge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5jYWxsb3V0LS1lbnJvbGwge1xuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX3Byb2dyZXNzIHtcbiAgICBwYWRkaW5nLXRvcDogMTQycHg7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpe1xuICAgICAgcGFkZGluZy10b3A6IDgycHg7XG4gICAgfVxuICB9XG4gICZfX3NlY3Rpb24tbG9nZ2VkLWluIHtcbiAgICAuY29udGVudC1ib3gge1xuICAgICAgJl9fdGV4dCAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAkdHVuZG9yYTtcbiAgICAgIH1cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fcHJvZmlsZXMge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuZWFyLWJsYWNrO1xuICAgIGg0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBmb250LXNpemU6IDM4cHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIH1cbiAgICAucHJvZmlsZSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiAxMik7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiAxMik7XG4gICAgICB9XG4gICAgICAmX19waWMge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBhdXRvKTtcbiAgICAgIH1cbiAgICAgICZfX2hlYWRlciB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNnB4KTtcbiAgICAgIH1cbiAgICAgICZfX3N1YmhlYWQge1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50ZXN0aW1vbmlhbHMge1xuICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCBvZiAxMik7XG4gIEBpbmNsdWRlIHNoaWZ0KDIpO1xuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDcgb2YgMTIpO1xuICAgIEBpbmNsdWRlIHNoaWZ0KDIuNSk7XG4gIH1cbiAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSBvZiAxKTtcbiAgICBAaW5jbHVkZSBzaGlmdCgwKTtcbiAgICAmX190aXRsZSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSBvZiAxKTtcbiAgICAgIEBpbmNsdWRlIHNoaWZ0KDApO1xuICAgIH1cbiAgfVxufVxuLndlbGxzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q2RDZENjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBwYWRkaW5nOiBlbSg2NXB4KSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDkwcHg7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICAmX190aXRsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IGVtKDE5cHgpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgNXB4KTtcbiAgfVxuICAubmF2LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICB0b3A6IDUwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIC5sZWZ0LCAucmlnaHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBzaXplKDdweCAyMHB4KTtcbiAgICAgIG1hcmdpbi10b3A6IC0xMHB4O1xuICAgICAgJjpob3ZlciAuaWNvbiB7XG4gICAgICAgIGZpbGw6IGRhcmtlbigjRDZENkQ2LCAxMCUpO1xuICAgICAgfVxuICAgIH1cbiAgICAubGVmdCB7XG4gICAgICBsZWZ0OiAxOXB4O1xuICAgICAgLmljb24ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gICAgICB9XG4gICAgfVxuICAgIC5yaWdodCB7XG4gICAgICByaWdodDogMTlweDtcbiAgICB9XG4gICAgLmljb24ge1xuICAgICAgZmlsbDogI0Q2RDZENjtcbiAgICAgIEBpbmNsdWRlIHNpemUoN3B4IDIwcHgpO1xuICAgIH1cbiAgfVxuICAud2VsbCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTIpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNENkQ2RDY7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICAgIC5pY29uIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoNjJweCk7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgZmlsbDogJHR1bmRvcmE7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDMwcHggbnVsbCAtMjJweCk7XG4gICAgICB9XG4gICAgfVxuICAgIHAge1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTlweCk7XG4gICAgICBjb2xvcjogJG5lYXItYmxhY2s7XG4gICAgICBsaW5lLWhlaWdodDogKDMzcHgvMTlweCk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMzRweCk7XG4gICAgfVxuICB9XG4gICYtLW11bHRpcGxlIHtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLndlbGwge1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcCB7XG4gICAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwIHtcbiAgICAgICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgICAgICBwYWRkaW5nOiAxLjVlbSAwO1xuICAgICAgICAgIG1hcmdpbjogMCAyZW07XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNENkQ2RDY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJi0tc2xpZGVzaG93IHtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gICAgLnF1b3RlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgdG9wOiAwO1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAuaWNvbiB7XG4gICAgICAgIGZpbGw6ICRyZWQ7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoNTBweCAzOXB4KTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgICAuZ2FsbGVyeS1pbm5lciB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC53ZWxsIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxIG9mIDEpO1xuICAgICAgLm11dGVkIHtcbiAgICAgICAgY29sb3I6ICNCN0I3Qjc7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLnBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VCRUJFQjtcbiAgcGFkZGluZzogZW0oMTFweCkgZW0oNDBweCk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDBweCAycHggMTVweCAtNXB4IHJnYmEoMCwwLDAsMC4wOCk7XG4gICZfX2NvbGxhcHNlIHtcbiAgICB1bCB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDEwcHgpIG51bGwpO1xuICAgIH1cbiAgICAudGFzayB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICAgICY6bGFzdC1jaGlsZCBhOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIC50YXNrIGEge1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgICBjb2xvcjogJG5lYXItYmxhY2s7XG4gICAgICBsaW5lLWhlaWdodDogMjFweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMzVweDtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgyMXB4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHQtZ3JheTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgIH1cbiAgICAgIC5pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoMjFweCk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIGZpbGw6ICR0ZWFsO1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19oZWFkaW5nIHtcbiAgICBmb250LXNpemU6IGVtKDE1cHgpO1xuICAgIGEge1xuICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuICAgIHNwYW4ge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi5vdmVyYWxsLXByb2dyZXNzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSBzaXplKDE3MHB4KTtcbiAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byk7XG4gICY6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBAaW5jbHVkZSBzaXplKDE3MHB4KTtcbiAgICBib3JkZXItcmFkaXVzOiA4NXB4O1xuICAgIGJvcmRlcjogMTBweCBzb2xpZCAkdHVuZG9yYTtcbiAgICB6LWluZGV4OiAtMTtcbiAgfVxuICAmLm5vLXByb2dyZXNzLWJnIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICZfX3RleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1JTtcbiAgICB0b3A6IDM2cHg7XG4gICAgd2lkdGg6IDkwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiA1NnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxuICAucmFkaWFsLXByb2dyZXNzLWNhbnZhcyB7XG4gICAgQGluY2x1ZGUgc2l6ZSgxNzBweCk7XG4gIH1cbiAgLmljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIH1cbiAgLmNvbnRlbnQtYm94ICYge1xuICAgIEBpbmNsdWRlIHNpemUoNzZweCk7XG4gICAgbWFyZ2luOiAtM3B4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogZW0oNDBweCk7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZXBhcmF0b3ItZ3JheTtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIC5yYWRpYWwtcHJvZ3Jlc3MtY2FudmFzIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoODBweCk7XG4gICAgICBtYXJnaW46IC0ycHg7XG4gICAgfVxuICAgICZfX3RleHQge1xuICAgICAgZm9udC1zaXplOiBlbSgxNXB4KTtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMDtcbiAgICAgIEBpbmNsdWRlIHNpemUoMjBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVhbDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKipcbipcbiogTUFTVEVSQ0xBU1MgT1ZFUlZJRVcgUEFHRVxuKlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ubWFzdGVyY2xhc3Mtb3ZlcnZpZXdfX3BhZ2Uge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogODhweDtcbiAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pIHtcbiAgICAgIHBhZGRpbmc6IDQ0cHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBwYWRkaW5nOiAyMnB4O1xuICAgIH1cbiAgfVxuICAub3ZlcnZpZXctLWJ1bGxldHMge1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgfVxuICB9XG59XG4ubWFzdGVyY2xhc3Mtb3ZlcnZpZXdfX2hlcm8tY3RhIHtcbiAgLm1hc3RlcmNsYXNzLW92ZXJ2aWV3X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUJFQkVCO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG4gICAgLmljb24ge1xuICAgICAgZmlsbDogJHR1bmRvcmE7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBzaXplKDQ2cHgpO1xuICAgIH1cbiAgfVxuICAubWFzdGVyY2xhc3Mtb3ZlcnZpZXdfX2hlYWRlci5oZXJvX19oZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogZW0oNDhweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogMTAwcHg7XG4gICAgQGluY2x1ZGUgdmlld3BvcnQoc21hbGwpIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMzJweCk7XG4gICAgICBtYXJnaW4tbGVmdDogNjBweDtcbiAgICB9XG4gIH1cbiAgLm1hc3RlcmNsYXNzLW92ZXJ2aWV3X19zdWJoZWFkZXIge1xuICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBtYXJnaW4tbGVmdDogMTAwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO1xuICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKSB7XG4gICAgICBtYXJnaW4tbGVmdDogNjBweDtcbiAgICB9XG4gIH1cbn1cbi5idWxsZXRzLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBkaXNjO1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG4uYnVsbGV0cy1pdGVtIHtcbiAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zaXplOiBlbSgxOXB4KTtcbn1cbi5tYXN0ZXJjbGFzcy1vdmVydmlld19faGVhZGVyIHtcbiAgZm9udC1zaXplOiBlbSgzOHB4KTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCkge1xuICAgIGZvbnQtc2l6ZTogZW0oMjhweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMC42ZW07XG4gIH1cbn1cbi5mZWF0dXJpbmctYXV0aG9yIHtcbiAgJl9faGVhZGVyIHtcbiAgICBmb250LXNpemU6IGVtKDI1cHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbiAgJl9fc3ViaGVhZGVyIHtcbiAgICBmb250LXNpemU6IGVtKDE0cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgY29sb3I6ICRzaWx2ZXI7XG4gIH1cbn1cbi5mZWF0dXJpbmctYXV0aG9yLWJveCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRuZWFyLWJsYWNrO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDMycHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuLmZlYXR1cmluZy1hdXRob3JfX3RvcCB7XG4gIG1hcmdpbi1sZWZ0OiA3OHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZmVhdHVyaW5nLWF1dGhvcl9fcHJvZmlsZS1waWN0dXJlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtNzhweDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmZlYXR1cmluZy1hdXRob3JfX2JvdHRvbSB7XG4gIHAge1xuICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tdG9wOiAzNHB4O1xuICAgIGNvbG9yOiAkc2VwYXJhdG9yLWdyYXk7XG4gIH1cbn1cbi5tYXN0ZXJjbGFzcy1vdmVydmlld19fY3RhIHtcbiAgbWFyZ2luLXRvcDogNjBweDtcbiAgLmJ1dHRvbiB7XG4gICAgcGFkZGluZzogMThweDtcbiAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qXG4qIE1BU1RFUkNMQVNTIFBST0dSRVNTIFBBR0VcbipcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLm1hc3RlcmNsYXNzLXByb2dyZXNzIHtcbiAgJl9fc2lkZWJhciB7XG4gICAgaDEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IGVtKDE2cHgsIDI1cHgpIGVtKDI0cHgsIDI1cHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IGVtKDI1cHgpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6ICgzMnB4LzI1cHgpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLm11dGVkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTNweCwgMjVweCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmljb24tLWFycm93LWRvd24tdGhpbiB7XG4gICAgICAgIGZpbGw6ICNENkQ2RDY7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTFweCAxMHB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogZW0oMjRweCwgMjVweCk7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGVZKDEpO1xuICAgICAgfVxuICAgICAgLmFjdGl2ZSAuaWNvbi0tYXJyb3ctZG93bi10aGluIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlWSgtMSk7XG4gICAgICB9XG4gICAgfVxuICAgIC5wYW5lbCB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDApO1xuICAgICAgbGkge1xuICAgICAgICA+IGEge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRDZENkQ2O1xuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oMThweCkgZW0oMjlweCkpO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGNvbG9yOiAkbmVhci1ibGFjaztcbiAgICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgICAgIHNtYWxsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGNvbG9yOiAjOUI5QjlCO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdWwge1xuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMjRweCAwKTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0Q2RDZENjtcbiAgICAgICAgfVxuICAgICAgICAudGFzayB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC50YXNrIGEge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDAgMCAwIG51bGwpO1xuICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGVtKDI5cHgpKTtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQgPiBhIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2NvbnRlbnQge1xuICAgIC5jb250YWluZXItLXdoaXRlIHtcbiAgICAgIHBhZGRpbmc6IGVtKDM2cHgpIGVtKDQ2cHgpO1xuICAgIH1cbiAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDIycHgpKTtcbiAgICB9XG4gICAgaDEge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IGVtKDQ4cHgpO1xuICAgICAgbGluZS1oZWlnaHQ6ICg1M3B4LzQ4cHgpO1xuICAgICAgc21hbGwge1xuICAgICAgICBmb250LXNpemU6IGVtKDE1cHgsIDQ4cHgpO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19xdWl6IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLmNvbnRhaW5lci0td2hpdGUge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhlbSg3NnB4KSBlbSgxMjBweCkpO1xuICAgICAgQGluY2x1ZGUgdmlld3BvcnQobWVkaXVtKXtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhlbSg0NHB4KSk7XG4gICAgICB9XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChzbWFsbCl7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oMjJweCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBoMSB7XG4gICAgICBmb250LXNpemU6IGVtKDM4cHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogZW0oNDdweCwgMzhweCk7XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxOXB4KTtcbiAgICAgICAgY29sb3I6ICRuZWFyLWJsYWNrO1xuICAgICAgICBsaW5lLWhlaWdodDogKDMzcHgvMTlweCk7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoZW0oN3B4LCAxOXB4KSBlbSgzNnB4LCAxOXB4KSBlbSg3cHgsIDE5cHgpIGVtKDE4cHgsIDE5cHgpKTtcbiAgICAgICAgdHJhbnNpdGlvbjogJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGdyYXk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlcixcbiAgICAgICAgLmljb24tLWNoZWNrMiB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgfVxuICAgICAgICAuaWNvbi0tY2hlY2syIHtcbiAgICAgICAgICBAaW5jbHVkZSBzaXplKDIwcHggMTRweCk7XG4gICAgICAgICAgZmlsbDogJHRlYWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5jb3JyZWN0IGEge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkdGVhbDtcbiAgICAgIH1cbiAgICAgIC5pbmNvcnJlY3QgYSB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRyZWQ7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICfinJUnO1xuICAgICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fc2NvcmUge1xuICAgIC5jb250YWluZXItLXdoaXRlIHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAyMzZweCk7XG4gICAgICBAaW5jbHVkZSB2aWV3cG9ydChtZWRpdW0pe1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDQ0cHgpKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhlbSgyMnB4KSk7XG4gICAgICB9XG4gICAgfVxuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTQwcHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHNtYWxsIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNXB4LCAxNDBweCk7XG4gICAgICAgIGNvbG9yOiAkZ3JheTtcbiAgICAgIH1cbiAgICB9XG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IGVtKDI0cHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDIwMDtcbiAgICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5idXR0b24tLW1lZGl1bSB7XG4gICAgICBmb250LXNpemU6IGVtKDIwcHgpO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG4gICAgLndlbGwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlcGFyYXRvci1ncmF5O1xuICAgICAgcGFkZGluZzogZW0oNDVweCkgZW0oMTIycHgpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgcGFkZGluZzogZW0oMjJweCk7XG4gICAgICB9XG4gICAgICAuaWNvbi1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBhdXRvKTtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg4MHB4KTtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTNweDtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIGZpbGw6ICR0dW5kb3JhO1xuICAgICAgICAgIEBpbmNsdWRlIHNpemUoNDZweCk7XG4gICAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBmb250LXNpemU6IGVtKDE5cHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgyMHB4LCAxOXB4KTtcbiAgICAgIH1cbiAgICAgICYtLWJhZGdlIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogZW0oMzZweCkgZW0oNDJweCkgZW0oMzZweCkgZW0oMTYxcHgpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgICBwYWRkaW5nOiBlbSgyMnB4KTtcbiAgICAgICAgfVxuICAgICAgICAuaWNvbi1jb250YWluZXIge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiBlbSg0MnB4KTtcbiAgICAgICAgICB0b3A6IGVtKDM2cHgpO1xuICAgICAgICAgIEBpbmNsdWRlIHNpemUoOTBweCk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNDVweDtcbiAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMjBweCk7XG4gICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSg1MnB4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiBlbSgyNHB4KTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgICAubGlua2VkaW4tYnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBwIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogZW0oMTZweCk7XG4gICAgICAgICAgICBtYXJnaW46IC01cHggMCAwIDI2cHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIHZpZXdwb3J0KHNtYWxsKXtcbiAgICAgICAgICAgIC5saW5rZWRpbi1idXR0b24sIHAge1xuICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICBtYXJnaW46IDEwcHggMCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLnJlc3BvbnNpdmUtdmlkZW8td3JhcHBlciB7XG4gIHdpZHRoOiA5MCU7XG4gIG1heC13aWR0aDogODAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC52aWRlbyB7XG4gICAgJl9faGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMjVweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwLjJlbTtcbiAgICB9XG4gICAgJl9fc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTVweCk7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFdBQVc7QUNBWDs7Ozs2Q0FJNkM7QUFHM0MsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVB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 */
